@codetectonics/mantle 1.2.2 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/codetectonics-mantle.mjs +179 -127
- package/fesm2022/codetectonics-mantle.mjs.map +1 -1
- package/index.d.ts +96 -17
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codetectonics-mantle.mjs","sources":["../../../projects/mantle/src/lib/services/data-broadcast.service.ts","../../../projects/mantle/src/lib/services/object.service.ts","../../../projects/mantle/src/lib/services/locale.service.ts","../../../projects/mantle/src/lib/components/navigation/paginator/custom-paginator-intl.ts","../../../projects/mantle/src/lib/material.module.ts","../../../projects/mantle/src/lib/pipes/dynamic.pipe.ts","../../../projects/mantle/src/lib/tokens/environment.token.ts","../../../projects/mantle/src/lib/services/web-api.service.ts","../../../projects/mantle/src/lib/pipes/secure-image.pipe.ts","../../../projects/mantle/src/lib/directives/click-stop-propagation.directive.ts","../../../projects/mantle/src/lib/directives/file-dropzone.directive.ts","../../../projects/mantle/src/lib/components/widgets/loader/loader.component.ts","../../../projects/mantle/src/lib/components/widgets/loader/loader.component.html","../../../projects/mantle/src/lib/services/screen-size.service.ts","../../../projects/mantle/src/lib/services/array.service.ts","../../../projects/mantle/src/lib/components/details/fields/actions-attribute-display/actions-attribute-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/actions-attribute-display/actions-attribute-display.component.html","../../../projects/mantle/src/lib/components/details/fields/icon-attribute-display/icon-attribute-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/icon-attribute-display/icon-attribute-display.component.html","../../../projects/mantle/src/lib/components/details/fields/chip-attribute-display/chip-attribute-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/chip-attribute-display/chip-attribute-display.component.html","../../../projects/mantle/src/lib/components/titles/section-title/section-title.component.ts","../../../projects/mantle/src/lib/components/titles/section-title/section-title.component.html","../../../projects/mantle/src/lib/components/widgets/file-preview-dialog/file-preview-dialog.component.ts","../../../projects/mantle/src/lib/components/widgets/file-preview-dialog/file-preview-dialog.component.html","../../../projects/mantle/src/lib/components/details/fields/file-attribute-display/file-attribute-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/file-attribute-display/file-attribute-display.component.html","../../../projects/mantle/src/lib/components/details/fields/image-attribute-display/image-attribute-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/image-attribute-display/image-attribute-display.component.html","../../../projects/mantle/src/lib/components/details/fields/markdown-attribute-display/markdown-attribute-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/markdown-attribute-display/markdown-attribute-display.component.html","../../../projects/mantle/src/lib/components/details/fields/multiselect-display/multiselect-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/multiselect-display/multiselect-display.component.html","../../../projects/mantle/src/lib/components/details/fields/rich-text-display/rich-text-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/rich-text-display/rich-text-display.component.html","../../../projects/mantle/src/lib/components/details/fields/link-attribute-display/link-attribute-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/link-attribute-display/link-attribute-display.component.html","../../../projects/mantle/src/lib/components/details/fields/thumbnail-display/thumbnail-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/thumbnail-display/thumbnail-display.component.html","../../../projects/mantle/src/lib/components/details/fields/dynamic-attribute-display/dynamic-attribute-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/dynamic-attribute-display/dynamic-attribute-display.component.html","../../../projects/mantle/src/lib/components/widgets/tooltip/tooltip.component.ts","../../../projects/mantle/src/lib/components/widgets/tooltip/tooltip.component.html","../../../projects/mantle/src/lib/components/details/sections/grid-details-section/grid-details-section.component.ts","../../../projects/mantle/src/lib/components/details/sections/grid-details-section/grid-details-section.component.html","../../../projects/mantle/src/lib/components/details/dialog-nested-details/dialog-nested-details.component.ts","../../../projects/mantle/src/lib/components/details/dialog-nested-details/dialog-nested-details.component.html","../../../projects/mantle/src/lib/components/widgets/dynamic-table/dynamic-table-datasource.ts","../../../projects/mantle/src/lib/components/widgets/dynamic-table/dynamic-table.component.ts","../../../projects/mantle/src/lib/components/widgets/dynamic-table/dynamic-table.component.html","../../../projects/mantle/src/lib/components/details/sections/table-details-section/table-details-section.component.ts","../../../projects/mantle/src/lib/components/details/sections/table-details-section/table-details-section.component.html","../../../projects/mantle/src/lib/components/details/fields/report-viewer-display/report-viewer-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/report-viewer-display/report-viewer-display.component.html","../../../projects/mantle/src/lib/components/details/sections/report-details-section/report-details-section.component.ts","../../../projects/mantle/src/lib/components/details/sections/report-details-section/report-details-section.component.html","../../../projects/mantle/src/lib/components/widgets/draggable-table/draggable-table-datasource.ts","../../../projects/mantle/src/lib/components/widgets/draggable-table/draggable-table.component.ts","../../../projects/mantle/src/lib/components/widgets/draggable-table/draggable-table.component.html","../../../projects/mantle/src/lib/components/details/sections/roster-shift-list-details-section/roster-shift-list-details-section.component.ts","../../../projects/mantle/src/lib/components/details/sections/roster-shift-list-details-section/roster-shift-list-details-section.component.html","../../../projects/mantle/src/lib/services/dynamic-form.service.ts","../../../projects/mantle/src/lib/components/form/fields/chip-input/chip-input.component.ts","../../../projects/mantle/src/lib/components/form/fields/chip-input/chip-input.component.html","../../../projects/mantle/src/lib/components/form/fields/datepicker/datepicker.component.ts","../../../projects/mantle/src/lib/components/form/fields/datepicker/datepicker.component.html","../../../projects/mantle/src/lib/components/form/fields/datetimepicker/datetimepicker.component.ts","../../../projects/mantle/src/lib/components/form/fields/datetimepicker/datetimepicker.component.html","../../../projects/mantle/src/lib/components/form/fields/colorpicker-input/colorpicker-input.component.ts","../../../projects/mantle/src/lib/components/form/fields/colorpicker-input/colorpicker-input.component.html","../../../projects/mantle/src/lib/components/form/fields/dropdown/dropdown.component.ts","../../../projects/mantle/src/lib/components/form/fields/dropdown/dropdown.component.html","../../../projects/mantle/src/lib/components/form/fields/filepicker/filepicker.component.ts","../../../projects/mantle/src/lib/components/form/fields/filepicker/filepicker.component.html","../../../projects/mantle/src/lib/components/form/fields/image-cropper/image-cropper.component.ts","../../../projects/mantle/src/lib/components/form/fields/image-cropper/image-cropper.component.html","../../../projects/mantle/src/lib/components/form/fields/imagepicker/imagepicker.component.ts","../../../projects/mantle/src/lib/components/form/fields/imagepicker/imagepicker.component.html","../../../projects/mantle/src/lib/components/form/fields/number-input/number-input.component.ts","../../../projects/mantle/src/lib/components/form/fields/number-input/number-input.component.html","../../../projects/mantle/src/lib/components/form/fields/password-input/password-input.component.ts","../../../projects/mantle/src/lib/components/form/fields/password-input/password-input.component.html","../../../projects/mantle/src/lib/components/form/fields/textarea/textarea.component.ts","../../../projects/mantle/src/lib/components/form/fields/textarea/textarea.component.html","../../../projects/mantle/src/lib/components/form/fields/text-input/text-input.component.ts","../../../projects/mantle/src/lib/components/form/fields/text-input/text-input.component.html","../../../projects/mantle/src/lib/components/form/fields/time-input/time-input.component.ts","../../../projects/mantle/src/lib/components/form/fields/time-input/time-input.component.html","../../../projects/mantle/src/lib/components/form/fields/markdown-input/markdown-input.component.ts","../../../projects/mantle/src/lib/components/form/fields/markdown-input/markdown-input.component.html","../../../projects/mantle/src/lib/components/form/fields/multiselect-input/multiselect-input.component.ts","../../../projects/mantle/src/lib/components/form/fields/multiselect-input/multiselect-input.component.html","../../../projects/mantle/src/lib/components/form/fields/rich-text-input/rich-text-input.component.ts","../../../projects/mantle/src/lib/components/form/fields/rich-text-input/rich-text-input.component.html","../../../projects/mantle/src/lib/components/form/fields/report-config-input/report-config-input.component.ts","../../../projects/mantle/src/lib/components/form/fields/report-config-input/report-config-input.component.html","../../../projects/mantle/src/lib/components/form/fields/autocomplete-input/autocomplete-input.component.ts","../../../projects/mantle/src/lib/components/form/fields/autocomplete-input/autocomplete-input.component.html","../../../projects/mantle/src/lib/components/form/fields/dynamic-form-field/dynamic-form-field.component.ts","../../../projects/mantle/src/lib/components/form/fields/dynamic-form-field/dynamic-form-field.component.html","../../../projects/mantle/src/lib/components/form/sections/grid-form-section/grid-form-section.component.ts","../../../projects/mantle/src/lib/components/form/sections/grid-form-section/grid-form-section.component.html","../../../projects/mantle/src/lib/components/dashboard/dashboard-card-search-menu/dashboard-card-search-menu.component.ts","../../../projects/mantle/src/lib/components/dashboard/dashboard-card-search-menu/dashboard-card-search-menu.component.html","../../../projects/mantle/src/lib/components/dashboard/widgets/dynamic-chart/dynamic-chart.component.ts","../../../projects/mantle/src/lib/components/dashboard/widgets/dynamic-chart/dynamic-chart.component.html","../../../projects/mantle/src/lib/components/dashboard/widgets/dashboard-info-card/dashboard-info-card.component.ts","../../../projects/mantle/src/lib/components/dashboard/widgets/dashboard-info-card/dashboard-info-card.component.html","../../../projects/mantle/src/lib/components/dashboard/widgets/dashboard-table/dashboard-table-datasource.ts","../../../projects/mantle/src/lib/components/dashboard/widgets/dashboard-table/dashboard-table.component.ts","../../../projects/mantle/src/lib/components/dashboard/widgets/dashboard-table/dashboard-table.component.html","../../../projects/mantle/src/lib/components/dashboard/widgets/dynamic-widget-display/dynamic-widget-display.component.ts","../../../projects/mantle/src/lib/components/dashboard/widgets/dynamic-widget-display/dynamic-widget-display.component.html","../../../projects/mantle/src/lib/components/dashboard/dashboard-card/dashboard-card.component.ts","../../../projects/mantle/src/lib/components/dashboard/dashboard-card/dashboard-card.component.html","../../../projects/mantle/src/lib/components/dashboard/sections/dashboard-section/dashboard-section.component.ts","../../../projects/mantle/src/lib/components/dashboard/sections/dashboard-section/dashboard-section.component.html","../../../projects/mantle/src/lib/components/details/sections/markdown-details-section/markdown-details-section.component.ts","../../../projects/mantle/src/lib/components/details/sections/markdown-details-section/markdown-details-section.component.html","../../../projects/mantle/src/lib/components/details/sections/dynamic-details-section/dynamic-details-section.component.ts","../../../projects/mantle/src/lib/components/details/sections/dynamic-details-section/dynamic-details-section.component.html","../../../projects/mantle/src/lib/components/details/containers/accordion-details-container/accordion-details-container.component.ts","../../../projects/mantle/src/lib/components/details/containers/accordion-details-container/accordion-details-container.component.html","../../../projects/mantle/src/lib/components/details/containers/plain-details-container/plain-details-container.component.ts","../../../projects/mantle/src/lib/components/details/containers/plain-details-container/plain-details-container.component.html","../../../projects/mantle/src/lib/components/details/containers/dynamic-details-container/dynamic-details-container.component.ts","../../../projects/mantle/src/lib/components/details/containers/dynamic-details-container/dynamic-details-container.component.html","../../../projects/mantle/src/lib/components/details/dynamic-details/dynamic-details.component.ts","../../../projects/mantle/src/lib/components/details/dynamic-details/dynamic-details.component.html","../../../projects/mantle/src/lib/components/form/dialog-nested-form/dialog-nested-form.component.ts","../../../projects/mantle/src/lib/components/form/dialog-nested-form/dialog-nested-form.component.html","../../../projects/mantle/src/lib/components/form/sections/table-form-section/table-form-section.component.ts","../../../projects/mantle/src/lib/components/form/sections/table-form-section/table-form-section.component.html","../../../projects/mantle/src/lib/components/form/sections/roster-shift-list-form-section/roster-shift-list-form-section.component.ts","../../../projects/mantle/src/lib/components/form/sections/roster-shift-list-form-section/roster-shift-list-form-section.component.html","../../../projects/mantle/src/lib/components/form/sections/dynamic-form-section/dynamic-form-section.component.ts","../../../projects/mantle/src/lib/components/form/sections/dynamic-form-section/dynamic-form-section.component.html","../../../projects/mantle/src/lib/components/form/containers/plain-form-container/plain-form-container.component.ts","../../../projects/mantle/src/lib/components/form/containers/plain-form-container/plain-form-container.component.html","../../../projects/mantle/src/lib/components/form/containers/accordion-form-container/accordion-form-container.component.ts","../../../projects/mantle/src/lib/components/form/containers/accordion-form-container/accordion-form-container.component.html","../../../projects/mantle/src/lib/components/form/containers/dynamic-form-container/dynamic-form-container.component.ts","../../../projects/mantle/src/lib/components/form/containers/dynamic-form-container/dynamic-form-container.component.html","../../../projects/mantle/src/lib/components/form/dynamic-form/dynamic-form.component.ts","../../../projects/mantle/src/lib/components/form/dynamic-form/dynamic-form.component.html","../../../projects/mantle/src/lib/components/widgets/snackbar/snackbar.component.ts","../../../projects/mantle/src/lib/components/widgets/snackbar/snackbar.component.html","../../../projects/mantle/src/lib/services/announcement.service.ts","../../../projects/mantle/src/lib/components/form/dialog-form/dialog-form.component.ts","../../../projects/mantle/src/lib/components/form/dialog-form/dialog-form.component.html","../../../projects/mantle/src/lib/components/layout-editor/elements/layout-editor-field-element/layout-editor-field-element.component.ts","../../../projects/mantle/src/lib/components/layout-editor/elements/layout-editor-field-element/layout-editor-field-element.component.html","../../../projects/mantle/src/lib/components/layout-editor/elements/layout-editor-table-column-element/layout-editor-table-column-element.component.ts","../../../projects/mantle/src/lib/components/layout-editor/elements/layout-editor-table-column-element/layout-editor-table-column-element.component.html","../../../projects/mantle/src/lib/components/layout-editor/elements/layout-editor-widget-element/layout-editor-widget-element.component.ts","../../../projects/mantle/src/lib/components/layout-editor/elements/layout-editor-widget-element/layout-editor-widget-element.component.html","../../../projects/mantle/src/lib/components/layout-editor/elements/dynamic-layout-editor-element/dynamic-layout-editor-element.component.ts","../../../projects/mantle/src/lib/components/layout-editor/elements/dynamic-layout-editor-element/dynamic-layout-editor-element.component.html","../../../projects/mantle/src/lib/components/layout-editor/sections/dashboard-layout-editor-section/dashboard-layout-editor-section.component.ts","../../../projects/mantle/src/lib/components/layout-editor/sections/dashboard-layout-editor-section/dashboard-layout-editor-section.component.html","../../../projects/mantle/src/lib/components/layout-editor/sections/grid-layout-editor-section/grid-layout-editor-section.component.ts","../../../projects/mantle/src/lib/components/layout-editor/sections/grid-layout-editor-section/grid-layout-editor-section.component.html","../../../projects/mantle/src/lib/components/layout-editor/sections/markdown-layout-editor-section/markdown-layout-editor-section.component.ts","../../../projects/mantle/src/lib/components/layout-editor/sections/markdown-layout-editor-section/markdown-layout-editor-section.component.html","../../../projects/mantle/src/lib/components/layout-editor/sections/table-layout-editor-section/table-layout-editor-section.component.ts","../../../projects/mantle/src/lib/components/layout-editor/sections/table-layout-editor-section/table-layout-editor-section.component.html","../../../projects/mantle/src/lib/components/layout-editor/sections/dynamic-layout-editor-section/dynamic-layout-editor-section.component.ts","../../../projects/mantle/src/lib/components/layout-editor/sections/dynamic-layout-editor-section/dynamic-layout-editor-section.component.html","../../../projects/mantle/src/lib/components/layout-editor/containers/accordion-layout-editor-container/accordion-layout-editor-container.component.ts","../../../projects/mantle/src/lib/components/layout-editor/containers/accordion-layout-editor-container/accordion-layout-editor-container.component.html","../../../projects/mantle/src/lib/components/layout-editor/containers/plain-layout-editor-container/plain-layout-editor-container.component.ts","../../../projects/mantle/src/lib/components/layout-editor/containers/plain-layout-editor-container/plain-layout-editor-container.component.html","../../../projects/mantle/src/lib/components/layout-editor/containers/dynamic-layout-editor-container/dynamic-layout-editor-container.component.ts","../../../projects/mantle/src/lib/components/layout-editor/containers/dynamic-layout-editor-container/dynamic-layout-editor-container.component.html","../../../projects/mantle/src/lib/components/layout-editor/dynamic-layout-editor/dynamic-layout-editor.component.ts","../../../projects/mantle/src/lib/components/layout-editor/dynamic-layout-editor/dynamic-layout-editor.component.html","../../../projects/mantle/src/lib/components/titles/page-title/page-title.component.ts","../../../projects/mantle/src/lib/components/titles/page-title/page-title.component.html","../../../projects/mantle/src/lib/components/dashboard/containers/plain-dashboard-container/plain-dashboard-container.component.ts","../../../projects/mantle/src/lib/components/dashboard/containers/plain-dashboard-container/plain-dashboard-container.component.html","../../../projects/mantle/src/lib/components/dashboard/containers/dynamic-dashboard-container/dynamic-dashboard-container.component.ts","../../../projects/mantle/src/lib/components/dashboard/containers/dynamic-dashboard-container/dynamic-dashboard-container.component.html","../../../projects/mantle/src/lib/components/dashboard/dynamic-dashboard/dynamic-dashboard.component.ts","../../../projects/mantle/src/lib/components/dashboard/dynamic-dashboard/dynamic-dashboard.component.html","../../../projects/mantle/src/lib/components/pages/dashboard-page/dashboard-page.component.ts","../../../projects/mantle/src/lib/components/pages/dashboard-page/dashboard-page.component.html","../../../projects/mantle/src/lib/components/titles/content-title/content-title.component.ts","../../../projects/mantle/src/lib/components/titles/content-title/content-title.component.html","../../../projects/mantle/src/lib/components/pages/layout-editor-page/layout-editor-page.component.ts","../../../projects/mantle/src/lib/components/pages/layout-editor-page/layout-editor-page.component.html","../../../projects/mantle/src/lib/services/adapters/web-api-crud.adapter.ts","../../../projects/mantle/src/lib/components/pages/list-page/list-page-datasource.ts","../../../projects/mantle/src/lib/components/widgets/search-panel/search-panel.component.ts","../../../projects/mantle/src/lib/components/widgets/search-panel/search-panel.component.html","../../../projects/mantle/src/lib/components/pages/list-page/list-page.component.ts","../../../projects/mantle/src/lib/components/pages/list-page/list-page.component.html","../../../projects/mantle/src/lib/components/widgets/delete-confirmation-dialog/delete-confirmation-dialog.component.ts","../../../projects/mantle/src/lib/components/widgets/delete-confirmation-dialog/delete-confirmation-dialog.component.html","../../../projects/mantle/src/lib/components/widgets/save-confirmation-dialog/save-confirmation-dialog.component.ts","../../../projects/mantle/src/lib/components/widgets/save-confirmation-dialog/save-confirmation-dialog.component.html","../../../projects/mantle/src/lib/services/confirmation.service.ts","../../../projects/mantle/src/lib/components/pages/form-page/form-page.component.ts","../../../projects/mantle/src/lib/components/pages/form-page/form-page.component.html","../../../projects/mantle/src/lib/components/pages/detail-page/detail-page.component.ts","../../../projects/mantle/src/lib/components/pages/detail-page/detail-page.component.html","../../../projects/mantle/src/lib/components/pages/documents-page/documents-page.component.ts","../../../projects/mantle/src/lib/components/pages/documents-page/documents-page.component.html","../../../projects/mantle/src/lib/components/pages/tabbed-page/tabbed-page.component.ts","../../../projects/mantle/src/lib/components/pages/tabbed-page/tabbed-page.component.html","../../../projects/mantle/src/lib/components/pages/roster-page/roster-gantt.data.ts","../../../projects/mantle/src/lib/components/pages/roster-page/roster-page.component.ts","../../../projects/mantle/src/lib/components/pages/roster-page/roster-page.component.html","../../../projects/mantle/src/lib/components/pages/export-page/export-page.component.ts","../../../projects/mantle/src/lib/components/pages/export-page/export-page.component.html","../../../projects/mantle/src/lib/components/navigation/nav-tree/nav-tree.component.ts","../../../projects/mantle/src/lib/components/navigation/nav-tree/nav-tree.component.html","../../../projects/mantle/src/lib/components/details/dialog-details/dialog-details.component.ts","../../../projects/mantle/src/lib/components/details/dialog-details/dialog-details.component.html","../../../projects/mantle/src/lib/components/navigation/reroute/reroute.component.ts","../../../projects/mantle/src/lib/components/widgets/qr-code-dialog/qr-code-dialog.component.ts","../../../projects/mantle/src/lib/components/widgets/qr-code-dialog/qr-code-dialog.component.html","../../../projects/mantle/src/lib/mantle.module.ts","../../../projects/mantle/src/lib/config/charts/progress-bar-chart.data.ts","../../../projects/mantle/src/lib/config/charts/gantt-chart.data.ts","../../../projects/mantle/src/lib/config/charts/pie-chart.data.ts","../../../projects/mantle/src/lib/config/charts/column-chart.data.ts","../../../projects/mantle/src/lib/config/charts/spline-chart.data.ts","../../../projects/mantle/src/lib/language-packs/en.data.ts","../../../projects/mantle/src/lib/language-packs/ms.data.ts","../../../projects/mantle/src/lib/models/screen-size-map.model.ts","../../../projects/mantle/src/lib/services/current-user.service.ts","../../../projects/mantle/src/lib/services/chart.service.ts","../../../projects/mantle/src/lib/services/websocket.service.ts","../../../projects/mantle/src/lib/services/password-check.service.ts","../../../projects/mantle/src/lib/services/feature-config.service.ts","../../../projects/mantle/src/lib/guards/session.guard.ts","../../../projects/mantle/src/lib/guards/feature.guard.ts","../../../projects/mantle/src/lib/guards/password-check.guard.ts","../../../projects/mantle/src/public-api.ts","../../../projects/mantle/src/codetectonics-mantle.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DataBroadcastService {\n\n public sessionData: BehaviorSubject<any> = new BehaviorSubject<any>({});\n public locale: BehaviorSubject<any> = new BehaviorSubject<any>({});\n\n}","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ObjectService {\n\n constructor() {}\n\n public removeEmptyAttributes(object: any = {}) {\n for (var attr in object) {\n if (object[attr] === null || object[attr] === undefined || object[attr] === '') {\n delete object[attr];\n }\n }\n }\n\n public removeAllAttributes(object: any = {}) {\n for (var attr in object) {\n delete object[attr];\n }\n }\n\n public deepMerge(...objects: any[]) {\n let result: any = {};\n objects.forEach((object: any) => {\n if (!this.isObject(result) || !this.isObject(object)) {\n result = object;\n }\n else {\n Object.entries(object).forEach(([key, value]) => {\n if (this.isObject(value)) {\n result[key] = this.deepMerge(result[key] || {}, value);\n }\n else {\n result[key] = value;\n }\n });\n }\n });\n return result;\n }\n\n public deepClone(object: any) {\n let objectService = this;\n let copyFunction: (value: any) => any = function(value: any) {\n if (objectService.isObject(value)) {\n return objectService.deepClone(value);\n }\n else if (value instanceof Array) {\n return value.map((item: any) => {\n return copyFunction(item);\n });\n }\n else {\n return value;\n }\n }\n\n let result: any = {};\n Object.entries(object).forEach(([key, value]) => {\n result[key] = copyFunction(value);\n });\n\n return result;\n }\n\n public findKeyByValue(object: any, value: any) {\n return Object.keys(object).find((currentValue: any) => {\n return value == object[currentValue];\n })\n }\n\n public isObject(objValue: any) {\n return objValue && typeof objValue === 'object' && objValue.constructor === Object;\n }\n\n public isEmpty(object: any) {\n return Object.keys(object).length == 0;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DataBroadcastService } from '../services/data-broadcast.service';\nimport { ObjectService } from '../services/object.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocaleService {\n\n private AVAILABLE_LOCALES: any = {\n 'English': 'en',\n 'Melayu': 'ms'\n };\n private DEFAULT_LOCALE: string = 'ms';\n\n constructor(private translate: TranslateService, private dataBroadcastService: DataBroadcastService,\n private objectService: ObjectService) {\n this.translate.addLangs(this.availableLocaleCodes);\n this.translate.setDefaultLang(this.DEFAULT_LOCALE);\n\n const storedLocale = localStorage.getItem('locale');\n if (storedLocale) {\n this.translate.use(storedLocale);\n }\n else {\n this.setDefaultLocale();\n }\n\n this.dataBroadcastService.locale.next(this.currentLocale);\n\n this.dataBroadcastService.locale.subscribe((locale: any) => {\n if (locale == this.currentLocale) return;\n\n if (locale) {\n if (!this.availableLocales.includes(locale)) return;\n\n localStorage.setItem('locale', this.AVAILABLE_LOCALES[locale]);\n window.location.reload();\n }\n else {\n const locale = this.setDefaultLocale();\n localStorage.setItem('locale', locale);\n this.translate.use(locale);\n }\n });\n }\n\n private setDefaultLocale(): string {\n const browserLocale = this.translate.getBrowserLang();\n let locale = this.DEFAULT_LOCALE;\n if (!!browserLocale && this.availableLocaleCodes.includes(browserLocale)) {\n locale = browserLocale;\n }\n this.translate.use(locale);\n return locale;\n }\n\n clearLocale(): void {\n this.dataBroadcastService.locale.next(undefined);\n }\n\n get availableLocales(): string[] {\n return Object.keys(this.AVAILABLE_LOCALES);\n }\n\n private get availableLocaleCodes(): string[] {\n return Object.values(this.AVAILABLE_LOCALES);\n }\n\n get currentLocale(): string {\n return this.objectService.findKeyByValue(this.AVAILABLE_LOCALES, this.translate.currentLang) || '';\n }\n\n get currentLocaleCode(): string {\n return this.translate.currentLang;\n }\n\n getTranslation(key: string): string {\n return this.translate.instant(key);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { MatPaginatorIntl } from '@angular/material/paginator';\nimport { DataBroadcastService } from '../../../services/data-broadcast.service';\nimport { LocaleService } from '../../../services/locale.service';\n\n@Injectable()\nexport class CustomPaginatorIntl extends MatPaginatorIntl {\n\n constructor(private dataBroadcastService: DataBroadcastService, private localeService: LocaleService) {\n super();\n\n this.dataBroadcastService.locale.subscribe((locale: any) => {\n this.itemsPerPageLabel = this.localeService.getTranslation('mantle.paginator.items_per_page');\n this.firstPageLabel = this.localeService.getTranslation('mantle.paginator.first_page');\n this.previousPageLabel = this.localeService.getTranslation('mantle.paginator.previous_page');\n this.nextPageLabel = this.localeService.getTranslation('mantle.paginator.next_page');\n this.lastPageLabel = this.localeService.getTranslation('mantle.paginator.last_page');\n this.changes.next();\n });\n }\n\n getRangeLabel: (page: number, pageSize: number, length: number) => string = (\n page: number,\n pageSize: number,\n length: number,\n ) => {\n length = Math.max(length, 0);\n const startIndex = (page * pageSize) + 1;\n const endIndex = startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;\n \n const ofLabel = this.localeService.getTranslation('mantle.paginator.of');\n return `${startIndex} - ${endIndex} ${ofLabel} ${length}`;\n };\n\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatChipsModule, MAT_CHIPS_DEFAULT_OPTIONS } from '@angular/material/chips';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatPaginatorModule, MatPaginatorIntl } from '@angular/material/paginator';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatMomentDateModule, MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';\nimport { MatSnackBarModule, MAT_SNACK_BAR_DEFAULT_OPTIONS } from '@angular/material/snack-bar';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MatTreeModule } from '@angular/material/tree';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { CustomPaginatorIntl } from './components/navigation/paginator/custom-paginator-intl';\nimport { MtxSelectModule } from '@ng-matero/extensions/select';\nimport { MtxColorpickerModule } from '@ng-matero/extensions/colorpicker';\nimport { MtxDatetimepickerModule } from '@ng-matero/extensions/datetimepicker';\nimport { provideMomentDatetimeAdapter } from '@ng-matero/extensions-moment-adapter';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n MatBadgeModule,\n MatButtonModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatDatepickerModule,\n MatDialogModule,\n MatExpansionModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatSelectModule,\n MatSidenavModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatProgressSpinnerModule,\n MatTableModule,\n MatPaginatorModule,\n MatSortModule,\n MatMomentDateModule,\n MatSnackBarModule,\n MatTreeModule,\n MatAutocompleteModule,\n MtxSelectModule,\n MtxColorpickerModule,\n MtxDatetimepickerModule,\n ],\n exports: [\n MatBadgeModule,\n MatButtonModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatDatepickerModule,\n MatDialogModule,\n MatExpansionModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatSelectModule,\n MatSidenavModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatProgressSpinnerModule,\n MatTableModule,\n MatPaginatorModule,\n MatSortModule,\n MatMomentDateModule,\n MatSnackBarModule,\n MatTreeModule,\n MatAutocompleteModule,\n MtxSelectModule,\n MtxColorpickerModule,\n MtxDatetimepickerModule,\n ],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]\n },\n provideMomentDatetimeAdapter({\n parse: {\n dateInput: ['YYYY-MM-DD', 'DD/MM/YYYY'],\n monthInput: 'MMMM',\n yearInput: 'YYYY',\n timeInput: ['HH:mm'],\n datetimeInput: ['YYYY-MM-DD HH:mm', 'DD/MM/YYYY HH:mm'],\n },\n display: {\n dateInput: 'DD/MM/YYYY',\n monthInput: 'MMMM',\n yearInput: 'YYYY',\n timeInput: 'HH:mm',\n datetimeInput: 'DD/MM/YYYY HH:mm',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n popupHeaderDateLabel: 'MMM DD, ddd',\n },\n }),\n { provide: MAT_SNACK_BAR_DEFAULT_OPTIONS, useValue: { duration: 3000, horizontalPosition: 'right' } },\n { provide: MAT_CHIPS_DEFAULT_OPTIONS, useValue: { separatorKeyCodes: [ENTER, COMMA] } },\n { provide: MatPaginatorIntl, useClass: CustomPaginatorIntl },\n ]\n})\nexport class MaterialModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\nimport moment from 'moment';\n\n@Pipe({\n name: 'dynamicPipe',\n standalone: false\n})\nexport class DynamicPipe implements PipeTransform {\n\n constructor() {}\n\n transform(value: string, modifier: string): string {\n switch (modifier) {\n case 'currency': return this.transformCurrency(value); break;\n case 'date': return this.transformDate(value); break;\n case 'datetime': return this.transformDateTime(value); break;\n default: return this.transformString(value);\n }\n }\n\n transformString(value: string): string {\n return value;\n }\n\n transformCurrency(value: string): string {\n return parseFloat(value).toFixed(2);\n }\n\n transformDate(value: string): string {\n if (!value) return '';\n return moment(value, 'YYYY-MM-DD').format('DD/MM/YYYY');\n }\n\n transformDateTime(value: string): string {\n if (!value) return '';\n return moment(value, 'YYYY-MM-DD HH:mm').format('DD/MM/YYYY @ HH:mm');\n }\n\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const ENVIRONMENT = new InjectionToken<any>('environment');\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { DirectUpload } from \"@rails/activestorage\";\nimport { AngularTokenService } from '@citizenobserver/angular-token';\nimport { map } from 'rxjs/operators';\nimport { ENVIRONMENT } from '../tokens/environment.token';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WebApiService {\n\n private apiUrl: string;\n\n constructor(@Inject(ENVIRONMENT) protected environment: any, protected http: HttpClient,\n protected angularTokenService: AngularTokenService) {\n this.apiUrl = this.environment.API_URL;\n }\n\n public get(path: string, params: any = {}, headers: any = {}) {\n const endpoint = this.absoluteUrl(path);\n return this.http.get(endpoint, { params: params, headers: this.prepareHeaders(headers) });\n }\n\n public create(path: string, params: any = {}, headers: any = {}) {\n const endpoint = this.absoluteUrl(path);\n return this.http.post(endpoint, params, { headers: this.prepareHeaders(headers) });\n }\n\n public update(path: string, params: any = {}, headers: any = {}) {\n const endpoint = this.absoluteUrl(path);\n return this.http.put(endpoint, params, { headers: this.prepareHeaders(headers) });\n }\n\n public destroy(path: string, params: any = {}, headers: any = {}) {\n const endpoint = this.absoluteUrl(path);\n return this.http.delete(endpoint, { params: params, headers: this.prepareHeaders(headers) });\n }\n\n public getBlob(path: string, params: any = {}, headers: any = {}) {\n const endpoint = this.absoluteUrl(path);\n return this.http.get(endpoint, { params: params, headers: this.prepareHeaders(headers), responseType: 'blob' });\n }\n\n public download(path: string, filename: string, params: any = {}, headers: any = {}) {\n return this.getBlob(path, params, headers).pipe(\n map(res => {\n const a = document.createElement('a');\n a.href = URL.createObjectURL(res);\n a.download = filename;\n a.click();\n })\n );\n }\n\n public upload(file: File, onSuccess: (res: any) => void, onFailure: (error: string) => void) {\n const endpoint = this.absoluteUrl('rails/active_storage/direct_uploads');\n const upload = new DirectUpload(file, endpoint, {\n directUploadWillCreateBlobWithXHR: (xhr: any) => {\n // Add credentials to upload request\n let currentAuthData = this.angularTokenService.currentAuthData;\n if (currentAuthData) {\n xhr.setRequestHeader('access-token', currentAuthData.accessToken);\n xhr.setRequestHeader('token-type', currentAuthData.tokenType);\n xhr.setRequestHeader('client', currentAuthData.client);\n xhr.setRequestHeader('expiry', currentAuthData.expiry);\n xhr.setRequestHeader('uid', currentAuthData.uid);\n\n xhr.addEventListener('loadend', (event: any) => {\n localStorage.setItem('accessToken', xhr.getResponseHeader('access-token'));\n localStorage.setItem('client', xhr.getResponseHeader('client'));\n localStorage.setItem('expiry', xhr.getResponseHeader('expiry'));\n localStorage.setItem('tokenType', xhr.getResponseHeader('token-type'));\n localStorage.setItem('uid', xhr.getResponseHeader('uid'));\n\n this.angularTokenService.getAuthDataFromStorage();\n });\n }\n }\n })\n\n upload.create((error: any, res: any) => {\n if (error) {\n if (onFailure) onFailure(error);\n } else {\n if (onSuccess) onSuccess(res);\n }\n });\n }\n\n public absoluteUrl(url: string): string {\n if (url.startsWith('http')) return url;\n\n return `${this.apiUrl}/${url}`;\n }\n\n protected prepareHeaders(headers: any = {}) {\n return headers;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Observable, Subscriber } from 'rxjs';\nimport { WebApiService } from '../services/web-api.service';\n\n@Pipe({\n name: 'secureImage',\n standalone: false\n})\nexport class SecureImagePipe implements PipeTransform {\n\n constructor(private webApiService: WebApiService) { }\n\n transform(src: string): Observable<string> {\n return Observable.create((observer: Subscriber<string>): void => {\n const responseHandler = (result: string = 'assets/fallback.png') => {\n observer.next(result);\n observer.complete();\n }\n\n this.webApiService.getBlob(src).subscribe(\n (response: any) => {\n const reader = new FileReader();\n reader.onloadend = () => responseHandler(reader.result as string);\n reader.onerror = () => responseHandler();\n reader.readAsDataURL(response);\n },\n (response: any) => {\n responseHandler();\n }\n );\n });\n }\n\n}\n","import {Directive, HostListener} from \"@angular/core\";\n\n@Directive({\n selector: \"[click-stop-propagation]\",\n standalone: false\n})\nexport class ClickStopPropagationDirective\n{\n @HostListener(\"click\", [\"$event\"])\n public onClick(event: any): void\n {\n event.stopPropagation();\n }\n}\n","import { Directive, Output, EventEmitter, HostBinding, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[file-dropzone]',\n standalone: false\n})\nexport class FileDropzoneDirective {\n @HostBinding('class.file-dropzone') fileDropzone: boolean = true;\n @HostBinding('class.fileover') fileOver: boolean = false;\n @Output() fileDropped = new EventEmitter<any>();\n\n @HostListener('dragover', ['$event'])\n public onDragOver(event: any) {\n event.preventDefault();\n event.stopPropagation();\n this.fileOver = true;\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(event: any) {\n event.preventDefault();\n event.stopPropagation();\n this.fileOver = false;\n }\n\n @HostListener('drop', ['$event'])\n public ondrop(event: any) {\n event.preventDefault();\n event.stopPropagation();\n this.fileOver = false;\n\n let files = event.dataTransfer.files;\n if (files.length > 0) this.fileDropped.emit(files);\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'mantle-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss'],\n standalone: false,\n\tinputs: ['delay'],\n\thost: { '[style.animation-delay.ms]': 'delay' }\n})\nexport class LoaderComponent {\n\n\tpublic delay: number = 1000;\n\n}\n","<mat-spinner class=\"indicator\" color=\"accent\" [strokeWidth]=\"4\" [diameter]=\"200\"></mat-spinner>\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { BreakpointObserver, Breakpoints, BreakpointState } from '@angular/cdk/layout';\nimport { Subject, BehaviorSubject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ScreenSizeService implements OnDestroy {\n\n private screenSizes: any = {\n xs: Breakpoints.XSmall,\n sm: Breakpoints.Small,\n md: Breakpoints.Medium,\n lg: Breakpoints.Large,\n xl: Breakpoints.XLarge,\n };\n\n public screenSize: BehaviorSubject<any> = new BehaviorSubject<any>({});\n private destroyed = new Subject<void>();\n\n constructor(private breakpointObserver: BreakpointObserver) {\n this.breakpointObserver.observe(\n Object.values(this.screenSizes)\n ).pipe(takeUntil(this.destroyed)).subscribe((breakpointState: BreakpointState) => {\n let currentScreenSize = 'default';\n for (const [key, value] of Object.entries(this.screenSizes)) {\n if (breakpointState.breakpoints[value as string]) currentScreenSize = key;\n }\n\n this.screenSize.next(currentScreenSize);\n });\n }\n\n ngOnDestroy() {\n this.destroyed.next();\n this.destroyed.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ObjectService } from './object.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ArrayService {\n\n constructor(private objectService: ObjectService) {}\n\n public removeItem(array: any[], item: any): any[] {\n let index = array.indexOf(item);\n array.splice(index, 1);\n return array;\n }\n\n public replaceItem(array: any[], item: any, newItem: any): any[] {\n let index = array.indexOf(item);\n array[index] = newItem;\n return array;\n }\n\n public removeById(array: any[], id: string): any[] {\n return this.removeByAttribute(array, 'id', id);\n }\n\n public replaceById(array: any[], id: string, newItem: any): any[] {\n return this.replaceByAttribute(array, 'id', id, newItem);\n }\n\n public removeByAttribute(array: any[], attr: string, val: any): any[] {\n for (let i = array.length - 1; i >= 0; i--) {\n if (array[i][attr] == val) array.splice(i, 1);\n }\n return array;\n }\n\n public replaceByAttribute(array: any[], attr: string, val: any, newItem: any): any[] {\n for (let i = array.length - 1; i >= 0; i--) {\n if (array[i][attr] == val) array[i] = newItem;\n }\n return array;\n }\n\n public findByAttribute(array: any[], attr: string, val: any): any {\n for (let i = 0; i < array.length; i++) {\n let item = array[i];\n if (item[attr] == val) return item;\n }\n return null;\n }\n\n public hasItemWithAttributes(array: any[], criteria: any = {}): boolean {\n return array.some((item: any) => {\n return Object.keys(criteria).every((key: string) => {\n return item[key] && criteria[key] && item[key] === criteria[key];\n })\n });\n }\n\n public hasItem(array: any[], val: any): boolean {\n return array.some((item: any) => {\n return item == val;\n });\n }\n\n public sortAscendingByAttribute(array: any[], attr: string): any[] {\n return array.sort((a, b) => a[attr] > b[attr] ? 1 : -1);\n }\n\n public sortDescendingByAttribute(array: any[], attr: string): any[] {\n return array.sort((a, b) => a[attr] < b[attr] ? 1 : -1);\n }\n\n public maxValueForAttribute(array: any[], attr: string): any {\n if (array.length == 0) return null;\n return this.sortDescendingByAttribute([...array], attr)[0][attr];\n }\n\n public deepClone(array: any[]) {\n return this.objectService.deepClone({ array: array }).array;\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mantle-actions-attribute-display',\n templateUrl: './actions-attribute-display.component.html',\n styleUrls: ['./actions-attribute-display.component.scss'],\n standalone: false\n})\nexport class ActionsAttributeDisplayComponent {\n\n @Input() value: any = {};\n @Input() actions: any[] = [];\n\n}\n","<ng-container *ngFor=\"let action of actions\">\n <button mat-icon-button\n *ngIf=\"action.show\"\n click-stop-propagation\n [color]=\"action.colour\"\n type=\"button\"\n (click)=\"action.onClick(value)\">\n <mat-icon>{{ action.icon }}</mat-icon>\n </button>\n</ng-container>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mantle-icon-attribute-display',\n templateUrl: './icon-attribute-display.component.html',\n styleUrls: ['./icon-attribute-display.component.scss'],\n standalone: false\n})\nexport class IconAttributeDisplayComponent {\n\n @Input() value: any = {};\n\n}\n","<mat-icon *ngIf=\"value\">{{ value }}</mat-icon>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mantle-chip-attribute-display',\n templateUrl: './chip-attribute-display.component.html',\n styleUrls: ['./chip-attribute-display.component.scss'],\n standalone: false\n})\nexport class ChipAttributeDisplayComponent {\n\n @Input() value: any = '';\n @Input() options: any = {};\n\n get chips() {\n if (!this.value) return [];\n\n return this.value.split(',').map((rawChip: string) => {\n return rawChip.trim();\n })\n }\n\n get valueSpecificClass(): string {\n if (!this.options) return '';\n if (!this.options.colours) return '';\n return this.options.colours[this.value] || '';\n }\n\n}\n","<mat-chip-set>\n <mat-chip *ngFor=\"let chip of chips\" [ngClass]=\"valueSpecificClass\" selected>{{ chip }}</mat-chip>\n</mat-chip-set>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mantle-section-title',\n templateUrl: './section-title.component.html',\n styleUrls: ['./section-title.component.scss'],\n standalone: false\n})\nexport class SectionTitleComponent {\n\n @Input() title!: string;\n\n constructor() { }\n\n}\n","<h2 class=\"section-title\">\n {{ title | translate }}\n</h2>\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\nimport { FileAttachment } from '../../../data-structures/file-attachment.structure';\nimport { WebApiService } from '../../../services/web-api.service';\n\n@Component({\n selector: 'mantle-file-preview-dialog',\n templateUrl: './file-preview-dialog.component.html',\n styleUrls: ['./file-preview-dialog.component.scss'],\n standalone: false\n})\nexport class FilePreviewDialogComponent {\n\n private filename: string;\n private downloadUrl: string;\n public previewUrl: string;\n\n constructor(private dialogRef: MatDialogRef<FilePreviewDialogComponent>,\n @Inject(MAT_DIALOG_DATA) private params: FileAttachment,\n private webApiService: WebApiService) {\n this.filename = this.params.filename;\n this.downloadUrl = this.params.source_url;\n this.previewUrl = this.params.preview_url;\n }\n\n onDownload(): void {\n this.webApiService.download(this.downloadUrl, this.filename).subscribe();\n }\n\n onCancel(): void {\n this.dialogRef.close();\n }\n\n}\n","<div mat-dialog-title fxLayout=\"row\" fxLayoutAlign=\"start\" fxLayoutGap=\"8px\" class=\"dialog-title-section\">\n <mantle-section-title fxFlex=\"1 0 1px\" title=\"Preview\"></mantle-section-title>\n <button fxFlex=\"0 0 auto\" mat-icon-button tabindex=\"-1\" (click)=\"onCancel()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content class=\"content-section\">\n\n <img *ngIf=\"previewUrl\" class=\"preview-image\" [attr.src]=\"previewUrl | secureImage | async\" />\n\n <h2 Adding *ngIf=\"!previewUrl\">{{ 'mantle.file_preview.unable_to_preview_file' | translate }}</h2>\n\n</mat-dialog-content>\n\n<mat-dialog-actions fxLayout=\"row\" class=\"actions-section\">\n <div fxFlex=\"1 1 auto\"></div>\n <button fxFlex=\"0 0 auto\" mat-button (click)=\"onDownload()\">{{ 'mantle.buttons.download' | translate }}</button>\n</mat-dialog-actions>\n","import { Component, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from \"@angular/material/dialog\";\nimport { FilePreviewDialogComponent } from '../../../../components/widgets/file-preview-dialog/file-preview-dialog.component';\nimport { FileAttachment } from '../../../../data-structures/file-attachment.structure';\n\n@Component({\n selector: 'mantle-file-attribute-display',\n templateUrl: './file-attribute-display.component.html',\n styleUrls: ['./file-attribute-display.component.scss'],\n standalone: false\n})\nexport class FileAttributeDisplayComponent {\n\n @Input() value: FileAttachment | undefined;\n\n constructor(private dialog: MatDialog) { }\n\n openPreviewDialog() {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = this.value;\n dialogConfig.minWidth = '400px';\n dialogConfig.maxWidth = '80%';\n dialogConfig.autoFocus = false;\n\n this.dialog.open(FilePreviewDialogComponent, dialogConfig);\n }\n\n isString(val: any): boolean { return (typeof val === 'string') && (val.length > 0); }\n\n}\n","<div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <div fxFlex=\"0 1 auto\" class=\"attachment-field\">{{ value?.filename }}</div>\n <div fxFlex=\"1 1 auto\" class=\"attachment-button\">\n <button *ngIf=\"value?.source_url\"\n mat-mini-fab\n color=\"primary\"\n class=\"preview-button\"\n click-stop-propagation\n (click)=\"openPreviewDialog()\">\n <mat-icon>attach_file</mat-icon>\n </button>\n <mat-icon class=\"unsaved-upload-indicator\" *ngIf=\"isString(value)\">attach_file</mat-icon>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from \"@angular/material/dialog\";\nimport { FilePreviewDialogComponent } from '../../../../components/widgets/file-preview-dialog/file-preview-dialog.component';\nimport { FileAttachment } from '../../../../data-structures/file-attachment.structure';\n\n@Component({\n selector: 'mantle-image-attribute-display',\n templateUrl: './image-attribute-display.component.html',\n styleUrls: ['./image-attribute-display.component.scss'],\n standalone: false\n})\nexport class ImageAttributeDisplayComponent {\n\n @Input() value: FileAttachment | undefined;\n\n constructor(private dialog: MatDialog) { }\n\n openPreviewDialog() {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = this.value;\n dialogConfig.maxWidth = '80%';\n dialogConfig.autoFocus = false;\n\n this.dialog.open(FilePreviewDialogComponent, dialogConfig);\n }\n\n isString(val: any): boolean { return (typeof val === 'string') && (val.length > 0); }\n\n}\n","<div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <div fxFlex=\"0 1 auto\" class=\"attachment-field\">{{ value?.filename }}</div>\n <div fxFlex=\"1 1 auto\" class=\"attachment-button\">\n <button *ngIf=\"value?.source_url\"\n mat-mini-fab\n color=\"primary\"\n class=\"preview-button\"\n click-stop-propagation\n (click)=\"openPreviewDialog()\">\n <mat-icon>image</mat-icon>\n </button>\n </div>\n <mat-icon class=\"unsaved-upload-indicator\" *ngIf=\"isString(value)\">image</mat-icon>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mantle-markdown-attribute-display',\n templateUrl: './markdown-attribute-display.component.html',\n styleUrls: ['./markdown-attribute-display.component.scss'],\n standalone: false\n})\nexport class MarkdownAttributeDisplayComponent {\n\n @Input() value: any = '';\n\n}\n","<markdown ngPreserveWhitespaces class=\"markdown-wrapper\">\n {{ value }}\n</markdown>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mantle-multiselect-display',\n templateUrl: './multiselect-display.component.html',\n styleUrls: ['./multiselect-display.component.scss'],\n standalone: false,\n})\nexport class MultiselectDisplayComponent {\n\n @Input() value: any = '';\n @Input() options: any = {};\n\n get chips() {\n if (!this.value) return [];\n\n return this.value.split(',').map((rawChip: string) => {\n return rawChip.trim();\n })\n }\n\n get valueSpecificClass(): string {\n if (!this.options) return '';\n if (!this.options.colours) return '';\n return this.options.colours[this.value] || '';\n }\n\n}\n","<mat-chip-set>\n <mat-chip *ngFor=\"let chip of chips\" [ngClass]=\"valueSpecificClass\" selected>{{ chip }}</mat-chip>\n</mat-chip-set>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mantle-rich-text-display',\n templateUrl: './rich-text-display.component.html',\n styleUrls: ['./rich-text-display.component.scss'],\n standalone: false\n})\nexport class RichTextDisplayComponent {\n\n public quillModules = { toolbar: false };\n\n @Input() value: any = '';\n\n}\n","<div class=\"rich-text-editor-wrapper\">\n <quill-editor class=\"quill-editor\"\n theme=\"snow\"\n placeholder=\"\"\n [ngModel]=\"value\"\n [modules]=\"quillModules\"\n [readOnly]=\"true\">\n </quill-editor>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'mantle-link-attribute-display',\n templateUrl: './link-attribute-display.component.html',\n styleUrls: ['./link-attribute-display.component.scss'],\n standalone: false\n})\nexport class LinkAttributeDisplayComponent {\n\n @Input() value: string = '';\n\n constructor(private router: Router) { }\n\n openLink() {\n this.router.navigateByUrl(this.value);\n }\n\n}\n","<a *ngIf=\"value\"\n [href]=\"value\"\n mat-mini-fab\n color=\"primary\"\n class=\"link-button\"\n click-stop-propagation>\n <mat-icon>link</mat-icon>\n</a>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mantle-thumbnail-display',\n templateUrl: './thumbnail-display.component.html',\n styleUrls: ['./thumbnail-display.component.scss'],\n standalone: false\n})\nexport class ThumbnailDisplayComponent {\n\n @Input() value: string = '';\n\n @Input() size: string = '40px';\n @Input() placeholder: string = '';\n @Input() circular: boolean = false;\n\n constructor() { }\n\n}\n","<div class=\"thumbnail-wrapper\" [ngStyle]=\"{ width: size, height: size }\">\n <img *ngIf=\"value\" [attr.src]=\"value | secureImage | async\" [class.circular]=\"circular\" />\n <mat-icon *ngIf=\"!value && placeholder\" [style.font-size]=\"size\">{{ placeholder }}</mat-icon>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { ArrayService } from '../../../../services/array.service';\nimport type { DynamicFormField } from '../../../../services/dynamic-form.service';\nimport type { DynamicTableColumn } from '../../../../data-structures/dynamic-layout.structure';\n\n@Component({\n selector: 'mantle-dynamic-attribute-display',\n templateUrl: './dynamic-attribute-display.component.html',\n styleUrls: ['./dynamic-attribute-display.component.scss'],\n standalone: false\n})\nexport class DynamicAttributeDisplayComponent {\n\n @Input() value: any = '';\n @Input() field?: DynamicFormField | DynamicTableColumn;\n @Input() fieldType: string = '';\n @Input() options: any = {};\n\n constructor(private arrayService: ArrayService) { }\n\n dropdownValueLabel(value: string): string {\n if (this.field == null) return value;\n\n let option = this.arrayService.findByAttribute(this.field.options['values'], 'value', value);\n return option?.label;\n }\n\n}\n","<ng-container [ngSwitch]=\"field?.type || fieldType\">\n\n <ng-container *ngSwitchCase=\"'chips'\">\n <mantle-chip-attribute-display [value]=\"value\" [options]=\"options\">\n </mantle-chip-attribute-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'chips-lg'\">\n <mantle-chip-attribute-display [value]=\"value\" [options]=\"options\">\n </mantle-chip-attribute-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'file'\">\n <mantle-file-attribute-display [value]=\"value\">\n </mantle-file-attribute-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'image'\">\n <mantle-image-attribute-display [value]=\"value\">\n </mantle-image-attribute-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'link'\">\n <mantle-link-attribute-display [value]=\"value\">\n </mantle-link-attribute-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'thumbnail'\">\n <mantle-thumbnail-display [value]=\"value\"\n [size]=\"options.size\" [placeholder]=\"options.placeholder\" [circular]=\"options.circular\">\n </mantle-thumbnail-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'dropdown'\">\n {{ dropdownValueLabel(value) | dynamicPipe: fieldType }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'dropdown-md'\">\n {{ dropdownValueLabel(value) | dynamicPipe: fieldType }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'dropdown-lg'\">\n {{ dropdownValueLabel(value) | dynamicPipe: fieldType }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'multiselect'\">\n <mantle-multiselect-display [value]=\"value\" [options]=\"options\">\n </mantle-multiselect-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'multiselect-md'\">\n <mantle-multiselect-display [value]=\"value\" [options]=\"options\">\n </mantle-multiselect-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'multiselect-lg'\">\n <mantle-multiselect-display [value]=\"value\" [options]=\"options\">\n </mantle-multiselect-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'markdown'\">\n <mantle-markdown-attribute-display [value]=\"value\">\n </mantle-markdown-attribute-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'rich-text'\">\n <mantle-rich-text-display [value]=\"value\">\n </mantle-rich-text-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'actions'\">\n <mantle-actions-attribute-display [actions]=\"field?.options?.actions!\" [value]=\"value\">\n </mantle-actions-attribute-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'icon'\">\n <mantle-icon-attribute-display [value]=\"value\">\n </mantle-icon-attribute-display>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n {{ value | dynamicPipe: fieldType }}\n </ng-container>\n\n</ng-container>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mantle-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrl: './tooltip.component.scss',\n standalone: false\n})\nexport class TooltipComponent {\n @Input() message!: string;\n}\n","<button mat-icon-button\n class=\"mantle-tooltip\"\n disabled\n disabledInteractive\n disableRipple\n [matTooltip]=\"message\"\n matTooltipPosition=\"right\">\n <mat-icon>help</mat-icon>\n</button>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutGridSection } from '../../../../data-structures/dynamic-layout.structure';\nimport { DynamicFormField } from '../../../../services/dynamic-form.service';\nimport { ScreenSizeService } from '../../../../services/screen-size.service';\n\n@Component({\n selector: 'mantle-grid-details-section',\n templateUrl: './grid-details-section.component.html',\n styleUrls: ['./grid-details-section.component.scss'],\n standalone: false\n})\nexport class GridDetailsSectionComponent {\n\n @Input() data: any = {};\n @Input() section!: DynamicLayoutGridSection;\n @Input() defaultRowHeight: string = '76px';\n\n public numColumns: number = 1;\n\n private breakpointColumns = new Map([\n ['xs', 1],\n ['sm', 2],\n ['md', 2],\n ['lg', 3],\n ['xl', 4],\n ]);\n\n constructor(private screenSizeService: ScreenSizeService) {\n this.screenSizeService.screenSize.subscribe((screenSize: any) => {\n if (this.section?.singleColumn) {\n this.numColumns = 1;\n return;\n }\n\n this.numColumns = this.breakpointColumns.get(screenSize) || 1;\n });\n }\n\n getColSpanForField(attribute: DynamicFormField): number {\n if (this.numColumns == 1) return 1;\n else if (['text', 'markdown', 'rich-text', 'report-viewer'].includes(attribute.type)) return this.numColumns;\n else if (attribute.type.endsWith('-lg')) return this.numColumns;\n else if (attribute.type.endsWith('-md')) return 2;\n else return 1;\n }\n\n getRowSpanForField(attribute: DynamicFormField): number {\n if (attribute.type == 'text') return 2;\n else if (attribute.type == 'markdown') return 4;\n else if (attribute.type == 'rich-text') return 4;\n else if (attribute.type == 'report-viewer') return 8;\n else return 1;\n }\n\n}\n","<div class=\"grid-details-layout\">\n <mat-grid-list\n [rowHeight]=\"section.rowHeight || defaultRowHeight\"\n [cols]=\"section.singleColumn ? 1 : numColumns\"\n [class.multi-column]=\"section.singleColumn ? false : numColumns > 1\">\n\n <ng-container *ngFor=\"let field of section.elements\">\n <mat-grid-tile *ngIf=\"!field.hidden\" [colspan]=\"section.singleColumn ? 1 : getColSpanForField(field)\" [rowspan]=\"getRowSpanForField(field)\">\n <div class=\"value-area\">\n <div class=\"attribute-label\" [class.with-tooltip]=\"field.tooltip\">\n {{ field.label }}\n <mantle-tooltip *ngIf=\"field.tooltip\" [message]=\"field.tooltip\"></mantle-tooltip>\n </div>\n <div class=\"attribute-value\">\n <mantle-dynamic-attribute-display [fieldType]=\"field.type\" [value]=\"data[field.attr]\" [field]=\"field\"></mantle-dynamic-attribute-display>\n </div>\n </div>\n </mat-grid-tile>\n </ng-container>\n\n </mat-grid-list>\n</div>\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\nimport { DynamicLayoutGridSection } from '../../../data-structures/dynamic-layout.structure';\n\nexport interface DialogNestedDetailsParams {\n title: string;\n section: DynamicLayoutGridSection;\n data: any;\n showEditButton: boolean;\n}\n\n@Component({\n selector: 'mantle-dialog-nested-details',\n templateUrl: './dialog-nested-details.component.html',\n styleUrls: ['./dialog-nested-details.component.scss'],\n standalone: false\n})\nexport class DialogNestedDetailsComponent {\n\n public title: string;\n public section: DynamicLayoutGridSection;\n public data: any;\n public showEditButton: boolean;\n\n constructor(private dialogRef: MatDialogRef<DialogNestedDetailsComponent>,\n @Inject(MAT_DIALOG_DATA) private dialogNestedDetailsParams: DialogNestedDetailsParams) {\n this.title = this.dialogNestedDetailsParams.title;\n this.section = this.dialogNestedDetailsParams.section;\n this.data = this.dialogNestedDetailsParams.data;\n this.showEditButton = this.dialogNestedDetailsParams.showEditButton;\n }\n\n onEdit() {\n this.dialogRef.close({ edit: true });\n }\n\n onClose() {\n this.dialogRef.close();\n }\n\n}\n","<div mat-dialog-title fxLayout=\"row\" fxLayoutAlign=\"start\" fxLayoutGap=\"8px\" class=\"dialog-title-section\">\n <mantle-section-title fxFlex=\"1 0 1px\" [title]=\"title\"></mantle-section-title>\n <button fxFlex=\"0 0 auto\" mat-icon-button tabindex=\"-1\" (click)=\"onClose()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n\n <mantle-grid-details-section\n [section]=\"section\"\n [data]=\"data\">>\n </mantle-grid-details-section>\n\n</mat-dialog-content>\n\n<mat-dialog-actions *ngIf=\"showEditButton\" fxLayout=\"row\" class=\"actions-section\">\n <div fxFlex=\"1 1 auto\"></div>\n <button fxFlex=\"0 0 auto\" mat-button color=\"primary\" (click)=\"onEdit()\">{{ 'mantle.buttons.edit' | translate }}</button>\n</mat-dialog-actions>\n","import { DataSource } from '@angular/cdk/collections';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { BehaviorSubject, Observable, merge } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ArrayService } from '../../../services/array.service';\nimport { DynamicTableColumn } from '../../../data-structures/dynamic-layout.structure';\n\n/**\n * Data source for the List Page view. This class should\n * encapsulate all logic for fetching and manipulating the displayed data\n * (including sorting, pagination, and searching).\n */\nexport class DynamicTableDataSource extends DataSource<any> {\n paginator: MatPaginator | undefined;\n sort: MatSort | undefined;\n columns: DynamicTableColumn[] = [];\n listSubject: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\n\n constructor(private arrayService: ArrayService) {\n super();\n }\n\n /**\n * Connect this data source to the table. The table will only update when\n * the returned stream emits new items.\n * @returns A stream of the items to be rendered.\n */\n connect(): Observable<any[]> {\n if (this.paginator && this.sort) {\n // Combine everything that affects the rendered data into one update\n // stream for the data-table to consume.\n return merge(this.listSubject.asObservable(), this.paginator.page, this.sort.sortChange).pipe(\n map(() => {\n return this.getPagedData(this.getSortedData([...this.listSubject.value ]))\n .filter(item => { return !item._destroy });\n })\n );\n } else {\n throw Error('Please set the paginator and sort on the data source before connecting.');\n }\n }\n\n /**\n * Called when the table is being destroyed. Use this function, to clean up\n * any open connections or free any held resources that were set up during connect.\n */\n disconnect(): void {}\n\n /**\n * Paginate the data (client-side). If you're using server-side pagination,\n * this would be replaced by requesting the appropriate data from the server.\n */\n private getPagedData(data: any[]): any[] {\n if (this.paginator) {\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n return data.splice(startIndex, this.paginator.pageSize);\n } else {\n return data;\n }\n }\n\n /**\n * Sort the data (client-side). If you're using server-side sorting,\n * this would be replaced by requesting the appropriate data from the server.\n */\n private getSortedData(data: any[]): any[] {\n if (!this.sort) return data;\n\n if (!this.sort.active || !this.sort.direction) {\n this.sort.active = 'id';\n this.sort.direction = 'asc';\n }\n\n const sortAttr = this.sort.active;\n const isAsc = this.sort.direction === 'asc';\n const column = this.arrayService.findByAttribute(this.columns, 'attr', sortAttr);\n\n data.forEach((item: any) => {\n switch(column?.type) {\n case 'autocomplete':\n case 'dropdown':\n let selectedOption = this.arrayService.findByAttribute(column.options.values, 'value', item[sortAttr]);\n item['_sort'] = selectedOption?.label || item[sortAttr];\n break;\n default:\n item['_sort'] = item[sortAttr];\n }\n });\n\n return data.sort((a, b) => {\n return compare(a['_sort'], b['_sort'], isAsc);\n });\n }\n}\n\n/** Simple sort comparator for example ID/Name columns (for client-side sorting). */\nfunction compare(a: string | number, b: string | number, isAsc: boolean): number {\n if (a == b) return 0;\n else return (a < b ? -1 : 1) * (isAsc ? 1 : -1);\n}\n","import { Component, AfterViewInit, OnChanges, Input, Output, EventEmitter, ViewChild } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTable } from '@angular/material/table';\nimport { ArrayService } from '../../../services/array.service';\nimport { DynamicTableColumn } from '../../../data-structures/dynamic-layout.structure';\nimport { DynamicTableDataSource } from './dynamic-table-datasource';\n\n@Component({\n selector: 'mantle-dynamic-table',\n templateUrl: './dynamic-table.component.html',\n styleUrls: ['./dynamic-table.component.scss'],\n standalone: false\n})\nexport class DynamicTableComponent implements AfterViewInit, OnChanges {\n\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n @ViewChild(MatSort) sort!: MatSort;\n @ViewChild(MatTable) table!: MatTable<any>;\n\n @Input() columns!: DynamicTableColumn[];\n @Input() items!: any[];\n @Input() withClickableRows!: boolean;\n @Output() rowClicked = new EventEmitter<any>();\n\n private dataSource: DynamicTableDataSource;\n\n constructor(private arrayService: ArrayService) {\n this.dataSource = new DynamicTableDataSource(this.arrayService);\n }\n\n ngAfterViewInit(): void {\n this.dataSource.sort = this.sort;\n this.dataSource.paginator = this.paginator;\n this.dataSource.columns = this.columns;\n this.table.dataSource = this.dataSource;\n }\n\n ngOnChanges(): void {\n this.dataSource.listSubject.next(this.items);\n }\n\n listColumnAttrs(): string[] {\n return this.columns.filter(column => { return !column.hidden; })\n .map(column => { return column.attr; });\n }\n\n onRowClicked(row: any): void {\n if (!this.withClickableRows) return;\n\n this.rowClicked.emit(row);\n }\n\n}\n","<div class=\"horizontal-scroll-table\">\n <table mat-table class=\"full-width\" matSort>\n\n <ng-container *ngFor=\"let column of columns\">\n <ng-container *ngIf=\"!column.hidden\">\n <ng-container matColumnDef=\"{{ column.attr }}\" *ngIf=\"column.type != 'actions'\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ column.header }}</th>\n <td mat-cell *matCellDef=\"let row\">\n <mantle-dynamic-attribute-display [fieldType]=\"column.type\" [value]=\"row[column.attr]\" [field]=\"column\"></mantle-dynamic-attribute-display>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"{{ column.attr }}\" *ngIf=\"column.type == 'actions'\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header [disabled]=\"true\">{{ column.header }}</th>\n <td mat-cell *matCellDef=\"let row\" class=\"actions-column\">\n <mantle-dynamic-attribute-display [fieldType]=\"column.type\" [value]=\"row\" [field]=\"column\"></mantle-dynamic-attribute-display>\n </td>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"listColumnAttrs()\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: listColumnAttrs();\"\n (click)=\"onRowClicked(row)\"\n [class.clickable-row]=\"withClickableRows\">\n </tr>\n\n </table>\n</div>\n\n<mat-paginator #paginator\n [length]=\"items.length\"\n [pageIndex]=\"0\"\n [pageSize]=\"10\"\n [pageSizeOptions]=\"[5, 10, 20]\">\n</mat-paginator>\n","import { Component, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from \"@angular/material/dialog\";\nimport { DynamicLayoutTableSection } from '../../../../data-structures/dynamic-layout.structure';\nimport { DialogNestedDetailsComponent } from '../../../../components/details/dialog-nested-details/dialog-nested-details.component';\nimport { DetailPageService } from '../../../../services/interfaces/detail-page.service';\n\n@Component({\n selector: 'mantle-table-details-section',\n templateUrl: './table-details-section.component.html',\n styleUrls: ['./table-details-section.component.scss'],\n standalone: false\n})\nexport class TableDetailsSectionComponent {\n\n @Input() data!: any;\n @Input() section!: DynamicLayoutTableSection;\n @Input() detailPageService!: DetailPageService;\n\n constructor(private dialog: MatDialog) { }\n\n openDetailsDialog(record: any): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n title: 'Item',\n section: this.section.config.modal_section,\n data: record,\n showEditButton: false\n };\n dialogConfig.width = '80%';\n\n if (this.section.config.modal_section) {\n dialogConfig.data.section = this.detailPageService.detailDialogLayoutChanges(this.section.config.modal_section, record);\n }\n\n this.dialog.open(DialogNestedDetailsComponent, dialogConfig);\n }\n\n}\n","<div class=\"table-section-content\">\n <mantle-dynamic-table\n [columns]=\"section.elements\"\n [items]=\"data[section.config.attr]\"\n [withClickableRows]=\"true\"\n (rowClicked)=\"openDetailsDialog($event)\">\n </mantle-dynamic-table>\n</div>\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { DynamicTableColumn } from '../../../../data-structures/dynamic-layout.structure';\n\n@Component({\n selector: 'mantle-report-viewer-display',\n templateUrl: './report-viewer-display.component.html',\n styleUrls: ['./report-viewer-display.component.scss'],\n standalone: false\n})\nexport class ReportViewerDisplayComponent implements OnChanges {\n\n @Input() value: any = '';\n\n public columns: DynamicTableColumn[] = [];\n public items: any[] = [];\n\n ngOnChanges(changes: SimpleChanges) {\n this.columns = [];\n this.items = [];\n\n let values = changes.value.currentValue.generated_report || [];\n if (values.length == 0) return;\n\n let headers = Object.keys(values[0]);\n this.columns = headers.map((header: string) => {\n return {\n header: header,\n attr: header,\n type: 'string',\n options: {}\n }\n });\n\n this.items = values;\n }\n\n}\n","<mantle-dynamic-table [columns]=\"columns\"\n [items]=\"items\"\n [withClickableRows]=\"false\">\n</mantle-dynamic-table>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutReportSection } from '../../../../data-structures/dynamic-layout.structure';\n\n@Component({\n selector: 'mantle-report-details-section',\n templateUrl: './report-details-section.component.html',\n styleUrls: ['./report-details-section.component.scss'],\n standalone: false\n})\nexport class ReportDetailsSectionComponent {\n\n @Input() data!: any;\n @Input() section!: DynamicLayoutReportSection;\n\n}\n","<div class=\"table-section-content\">\n <ng-container *ngFor=\"let field of section.elements\">\n <ng-container [ngSwitch]=\"field.type\">\n <ng-container *ngSwitchCase=\"'report-viewer'\">\n <mantle-report-viewer-display [value]=\"data\">\n </mantle-report-viewer-display>\n </ng-container>\n </ng-container>\n </ng-container>\n</div>\n","import { DataSource } from '@angular/cdk/collections';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/**\n * Data source for the List Page view. This class should\n * encapsulate all logic for fetching and manipulating the displayed data\n * (including sorting, pagination, and searching).\n */\nexport class DraggableTableDataSource extends DataSource<any> {\n columns: string[] = [];\n listSubject: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\n\n constructor() {\n super();\n }\n\n /**\n * Connect this data source to the table. The table will only update when\n * the returned stream emits new items.\n * @returns A stream of the items to be rendered.\n */\n connect(): Observable<any[]> {\n return this.listSubject.pipe(\n map(() => {\n return this.listSubject.value.filter(item => { return !item._destroy });\n })\n );\n }\n\n /**\n * Called when the table is being destroyed. Use this function, to clean up\n * any open connections or free any held resources that were set up during connect.\n */\n disconnect(): void {}\n}\n","import { Component, Input, ViewChild, OnChanges } from '@angular/core';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { MatTable } from '@angular/material/table';\nimport { ArrayService } from '../../../services/array.service';\nimport { DraggableTableDataSource } from './draggable-table-datasource';\nimport { DynamicTableColumn } from '../../../data-structures/dynamic-layout.structure';\n\n@Component({\n selector: 'mantle-draggable-table',\n templateUrl: './draggable-table.component.html',\n styleUrls: ['./draggable-table.component.scss'],\n standalone: false\n})\nexport class DraggableTableComponent implements OnChanges {\n\n @ViewChild(MatTable) table!: MatTable<any>;\n\n @Input() columns!: DynamicTableColumn[];\n @Input() items!: any[];\n @Input() sortAttr!: string;\n @Input() writable!: boolean;\n\n public dataSource: DraggableTableDataSource;\n\n constructor(private arrayService: ArrayService) {\n this.dataSource = new DraggableTableDataSource();\n }\n\n ngOnChanges(): void {\n this.dataSource.columns = this.listColumnAttrs();\n this.dataSource.listSubject.next(this.items);\n }\n\n listColumnAttrs(): string[] {\n let columnAttrs = this.columns.map(column => { return column.attr; });\n if (this.writable) columnAttrs.unshift('drag');\n if (this.writable) columnAttrs.push('delete');\n return columnAttrs;\n }\n\n onDropped(event: CdkDragDrop<string>) {\n const previousIndex = this.items.findIndex(item => item === event.item.data);\n moveItemInArray(this.items, previousIndex, event.currentIndex);\n this.refreshOrdinals();\n this.dataSource.listSubject.next(this.items);\n }\n\n onDeleteClicked(row: any) {\n if (row.id) {\n row._destroy = 1;\n }\n else {\n this.arrayService.removeItem(this.items, row);\n }\n\n this.refreshOrdinals();\n this.dataSource.listSubject.next(this.items);\n }\n\n refreshOrdinals() {\n let currentOrdinal = 1;\n this.items.forEach((item: any) => {\n if (item._destroy) return;\n\n item[this.sortAttr] = currentOrdinal;\n currentOrdinal += 1;\n });\n }\n\n}\n","<mat-table\n #table\n [ngClass]=\"{ 'draggable-table-details': !writable, 'draggable-table-form': writable }\"\n [dataSource]=\"dataSource\"\n cdkDropList\n (cdkDropListDropped)=\"onDropped($event)\"\n cdkDropListData=\"items\"\n [cdkDropListDisabled]=\"!writable\"\n [cdkDropListSortingDisabled]=\"!writable\">\n\n <!-- Drag Column -->\n <ng-container matColumnDef=\"drag\" *ngIf=\"writable\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-icon class=\"drag-cursor\" (mousedown)=\"true;\">\n drag_indicator\n </mat-icon>\n </td>\n </ng-container>\n\n <ng-container *ngFor=\"let column of columns\">\n <ng-container matColumnDef=\"{{ column.attr }}\">\n <th mat-header-cell *matHeaderCellDef>{{ column.header | translate }}</th>\n <td mat-cell *matCellDef=\"let row\">\n <mantle-dynamic-attribute-display [fieldType]=\"column.type\" [value]=\"row[column.attr]\" [field]=\"column\"></mantle-dynamic-attribute-display>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container matColumnDef=\"delete\" *ngIf=\"writable\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let row\">\n <button mat-icon-button (click)=\"onDeleteClicked(row)\">\n <mat-icon>\n delete\n </mat-icon>\n </button>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"dataSource.columns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: dataSource.columns;\"\n cdkDrag\n [cdkDragData]=\"row\">\n </tr>\n</mat-table>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutRosterShiftListSection } from '../../../../data-structures/dynamic-layout.structure';\n\n@Component({\n selector: 'mantle-roster-shift-list-details-section',\n templateUrl: './roster-shift-list-details-section.component.html',\n styleUrls: ['./roster-shift-list-details-section.component.scss'],\n standalone: false\n})\nexport class RosterShiftListDetailsSectionComponent {\n\n @Input() data!: any;\n @Input() section!: DynamicLayoutRosterShiftListSection;\n\n constructor() { }\n\n}\n","<div class=\"roster-shift-list-content\">\n <mantle-draggable-table\n [columns]=\"section.elements\"\n [items]=\"data[section.config.attr]\"\n [sortAttr]=\"section.options.ordinal\"\n [writable]=\"false\">\n </mantle-draggable-table>\n</div>\n","import { Injectable } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\n\nexport class DynamicFormField {\n label: string;\n tooltip?: string;\n attr: string;\n type: string;\n options: any;\n default?: string;\n required!: boolean;\n disabled!: boolean;\n hidden!: boolean;\n\n constructor(options: {\n label: string;\n tooltip?: string;\n attr: string;\n type: string;\n options?: any;\n default?: string;\n required?: boolean;\n disabled?: boolean;\n hidden?: boolean;\n }) {\n this.label = options.label;\n this.tooltip = options.tooltip || '';\n this.attr = options.attr;\n this.type = options.type;\n this.options = options.options || {};\n this.default = options.default;\n this.required = !!options.required;\n this.disabled = !!options.disabled;\n this.hidden = !!options.hidden;\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DynamicFormService {\n\n constructor() { }\n\n toFormGroup(data: any = {}, formGroup: FormGroup = new FormGroup({})) : FormGroup {\n Object.keys(data).forEach(attr => {\n let formControl = new FormControl(data[attr] || undefined);\n formGroup.addControl(attr, formControl);\n });\n\n return formGroup;\n }\n\n generateFormInitData(fields: DynamicFormField[]): any[] {\n return fields.reduce((result: any, field: DynamicFormField) => {\n result[field.attr] = field.default;\n return result;\n }, {});\n }\n\n transformFormValue(formValue: any) {\n formValue = {...formValue};\n Object.keys(formValue).forEach((key: string) => {\n if (Array.isArray(formValue[key])) {\n formValue[key] = formValue[key].map((nestedFormValue: any) => {\n return this.transformFormValue(nestedFormValue);\n });\n }\n else if (formValue[key] && formValue[key].hasOwnProperty('signed_id')) {\n formValue[key] = formValue[key].signed_id;\n }\n\n if (key.startsWith('dynamic_attributes.')) {\n formValue['dynamic_attributes'] ||= {};\n formValue['dynamic_attributes'][key] = formValue[key];\n delete formValue[key];\n }\n });\n return formValue;\n }\n}\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatChipInputEvent } from '@angular/material/chips';\n\nexport interface Chip {\n name: string;\n}\n\n@Component({\n selector: 'mantle-chip-input',\n templateUrl: './chip-input.component.html',\n styleUrls: ['./chip-input.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ChipInputComponent),\n multi: true\n }\n ]\n})\nexport class ChipInputComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public removable: boolean = true;\n\n private value: any = null;\n public chips: Chip[] = [];\n\n constructor() { }\n\n onChange = (newValue: string) => { };\n registerOnChange(fn: (newValue: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n writeValue(newValue: any): void {\n this.value = newValue;\n this.setChipsFromValue();\n this.onChange(newValue);\n }\n\n add(event: MatChipInputEvent): void {\n const value = (event.value || '').trim();\n\n if (value) {\n this.chips.push({name: value});\n }\n\n this.setValueFromChips();\n this.onChange(this.value);\n\n event.input.value = '';\n }\n\n remove(chip: Chip): void {\n const index = this.chips.indexOf(chip);\n\n if (index >= 0) {\n this.chips.splice(index, 1);\n }\n\n this.setValueFromChips();\n this.onChange(this.value);\n }\n\n setValueFromChips() {\n this.value = this.chips.map(\n (chip: Chip) => {\n return chip.name.trim();\n }\n ).join(',');\n }\n\n setChipsFromValue() {\n if (!this.value || !this.value.trim()) return;\n\n this.chips = this.value.split(',').map(\n (chipName: string) => {\n return { name: chipName.trim() };\n }\n );\n }\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <mat-chip-grid #chipGrid [disabled]=\"disable\">\n <mat-chip-row *ngFor=\"let chip of chips\"\n color=\"accent\" selected\n [removable]=\"removable\"\n (removed)=\"remove(chip)\">\n {{ chip.name }}\n <button matChipRemove *ngIf=\"removable\">\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n\n <input [matChipInputFor]=\"chipGrid\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"add($event)\"\n autocomplete=\"off\">\n </mat-chip-grid>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Moment } from 'moment';\nimport moment from 'moment';\n\n@Component({\n selector: 'mantle-datepicker',\n templateUrl: './datepicker.component.html',\n styleUrls: ['./datepicker.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatepickerComponent),\n multi: true\n }\n ]\n})\nexport class DatepickerComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public selectedDate: Moment | null = null;\n\n private modelFormat: string = 'YYYY-MM-DD';\n private displayFormat: string = 'DD/MM/YYYY';\n private parseFormats: string[] = [this.modelFormat, this.displayFormat];\n\n onChange = (newDate: string) => { };\n registerOnChange(fn: (newDate: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n get modelValue(): string {\n if (!this.selectedDate) return '';\n if (this.selectedDate.isValid()) return this.selectedDate.format(this.modelFormat);\n return 'Invalid date';\n }\n\n writeValue(newValue: any): void {\n if (typeof newValue == 'string') {\n newValue = moment(newValue, this.parseFormats).format(this.displayFormat);\n }\n this.onDateEntered(newValue)\n }\n\n onDateSelected(newValue: any) {\n if (newValue) newValue = newValue.format(this.displayFormat);\n this.onDateEntered(newValue)\n }\n\n onDateEntered(newValue: any): void {\n if (newValue && newValue.type == 'change') newValue = newValue.target.value;\n\n this.selectedDate = this.getMoment(newValue);\n\n var value = this.modelValue;\n this.onChange(value);\n\n if (value == 'Invalid date') {\n setTimeout(() => {\n this.onDateEntered(null);\n }, 0);\n }\n }\n\n getMoment(value: string | Moment): Moment | null {\n if (!value) return null;\n\n if (typeof value == 'string') {\n value = moment(value, this.parseFormats);\n }\n\n return value;\n }\n\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <input matInput\n [mtxDatetimepicker]=\"picker\"\n [(ngModel)]=\"selectedDate\"\n (change)=\"onDateEntered($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n (dateChange)=\"onDateSelected($event.value)\"\n autocomplete=\"off\">\n <mtx-datetimepicker #picker type=\"date\"></mtx-datetimepicker>\n <mtx-datetimepicker-toggle matSuffix [for]=\"picker\" tabindex=\"-1\"></mtx-datetimepicker-toggle>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Moment } from 'moment';\nimport moment from 'moment';\n\n@Component({\n selector: 'mantle-datetimepicker',\n templateUrl: './datetimepicker.component.html',\n styleUrls: ['./datetimepicker.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatetimepickerComponent),\n multi: true\n }\n ]\n})\nexport class DatetimepickerComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public selectedDateTime: Moment | null = null;\n\n private modelFormat: string = 'YYYY-MM-DD HH:mm';\n private displayFormat: string = 'DD/MM/YYYY HH:mm';\n private parseFormats: string[] = [this.modelFormat, this.displayFormat];\n\n onChange = (newDate: string) => { };\n registerOnChange(fn: (newDate: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n get modelValue(): string {\n if (!this.selectedDateTime) return '';\n if (this.selectedDateTime.isValid()) return this.selectedDateTime.format(this.modelFormat);\n return 'Invalid date time';\n }\n\n writeValue(newValue: any): void {\n if (typeof newValue == 'string') {\n newValue = moment(newValue, this.parseFormats).format(this.displayFormat);\n }\n this.onDateTimeEntered(newValue)\n }\n\n onDateTimeSelected(newValue: any) {\n if (newValue) newValue = newValue.format(this.displayFormat);\n this.onDateTimeEntered(newValue)\n }\n\n onDateTimeEntered(newValue: any): void {\n if (newValue && newValue.type == 'change') newValue = newValue.target.value;\n\n this.selectedDateTime = this.getMoment(newValue);\n\n var value = this.modelValue;\n this.onChange(value);\n\n if (value == 'Invalid date time') {\n setTimeout(() => {\n this.onDateTimeEntered(null);\n }, 0);\n }\n }\n\n getMoment(value: string | Moment): Moment | null {\n if (!value) return null;\n\n if (typeof value == 'string') {\n value = moment(value, this.parseFormats);\n }\n\n return value;\n }\n\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <input matInput\n [mtxDatetimepicker]=\"picker\"\n [(ngModel)]=\"selectedDateTime\"\n (change)=\"onDateTimeEntered($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n (dateChange)=\"onDateTimeSelected($event.value)\"\n autocomplete=\"off\">\n <mtx-datetimepicker #picker type=\"datetime\"></mtx-datetimepicker>\n <mtx-datetimepicker-toggle matSuffix [for]=\"picker\" tabindex=\"-1\"></mtx-datetimepicker-toggle>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'mantle-colorpicker-input',\n templateUrl: './colorpicker-input.component.html',\n styleUrls: ['./colorpicker-input.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorPickerInputComponent),\n multi: true\n }\n ]\n})\nexport class ColorPickerInputComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public value: any = null;\n\n constructor() { }\n\n onChange = (newValue: string) => { };\n registerOnChange(fn: (newValue: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n writeValue(newValue: any): void {\n this.value = newValue;\n this.onChange(newValue);\n }\n\n onValueChanged(event: any): void {\n this.onChange(this.value);\n }\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <input matInput\n [mtxColorpicker]=\"picker\"\n [(ngModel)]=\"value\"\n (colorChange)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n format=\"hex\"\n autocomplete=\"off\" />\n <mtx-colorpicker-toggle matSuffix [for]=\"picker\" tabindex=\"-1\"></mtx-colorpicker-toggle>\n <mtx-colorpicker #picker></mtx-colorpicker>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, Input, forwardRef, Output, EventEmitter } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'mantle-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DropdownComponent),\n multi: true\n }\n ]\n})\nexport class DropdownComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() options!: { values: { label: string, value: string, hidden: boolean }[] };\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n\n @Output() change = new EventEmitter<any>();\n\n public value: any = null;\n public dropdownValues: { label: string, value: string }[] = [];\n\n constructor() { }\n\n onChange = (newValue: string) => { };\n registerOnChange(fn: (newValue: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n ngOnChanges(changes: any): void {\n this.filterDropdownValues();\n }\n\n writeValue(newValue: any): void {\n this.value = newValue;\n if (this.value !== null && this.value !== undefined) {\n this.value = String(this.value);\n }\n this.onChange(this.value);\n\n this.filterDropdownValues();\n }\n\n onValueChanged(event: any): void {\n this.onChange(this.value);\n this.change.emit(this.value);\n }\n\n filterDropdownValues() {\n this.dropdownValues = this.options.values.filter((item) => {\n if (item.value == this.value) return true;\n return !item.hidden;\n });\n }\n\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <mtx-select\n [(ngModel)]=\"value\"\n (change)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n [matTooltip]=\"(tooltip! | translate)\"\n appendTo=\"body\">\n <mtx-option value=\"\"></mtx-option>\n <mtx-option *ngFor=\"let option of dropdownValues\" [value]=\"option.value\">\n {{option.label}}\n </mtx-option>\n </mtx-select>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, Input, forwardRef, ViewChild, ElementRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FileAttachment } from '../../../../data-structures/file-attachment.structure';\nimport { WebApiService } from '../../../../services/web-api.service';\n\n@Component({\n selector: 'mantle-filepicker',\n templateUrl: './filepicker.component.html',\n styleUrls: ['./filepicker.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FilepickerComponent),\n multi: true\n }\n ]\n})\nexport class FilepickerComponent implements ControlValueAccessor {\n\n @ViewChild('fileInput') fileInput!: ElementRef;\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public previousAttachment: FileAttachment | undefined;\n public currentAttachment: FileAttachment | undefined;\n public uploadInProgress!: boolean;\n\n constructor(private webApiService: WebApiService) { }\n\n onChange = (newValue: FileAttachment | undefined) => { };\n registerOnChange(fn: (newValue: FileAttachment | undefined) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n writeValue(newValue: FileAttachment): void {\n this.currentAttachment = this.previousAttachment = newValue;\n this.onChange(newValue);\n }\n\n onFileSelected(event: any) {\n if (!event.target.files || !event.target.files[0]) return;\n\n const file = event.target.files[0];\n\n this.uploadInProgress = true;\n\n this.webApiService.upload(file,\n (response: any) => {\n this.currentAttachment = {\n filename: file.name,\n source_url: '',\n preview_url: '',\n signed_id: response.signed_id\n }\n this.onChange(this.currentAttachment);\n this.uploadInProgress = false;\n },\n (response: any) => {\n this.reset();\n this.error = 'Unable to upload file';\n this.uploadInProgress = false;\n }\n );\n }\n\n clearAttachment() {\n if (this.fileInput) this.fileInput.nativeElement.value = '';\n this.currentAttachment = {\n filename: '',\n source_url: '',\n preview_url: '',\n signed_id: null\n }\n this.onChange(this.currentAttachment);\n }\n\n reset() {\n if (this.fileInput) this.fileInput.nativeElement.value = '';\n this.currentAttachment = this.previousAttachment;\n this.onChange(undefined);\n }\n\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <input matInput\n type=\"text\"\n [attr.value]=\"currentAttachment?.filename\"\n (click)=\"fileInput.click()\"\n [required]=\"required\"\n [disabled]=\"disable\"\n autocomplete=\"off\">\n\n <button *ngIf=\"currentAttachment?.filename\" mat-icon-button matSuffix tabindex=\"-1\" (click)=\"clearAttachment()\" [disabled]=\"disable\" click-stop-propagation class=\"clear-button\">\n <mat-icon>close</mat-icon>\n </button>\n\n <button *ngIf=\"!uploadInProgress\" mat-icon-button matSuffix tabindex=\"-1\" (click)=\"fileInput.click()\" [disabled]=\"disable\">\n <mat-icon>attach_file</mat-icon>\n </button>\n\n <button *ngIf=\"uploadInProgress\" mat-icon-button matSuffix tabindex=\"-1\" disabled>\n <mat-spinner matSuffix [diameter]=\"20\"></mat-spinner>\n </button>\n\n <input #fileInput\n type=\"file\"\n hidden\n (change)=\"onFileSelected($event)\">\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, Inject } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ImageCroppedEvent } from 'ngx-image-cropper';\n\nexport interface ImageCropperParams {\n imageChangedEvent: any;\n maintainAspectRatio?: boolean;\n aspectRatio?: number;\n resizeToWidth?: number;\n format?: string;\n}\n\n@Component({\n selector: 'mantle-image-cropper',\n templateUrl: './image-cropper.component.html',\n styleUrls: ['./image-cropper.component.scss'],\n standalone: false\n})\nexport class ImageCropperComponent {\n\n public imageChangedEvent: any;\n public maintainAspectRatio: boolean = true;\n public aspectRatio: number = 1;\n public resizeToWidth: number = 100;\n public format: string = 'png';\n public croppedImage: any = '';\n public croppedImageBlob: Blob | null = null;\n\n constructor(private sanitizer: DomSanitizer, private dialogRef: MatDialogRef<ImageCropperComponent>,\n @Inject(MAT_DIALOG_DATA) private data: ImageCropperParams) {\n this.imageChangedEvent = this.data.imageChangedEvent;\n this.maintainAspectRatio = this.data.maintainAspectRatio || this.maintainAspectRatio;\n this.aspectRatio = this.data.aspectRatio || this.aspectRatio;\n this.resizeToWidth = this.data.resizeToWidth || this.resizeToWidth;\n this.format = this.data.format || this.format;\n }\n\n imageCropped(event: ImageCroppedEvent) {\n this.croppedImage = this.sanitizer.bypassSecurityTrustUrl(event.objectUrl || '');\n this.croppedImageBlob = event.blob || null;\n }\n\n loadImageFailed() {\n this.dialogRef.close();\n }\n\n onCropComplete() {\n this.dialogRef.close(this.croppedImageBlob);\n }\n\n onCancel() {\n this.dialogRef.close();\n }\n\n}\n","<div mat-dialog-title fxLayout=\"row\" fxLayoutAlign=\"start\" fxLayoutGap=\"8px\" class=\"dialog-title-section\">\n <h2 fxFlex=\"1 1 auto\" class=\"section-title\">{{ 'mantle.image_cropper.crop_image' | translate }}</h2>\n <button fxFlex=\"0 0 auto\" mat-icon-button tabindex=\"-1\" (click)=\"onCancel()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n<mat-dialog-content>\n <div class=\"cropper-wrapper\" fxLayout=\"row\" fxLayoutAlign=\"start\" fxLayoutGap=\"32px\">\n <div fxFlex=\"1 0 1px\">\n <h5>{{ 'mantle.image_cropper.original' | translate }}</h5>\n </div>\n <div fxFlex=\"0 0 100px\">\n <h5>{{ 'mantle.image_cropper.preview' | translate }}</h5>\n </div>\n </div>\n\n <div class=\"cropper-wrapper\" fxLayout=\"row\" fxLayoutAlign=\"start\" fxLayoutGap=\"32px\">\n\n <image-cropper\n [imageChangedEvent]=\"imageChangedEvent\"\n [maintainAspectRatio]=\"maintainAspectRatio\"\n [aspectRatio]=\"aspectRatio\"\n [resizeToWidth]=\"resizeToWidth\"\n format=\"png\"\n (imageCropped)=\"imageCropped($event)\"\n (loadImageFailed)=\"loadImageFailed()\">\n </image-cropper>\n\n <div fxFlex=\"0 0 100px\" class=\"preview-section\">\n <img [src]=\"croppedImage\" />\n </div>\n </div>\n</mat-dialog-content>\n<mat-dialog-actions fxLayout=\"row\" fxLayoutAlign=\"end\" class=\"actions-section\">\n <button fxFlex=\"0 0 auto\" mat-button (click)=\"onCropComplete()\">{{ 'mantle.buttons.save' | translate }}</button>\n</mat-dialog-actions>\n","import { Component, ElementRef, forwardRef, Input, OnChanges, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { FileAttachment } from '../../../../data-structures/file-attachment.structure';\nimport { ImageCropperComponent } from '../../../../components/form/fields/image-cropper/image-cropper.component';\nimport { WebApiService } from '../../../../services/web-api.service';\n\nexport interface ImageCropperOptions {\n maintainAspectRatio?: boolean,\n aspectRatio?: number,\n resizeToWidth?: number,\n uploadFormat?: string }\n\n@Component({\n selector: 'mantle-imagepicker',\n templateUrl: './imagepicker.component.html',\n styleUrls: ['./imagepicker.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ImagepickerComponent),\n multi: true\n }\n ]\n})\nexport class ImagepickerComponent implements ControlValueAccessor, OnChanges {\n\n @ViewChild('fileInput') fileInput!: ElementRef;\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() options!: ImageCropperOptions;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n private defaultCropperConfig: ImageCropperOptions = {\n maintainAspectRatio: true,\n aspectRatio: 1,\n resizeToWidth: 256,\n uploadFormat: 'png'\n }\n public cropperConfig: ImageCropperOptions = this.defaultCropperConfig;\n\n public previousAttachment: FileAttachment | undefined;\n public currentAttachment: FileAttachment | undefined;\n public uploadInProgress!: boolean;\n\n constructor(private dialog: MatDialog, private webApiService: WebApiService) { }\n\n onChange = (newValue: FileAttachment | undefined) => { };\n registerOnChange(fn: (newValue: FileAttachment | undefined) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n ngOnChanges(): void {\n this.cropperConfig = { ...this.defaultCropperConfig, ...this.options };\n }\n\n writeValue(newValue: FileAttachment): void {\n this.currentAttachment = this.previousAttachment = newValue;\n this.onChange(newValue);\n }\n\n onFileSelected(event: any) {\n if (!event.target.files || !event.target.files[0]) return;\n\n const file = event.target.files[0];\n\n const dialogRef = this.dialog.open(ImageCropperComponent, {\n data: {\n imageChangedEvent: event,\n maintainAspectRatio: this.cropperConfig.maintainAspectRatio,\n aspectRatio: this.cropperConfig.aspectRatio,\n resizeToWidth: this.cropperConfig.resizeToWidth,\n format: this.cropperConfig.uploadFormat\n }\n });\n\n dialogRef.afterClosed().subscribe(\n (croppedImage: Blob) => {\n this.onImageCropped(croppedImage, file.name);\n }\n );\n }\n\n onImageCropped(croppedImage: Blob, filename: string) {\n if (!croppedImage) {\n this.reset();\n return;\n }\n\n filename = filename.split('.').slice(0, -1).join('.') + '.' + this.cropperConfig.uploadFormat;\n let file: File = this.blobToFile(croppedImage, filename);\n\n this.uploadInProgress = true;\n\n this.webApiService.upload(file,\n (response: any) => {\n this.currentAttachment = {\n filename: filename,\n source_url: '',\n preview_url: '',\n signed_id: response.signed_id\n }\n this.onChange(this.currentAttachment);\n this.uploadInProgress = false;\n },\n (response: any) => {\n this.reset();\n this.error = 'Unable to upload file';\n this.uploadInProgress = false;\n }\n );\n }\n\n clearAttachment() {\n if (this.fileInput) this.fileInput.nativeElement.value = '';\n this.currentAttachment = {\n filename: '',\n source_url: '',\n preview_url: '',\n signed_id: null\n }\n this.onChange(this.currentAttachment);\n }\n\n reset() {\n if (this.fileInput) this.fileInput.nativeElement.value = '';\n this.currentAttachment = this.previousAttachment;\n this.onChange(undefined);\n }\n\n blobToFile(blob: Blob, filename: string): File {\n var blobData: any = blob;\n\n blobData.lastModifiedDate = new Date();\n blobData.name = filename;\n\n return <File>blob;\n }\n\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <input matInput\n type=\"text\"\n [attr.value]=\"currentAttachment?.filename\"\n (click)=\"fileInput.click()\"\n [required]=\"required\"\n [disabled]=\"disable\"\n autocomplete=\"off\">\n\n <button *ngIf=\"currentAttachment?.filename\" mat-icon-button matSuffix tabindex=\"-1\" (click)=\"clearAttachment()\" [disabled]=\"disable\" click-stop-propagation class=\"clear-button\">\n <mat-icon>close</mat-icon>\n </button>\n\n <button *ngIf=\"!uploadInProgress\" mat-icon-button matSuffix tabindex=\"-1\" (click)=\"fileInput.click()\" [disabled]=\"disable\">\n <mat-icon>image</mat-icon>\n </button>\n\n <button *ngIf=\"uploadInProgress\" mat-icon-button matSuffix tabindex=\"-1\" disabled>\n <mat-spinner matSuffix [diameter]=\"20\"></mat-spinner>\n </button>\n\n <input #fileInput\n type=\"file\"\n accept=\"image/*\"\n hidden\n (change)=\"onFileSelected($event)\">\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, OnChanges, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, AbstractControl, Validator, ValidationErrors, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\n@Component({\n selector: 'mantle-number-input',\n templateUrl: './number-input.component.html',\n styleUrls: ['./number-input.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberInputComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NumberInputComponent),\n multi: true,\n },\n ]\n})\nexport class NumberInputComponent implements ControlValueAccessor, Validator, OnChanges {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() options!: { min: number, max: number, decimal_places: number };\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public value: number | null = null;\n public errorMessage: string | undefined;\n\n constructor() { }\n\n onChange = (newValue: number | null) => { };\n registerOnChange(fn: (newValue: number | null) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n ngOnChanges(): void { }\n\n /**\n * Utility: safely coerce input into number or null\n */\n private coerceToNumber(value: any): number | null {\n if (value === null || value === undefined) return null;\n if (typeof value === 'number' && !isNaN(value)) return value;\n\n if (typeof value === 'string') {\n const trimmed = value.trim();\n if (trimmed === '') return null;\n\n // Match valid numeric string: -12, 3.14, 0, -0.5, 1e5\n if (/^-?\\d+(\\.\\d+)?([eE][-+]?\\d+)?$/.test(trimmed)) {\n const n = Number(trimmed);\n return Number.isFinite(n) ? n : null;\n }\n\n return null; // treat non-numeric strings as null\n }\n\n return null;\n }\n\n writeValue(newValue: any): void {\n newValue = this.coerceToNumber(newValue);\n this.value = newValue;\n this.onChange(newValue);\n }\n\n onValueChanged(event: any): void {\n this.value = this.coerceToNumber(this.value);\n this.onChange(this.value);\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n const val = this.coerceToNumber(control.value);\n\n // Replace invalid values in form control with null\n if (val === null) {\n this.errorMessage = this.error;\n return null;\n }\n\n const errors: any = {};\n if (this.options?.min !== undefined && val < this.options.min) {\n errors.min = `must be greater than or equal to ${this.options.min}`;\n }\n if (this.options?.max !== undefined && val > this.options.max) {\n errors.max = `must be lower than or equal to ${this.options.max}`;\n }\n\n if (this.options?.decimal_places !== undefined) {\n const factor = Math.pow(10, this.options.decimal_places);\n if (Math.round(val * factor) / factor !== val) {\n errors.decimal_places =\n this.options.decimal_places === 0\n ? 'cannot be a decimal'\n : `must have a maximum of ${this.options.decimal_places} decimal places`;\n }\n }\n\n this.errorMessage = [this.error, ...Object.values(errors)]\n .filter(Boolean)\n .join(', ');\n\n return Object.keys(errors).length > 0 ? errors : null;\n }\n\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"errorMessage\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <input matInput\n type=\"number\"\n [(ngModel)]=\"value\"\n (keyup)=\"onValueChanged($event)\"\n (change)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n autocomplete=\"off\">\n\n <mat-hint *ngIf=\"errorMessage\" class=\"error-message\">{{ errorMessage }}</mat-hint>\n</mat-form-field>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'mantle-password-input',\n templateUrl: './password-input.component.html',\n styleUrls: ['./password-input.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PasswordInputComponent),\n multi: true\n }\n ]\n})\nexport class PasswordInputComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public value: any = null;\n public hide: boolean = true;\n\n constructor() { }\n\n onChange = (newValue: string) => { };\n registerOnChange(fn: (newValue: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n writeValue(newValue: any): void {\n this.value = newValue;\n this.onChange(newValue);\n }\n\n onValueChanged(event: any): void {\n this.onChange(this.value);\n }\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <input matInput\n [type]=\"hide ? 'password' : 'text'\"\n [(ngModel)]=\"value\"\n (keyup)=\"onValueChanged($event)\"\n (change)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n autocomplete=\"off\">\n\n <button mat-icon-button matSuffix type=\"button\" tabindex=\"-1\" (click)=\"hide = !hide\">\n <mat-icon>{{hide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'mantle-textarea',\n templateUrl: './textarea.component.html',\n styleUrls: ['./textarea.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextareaComponent),\n multi: true\n }\n ]\n})\nexport class TextareaComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() rows: number = 1;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public value: any = null;\n\n constructor() { }\n\n onChange = (newValue: string) => { };\n registerOnChange(fn: (newValue: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n writeValue(newValue: any): void {\n this.value = newValue;\n this.onChange(newValue);\n }\n\n onValueChanged(event: any): void {\n this.onChange(this.value);\n }\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <textarea matInput\n [rows]=\"rows\"\n [(ngModel)]=\"value\"\n (keyup)=\"onValueChanged($event)\"\n (change)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n autocomplete=\"off\">\n </textarea>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'mantle-text-input',\n templateUrl: './text-input.component.html',\n styleUrls: ['./text-input.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextInputComponent),\n multi: true\n }\n ]\n})\nexport class TextInputComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public value: any = null;\n\n constructor() { }\n\n onChange = (newValue: string) => { };\n registerOnChange(fn: (newValue: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n writeValue(newValue: any): void {\n this.value = newValue;\n this.onChange(newValue);\n }\n\n onValueChanged(event: any): void {\n this.onChange(this.value);\n }\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <input matInput\n type=\"text\"\n [(ngModel)]=\"value\"\n (keyup)=\"onValueChanged($event)\"\n (change)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n autocomplete=\"off\">\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Moment } from 'moment';\nimport moment from 'moment';\n\n@Component({\n selector: 'mantle-time-input',\n templateUrl: './time-input.component.html',\n styleUrls: ['./time-input.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimeInputComponent),\n multi: true\n }\n ]\n})\nexport class TimeInputComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public selectedTime: Moment | null = null;\n\n private modelFormat: string = 'HH:mm';\n private displayFormat: string = 'HH:mm';\n private parseFormats: string[] = [this.modelFormat, this.displayFormat];\n\n onChange = (newValue: string) => { };\n registerOnChange(fn: (newValue: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n get modelValue(): string {\n if (!this.selectedTime) return '';\n if (this.selectedTime.isValid()) return this.selectedTime.format(this.modelFormat);\n return 'Invalid time';\n }\n\n writeValue(newValue: any): void {\n if (typeof newValue === 'string') {\n newValue = moment(newValue, this.parseFormats).format(this.displayFormat);\n } else {\n newValue = null;\n }\n this.onTimeEntered(newValue);\n }\n\n onTimeSelected(newValue: any) {\n if (newValue) newValue = newValue.format(this.displayFormat);\n this.onTimeEntered(newValue)\n }\n\n onTimeEntered(newValue: any): void {\n if (newValue && newValue.type == 'change') newValue = newValue.target.value;\n\n this.selectedTime = this.getMoment(newValue);\n\n var value = this.modelValue;\n this.onChange(value);\n\n if (value == 'Invalid time') {\n setTimeout(() => {\n this.onTimeEntered(null);\n }, 0);\n }\n }\n \n getMoment(value: string | Moment): Moment | null {\n if (!value) return null;\n\n if (typeof value == 'string') {\n value = moment(value, this.parseFormats);\n }\n\n return value;\n }\n\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <input matInput\n [mtxDatetimepicker]=\"picker\"\n [(ngModel)]=\"selectedTime\"\n (change)=\"onTimeEntered($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n (dateChange)=\"onTimeSelected($event.value)\"\n autocomplete=\"off\">\n <mtx-datetimepicker #picker type=\"time\"></mtx-datetimepicker>\n <mtx-datetimepicker-toggle matSuffix [for]=\"picker\" tabindex=\"-1\"></mtx-datetimepicker-toggle>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'mantle-markdown-input',\n templateUrl: './markdown-input.component.html',\n styleUrls: ['./markdown-input.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MarkdownInputComponent),\n multi: true\n }\n ]\n})\nexport class MarkdownInputComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public value: any = null;\n\n constructor() { }\n\n onChange = (newValue: string) => { };\n registerOnChange(fn: (newValue: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n writeValue(newValue: any): void {\n this.value = newValue;\n this.onChange(newValue);\n }\n}\n","<div class=\"markdown-input-disabled\" *ngIf=\"disable\">\n <mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n\n <markdown ngPreserveWhitespaces>\n {{ value }}\n </markdown>\n\n <input matInput\n type=\"text\"\n [(ngModel)]=\"value\"\n [required]=\"required\"\n [disabled]=true\n [hidden]=true\n autocomplete=\"off\">\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n </mat-form-field>\n</div>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'mantle-multiselect-input',\n templateUrl: './multiselect-input.component.html',\n styleUrls: ['./multiselect-input.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiselectInputComponent),\n multi: true\n }\n ]\n})\nexport class MultiselectInputComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() options!: { values: { label: string, value: string, hidden: boolean }[] };\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public value: any = null;\n public dropdownValues: { label: string, value: string }[] = [];\n public multiselectValues: string[] = [];\n\n constructor() { }\n\n onChange = (newValue: string) => { };\n registerOnChange(fn: (newValue: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n ngOnChanges(changes: any): void {\n this.filterDropdownValues();\n }\n\n writeValue(newValue: any): void {\n this.value = newValue;\n this.setMultiselectValuesFromValue();\n this.onChange(this.value);\n\n this.filterDropdownValues();\n }\n\n onValueChanged(event: any): void {\n this.onChange(this.value);\n }\n\n filterDropdownValues() {\n this.dropdownValues = this.options.values.filter((item) => {\n if (item.value == this.value) return true;\n return !item.hidden;\n });\n }\n\n add(): void {\n this.setValueFromMultiselectValues();\n this.onChange(this.value);\n }\n\n remove(): void {\n this.setValueFromMultiselectValues();\n this.onChange(this.value);\n }\n\n setValueFromMultiselectValues() {\n this.value = this.multiselectValues.join(',');\n }\n\n setMultiselectValuesFromValue() {\n if (!this.value || !this.value.trim()) return;\n this.multiselectValues = this.value.split(',');\n }\n\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <mtx-select\n [(ngModel)]=\"multiselectValues\"\n (change)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n [multiple]=\"true\"\n [matTooltip]=\"(tooltip! | translate)\"\n (add)=\"add()\"\n (remove)=\"remove()\"\n appendTo=\"body\">\n <mtx-option value=\"\"></mtx-option>\n <mtx-option *ngFor=\"let option of dropdownValues\" [value]=\"option.value\">\n {{option.label}}\n </mtx-option>\n </mtx-select>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport Quill from 'quill';\nimport Link from \"quill/formats/link\";\nimport { Mention, MentionBlot } from 'quill-mention';\nimport Clipboard from 'quill/modules/clipboard';\nimport { Delta, Range } from 'quill';\n\nclass RichTextLink extends Link {\n static sanitize(url: string): string {\n if (!url) return this.SANITIZED_URL;\n\n const protocol = url.slice(0, url.indexOf(':'));\n\n if (this.PROTOCOL_WHITELIST.indexOf(protocol) > -1) return url;\n\n return 'http://' + url;\n }\n}\n\nclass RichTextMentionBlot extends MentionBlot {\n static render(data: any): HTMLElement {\n const element = document.createElement('span');\n element.innerText = '{{' + data.value + '}}';\n return element;\n }\n}\n\nclass RichTextClipboard extends Clipboard {\n onPaste(range: Range, { text, html }: { text?: string; html?: string }) {\n const formats = this.quill.getFormat(range.index);\n const pastedDelta = this.convert({ text }, formats);\n const delta = new Delta()\n .retain(range?.index)\n .delete(range?.length)\n .concat(pastedDelta);\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.setSelection(\n delta.length() - range.length,\n Quill.sources.SILENT,\n );\n this.quill.scrollSelectionIntoView();\n }\n}\n\nQuill.register({ \"blots/mention\": RichTextMentionBlot, \"modules/mention\": Mention, 'formats/link': RichTextLink, 'modules/clipboard': RichTextClipboard });\n\n@Component({\n selector: 'mantle-rich-text-input',\n templateUrl: './rich-text-input.component.html',\n styleUrls: ['./rich-text-input.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RichTextInputComponent),\n multi: true\n }\n ]\n})\nexport class RichTextInputComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() options!: { placeholder_attrs: { key: string, value: string }[] };\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public value: string = '';\n\n public quillModules = {\n clipboard: {\n matchVisual: false,\n },\n toolbar: {\n container: [\n [{ header: ['1', '2', '3', false] }],\n [\"bold\", \"italic\", \"underline\", \"strike\"],\n [\"link\", \"code\", \"blockquote\"],\n [{ list: \"ordered\" }, { list: \"bullet\" }],\n [{ align: [] }],\n [\"clean\"],\n ]\n },\n mention: {\n allowedChars: /^[A-Za-z_]*$/,\n mentionDenotationChars: ['#'],\n positioningStrategy: 'fixed',\n source: (searchTerm: string, renderList: any) => {\n const values = this.options?.placeholder_attrs || [];\n renderList(\n searchTerm.length === 0\n ? values\n : values.filter(v => v.value.toLowerCase().includes(searchTerm.toLowerCase())),\n searchTerm\n );\n }\n }\n };\n\n constructor() { }\n\n onChange = (newValue: string) => { };\n registerOnChange(fn: (newValue: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n writeValue(newValue: any): void {\n this.value = newValue;\n this.onChange(newValue);\n }\n\n onContentChanged(event: any) {\n this.value = event.html || '';\n this.onChange(this.value);\n }\n}\n","<div class=\"rich-text-editor-wrapper mat-mdc-form-field\" [class.mat-mdc-form-field-invalid]=\"error\">\n <label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </label>\n\n <quill-editor class=\"quill-editor\"\n theme=\"snow\"\n placeholder=\"\"\n [ngModel]=\"value\"\n [modules]=\"quillModules\"\n [bounds]=\"'self'\"\n (onContentChanged)=\"onContentChanged($event)\"\n [readOnly]=\"disable\"\n [required]=\"required\">\n </quill-editor>\n\n <mat-hint *ngIf=\"error\" fxFlex=\"0 0 auto\" class=\"error-message\">{{ error }}</mat-hint>\n</div>\n","import { Component, ElementRef, Input, ViewChild, forwardRef } from '@angular/core';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { AbstractControl, ControlValueAccessor, FormArray, FormControl, FormGroup, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { ArrayService } from '../../../../services/array.service';\nimport { LocaleService } from '../../../../services/locale.service';\n\ninterface ReportConfig {\n dataset: string;\n aggregated: boolean;\n columns: ReportConfigColumn[];\n filters: ReportConfigFilter[];\n}\n\ninterface ReportConfigColumn {\n name: string;\n type: string;\n options: any;\n selected: boolean;\n group_by: boolean;\n count: boolean;\n count_distinct: boolean;\n average: boolean;\n max: boolean;\n min: boolean;\n sum: boolean;\n}\n\ninterface ReportConfigFilter {\n name: string;\n type: string;\n operator: string;\n value: any;\n options: { operators?: any; preSelectedValues?: any };\n}\n\n@Component({\n selector: 'mantle-report-config-input',\n templateUrl: './report-config-input.component.html',\n styleUrls: ['./report-config-input.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ReportConfigInputComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => ReportConfigInputComponent),\n multi: true,\n }\n ]\n})\nexport class ReportConfigInputComponent implements ControlValueAccessor, Validator {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() options!: { datasets: { name: string, columns: { name: string, type: string }[] }[] };\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n @ViewChild('filterContainer') private filterContainer!: ElementRef;\n\n public value: ReportConfig = { dataset: '', aggregated: false, columns: [], filters: [] };\n public errorMessage: string | undefined;\n\n public datasets!: string[];\n public datasetColumns!: ReportConfigColumn[];\n public filterPickerOptions: { values: { label: string, value: string, hidden: boolean }[] } = { values: [] };\n\n public filterFormArray = new FormArray<FormGroup>([]);\n\n constructor(private arrayService: ArrayService, private localeService: LocaleService) { }\n\n onChange = (newValue: ReportConfig) => { };\n registerOnChange(fn: (newValue: ReportConfig) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n writeValue(newValue: ReportConfig): void {\n this.value = newValue;\n\n this.applyReportOptions();\n this.applyValueToDatasetColumns();\n this.refreshValueColumns();\n\n this.onChange(newValue);\n\n this.filterFormArray.clear();\n this.value.filters.forEach(filter => {\n let column = this.arrayService.findByAttribute(this.datasetColumns, 'name', filter.name);\n this.refreshFilterConfig(filter, column, filter.value);\n this.addFilterFormGroup(filter);\n });\n }\n\n onValueChanged(event: ReportConfig): void {\n this.onChange(this.value);\n }\n\n applyReportOptions(): void {\n this.datasets = this.options.datasets.map((dataset) => { return dataset.name; });\n this.datasetColumns = [];\n\n let config = this.arrayService.findByAttribute(this.options.datasets, 'name', this.value.dataset);\n if (!config) return;\n\n this.datasetColumns = config.columns.map((column: { name: string, type: string, options: any }) => {\n return { name: column.name, type: column.type, options: column.options || {}, selected: false, group_by: false, count: false, count_distinct: false, average: false, max: false, min: false, sum: false } as ReportConfigColumn;\n });\n\n this.filterPickerOptions.values = this.datasetColumns.map((column: ReportConfigColumn) => {\n return { label: column.name, value: column.name, hidden: false };\n });\n }\n\n applyValueToDatasetColumns(): void {\n this.datasetColumns.forEach((datasetColumn: ReportConfigColumn) => {\n let attribute = datasetColumn.name;\n let valueColumn = this.arrayService.findByAttribute(this.value.columns, 'name', attribute) || {};\n datasetColumn.selected = valueColumn.selected || false;\n datasetColumn.group_by = valueColumn.group_by || false;\n datasetColumn.count = valueColumn.count || false;\n datasetColumn.count_distinct = valueColumn.count_distinct || false;\n datasetColumn.average = valueColumn.average || false;\n datasetColumn.max = valueColumn.max || false;\n datasetColumn.min = valueColumn.min || false;\n datasetColumn.sum = valueColumn.sum || false;\n })\n }\n\n refreshValueColumns(): void {\n this.value.columns = this.datasetColumns.filter((column: ReportConfigColumn) => {\n return column.selected;\n })\n }\n\n setDataset(dataset: string): void {\n this.value.dataset = dataset;\n this.value.aggregated = false;\n this.value.columns = [];\n this.value.filters = [];\n this.applyReportOptions();\n this.onChange(this.value);\n }\n\n setAggregated(aggregated: boolean): void {\n this.value.aggregated = aggregated;\n if (!aggregated) {\n this.value.columns.forEach((item: any ) => {\n item.group_by = false;\n item.count = false;\n item.count_distinct = false;\n item.average = false;\n item.max = false;\n item.min = false;\n item.sum = false;\n });\n }\n this.onChange(this.value);\n }\n\n setSelected(item: ReportConfigColumn, selected: boolean): void {\n item.selected = selected;\n if (!selected) {\n item.group_by = false;\n item.count = false;\n item.count_distinct = false;\n item.average = false;\n item.max = false;\n item.min = false;\n item.sum = false;\n }\n this.refreshValueColumns();\n this.onChange(this.value);\n }\n\n setGroupBy(item: ReportConfigColumn, groupBy: boolean): void {\n item.group_by = groupBy;\n if (groupBy) {\n item.count = false;\n item.count_distinct = false;\n item.average = false;\n item.max = false;\n item.min = false;\n item.sum = false;\n }\n this.onChange(this.value);\n }\n\n onAggregationChange(): void {\n this.onChange(this.value);\n }\n\n drop(event: CdkDragDrop<ReportConfigColumn[]>) {\n const list = [...this.value.columns];\n moveItemInArray(list, event.previousIndex, event.currentIndex);\n this.datasetColumns = list;\n this.refreshValueColumns();\n }\n\n addFilter(): void {\n let filter = {} as ReportConfigFilter;\n this.refreshFilterConfig(filter, this.datasetColumns[0], null);\n this.value.filters.push(filter);\n\n this.addFilterFormGroup(filter);\n\n this.onChange(this.value);\n\n setTimeout(() => {\n this.filterContainer.nativeElement.scrollTop = this.filterContainer.nativeElement.scrollHeight;\n }, 0);\n }\n\n addFilterFormGroup(filter: ReportConfigFilter): void {\n const fg = new FormGroup({\n name: new FormControl(filter.name),\n operator: new FormControl(filter.operator),\n value: new FormControl(filter.value)\n });\n\n this.filterFormArray.push(fg);\n\n fg.valueChanges.subscribe(val => {\n filter.name = val.name!;\n filter.operator = val.operator!;\n filter.value = val.value;\n this.onChange(this.value);\n });\n }\n\n updateFilterFormGroup(filter: ReportConfigFilter): void {\n const i = this.value.filters.indexOf(filter);\n const fg = this.filterFormArray.at(i) as FormGroup;\n fg.patchValue({\n name: filter.name,\n operator: filter.operator,\n value: filter.value\n });\n }\n\n setFilterColumn(filter: ReportConfigFilter, columnName: string): void {\n let column = this.arrayService.findByAttribute(this.datasetColumns, 'name', columnName);\n this.refreshFilterConfig(filter, column, null);\n this.updateFilterFormGroup(filter);\n this.onChange(this.value);\n }\n\n setFilterOperator(filter: ReportConfigFilter, operator: string): void {\n filter.operator = operator;\n this.onChange(this.value);\n }\n\n removeFilter(index: number): void {\n this.value.filters.splice(index, 1);\n this.filterFormArray.removeAt(index);\n this.onChange(this.value);\n }\n\n refreshFilterConfig(filter: ReportConfigFilter, column: ReportConfigColumn, value: any): void {\n if (!!column) {\n filter.name = column.name;\n filter.type = this.getFilterTypeForColumn(column);\n let operators = this.getOperatorsForFilterType(filter.type);\n let isOperatorAvailable = this.arrayService.findByAttribute(operators, 'value', filter.operator) != null;\n filter.operator = isOperatorAvailable ? filter.operator : operators[0].value;\n filter.options = {\n operators: {\n values: operators.map((operator: { label: string, value: string }) => {\n return { label: this.localeService.getTranslation(operator.label), value: operator.value };\n })\n },\n preSelectedValues: {\n values: column.options.values\n }\n };\n }\n else {\n filter.name = '';\n filter.type = '';\n filter.operator = '';\n filter.options = { operators: { values: [] } };\n }\n filter.value = value;\n }\n\n getFilterTypeForColumn(column: ReportConfigColumn): string {\n let type = '';\n switch (column.type) {\n case 'integer':\n case 'decimal':\n type = 'number';\n break;\n case 'date':\n type = 'date';\n break;\n case 'datetime':\n type = 'datetime';\n break;\n case 'string':\n type = (!!column.options.values) ? 'dropdown' : 'string';\n break;\n }\n return type;\n }\n\n getOperatorsForFilterType(type: string): { label: string, value: string }[] {\n let operators: { label: string, value: string }[] = [];\n switch (type) {\n case 'number':\n case 'date':\n case 'datetime':\n operators = [\n { label: 'mantle.report_config.operators.=', value: '=' },\n { label: 'mantle.report_config.operators.!=', value: '!=' },\n { label: 'mantle.report_config.operators.>', value: '>' },\n { label: 'mantle.report_config.operators.<', value: '<' },\n { label: 'mantle.report_config.operators.>=', value: '>=' },\n { label: 'mantle.report_config.operators.<=', value: '<=' }\n ];\n break;\n case 'string':\n operators = [\n { label: 'mantle.report_config.operators.=', value: '=' },\n { label: 'mantle.report_config.operators.!=', value: '!=' },\n { label: 'mantle.report_config.operators.contains', value: 'contains' },\n { label: 'mantle.report_config.operators.starts_with', value: 'starts_with' },\n { label: 'mantle.report_config.operators.ends_with', value: 'ends_with' }\n ];\n break;\n case 'dropdown':\n operators = [\n { label: 'mantle.report_config.operators.one_of', value: 'one_of' },\n { label: 'mantle.report_config.operators.not_one_of', value: 'not_one_of' }\n ];\n break;\n }\n return operators;\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n const errors: any = {};\n if (!this.value.dataset) {\n errors.dataset = 'Dataset is required';\n }\n\n if (this.value.columns.length === 0) {\n errors.columns = 'You must select at least one column';\n }\n\n if (this.value.aggregated) {\n const notFullyAggregated = this.value.columns.some((column: ReportConfigColumn) => {\n return !(column.group_by || column.count || column.count_distinct || column.average || column.max || column.min || column.sum);\n });\n\n if (notFullyAggregated) {\n errors.aggregation = 'All selected columns must be aggregated when the report is set to aggregated';\n }\n }\n\n if (this.value.filters.length > 0) {\n const filterWithoutName = this.value.filters.some((filter: ReportConfigFilter) => {\n return !filter.name;\n });\n if (filterWithoutName) errors.filterNames = 'All filters must specify a column name';\n\n const filterWithoutOperator = this.value.filters.some((filter: ReportConfigFilter) => {\n return !filter.operator;\n });\n if (filterWithoutOperator) errors.filterOperators = 'All filters must specify an operator';\n\n const filterWithoutValue = this.value.filters.some((filter: ReportConfigFilter) => {\n return !filter.value;\n });\n if (filterWithoutValue) errors.filterValues = 'All filters must specify a value';\n }\n\n this.errorMessage = Object.values(errors).filter(Boolean).join(', ');\n\n return Object.keys(errors).length > 0 ? errors : null;\n }\n}\n","<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"8px\" class=\"rich-text-editor-wrapper mat-mdc-form-field\" [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-form-field fxFlex=\"0 0 auto\" [class.mat-mdc-form-field-invalid]=\"error\">\n <label>\n {{ 'mantle.report_config.dataset' | translate }}\n </label>\n <mtx-select\n [(ngModel)]=\"value.dataset\"\n (change)=\"setDataset($event)\"\n appendTo=\"body\">\n <mtx-option value=\"\"></mtx-option>\n <mtx-option *ngFor=\"let option of datasets\" [value]=\"option\">\n {{option}}\n </mtx-option>\n </mtx-select>\n </mat-form-field>\n\n <div fxFlex=\"0 0 auto\">\n <mat-checkbox [checked]=\"value.aggregated\" (change)=\"setAggregated($event.checked)\">\n {{ 'mantle.report_config.use_aggregation' | translate }}\n </mat-checkbox>\n </div>\n\n <h3 fxFlex=\"0 0 auto\" class=\"report-config-subsection-header\">{{ 'mantle.report_config.columns' | translate }}</h3>\n\n <div fxFlex=\"1 0 1px\" fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"8px\" class=\"items-container\">\n \n <div fxFlex=\"0 0 auto\" fxLayout=\"row\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"8px\" class=\"header-row\">\n <div fxFlex=\"0 0 24px\" class=\"header-row-label\"></div>\n <div fxFlex=\"0 0 80px\" class=\"header-row-label selection-check-header\">{{ 'mantle.report_config.select' | translate }}</div>\n <div fxFlex=\"1 1 0\" class=\"header-row-label\">{{ 'mantle.report_config.column' | translate }}</div>\n <ng-container *ngIf=\"value.aggregated\">\n <div fxFlex=\"0 0 80px\" class=\"header-row-label aggregation-check-header\">{{ 'mantle.report_config.group_by' | translate }}</div>\n <div fxFlex=\"0 0 80px\" class=\"header-row-label aggregation-check-header\">{{ 'mantle.report_config.count' | translate }}</div>\n <div fxFlex=\"0 0 80px\" class=\"header-row-label aggregation-check-header\">{{ 'mantle.report_config.count_distinct' | translate }}</div>\n <div fxFlex=\"0 0 80px\" class=\"header-row-label aggregation-check-header\">{{ 'mantle.report_config.average' | translate }}</div>\n <div fxFlex=\"0 0 80px\" class=\"header-row-label aggregation-check-header\">{{ 'mantle.report_config.max' | translate }}</div>\n <div fxFlex=\"0 0 80px\" class=\"header-row-label aggregation-check-header\">{{ 'mantle.report_config.min' | translate }}</div>\n <div fxFlex=\"0 0 80px\" class=\"header-row-label aggregation-check-header\">{{ 'mantle.report_config.sum' | translate }}</div>\n </ng-container>\n </div>\n\n <div fxFlex=\"1 0 0\" fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"8px\" class=\"field-rows\"\n cdkDropList [cdkDropListData]=\"value.columns\" (cdkDropListDropped)=\"drop($event)\">\n\n <div fxFlex=\"0 0 auto\" fxLayout=\"row\" fxLayoutAlign=\"stretch center\" fxLayoutGap=\"8px\" class=\"field-row\"\n *ngFor=\"let item of datasetColumns; let i = index\" cdkDrag>\n\n <!-- Drag handle -->\n <div fxFlex=\"0 0 24px\" class=\"drag-handle\" cdkDragHandle>\n <mat-icon>drag_indicator</mat-icon>\n </div>\n\n <!-- Left checkbox -->\n <mat-checkbox fxFlex=\"0 0 80px\" class=\"selection-check\" [checked]=\"item.selected\" (change)=\"setSelected(item, $event.checked)\"></mat-checkbox>\n\n <!-- Label -->\n <div fxFlex=\"1 1 0\">{{ item.name }}</div>\n\n <!-- Right checkboxes -->\n <ng-container *ngIf=\"value.aggregated\">\n <mat-checkbox fxFlex=\"0 0 80px\" class=\"aggregation-check\" [checked]=\"item.group_by\" (change)=\"setGroupBy(item, $event.checked)\" [disabled]=\"!item.selected\"></mat-checkbox>\n <mat-checkbox fxFlex=\"0 0 80px\" class=\"aggregation-check\" [(ngModel)]=\"item.count\" (change)=\"onAggregationChange()\" [disabled]=\"!item.selected || item.group_by\"></mat-checkbox>\n <mat-checkbox fxFlex=\"0 0 80px\" class=\"aggregation-check\" [(ngModel)]=\"item.count_distinct\" (change)=\"onAggregationChange()\" [disabled]=\"!item.selected || item.group_by\"></mat-checkbox>\n <mat-checkbox fxFlex=\"0 0 80px\" class=\"aggregation-check\" [(ngModel)]=\"item.average\" (change)=\"onAggregationChange()\" [disabled]=\"!item.selected || item.group_by || ['string', 'boolean'].includes(item.type)\"></mat-checkbox>\n <mat-checkbox fxFlex=\"0 0 80px\" class=\"aggregation-check\" [(ngModel)]=\"item.max\" (change)=\"onAggregationChange()\" [disabled]=\"!item.selected || item.group_by || ['string', 'boolean'].includes(item.type)\"></mat-checkbox>\n <mat-checkbox fxFlex=\"0 0 80px\" class=\"aggregation-check\" [(ngModel)]=\"item.min\" (change)=\"onAggregationChange()\" [disabled]=\"!item.selected || item.group_by || ['string', 'boolean'].includes(item.type)\"></mat-checkbox>\n <mat-checkbox fxFlex=\"0 0 80px\" class=\"aggregation-check\" [(ngModel)]=\"item.sum\" (change)=\"onAggregationChange()\" [disabled]=\"!item.selected || item.group_by || ['string', 'boolean', 'date', 'datetime'].includes(item.type)\"></mat-checkbox>\n </ng-container>\n </div>\n\n </div>\n\n </div>\n\n <h3 fxFlex=\"0 0 auto\" class=\"report-config-subsection-header\">{{ 'mantle.report_config.filters' | translate }}</h3>\n\n <div fxFlex=\"1 0 1px\" fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"8px\" class=\"filters-container\">\n\n <div fxFlex=\"0 0 auto\" fxLayout=\"row\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"8px\" class=\"header-row\">\n <div fxFlex=\"1 1 0\" class=\"header-row-label\">{{ 'mantle.report_config.filter' | translate }}</div>\n <div fxFlex=\"1 1 0\" class=\"header-row-label\">{{ 'mantle.report_config.operator' | translate }}</div>\n <div fxFlex=\"1 1 0\" class=\"header-row-label\">{{ 'mantle.report_config.filter_value' | translate }}</div>\n <div fxFlex=\"0 0 48px\" class=\"header-row-label\"></div>\n </div>\n\n <div #filterContainer fxFlex=\"1 0 0\" fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"0\" class=\"filter-rows\">\n <div fxFlex=\"0 0 auto\" fxLayout=\"row\" fxLayoutAlign=\"stretch center\" fxLayoutGap=\"8px\"\n *ngFor=\"let filter of value.filters; let i = index\">\n\n <ng-container [formGroup]=\"filterFormArray.at(i)\">\n <div fxFlex=\"1 1 0\">\n <mantle-dropdown\n [id]=\"'filterName' + i\"\n [formControlName]=\"'name'\"\n [options]=\"filterPickerOptions\"\n [required]=\"true\"\n (change)=\"setFilterColumn(filter, $event)\">\n </mantle-dropdown>\n </div>\n <div fxFlex=\"1 1 0\">\n <mantle-dropdown\n [id]=\"'filterOperator' + i\"\n [formControlName]=\"'operator'\"\n [options]=\"filter.options.operators\"\n [required]=\"true\"\n [disable]=\"!filter.name\"\n (change)=\"setFilterOperator(filter, $event)\">\n </mantle-dropdown>\n </div>\n <div fxFlex=\"1 1 0\">\n <ng-container [ngSwitch]=\"filter.type\">\n\n <mantle-number-input *ngSwitchCase=\"'number'\"\n [id]=\"'filterValue' + i\"\n [formControlName]=\"'value'\"\n [required]=\"true\"\n [disable]=\"!filter.name\">\n </mantle-number-input>\n\n <mantle-datepicker *ngSwitchCase=\"'date'\"\n [id]=\"'filterValue' + i\"\n [formControlName]=\"'value'\"\n [required]=\"true\"\n [disable]=\"!filter.name\">\n </mantle-datepicker>\n\n <mantle-datetimepicker *ngSwitchCase=\"'datetime'\"\n [id]=\"'filterValue' + i\"\n [formControlName]=\"'value'\"\n [required]=\"true\"\n [disable]=\"!filter.name\">\n </mantle-datetimepicker>\n\n <mantle-text-input *ngSwitchCase=\"'string'\"\n [id]=\"'filterValue' + i\"\n [formControlName]=\"'value'\"\n [required]=\"true\"\n [disable]=\"!filter.name\">\n </mantle-text-input>\n\n <mantle-multiselect-input *ngSwitchCase=\"'dropdown'\"\n [id]=\"'filterValue' + i\"\n [formControlName]=\"'value'\"\n [options]=\"filter.options.preSelectedValues\"\n [required]=\"true\">\n </mantle-multiselect-input>\n\n </ng-container>\n </div>\n </ng-container>\n\n <div fxFlex=\"0 0 48px\">\n <button matIconButton color=\"warn\" type=\"button\" (click)=\"removeFilter(i)\">\n <mat-icon>cancel</mat-icon>\n </button>\n </div>\n\n </div>\n </div>\n\n <button mat-raised-button color=\"primary\" type=\"button\" (click)=\"addFilter()\">{{ 'mantle.report_config.add_filter' | translate }}</button>\n\n </div>\n\n <mat-hint *ngIf=\"value.dataset && errorMessage\" class=\"error-message\">{{ errorMessage }}</mat-hint>\n</div>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Observable, of as observableOf } from 'rxjs';\n\n@Component({\n selector: 'mantle-autocomplete-input',\n templateUrl: './autocomplete-input.component.html',\n styleUrls: ['./autocomplete-input.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AutocompleteInputComponent),\n multi: true\n }\n ]\n})\nexport class AutocompleteInputComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() options!: { values: { label: string, value: string }[] };\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public value: any = '';\n public filteredOptions$!: Observable<{ label: string, value: string }[]>;\n\n onChange = (newValue: string) => { };\n registerOnChange(fn: (newValue: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n writeValue(newValue: any): void {\n this.value = newValue;\n if (this.value !== null && this.value !== undefined) {\n this.value = String(this.value);\n }\n\n this.filteredOptions$ = observableOf(this.filterAutocompleteValues(this.value || ''));\n this.onChange(this.value);\n }\n\n onValueChanged(event: any): void {\n this.filteredOptions$ = observableOf(this.filterAutocompleteValues(this.value || ''));\n this.onChange(this.value);\n }\n\n filterAutocompleteValues(value: string): { label: string, value: string }[] {\n const filterValue = value.toLowerCase();\n\n return this.options.values.filter(item => item.value.toLowerCase().includes(filterValue));\n }\n\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <input matInput\n type=\"text\"\n [(ngModel)]=\"value\"\n (keyup)=\"onValueChanged($event)\"\n (change)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n [matAutocomplete]=\"auto\">\n\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onValueChanged($event)\">\n <mat-option *ngFor=\"let option of filteredOptions$ | async\" [value]=\"option.value\">\n {{option.label}}\n </mat-option>\n </mat-autocomplete>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DynamicFormField } from '../../../../services/dynamic-form.service';\n\n@Component({\n selector: 'mantle-dynamic-form-field',\n templateUrl: './dynamic-form-field.component.html',\n styleUrls: ['./dynamic-form-field.component.scss'],\n standalone: false\n})\nexport class DynamicFormFieldComponent {\n\n @Input() field!: DynamicFormField;\n @Input() form!: FormGroup;\n @Input() error: string | undefined;\n\n}\n","<div class=\"dynamic-form-field-wrapper\" [formGroup]=\"form\">\n <ng-container [ngSwitch]=\"field.type\">\n\n <mantle-text-input *ngSwitchCase=\"'string'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-text-input>\n\n <mantle-text-input *ngSwitchCase=\"'string-md'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-text-input>\n\n <mantle-text-input *ngSwitchCase=\"'string-lg'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-text-input>\n\n <mantle-textarea *ngSwitchCase=\"'text'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [rows]=\"4\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-textarea>\n\n <mantle-dropdown *ngSwitchCase=\"'dropdown'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-dropdown>\n\n <mantle-dropdown *ngSwitchCase=\"'dropdown-md'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-dropdown>\n\n <mantle-dropdown *ngSwitchCase=\"'dropdown-lg'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-dropdown>\n\n <mantle-multiselect-input *ngSwitchCase=\"'multiselect'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-multiselect-input>\n\n <mantle-multiselect-input *ngSwitchCase=\"'multiselect-md'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-multiselect-input>\n\n <mantle-multiselect-input *ngSwitchCase=\"'multiselect-lg'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-multiselect-input>\n\n <mantle-datepicker *ngSwitchCase=\"'date'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-datepicker>\n\n <mantle-datetimepicker *ngSwitchCase=\"'datetime'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-datetimepicker>\n\n <mantle-time-input *ngSwitchCase=\"'time'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-time-input>\n\n <mantle-number-input *ngSwitchCase=\"'number'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-number-input>\n\n <mantle-number-input *ngSwitchCase=\"'currency'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-number-input>\n\n <mantle-filepicker *ngSwitchCase=\"'file'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-filepicker>\n\n <mantle-imagepicker *ngSwitchCase=\"'image'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-imagepicker>\n\n <mantle-chip-input *ngSwitchCase=\"'chips'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-chip-input>\n\n <mantle-chip-input *ngSwitchCase=\"'chips-lg'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-chip-input>\n\n <mantle-password-input *ngSwitchCase=\"'password'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-password-input>\n\n <mantle-markdown-input *ngSwitchCase=\"'markdown'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-markdown-input>\n\n <mantle-rich-text-input *ngSwitchCase=\"'rich-text'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-rich-text-input>\n\n <mantle-autocomplete-input *ngSwitchCase=\"'autocomplete'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-autocomplete-input>\n\n <mantle-text-input *ngSwitchCase=\"'link'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-text-input>\n\n <mantle-colorpicker-input *ngSwitchCase=\"'color'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-colorpicker-input>\n\n <mantle-report-config-input *ngSwitchCase=\"'report-config'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-report-config-input>\n </ng-container>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DynamicLayoutGridSection } from '../../../../data-structures/dynamic-layout.structure';\nimport { DynamicFormField } from '../../../../services/dynamic-form.service';\nimport { ScreenSizeService } from '../../../../services/screen-size.service';\n\n@Component({\n selector: 'mantle-grid-form-section',\n templateUrl: './grid-form-section.component.html',\n styleUrls: ['./grid-form-section.component.scss'],\n standalone: false\n})\nexport class GridFormSectionComponent {\n\n @Input() title?: string;\n @Input() section!: DynamicLayoutGridSection;\n @Input() form!: FormGroup;\n @Input() errors: any = {};\n @Input() defaultRowHeight: string = '76px';\n\n public numColumns: number = 1;\n\n private breakpointColumns = new Map([\n ['xs', 1],\n ['sm', 2],\n ['md', 2],\n ['lg', 3],\n ['xl', 4],\n ]);\n\n constructor(private screenSizeService: ScreenSizeService) {\n this.screenSizeService.screenSize.subscribe((screenSize: any) => {\n if (this.section?.singleColumn) {\n this.numColumns = 1;\n return;\n }\n\n this.numColumns = this.breakpointColumns.get(screenSize) || 1;\n });\n }\n\n getColSpanForField(field: DynamicFormField): number {\n if (this.numColumns == 1) return 1;\n else if (['text', 'markdown', 'rich-text'].includes(field.type)) return this.numColumns;\n else if (['report-config'].includes(field.type) || field.type.endsWith('-lg')) return this.numColumns;\n else if (field.type.endsWith('-md')) return 2;\n else return 1;\n }\n\n getRowSpanForField(field: DynamicFormField): number {\n if (field.type == 'text') return 2;\n else if (['markdown', 'rich-text'].includes(field.type)) return 4;\n else if (field.type == 'report-config') return 12;\n else return 1;\n }\n\n get valid(): boolean {\n return this.form.valid;\n }\n\n get value(): any {\n return this.form.getRawValue();\n }\n\n reset(): void {\n this.form.reset();\n }\n\n}\n","<mantle-section-title *ngIf=\"title\" [title]=\"title\"></mantle-section-title>\n\n<form [formGroup]=\"form\" class=\"grid-form-layout\">\n <mat-grid-list\n [rowHeight]=\"section.rowHeight || defaultRowHeight\"\n [cols]=\"section.singleColumn ? 1 : numColumns\"\n [class.multi-column]=\"section.singleColumn ? false : numColumns > 1\">\n\n <ng-container *ngFor=\"let field of section.elements\">\n <mat-grid-tile *ngIf=\"!field.hidden\" [colspan]=\"section.singleColumn ? 1 : getColSpanForField(field)\" [rowspan]=\"getRowSpanForField(field)\">\n <mantle-dynamic-form-field [field]=\"field\" [form]=\"form\" [error]=\"errors[field.attr]\"></mantle-dynamic-form-field>\n </mat-grid-tile>\n </ng-container>\n\n </mat-grid-list>\n</form>\n","import { Component, OnChanges, AfterViewChecked, ChangeDetectorRef, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DashboardCardSearchMenuContent, DynamicLayoutGridSection } from '../../../data-structures/dynamic-layout.structure';\nimport { DynamicFormService } from '../../../services/dynamic-form.service';\n\n@Component({\n selector: 'mantle-dashboard-card-search-menu',\n templateUrl: './dashboard-card-search-menu.component.html',\n styleUrls: ['./dashboard-card-search-menu.component.scss'],\n standalone: false\n})\nexport class DashboardCardSearchMenuComponent implements OnChanges, AfterViewChecked {\n\n @Input() content!: DashboardCardSearchMenuContent;\n\n public section!: DynamicLayoutGridSection;\n public form!: FormGroup;\n\n constructor(private changeDetectorRef: ChangeDetectorRef, private dynamicFormService: DynamicFormService) { }\n\n ngOnChanges(): void {\n if (this.content) {\n this.form = this.dynamicFormService.toFormGroup(this.content.data);\n\n this.section = {\n layout: 'grid',\n elements: this.content.elements,\n singleColumn: true,\n rowHeight: '60px',\n writable: true,\n hidden: false,\n collapsed: false,\n options: {}\n }\n }\n }\n\n ngAfterViewChecked(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n get valid(): boolean {\n return this.form?.valid;\n }\n\n get value(): any {\n return this.dynamicFormService.transformFormValue(this.form?.getRawValue());\n }\n\n reset(): void {\n this.form.reset();\n }\n\n}\n","<ng-container *ngIf=\"content; else loader\">\n <mantle-grid-form-section\n [section]=\"section\"\n [form]=\"form\">\n </mantle-grid-form-section>\n</ng-container>\n\n<ng-template #loader>\n <mantle-loader></mantle-loader>\n</ng-template>\n","import { Component, OnChanges, Input } from '@angular/core';\nimport Highcharts from 'highcharts';\nimport HighchartsItemSeries from 'highcharts/modules/item-series';\nimport HighchartsGantt from 'highcharts/modules/gantt';\nimport HighchartsExporting from 'highcharts/modules/exporting';\nimport HighchartsOfflineExporting from 'highcharts/modules/offline-exporting';\nimport 'svg2pdf.js';\nimport { ObjectService } from '../../../../services/object.service';\n\nHighchartsItemSeries(Highcharts);\nHighchartsGantt(Highcharts);\nHighchartsExporting(Highcharts);\nHighchartsOfflineExporting(Highcharts);\n\n@Component({\n selector: 'mantle-dynamic-chart',\n templateUrl: './dynamic-chart.component.html',\n styleUrls: ['./dynamic-chart.component.scss'],\n standalone: false\n})\nexport class DynamicChartComponent implements OnChanges {\n\n @Input() label: string = '';\n @Input() data: any = {};\n\n Highcharts: typeof Highcharts = Highcharts;\n chartConstructor: string = 'chart';\n chartOptions: Highcharts.Options = {};\n updateFlag: boolean = false;\n oneToOneFlag: boolean = true;\n\n defaultChartOptions: Highcharts.Options = {\n chart: {\n plotBackgroundColor: undefined,\n plotBorderWidth: undefined,\n plotShadow: false,\n styledMode: false,\n type: ''\n },\n credits: {\n enabled: false\n },\n exporting: {\n enabled: false\n },\n plotOptions: {\n column: {\n pointPadding: 0.2,\n borderWidth: 0,\n borderRadius: 3,\n maxPointWidth: 40,\n minPointLength: 4\n }\n },\n tooltip: {},\n series: [],\n title: {\n text: ''\n },\n yAxis: {\n allowDecimals: false\n }\n };\n\n constructor(private objectService: ObjectService) { }\n\n ngOnChanges(): void {\n if (!this.data) return;\n\n this.chartConstructor = 'chart';\n if (this.data.chart && this.data.chart.type == 'gantt') {\n this.chartConstructor = 'ganttChart';\n\n this.data.xAxis[0].min = Date.parse(this.data.xAxis[0].min);\n this.data.xAxis[0].max = Date.parse(this.data.xAxis[0].max);\n\n this.data.series.forEach((s: any) => {\n s.data.forEach((point: any) => {\n point.start = Date.parse(point.start);\n point.end = Date.parse(point.end);\n })\n })\n }\n\n this.chartOptions = this.objectService.deepMerge(this.defaultChartOptions, this.data);\n }\n\n chartCallback: Highcharts.ChartCallbackFunction = function (chart): void {\n setTimeout(() => {\n if (!!chart?.renderer && !chart.renderer.forExport) {\n chart.reflow();\n }\n },0);\n };\n\n}\n","<div *ngIf=\"label\" class=\"header\">\n <p class=\"header-text\">{{ label | translate }}</p>\n</div>\n\n<highcharts-chart\n [Highcharts]=\"Highcharts\"\n [constructorType]=\"chartConstructor\"\n [options]=\"chartOptions\"\n [(update)]=\"updateFlag\"\n [oneToOne]=\"oneToOneFlag\"\n [callbackFunction]=\"chartCallback\">\n</highcharts-chart>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mantle-dashboard-info-card',\n templateUrl: './dashboard-info-card.component.html',\n styleUrls: ['./dashboard-info-card.component.scss'],\n standalone: false\n})\nexport class DashboardInfoCardComponent {\n\n @Input() data: any = '';\n @Input() options: any = '';\n\n constructor() { }\n\n}\n","<div class=\"info-card\">\n <div *ngIf=\"data.key_value\">\n <div *ngIf=\"data.key_value.label\" class=\"sub-header\">{{ data.key_value.label }}</div>\n <span class=\"header\">\n <h1 class=\"header-value\" [ngStyle]=\"{ 'color': data.color }\">{{ data.key_value.value }}</h1> <span class=\"header-units\">{{ data.key_value.unit }}</span>\n </span>\n <div *ngIf=\"data.showSubLabel\">\n <span class=\"header-date\">{{ data.key_value.sub_label }}</span>\n </div>\n </div>\n\n <small *ngIf=\"data.comparison\" class=\"comparison\">\n <mat-icon>{{ (data.comparison.value < 0) ? 'keyboard_arrow_down' : 'keyboard_arrow_up' }}</mat-icon>\n {{ data.comparison.value }} {{ data.comparison.unit }} {{ data.comparison.label }}\n </small>\n\n <table *ngIf=\"data.bulletpoints && data.bulletpoints.length > 0\" class=\"bulletpoints\">\n <tr *ngFor=\"let bulletpoint of data.bulletpoints\" class=\"bulletpoint\">\n <td class=\"bulletpoint-icon\"><mat-icon>chevron_right</mat-icon></td><td class=\"bulletpoint-value\"><b>{{ bulletpoint.value }}</b></td><td class=\"bulletpoint-label\">{{ bulletpoint.label }}</td>\n </tr>\n </table>\n</div>\n","import { DataSource } from '@angular/cdk/collections';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/**\n * Data source for the List Page view. This class should\n * encapsulate all logic for fetching and manipulating the displayed data\n * (including sorting, pagination, and searching).\n */\nexport class DashboardTableDataSource extends DataSource<any> {\n listSubject: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\n\n constructor() {\n super();\n }\n\n /**\n * Connect this data source to the table. The table will only update when\n * the returned stream emits new items.\n * @returns A stream of the items to be rendered.\n */\n connect(): Observable<any[]> {\n return this.listSubject.asObservable().pipe(\n map(() => {\n return this.listSubject.value;\n })\n );\n }\n\n /**\n * Called when the table is being destroyed. Use this function, to clean up\n * any open connections or free any held resources that were set up during connect.\n */\n disconnect(): void {}\n}\n","import { Component, AfterViewInit, OnChanges, Input, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatTable } from '@angular/material/table';\nimport { DashboardTableDataSource } from './dashboard-table-datasource';\n\nexport interface DashboardTableColumn {\n header: string;\n attr: string;\n type: string;\n options: any[];\n}\n\n@Component({\n selector: 'mantle-dashboard-table',\n templateUrl: './dashboard-table.component.html',\n styleUrls: ['./dashboard-table.component.scss'],\n standalone: false\n})\nexport class DashboardTableComponent implements AfterViewInit, OnChanges {\n\n @ViewChild(MatTable) table!: MatTable<any>;\n\n @Input() label: string = '';\n @Input() columns!: DashboardTableColumn[];\n @Input() items!: any[];\n @Input() hideHeaders!: boolean;\n @Input() withStripedRows!: boolean;\n @Input() withClickableRows!: boolean;\n @Input() onRecordClicked!: any;\n\n private dataSource: DashboardTableDataSource;\n\n constructor(private dialog: MatDialog) {\n this.dataSource = new DashboardTableDataSource();\n }\n\n ngAfterViewInit(): void {\n this.table.dataSource = this.dataSource;\n }\n\n ngOnChanges(): void {\n this.dataSource.listSubject.next(this.items);\n }\n\n listColumnAttrs(): string[] {\n return this.columns.map(column => {\n return column.attr;\n });\n }\n\n onRowClicked(row: any): void {\n if (!this.withClickableRows) return;\n\n // TODO: The action triggered by the click should depend on the associated service. So, the dynamic table should not know about the dialog service.\n this.onRecordClicked(this.dialog, row);\n }\n\n}\n","<div *ngIf=\"label\" class=\"header\">\n <p class=\"header-text\">{{ label | translate }}</p>\n</div>\n\n<div class=\"vertically-scrollable horizontal-scroll-table\">\n <table mat-table class=\"full-width\">\n\n <ng-container *ngFor=\"let column of columns\">\n <ng-container matColumnDef=\"{{ column.attr }}\">\n <th mat-header-cell *matHeaderCellDef>{{ column.header | translate }}</th>\n <td mat-cell *matCellDef=\"let row\">\n <mantle-dynamic-attribute-display [fieldType]=\"column.type\" [value]=\"row[column.attr]\" [field]=\"column\"></mantle-dynamic-attribute-display>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!hideHeaders\">\n <tr mat-header-row *matHeaderRowDef=\"listColumnAttrs()\"></tr>\n </ng-container>\n <tr mat-row *matRowDef=\"let row; columns: listColumnAttrs();\"\n (click)=\"onRowClicked(row)\"\n [class.clickable-row]=\"withClickableRows\"\n [class.striped-row]=\"withStripedRows\">\n </tr>\n\n </table>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { DashboardWidgetItemConfig } from '../../../../services/interfaces/dashboard-widget.service';\n\n@Component({\n selector: 'mantle-dynamic-widget-display',\n templateUrl: './dynamic-widget-display.component.html',\n styleUrls: ['./dynamic-widget-display.component.scss'],\n standalone: false\n})\nexport class DynamicWidgetDisplayComponent {\n\n @Input() widgetItem!: DashboardWidgetItemConfig;\n @Input() data: any = '';\n @Input() options: any = '';\n\n}\n","<ng-container [ngSwitch]=\"widgetItem.type\">\n\n <ng-container *ngSwitchCase=\"'chart'\">\n <mantle-dynamic-chart class=\"widget-item\" [label]=\"widgetItem.label\" [data]=\"data\">\n </mantle-dynamic-chart>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'info'\">\n <mantle-dashboard-info-card class=\"widget-item\" [data]=\"data\" [options]=\"options\">\n </mantle-dashboard-info-card>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'table'\">\n <mantle-dashboard-table class=\"widget-item\"\n [label]=\"widgetItem.label\"\n [columns]=\"data.columns\" [items]=\"data.items\"\n [hideHeaders]=\"data.hideHeaders\"\n [withStripedRows]=\"data.withStripedRows\"\n [withClickableRows]=\"data.withClickableRows\"\n [onRecordClicked]=\"data.onRecordClicked\">\n </mantle-dashboard-table>\n </ng-container>\n\n</ng-container>\n","import { Component, OnInit, Input, ViewChild } from '@angular/core';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { DynamicDashboardWidget, DashboardCardSearchMenuContent } from '../../../data-structures/dynamic-layout.structure';\nimport { DashboardCardSearchMenuComponent } from '../../../components/dashboard/dashboard-card-search-menu/dashboard-card-search-menu.component';\nimport { ScreenSizeService } from '../../../services/screen-size.service';\nimport { DashboardPageService } from '../../../services/interfaces/dashboard-page.service';\nimport { DashboardWidgetService, WidgetExportOption, DashboardWidgetButton, DashboardWidgetItemConfig } from '../../../services/interfaces/dashboard-widget.service';\nimport { ObjectService } from '../../../services/object.service';\nimport { DynamicFormField } from '../../../services/dynamic-form.service';\n\n@Component({\n selector: 'mantle-dashboard-card',\n templateUrl: './dashboard-card.component.html',\n styleUrls: ['./dashboard-card.component.scss'],\n standalone: false\n})\nexport class DashboardCardComponent implements OnInit {\n\n @ViewChild(DashboardCardSearchMenuComponent) searchForm!: DashboardCardSearchMenuComponent;\n @ViewChild(MatMenuTrigger) menuTrigger!: MatMenuTrigger;\n\n @Input() widget!: DynamicDashboardWidget;\n @Input() widgetConfig!: any;\n @Input() widgetItems!: any;\n @Input() rowHeight: string = '';\n @Input() dashboardWidgetService!: DashboardWidgetService;\n @Input() dashboardPageService!: DashboardPageService;\n @Input() searchValues: any = {};\n\n public widgetItemContexts: any[] = [];\n public exportOptions: WidgetExportOption[] = [];\n public additionalWidgetButtons: DashboardWidgetButton[] = [];\n public formContent!: DashboardCardSearchMenuContent;\n public options: any = {};\n\n private screenSize: string = 'default';\n public readonly WIDGET_COLUMNS: number = 12;\n public widgetRowHeight: string = '170px';\n\n constructor(private objectService: ObjectService, private screenSizeService: ScreenSizeService) { }\n\n ngOnInit(): void {\n this.initializeWidget();\n this.getWidgetItemData();\n this.options = this.dashboardWidgetService.defaultOptions();\n this.watchScreenSize(this.dashboardWidgetService.widgetDimensions);\n this.refreshFormContent();\n }\n\n initializeWidget() {\n this.exportOptions = this.dashboardWidgetService.widgetExportOptions();\n this.additionalWidgetButtons = this.dashboardWidgetService.additionalWidgetButtons(this.widgetConfig);\n }\n\n getWidgetItemData() {\n this.widgetItemContexts = this.dashboardWidgetService.widgetItemsConfig().map((widgetItem: any) => {\n let widgetItemData = this.widgetItems[widgetItem.slug];\n widgetItemData.data = this.objectService.deepMerge(widgetItem.configuration, widgetItemData.data);\n if (widgetItem.type == 'info') {\n widgetItemData.data = this.objectService.deepMerge(widgetItemData.data, { key_value: { label: widgetItem.label } });\n }\n\n return {\n config: widgetItem,\n data: widgetItemData.data,\n options: widgetItemData.options\n };\n });\n }\n\n refreshFormContent() {\n let elements = this.dashboardWidgetService.widgetSearchFields();\n elements.forEach((searchField: DynamicFormField) => {\n if ((searchField.type == 'dropdown') && (this.searchValues[searchField.attr] !== undefined)) {\n searchField.options = { values: this.searchValues[searchField.attr] };\n }\n });\n\n this.formContent = {\n data: this.options,\n elements: elements\n }\n }\n\n onSearchClicked() {\n let itemSlugs = this.widgetItemContexts.map((context: any) => {\n return context.config.slug;\n });\n let searchParams = this.searchForm.value;\n searchParams.widget_item_slugs = JSON.stringify(itemSlugs);\n this.objectService.removeEmptyAttributes(searchParams);\n\n this.dashboardPageService.getWidgetItems(searchParams).subscribe(res => {\n this.widgetConfig = res.content.data.widget_configs[this.widget.slug];\n this.widgetItems = res.content.data.widget_items;\n\n this.initializeWidget();\n this.getWidgetItemData();\n this.options = this.widgetItems[itemSlugs[0]].options;\n this.refreshFormContent();\n });\n }\n\n onAdditionalWidgetButtonClicked(buttonCallback: Function) {\n buttonCallback({\n onSuccess: () => {\n this.dashboardPageService.getWidgetItems({}).subscribe(res => {\n this.widgetConfig = res.content.data.widget_configs[this.widget.slug];\n this.widgetItems = res.content.data.widget_items;\n\n this.initializeWidget();\n this.getWidgetItemData();\n });\n }\n });\n }\n\n watchScreenSize(widgetDimensions: any) {\n this.screenSizeService.screenSize.subscribe((screenSize: any) => {\n this.screenSize = screenSize;\n this.widgetRowHeight = widgetDimensions.findByScreenSize(this.screenSize).rowHeight;\n });\n }\n\n getWidgetItemColspan(config: DashboardWidgetItemConfig): number {\n return config.size.findByScreenSize(this.screenSize).colspan;\n }\n\n getWidgetItemRowspan(config: DashboardWidgetItemConfig): number {\n return config.size.findByScreenSize(this.screenSize).rowspan;\n }\n}\n","<mat-card fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"0px\" class=\"dashboard-card\">\n <mat-card-header fxFlex=\"0 0 auto\">\n <mat-card-title>\n <span *ngIf=\"!dashboardWidgetService.icon; else iconHeader\" class=\"main-card-title dashboard-card-title\">{{ widget.label }}</span>\n <ng-template #iconHeader>\n <div>\n <mat-icon class=\"card-title-icon\">{{ dashboardWidgetService.icon }}</mat-icon>\n <span class=\"main-card-title dashboard-card-title\">\n {{ widget.label }}\n </span>\n </div>\n </ng-template>\n\n <ng-container *ngFor=\"let exportOption of exportOptions\">\n <button mat-button type=\"button\" class=\"export-button\" (click)=\"exportOption.export(options).subscribe()\">\n <span class=\"export-button-label\">{{ exportOption.label | translate }}</span>\n <mat-icon>download</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"additionalWidgetButtons\">\n <div class=\"widget-button-container\" [ngClass]=\"{ 'with-menu-button': dashboardWidgetService.showMenuButton }\">\n <button *ngFor=\"let button of additionalWidgetButtons\"\n mat-raised-button\n color=\"{{ button.color }}\"\n type=\"button\"\n class=\"widget-button\"\n [ngStyle]=\"button.styling\"\n (click)=\"onAdditionalWidgetButtonClicked(button.onClick)\"\n [disabled]=\"button.disabled\">\n {{ button.label | translate }}\n </button>\n </div>\n </ng-container>\n\n <button #menuTrigger mat-icon-button class=\"more-button\" [matMenuTriggerFor]=\"menu\" *ngIf=\"dashboardWidgetService.showMenuButton\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\" xPosition=\"before\">\n <div class=\"menu-form\" click-stop-propagation>\n <mantle-dashboard-card-search-menu #searchForm [content]=\"formContent\"></mantle-dashboard-card-search-menu>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <div fxFlex=\"1 1 auto\"></div>\n <div fxFlex=\"0 0 auto\">\n <button mat-raised-button color=\"primary\" type=\"button\" class=\"search-button\" (click)=\"onSearchClicked(); menuTrigger.closeMenu();\">\n {{ 'mantle.buttons.search' | translate }}\n </button>\n </div>\n </div>\n </div>\n </mat-menu>\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content fxFlex=\"1 0 1px\" fxAlign=\"center center\" class=\"dashboard-card-content\">\n\n <div class=\"grid-container\">\n <mat-grid-list\n [rowHeight]=\"widgetRowHeight\"\n [cols]=\"WIDGET_COLUMNS\">\n <mat-grid-tile *ngFor=\"let context of widgetItemContexts\" [colspan]=\"getWidgetItemColspan(context.config)\" [rowspan]=\"getWidgetItemRowspan(context.config)\">\n <mantle-dynamic-widget-display\n class=\"card-content-wrapper\"\n [widgetItem]=\"context.config\"\n [data]=\"context.data\"\n [options]=\"context.options\">\n </mantle-dynamic-widget-display>\n </mat-grid-tile>\n </mat-grid-list>\n </div>\n\n </mat-card-content>\n</mat-card>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { DynamicDashboardWidget, DynamicLayoutDashboardSection } from '../../../../data-structures/dynamic-layout.structure';\nimport { DashboardPageService } from '../../../../services/interfaces/dashboard-page.service';\nimport { DashboardWidgetService } from '../../../../services/interfaces/dashboard-widget.service';\nimport { ScreenSizeService } from '../../../../services/screen-size.service';\nimport { ArrayService } from '../../../../services/array.service';\n\n@Component({\n selector: 'mantle-dashboard-section',\n templateUrl: './dashboard-section.component.html',\n styleUrls: ['./dashboard-section.component.scss'],\n standalone: false\n})\nexport class DashboardSectionComponent implements OnInit {\n\n @Input() dashboardPageService!: DashboardPageService;\n @Input() slug: string | undefined;\n @Input() data: any = {};\n @Input() section!: DynamicLayoutDashboardSection;\n @Input() searchValues: any = {};\n\n public dashboardWidgetServices: DashboardWidgetService[] = [];\n public dashbordWidgets: DynamicDashboardWidget[] = [];\n\n private screenSize: string = 'default';\n public readonly SECTION_COLUMNS: number = 12;\n public rowHeight: string = '200px';\n\n constructor(private arrayService: ArrayService, private screenSizeService: ScreenSizeService) { }\n\n ngOnInit(): void {\n if (!this.slug) return;\n\n let dashboardSections = this.dashboardPageService.dashboardSections();\n let dashboardSection = this.arrayService.findByAttribute(dashboardSections, 'sectionSlug', this.slug);\n\n this.dashboardWidgetServices = dashboardSection.dashboardWidgetServices;\n\n this.filterDashboardWidgets();\n\n this.watchScreenSize(dashboardSection.sectionDimensions);\n }\n\n watchScreenSize(sectionDimensions: any) {\n this.screenSizeService.screenSize.subscribe((screenSize: any) => {\n this.screenSize = screenSize;\n this.rowHeight = sectionDimensions.findByScreenSize(this.screenSize).rowHeight;\n });\n }\n\n getColSpanForWidget(widgetSlug: string): number {\n const dashboardWidgetService = this.getDashboardWidgetService(widgetSlug);\n\n if (dashboardWidgetService == null) return 1;\n\n return dashboardWidgetService.widgetSize().findByScreenSize(this.screenSize).colspan;\n }\n\n getRowSpanForWidget(widgetSlug: string): number {\n const dashboardWidgetService = this.getDashboardWidgetService(widgetSlug);\n\n if (dashboardWidgetService == null) return 1;\n\n return dashboardWidgetService.widgetSize().findByScreenSize(this.screenSize).rowspan;\n }\n\n getDashboardWidgetService(widgetSlug: string): any {\n for (let widgetService of this.dashboardWidgetServices) {\n if (widgetService.slug == widgetSlug) return widgetService;\n }\n }\n\n filterDashboardWidgets() {\n this.dashbordWidgets = this.section.elements.filter((widget) => {\n return !widget.hidden;\n });\n }\n\n}\n","<div class=\"grid-container\">\n <mat-grid-list\n [rowHeight]=\"rowHeight\"\n [cols]=\"SECTION_COLUMNS\"\n [class.multi-column]=\"true\">\n\n <mat-grid-tile *ngFor=\"let widget of dashbordWidgets\" [colspan]=\"getColSpanForWidget(widget.slug)\" [rowspan]=\"getRowSpanForWidget(widget.slug)\">\n <mantle-dashboard-card\n [widget]=\"widget\"\n [widgetConfig]=\"data.widget_configs[widget.slug]\"\n [widgetItems]=\"data.widget_items\"\n [rowHeight]=\"rowHeight\"\n [dashboardWidgetService]=\"getDashboardWidgetService(widget.slug)\"\n [dashboardPageService]=\"dashboardPageService\"\n [searchValues]=\"searchValues\">\n </mantle-dashboard-card>\n </mat-grid-tile>\n\n </mat-grid-list>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutMarkdownSection } from '../../../../data-structures/dynamic-layout.structure';\n\n@Component({\n selector: 'mantle-markdown-details-section',\n templateUrl: './markdown-details-section.component.html',\n styleUrls: ['./markdown-details-section.component.scss'],\n standalone: false\n})\nexport class MarkdownDetailsSectionComponent {\n\n @Input() section!: DynamicLayoutMarkdownSection;\n\n}\n","<div class=\"markdown-wrapper\">\n <markdown ngPreserveWhitespaces *ngFor=\"let element of section.elements\">\n {{ element.text }}\n </markdown>\n</div>\n","import { Component, Input } from '@angular/core';\nimport {\n DynamicDetailsContent, DynamicLayoutDashboardSection, DynamicLayoutGridSection,\n DynamicLayoutMarkdownSection, DynamicLayoutRosterShiftListSection, DynamicLayoutSection,\n DynamicLayoutTableSection, DynamicLayoutReportSection\n} from '../../../../data-structures/dynamic-layout.structure';\nimport { DashboardPageService } from '../../../../services/interfaces/dashboard-page.service';\nimport { DetailPageService } from '../../../../services/interfaces/detail-page.service';\n\n@Component({\n selector: 'mantle-dynamic-details-section',\n templateUrl: './dynamic-details-section.component.html',\n styleUrls: ['./dynamic-details-section.component.scss'],\n standalone: false\n})\nexport class DynamicDetailsSectionComponent {\n\n @Input() detailPageService!: DetailPageService;\n @Input() content!: DynamicDetailsContent;\n @Input() section!: DynamicLayoutSection;\n\n constructor() { }\n\n asDynamicLayoutGridSection(section: any): DynamicLayoutGridSection {\n return section as DynamicLayoutGridSection;\n }\n\n asDynamicLayoutTableSection(section: any): DynamicLayoutTableSection {\n return section as DynamicLayoutTableSection;\n }\n\n asDynamicLayoutReportSection(section: any): DynamicLayoutReportSection {\n return section as DynamicLayoutReportSection;\n }\n\n asDynamicLayoutMarkdownSection(section: any): DynamicLayoutMarkdownSection {\n return section as DynamicLayoutMarkdownSection;\n }\n\n asDynamicLayoutDashboardSection(section: any): DynamicLayoutDashboardSection {\n return section as DynamicLayoutDashboardSection;\n }\n\n asDynamicLayoutRosterShiftListSection(section: any): DynamicLayoutRosterShiftListSection {\n return section as DynamicLayoutRosterShiftListSection;\n }\n\n asDashboardPageService(detailPageService: DetailPageService): DashboardPageService {\n return detailPageService as unknown as DashboardPageService;\n }\n\n}\n","<ng-container [ngSwitch]=\"section.layout\">\n\n <ng-container *ngSwitchCase=\"'grid'\">\n <mantle-grid-details-section\n [section]=\"asDynamicLayoutGridSection(section)\"\n [data]=\"content.data\">\n </mantle-grid-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'table'\">\n <mantle-table-details-section\n [section]=\"asDynamicLayoutTableSection(section)\"\n [data]=\"content.data\"\n [detailPageService]=\"detailPageService\">\n </mantle-table-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'dashboard'\">\n <mantle-dashboard-section\n [slug]=\"section.slug\"\n [section]=\"asDynamicLayoutDashboardSection(section)\"\n [data]=\"content.data\"\n [dashboardPageService]=\"asDashboardPageService(detailPageService)\">\n </mantle-dashboard-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'markdown'\">\n <mantle-markdown-details-section\n [section]=\"asDynamicLayoutMarkdownSection(section)\">\n </mantle-markdown-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'roster-shift-list'\">\n <mantle-roster-shift-list-details-section\n [section]=\"asDynamicLayoutRosterShiftListSection(section)\"\n [data]=\"content.data\">\n </mantle-roster-shift-list-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'report'\">\n <mantle-report-details-section\n [section]=\"asDynamicLayoutReportSection(section)\"\n [data]=\"content.data\">\n </mantle-report-details-section>\n </ng-container>\n\n</ng-container>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutContainer, DynamicDetailsContent } from '../../../../data-structures/dynamic-layout.structure';\nimport { DetailPageService } from '../../../../services/interfaces/detail-page.service';\n\n@Component({\n selector: 'mantle-accordion-details-container',\n templateUrl: './accordion-details-container.component.html',\n styleUrls: ['./accordion-details-container.component.scss'],\n standalone: false\n})\nexport class AccordionDetailsContainerComponent {\n\n @Input() detailPageService!: DetailPageService;\n @Input() content!: DynamicDetailsContent;\n @Input() container!: DynamicLayoutContainer;\n\n constructor() { }\n\n}\n","<mat-accordion multi class=\"dynamic-details accordion\">\n <ng-container *ngFor=\"let section of container.sections\">\n <mat-expansion-panel *ngIf=\"!section.hidden\" [expanded]=\"!section.collapsed\" class=\"dynamic-details-section\">\n <mat-expansion-panel-header>\n <mat-panel-title *ngIf=\"section.title\">\n <div class=\"title-wrapper\">\n <h4>{{ section.title }}</h4>\n <mat-divider></mat-divider>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n <mantle-dynamic-details-section [detailPageService]=\"detailPageService\" [section]=\"section\" [content]=\"content\">\n </mantle-dynamic-details-section>\n </mat-expansion-panel>\n </ng-container>\n</mat-accordion>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutContainer, DynamicDetailsContent } from '../../../../data-structures/dynamic-layout.structure';\nimport { DetailPageService } from '../../../../services/interfaces/detail-page.service'\n\n@Component({\n selector: 'mantle-plain-details-container',\n templateUrl: './plain-details-container.component.html',\n styleUrls: ['./plain-details-container.component.scss'],\n standalone: false\n})\nexport class PlainDetailsContainerComponent {\n\n @Input() detailPageService!: DetailPageService;\n @Input() content!: DynamicDetailsContent;\n @Input() container!: DynamicLayoutContainer;\n\n constructor() { }\n\n}\n","<div class=\"dynamic-details plain\">\n <ng-container *ngFor=\"let section of container.sections\">\n <div *ngIf=\"!section.hidden\" class=\"dynamic-details-section\">\n <mantle-section-title *ngIf=\"section.title\" [title]=\"section.title\"></mantle-section-title>\n <mantle-dynamic-details-section [detailPageService]=\"detailPageService\" [section]=\"section\" [content]=\"content\">\n </mantle-dynamic-details-section>\n </div>\n </ng-container>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutContainer, DynamicDetailsContent } from '../../../../data-structures/dynamic-layout.structure';\nimport { DetailPageService } from '../../../../services/interfaces/detail-page.service';\n\n@Component({\n selector: 'mantle-dynamic-details-container',\n templateUrl: './dynamic-details-container.component.html',\n styleUrls: ['./dynamic-details-container.component.scss'],\n standalone: false\n})\nexport class DynamicDetailsContainerComponent {\n\n @Input() detailPageService!: DetailPageService;\n @Input() content!: DynamicDetailsContent;\n @Input() container!: DynamicLayoutContainer;\n\n constructor() { }\n\n}\n","<ng-container [ngSwitch]=\"container.container_style\">\n\n <ng-container *ngSwitchCase=\"'plain'\">\n <mantle-plain-details-container [detailPageService]=\"detailPageService\" [container]=\"container\" [content]=\"content\">\n </mantle-plain-details-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'accordion'\">\n <mantle-accordion-details-container [detailPageService]=\"detailPageService\" [container]=\"container\" [content]=\"content\">\n </mantle-accordion-details-container>\n </ng-container>\n\n</ng-container>\n","import { Component, Input } from '@angular/core';\nimport { DynamicDetailsContent } from '../../../data-structures/dynamic-layout.structure';\nimport { DetailPageService } from '../../../services/interfaces/detail-page.service';\n\n@Component({\n selector: 'mantle-dynamic-details',\n templateUrl: './dynamic-details.component.html',\n styleUrls: ['./dynamic-details.component.scss'],\n standalone: false\n})\nexport class DynamicDetailsComponent {\n\n @Input() detailPageService!: DetailPageService;\n @Input() content!: DynamicDetailsContent;\n\n constructor() { }\n\n}\n","<ng-container *ngIf=\"content; else loader\">\n <ng-container *ngFor=\"let container of content.containers\">\n <mantle-dynamic-details-container [detailPageService]=\"detailPageService\" [container]=\"container\" [content]=\"content\">\n </mantle-dynamic-details-container>\n </ng-container>\n</ng-container>\n\n<ng-template #loader>\n <mantle-loader></mantle-loader>\n</ng-template>\n","import { Component, AfterViewChecked, ChangeDetectorRef, Inject } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\nimport { DynamicLayoutGridSection } from '../../../data-structures/dynamic-layout.structure';\nimport { DynamicFormService } from '../../../services/dynamic-form.service';\nimport { FormPageService } from '../../../services/interfaces/form-page.service';\n\nexport interface DialogNestedFormParams {\n title: string;\n section: DynamicLayoutGridSection;\n data: any;\n showDeleteButton: boolean;\n saveButtonText: string;\n formPageService: FormPageService;\n}\n\n@Component({\n selector: 'mantle-dialog-nested-form',\n templateUrl: './dialog-nested-form.component.html',\n styleUrls: ['./dialog-nested-form.component.scss'],\n standalone: false\n})\nexport class DialogNestedFormComponent implements AfterViewChecked {\n\n public title: string;\n public section: DynamicLayoutGridSection;\n public showDeleteButton: boolean;\n public saveButtonText: string;\n public formPageService!: FormPageService;\n public form!: FormGroup;\n\n constructor(private changeDetectorRef: ChangeDetectorRef, private dialogRef: MatDialogRef<DialogNestedFormComponent>,\n @Inject(MAT_DIALOG_DATA) private dialogNestedFormParams: DialogNestedFormParams,\n private dynamicFormService: DynamicFormService) {\n this.title = this.dialogNestedFormParams.title;\n this.section = this.dialogNestedFormParams.section;\n this.showDeleteButton = this.dialogNestedFormParams.showDeleteButton;\n this.formPageService = this.dialogNestedFormParams.formPageService;\n\n if (!this.dialogNestedFormParams.data) {\n this.dialogNestedFormParams.data = this.dynamicFormService.generateFormInitData(this.dialogNestedFormParams.section.elements);\n }\n\n this.saveButtonText = this.dialogNestedFormParams.saveButtonText || 'mantle.buttons.save';\n\n this.form = this.dynamicFormService.toFormGroup(this.dialogNestedFormParams.data);\n if (this.formPageService) {\n this.formPageService.onDialogFormContentLoaded(this.dialogNestedFormParams);\n this.form.valueChanges.subscribe(val => {\n let changes = this.formPageService.onDialogFormValueChanged(this.dialogNestedFormParams, this.form.getRawValue(), this.form);\n if (changes) this.form.patchValue(changes);\n });\n }\n }\n\n ngAfterViewChecked(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n onSave() {\n let formData = this.dynamicFormService.transformFormValue(this.form.getRawValue());\n this.dialogRef.close(formData);\n }\n\n onDelete() {\n let formData = this.form.getRawValue();\n formData._destroy = 1;\n this.dialogRef.close(formData);\n }\n\n onCancel() {\n this.dialogRef.close();\n }\n\n}\n","<div mat-dialog-title fxLayout=\"row\" fxLayoutAlign=\"start\" fxLayoutGap=\"8px\" class=\"dialog-title-section\">\n <mantle-section-title fxFlex=\"1 0 1px\" [title]=\"title\"></mantle-section-title>\n <button fxFlex=\"0 0 auto\" mat-icon-button tabindex=\"-1\" (click)=\"onCancel()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n\n <mantle-grid-form-section\n [section]=\"section\"\n [form]=\"form\">\n </mantle-grid-form-section>\n\n</mat-dialog-content>\n\n<mat-dialog-actions fxLayout=\"row\" class=\"actions-section\">\n <button fxFlex=\"0 0 auto\" *ngIf=\"showDeleteButton\" mat-button (click)=\"onDelete()\" color=\"warn\">{{ 'mantle.buttons.delete' | translate }}</button>\n <div fxFlex=\"1 1 auto\"></div>\n <button fxFlex=\"0 0 auto\" mat-button (click)=\"onSave()\" [disabled]=\"!form.valid\">{{ saveButtonText | translate }}</button>\n</mat-dialog-actions>\n","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatDialog, MatDialogConfig } from \"@angular/material/dialog\";\nimport { DialogNestedDetailsComponent } from '../../../../components/details/dialog-nested-details/dialog-nested-details.component';\nimport { DialogNestedFormComponent } from '../../../../components/form/dialog-nested-form/dialog-nested-form.component';\nimport { DynamicLayoutTableSection } from '../../../../data-structures/dynamic-layout.structure';\nimport { ArrayService } from '../../../../services/array.service';\nimport { FormPageService } from '../../../../services/interfaces/form-page.service';\n\n@Component({\n selector: 'mantle-table-form-section',\n templateUrl: './table-form-section.component.html',\n styleUrls: ['./table-form-section.component.scss'],\n standalone: false\n})\nexport class TableFormSectionComponent {\n\n @Input() title?: string;\n @Input() section!: DynamicLayoutTableSection;\n @Input() form!: FormGroup;\n @Input() formPageService!: FormPageService;\n\n constructor(private dialog: MatDialog, private arrayService: ArrayService) { }\n\n canAddRecord() {\n if (!this.section.config.can_add) return false;\n if (!this.section.options.max_record_count) return true;\n\n let recordCount = this.form.value[this.section.config.attr].filter((item: any) => {\n return !item._destroy;\n }).length;\n\n return this.section.options.max_record_count > recordCount;\n }\n\n openDetailsDialog(record: any): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n title: 'Item',\n section: this.section.config.modal_section,\n data: record,\n showEditButton: this.section.config.can_edit\n };\n dialogConfig.width = '80%';\n\n if (this.section.config.modal_section) {\n dialogConfig.data.section = this.formPageService.formDialogLayoutChanges(this.section.config.modal_section, record);\n }\n\n const dialogRef = this.dialog.open(DialogNestedDetailsComponent, dialogConfig);\n dialogRef.afterClosed().subscribe((dialogResponse) => {\n if (dialogResponse && dialogResponse.edit) {\n this.openFormDialog(record);\n }\n });\n }\n\n openFormDialog(record?: any): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n title: record ? 'Edit Item' : 'Add Item',\n section: this.section.config.modal_section,\n data: record,\n showDeleteButton: this.section.config.can_delete,\n formPageService: this.formPageService\n };\n dialogConfig.width = '80%';\n\n if (this.section.config.modal_section) {\n dialogConfig.data.section = this.formPageService.formDialogLayoutChanges(this.section.config.modal_section, record || null);\n }\n\n const dialogRef = this.dialog.open(DialogNestedFormComponent, dialogConfig);\n dialogRef.afterClosed().subscribe((formData) => {\n if (formData) {\n this.onDialogFormClosed(formData, record);\n }\n });\n }\n\n onDialogFormClosed(formData: any, existingRecord?: any): void {\n let tableContent = [ ...this.form.getRawValue()[this.section.config.attr] ];\n\n if (formData.id) {\n this.arrayService.replaceById(tableContent, formData.id, formData);\n }\n else if (existingRecord) {\n if (formData._destroy) this.arrayService.removeItem(tableContent, existingRecord);\n else this.arrayService.replaceItem(tableContent, existingRecord, formData);\n }\n else {\n if (formData._destroy) return;\n tableContent.push(formData);\n }\n\n this.form.patchValue({\n [this.section.config.attr]: tableContent\n });\n }\n\n get valid(): boolean {\n return this.form.valid;\n }\n\n get value(): any {\n return this.form.getRawValue();\n }\n\n reset(): void {\n this.form.reset();\n }\n\n}\n","<mantle-section-title *ngIf=\"title\" [title]=\"title\"></mantle-section-title>\n\n<div class=\"table-section-content\">\n <button *ngIf=\"canAddRecord()\" mat-raised-button color=\"primary\" type=\"button\" class=\"add-button\" (click)=\"openFormDialog()\">\n + {{ 'mantle.buttons.add_item' | translate }}\n </button>\n\n <mantle-dynamic-table\n [columns]=\"section.elements\"\n [items]=\"form.value[section.config.attr]\"\n [withClickableRows]=\"true\"\n (rowClicked)=\"openDetailsDialog($event)\">\n </mantle-dynamic-table>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DynamicLayoutRosterShiftListSection } from '../../../../data-structures/dynamic-layout.structure';\n\n@Component({\n selector: 'mantle-roster-shift-list-form-section',\n templateUrl: './roster-shift-list-form-section.component.html',\n styleUrls: ['./roster-shift-list-form-section.component.scss'],\n standalone: false\n})\nexport class RosterShiftListFormSectionComponent implements OnInit {\n\n @Input() title?: string;\n @Input() section!: DynamicLayoutRosterShiftListSection;\n @Input() form!: FormGroup;\n\n public dropdownValues!: { label: string, value: string }[];\n\n constructor() { }\n\n ngOnInit(): void {\n this.setDropdownValues();\n }\n\n canAddRecord() {\n if (!this.section.config.can_add) return false;\n if (!this.section.options.max_record_count) return true;\n\n let recordCount = this.form.value[this.section.config.attr].filter((item: any) => {\n return !item._destroy;\n }).length;\n\n return this.section.options.max_record_count > recordCount;\n }\n\n setDropdownValues(): void {\n let primaryColumnIndex = this.section.elements.findIndex((element) => element.attr == this.section.options.draggable_attr);\n if (primaryColumnIndex == -1) return;\n\n this.dropdownValues = this.section.elements[primaryColumnIndex].options.values.filter((option: any) => { return !option.hidden });;\n }\n\n onAddClicked(value: string) {\n let sortAttr = this.section.options.ordinal;\n let attribute = this.section.options.draggable_attr;\n let tableContent = [ ...this.form.getRawValue()[this.section.config.attr] ];\n\n let formData: any = {};\n formData[sortAttr] = tableContent.filter(item => { return !item._destroy }).length + 1;\n formData[attribute] = value;\n tableContent.push(formData);\n\n this.form.patchValue({\n [this.section.config.attr]: tableContent\n });\n }\n\n get valid(): boolean {\n return this.form.valid;\n }\n\n get value(): any {\n return this.form.getRawValue();\n }\n\n reset(): void {\n this.form.reset();\n }\n\n}\n","<mantle-section-title *ngIf=\"title\" [title]=\"title\"></mantle-section-title>\n\n<div class=\"roster-shift-list-content\">\n <mantle-draggable-table\n [columns]=\"section.elements\"\n [items]=\"form.value[section.config.attr]\"\n [sortAttr]=\"section.options.ordinal\"\n [writable]=\"true\">\n </mantle-draggable-table>\n\n <div class=\"dropdown-add-button-section\" *ngIf=\"canAddRecord()\">\n <button mat-raised-button color=\"primary\"\n type=\"button\" class=\"add-button\"\n [matMenuTriggerFor]=\"dropdownMenu\">\n + {{ 'mantle.buttons.add_item' | translate }} \n </button>\n <mat-menu #dropdownMenu=\"matMenu\">\n <button *ngFor=\"let dropdownValue of dropdownValues\"\n mat-menu-item\n (click)=\"onAddClicked(dropdownValue.value)\">\n {{ dropdownValue.label }}\n </button>\n </mat-menu>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport {\n DynamicFormContent, DynamicLayoutDashboardSection, DynamicLayoutGridSection,\n DynamicLayoutMarkdownSection, DynamicLayoutRosterShiftListSection, DynamicLayoutSection,\n DynamicLayoutTableSection\n} from '../../../../data-structures/dynamic-layout.structure';\nimport { DashboardPageService } from '../../../../services/interfaces/dashboard-page.service';\nimport { DetailPageService } from '../../../../services/interfaces/detail-page.service';\nimport { FormPageService } from '../../../../services/interfaces/form-page.service';\n\n@Component({\n selector: 'mantle-dynamic-form-section',\n templateUrl: './dynamic-form-section.component.html',\n styleUrls: ['./dynamic-form-section.component.scss'],\n standalone: false\n})\nexport class DynamicFormSectionComponent {\n\n @Input() formPageService!: FormPageService;\n @Input() section!: DynamicLayoutSection;\n @Input() content!: DynamicFormContent;\n @Input() form!: FormGroup;\n\n constructor() { }\n\n asDynamicLayoutGridSection(section: any): DynamicLayoutGridSection {\n return section as DynamicLayoutGridSection;\n }\n\n asDynamicLayoutTableSection(section: any): DynamicLayoutTableSection {\n return section as DynamicLayoutTableSection;\n }\n\n asDynamicLayoutMarkdownSection(section: any): DynamicLayoutMarkdownSection {\n return section as DynamicLayoutMarkdownSection;\n }\n\n asDynamicLayoutDashboardSection(section: any): DynamicLayoutDashboardSection {\n return section as DynamicLayoutDashboardSection;\n }\n\n asDynamicLayoutRosterShiftListSection(section: any): DynamicLayoutRosterShiftListSection {\n return section as DynamicLayoutRosterShiftListSection;\n }\n\n asDashboardPageService(formPageService: FormPageService): DashboardPageService {\n return formPageService as unknown as DashboardPageService;\n }\n\n asDetailPageService(formPageService: FormPageService): DetailPageService {\n return formPageService as unknown as DetailPageService;\n }\n\n}\n","<ng-container *ngIf=\"section.writable\">\n <ng-container *ngTemplateOutlet=\"dynamicFormContent; context: { form: form, section: section, content: content };\"></ng-container>\n</ng-container>\n<ng-container *ngIf=\"!section.writable\">\n <ng-container *ngTemplateOutlet=\"dynamicDetailsContent; context: { section: section, content: content };\"></ng-container>\n</ng-container>\n\n<ng-template #dynamicFormContent let-form=\"form\" let-content=\"content\" let-section=\"section\">\n <ng-container [ngSwitch]=\"section.layout\">\n\n <ng-container *ngSwitchCase=\"'grid'\">\n <mantle-grid-form-section\n [section]=\"asDynamicLayoutGridSection(section)\"\n [form]=\"form\"\n [errors]=\"content.errors || {}\">\n </mantle-grid-form-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'table'\">\n <mantle-table-form-section\n [section]=\"asDynamicLayoutTableSection(section)\"\n [form]=\"form\"\n [formPageService]=\"formPageService\">\n </mantle-table-form-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'roster-shift-list'\">\n <mantle-roster-shift-list-form-section\n [section]=\"asDynamicLayoutRosterShiftListSection(section)\"\n [form]=\"form\">\n </mantle-roster-shift-list-form-section>\n </ng-container>\n\n </ng-container>\n</ng-template>\n\n<ng-template #dynamicDetailsContent let-content=\"content\" let-section=\"section\">\n <ng-container [ngSwitch]=\"section.layout\">\n\n <ng-container *ngSwitchCase=\"'grid'\">\n <mantle-grid-details-section\n [section]=\"asDynamicLayoutGridSection(section)\"\n [data]=\"content.data\">\n </mantle-grid-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'table'\">\n <mantle-table-details-section\n [section]=\"asDynamicLayoutTableSection(section)\"\n [data]=\"content.data\"\n [detailPageService]=\"asDetailPageService(formPageService)\">\n </mantle-table-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'dashboard'\">\n <mantle-dashboard-section\n [slug]=\"section.slug\"\n [section]=\"asDynamicLayoutDashboardSection(section)\"\n [data]=\"content.data\"\n [dashboardPageService]=\"asDashboardPageService(formPageService)\">\n </mantle-dashboard-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'markdown'\">\n <mantle-markdown-details-section\n [section]=\"asDynamicLayoutMarkdownSection(section)\">\n </mantle-markdown-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'roster-shift-list'\">\n <mantle-roster-shift-list-details-section\n [section]=\"asDynamicLayoutRosterShiftListSection(section)\"\n [data]=\"content.data\">\n </mantle-roster-shift-list-details-section>\n </ng-container>\n\n </ng-container>\n</ng-template>\n","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DynamicLayoutContainer, DynamicFormContent } from '../../../../data-structures/dynamic-layout.structure';\nimport { FormPageService } from '../../../../services/interfaces/form-page.service';\n\n@Component({\n selector: 'mantle-plain-form-container',\n templateUrl: './plain-form-container.component.html',\n styleUrls: ['./plain-form-container.component.scss'],\n standalone: false\n})\nexport class PlainFormContainerComponent {\n\n @Input() formPageService!: FormPageService;\n @Input() content!: DynamicFormContent;\n @Input() container!: DynamicLayoutContainer;\n @Input() form!: FormGroup;\n\n constructor() { }\n\n}\n","<div class=\"dynamic-form plain\">\n <ng-container *ngFor=\"let section of container.sections\">\n <div *ngIf=\"!section.hidden\" class=\"dynamic-form-section\">\n <mantle-section-title *ngIf=\"section.title\" [title]=\"section.title\"></mantle-section-title>\n <mantle-dynamic-form-section [formPageService]=\"formPageService\" [section]=\"section\" [content]=\"content\" [form]=\"form\">\n </mantle-dynamic-form-section>\n </div>\n </ng-container>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DynamicLayoutContainer, DynamicFormContent } from '../../../../data-structures/dynamic-layout.structure';\nimport { FormPageService } from '../../../../services/interfaces/form-page.service';\n\n@Component({\n selector: 'mantle-accordion-form-container',\n templateUrl: './accordion-form-container.component.html',\n styleUrls: ['./accordion-form-container.component.scss'],\n standalone: false\n})\nexport class AccordionFormContainerComponent {\n\n @Input() formPageService!: FormPageService;\n @Input() content!: DynamicFormContent;\n @Input() container!: DynamicLayoutContainer;\n @Input() form!: FormGroup;\n\n constructor() { }\n\n}\n","<mat-accordion multi class=\"dynamic-form accordion\">\n <ng-container *ngFor=\"let section of container.sections\">\n <mat-expansion-panel *ngIf=\"!section.hidden\" [expanded]=\"!section.collapsed\" class=\"dynamic-form-section\">\n <mat-expansion-panel-header>\n <mat-panel-title *ngIf=\"section.title\">\n <div class=\"title-wrapper\">\n <h4>{{ section.title }}</h4>\n <mat-divider></mat-divider>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n <mantle-dynamic-form-section [formPageService]=\"formPageService\" [section]=\"section\" [content]=\"content\" [form]=\"form\">\n </mantle-dynamic-form-section>\n </mat-expansion-panel>\n </ng-container>\n</mat-accordion>\n","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DynamicLayoutContainer, DynamicFormContent } from '../../../../data-structures/dynamic-layout.structure';\nimport { FormPageService } from '../../../../services/interfaces/form-page.service';\n\n@Component({\n selector: 'mantle-dynamic-form-container',\n templateUrl: './dynamic-form-container.component.html',\n styleUrls: ['./dynamic-form-container.component.scss'],\n standalone: false\n})\nexport class DynamicFormContainerComponent {\n\n @Input() formPageService!: FormPageService;\n @Input() content!: DynamicFormContent;\n @Input() container!: DynamicLayoutContainer;\n @Input() form!: FormGroup;\n\n constructor() { }\n\n}\n","<ng-container [ngSwitch]=\"container.container_style\">\n\n <ng-container *ngSwitchCase=\"'plain'\">\n <mantle-plain-form-container [formPageService]=\"formPageService\" [container]=\"container\" [content]=\"content\" [form]=\"form\">\n </mantle-plain-form-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'accordion'\">\n <mantle-accordion-form-container [formPageService]=\"formPageService\" [container]=\"container\" [content]=\"content\" [form]=\"form\">\n </mantle-accordion-form-container>\n </ng-container>\n\n</ng-container>\n","import { Component, OnChanges, AfterViewChecked, ChangeDetectorRef, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DynamicFormContent } from '../../../data-structures/dynamic-layout.structure';\nimport { DynamicFormService } from '../../../services/dynamic-form.service';\nimport { FormPageService } from '../../../services/interfaces/form-page.service';\n\n@Component({\n selector: 'mantle-dynamic-form',\n templateUrl: './dynamic-form.component.html',\n styleUrls: ['./dynamic-form.component.scss'],\n standalone: false\n})\nexport class DynamicFormComponent implements OnChanges, AfterViewChecked {\n\n @Input() formPageService!: FormPageService;\n @Input() content!: DynamicFormContent;\n\n public form!: FormGroup;\n\n constructor(private changeDetectorRef: ChangeDetectorRef, private dynamicFormService: DynamicFormService) { }\n\n ngOnChanges(): void {\n if (this.content) {\n this.form = this.dynamicFormService.toFormGroup(this.content.data);\n\n if (this.formPageService) {\n this.form.valueChanges.subscribe(val => {\n let changes = this.formPageService.onFormValueChanged(this.content, this.form.getRawValue());\n if (changes) {\n this.content.data = {...this.content.data, ...changes};\n this.form.patchValue(changes);\n }\n });\n }\n }\n }\n\n ngAfterViewChecked(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n get valid(): boolean {\n return this.form?.valid;\n }\n\n get value(): any {\n return this.dynamicFormService.transformFormValue(this.form?.getRawValue());\n }\n\n reset(): void {\n this.form.reset();\n }\n\n}\n","<ng-container *ngIf=\"content; else loader\">\n <ng-container *ngFor=\"let container of content.containers\">\n <mantle-dynamic-form-container [formPageService]=\"formPageService\" [container]=\"container\" [content]=\"content\" [form]=\"form\">\n </mantle-dynamic-form-container>\n </ng-container>\n</ng-container>\n\n<ng-template #loader>\n <mantle-loader></mantle-loader>\n</ng-template>\n","import { Component, Inject } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\n\n@Component({\n selector: 'mantle-snackbar',\n templateUrl: './snackbar.component.html',\n styleUrls: ['./snackbar.component.scss'],\n standalone: false\n})\nexport class SnackbarComponent {\n\n public icon: string = '';\n\n constructor(@Inject(MAT_SNACK_BAR_DATA) public data: any, private snackbarRef: MatSnackBarRef<SnackbarComponent>) {\n switch (this.data.snackType) {\n case 'success':\n this.icon = 'check_circle_outline';\n break;\n case 'error':\n this.icon = 'error';\n break;\n case 'info':\n this.icon = 'info';\n break;\n }\n }\n\n close() {\n this.snackbarRef.dismiss();\n }\n}\n","<div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"8px\" class=\"snack-container\">\n <div fxFlex=\"0 0 auto\">\n <mat-icon class=\"large-icon\">{{ icon }}</mat-icon>\n </div>\n <div fxFlex=\"1 0 1px\">\n <span>{{ data.message | translate }}</span>\n </div>\n <div fxFlex=\"0 0 auto\">\n <button mat-icon-button (click)=\"close()\"><mat-icon>done</mat-icon></button>\n </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { SnackbarComponent } from '../components/widgets/snackbar/snackbar.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AnnouncementService {\n\n constructor(private snackbar: MatSnackBar) { }\n\n info(message: string) {\n this.snackbar.openFromComponent(SnackbarComponent, {\n data: { message: message, snackType: 'info' },\n panelClass: 'info-announcement',\n duration: 10000,\n horizontalPosition: 'center'\n });\n }\n\n success(message: string) {\n this.snackbar.openFromComponent(SnackbarComponent, {\n data: { message: message, snackType: 'success' },\n panelClass: 'success-announcement',\n duration: 3000,\n horizontalPosition: 'center'\n });\n }\n\n error(message: string) {\n this.snackbar.openFromComponent(SnackbarComponent, {\n data: { message: message, snackType: 'error' },\n panelClass: 'warn-announcement',\n duration: 3000,\n horizontalPosition: 'center'\n });\n }\n}\n","import { AfterViewChecked, ChangeDetectorRef, Component, Inject, ViewChild } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\nimport { Observable, of as observableOf } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { WebApiDeleteResponse, WebApiFormResponse, WebApiSaveResponse } from '../../../services/adapters/web-api-crud.adapter';\nimport { DynamicFormComponent } from '../../../components/form/dynamic-form/dynamic-form.component';\nimport { AnnouncementService } from '../../../services/announcement.service';\nimport { ObjectService } from '../../../services/object.service';\nimport { FormPageService } from '../../../services/interfaces/form-page.service';\n\nexport interface DialogFormParams {\n formPageService: FormPageService;\n id: string | undefined;\n title: string;\n initData: any;\n}\n\n@Component({\n selector: 'mantle-dialog-form',\n templateUrl: './dialog-form.component.html',\n styleUrls: ['./dialog-form.component.scss'],\n standalone: false\n})\nexport class DialogFormComponent implements AfterViewChecked {\n\n @ViewChild(DynamicFormComponent) dynamicForm!: DynamicFormComponent;\n\n public formPageService: FormPageService;\n public id: string | undefined;\n public title: string;\n public content$!: Observable<any>;\n public isSaveInProgress!: boolean;\n public isDeleteInProgress!: boolean;\n\n constructor(private dialogRef: MatDialogRef<DialogFormComponent>,\n @Inject(MAT_DIALOG_DATA) private dialogFormParams: DialogFormParams,\n private changeDetectorRef: ChangeDetectorRef,\n private announcementService: AnnouncementService, private objectService: ObjectService) {\n this.formPageService = this.dialogFormParams.formPageService;\n this.id = this.dialogFormParams.id;\n this.title = this.dialogFormParams.title;\n\n let responseObservable = this.id ? this.formPageService.getEdit(this.id) : this.formPageService.getNew(this.dialogFormParams.initData);\n\n this.content$ = responseObservable.pipe(\n map((res: WebApiFormResponse) => {\n if (this.dialogFormParams.initData) {\n res.content.data = this.objectService.deepMerge(res.content.data, this.dialogFormParams.initData);\n }\n return res.content;\n })\n );\n }\n\n ngAfterViewChecked(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n onCancelClicked() {\n this.close();\n }\n\n onSaveClicked() {\n this.isSaveInProgress = true;\n\n let responseObservable = this.id ? this.formPageService.update(this.id, this.dynamicForm.value) :\n this.formPageService.create(this.dynamicForm.value);\n\n responseObservable.subscribe(\n res => { this.onSaveSuccess(res); },\n res => { this.onSaveFailure(res); }\n );\n }\n\n onSaveSuccess(res: WebApiSaveResponse): void {\n this.id = res.id;\n this.content$ = observableOf(res.content);\n this.announcementService.success('mantle.messages.save_successful');\n this.close(res.content.data);\n\n this.isSaveInProgress = false;\n }\n\n onSaveFailure(res: { error: WebApiSaveResponse }): void {\n if (res.error.content) {\n this.content$ = observableOf(res.error.content);\n }\n else {\n this.close();\n }\n\n this.announcementService.error('mantle.messages.save_failed');\n\n if (!!res.error.alert?.message) {\n this.announcementService.error(res.error.alert.message);\n }\n\n this.isSaveInProgress = false;\n }\n\n onDeleteClicked() {\n this.formPageService.delete(\n this.id!,\n () => { this.isDeleteInProgress = true; },\n (res: WebApiDeleteResponse) => { this.onDeleteSuccess(res); },\n (res: WebApiDeleteResponse) => { this.onDeleteFailure(res); }\n );\n }\n\n onDeleteSuccess(res: WebApiDeleteResponse): void {\n this.announcementService.success('mantle.messages.delete_successful');\n this.close({ id: this.id, _destroy: true });\n \n this.isDeleteInProgress = false;\n }\n\n onDeleteFailure(res: WebApiDeleteResponse): void {\n this.announcementService.error('mantle.messages.delete_failed');\n \n this.isDeleteInProgress = false;\n }\n\n close(result: any = false) {\n this.dialogRef.close(result);\n }\n\n}\n","<div mat-dialog-title fxLayout=\"row\" fxLayoutAlign=\"start\" fxLayoutGap=\"8px\" class=\"dialog-title-section\">\n <mantle-section-title fxFlex=\"1 0 1px\" [title]=\"title\"></mantle-section-title>\n <button fxFlex=\"0 0 auto\" mat-icon-button tabindex=\"-1\" (click)=\"onCancelClicked()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <mantle-dynamic-form #dynamicForm [content]=\"content$ | async\"></mantle-dynamic-form>\n</mat-dialog-content>\n\n<mat-dialog-actions fxLayout=\"row\" class=\"actions-section\">\n <div fxFlex=\"0 0 auto\" *ngIf=\"!!id && formPageService.showDeleteButtonInForm\">\n <button mat-button\n *ngIf=\"!isDeleteInProgress\"\n color=\"warn\"\n type=\"button\"\n class=\"delete-button\"\n (click)=\"onDeleteClicked()\">\n {{ 'mantle.buttons.delete' | translate }}\n </button>\n\n <button mat-raised-button\n *ngIf=\"isDeleteInProgress\"\n color=\"warn\"\n type=\"button\"\n class=\"button-with-spinner deleting-button\"\n [disabled]=\"true\">\n {{ 'mantle.buttons.deleting' | translate }}\n <mat-spinner [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n\n <div fxFlex=\"1 1 auto\"></div>\n\n <div fxFlex=\"0 0 auto\">\n <button mat-raised-button\n *ngIf=\"!isSaveInProgress\"\n color=\"primary\"\n type=\"button\"\n class=\"save-button\"\n (click)=\"onSaveClicked()\"\n [disabled]=\"!dynamicForm?.valid\">\n {{ 'mantle.buttons.save' | translate }}\n </button>\n\n <button mat-raised-button\n *ngIf=\"isSaveInProgress\"\n color=\"primary\"\n type=\"button\"\n class=\"button-with-spinner saving-button\"\n (click)=\"onSaveClicked()\"\n [disabled]=\"true\">\n {{ 'mantle.buttons.saving' | translate }}\n <mat-spinner [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n</mat-dialog-actions>\n","import { Component, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { DynamicLayoutEditorFormField } from '../../../../data-structures/dynamic-layout.structure';\nimport { DialogNestedFormComponent } from '../../../../components/form/dialog-nested-form/dialog-nested-form.component';\n\n@Component({\n selector: 'mantle-layout-editor-field-element',\n templateUrl: './layout-editor-field-element.component.html',\n styleUrls: ['./layout-editor-field-element.component.scss'],\n standalone: false\n})\nexport class LayoutEditorFieldElementComponent {\n\n @Input() element!: DynamicLayoutEditorFormField;\n @Input() showControls: boolean = true;\n\n constructor(private dialog: MatDialog) { }\n\n onEditElementClicked() {\n const dialogRef = this.dialog.open(DialogNestedFormComponent, this.elementDialogConfig(this.element));\n\n dialogRef.afterClosed().subscribe(formData => {\n if (!formData) return;\n\n this.element.label = formData.label;\n this.element.attr_type = formData.attr_type;\n });\n }\n\n elementDialogConfig(record: any): MatDialogConfig {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n title: 'Edit Layout Element',\n data: {\n label: record.label,\n attr_name: record.attr_name,\n attr_type: record.attr_type\n },\n section: {\n singleColumn: true,\n elements: [\n { label: 'Label', attr: 'label', type: 'string', required: true },\n { label: 'Attribute', attr: 'attr_name', type: 'string', disabled: true },\n { label: 'Type', attr: 'attr_type', type: 'dropdown', required: true,\n options: {\n values: [\n { value: 'string', label: 'String' },\n { value: 'string-lg', label: 'Wide String' },\n { value: 'text', label: 'Text Area' },\n { value: 'chips', label: 'Chips' },\n { value: 'number', label: 'Number' },\n { value: 'date', label: 'Date' },\n { value: 'datetime', label: 'Date & Time' },\n ]\n }\n }\n ]\n }\n };\n dialogConfig.width = '40%';\n\n return dialogConfig;\n }\n\n onDeleteElementClicked() {\n this.element._destroy = true;\n }\n\n}\n","<mat-card>\n <div class=\"element-content\" fxLayout=\"column\" fxLayoutAlign=\"stretch\">\n\n <div fxFlex=\"0 0 40px\">\n <div *ngIf=\"showControls\" fxLayout=\"row\" fxLayoutAlign=\"center start\" class=\"element-controls\">\n <div fxFlex=\"0 0 auto\">\n <button mat-icon-button\n type=\"button\">\n <mat-icon>drag_indicator</mat-icon>\n </button>\n </div>\n <div fxFlex=\"1 1 auto\"></div>\n <div *ngIf=\"element.user_specified\" fxFlex=\"0 0 auto\">\n <button mat-icon-button\n color=\"primary\"\n type=\"button\"\n (click)=\"onEditElementClicked()\">\n <mat-icon>edit</mat-icon>\n </button>\n </div>\n <div *ngIf=\"element.user_specified\" fxFlex=\"0 0 auto\">\n <button mat-icon-button\n color=\"warn\"\n type=\"button\"\n (click)=\"onDeleteElementClicked()\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n\n <div fxFlex=\"1 0 0\"></div>\n\n <div fxFlex=\"0 0 auto\">\n <h4 class=\"label\">{{ element.label }}</h4>\n </div>\n\n <div fxFlex=\"1 0 0\"></div>\n\n <div fxFlex=\"0 0 auto\">\n <h5 class=\"properties\"><b>{{ '{' }}</b> {{ element.attr_type }} <b>{{ '}' }}</b></h5>\n </div>\n\n </div>\n</mat-card>\n","import { Component, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { DynamicLayoutEditorTableColumn } from '../../../../data-structures/dynamic-layout.structure';\nimport { DialogNestedFormComponent } from '../../../../components/form/dialog-nested-form/dialog-nested-form.component';\n\n@Component({\n selector: 'mantle-layout-editor-table-column-element',\n templateUrl: './layout-editor-table-column-element.component.html',\n styleUrls: ['./layout-editor-table-column-element.component.scss'],\n standalone: false\n})\nexport class LayoutEditorTableColumnElementComponent {\n\n @Input() element!: DynamicLayoutEditorTableColumn;\n @Input() showControls: boolean = true;\n\n constructor(private dialog: MatDialog) { }\n\n onEditElementClicked() {\n const dialogRef = this.dialog.open(DialogNestedFormComponent, this.elementDialogConfig(this.element));\n\n dialogRef.afterClosed().subscribe(formData => {\n if (!formData) return;\n\n this.element.label = formData.label;\n this.element.attr_type = formData.attr_type;\n });\n }\n\n elementDialogConfig(record: any): MatDialogConfig {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n title: 'Edit Table Column',\n data: {\n label: record.label,\n attr_name: record.attr_name,\n attr_type: record.attr_type\n },\n section: {\n singleColumn: true,\n elements: [\n { label: 'Label', attr: 'label', type: 'string', required: true },\n { label: 'Attribute', attr: 'attr_name', type: 'string', disabled: true },\n { label: 'Type', attr: 'attr_type', type: 'dropdown', required: true,\n options: {\n values: [\n { value: 'string', label: 'String' },\n { value: 'string-lg', label: 'Wide String' },\n { value: 'text', label: 'Text Area' },\n { value: 'chips', label: 'Chips' },\n { value: 'number', label: 'Number' },\n { value: 'date', label: 'Date' },\n { value: 'datetime', label: 'Date & Time' },\n ]\n }\n }\n ]\n }\n };\n dialogConfig.width = '40%';\n\n return dialogConfig;\n }\n\n onDeleteElementClicked() {\n this.element._destroy = true;\n }\n\n}\n","<mat-card>\n <div class=\"element-content\" fxLayout=\"column\" fxLayoutAlign=\"stretch\">\n\n <div fxFlex=\"0 0 40px\">\n <div *ngIf=\"showControls\" fxLayout=\"row\" fxLayoutAlign=\"center start\" class=\"element-controls\">\n <div fxFlex=\"0 0 auto\">\n <button mat-icon-button\n type=\"button\">\n <mat-icon>drag_indicator</mat-icon>\n </button>\n </div>\n <div fxFlex=\"1 1 auto\"></div>\n <div *ngIf=\"element.user_specified\" fxFlex=\"0 0 auto\">\n <button mat-icon-button\n color=\"primary\"\n type=\"button\"\n (click)=\"onEditElementClicked()\">\n <mat-icon>edit</mat-icon>\n </button>\n </div>\n <div *ngIf=\"element.user_specified\" fxFlex=\"0 0 auto\">\n <button mat-icon-button\n color=\"warn\"\n type=\"button\"\n (click)=\"onDeleteElementClicked()\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n\n <div fxFlex=\"1 0 0\"></div>\n\n <div fxFlex=\"0 0 auto\">\n <h4 class=\"label\">{{ element.label }}</h4>\n </div>\n\n <div fxFlex=\"1 0 0\"></div>\n\n <div fxFlex=\"0 0 auto\">\n <h5 class=\"properties\"><b>{{ '{' }}</b> {{ element.attr_type }} <b>{{ '}' }}</b></h5>\n </div>\n\n </div>\n</mat-card>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutEditorDashboardWidget } from '../../../../data-structures/dynamic-layout.structure';\n\n@Component({\n selector: 'mantle-layout-editor-widget-element',\n templateUrl: './layout-editor-widget-element.component.html',\n styleUrls: ['./layout-editor-widget-element.component.scss'],\n standalone: false\n})\nexport class LayoutEditorWidgetElementComponent {\n\n @Input() element!: DynamicLayoutEditorDashboardWidget;\n\n constructor() { }\n\n}\n","<mat-card class=\"widget-card\">\n <h4 class=\"label\">{{ element.widget_slug }}</h4>\n <h5 class=\"properties\"><b>{{ '{' }}</b> widget <b>{{ '}' }}</b></h5>\n</mat-card>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutEditorFormField, DynamicLayoutEditorDashboardWidget, DynamicLayoutEditorMarkdownElement, DynamicLayoutEditorTableColumn } from '../../../../data-structures/dynamic-layout.structure';\n\n@Component({\n selector: 'mantle-dynamic-layout-editor-element',\n templateUrl: './dynamic-layout-editor-element.component.html',\n styleUrls: ['./dynamic-layout-editor-element.component.scss'],\n standalone: false\n})\nexport class DynamicLayoutEditorElementComponent {\n\n @Input() element!: DynamicLayoutEditorFormField | DynamicLayoutEditorDashboardWidget | DynamicLayoutEditorMarkdownElement | DynamicLayoutEditorTableColumn;\n @Input() elementType: string = '';\n @Input() showControls: boolean = true;\n\n constructor() { }\n\n asDynamicLayoutEditorFormField(element: any): DynamicLayoutEditorFormField {\n return element as DynamicLayoutEditorFormField;\n }\n\n asDynamicLayoutEditorTableColumn(element: any): DynamicLayoutEditorTableColumn {\n return element as DynamicLayoutEditorTableColumn;\n }\n\n asDynamicLayoutEditorDashboardWidget(element: any): DynamicLayoutEditorDashboardWidget {\n return element as DynamicLayoutEditorDashboardWidget;\n }\n\n}\n","<ng-container [ngSwitch]=\"elementType\">\n\n <ng-container *ngSwitchCase=\"'field'\">\n <mantle-layout-editor-field-element\n [element]=\"asDynamicLayoutEditorFormField(element)\"\n [showControls]=\"showControls\">\n </mantle-layout-editor-field-element>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'table-column'\">\n <mantle-layout-editor-table-column-element\n [element]=\"asDynamicLayoutEditorTableColumn(element)\"\n [showControls]=\"showControls\">\n </mantle-layout-editor-table-column-element>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'widget'\">\n <mantle-layout-editor-widget-element [element]=\"asDynamicLayoutEditorDashboardWidget(element)\">\n </mantle-layout-editor-widget-element>\n </ng-container>\n\n</ng-container>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutEditorSection } from '../../../../data-structures/dynamic-layout.structure';\n\n@Component({\n selector: 'mantle-dashboard-layout-editor-section',\n templateUrl: './dashboard-layout-editor-section.component.html',\n styleUrls: ['./dashboard-layout-editor-section.component.scss'],\n standalone: false\n})\nexport class DashboardLayoutEditorSectionComponent {\n\n @Input() section!: DynamicLayoutEditorSection;\n\n constructor() { }\n\n}\n","<div class=\"grid-layout-editor-section\">\n <mat-grid-list\n rowHeight=\"180px\"\n cols=\"1\"\n [class.multi-column]=\"true\">\n\n <mat-grid-tile *ngFor=\"let widget of section.dynamic_layout_dashboard_widgets_attributes\" [colspan]=\"1\" [rowspan]=\"1\">\n <mantle-dynamic-layout-editor-element\n [element]=\"widget\"\n elementType=\"widget\">\n </mantle-dynamic-layout-editor-element>\n </mat-grid-tile>\n\n </mat-grid-list>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { DynamicLayoutEditorSection, DynamicLayoutEditorFormField } from '../../../../data-structures/dynamic-layout.structure';\nimport { DialogNestedFormComponent } from '../../../../components/form/dialog-nested-form/dialog-nested-form.component';\nimport { ArrayService } from '../../../../services/array.service';\nimport { ScreenSizeService } from '../../../../services/screen-size.service';\n\n@Component({\n selector: 'mantle-grid-layout-editor-section',\n templateUrl: './grid-layout-editor-section.component.html',\n styleUrls: ['./grid-layout-editor-section.component.scss'],\n standalone: false\n})\nexport class GridLayoutEditorSectionComponent {\n\n @Input() section!: DynamicLayoutEditorSection;\n @Input() defaultRowHeight: string = '120px';\n\n public numColumns: number = 1;\n\n private breakpointColumns = new Map([\n ['xs', 1],\n ['sm', 2],\n ['md', 2],\n ['lg', 3],\n ['xl', 4],\n ]);\n\n constructor(private screenSizeService: ScreenSizeService, private dialog: MatDialog, private arrayService: ArrayService) {\n this.screenSizeService.screenSize.subscribe((screenSize: any) => {\n if (this.section?.singleColumn) {\n this.numColumns = 1;\n return;\n }\n\n this.numColumns = this.breakpointColumns.get(screenSize) || 1;\n });\n }\n\n getColSpanForField(attribute: DynamicLayoutEditorFormField): number {\n return (attribute.attr_type == 'text' || attribute.attr_type == 'string-lg' || attribute.attr_type == 'markdown' || attribute.attr_type == 'rich-text') ? this.numColumns : 1;\n }\n\n getRowSpanForField(attribute: DynamicLayoutEditorFormField): number {\n //return (attribute.attr_type == 'text' || attribute.attr_type == 'markdown') ? 2 : 1;\n return 1;\n }\n\n onAddElementClicked() {\n const dialogRef = this.dialog.open(DialogNestedFormComponent, this.elementDialogConfig());\n\n dialogRef.afterClosed().subscribe(formData => {\n if (!formData) return;\n\n this.section.dynamic_layout_grid_fields_attributes.push(formData);\n });\n }\n\n elementDialogConfig(): MatDialogConfig {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n title: 'New Layout Element',\n data: {\n label: '',\n attr_type: 'string',\n ordinal: this.arrayService.maxValueForAttribute(this.section.dynamic_layout_grid_fields_attributes, 'ordinal') + 1,\n user_specified: true\n },\n section: {\n singleColumn: true,\n elements: [\n { label: 'Label', attr: 'label', type: 'string', required: true },\n { label: 'Type', attr: 'attr_type', type: 'dropdown', required: true,\n options: {\n values: [\n { value: 'string', label: 'String' },\n { value: 'string-lg', label: 'Wide String' },\n { value: 'text', label: 'Text Area' },\n { value: 'chips', label: 'Chips' },\n { value: 'number', label: 'Number' },\n { value: 'date', label: 'Date' },\n { value: 'datetime', label: 'Date & Time' },\n ]\n }\n }\n ]\n }\n };\n dialogConfig.width = '40%';\n\n return dialogConfig;\n }\n\n}\n","<div class=\"grid-layout-editor-section\">\n <mat-grid-list\n [rowHeight]=\"section.rowHeight || defaultRowHeight\"\n [cols]=\"section.singleColumn ? 1 : numColumns\"\n [class.multi-column]=\"section.singleColumn ? false : numColumns > 1\">\n\n <ng-container *ngFor=\"let element of section.dynamic_layout_grid_fields_attributes\">\n <mat-grid-tile *ngIf=\"!element._destroy\" [colspan]=\"section.singleColumn ? 1 : getColSpanForField(element)\" [rowspan]=\"getRowSpanForField(element)\">\n <mantle-dynamic-layout-editor-element\n elementType=\"field\"\n [element]=\"element\"\n [showControls]=\"!section.elements_locked\">\n </mantle-dynamic-layout-editor-element>\n </mat-grid-tile>\n </ng-container>\n\n </mat-grid-list>\n</div>\n\n<div fxLayout=\"row\" fxLayoutAlign=\"center start\" fxLayoutGap=\"16px\" class=\"section-controls\">\n <div fxFlex=\"1 1 auto\"></div>\n <div fxFlex=\"0 0 auto\" *ngIf=\"!section.elements_locked\">\n <button mat-raised-button\n color=\"primary\"\n type=\"button\"\n (click)=\"onAddElementClicked()\">\n <mat-icon>add</mat-icon>\n </button>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutEditorSection } from '../../../../data-structures/dynamic-layout.structure';\n\n@Component({\n selector: 'mantle-markdown-layout-editor-section',\n templateUrl: './markdown-layout-editor-section.component.html',\n styleUrls: ['./markdown-layout-editor-section.component.scss'],\n standalone: false\n})\nexport class MarkdownLayoutEditorSectionComponent {\n\n @Input() section!: DynamicLayoutEditorSection;\n\n}\n","<div class=\"markdown-wrapper\">\n <markdown ngPreserveWhitespaces *ngFor=\"let element of section.dynamic_layout_markdown_elements_attributes\">\n {{ element.text }}\n </markdown>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { DynamicLayoutEditorSection } from '../../../../data-structures/dynamic-layout.structure';\nimport { DialogNestedFormComponent } from '../../../../components/form/dialog-nested-form/dialog-nested-form.component';\nimport { ArrayService } from '../../../../services/array.service';\n\n@Component({\n selector: 'mantle-table-layout-editor-section',\n templateUrl: './table-layout-editor-section.component.html',\n styleUrls: ['./table-layout-editor-section.component.scss'],\n standalone: false\n})\nexport class TableLayoutEditorSectionComponent {\n\n @Input() section!: DynamicLayoutEditorSection;\n\n constructor(private dialog: MatDialog, private arrayService: ArrayService) { }\n\n onAddElementClicked() {\n const dialogRef = this.dialog.open(DialogNestedFormComponent, this.elementDialogConfig());\n\n dialogRef.afterClosed().subscribe(formData => {\n if (!formData) return;\n\n this.section.dynamic_layout_table_columns_attributes.push(formData);\n });\n }\n\n elementDialogConfig(): MatDialogConfig {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n title: 'New Table Column',\n data: {\n label: '',\n attr_type: 'string',\n ordinal: this.arrayService.maxValueForAttribute(this.section.dynamic_layout_table_columns_attributes, 'ordinal') + 1,\n user_specified: true\n },\n section: {\n singleColumn: true,\n elements: [\n { label: 'Label', attr: 'label', type: 'string', required: true },\n { label: 'Type', attr: 'attr_type', type: 'dropdown', required: true,\n options: {\n values: [\n { value: 'string', label: 'String' },\n { value: 'string-lg', label: 'Wide String' },\n { value: 'text', label: 'Text Area' },\n { value: 'chips', label: 'Chips' },\n { value: 'number', label: 'Number' },\n { value: 'date', label: 'Date' },\n { value: 'datetime', label: 'Date & Time' },\n ]\n }\n }\n ]\n }\n };\n dialogConfig.width = '40%';\n\n return dialogConfig;\n }\n\n}\n","<div class=\"table-layout-editor-section\">\n <h4 class=\"section-type-label\">Table</h4>\n <mat-grid-list rowHeight=\"120px\" [cols]=\"section.dynamic_layout_table_columns_attributes.length\" [class.multi-column]=\"true\" [ngStyle]=\"{ 'width.px': section.dynamic_layout_table_columns_attributes.length * 300 }\">\n\n <ng-container *ngFor=\"let element of section.dynamic_layout_table_columns_attributes\">\n <mat-grid-tile *ngIf=\"!element._destroy\" colspan=\"1\" rowspan=\"1\">\n <mantle-dynamic-layout-editor-element\n elementType=\"table-column\"\n [element]=\"element\"\n [showControls]=\"!section.elements_locked\">\n </mantle-dynamic-layout-editor-element>\n </mat-grid-tile>\n </ng-container>\n\n </mat-grid-list>\n</div>\n\n<div fxLayout=\"row\" fxLayoutAlign=\"center start\" fxLayoutGap=\"16px\" class=\"section-controls\">\n <div fxFlex=\"1 1 auto\"></div>\n <div fxFlex=\"0 0 auto\" *ngIf=\"!section.elements_locked\">\n <button mat-raised-button\n color=\"primary\"\n type=\"button\"\n (click)=\"onAddElementClicked()\">\n <mat-icon>add</mat-icon>\n </button>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutEditorSection } from '../../../../data-structures/dynamic-layout.structure';\nimport { LayoutEditorPageService } from '../../../../services/interfaces/layout-editor-page.service';\n\n@Component({\n selector: 'mantle-dynamic-layout-editor-section',\n templateUrl: './dynamic-layout-editor-section.component.html',\n styleUrls: ['./dynamic-layout-editor-section.component.scss'],\n standalone: false\n})\nexport class DynamicLayoutEditorSectionComponent {\n\n @Input() layoutEditorPageService!: LayoutEditorPageService;\n @Input() section!: DynamicLayoutEditorSection;\n\n constructor() { }\n\n}\n","<ng-container [ngSwitch]=\"section.layout_style\">\n\n <ng-container *ngSwitchCase=\"'grid'\">\n <mantle-grid-layout-editor-section\n [section]=\"section\">\n </mantle-grid-layout-editor-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'table'\">\n <mantle-table-layout-editor-section\n [section]=\"section\">\n </mantle-table-layout-editor-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'dashboard'\">\n <mantle-dashboard-layout-editor-section\n [section]=\"section\">\n </mantle-dashboard-layout-editor-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'markdown'\">\n <mantle-markdown-layout-editor-section\n [section]=\"section\">\n </mantle-markdown-layout-editor-section>\n </ng-container>\n\n</ng-container>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutEditorContainer } from '../../../../data-structures/dynamic-layout.structure';\nimport { LayoutEditorPageService } from '../../../../services/interfaces/layout-editor-page.service';\n\n@Component({\n selector: 'mantle-accordion-layout-editor-container',\n templateUrl: './accordion-layout-editor-container.component.html',\n styleUrls: ['./accordion-layout-editor-container.component.scss'],\n standalone: false\n})\nexport class AccordionLayoutEditorContainerComponent {\n\n @Input() layoutEditorPageService!: LayoutEditorPageService;\n @Input() container!: DynamicLayoutEditorContainer;\n\n constructor() { }\n\n}\n","<mat-accordion multi class=\"dynamic-details accordion\">\n <ng-container *ngFor=\"let section of container.dynamic_layout_sections_attributes\">\n <mat-expansion-panel [expanded]=\"!section.collapsed\" class=\"dynamic-details-section\">\n <mat-expansion-panel-header>\n <mat-panel-title *ngIf=\"section.title\">\n <div class=\"title-wrapper\">\n <h4>{{ section.title }}</h4>\n <mat-divider></mat-divider>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n <mantle-dynamic-layout-editor-section [layoutEditorPageService]=\"layoutEditorPageService\" [section]=\"section\">\n </mantle-dynamic-layout-editor-section>\n </mat-expansion-panel>\n </ng-container>\n</mat-accordion>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutEditorContainer } from '../../../../data-structures/dynamic-layout.structure';\nimport { LayoutEditorPageService } from '../../../../services/interfaces/layout-editor-page.service';\n\n@Component({\n selector: 'mantle-plain-layout-editor-container',\n templateUrl: './plain-layout-editor-container.component.html',\n styleUrls: ['./plain-layout-editor-container.component.scss'],\n standalone: false\n})\nexport class PlainLayoutEditorContainerComponent {\n\n @Input() layoutEditorPageService!: LayoutEditorPageService;\n @Input() container!: DynamicLayoutEditorContainer;\n\n constructor() { }\n\n}\n","<div class=\"dynamic-details plain\">\n <ng-container *ngFor=\"let section of container.dynamic_layout_sections_attributes\">\n <mat-card class=\"dynamic-details-section\">\n <mantle-section-title *ngIf=\"section.title\" [title]=\"section.title\"></mantle-section-title>\n <mantle-dynamic-layout-editor-section [layoutEditorPageService]=\"layoutEditorPageService\" [section]=\"section\">\n </mantle-dynamic-layout-editor-section>\n </mat-card>\n </ng-container>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutEditorContainer } from '../../../../data-structures/dynamic-layout.structure';\nimport { LayoutEditorPageService } from '../../../../services/interfaces/layout-editor-page.service';\n\n@Component({\n selector: 'mantle-dynamic-layout-editor-container',\n templateUrl: './dynamic-layout-editor-container.component.html',\n styleUrls: ['./dynamic-layout-editor-container.component.scss'],\n standalone: false\n})\nexport class DynamicLayoutEditorContainerComponent {\n\n @Input() layoutEditorPageService!: LayoutEditorPageService;\n @Input() container!: DynamicLayoutEditorContainer;\n\n constructor() { }\n\n}\n","<ng-container [ngSwitch]=\"container.container_style\">\n\n <ng-container *ngSwitchCase=\"'plain'\">\n <mantle-plain-layout-editor-container\n [layoutEditorPageService]=\"layoutEditorPageService\"\n [container]=\"container\">\n </mantle-plain-layout-editor-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'accordion'\">\n <mantle-accordion-layout-editor-container\n [layoutEditorPageService]=\"layoutEditorPageService\"\n [container]=\"container\">\n </mantle-accordion-layout-editor-container>\n </ng-container>\n\n</ng-container>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutEditorContent } from '../../../data-structures/dynamic-layout.structure';\nimport { LayoutEditorPageService } from '../../../services/interfaces/layout-editor-page.service';\n\n@Component({\n selector: 'mantle-dynamic-layout-editor',\n templateUrl: './dynamic-layout-editor.component.html',\n styleUrls: ['./dynamic-layout-editor.component.scss'],\n standalone: false\n})\nexport class DynamicLayoutEditorComponent {\n\n @Input() layoutEditorPageService!: LayoutEditorPageService;\n @Input() content!: DynamicLayoutEditorContent;\n\n constructor() { }\n\n}\n","<ng-container *ngIf=\"content; else loader\">\n <ng-container *ngFor=\"let container of content.data.dynamic_layout_containers_attributes\">\n <mantle-dynamic-layout-editor-container\n [layoutEditorPageService]=\"layoutEditorPageService\"\n [container]=\"container\">\n </mantle-dynamic-layout-editor-container>\n </ng-container>\n</ng-container>\n\n<ng-template #loader>\n <mantle-loader></mantle-loader>\n</ng-template>\n","import { Component } from '@angular/core';\nimport moment from 'moment';\nimport { LocaleService } from '../../../services/locale.service';\nimport { ScreenSizeService } from '../../../services/screen-size.service';\n\n@Component({\n selector: 'mantle-page-title',\n templateUrl: './page-title.component.html',\n styleUrls: ['./page-title.component.scss'],\n standalone: false\n})\nexport class PageTitleComponent {\n\n public today: string;\n public isSmallScreen: boolean = false;\n\n constructor(private localeService: LocaleService, private screenSizeService: ScreenSizeService) {\n this.today = moment().locale(this.localeService.currentLocaleCode).format('dddd | DD MMM YYYY');\n\n this.screenSizeService.screenSize.subscribe((screenSize: any) => {\n this.isSmallScreen = screenSize == 'xs' || screenSize == 'sm';\n });\n }\n\n}\n","<h1 fxLayout=\"row wrap\" fxLayoutGap=\"8px\">\n <div fxFlex=\"0 0 auto\" class=\"title-text\"><ng-content></ng-content></div>\n <div fxFlex=\"1 0 1px\"></div>\n <div fxFlex=\"0 0 auto\" [fxHide]=\"isSmallScreen\" class=\"title-date\">{{ today }}</div>\n</h1>\n\n<hr />\n","import { Component, Input } from '@angular/core';\nimport {\n DynamicDashboardContent, DynamicLayoutContainer, DynamicLayoutGridSection,\n DynamicLayoutTableSection, DynamicLayoutDashboardSection\n} from '../../../../data-structures/dynamic-layout.structure';\nimport { DashboardPageService } from '../../../../services/interfaces/dashboard-page.service';\n\n@Component({\n selector: 'mantle-plain-dashboard-container',\n templateUrl: './plain-dashboard-container.component.html',\n styleUrls: ['./plain-dashboard-container.component.scss'],\n standalone: false\n})\nexport class PlainDashboardContainerComponent {\n\n @Input() dashboardPageService!: DashboardPageService;\n @Input() content!: DynamicDashboardContent;\n @Input() container!: DynamicLayoutContainer;\n @Input() searchValues: any = {};\n\n constructor() { }\n\n asDynamicLayoutGridSection(section: any): DynamicLayoutGridSection {\n return section as DynamicLayoutGridSection;\n }\n\n asDynamicLayoutTableSection(section: any): DynamicLayoutTableSection {\n return section as DynamicLayoutTableSection;\n }\n\n asDynamicLayoutDashboardSection(section: any): DynamicLayoutDashboardSection {\n return section as DynamicLayoutDashboardSection;\n }\n\n}\n","<ng-container *ngFor=\"let section of container.sections\">\n <ng-container *ngIf=\"!section.hidden\">\n <ng-container [ngSwitch]=\"section.layout\">\n\n <ng-container *ngSwitchCase=\"'dashboard'\">\n <mantle-dashboard-section\n [slug]=\"section.slug\"\n [section]=\"asDynamicLayoutDashboardSection(section)\"\n [data]=\"content.data\"\n [dashboardPageService]=\"dashboardPageService\"\n [searchValues]=\"searchValues\">\n </mantle-dashboard-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'grid'\">\n <mantle-grid-details-section\n [section]=\"asDynamicLayoutGridSection(section)\"\n [data]=\"content.data\">\n </mantle-grid-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'table'\">\n <mantle-table-details-section\n [section]=\"asDynamicLayoutTableSection(section)\"\n [data]=\"content.data\">\n </mantle-table-details-section>\n </ng-container>\n\n </ng-container>\n </ng-container>\n</ng-container>\n","import { Component, Input } from '@angular/core';\nimport { DynamicDashboardContent, DynamicLayoutContainer } from '../../../../data-structures/dynamic-layout.structure';\nimport { DashboardPageService } from '../../../../services/interfaces/dashboard-page.service';\n\n@Component({\n selector: 'mantle-dynamic-dashboard-container',\n templateUrl: './dynamic-dashboard-container.component.html',\n styleUrls: ['./dynamic-dashboard-container.component.scss'],\n standalone: false\n})\nexport class DynamicDashboardContainerComponent {\n\n @Input() dashboardPageService!: DashboardPageService;\n @Input() content!: DynamicDashboardContent;\n @Input() container!: DynamicLayoutContainer;\n @Input() searchValues: any = {};\n\n constructor() { }\n\n}\n","<ng-container [ngSwitch]=\"container.container_style\">\n\n <ng-container *ngSwitchCase=\"'plain'\">\n <mantle-plain-dashboard-container [dashboardPageService]=\"dashboardPageService\" [container]=\"container\" [content]=\"content\" [searchValues]=\"searchValues\">\n </mantle-plain-dashboard-container>\n </ng-container>\n\n</ng-container>\n","import { Component, Input } from '@angular/core';\nimport { DynamicDashboardContent } from '../../../data-structures/dynamic-layout.structure';\nimport { DashboardPageService } from '../../../services/interfaces/dashboard-page.service';\n\n@Component({\n selector: 'mantle-dynamic-dashboard',\n templateUrl: './dynamic-dashboard.component.html',\n styleUrls: ['./dynamic-dashboard.component.scss'],\n standalone: false\n})\nexport class DynamicDashboardComponent {\n\n @Input() dashboardPageService!: DashboardPageService;\n @Input() content!: DynamicDashboardContent;\n @Input() searchValues: any = {};\n\n constructor() { }\n\n}\n","<ng-container *ngIf=\"content; else loader\">\n <ng-container *ngFor=\"let container of content.containers\">\n <mantle-dynamic-dashboard-container [dashboardPageService]=\"dashboardPageService\" [container]=\"container\" [content]=\"content\" [searchValues]=\"searchValues\">\n </mantle-dynamic-dashboard-container>\n </ng-container>\n</ng-container>\n\n<ng-template #loader>\n <mantle-loader></mantle-loader>\n</ng-template>\n","import { Component, OnInit, Injector } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { DashboardPageService } from '../../../services/interfaces/dashboard-page.service';\n\n@Component({\n selector: 'mantle-dashboard-page',\n templateUrl: './dashboard-page.component.html',\n styleUrls: ['./dashboard-page.component.scss'],\n standalone: false\n})\nexport class DashboardPageComponent implements OnInit {\n\n public dashboardPageService: DashboardPageService;\n public pageTitle: string;\n public content$!: Observable<any>;\n public searchValues: any = {};\n\n constructor(private route: ActivatedRoute, private injector: Injector) {\n const dashboardPageServiceInjectionToken = this.route.snapshot.data['dashboardPageService'];\n this.dashboardPageService = this.injector.get<DashboardPageService>(dashboardPageServiceInjectionToken);\n this.pageTitle = this.route.snapshot.data['pageTitle'];\n }\n\n ngOnInit(): void {\n this.content$ = this.dashboardPageService.getWidgetItems({}).pipe(\n map(res => {\n this.searchValues = res.search_values;\n return res.content;\n })\n );\n }\n}\n","<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"16px\" class=\"page dashboard-page full-height-only vertically-scrollable\">\n\n <div fxFlex=\"0 0 auto\">\n <mantle-page-title>{{ pageTitle | translate }}</mantle-page-title>\n </div>\n\n <div fxFlex=\"1 0 auto\">\n <mantle-dynamic-dashboard [content]=\"content$ | async\" [searchValues]=\"searchValues\" [dashboardPageService]=\"dashboardPageService\"></mantle-dynamic-dashboard>\n </div>\n\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mantle-content-title',\n templateUrl: './content-title.component.html',\n styleUrls: ['./content-title.component.scss'],\n standalone: false\n})\nexport class ContentTitleComponent {\n\n @Input() thumbnail!: string;\n @Input() title!: string;\n\n constructor() { }\n\n}\n","<div fxLayout=\"row\" fxLayoutAlign=\"center center\" class=\"content-title\">\n <div *ngIf=\"thumbnail\" fxFlex=\"0 0 auto\">\n <img class=\"content-title-thumbnail\" [attr.src]=\"thumbnail | secureImage | async\" />\n </div>\n\n <div fxFlex=\"1 0 1px\">\n <h1 *ngIf=\"title\" class=\"content-title-title\">{{ title }}</h1>\n </div>\n</div>\n","import { Component, OnInit, Injector } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { AnnouncementService } from '../../../services/announcement.service';\nimport { LayoutEditorPageService } from '../../../services/interfaces/layout-editor-page.service';\nimport { WebApiFormResponse, WebApiSaveResponse } from '../../../services/adapters/web-api-crud.adapter';\n\n@Component({\n selector: 'mantle-layout-editor-page',\n templateUrl: './layout-editor-page.component.html',\n styleUrls: ['./layout-editor-page.component.scss'],\n standalone: false\n})\nexport class LayoutEditorPageComponent implements OnInit {\n\n public layoutEditorPageService: LayoutEditorPageService;\n\n public id!: string;\n public header: any;\n public content!: any;\n public isTabbedContent: boolean = false;\n public isSaveInProgress!: boolean;\n\n constructor(private route: ActivatedRoute, private injector: Injector,\n private announcementService: AnnouncementService) {\n const layoutEditorPageServiceInjectionToken = this.route.snapshot.data['layoutEditorPageService'];\n this.layoutEditorPageService = this.injector.get<LayoutEditorPageService>(layoutEditorPageServiceInjectionToken);\n this.isTabbedContent = this.route.snapshot.data['isTabbedContent'];\n }\n\n ngOnInit(): void {\n this.pullContent();\n }\n\n pullContent() {\n this.route.params.subscribe(params => {\n this.id = this.route.snapshot.params['id'];\n\n this.layoutEditorPageService.getEdit(this.id).subscribe(\n (res: WebApiFormResponse) => {\n this.loadContent(res);\n }\n );\n });\n }\n\n loadContent(response: any) {\n this.header = response.header;\n this.content = response.content;\n }\n\n onSaveClicked(): void {\n this.isSaveInProgress = true;\n\n this.layoutEditorPageService.save(\n this.id, this.content.data,\n (res: WebApiSaveResponse) => { this.onSaveSuccess(res); },\n (res: WebApiSaveResponse) => { this.onSaveFailure(res); }\n );\n }\n\n onSaveSuccess(res: WebApiSaveResponse): void {\n this.id = res.id!;\n this.content = res.content;\n this.announcementService.success('mantle.messages.save_successful');\n this.back();\n\n this.isSaveInProgress = false;\n }\n\n onSaveFailure(res: WebApiSaveResponse): void {\n if (res.content) {\n this.content = res.content;\n }\n else {\n this.back();\n }\n\n this.announcementService.error('mantle.messages.save_failed');\n\n this.isSaveInProgress = false;\n }\n\n back() {\n this.layoutEditorPageService.openList();\n }\n\n}\n","<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" class=\"full-height-min\" [ngClass]=\"{'page full-height-only vertically-scrollable': !isTabbedContent}\">\n <div fxFlex=\"0 0 auto\" class=\"page-header headline-5\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center start\" fxLayoutGap=\"16px\">\n <div fxFlex=\"1 1 auto\">\n <mantle-content-title *ngIf=\"header\" [title]=\"header.title\"></mantle-content-title>\n </div>\n </div>\n </div>\n\n <div fxFlex=\"1 0 auto\" class=\"main-content\">\n <mantle-dynamic-layout-editor [content]=\"content\" [layoutEditorPageService]=\"layoutEditorPageService\"></mantle-dynamic-layout-editor>\n </div>\n\n <div fxFlex=\"0 0 auto\" class=\"page-footer\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <div fxFlex=\"1 1 auto\"></div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"layoutEditorPageService.showSaveButton\">\n <button mat-raised-button\n color=\"primary\"\n type=\"button\"\n class=\"button-with-spinner save-button\"\n [disabled]=\"layoutEditorPageService.isCommitInProgress\"\n (click)=\"onSaveClicked()\"> <!-- TODO || !dynamicForm?.valid -->\n {{ 'mantle.buttons.save' | translate }}\n <mat-spinner *ngIf=\"isSaveInProgress\" [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n </div>\n </div>\n</div>\n","import { Observable } from 'rxjs';\nimport { HttpParams } from '@angular/common/http';\nimport { DynamicDetailsContent } from '../../data-structures/dynamic-layout.structure';\nimport { DynamicFormContent } from '../../data-structures/dynamic-layout.structure';\n\nexport class WebApiListRequest {\n search: any;\n sort: {\n attr: string;\n direction: string;\n };\n pagination: {\n page_number: number;\n page_size: number;\n };\n\n constructor(params: any = {}) {\n this.search = params.search || {};\n this.sort = {\n attr: params.sort?.attr || 'id',\n direction: params.sort?.direction || 'asc'\n };\n this.pagination = {\n page_number: params.pagination?.page_number || 0,\n page_size: params.pagination?.page_size || 20\n };\n }\n\n toHttpParams(): HttpParams {\n let params = {\n fromObject: {\n 'sort_attr': this.sort.attr,\n 'sort_direction': this.sort.direction,\n 'page_number': this.pagination.page_number,\n 'page_size': this.pagination.page_size,\n ...this.search\n }\n }\n\n return new HttpParams(params);\n }\n}\n\nexport interface WebApiListResponse {\n content: any[];\n sort?: {\n attr: string;\n direction: string;\n };\n pagination?: {\n page_number: number;\n page_size: number;\n total_items: number;\n };\n search_values?: any;\n}\n\nexport interface WebApiDetailsResponse {\n id: string;\n header: any;\n content: DynamicDetailsContent;\n}\n\nexport interface WebApiFormResponse {\n id?: string;\n header: any;\n content: DynamicFormContent;\n}\n\nexport interface WebApiSaveResponse {\n id?: string;\n content: DynamicFormContent;\n confirmationRequest?: { message: string, onConfirmationGiven: (confirmed: boolean) => void };\n alert?: { message: string };\n}\n\nexport interface WebApiDeleteResponse {\n id: string;\n errors?: string[];\n}\n\nexport interface WebApiCrudAdapter {\n\n getList(params: WebApiListRequest, headers: any): Observable<WebApiListResponse>;\n get(id: string, params: any, headers: any): Observable<WebApiDetailsResponse>;\n getNew(params: any, headers: any): Observable<WebApiFormResponse>;\n create(params: any, headers: any): Observable<WebApiSaveResponse>;\n getEdit(id: string, params: any, headers: any): Observable<WebApiFormResponse>;\n update(id: string, params: any, headers: any): Observable<WebApiSaveResponse>;\n destroy(id: string, params: any, headers: any): Observable<WebApiDeleteResponse>;\n\n}\n","import { DataSource } from '@angular/cdk/collections';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort, SortDirection } from '@angular/material/sort';\nimport { Observable, merge } from 'rxjs';\nimport { map, startWith, switchMap } from 'rxjs/operators';\nimport { SearchPanelComponent } from '../../../components/widgets/search-panel/search-panel.component';\nimport { WebApiListRequest } from '../../../services/adapters/web-api-crud.adapter';\nimport { ListPageService } from '../../../services/interfaces/list-page.service';\nimport { DynamicFormField } from '../../../services/dynamic-form.service';\n\n/**\n * Data source for the List Page view. This class should\n * encapsulate all logic for fetching and manipulating the displayed data\n * (including sorting, pagination, and searching).\n */\nexport class ListPageDataSource extends DataSource<any> {\n dataService: ListPageService;\n paginator: MatPaginator | undefined;\n sort: MatSort | undefined;\n searchPanel: SearchPanelComponent | undefined;\n\n public data: any[] = [];\n public selectedRecordIds: any[] = [];\n public selectAll: boolean = false;\n\n constructor(dataService: ListPageService) {\n super();\n this.dataService = dataService;\n }\n\n /**\n * Connect this data source to the table. The table will only update when\n * the returned stream emits new items.\n * @returns A stream of the items to be rendered.\n */\n connect(): Observable<any[]> {\n if (this.paginator && this.sort && this.searchPanel) {\n // Combine everything that affects the rendered data into one update\n // stream for the data-table to consume.\n return merge(this.paginator.page, this.sort.sortChange, this.searchPanel.search, this.dataService.webRtcEvents,\n this.dataService.subContentChangeEvents).pipe(\n startWith(null),\n switchMap(() => {\n let params = new WebApiListRequest({\n search: this.searchPanel?.searchParams,\n sort: { attr: this.sort?.active, direction: this.sort?.direction },\n pagination: { page_number: (this.paginator?.pageIndex || 0) + 1, page_size: this.paginator?.pageSize }\n });\n return this.dataService.getList(params);\n }),\n map(res => {\n if (this.paginator) {\n this.paginator.pageIndex = res.pagination?.page_number! - 1;\n this.paginator.pageSize = res.pagination?.page_size!;\n this.paginator.length = res.pagination?.total_items!;\n }\n if (this.sort) {\n this.sort.active = res.sort?.attr!;\n this.sort.direction = res.sort?.direction! as SortDirection;\n }\n if (this.searchPanel && !!res.search_values) {\n this.searchPanel.searchFields.forEach((searchField: DynamicFormField) => {\n if ((searchField.type == 'dropdown') && (res.search_values[searchField.attr] !== undefined)) {\n searchField.options = { values: res.search_values[searchField.attr] };\n }\n });\n }\n\n this.data = res.content;\n this.selectedRecordIds = [];\n this.selectAll = false;\n\n return this.data;\n })\n );\n } else {\n throw Error('Please set the paginator, sort, and search-panel on the data source before connecting.');\n }\n }\n\n /**\n * Called when the table is being destroyed. Use this function, to clean up\n * any open connections or free any held resources that were set up during connect.\n */\n disconnect(): void {}\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { DynamicFormContent, DynamicLayoutGridSection } from '../../../data-structures/dynamic-layout.structure';\nimport { DynamicFormComponent } from '../../../components/form/dynamic-form/dynamic-form.component';\nimport { DynamicFormField, DynamicFormService } from '../../../services/dynamic-form.service';\nimport { ObjectService } from '../../../services/object.service';\n\n@Component({\n selector: 'mantle-search-panel',\n templateUrl: './search-panel.component.html',\n styleUrls: ['./search-panel.component.scss'],\n standalone: false\n})\nexport class SearchPanelComponent implements OnInit {\n\n @ViewChild(DynamicFormComponent) searchForm!: DynamicFormComponent;\n @Input() searchFields!: DynamicFormField[];\n @Output() search: EventEmitter<any> = new EventEmitter<any>();\n\n public content!: DynamicFormContent;\n\n constructor(private dynamicFormService: DynamicFormService, private objectService: ObjectService) { }\n\n ngOnInit(): void {\n let data = this.dynamicFormService.generateFormInitData(this.searchFields);\n\n this.content = {\n data: data,\n containers: [{\n container_style: 'plain',\n sections: [{\n layout: 'grid',\n elements: this.searchFields,\n singleColumn: true,\n rowHeight: '60px',\n writable: true,\n hidden: false,\n collapsed: false,\n options: {}\n } as DynamicLayoutGridSection]\n }]\n }\n }\n\n get searchParams(): any {\n let value = this.searchForm.value;\n this.objectService.removeEmptyAttributes(value);\n return value;\n }\n\n onResetClicked() {\n this.searchForm.reset();\n this.onSearchClicked();\n }\n\n onSearchClicked() {\n this.search.emit(this.searchParams);\n }\n\n}\n","<div class=\"search-panel\">\n <div fxLayout=\"row\" fxLayoutAlign=\"stretch\">\n <div fxFlex=\"1 0 1px\"><h3 class=\"search-panel-title\">{{ 'mantle.search_panel.search' | translate }}</h3></div> <div fxFlex=\"0 0 auto\"><mat-icon>search</mat-icon></div>\n </div>\n <hr />\n\n <div class=\"filter-subtitle\">{{ 'mantle.search_panel.filter_by' | translate }}</div>\n\n <mantle-dynamic-form #searchForm [content]=\"content\"></mantle-dynamic-form>\n\n <button mat-button type=\"button\" class=\"reset-button\" (click)=\"onResetClicked()\">\n {{ 'mantle.buttons.reset' | translate }}\n </button>\n\n <button mat-raised-button color=\"primary\" type=\"button\" class=\"search-button\" (click)=\"onSearchClicked();\">\n {{ 'mantle.buttons.search' | translate }}\n </button>\n</div>\n","import { AfterViewInit, ChangeDetectorRef, Component, ViewChild, Injector } from '@angular/core';\nimport { AUTO_STYLE, animate, sequence, state, style, transition, trigger } from '@angular/animations';\nimport { ActivatedRoute } from '@angular/router';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTable } from '@angular/material/table';\nimport {\n ListPageService, ListPageColumn, ListPageExportOption, ListPageBulkExportOption, ListPageButton\n} from '../../../services/interfaces/list-page.service';\nimport { ListPageDataSource } from './list-page-datasource';\nimport { SearchPanelComponent } from '../../../components/widgets/search-panel/search-panel.component';\nimport { ArrayService } from '../../../services/array.service';\nimport { ScreenSizeService } from '../../../services/screen-size.service';\n\n@Component({\n selector: 'mantle-list-page',\n templateUrl: './list-page.component.html',\n styleUrls: ['./list-page.component.scss'],\n standalone: false,\n animations: [\n trigger('collapse', [\n state('false', style({ display: AUTO_STYLE, opacity: 1 })),\n state('true', style({ display: 'none', opacity: 0 })),\n transition('false => true', sequence([\n animate(\"1s\", style({ opacity: 0 })),\n style({ display: 'none' })\n ])),\n transition('true => false', sequence([\n style({ display: AUTO_STYLE }),\n animate(\"1s\", style({ opacity: 1 }))\n ]))\n ])\n ]\n})\nexport class ListPageComponent implements AfterViewInit {\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n @ViewChild(MatSort) sort!: MatSort;\n @ViewChild(MatTable) table!: MatTable<any>;\n @ViewChild(SearchPanelComponent) searchPanel!: SearchPanelComponent;\n\n public listPageService: ListPageService;\n public dataSource: ListPageDataSource;\n public displayedColumns!: ListPageColumn[];\n public displayedColumnAttrs!: string[];\n public exportOptions!: ListPageExportOption[];\n public bulkExportOptions!: ListPageBulkExportOption[];\n public withClickableRows!: boolean;\n public isTabbedContent: boolean = false;\n public pageTitle: string;\n public withCollapsibleColumns: boolean = false;\n public expandCollapsibleColumns: boolean = false;\n public additionalButtons: ListPageButton[] = [];\n\n public isActionPanelOpen: boolean = false;\n public isSmallScreen: boolean = false;\n\n constructor(private route: ActivatedRoute, private injector: Injector,\n private changeDetectorRef: ChangeDetectorRef, private arrayService: ArrayService,\n private screenSizeService: ScreenSizeService) {\n const listPageServiceInjectionToken = this.route.snapshot.data['listPageService'];\n this.listPageService = this.injector.get<ListPageService>(listPageServiceInjectionToken);\n\n this.listPageService.prepare(this.route);\n this.dataSource = new ListPageDataSource(this.listPageService);\n this.displayedColumns = this.listPageService.listColumns();\n this.displayedColumnAttrs = this.displayedColumns.map(a => a.attr);\n this.exportOptions = this.listPageService.listPageExportOptions();\n this.bulkExportOptions = this.listPageService.listPageBulkExportOptions();\n this.withClickableRows = this.listPageService.withClickableRows;\n this.isTabbedContent = this.route.snapshot.data['isTabbedContent'];\n this.pageTitle = this.route.snapshot.data['pageTitle'];\n\n if (this.listPageService.withCheckableRows) this.displayedColumnAttrs.unshift('select');\n if (this.listPageService.withCollapsibleColumns) this.withCollapsibleColumns = true;\n\n this.screenSizeService.screenSize.subscribe((screenSize: any) => {\n this.isSmallScreen = screenSize == 'xs' || screenSize == 'sm';\n this.isActionPanelOpen = !this.isSmallScreen;\n });\n\n this.loadAdditionalButtons();\n }\n\n ngAfterViewInit(): void {\n if (this.listPageService.defaultOrder) {\n this.sort.active = this.listPageService.defaultOrder.attr;\n this.sort.direction = this.listPageService.defaultOrder.direction;\n }\n\n this.dataSource.sort = this.sort;\n this.dataSource.paginator = this.paginator;\n this.dataSource.searchPanel = this.searchPanel;\n this.table.dataSource = this.dataSource;\n\n this.changeDetectorRef.detectChanges();\n }\n\n onRecordClicked(record: any) {\n if (!this.withClickableRows) return;\n\n this.listPageService.openRecord(record);\n }\n\n onAddClicked() {\n this.listPageService.openForm();\n }\n\n onBackToParentClicked(): void {\n this.listPageService.openParent();\n }\n\n isRecordChecked(record: any): boolean {\n return this.arrayService.hasItem(this.dataSource.selectedRecordIds, record.id);\n }\n\n onRecordChecked(record: any, checked: boolean) {\n if (checked) {\n this.dataSource.selectedRecordIds.push(record.id);\n this.dataSource.selectAll = this.dataSource.selectedRecordIds.length > 0 && this.dataSource.selectedRecordIds.length == this.dataSource.data.length;\n this.listPageService.onRecordChecked(record);\n }\n else {\n this.arrayService.removeItem(this.dataSource.selectedRecordIds, record.id);\n this.dataSource.selectAll = false;\n this.listPageService.onRecordUnchecked(record);\n }\n }\n\n onCheckAll(checked: boolean) {\n if (checked) {\n this.dataSource.selectedRecordIds = this.dataSource.data.map((item: any) => { return item.id; });\n this.dataSource.selectAll = true;\n this.listPageService.onCheckAll(this.dataSource.data);\n }\n else {\n this.dataSource.selectedRecordIds = [];\n this.dataSource.selectAll = false;\n this.listPageService.onUncheckAll();\n }\n }\n\n onBulkExportClicked(exportOption: ListPageBulkExportOption) {\n exportOption.export(this.dataSource.selectedRecordIds);\n }\n\n loadAdditionalButtons() {\n this.additionalButtons = this.listPageService.additionalListPageButtons();\n }\n\n toggleCollapsibleColumns() {\n this.expandCollapsibleColumns = !this.expandCollapsibleColumns;\n }\n}\n","<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"16px\" class=\"list-page\" [ngClass]=\"{'page': !isTabbedContent}\">\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"!isTabbedContent\">\n <mantle-page-title>{{ pageTitle | translate }}</mantle-page-title>\n </div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"listPageService.showBackToParentButton || withCollapsibleColumns\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <div fxFlex=\"0 0 auto\" *ngIf=\"listPageService.showBackToParentButton\">\n <button class=\"back-button\" mat-mini-fab color=\"primary\" type=\"button\" (click)=\"onBackToParentClicked()\">\n <mat-icon>arrow_back</mat-icon>\n </button>\n </div>\n\n <div fxFlex=\"1 1 auto\"></div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"withCollapsibleColumns\">\n <button mat-raised-button\n color=\"primary\"\n type=\"button\"\n class=\"toggle-collapsible-columns-button button-with-icon\"\n (click)=\"toggleCollapsibleColumns()\">\n <ng-container *ngIf=\"expandCollapsibleColumns\">\n <mat-icon class=\"left-icon\">keyboard_double_arrow_left</mat-icon>\n <span>{{ 'mantle.buttons.collapse_table' | translate }}</span>\n </ng-container>\n <ng-container *ngIf=\"!expandCollapsibleColumns\">\n <span>{{ 'mantle.buttons.expand_table' | translate }}</span>\n <mat-icon class=\"right-icon\">keyboard_double_arrow_right</mat-icon>\n </ng-container>\n </button>\n </div>\n </div>\n </div>\n\n <div fxFlex=\"1 0 1px\">\n <mat-drawer-container class=\"full-height-only\" [hasBackdrop]=\"isSmallScreen\">\n <mat-drawer #drawer\n [mode]=\"isSmallScreen ? 'over' : 'side'\"\n [position]=\"isSmallScreen ? 'end' : 'start'\"\n [opened]=\"isActionPanelOpen\"\n [disableClose]=\"!isSmallScreen\"\n (closedStart)=\"isActionPanelOpen = false\"\n (openedStart)=\"isActionPanelOpen = true\">\n\n <button *ngIf=\"listPageService.showAddButton && listPageService.canWrite()\"\n mat-raised-button\n color=\"accent\"\n type=\"button\"\n class=\"add-button\"\n (click)=\"onAddClicked()\">\n <ng-container *ngIf=\"listPageService.customAddButtonLabel; else standardAddButtonLabel\">\n {{ listPageService.customAddButtonLabel | translate }}\n </ng-container>\n <ng-template #standardAddButtonLabel>\n + {{ 'mantle.buttons.add' | translate }} {{ listPageService.noun() | translate }}\n </ng-template>\n </button>\n\n <div class=\"search-section\">\n <mantle-search-panel #searchPanel\n [searchFields]=\"listPageService.searchFields()\">\n </mantle-search-panel>\n </div>\n\n <ng-container *ngFor=\"let exportOption of exportOptions\">\n <button mat-button type=\"button\" class=\"export-button\" (click)=\"exportOption.export(searchPanel.searchParams).subscribe()\">\n <span class=\"export-button-label\">{{ exportOption.label | translate }}</span>\n <mat-icon>download</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"dataSource.selectedRecordIds.length > 0\">\n <ng-container *ngFor=\"let exportOption of bulkExportOptions\">\n <button mat-button type=\"button\" class=\"export-button\" (click)=\"onBulkExportClicked(exportOption)\">\n <span class=\"export-button-label\">{{ exportOption.label | translate }}</span>\n <mat-icon>download</mat-icon>\n </button>\n </ng-container>\n </ng-container>\n\n <ng-container *ngFor=\"let button of additionalButtons\">\n <div *ngIf=\"button.show()\">\n <button mat-raised-button\n color=\"{{ button.color }}\"\n type=\"button\"\n class=\"additional-button\"\n [disabled]=\"listPageService.isCommitInProgress || button.disabled || dataSource.selectedRecordIds.length <= 0\"\n (click)=\"button.onClick(dataSource.selectedRecordIds)\">\n {{ button.label | translate }}\n </button>\n </div>\n </ng-container>\n\n </mat-drawer>\n\n <div fxLayout=\"column\" fxLayoutAlign=\"stretch\" class=\"main-content full-height-only\">\n\n <div fxFlex=\"1 0 1px\" class=\"vertically-scrollable\">\n <table mat-table class=\"full-width horizontal-scroll-table\" matSort>\n\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef>\n <mat-checkbox click-stop-propagation (change)=\"onCheckAll($event.checked)\" [checked]=\"dataSource.selectAll\"></mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-checkbox click-stop-propagation (change)=\"onRecordChecked(row, $event.checked)\" [checked]=\"isRecordChecked(row)\"></mat-checkbox>\n </td>\n </ng-container>\n\n <ng-container *ngFor=\"let column of displayedColumns; let i = index\">\n <ng-container matColumnDef=\"{{ column.attr }}\">\n <th mat-header-cell *matHeaderCellDef\n mat-sort-header=\"{{column.sortAttr || column.attr}}\" [disabled]=\"column.disableSort\"\n [@collapse]=\"column.enableCollapse && !expandCollapsibleColumns\"\n [ngClass]=\"{\n 'collapsible-column': column.enableCollapse,\n 'collapsible-column-left': column.enableCollapse && (!displayedColumns[i - 1] || !displayedColumns[i - 1].enableCollapse),\n 'collapsible-column-right': column.enableCollapse && (!displayedColumns[i + 1] || !displayedColumns[i + 1].enableCollapse)\n }\">\n {{ column.header | translate }}\n </th>\n <td mat-cell *matCellDef=\"let row\"\n [@collapse]=\"column.enableCollapse && !expandCollapsibleColumns\"\n [ngClass]=\"{\n 'collapsible-column': column.enableCollapse,\n 'collapsible-column-left': column.enableCollapse && (!displayedColumns[i - 1] || !displayedColumns[i - 1].enableCollapse),\n 'collapsible-column-right': column.enableCollapse && (!displayedColumns[i + 1] || !displayedColumns[i + 1].enableCollapse)\n }\">\n <mantle-dynamic-attribute-display\n [fieldType]=\"column.type\"\n [value]=\"row[column.attr]\"\n [options]=\"column.options\">\n </mantle-dynamic-attribute-display>\n </td>\n </ng-container>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnAttrs\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumnAttrs;\"\n (click)=\"onRecordClicked(row)\"\n [class.clickable-row]=\"withClickableRows\">\n </tr>\n </table>\n </div>\n\n <mat-paginator #paginator\n fxFlex=\"0 0 auto\"\n [length]=\"0\"\n [pageIndex]=\"0\"\n [pageSize]=\"10\"\n [pageSizeOptions]=\"[10, 20, 50]\">\n </mat-paginator>\n\n </div>\n\n </mat-drawer-container>\n </div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"isSmallScreen\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n\n <button *ngIf=\"isActionPanelOpen\" type=\"button\" mat-button (click)=\"drawer.toggle()\">\n <ng-container *ngIf=\"isActionPanelOpen\">\n {{ 'mantle.buttons.close_actions' | translate }}<mat-icon>chevron_right</mat-icon>\n </ng-container>\n </button>\n\n <div fxFlex=\"1 1 auto\"></div>\n\n <button *ngIf=\"!isActionPanelOpen\" type=\"button\" mat-button (click)=\"drawer.toggle()\">\n <ng-container>\n <mat-icon>chevron_left</mat-icon> {{ 'mantle.buttons.open_actions' | translate }}\n </ng-container>\n </button>\n\n </div>\n </div>\n</div>\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\n\nexport interface DeleteConfirmationDialogButton {\n label: string;\n onClick: (id: string) => void;\n}\n\nexport interface DeleteConfirmationDialogParams {\n message: string;\n buttons: DeleteConfirmationDialogButton[];\n}\n\n@Component({\n selector: 'mantle-delete-confirmation-dialog',\n templateUrl: './delete-confirmation-dialog.component.html',\n styleUrls: ['./delete-confirmation-dialog.component.scss'],\n standalone: false\n})\nexport class DeleteConfirmationDialogComponent {\n\n public message: string;\n public buttons: DeleteConfirmationDialogButton[] = [];\n\n constructor(private dialogRef: MatDialogRef<DeleteConfirmationDialogComponent>,\n @Inject(MAT_DIALOG_DATA) private params: DeleteConfirmationDialogParams) {\n this.message = this.params.message;\n this.buttons = this.params.buttons || [];\n }\n\n onDeleteClicked(deletionAction: (id: string) => void): void {\n this.dialogRef.close({ confirmed: true, deletionAction: deletionAction });\n }\n\n onCancel(): void {\n this.dialogRef.close({ confirmed: false });\n }\n\n}\n","<mat-dialog-content class=\"content-section\">\n\n <h1 class=\"warn-text\">{{ 'mantle.messages.are_you_sure' | translate }} </h1>\n <h3>{{ message | translate }}</h3>\n\n</mat-dialog-content>\n\n<mat-dialog-actions fxLayout=\"row\" class=\"actions-section\">\n <button fxFlex=\"0 0 auto\" mat-button (click)=\"onCancel()\">{{ 'mantle.buttons.cancel' | translate }}</button>\n <div fxFlex=\"1 1 auto\"></div>\n <button fxFlex=\"0 0 auto\" *ngFor=\"let button of buttons\"\n mat-button\n color=\"warn\"\n (click)=\"onDeleteClicked(button.onClick)\">\n {{ button.label | translate }}\n </button>\n</mat-dialog-actions>\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\n\nexport interface SaveConfirmationDialogParams {\n message?: string;\n}\n\n@Component({\n selector: 'mantle-save-confirmation-dialog',\n templateUrl: './save-confirmation-dialog.component.html',\n styleUrls: ['./save-confirmation-dialog.component.scss'],\n standalone: false\n})\nexport class SaveConfirmationDialogComponent {\n\n public message?: string;\n\n constructor(private dialogRef: MatDialogRef<SaveConfirmationDialogComponent>,\n @Inject(MAT_DIALOG_DATA) private params: SaveConfirmationDialogParams) {\n this.message = this.params.message;\n }\n\n onSaveClicked(): void {\n this.dialogRef.close(true);\n }\n\n onCancel(): void {\n this.dialogRef.close(false);\n }\n\n}\n","<mat-dialog-content class=\"content-section\">\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n\n <div fxFlex=\"0 0 auto\">\n <mat-icon class=\"large-icon\">error_outline</mat-icon>\n </div>\n\n <div *ngIf=\"message\" fxFlex=\"1 0 1px\">\n <h3>{{ message | translate }}</h3>\n </div>\n\n <div fxFlex=\"0 0 auto\">\n <button mat-button mat-stroked-button (click)=\"onSaveClicked()\">{{ 'mantle.buttons.confirm' | translate }}</button>\n </div>\n\n </div>\n\n</mat-dialog-content>\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { MatDialog, MatDialogConfig } from \"@angular/material/dialog\";\nimport { DeleteConfirmationDialogComponent } from '../components/widgets/delete-confirmation-dialog/delete-confirmation-dialog.component';\nimport { SaveConfirmationDialogComponent } from '../components/widgets/save-confirmation-dialog/save-confirmation-dialog.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfirmationService {\n\n constructor(private dialog: MatDialog) { }\n\n confirmSave(onConfirmation: (confirmed: boolean) => void, configData: any = {}) {\n const dialogConfig: MatDialogConfig = {\n data: configData,\n minWidth: '400px',\n maxWidth: '80%',\n position: {\n bottom: '8px'\n },\n autoFocus: false,\n panelClass: 'confirmation-dialog'\n }\n\n let dialogRef = this.dialog.open(SaveConfirmationDialogComponent, dialogConfig);\n\n dialogRef.afterClosed().subscribe(onConfirmation);\n }\n\n confirmDeletion(onConfirmation: (deletionAction: (id: string) => Observable<any>) => void, configData: any = {}) {\n const dialogConfig: MatDialogConfig = {\n data: configData,\n minWidth: '400px',\n maxWidth: '80%',\n position: {\n right: '8px',\n bottom: '8px'\n },\n autoFocus: false,\n panelClass: 'delete-confirmation-dialog'\n };\n\n let dialogRef = this.dialog.open(DeleteConfirmationDialogComponent, dialogConfig);\n\n dialogRef.afterClosed().subscribe((res: { confirmed: boolean, deletionAction: (id: string) => Observable<any> }) => {\n if (!res || !res.confirmed) return;\n\n onConfirmation(res.deletionAction);\n });\n }\n\n}\n","import { AfterViewChecked, ChangeDetectorRef, Component, Injector, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Observable, of as observableOf } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AnnouncementService } from '../../../services/announcement.service';\nimport { ConfirmationService } from '../../../services/confirmation.service';\nimport { DynamicFormComponent } from '../../../components/form/dynamic-form/dynamic-form.component';\nimport { FormPageButton, FormPageService } from '../../../services/interfaces/form-page.service';\nimport { WebApiFormResponse, WebApiSaveResponse } from '../../../services/adapters/web-api-crud.adapter';\n\n@Component({\n selector: 'mantle-form-page',\n templateUrl: './form-page.component.html',\n styleUrls: ['./form-page.component.scss'],\n standalone: false\n})\nexport class FormPageComponent implements OnInit, AfterViewChecked {\n\n @ViewChild(DynamicFormComponent) dynamicForm!: DynamicFormComponent;\n\n public formPageService: FormPageService;\n\n private id: string | undefined;\n private cloneId: string | undefined;\n public header: any;\n public content$!: Observable<any>;\n public bottomLeftButtons: FormPageButton[] = [];\n public bottomRightButtons: FormPageButton[] = [];\n public isTabbedContent: boolean = false;\n public isSaveInProgress!: boolean;\n\n constructor(private route: ActivatedRoute, private injector: Injector, private changeDetectorRef: ChangeDetectorRef,\n private announcementService: AnnouncementService, private confirmationService: ConfirmationService) {\n const formPageServiceInjectionToken = this.route.snapshot.data['formPageService'];\n this.formPageService = this.injector.get<FormPageService>(formPageServiceInjectionToken);\n this.isTabbedContent = this.route.snapshot.data['isTabbedContent'];\n }\n\n ngOnInit(): void {\n this.route.params.subscribe(params => {\n this.id = this.route.snapshot.params['id'];\n this.cloneId = this.route.snapshot.params['cloneId'];\n\n let responseObservable = null;\n if (this.cloneId) {\n responseObservable = this.formPageService.getNew({ clone_id: this.cloneId });\n }\n else {\n responseObservable = this.id ? this.formPageService.getEdit(this.id) :\n this.formPageService.getNew();\n }\n\n this.content$ = responseObservable.pipe(\n map((res: WebApiFormResponse) => {\n this.header = res.header;\n this.formPageService.onFormContentLoaded(res.content);\n this.loadAdditionalButtons(res.content.data);\n return res.content;\n })\n );\n });\n }\n\n ngAfterViewChecked(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n loadAdditionalButtons(record: any) {\n let additionalFormPageButtons = this.formPageService.additionalFormPageButtons(record);\n this.bottomLeftButtons = additionalFormPageButtons.filter(button => {\n return button.position == 'left';\n });\n this.bottomRightButtons = additionalFormPageButtons.filter(button => {\n return button.position == 'right';\n });\n }\n\n onCancelClicked(): void {\n this.back();\n }\n\n onSaveClicked(): void {\n this.isSaveInProgress = true;\n\n let value = this.dynamicForm.value;\n this.formPageService.save(\n this.id, value,\n (res: WebApiSaveResponse) => { this.onSaveSuccess(res); },\n (res: WebApiSaveResponse) => { this.onSaveFailure(res); }\n );\n }\n\n onSaveSuccess(res: WebApiSaveResponse): void {\n this.id = res.id;\n this.formPageService.onFormContentLoaded(res.content);\n this.loadAdditionalButtons(res.content.data);\n this.content$ = observableOf(res.content);\n this.announcementService.success('mantle.messages.save_successful');\n this.back();\n\n this.isSaveInProgress = false;\n }\n\n onSaveFailure(res: WebApiSaveResponse): void {\n if (res.content) {\n this.formPageService.onFormContentLoaded(res.content);\n this.content$ = observableOf(res.content);\n }\n else {\n this.back();\n }\n\n if (res.confirmationRequest) {\n this.confirmationService.confirmSave(\n (confirmed: boolean) => {\n res.confirmationRequest?.onConfirmationGiven(confirmed);\n if (confirmed) this.onSaveClicked();\n else this.announcementService.error('mantle.messages.save_failed');\n },\n { message: res.confirmationRequest.message }\n );\n }\n else {\n this.announcementService.error('mantle.messages.save_failed');\n }\n\n if (!!res.alert?.message) {\n this.announcementService.error(res.alert.message);\n }\n\n this.isSaveInProgress = false;\n }\n\n back() {\n if (this.id) this.formPageService.openRecord({ id: this.id });\n else if (this.cloneId) this.formPageService.openRecord({ id: this.cloneId });\n else this.formPageService.openList();\n }\n\n}\n","<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" class=\"full-height-min\" [ngClass]=\"{'page full-height-only vertically-scrollable': !isTabbedContent}\">\n <div fxFlex=\"0 0 auto\" class=\"page-header headline-5\">\n <div fxLayout=\"row\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"16px\">\n <mantle-content-title *ngIf=\"header\" fxFlex=\"0 0 auto\" [thumbnail]=\"header.thumbnail\" [title]=\"header.title\"></mantle-content-title>\n\n <div fxFlex=\"1 1 auto\"></div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"!formPageService.hideCancelButton\">\n <button mat-icon-button\n type=\"button\"\n (click)=\"onCancelClicked()\"\n [disabled]=\"formPageService.isCommitInProgress\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n </div>\n </div>\n\n <div fxFlex=\"1 0 auto\" class=\"main-content\">\n <mantle-dynamic-form #dynamicForm [content]=\"content$ | async\" [formPageService]=\"formPageService\"></mantle-dynamic-form>\n </div>\n\n <div fxFlex=\"0 0 auto\" class=\"page-footer\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <ng-container *ngFor=\"let button of bottomLeftButtons\">\n <div fxFlex=\"0 0 auto\" *ngIf=\"button.show\">\n <button mat-raised-button\n color=\"{{ button.color }}\"\n type=\"button\"\n class=\"button-with-spinner additional-button\"\n [disabled]=\"formPageService.isCommitInProgress || button.disabled\"\n (click)=\"button.onClick(dynamicForm?.value)\">\n {{ button.label | translate }}\n <mat-spinner *ngIf=\"button.isInProgress()\" [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n </ng-container>\n\n <div fxFlex=\"1 1 auto\"></div>\n\n <ng-container *ngFor=\"let button of bottomRightButtons\">\n <div fxFlex=\"0 0 auto\" *ngIf=\"button.show\">\n <button mat-raised-button\n color=\"{{ button.color }}\"\n type=\"button\"\n class=\"button-with-spinner additional-button\"\n [disabled]=\"formPageService.isCommitInProgress || button.disabled\"\n (click)=\"button.onClick(dynamicForm?.value)\">\n {{ button.label | translate }}\n <mat-spinner *ngIf=\"button.isInProgress()\" [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n </ng-container>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"formPageService.showSaveButton\">\n <button mat-raised-button\n color=\"primary\"\n type=\"button\"\n class=\"button-with-spinner save-button\"\n [disabled]=\"formPageService.isCommitInProgress || !dynamicForm?.valid\"\n (click)=\"onSaveClicked()\">\n {{ 'mantle.buttons.save' | translate }}\n <mat-spinner *ngIf=\"isSaveInProgress\" [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Injector, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport {\n DynamicLayoutContainer, DynamicLayoutSection, DynamicLayoutTableSection\n} from '../../../data-structures/dynamic-layout.structure';\nimport { AnnouncementService } from '../../../services/announcement.service';\nimport { DetailPageButton, DetailPageExportOption, DetailPageService } from '../../../services/interfaces/detail-page.service';\nimport { WebApiDeleteResponse, WebApiDetailsResponse } from '../../../services/adapters/web-api-crud.adapter';\n\n@Component({\n selector: 'mantle-detail-page',\n templateUrl: './detail-page.component.html',\n styleUrls: ['./detail-page.component.scss'],\n standalone: false\n})\nexport class DetailPageComponent implements OnInit {\n\n public detailPageService: DetailPageService;\n\n public id!: string;\n public header: any;\n public content!: any;\n public exportOptions!: DetailPageExportOption[];\n public bottomLeftButtons: DetailPageButton[] = [];\n public bottomRightButtons: DetailPageButton[] = [];\n public isTabbedContent: boolean = false;\n public isDeleteInProgress!: boolean;\n\n constructor(private route: ActivatedRoute, private injector: Injector,\n private announcementService: AnnouncementService) {\n const detailPageServiceInjectionToken = this.route.snapshot.data['detailPageService'];\n this.detailPageService = this.injector.get<DetailPageService>(detailPageServiceInjectionToken);\n this.detailPageService.setParentComponent(this);\n this.exportOptions = this.detailPageService.detailPageExportOptions();\n this.isTabbedContent = this.route.snapshot.data['isTabbedContent'];\n }\n\n ngOnInit(): void {\n this.pullContent();\n }\n\n pullContent() {\n this.route.params.subscribe(params => {\n this.id = this.route.snapshot.params['id'];\n\n this.detailPageService.get(this.id).subscribe(\n (res: WebApiDetailsResponse) => {\n this.loadContent(res);\n }\n );\n });\n }\n\n loadContent(response: any) {\n this.header = response.header;\n this.content = response.content;\n\n this.detailPageService.onDetailContentLoaded(this.content);\n\n this.content.containers.forEach((container: DynamicLayoutContainer) => {\n container.sections.forEach((section: DynamicLayoutSection) => {\n this.loadSectionActions(section);\n });\n });\n\n this.loadAdditionalButtons(this.content.data);\n this.exportOptions = this.detailPageService.detailPageExportOptions(this.content.data);\n }\n\n loadSectionActions(section: DynamicLayoutSection) {\n let sectionActions = this.detailPageService.detailPageSectionActions(section.slug!);\n if (sectionActions.length == 0) return;\n\n if (section.layout == 'table') {\n let actionsColumn = { header: '', attr: 'table_row_actions', type: 'actions', options: { actions: sectionActions } };\n (section as DynamicLayoutTableSection).elements.push(actionsColumn);\n }\n }\n\n loadAdditionalButtons(record: any) {\n let additionalDetailPageButtons = this.detailPageService.additionalDetailPageButtons(record);\n this.bottomLeftButtons = additionalDetailPageButtons.filter(button => {\n return button.position == 'left';\n });\n this.bottomRightButtons = additionalDetailPageButtons.filter(button => {\n return button.position == 'right';\n });\n }\n\n onEditClicked(): void {\n this.detailPageService.openForm({ id: this.id });\n }\n\n onCloneClicked(): void {\n this.detailPageService.openForm({}, { clone_id: this.id });\n }\n\n onBackClicked(): void {\n this.detailPageService.openList();\n }\n\n onDeleteClicked(): void {\n this.detailPageService.delete(\n this.id,\n () => { this.isDeleteInProgress = true; },\n (res: WebApiDeleteResponse) => { this.onDeleteSuccess(res); },\n (res: WebApiDeleteResponse) => { this.onDeleteFailure(res); }\n );\n }\n\n onDeleteSuccess(res: WebApiDeleteResponse): void {\n this.announcementService.success('mantle.messages.delete_successful');\n this.back();\n\n this.isDeleteInProgress = false;\n }\n\n onDeleteFailure(res: WebApiDeleteResponse): void {\n this.announcementService.error('mantle.messages.delete_failed');\n\n this.isDeleteInProgress = false;\n }\n\n back() {\n this.detailPageService.openList();\n }\n\n}\n","<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" class=\"full-height-min\" [ngClass]=\"{'page full-height-only vertically-scrollable': !isTabbedContent}\">\n <div fxFlex=\"0 0 auto\" class=\"page-header headline-5\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center start\" fxLayoutGap=\"16px\">\n <div fxFlex=\"0 0 auto\" *ngIf=\"!detailPageService.hideBackButton\">\n <button class=\"back-button\" mat-mini-fab color=\"primary\" type=\"button\" (click)=\"onBackClicked()\">\n <mat-icon>arrow_back</mat-icon>\n </button>\n </div>\n\n <div fxFlex=\"1 1 auto\">\n <mantle-content-title *ngIf=\"header\" [thumbnail]=\"header.thumbnail\" [title]=\"header.title\"></mantle-content-title>\n </div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"!!content && detailPageService.showEditButton && detailPageService.canWrite()\">\n <button mat-mini-fab\n color=\"primary\"\n type=\"button\"\n class=\"edit-button\"\n (click)=\"onEditClicked()\"\n [disabled]=\"detailPageService.isCommitInProgress\">\n <mat-icon>edit</mat-icon>\n </button>\n </div>\n </div>\n </div>\n\n <div fxFlex=\"1 0 auto\" class=\"main-content\">\n <mantle-dynamic-details [content]=\"content\" [detailPageService]=\"detailPageService\"></mantle-dynamic-details>\n </div>\n\n <div fxFlex=\"0 0 36px\" class=\"page-footer\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\" *ngIf=\"!!content\">\n <ng-container *ngFor=\"let button of bottomLeftButtons\">\n <div fxFlex=\"0 0 auto\" *ngIf=\"button.show\">\n <button mat-raised-button\n color=\"{{ button.color }}\"\n type=\"button\"\n class=\"button-with-spinner additional-button\"\n [disabled]=\"detailPageService.isCommitInProgress || button.disabled\"\n (click)=\"button.onClick(id)\">\n {{ button.label | translate }}\n <mat-spinner *ngIf=\"button.isInProgress()\" [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"content\">\n <div fxFlex=\"0 0 auto\" *ngFor=\"let exportOption of exportOptions\">\n <div *ngIf=\"(exportOption.show == null) || (exportOption.show)\">\n <button mat-button\n type=\"button\"\n class=\"export-button\"\n (click)=\"exportOption.export(content.data).subscribe()\"\n [disabled]=\"detailPageService.isCommitInProgress\">\n <span class=\"export-button-label\">{{ exportOption.label | translate }}</span>\n <mat-icon>download</mat-icon>\n </button>\n </div>\n </div>\n </ng-container>\n\n <div fxFlex=\"1 1 auto\"></div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"detailPageService.showCloneButton && detailPageService.canWrite()\">\n <button mat-raised-button\n color=\"accent\"\n type=\"button\"\n class=\"clone-button\"\n (click)=\"onCloneClicked()\">\n {{ 'mantle.buttons.clone' | translate }}\n </button>\n </div>\n\n <ng-container *ngFor=\"let button of bottomRightButtons\">\n <div fxFlex=\"0 0 auto\" *ngIf=\"button.show\">\n <button mat-raised-button\n color=\"{{ button.color }}\"\n type=\"button\"\n class=\"button-with-spinner additional-button\"\n [disabled]=\"detailPageService.isCommitInProgress || button.disabled\"\n (click)=\"button.onClick(id)\">\n {{ button.label | translate }}\n <mat-spinner *ngIf=\"button.isInProgress()\" [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n </ng-container>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"detailPageService.showDeleteButton && detailPageService.canWrite()\">\n <button mat-button\n color=\"warn\"\n type=\"button\"\n class=\"button-with-spinner delete-button\"\n [disabled]=\"detailPageService.isCommitInProgress\"\n (click)=\"onDeleteClicked()\">\n {{ 'mantle.buttons.delete' | translate }} {{ detailPageService.noun() | translate }}\n <mat-spinner *ngIf=\"isDeleteInProgress\" [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n </div>\n </div>\n</div>\n","import { AfterViewInit, Component, ViewChild, Injector } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTable } from '@angular/material/table';\nimport { SearchPanelComponent } from '../../../components/widgets/search-panel/search-panel.component';\nimport { ListPageService, ListPageColumn, ListPageExportOption } from '../../../services/interfaces/list-page.service';\nimport { ListPageDataSource } from '../../../components/pages/list-page/list-page-datasource';\nimport { AnnouncementService } from '../../../services/announcement.service';\nimport { WebApiService } from '../../../services/web-api.service';\nimport { ScreenSizeService } from '../../../services/screen-size.service';\n\n@Component({\n selector: 'mantle-documents-page',\n templateUrl: './documents-page.component.html',\n styleUrls: ['../list-page/list-page.component.scss'],\n standalone: false\n})\nexport class DocumentsPageComponent implements AfterViewInit {\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n @ViewChild(MatSort) sort!: MatSort;\n @ViewChild(MatTable) table!: MatTable<any>;\n @ViewChild(SearchPanelComponent) searchPanel!: SearchPanelComponent;\n\n public listPageService: ListPageService;\n public dataSource: ListPageDataSource;\n public displayedColumns!: ListPageColumn[];\n public displayedColumnAttrs!: string[];\n public exportOptions!: ListPageExportOption[];\n public withClickableRows!: boolean;\n public isTabbedContent: boolean = false;\n public pageTitle: string;\n public uploadInProgress: boolean = false;\n\n public isActionPanelOpen: boolean = false;\n public isSmallScreen: boolean = false;\n\n constructor(private route: ActivatedRoute, private injector: Injector,\n private announcementService: AnnouncementService, private webApiService: WebApiService,\n private screenSizeService: ScreenSizeService) {\n const listPageServiceInjectionToken = this.route.snapshot.data['listPageService'];\n this.listPageService = this.injector.get<ListPageService>(listPageServiceInjectionToken);\n\n this.listPageService.prepare(this.route);\n this.dataSource = new ListPageDataSource(this.listPageService);\n this.displayedColumns = this.listPageService.listColumns();\n this.displayedColumnAttrs = this.displayedColumns.map(a => a.attr);\n this.exportOptions = this.listPageService.listPageExportOptions();\n this.withClickableRows = this.listPageService.withClickableRows;\n this.isTabbedContent = this.route.snapshot.data['isTabbedContent'];\n this.pageTitle = this.route.snapshot.data['pageTitle'];\n\n this.screenSizeService.screenSize.subscribe((screenSize: any) => {\n this.isSmallScreen = screenSize == 'xs' || screenSize == 'sm';\n this.isActionPanelOpen = !this.isSmallScreen;\n });\n }\n\n ngAfterViewInit(): void {\n this.dataSource.sort = this.sort;\n this.dataSource.paginator = this.paginator;\n this.dataSource.searchPanel = this.searchPanel;\n this.table.dataSource = this.dataSource;\n }\n\n onRecordClicked(record: any) {\n if (!this.withClickableRows) return;\n\n this.listPageService.openRecord(record);\n }\n\n onAddClicked() {\n this.listPageService.openForm();\n }\n\n onFileDropped(file: File) {\n this.uploadInProgress = true;\n\n this.webApiService.upload(file,\n (response: any) => {\n let document = {\n filename: file.name,\n source_url: '',\n preview_url: '',\n signed_id: response.signed_id\n }\n this.listPageService.openForm({}, { document: document });\n this.uploadInProgress = false;\n },\n (response: any) => {\n this.announcementService.error('mantle.messages.unable_to_upload_file');\n this.uploadInProgress = false;\n }\n );\n }\n}\n","<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"16px\" class=\"list-page\" [ngClass]=\"{'page': !isTabbedContent}\">\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"!isTabbedContent\">\n <mantle-page-title>{{ pageTitle | translate }}</mantle-page-title>\n </div>\n\n <div fxFlex=\"1 0 1px\">\n <mat-drawer-container class=\"full-height-only\" [hasBackdrop]=\"isSmallScreen\">\n <mat-drawer #drawer\n [mode]=\"isSmallScreen ? 'over' : 'side'\"\n [position]=\"isSmallScreen ? 'end' : 'start'\"\n [opened]=\"isActionPanelOpen\"\n [disableClose]=\"!isSmallScreen\"\n (closedStart)=\"isActionPanelOpen = false\"\n (openedStart)=\"isActionPanelOpen = true\">\n\n <button *ngIf=\"listPageService.showAddButton && listPageService.canWrite()\"\n mat-raised-button\n color=\"accent\"\n type=\"button\"\n class=\"add-button\"\n (click)=\"onAddClicked()\">\n + {{ 'mantle.buttons.add' | translate }} {{ listPageService.noun() | translate }}\n </button>\n\n <div class=\"search-section\">\n <mantle-search-panel #searchPanel\n [searchFields]=\"listPageService.searchFields()\">\n </mantle-search-panel>\n </div>\n\n <ng-container *ngFor=\"let exportOption of exportOptions\">\n <button mat-button type=\"button\" class=\"export-button\" (click)=\"exportOption.export(searchPanel.searchParams).subscribe()\">\n <span class=\"export-button-label\">{{ exportOption.label | translate }}</span>\n <mat-icon>download</mat-icon>\n </button>\n </ng-container>\n\n </mat-drawer>\n\n <div fxLayout=\"column\" fxLayoutAlign=\"stretch\" class=\"main-content full-height-only\"\n file-dropzone (fileDropped)=\"onFileDropped($event[0])\" [class.uploading]=\"uploadInProgress\">\n\n <div *ngIf=\"uploadInProgress\" class=\"uploading-indicator-overlay\">\n <div class=\"uploading-indicator\">Uploading...</div>\n <mantle-loader></mantle-loader>\n </div>\n\n <div fxFlex=\"1 0 1px\" class=\"vertically-scrollable\">\n <table mat-table class=\"full-width horizontal-scroll-table\" matSort>\n\n <ng-container *ngFor=\"let column of displayedColumns\">\n <ng-container matColumnDef=\"{{ column.attr }}\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ column.header | translate }}</th>\n <td mat-cell *matCellDef=\"let row\">\n <mantle-dynamic-attribute-display\n [fieldType]=\"column.type\"\n [value]=\"row[column.attr]\">\n </mantle-dynamic-attribute-display>\n </td>\n </ng-container>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnAttrs\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumnAttrs;\"\n (click)=\"onRecordClicked(row)\"\n [class.clickable-row]=\"withClickableRows\">\n </tr>\n </table>\n </div>\n\n <mat-paginator #paginator\n fxFlex=\"0 0 auto\"\n [length]=\"0\"\n [pageIndex]=\"0\"\n [pageSize]=\"10\"\n [pageSizeOptions]=\"[10, 20, 50]\">\n </mat-paginator>\n\n </div>\n\n </mat-drawer-container>\n </div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"isSmallScreen\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n\n <button *ngIf=\"isActionPanelOpen\" type=\"button\" mat-button (click)=\"drawer.toggle()\">\n <ng-container *ngIf=\"isActionPanelOpen\">\n {{ 'mantle.buttons.close_actions' | translate }}<mat-icon>chevron_right</mat-icon>\n </ng-container>\n </button>\n\n <div fxFlex=\"1 1 auto\"></div>\n\n <button *ngIf=\"!isActionPanelOpen\" type=\"button\" mat-button (click)=\"drawer.toggle()\">\n <ng-container>\n <mat-icon>chevron_left</mat-icon> {{ 'mantle.buttons.open_actions' | translate }}\n </ng-container>\n </button>\n\n </div>\n </div>\n</div>\n","import { Component, OnInit, Injector } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { NavTabsService, TabbedPageTab } from '../../../services/interfaces/nav-tabs.service';\n\n@Component({\n selector: 'mantle-tabbed-page',\n templateUrl: './tabbed-page.component.html',\n styleUrls: ['./tabbed-page.component.scss'],\n standalone: false\n})\nexport class TabbedPageComponent implements OnInit {\n\n public navTabsService: NavTabsService;\n\n public links: TabbedPageTab[] = [];\n public activeLink: string = '';\n\n constructor(private route: ActivatedRoute, private router: Router, private injector: Injector) {\n const navTabsServiceInjectionToken = route.snapshot.data['navTabsService'];\n this.navTabsService = this.injector.get<NavTabsService>(navTabsServiceInjectionToken);\n }\n\n ngOnInit(): void {\n this.route.params.subscribe(params => {\n this.links = this.navTabsService.tabs(this.route.snapshot.params);\n this.activeLink = this.router.url;\n });\n }\n\n}\n","<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"4px\" class=\"tabbed-page full-height-only\">\n\n <div fxFlex=\"0 0 auto\" class=\"tab-bar\">\n <nav mat-tab-nav-bar [tabPanel]=\"tabPanel\">\n <a mat-tab-link *ngFor=\"let link of links\"\n (click)=\"activeLink = link.route\"\n [active]=\"activeLink == link.route\"\n [routerLink]=\"link.route\"> {{ link.label | translate }} </a>\n </nav>\n </div>\n\n <mat-tab-nav-panel #tabPanel fxFlex=\"1 0 1px\" class=\"tab-content vertically-scrollable\">\n <router-outlet></router-outlet>\n </mat-tab-nav-panel>\n\n</div>\n","export const ROSTER_GANTT_CHART: Highcharts.Options = {\n chart: {\n type: 'gantt'\n },\n exporting: {\n enabled: true,\n sourceWidth: 1200,\n buttons: {\n contextButton: <any>{\n menuItems: [\"downloadCSV\", \"downloadPDF\", \"downloadJPEG\"]\n }\n },\n fallbackToExportServer: false,\n libURL: ''\n },\n legend: { enabled: false },\n plotOptions: {\n gantt: {\n borderRadius: 0,\n pointWidth: 24\n },\n series: {\n dataLabels: {\n enabled: true,\n format: '{point.shift_type}'\n }\n }\n },\n tooltip: {\n pointFormatter: function(this: any): string {\n let point = this;\n\n let startDate = new Date(point.start);\n let startDateString = `${startDate.toLocaleString('en-US', { month: 'short' })}. ${startDate.getDate()}`;\n\n let endDate = new Date(point.end);\n endDate.setDate(endDate.getDate() - 1);\n let endDateString = `${endDate.toLocaleString('en-US', { month: 'short' })}. ${endDate.getDate()}`;\n\n return '<b>' + point.shift_type + '</b><br/><span>From: ' + startDateString + '</span><br/><span>To: ' + endDateString + '</span><br/>';\n }\n },\n yAxis: {\n type: 'category',\n grid: {\n enabled: true,\n borderWidth: 1,\n columns: [{\n title: { text: 'Employees' }\n }]\n },\n gridLineWidth: 1\n },\n};\n","import { Component, Injector, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport moment from 'moment';\nimport { Observable } from 'rxjs';\nimport { ROSTER_GANTT_CHART } from './roster-gantt.data';\nimport { DialogFormComponent } from '../../../components/form/dialog-form/dialog-form.component';\nimport { FormPageService } from '../../../services/interfaces/form-page.service';\nimport { LocaleService } from '../../../services/locale.service';\nimport { RosterPageService } from '../../../services/interfaces/roster-page.service';\nimport { RosterScheduleService } from '../../../services/interfaces/roster-schedule.service';\nimport { ObjectService } from '../../../services/object.service';\nimport { WebApiDetailsResponse } from '../../../services/adapters/web-api-crud.adapter';\nimport { ScreenSizeService } from '../../../services/screen-size.service';\n\n@Component({\n selector: 'mantle-roster-page',\n templateUrl: './roster-page.component.html',\n styleUrls: ['./roster-page.component.scss'],\n standalone: false\n})\nexport class RosterPageComponent implements OnInit {\n\n public rosterPageService: RosterPageService;\n public rosterScheduleService: RosterScheduleService;\n public id!: string;\n public pageTitle: string;\n\n public rosterData: any = {}; // Roster gantt chart data\n public startDate: string = '';\n public endDate: string = '';\n public month: string = '';\n\n public isSmallScreen: boolean = false;\n\n constructor(private route: ActivatedRoute, private injector: Injector,\n private localeService: LocaleService, private dialog: MatDialog,\n private objectService: ObjectService, private screenSizeService: ScreenSizeService\n ) {\n const rosterPageServiceInjectionToken = this.route.snapshot.data['rosterPageService'];\n this.rosterPageService = this.injector.get<RosterPageService>(rosterPageServiceInjectionToken);\n const rosterScheduleServiceInjectionToken = this.route.snapshot.data['rosterScheduleService'];\n this.rosterScheduleService = this.injector.get<RosterScheduleService>(rosterScheduleServiceInjectionToken);\n\n this.pageTitle = this.route.snapshot.data['pageTitle'];\n\n this.screenSizeService.screenSize.subscribe((screenSize: any) => {\n this.isSmallScreen = screenSize == 'xs' || screenSize == 'sm';\n });\n }\n\n ngOnInit(): void {\n this.startDate = moment().locale(this.localeService.currentLocaleCode).startOf('month').format('YYYY-MM-DD');\n this.endDate = moment().locale(this.localeService.currentLocaleCode).endOf('month').format('YYYY-MM-DD');\n this.month = moment().locale(this.localeService.currentLocaleCode).startOf('month').format('MMMM YYYY');\n\n this.rosterScheduleService.subContentChangeEvents.subscribe((value: any) => {\n this.pullContent();\n });\n\n this.pullContent();\n }\n\n showPrevMonth(): void {\n this.startDate = moment(this.startDate).locale(this.localeService.currentLocaleCode).subtract(1, 'M').format('YYYY-MM-DD');\n this.endDate = moment(this.startDate).locale(this.localeService.currentLocaleCode).endOf('month').format('YYYY-MM-DD');\n this.month = moment(this.startDate).locale(this.localeService.currentLocaleCode).format('MMMM YYYY');\n\n this.pullContent();\n }\n\n showNextMonth(): void {\n this.startDate = moment(this.startDate).locale(this.localeService.currentLocaleCode).add(1, 'M').format('YYYY-MM-DD');\n this.endDate = moment(this.startDate).locale(this.localeService.currentLocaleCode).endOf('month').format('YYYY-MM-DD');\n this.month = moment(this.startDate).locale(this.localeService.currentLocaleCode).format('MMMM YYYY');\n\n this.pullContent();\n }\n\n pullContent(): void {\n this.route.params.subscribe(params => {\n this.id = this.route.snapshot.params['id'];\n\n this.rosterPageService.get(this.id, { date_from: this.startDate, date_to: this.endDate }).subscribe(\n (res: WebApiDetailsResponse) => {\n this.loadRoster(res.content.data.roster_schedules.data);\n }\n );\n });\n }\n\n loadRoster(data: any): void {\n let ganttChartConfiguration = this.objectService.deepMerge(ROSTER_GANTT_CHART, {\n plotOptions: {\n series: {\n events: {\n click: (event: any) => {\n this.openScheduleRecord(event.point.schedule_id);\n }\n }\n }\n },\n exporting: {\n menuItemDefinitions: {\n downloadCSV: {\n text: 'Download CSV file',\n onclick: () => { this.exportCsv().subscribe() }\n }\n }\n }\n });\n this.rosterData = this.objectService.deepMerge(ganttChartConfiguration, data);\n }\n\n exportCsv(): Observable<any> {\n return this.rosterPageService.exportRosterCsv(\n this.id,\n { date_from: this.startDate, date_to: this.endDate }\n );\n }\n\n onBackClicked(): void {\n this.rosterPageService.openList();\n }\n\n onEditClicked(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n formPageService: this.rosterPageService as unknown as FormPageService,\n title: 'shift_management.dialogs.rosters.edit',\n id: this.id\n };\n dialogConfig.width = '80%';\n dialogConfig.autoFocus = false;\n\n let dialogRef = this.dialog.open(DialogFormComponent, dialogConfig);\n\n dialogRef.afterClosed().subscribe((response: any) => {\n if (response?._destroy) {\n this.rosterPageService.openList();\n }\n else if (response) {\n this.pullContent();\n }\n });\n }\n\n openScheduleRecord(scheduleId: string): void {\n this.rosterScheduleService.openRecord({ id: scheduleId });\n }\n\n openScheduleForm(scheduleId?: string): void {\n this.rosterScheduleService.openForm({ id: scheduleId }, { roster_id: this.id });\n }\n\n}\n","<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"16px\" class=\"page full-height-min full-height-only vertically-scrollable\">\n <mantle-page-title>{{ pageTitle | translate }}</mantle-page-title>\n\n <div fxFlex=\"0 0 auto\" fxLayout=\"column\" fxLayoutGap=\"16px\" class=\"page-header headline-5\">\n <div fxLayout=\"row\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"16px\">\n <div fxFlex=\"0 0 auto\" *ngIf=\"!rosterPageService.hideBackButton\">\n <button class=\"back-button\" mat-mini-fab color=\"primary\" type=\"button\" (click)=\"onBackClicked()\">\n <mat-icon>arrow_back</mat-icon>\n </button>\n </div>\n\n <button *ngIf=\"rosterScheduleService.showAddButton && rosterPageService.canWrite()\"\n mat-raised-button\n color=\"accent\"\n type=\"button\"\n class=\"add-button\"\n (click)=\"openScheduleForm()\">\n + {{ 'mantle.buttons.add' | translate }} {{ rosterScheduleService.noun() | translate }}\n </button>\n\n <ng-container *ngIf=\"!isSmallScreen; then monthControls\">\n </ng-container>\n\n <div fxFlex=\"1 1 auto\"></div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"rosterPageService.showEditButton && rosterPageService.canWrite()\">\n <button mat-mini-fab\n color=\"primary\"\n type=\"button\"\n class=\"edit-button\"\n (click)=\"onEditClicked()\"\n [disabled]=\"rosterPageService.isCommitInProgress\">\n <mat-icon>edit</mat-icon>\n </button>\n </div>\n </div>\n\n <ng-container *ngIf=\"isSmallScreen; then monthControls\">\n </ng-container>\n </div>\n\n <mantle-dynamic-chart [data]=\"rosterData\"></mantle-dynamic-chart>\n</div>\n\n<ng-template #monthControls>\n <div class=\"month-controls\">\n <button type=\"button\" mat-button (click)=\"showPrevMonth()\">\n <mat-icon>chevron_left</mat-icon>\n </button>\n \n <div class=\"month-text\">{{ month }}</div>\n \n <button type=\"button\" mat-button (click)=\"showNextMonth()\">\n <mat-icon>chevron_right</mat-icon>\n </button>\n </div>\n</ng-template>\n","import { AfterViewChecked, ChangeDetectorRef, Component, Injector, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AnnouncementService } from '../../../services/announcement.service';\nimport { DynamicFormComponent } from '../../../components/form/dynamic-form/dynamic-form.component';\nimport { ExportPageService } from '../../../services/interfaces/export-page.service';\nimport { ObjectService } from '../../../services/object.service';\nimport { WebApiFormResponse } from '../../../services/adapters/web-api-crud.adapter';\n\n@Component({\n selector: 'mantle-export-page',\n templateUrl: './export-page.component.html',\n styleUrls: ['./export-page.component.scss'],\n standalone: false\n})\nexport class ExportPageComponent implements OnInit, AfterViewChecked {\n\n @ViewChild(DynamicFormComponent) dynamicForm!: DynamicFormComponent;\n\n private exportPageService: ExportPageService;\n\n public content$!: Observable<any>;\n public isTabbedContent: boolean = false;\n public isExportInProgress!: boolean;\n\n constructor(private route: ActivatedRoute, private injector: Injector, private changeDetectorRef: ChangeDetectorRef,\n private announcementService: AnnouncementService, private objectService: ObjectService) {\n const exportPageServiceInjectionToken = this.route.snapshot.data['exportPageService'];\n this.exportPageService = this.injector.get<ExportPageService>(exportPageServiceInjectionToken);\n this.isTabbedContent = this.route.snapshot.data['isTabbedContent'];\n }\n\n ngOnInit(): void {\n this.content$ = this.exportPageService.getNew().pipe(\n map((res: WebApiFormResponse) => {\n return res.content;\n })\n );\n }\n\n ngAfterViewChecked(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n onExportClicked(): void {\n this.isExportInProgress = true;\n\n let params = this.dynamicForm.value;\n this.objectService.removeEmptyAttributes(params);\n\n this.exportPageService.export(params).subscribe(\n res => { this.onExportSuccess(res); },\n res => { this.onExportFailure(res); }\n );\n }\n\n onExportSuccess(res: any): void {\n this.isExportInProgress = false;\n }\n\n onExportFailure(res: { error: any }): void {\n this.announcementService.error('mantle.messages.export_failed');\n this.isExportInProgress = false;\n }\n\n}\n","<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"16px\" class=\"full-height-min\" [ngClass]=\"{'page full-height-only vertically-scrollable': !isTabbedContent}\">\n <div fxFlex=\"1 0 auto\" class=\"main-content\">\n <mantle-dynamic-form #dynamicForm [content]=\"content$ | async\"></mantle-dynamic-form>\n </div>\n\n <div fxFlex=\"0 0 auto\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <div fxFlex=\"1 1 auto\"></div>\n\n <div fxFlex=\"0 0 auto\">\n <button mat-raised-button\n *ngIf=\"!isExportInProgress\"\n color=\"primary\"\n type=\"button\"\n class=\"export-button\"\n [disabled]=\"!dynamicForm?.valid\"\n (click)=\"onExportClicked()\">\n {{ 'mantle.buttons.export' | translate }}\n </button>\n\n\n <button mat-raised-button\n *ngIf=\"isExportInProgress\"\n color=\"primary\"\n type=\"button\"\n class=\"button-with-spinner exporting-button\"\n [disabled]=\"true\">\n {{ 'mantle.buttons.exporting' | translate }}\n <mat-spinner [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input, OnChanges } from '@angular/core';\nimport { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';\nimport { FlatTreeControl } from '@angular/cdk/tree';\n\n/** File node data with possible child nodes. */\nexport interface NavigationNode {\n name: string;\n icon?: string;\n link?: string;\n children?: NavigationNode[];\n}\n\n/**\n * Flattened tree node that has been created from a NavigationNode through the flattener. Flattened\n * nodes include level index and whether they can be expanded or not.\n */\nexport interface FlatTreeNode {\n name: string;\n icon?: string;\n link?: string;\n level: number;\n expandable: boolean;\n}\n\n@Component({\n selector: 'mantle-nav-tree',\n templateUrl: './nav-tree.component.html',\n styleUrls: ['./nav-tree.component.scss'],\n standalone: false\n})\nexport class NavTreeComponent implements OnChanges {\n\n /** The TreeControl controls the expand/collapse state of tree nodes. */\n treeControl: FlatTreeControl<FlatTreeNode>;\n\n /** The TreeFlattener is used to generate the flat list of items from hierarchical data. */\n treeFlattener: MatTreeFlattener<NavigationNode, FlatTreeNode>;\n\n /** The MatTreeFlatDataSource connects the control and flattener to provide data. */\n dataSource: MatTreeFlatDataSource<NavigationNode, FlatTreeNode>;\n\n @Input() notificationCount: number = 0;\n @Input() navTreeFeatures: any[] = [];\n\n constructor() {\n this.treeFlattener = new MatTreeFlattener(\n this.transformer,\n this.getLevel,\n this.isExpandable,\n this.getChildren);\n\n this.treeControl = new FlatTreeControl(this.getLevel, this.isExpandable);\n this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\n }\n\n ngOnChanges(): void {\n this.dataSource.data = this.navTreeFeatures;\n }\n\n /** Transform the data to something the tree can read. */\n transformer(node: NavigationNode, level: number): FlatTreeNode {\n return {\n name: node.name,\n icon: node.icon,\n link: node.link,\n level,\n expandable: !!node.children && node.children.length > 0\n };\n }\n\n /** Get the level of the node */\n getLevel(node: FlatTreeNode): number {\n return node.level;\n }\n\n /** Get whether the node is expanded or not. */\n isExpandable(node: FlatTreeNode): boolean {\n return node.expandable;\n }\n\n /** Get whether the node has children or not. */\n hasChild(index: number, node: FlatTreeNode): boolean {\n return node.expandable;\n }\n\n /** Get the children for the node. */\n getChildren(node: NavigationNode): NavigationNode[] | null | undefined {\n return node.children;\n }\n}\n","<mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n\n <!-- This is the tree node template for leaf nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node\" [class.leaf-node]=\"node.level > 0\">\n <div fxLayout=\"row\" class=\"tree-node-content\">\n <div fxFlex=\"0 0 28px\" *ngIf=\"node.level > 0\" class=\"tree-node-indent\">\n <mat-divider [vertical]=\"true\" color=\"primary\"></mat-divider>\n </div>\n <div fxFlex=\"1 0 1px\">\n <button mat-button [routerLink]=\"node.link\" routerLinkActive=\"active\" class=\"tree-node-button\">\n <mat-icon *ngIf=\"node.icon\"\n [matBadge]=\"(node.name == 'Notifications' && notificationCount > 0) ? notificationCount : undefined\"\n matBadgeColor=\"warn\"\n matBadgeSize=\"small\">\n {{ node.icon }}\n </mat-icon>\n <div class=\"node-label\">{{ node.name | translate }}</div>\n </button>\n </div>\n </div>\n </mat-tree-node>\n\n <!-- This is the tree node template for expandable nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" fxLayout=\"row\" [class.leaf-node]=\"node.level > 0\">\n <div fxLayout=\"row\" class=\"tree-node-content\">\n <div fxFlex=\"0 0 28px\" *ngIf=\"node.level > 0\" class=\"tree-node-indent\">\n <mat-divider [vertical]=\"true\" color=\"primary\"></mat-divider>\n </div>\n <div fxFlex=\"1 0 1px\">\n <button fxFlex=\"1 0 1px\" mat-button matTreeNodeToggle class=\"tree-node-button\">\n <mat-icon *ngIf=\"node.icon\">{{ node.icon }}</mat-icon>\n <div class=\"node-label\">{{ node.name | translate }}</div>\n </button>\n </div>\n </div>\n </mat-tree-node>\n\n</mat-tree>\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\nimport { Event, NavigationStart, Router } from '@angular/router';\nimport { Observable, Subscription } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\nimport { WebApiDeleteResponse, WebApiDetailsResponse } from '../../../services/adapters/web-api-crud.adapter';\nimport { AnnouncementService } from '../../../services/announcement.service';\nimport { DetailPageService } from '../../../services/interfaces/detail-page.service';\n\nexport interface DialogDetailParams {\n detailPageService: DetailPageService;\n id: string;\n title: string;\n}\n\n@Component({\n selector: 'mantle-dialog-details',\n templateUrl: './dialog-details.component.html',\n styleUrls: ['./dialog-details.component.scss'],\n standalone: false\n})\nexport class DialogDetailsComponent implements OnInit {\n\n public detailPageService: DetailPageService;\n public id: string;\n public title: string;\n public content$!: Observable<any>;\n public isDeleteInProgress!: boolean;\n\n private routerSubscription!: Subscription;\n\n constructor(private router: Router, private dialogRef: MatDialogRef<DialogDetailsComponent>,\n @Inject(MAT_DIALOG_DATA) private dialogDetailParams: DialogDetailParams,\n private announcementService: AnnouncementService) {\n this.detailPageService = this.dialogDetailParams.detailPageService;\n this.id = this.dialogDetailParams.id;\n this.title = this.dialogDetailParams.title;\n\n this.content$ = this.detailPageService.get(this.id).pipe(\n map((res: WebApiDetailsResponse) => {\n return res.content;\n })\n );\n }\n\n ngOnInit() {\n this.routerSubscription = this.router.events.pipe(\n filter((event: Event) => event instanceof NavigationStart),\n filter(() => !!this.dialogRef)\n ).subscribe(() => {\n this.dialogRef.close();\n });\n }\n\n onCancelClicked() {\n this.close();\n }\n\n onCloneClicked(): void {\n this.close();\n\n setTimeout(() => {\n this.detailPageService.openForm({}, { clone_id: this.id });\n }, 500);\n }\n\n onEditClicked(): void {\n this.close();\n\n setTimeout(() => {\n this.detailPageService.openForm({ id: this.id });\n }, 500);\n }\n\n onDeleteClicked(): void {\n this.detailPageService.delete(\n this.id,\n () => { this.isDeleteInProgress = true; },\n (res: WebApiDeleteResponse) => { this.onDeleteSuccess(res); },\n (res: WebApiDeleteResponse) => { this.onDeleteFailure(res); }\n );\n }\n\n onDeleteSuccess(res: WebApiDeleteResponse): void {\n this.announcementService.success('mantle.messages.delete_successful');\n this.close({ id: this.id, _destroy: true });\n\n this.isDeleteInProgress = false;\n }\n\n onDeleteFailure(res: WebApiDeleteResponse): void {\n this.announcementService.error('mantle.messages.delete_failed');\n\n this.isDeleteInProgress = false;\n }\n\n close(result: any = false) {\n this.dialogRef.close(result);\n }\n\n ngOnDestroy() {\n this.routerSubscription.unsubscribe();\n }\n\n}\n","<div mat-dialog-title fxLayout=\"row\" fxLayoutAlign=\"start\" fxLayoutGap=\"8px\" class=\"dialog-title-section\">\n <mantle-section-title fxFlex=\"1 0 1px\" [title]=\"title\"></mantle-section-title>\n <button fxFlex=\"0 0 auto\" mat-icon-button tabindex=\"-1\" (click)=\"onCancelClicked()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <mantle-dynamic-details [content]=\"content$ | async\"></mantle-dynamic-details>\n</mat-dialog-content>\n\n<mat-dialog-actions fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\" class=\"actions-section\">\n <div fxFlex=\"0 0 auto\" *ngIf=\"detailPageService.showDeleteButton && detailPageService.canWrite()\">\n <button mat-button\n *ngIf=\"!isDeleteInProgress\"\n color=\"warn\"\n type=\"button\"\n class=\"delete-button\"\n (click)=\"onDeleteClicked()\">\n {{ 'mantle.buttons.delete' | translate }}\n </button>\n\n <button mat-raised-button\n *ngIf=\"isDeleteInProgress\"\n color=\"warn\"\n type=\"button\"\n class=\"button-with-spinner deleting-button\"\n [disabled]=\"true\">\n {{ 'mantle.buttons.deleting' | translate }}\n <mat-spinner [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n\n <div fxFlex=\"1 1 auto\"></div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"detailPageService.showCloneButton && detailPageService.canWrite()\">\n <button mat-raised-button\n color=\"accent\"\n type=\"button\"\n class=\"edit-button\"\n (click)=\"onCloneClicked()\">\n {{ 'mantle.buttons.clone' | translate }}\n </button>\n </div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"detailPageService.showEditButton && detailPageService.canWrite()\">\n <button mat-raised-button\n color=\"primary\"\n type=\"button\"\n class=\"edit-button\"\n (click)=\"onEditClicked()\">\n {{ 'mantle.buttons.edit' | translate }}\n </button>\n </div>\n</mat-dialog-actions>\n","import { Component, Injector, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { RerouteService } from '../../../services/interfaces/reroute.service';\n\n@Component({\n selector: 'mantle-reroute',\n template: '',\n standalone: false\n})\nexport class RerouteComponent implements OnInit {\n\n public rerouteService: RerouteService;\n\n constructor(private route: ActivatedRoute, private injector: Injector) {\n const rerouteServiceInjectionToken = this.route.snapshot.data['rerouteService'];\n this.rerouteService = this.injector.get<RerouteService>(rerouteServiceInjectionToken);\n }\n\n ngOnInit(): void {\n this.reroute();\n }\n\n reroute() {\n this.rerouteService.reroute();\n }\n\n}\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\n\n@Component({\n selector: 'mantle-qr-code-dialog',\n templateUrl: './qr-code-dialog.component.html',\n styleUrls: ['./qr-code-dialog.component.scss'],\n standalone: false\n})\nexport class QrCodeDialogComponent {\n\n public value: string = '';\n public instructions: string = '';\n\n constructor(private dialogRef: MatDialogRef<{ value: string, instructions: string }>,\n @Inject(MAT_DIALOG_DATA) private params: { value: string, instructions: string }) {\n this.value = this.params.value;\n this.instructions = this.params.instructions;\n }\n\n onClose(): void {\n this.dialogRef.close();\n }\n\n}\n","<div mat-dialog-title fxLayout=\"row\" fxLayoutAlign=\"start\" fxLayoutGap=\"8px\" class=\"dialog-title-section\">\n <mantle-section-title fxFlex=\"1 0 1px\" title=\"QR Code\"></mantle-section-title>\n <button fxFlex=\"0 0 auto\" mat-icon-button tabindex=\"-1\" (click)=\"onClose()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <p class=\"instructions\">{{ instructions | translate }}</p>\n <div class=\"qr-code-wrapper\">\n <qr-code [value]=\"value\"\n size=\"300\"\n cssClass=\"qr-code\"\n errorCorrectionLevel=\"M\">\n </qr-code>\n </div>\n</mat-dialog-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { RouterModule } from '@angular/router';\nimport { LayoutModule } from '@angular/cdk/layout';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { HighchartsChartModule } from 'highcharts-angular';\nimport { MarkdownModule } from 'ngx-markdown';\nimport { QrCodeModule } from 'ng-qrcode';\nimport { QuillModule } from 'ngx-quill'\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { ImageCropperComponent as NgxImageCropperComponent } from 'ngx-image-cropper';\n\n// Modules\nimport { MaterialModule } from './material.module';\n\n// Pipes\nimport { DynamicPipe } from './pipes/dynamic.pipe';\nimport { SecureImagePipe } from './pipes/secure-image.pipe';\n\n// Directives\nimport { ClickStopPropagationDirective } from \"./directives/click-stop-propagation.directive\";\nimport { FileDropzoneDirective } from './directives/file-dropzone.directive';\n\n// Components\nimport { DynamicDetailsComponent } from './components/details/dynamic-details/dynamic-details.component';\nimport { GridDetailsSectionComponent } from './components/details/sections/grid-details-section/grid-details-section.component';\nimport { TableDetailsSectionComponent } from './components/details/sections/table-details-section/table-details-section.component';\nimport { ReportDetailsSectionComponent } from './components/details/sections/report-details-section/report-details-section.component';\nimport { RosterShiftListDetailsSectionComponent } from './components/details/sections/roster-shift-list-details-section/roster-shift-list-details-section.component';\nimport { DynamicAttributeDisplayComponent } from './components/details/fields/dynamic-attribute-display/dynamic-attribute-display.component';\nimport { ActionsAttributeDisplayComponent } from './components/details/fields/actions-attribute-display/actions-attribute-display.component';\nimport { IconAttributeDisplayComponent } from './components/details/fields/icon-attribute-display/icon-attribute-display.component';\nimport { ChipAttributeDisplayComponent } from './components/details/fields/chip-attribute-display/chip-attribute-display.component';\nimport { FileAttributeDisplayComponent } from './components/details/fields/file-attribute-display/file-attribute-display.component';\nimport { ImageAttributeDisplayComponent } from './components/details/fields/image-attribute-display/image-attribute-display.component';\nimport { MarkdownAttributeDisplayComponent } from './components/details/fields/markdown-attribute-display/markdown-attribute-display.component';\nimport { MultiselectDisplayComponent } from './components/details/fields/multiselect-display/multiselect-display.component';\nimport { RichTextDisplayComponent } from './components/details/fields/rich-text-display/rich-text-display.component';\nimport { ReportViewerDisplayComponent } from './components/details/fields/report-viewer-display/report-viewer-display.component';\nimport { DialogFormComponent } from './components/form/dialog-form/dialog-form.component';\nimport { DialogNestedFormComponent } from './components/form/dialog-nested-form/dialog-nested-form.component';\nimport { DynamicFormComponent } from './components/form/dynamic-form/dynamic-form.component';\nimport { GridFormSectionComponent } from './components/form/sections/grid-form-section/grid-form-section.component';\nimport { TableFormSectionComponent } from './components/form/sections/table-form-section/table-form-section.component';\nimport { RosterShiftListFormSectionComponent } from './components/form/sections/roster-shift-list-form-section/roster-shift-list-form-section.component';\nimport { DynamicFormFieldComponent } from './components/form/fields/dynamic-form-field/dynamic-form-field.component';\nimport { ChipInputComponent } from './components/form/fields/chip-input/chip-input.component';\nimport { DatepickerComponent } from './components/form/fields/datepicker/datepicker.component';\nimport { DatetimepickerComponent } from './components/form/fields/datetimepicker/datetimepicker.component';\nimport { ColorPickerInputComponent } from './components/form/fields/colorpicker-input/colorpicker-input.component';\nimport { DropdownComponent } from './components/form/fields/dropdown/dropdown.component';\nimport { FilepickerComponent } from './components/form/fields/filepicker/filepicker.component';\nimport { ImagepickerComponent } from './components/form/fields/imagepicker/imagepicker.component';\nimport { ImageCropperComponent } from './components/form/fields/image-cropper/image-cropper.component';\nimport { NumberInputComponent } from './components/form/fields/number-input/number-input.component';\nimport { PasswordInputComponent } from './components/form/fields/password-input/password-input.component';\nimport { TextareaComponent } from './components/form/fields/textarea/textarea.component';\nimport { TextInputComponent } from './components/form/fields/text-input/text-input.component';\nimport { TimeInputComponent } from './components/form/fields/time-input/time-input.component';\nimport { MarkdownInputComponent } from './components/form/fields/markdown-input/markdown-input.component';\nimport { MultiselectInputComponent } from './components/form/fields/multiselect-input/multiselect-input.component';\nimport { RichTextInputComponent } from './components/form/fields/rich-text-input/rich-text-input.component';\nimport { ReportConfigInputComponent } from './components/form/fields/report-config-input/report-config-input.component';\nimport { AccordionLayoutEditorContainerComponent } from './components/layout-editor/containers/accordion-layout-editor-container/accordion-layout-editor-container.component';\nimport { DynamicLayoutEditorContainerComponent } from './components/layout-editor/containers/dynamic-layout-editor-container/dynamic-layout-editor-container.component';\nimport { PlainLayoutEditorContainerComponent } from './components/layout-editor/containers/plain-layout-editor-container/plain-layout-editor-container.component';\nimport { DynamicLayoutEditorComponent } from './components/layout-editor/dynamic-layout-editor/dynamic-layout-editor.component';\nimport { DynamicLayoutEditorElementComponent } from './components/layout-editor/elements/dynamic-layout-editor-element/dynamic-layout-editor-element.component';\nimport { LayoutEditorFieldElementComponent } from './components/layout-editor/elements/layout-editor-field-element/layout-editor-field-element.component';\nimport { LayoutEditorTableColumnElementComponent } from './components/layout-editor/elements/layout-editor-table-column-element/layout-editor-table-column-element.component';\nimport { LayoutEditorWidgetElementComponent } from './components/layout-editor/elements/layout-editor-widget-element/layout-editor-widget-element.component';\nimport { DashboardLayoutEditorSectionComponent } from './components/layout-editor/sections/dashboard-layout-editor-section/dashboard-layout-editor-section.component';\nimport { DynamicLayoutEditorSectionComponent } from './components/layout-editor/sections/dynamic-layout-editor-section/dynamic-layout-editor-section.component';\nimport { GridLayoutEditorSectionComponent } from './components/layout-editor/sections/grid-layout-editor-section/grid-layout-editor-section.component';\nimport { MarkdownLayoutEditorSectionComponent } from './components/layout-editor/sections/markdown-layout-editor-section/markdown-layout-editor-section.component';\nimport { TableLayoutEditorSectionComponent } from './components/layout-editor/sections/table-layout-editor-section/table-layout-editor-section.component';\nimport { DashboardPageComponent } from './components/pages/dashboard-page/dashboard-page.component';\nimport { LayoutEditorPageComponent } from './components/pages/layout-editor-page/layout-editor-page.component';\nimport { ListPageComponent } from './components/pages/list-page/list-page.component';\nimport { FormPageComponent } from './components/pages/form-page/form-page.component';\nimport { DetailPageComponent } from './components/pages/detail-page/detail-page.component';\nimport { DocumentsPageComponent } from './components/pages/documents-page/documents-page.component';\nimport { TabbedPageComponent } from './components/pages/tabbed-page/tabbed-page.component';\nimport { RosterPageComponent } from './components/pages/roster-page/roster-page.component';\nimport { ExportPageComponent } from './components/pages/export-page/export-page.component';\nimport { PageTitleComponent } from './components/titles/page-title/page-title.component';\nimport { SectionTitleComponent } from './components/titles/section-title/section-title.component';\nimport { DynamicTableComponent } from './components/widgets/dynamic-table/dynamic-table.component';\nimport { FilePreviewDialogComponent } from './components/widgets/file-preview-dialog/file-preview-dialog.component';\nimport { DeleteConfirmationDialogComponent } from './components/widgets/delete-confirmation-dialog/delete-confirmation-dialog.component';\nimport { SaveConfirmationDialogComponent } from './components/widgets/save-confirmation-dialog/save-confirmation-dialog.component';\nimport { SearchPanelComponent } from './components/widgets/search-panel/search-panel.component';\nimport { NavTreeComponent } from './components/navigation/nav-tree/nav-tree.component';\nimport { LoaderComponent } from './components/widgets/loader/loader.component';\nimport { DialogDetailsComponent } from './components/details/dialog-details/dialog-details.component';\nimport { DialogNestedDetailsComponent } from './components/details/dialog-nested-details/dialog-nested-details.component';\nimport { LinkAttributeDisplayComponent } from './components/details/fields/link-attribute-display/link-attribute-display.component';\nimport { DashboardSectionComponent } from './components/dashboard/sections/dashboard-section/dashboard-section.component';\nimport { DynamicWidgetDisplayComponent } from './components/dashboard/widgets/dynamic-widget-display/dynamic-widget-display.component';\nimport { DynamicChartComponent } from './components/dashboard/widgets/dynamic-chart/dynamic-chart.component';\nimport { DashboardInfoCardComponent } from './components/dashboard/widgets/dashboard-info-card/dashboard-info-card.component';\nimport { DashboardTableComponent } from './components/dashboard/widgets/dashboard-table/dashboard-table.component';\nimport { DashboardCardComponent } from './components/dashboard/dashboard-card/dashboard-card.component';\nimport { DashboardCardSearchMenuComponent } from './components/dashboard/dashboard-card-search-menu/dashboard-card-search-menu.component';\nimport { DynamicDashboardComponent } from './components/dashboard/dynamic-dashboard/dynamic-dashboard.component';\nimport { RerouteComponent } from './components/navigation/reroute/reroute.component';\nimport { SnackbarComponent } from './components/widgets/snackbar/snackbar.component';\nimport { ThumbnailDisplayComponent } from './components/details/fields/thumbnail-display/thumbnail-display.component';\nimport { ContentTitleComponent } from './components/titles/content-title/content-title.component';\nimport { MarkdownDetailsSectionComponent } from './components/details/sections/markdown-details-section/markdown-details-section.component';\nimport { AccordionDetailsContainerComponent } from './components/details/containers/accordion-details-container/accordion-details-container.component';\nimport { PlainDetailsContainerComponent } from './components/details/containers/plain-details-container/plain-details-container.component';\nimport { DynamicDetailsContainerComponent } from './components/details/containers/dynamic-details-container/dynamic-details-container.component';\nimport { DynamicDetailsSectionComponent } from './components/details/sections/dynamic-details-section/dynamic-details-section.component';\nimport { DynamicFormContainerComponent } from './components/form/containers/dynamic-form-container/dynamic-form-container.component';\nimport { PlainFormContainerComponent } from './components/form/containers/plain-form-container/plain-form-container.component';\nimport { AccordionFormContainerComponent } from './components/form/containers/accordion-form-container/accordion-form-container.component';\nimport { DynamicFormSectionComponent } from './components/form/sections/dynamic-form-section/dynamic-form-section.component';\nimport { DynamicDashboardContainerComponent } from './components/dashboard/containers/dynamic-dashboard-container/dynamic-dashboard-container.component';\nimport { PlainDashboardContainerComponent } from './components/dashboard/containers/plain-dashboard-container/plain-dashboard-container.component';\nimport { AutocompleteInputComponent } from './components/form/fields/autocomplete-input/autocomplete-input.component';\nimport { QrCodeDialogComponent } from './components/widgets/qr-code-dialog/qr-code-dialog.component';\nimport { DraggableTableComponent } from './components/widgets/draggable-table/draggable-table.component';\nimport { TooltipComponent } from './components/widgets/tooltip/tooltip.component';\n\n@NgModule({\n declarations: [\n DynamicPipe,\n SecureImagePipe,\n ClickStopPropagationDirective,\n FileDropzoneDirective,\n DynamicDetailsComponent,\n GridDetailsSectionComponent,\n TableDetailsSectionComponent,\n ReportDetailsSectionComponent,\n RosterShiftListDetailsSectionComponent,\n DynamicAttributeDisplayComponent,\n ActionsAttributeDisplayComponent,\n IconAttributeDisplayComponent,\n ChipAttributeDisplayComponent,\n FileAttributeDisplayComponent,\n ImageAttributeDisplayComponent,\n MarkdownAttributeDisplayComponent,\n MultiselectDisplayComponent,\n RichTextDisplayComponent,\n ReportViewerDisplayComponent,\n DialogFormComponent,\n DialogNestedFormComponent,\n DynamicFormComponent,\n GridFormSectionComponent,\n TableFormSectionComponent,\n RosterShiftListFormSectionComponent,\n DynamicFormFieldComponent,\n ChipInputComponent,\n DatepickerComponent,\n DatetimepickerComponent,\n ColorPickerInputComponent,\n DropdownComponent,\n FilepickerComponent,\n ImagepickerComponent,\n ImageCropperComponent,\n NumberInputComponent,\n PasswordInputComponent,\n TextareaComponent,\n TextInputComponent,\n TimeInputComponent,\n MarkdownInputComponent,\n MultiselectInputComponent,\n RichTextInputComponent,\n ReportConfigInputComponent,\n AccordionLayoutEditorContainerComponent,\n DynamicLayoutEditorContainerComponent,\n PlainLayoutEditorContainerComponent,\n DynamicLayoutEditorComponent,\n DynamicLayoutEditorElementComponent,\n LayoutEditorFieldElementComponent,\n LayoutEditorTableColumnElementComponent,\n LayoutEditorWidgetElementComponent,\n DashboardLayoutEditorSectionComponent,\n DynamicLayoutEditorSectionComponent,\n GridLayoutEditorSectionComponent,\n MarkdownLayoutEditorSectionComponent,\n TableLayoutEditorSectionComponent,\n DashboardPageComponent,\n LayoutEditorPageComponent,\n ListPageComponent,\n FormPageComponent,\n DetailPageComponent,\n DocumentsPageComponent,\n TabbedPageComponent,\n RosterPageComponent,\n ExportPageComponent,\n PageTitleComponent,\n SectionTitleComponent,\n DynamicTableComponent,\n FilePreviewDialogComponent,\n DeleteConfirmationDialogComponent,\n SaveConfirmationDialogComponent,\n SearchPanelComponent,\n NavTreeComponent,\n LoaderComponent,\n DialogDetailsComponent,\n DialogNestedDetailsComponent,\n LinkAttributeDisplayComponent,\n DashboardSectionComponent,\n DynamicWidgetDisplayComponent,\n DynamicChartComponent,\n DashboardInfoCardComponent,\n DashboardTableComponent,\n DashboardCardComponent,\n DashboardCardSearchMenuComponent,\n DynamicDashboardComponent,\n RerouteComponent,\n SnackbarComponent,\n ThumbnailDisplayComponent,\n ContentTitleComponent,\n MarkdownDetailsSectionComponent,\n AccordionDetailsContainerComponent,\n PlainDetailsContainerComponent,\n DynamicDetailsContainerComponent,\n DynamicDetailsSectionComponent,\n DynamicFormContainerComponent,\n PlainFormContainerComponent,\n AccordionFormContainerComponent,\n DynamicFormSectionComponent,\n DynamicDashboardContainerComponent,\n PlainDashboardContainerComponent,\n AutocompleteInputComponent,\n QrCodeDialogComponent,\n DraggableTableComponent,\n TooltipComponent,\n ],\n imports: [\n CommonModule,\n RouterModule,\n HttpClientModule,\n LayoutModule,\n FlexLayoutModule,\n DragDropModule,\n BrowserModule,\n BrowserAnimationsModule,\n FormsModule,\n ReactiveFormsModule,\n HighchartsChartModule,\n MarkdownModule.forRoot(),\n QrCodeModule,\n QuillModule.forRoot(),\n TranslateModule,\n MaterialModule,\n NgxImageCropperComponent\n ],\n exports: [\n MaterialModule,\n DynamicPipe,\n SecureImagePipe,\n ClickStopPropagationDirective,\n FileDropzoneDirective,\n DynamicDetailsComponent,\n GridDetailsSectionComponent,\n TableDetailsSectionComponent,\n ReportDetailsSectionComponent,\n RosterShiftListDetailsSectionComponent,\n DynamicAttributeDisplayComponent,\n ActionsAttributeDisplayComponent,\n IconAttributeDisplayComponent,\n ChipAttributeDisplayComponent,\n FileAttributeDisplayComponent,\n ImageAttributeDisplayComponent,\n MarkdownAttributeDisplayComponent,\n MultiselectDisplayComponent,\n RichTextDisplayComponent,\n ReportViewerDisplayComponent,\n DialogFormComponent,\n DialogNestedFormComponent,\n DynamicFormComponent,\n GridFormSectionComponent,\n TableFormSectionComponent,\n RosterShiftListFormSectionComponent,\n DynamicFormFieldComponent,\n ChipInputComponent,\n DatepickerComponent,\n DatetimepickerComponent,\n ColorPickerInputComponent,\n DropdownComponent,\n FilepickerComponent,\n ImagepickerComponent,\n ImageCropperComponent,\n NumberInputComponent,\n PasswordInputComponent,\n TextareaComponent,\n TextInputComponent,\n TimeInputComponent,\n MarkdownInputComponent,\n MultiselectInputComponent,\n RichTextInputComponent,\n ReportConfigInputComponent,\n AccordionLayoutEditorContainerComponent,\n DynamicLayoutEditorContainerComponent,\n PlainLayoutEditorContainerComponent,\n DynamicLayoutEditorComponent,\n DynamicLayoutEditorElementComponent,\n LayoutEditorFieldElementComponent,\n LayoutEditorTableColumnElementComponent,\n LayoutEditorWidgetElementComponent,\n DashboardLayoutEditorSectionComponent,\n DynamicLayoutEditorSectionComponent,\n GridLayoutEditorSectionComponent,\n MarkdownLayoutEditorSectionComponent,\n TableLayoutEditorSectionComponent,\n DashboardPageComponent,\n LayoutEditorPageComponent,\n ListPageComponent,\n FormPageComponent,\n DetailPageComponent,\n DocumentsPageComponent,\n TabbedPageComponent,\n RosterPageComponent,\n ExportPageComponent,\n PageTitleComponent,\n SectionTitleComponent,\n DynamicTableComponent,\n FilePreviewDialogComponent,\n DeleteConfirmationDialogComponent,\n SaveConfirmationDialogComponent,\n SearchPanelComponent,\n NavTreeComponent,\n LoaderComponent,\n DialogDetailsComponent,\n DialogNestedDetailsComponent,\n LinkAttributeDisplayComponent,\n DashboardSectionComponent,\n DynamicWidgetDisplayComponent,\n DynamicChartComponent,\n DashboardInfoCardComponent,\n DashboardTableComponent,\n DashboardCardComponent,\n DashboardCardSearchMenuComponent,\n DynamicDashboardComponent,\n RerouteComponent,\n SnackbarComponent,\n ThumbnailDisplayComponent,\n ContentTitleComponent,\n MarkdownDetailsSectionComponent,\n AccordionDetailsContainerComponent,\n PlainDetailsContainerComponent,\n DynamicDetailsContainerComponent,\n DynamicDetailsSectionComponent,\n DynamicFormContainerComponent,\n PlainFormContainerComponent,\n AccordionFormContainerComponent,\n DynamicFormSectionComponent,\n DynamicDashboardContainerComponent,\n PlainDashboardContainerComponent,\n AutocompleteInputComponent,\n DraggableTableComponent,\n TooltipComponent,\n ],\n providers: [\n DatePipe,\n ],\n})\nexport class MantleModule { }\n","export const PROGRESS_BAR_CHART = {\n chart: {\n type: 'bar',\n backgroundColor: 'white',\n margin: [0, 10, 0, 10],\n spacing: [0, 0, 0, 0],\n height: 100,\n reflow: true,\n },\n title: {\n text: ''\n },\n tooltip: {\n enabled: false\n },\n legend: {\n enabled: false\n },\n credits: {\n enabled: false\n },\n xAxis: {\n visible: false\n },\n yAxis: {\n visible: false,\n min: 0,\n },\n plotOptions: {\n bar: {\n groupPadding: 0,\n pointPadding: 0\n },\n series: {\n dataLabels: {\n enabled: true\n },\n stacking: 'normal',\n states: {\n hover: {\n enabled: false\n },\n inactive: {\n enabled: false\n }\n }\n }\n }\n};\n","export const GANTT_CHART: Highcharts.Options = {\n chart: {\n type: 'gantt'\n },\n yAxis: {\n grid: {\n borderWidth: 0\n },\n gridLineWidth: 0\n },\n plotOptions: {\n gantt: {\n borderRadius: 12,\n pointWidth: 24\n }\n }\n};\n","export const PIE_CHART = {\n chart: {\n type: 'pie'\n },\n tooltip: {\n useHTML: true,\n distance: 10,\n headerFormat: '',\n pointFormat: '<div style=\"display: inline-block; background-color: {point.color}; width: 10px; height: 10px;\"></div> <b>{point.name}: {point.y} ({point.percentage:.0f}%)</b>'\n },\n plotOptions: {\n pie: {\n shadow: false,\n cursor: 'pointer',\n dataLabels: {\n enabled: false\n }\n },\n }\n};\n","export const COLUMN_CHART = {\n chart: {\n type: 'column'\n },\n yAxis: {\n alignTicks: false,\n min: 0,\n title: {\n text: ''\n },\n stackLabels: {\n enabled: false,\n style: {\n color: 'gray'\n }\n }\n },\n legend: {\n enabled: false\n },\n tooltip: {\n useHTML: true,\n borderColor: '#838383',\n headerFormat: '<table><tr><th colspan=\"2\"><b>{point.x}</b></th></tr>',\n pointFormat: '<tr><td><div style=\"display: inline-block; background-color: {series.color}; width: 10px; height: 10px; border-radius: 10px; margin-right: 20px;\"></div>{series.name} </td> <td><b>{point.y}</b></td></tr>',\n footerFormat: '</table>',\n },\n plotOptions: {\n column: {\n stacking: 'normal',\n borderRadius: 0,\n dataLabels: {\n enabled: false\n }\n }\n }\n};\n","export const SPLINE_CHART = {\n chart: {\n type: 'spline'\n },\n yAxis: {\n title: {\n text: ''\n }\n },\n plotOptions: {\n series: {\n label: {\n enabled: false\n },\n marker: {\n symbol: 'circle'\n }\n }\n },\n legend: {\n enabled: false\n }\n};\n","export const MANTLE_LANG_EN = {\n \"mantle\": {\n \"auth\": {\n \"incorrect_password\": \"Incorrect password.\",\n \"page_access_denied\": \"You do not have access to this page.\"\n },\n \"buttons\": {\n \"add\": \"Add\",\n \"add_item\": \"Add Item\",\n \"cancel\": \"Cancel\",\n \"clone\": \"Clone\",\n \"close_actions\": \"Close Actions\",\n \"collapse_table\": \"Collapse Table\",\n \"confirm\": \"Confirm\",\n \"delete\": \"Delete\",\n \"deleting\": \"Deleting\",\n \"download\": \"Download\",\n \"edit\": \"Edit\",\n \"expand_table\": \"Expand Table\",\n \"export\": \"Export\",\n \"exporting\": \"Exporting\",\n \"open_actions\": \"Open Actions\",\n \"reset\": \"Reset\",\n \"save\": \"Save\",\n \"saving\": \"Saving\",\n \"search\": \"Search\",\n \"submit\": \"Submit\"\n },\n \"file_preview\": {\n \"unable_to_preview_file\": \"Unable to preview file.\"\n },\n \"image_cropper\": {\n \"crop_image\": \"Crop Image\",\n \"original\": \"Original\",\n \"preview\": \"Preview\"\n },\n \"report_config\": {\n \"dataset\": \"Dataset\",\n \"use_aggregation\": \"Use Aggregation\",\n \"columns\": \"Columns\",\n \"select\": \"Select\",\n \"column\": \"Column\",\n \"group_by\": \"Group By\",\n \"count\": \"Count\",\n \"count_distinct\": \"Count Distinct\",\n \"average\": \"Average\",\n \"max\": \"Max\",\n \"min\": \"Min\",\n \"sum\": \"Sum\",\n \"filters\": \"Filters\",\n \"filter\": \"Filter\",\n \"operator\": \"Operator\",\n \"filter_value\": \"Filter Value\",\n \"operators\": {\n \"=\": \"=\",\n \"!=\": \"!=\",\n \">\": \">\",\n \"<\": \"<\",\n \">=\": \">=\",\n \"<=\": \"<=\",\n \"contains\": \"contains\",\n \"starts_with\": \"starts with\",\n \"ends_with\": \"ends with\",\n \"one_of\": \"one of\",\n \"not_one_of\": \"not one of\"\n },\n \"add_filter\": \"Add Filter\"\n },\n \"messages\": {\n \"are_you_sure\": \"Are you sure?\",\n \"confirm_deletion\": \"Do you want to delete this record?\",\n \"could_not_update_locale\": \"Could not set language\",\n \"delete_failed\": \"Delete failed!\",\n \"delete_successful\": \"Delete successful!\",\n \"export_failed\": \"Export failed!\",\n \"save_failed\": \"Save failed!\",\n \"save_successful\": \"Save successful!\",\n \"unable_to_upload_file\": \"Unable to upload file\",\n \"unknown_error\": \"Unknown error\"\n },\n \"paginator\": {\n \"items_per_page\": \"Items per page:\",\n \"first_page\": \"First page\",\n \"previous_page\": \"Previous page\",\n \"next_page\": \"Next page\",\n \"last_page\": \"Last page\",\n \"of\": \"of\"\n },\n \"search_panel\": {\n \"search\": \"Search\",\n \"filter_by\": \"Filter By\"\n }\n }\n}\n","export const MANTLE_LANG_MS = {\n \"mantle\": {\n \"auth\": {\n \"incorrect_password\": \"Kata laluan salah.\",\n \"page_access_denied\": \"Anda tidak mempunyai akses ke halaman ini.\"\n },\n \"buttons\": {\n \"add\": \"Tambah\",\n \"add_item\": \"Tambah Item\",\n \"cancel\": \"Batal\",\n \"clone\": \"Klon\",\n \"close_actions\": \"Tutup Tindakan\",\n \"collapse_table\": \"Runtuhkan Jadual\",\n \"confirm\": \"Sahkan\",\n \"delete\": \"Padam\",\n \"deleting\": \"Memadam\",\n \"download\": \"Muat turun\",\n \"edit\": \"Sunting\",\n \"expand_table\": \"Kembangkan Jadual\",\n \"export\": \"Eksport\",\n \"exporting\": \"Mengeksport\",\n \"open_actions\": \"Buka Tindakan\",\n \"reset\": \"Set semula\",\n \"save\": \"Simpan\",\n \"saving\": \"Menyimpan\",\n \"search\": \"Cari\",\n \"submit\": \"Hantar\"\n },\n \"file_preview\": {\n \"unable_to_preview_file\": \"Tidak dapat pratonton fail.\"\n },\n \"image_cropper\": {\n \"crop_image\": \"Pangkas Imej\",\n \"original\": \"Asal\",\n \"preview\": \"Pratonton\"\n },\n \"report_config\": {\n \"dataset\": \"Set Data\",\n \"use_aggregation\": \"Guna Agregasi\",\n \"columns\": \"Lajur\",\n \"select\": \"Pilih\",\n \"column\": \"Lajur\",\n \"group_by\": \"Kumpulkan Mengikut\",\n \"count\": \"Kira\",\n \"count_distinct\": \"Kira Berbeza\",\n \"average\": \"Purata\",\n \"max\": \"Maksimum\",\n \"min\": \"Minimum\",\n \"sum\": \"Jumlah\",\n \"filters\": \"Penapis\",\n \"filter\": \"Penapis\",\n \"operator\": \"Operator\",\n \"filter_value\": \"Nilai Penapis\",\n \"operators\": {\n \"=\": \"=\",\n \"!=\": \"!=\",\n \">\": \">\",\n \"<\": \"<\",\n \">=\": \">=\",\n \"<=\": \"<=\",\n \"contains\": \"mengandungi\",\n \"starts_with\": \"bermula dengan\",\n \"ends_with\": \"berakhir dengan\",\n \"one_of\": \"salah satu daripada\",\n \"not_one_of\": \"bukan salah satu daripada\"\n },\n \"add_filter\": \"Tambah Penapis\"\n },\n \"messages\": {\n \"are_you_sure\": \"Adakah anda pasti?\",\n \"confirm_deletion\": \"Adakah anda mahu memadamkan rekod ini?\",\n \"could_not_update_locale\": \"Tidak dapat menetapkan bahasa\",\n \"delete_failed\": \"Padam gagal!\",\n \"delete_successful\": \"Padam berjaya!\",\n \"export_failed\": \"Eksport gagal!\",\n \"save_failed\": \"Simpanan gagal!\",\n \"save_successful\": \"Simpanan berjaya!\",\n \"unable_to_upload_file\": \"Tidak dapat memuat naik fail\",\n \"unknown_error\": \"Ralat tidak diketahui\"\n },\n \"paginator\": {\n \"items_per_page\": \"Item/halaman:\",\n \"first_page\": \"Muka pertama\",\n \"previous_page\": \"Halaman sebelumnya\",\n \"next_page\": \"Muka seterusnya\",\n \"last_page\": \"Muka terakhir\",\n \"of\": \"daripada\"\n },\n \"search_panel\": {\n \"search\": \"Cari\",\n \"filter_by\": \"Tapis Mengikut\"\n }\n }\n}\n","export interface ScreenSizeMapEntries<T> {\n xs?: T;\n sm?: T;\n md?: T;\n lg?: T;\n xl?: T;\n default: T;\n}\n\nexport class ScreenSizeMap<T> {\n\n private entries: ScreenSizeMapEntries<T>;\n\n constructor(params: ScreenSizeMapEntries<T>) {\n this.entries = params;\n }\n\n public findByScreenSize(screenSize: string): T {\n return this.entries[screenSize as keyof ScreenSizeMapEntries<T>] || this.entries.default;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { tap, retryWhen, delay } from 'rxjs/operators';\nimport { AngularTokenService, ResetPasswordData, SignInData, UpdatePasswordData } from '@citizenobserver/angular-token';\nimport moment from 'moment';\nimport { ArrayService } from './array.service';\nimport { AnnouncementService } from './announcement.service';\nimport { DataBroadcastService } from './data-broadcast.service';\nimport { LocaleService } from './locale.service';\nimport { WebApiService } from './web-api.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CurrentUserService {\n\n constructor(private tokenService: AngularTokenService, private router: Router,\n private announcementService: AnnouncementService, protected arrayService: ArrayService,\n protected dataBroadcastService: DataBroadcastService, private localeService: LocaleService,\n private webApiService: WebApiService) {\n this.dataBroadcastService.sessionData.next(this.getSessionData());\n this.dataBroadcastService.sessionData.subscribe((sessionData: any) => {\n if (sessionData?.id) {\n localStorage.setItem('sessionData', JSON.stringify(sessionData));\n if (sessionData.password_expired) this.router.navigateByUrl('/password-expired');\n this.dataBroadcastService.locale.next(sessionData.locale);\n }\n else {\n localStorage.removeItem('sessionData');\n }\n });\n }\n\n signIn(signInData: SignInData, additionalData: any, onSuccess?: (res: any) => void, onFailure?: (res: any) => void) {\n this.tokenService.signIn(signInData, additionalData).subscribe(\n (response: any) => {\n this.dataBroadcastService.sessionData.next(response.data);\n this.setLatestPasswordCheckTime();\n if (onSuccess) onSuccess(response);\n },\n (response: any) => {\n if (onFailure) onFailure(response);\n }\n );\n }\n\n validateToken(onValid?: (res: any) => void, onInvalid?: (res: any) => void) {\n this.tokenService.validateToken().pipe(\n retryWhen(errors =>\n errors.pipe(\n delay(1000),\n tap(response => {\n if (!response.status.toString().startsWith('5')) {\n throw response;\n }\n })\n )\n )\n ).subscribe(\n (response: any) => {\n this.dataBroadcastService.sessionData.next(response.data);\n if (onValid) onValid(response);\n },\n (response: any) => {\n if (onInvalid) onInvalid(response);\n this.signOut();\n }\n );\n }\n\n updatePassword(updatePasswordData: UpdatePasswordData, onSuccess?: (res: any) => void, onFailure?: (res: any) => void) {\n this.tokenService.updatePassword(updatePasswordData).subscribe(\n (response: any) => {\n this.dataBroadcastService.sessionData.next(response.data);\n if (onSuccess) onSuccess(response);\n },\n (response: any) => {\n if (onFailure) onFailure(response);\n }\n );\n }\n\n resetPassword(resetPasswordData: ResetPasswordData, onSuccess?: (res: any) => void, onFailure?: (res: any) => void) {\n this.tokenService.resetPassword(resetPasswordData).subscribe(\n (response: any) => {\n if (onSuccess) onSuccess(response);\n },\n (response: any) => {\n if (onFailure) onFailure(response);\n }\n );\n }\n\n signOut(callback?: () => void) {\n this.tokenService.signOut().subscribe(\n (response: any) => {\n if (callback) callback();\n this.clearSessionData();\n this.router.navigateByUrl('sign-in');\n },\n (response: any) => {\n if (callback) callback();\n this.clearSessionData();\n this.router.navigateByUrl('sign-in');\n }\n );\n }\n\n isSignedIn() {\n return this.tokenService.userSignedIn();\n }\n\n getSessionData() {\n const sessionData = localStorage.getItem('sessionData');\n return sessionData ? JSON.parse(sessionData) : undefined;\n }\n\n clearSessionData() {\n this.dataBroadcastService.sessionData.next(undefined);\n this.dataBroadcastService.locale.next(undefined);\n }\n\n getId() {\n return this.getSessionData()?.id;\n }\n\n changePassword() {\n this.router.navigateByUrl('/app/account/change-password');\n }\n\n getPermissions() {\n return this.getSessionData()?.permissions || [];\n }\n\n public hasFeatureAccess(feature: string, action: string = 'Read') {\n return this.arrayService.hasItemWithAttributes(\n this.getPermissions(), { feature: feature, action: action }\n );\n }\n\n setLatestPasswordCheckTime() {\n let now = moment().format('YYYY-MM-DD HH:mm:ss');\n localStorage.setItem('latestPasswordCheckTime', now);\n }\n\n getLatestPasswordCheckTime() {\n return localStorage.getItem('latestPasswordCheckTime');\n }\n\n setLocale(locale: string): void {\n if (locale == this.localeService.currentLocale) return;\n if (!this.localeService.availableLocales.includes(locale)) return;\n\n if (this.isSignedIn()) {\n this.webApiService.update('my_account/locale', { locale: locale }).subscribe(\n (response: any) => {\n let sessionData = this.dataBroadcastService.sessionData.getValue();\n sessionData.locale = response.content.data.locale;\n this.dataBroadcastService.sessionData.next(sessionData);\n },\n (error: any) => {\n this.announcementService.error('mantle.messages.could_not_update_locale');\n }\n );\n }\n else {\n this.dataBroadcastService.locale.next(locale);\n }\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ObjectService } from './object.service';\nimport { COLUMN_CHART } from '../config/charts/column-chart.data';\nimport { GANTT_CHART } from '../config/charts/gantt-chart.data';\nimport { PIE_CHART } from '../config/charts/pie-chart.data';\nimport { PROGRESS_BAR_CHART } from '../config/charts/progress-bar-chart.data';\nimport { SPLINE_CHART } from '../config/charts/spline-chart.data';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChartService {\n\n constructor(private objectService: ObjectService) { }\n\n private mergeChartConfig(chartConfig: any, domainConfig: any, widgetConfig?: any) {\n let config = this.objectService.deepMerge(chartConfig, domainConfig);\n\n if (widgetConfig) {\n config = this.objectService.deepMerge(config, widgetConfig);\n }\n\n return config;\n }\n\n public columnChart(domainConfig: any, widgetConfig?: any) {\n return this.mergeChartConfig(COLUMN_CHART, domainConfig, widgetConfig);\n }\n\n public ganttChart(domainConfig: any, widgetConfig?: any) {\n return this.mergeChartConfig(GANTT_CHART, domainConfig, widgetConfig);\n }\n\n public pieChart(domainConfig: any, widgetConfig?: any) {\n return this.mergeChartConfig(PIE_CHART, domainConfig, widgetConfig);\n }\n\n public progressBarChart(domainConfig: any, widgetConfig?: any) {\n return this.mergeChartConfig(PROGRESS_BAR_CHART, domainConfig, widgetConfig);\n }\n\n public splineChart(domainConfig: any, widgetConfig?: any) {\n return this.mergeChartConfig(SPLINE_CHART, domainConfig, widgetConfig);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport * as ActionCable from \"@rails/actioncable\";\nimport { AngularTokenService } from '@citizenobserver/angular-token';\nimport { ENVIRONMENT } from '../tokens/environment.token';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WebsocketService {\n\n private wsUrl: string;\n\n constructor(@Inject(ENVIRONMENT) private environment: any, private angularTokenService: AngularTokenService) {\n this.wsUrl = this.environment.WS_URL;\n }\n\n connect() {\n let currentAuthData = this.angularTokenService.currentAuthData;\n\n let consumer = ActionCable.createConsumer(`${this.wsUrl}/?token=${currentAuthData.accessToken}&client=${currentAuthData.client}&uid=${currentAuthData.uid}`);\n return {\n subscribe: (channelName: string, callbacks: any = {}) => {\n return consumer.subscriptions.create(channelName, {\n\n // Called when the subscription is ready for use on the server\n connected: () => {\n if (callbacks.connected) callbacks.connected();\n },\n\n // Called when the WebSocket connection is closed\n disconnected: () => {\n if (callbacks.disconnected) callbacks.disconnected();\n },\n\n // Called when the subscription is rejected by the server\n rejected: () => {\n if (callbacks.rejected) callbacks.rejected();\n },\n\n // Called when a message is received\n received: (data) => {\n if (callbacks.received) callbacks.received(data);\n }\n\n });\n },\n\n disconnect() {\n consumer.disconnect();\n }\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { Observable } from 'rxjs';\nimport moment from 'moment';\nimport { DialogNestedFormComponent } from '../components/form/dialog-nested-form/dialog-nested-form.component';\nimport { AnnouncementService } from './announcement.service';\nimport { CurrentUserService } from './current-user.service';\nimport { DataBroadcastService } from './data-broadcast.service';\nimport { WebApiService } from './web-api.service';\n\nconst passwordCheckValidityMinutes: number = 5;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PasswordCheckService {\n\n constructor(private dialog: MatDialog, private announcementService: AnnouncementService,\n private currentUserService: CurrentUserService, private dataBroadcastService: DataBroadcastService,\n private webApiService: WebApiService) { }\n\n public checkPassword(): Observable<boolean> {\n return new Observable((subscriber) => {\n if (this.hasLatestPasswordCheckExpired()) {\n const dialogRef = this.dialog.open(DialogNestedFormComponent, this.modalConfiguration());\n\n dialogRef.keydownEvents().subscribe(event => {\n if (event.key === 'Enter') {\n dialogRef.componentInstance.onSave();\n }\n });\n dialogRef.afterClosed().subscribe(formData => {\n if (!formData) {\n subscriber.next(false);\n subscriber.complete();\n return;\n }\n\n const username = this.dataBroadcastService.sessionData.getValue().username;\n this.validatePassword(username, formData['password']).subscribe(\n (response: any) => {\n this.setLatestPasswordCheckTime();\n subscriber.next(true);\n subscriber.complete();\n },\n (error: any) => {\n this.announcementService.error('mantle.auth.incorrect_password');\n subscriber.next(false);\n subscriber.complete();\n }\n );\n });\n }\n else {\n this.setLatestPasswordCheckTime();\n subscriber.next(true);\n subscriber.complete();\n }\n });\n }\n\n private getLatestPasswordCheckTime(): any {\n return this.currentUserService.getLatestPasswordCheckTime();\n }\n\n private setLatestPasswordCheckTime(): void {\n this.currentUserService.setLatestPasswordCheckTime();\n }\n\n private hasLatestPasswordCheckExpired(): boolean {\n const latestPasswordCheckTime = this.getLatestPasswordCheckTime();\n if (!latestPasswordCheckTime) return true;\n\n let now = moment();\n let latestCheckMoment = moment(latestPasswordCheckTime, 'YYYY-MM-DD HH:mm:ss');\n return (now.diff(latestCheckMoment, 'minutes') >= passwordCheckValidityMinutes);\n }\n\n private validatePassword(username: string, password: string): Observable<any> {\n const params = { username: username, password: password };\n return this.webApiService.get('auth/password', params);\n }\n\n private modalConfiguration(): MatDialogConfig {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n title: 'Enter Password',\n section: {\n singleColumn: true,\n elements: [\n { label: 'Password', attr: 'password', required: true, type: 'password' }\n ]\n },\n saveButtonText: 'mantle.buttons.submit'\n };\n dialogConfig.width = '40%';\n\n return dialogConfig;\n }\n}\n","import { EventEmitter } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MatDialog, MatDialogConfig } from \"@angular/material/dialog\";\nimport { Observable } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\nimport { AuthorisableFeatureService } from '../services/interfaces/authorisable-feature.service';\nimport { ConfirmationService } from '../services/confirmation.service';\nimport { CurrentUserService } from '../services/current-user.service';\nimport { DataBroadcastService } from '../services/data-broadcast.service';\nimport { DetailPageService } from '../services/interfaces/detail-page.service';\nimport { FormPageService } from '../services/interfaces/form-page.service';\nimport { WebApiCrudAdapter } from '../services/adapters/web-api-crud.adapter';\nimport { WebsocketAdapter } from '../services/adapters/websocket.adapter';\nimport { WebApiService } from '../services/web-api.service';\nimport { WebsocketService } from '../services/websocket.service';\nimport { DetailPageButton } from '../services/interfaces/detail-page.service';\nimport { DetailPageExportOption } from '../services/interfaces/detail-page.service';\nimport { DialogDetailsComponent } from '../components/details/dialog-details/dialog-details.component';\nimport { DialogFormComponent } from '../components/form/dialog-form/dialog-form.component';\nimport { DynamicDetailsContent } from '../data-structures/dynamic-layout.structure';\nimport { DynamicFormContent } from '../data-structures/dynamic-layout.structure';\nimport { DynamicLayoutGridSection } from '../data-structures/dynamic-layout.structure';\nimport { DialogNestedFormParams } from '../components/form/dialog-nested-form/dialog-nested-form.component';\nimport { FormPageButton } from '../services/interfaces/form-page.service';\nimport { ListPageBulkExportOption } from '../services/interfaces/list-page.service';\nimport { ListPageExportOption } from '../services/interfaces/list-page.service';\nimport { ListPageButton } from '../services/interfaces/list-page.service';\nimport { WebApiDeleteResponse } from '../services/adapters/web-api-crud.adapter';\nimport { WebApiDetailsResponse } from '../services/adapters/web-api-crud.adapter';\nimport { WebApiFormResponse } from '../services/adapters/web-api-crud.adapter';\nimport { WebApiListRequest } from '../services/adapters/web-api-crud.adapter';\nimport { WebApiListResponse } from '../services/adapters/web-api-crud.adapter';\nimport { WebApiSaveResponse } from '../services/adapters/web-api-crud.adapter';\nimport { FormGroup } from '@angular/forms';\n\nexport class FeatureConfigService implements WebApiCrudAdapter, WebsocketAdapter, AuthorisableFeatureService {\n\n private parentComponent: any;\n protected webApiBaseUrl: string;\n protected webApiService: WebApiService;\n private webRtcChannel: string;\n protected webRtcService: WebsocketService;\n protected feature: string;\n protected currentUserService: CurrentUserService;\n protected dataBroadcastService: DataBroadcastService;\n protected sessionData: any = {};\n protected router: Router;\n protected dialog: MatDialog;\n protected confirmationService: ConfirmationService;\n\n private webRtcConnection: any;\n public webRtcEvents: EventEmitter<any> = new EventEmitter<any>();\n\n public subContentChangeEvents: EventEmitter<any> = new EventEmitter<any>();\n\n public isCommitInProgress: boolean = false;\n\n constructor(config: any) {\n this.webApiBaseUrl = config.webApi?.baseUrl;\n this.webApiService = config.webApi?.service;\n this.webRtcChannel = config.webRtc?.channel;\n this.webRtcService = config.webRtc?.service;\n this.feature = config.authorisation?.feature;\n this.currentUserService = config.authorisation?.service;\n this.dataBroadcastService = config.dataBroadcast?.service;\n this.dataBroadcastService?.sessionData.subscribe(sessionData => { this.sessionData = sessionData; });\n this.router = config.routing?.service;\n this.dialog = config.dialog?.service;\n this.confirmationService = config.confirmation?.service;\n this.onInit();\n }\n\n onInit() { }\n\n // Override this method in your domain-service if you would like to use it.\n noun(): string {\n return '';\n }\n\n /*\n * PARENT COMPONENT\n */\n\n setParentComponent(parentComponent: any): void {\n this.parentComponent = parentComponent;\n }\n\n refreshParentComponent() {\n this.parentComponent.pullContent();\n }\n\n populateParentComponent(data: any) {\n this.parentComponent.loadContent(data);\n }\n\n /*\n * WEB API INTERFACE\n */\n\n getList(params: WebApiListRequest, headers: any = {}): Observable<WebApiListResponse> {\n return this.webApiService.get(this.webApiBaseUrl, params.toHttpParams(), headers) as Observable<WebApiListResponse>;\n }\n\n get(id: string, params: any = {}, headers: any = {}): Observable<WebApiDetailsResponse> {\n return this.webApiService.get(`${this.webApiBaseUrl}/${id}`, params, headers) as Observable<WebApiDetailsResponse>;\n }\n\n getNew(params: any = {}, headers: any = {}): Observable<WebApiFormResponse> {\n return this.webApiService.get(`${this.webApiBaseUrl}/new`, params, headers) as Observable<WebApiFormResponse>;\n }\n\n create(params: any, headers: any = {}): Observable<WebApiSaveResponse> {\n this.isCommitInProgress = true;\n let observable = this.webApiService.create(this.webApiBaseUrl, params, headers) as Observable<WebApiSaveResponse>;\n return observable.pipe(\n finalize(() => {\n this.isCommitInProgress = false;\n })\n );\n }\n\n getEdit(id: string, params: any = {}, headers: any = {}): Observable<WebApiFormResponse> {\n return this.webApiService.get(`${this.webApiBaseUrl}/${id}/edit`, params, headers) as Observable<WebApiFormResponse>;\n }\n\n update(id: string, params: any, headers: any = {}): Observable<WebApiSaveResponse> {\n this.isCommitInProgress = true;\n let observable = this.webApiService.update(`${this.webApiBaseUrl}/${id}`, params, headers) as Observable<WebApiSaveResponse>;\n return observable.pipe(\n finalize(() => {\n this.isCommitInProgress = false;\n })\n );\n }\n\n destroy(id: string, params: any = {}, headers: any = {}): Observable<any> {\n this.isCommitInProgress = true;\n return this.webApiService.destroy(`${this.webApiBaseUrl}/${id}`, params, headers).pipe(\n finalize(() => {\n this.isCommitInProgress = false;\n })\n );\n }\n\n downloadList(format: string, filename: string, params: any = {}, headers: any = {}): Observable<any> {\n return this.webApiService.download(`${this.webApiBaseUrl}.${format}`, filename, params, headers);\n }\n\n download(id: string, format: string, filename: string, params: any = {}, headers: any = {}): Observable<any> {\n return this.webApiService.download(`${this.webApiBaseUrl}/${id}.${format}`, filename, params, headers);\n }\n\n /*\n * WEB RTC INTERFACE\n */\n\n connectWebRtc(): void {\n this.webRtcConnection = this.webRtcService?.connect();\n this.webRtcConnection.subscribe({ channel: this.webRtcChannel }, {\n received: (data: any) => {\n this.webRtcEvents.emit(data);\n }\n });\n }\n\n disconnectWebRtc() {\n if (this.webRtcConnection) this.webRtcConnection.disconnect();\n }\n\n /*\n * AUTHORISATION\n */\n\n canRead(): boolean {\n if (!this.feature) return true;\n return this.currentUserService.hasFeatureAccess(this.feature, 'Read');\n }\n\n canWrite(): boolean {\n if (!this.feature) return true;\n return this.currentUserService.hasFeatureAccess(this.feature, 'Write');\n }\n\n authorise(action: string): boolean {\n if (action == 'Write') return this.canWrite();\n else return this.canRead();\n }\n\n /*\n * ROUTING\n */\n\n openRoute(route: string) {\n this.router.navigateByUrl(route);\n }\n\n openParent() { }\n\n /*\n * DIALOG\n */\n\n openDetailDialog(detailPageService: DetailPageService, title: string, record: any) {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n detailPageService: detailPageService,\n title: title,\n id: record.id\n };\n dialogConfig.width = '80%';\n dialogConfig.autoFocus = false;\n\n let dialogRef = this.dialog.open(DialogDetailsComponent, dialogConfig);\n\n dialogRef.afterClosed().subscribe((response: any) => {\n if (response) this.subContentChangeEvents.emit();\n });\n }\n\n openFormDialog(formPageService: FormPageService, title: string, record: any = {}, initData: any = {}) {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n formPageService: formPageService,\n title: title,\n id: record.id,\n initData: initData\n };\n dialogConfig.width = '80%';\n dialogConfig.autoFocus = false;\n\n let dialogRef = this.dialog.open(DialogFormComponent, dialogConfig);\n\n dialogRef.afterClosed().subscribe((response: any) => {\n if (response) this.subContentChangeEvents.emit();\n });\n }\n\n /*\n * DETAILS PAGE CONFIG\n */\n\n // Override this method in you domain-service if you would like to use it.\n onDetailContentLoaded(content: DynamicDetailsContent) { }\n\n // Override this method in your domain-service if you would like to use it.\n detailPageExportOptions(): DetailPageExportOption[] {\n return [];\n }\n\n // Override this method in your domain-service if you would like to use it.\n detailPageSectionActions(sectionSlug: string): any[] {\n return [];\n }\n\n // Override this method in your domain-service if you would like to use it.\n detailDialogLayoutChanges(section: DynamicLayoutGridSection, record?: any): any {\n return section;\n }\n\n // Override this method in your domain-service if you would like to use it.\n additionalDetailPageButtons(record: any): DetailPageButton[] {\n return [];\n }\n\n deletionOptions(): any {\n return {\n message: 'mantle.messages.confirm_deletion',\n buttons: [\n {\n label: 'mantle.buttons.delete',\n onClick: (id: string) => {\n return this.destroy(id);\n }\n }\n ]\n }\n }\n\n delete(id: string, onDeleteConfirmed: () => void, onSuccess: (response: WebApiDeleteResponse) => void, onFailure: (response: WebApiDeleteResponse) => void) {\n this.confirmationService.confirmDeletion(\n (deletionAction: (id: string) => Observable<any>) => {\n onDeleteConfirmed();\n\n deletionAction(id).subscribe(\n res => {\n this.onDeleteSuccess(res);\n onSuccess(res);\n },\n res => {\n this.onDeleteFailure(res.error);\n onFailure(res.error);\n }\n );\n },\n this.deletionOptions()\n );\n }\n\n // Override this method in you domain-service if you would like to use it.\n onDeleteSuccess(response: WebApiSaveResponse) { }\n\n // Override this method in you domain-service if you would like to use it.\n onDeleteFailure(response: WebApiSaveResponse) { }\n\n /*\n * FORM PAGE CONFIG\n */\n\n // Override this method in you domain-service if you would like to use it.\n onFormContentLoaded(content: DynamicFormContent) { }\n\n // Override this method in you domain-service if you would like to use it.\n onFormValueChanged(pageContent: DynamicFormContent, formValue: any): any { };\n\n // Override this method in you domain-service if you would like to use it.\n onDialogFormContentLoaded(content: DialogNestedFormParams) { }\n\n // Override this method in your domain-service if you would like to use it.\n formDialogLayoutChanges(section: DynamicLayoutGridSection, record?: any): any {\n return section;\n }\n\n // Override this method in your domain-service if you would like to use it.\n onDialogFormValueChanged(dialogContent: DialogNestedFormParams, formValue: any, form?: FormGroup): any { };\n\n // Override this method in you domain-service if you would like to use it.\n additionalFormPageButtons(record: any): FormPageButton[] {\n return [];\n }\n\n save(id: string | undefined, value: any, onSuccess: (response: WebApiSaveResponse) => void, onFailure: (response: WebApiSaveResponse) => void) {\n this.beforeSave(value);\n\n let responseObservable = id ? this.update(id, value) : this.create(value);\n\n responseObservable.subscribe(\n res => {\n this.onSaveSuccess(res);\n onSuccess(res);\n },\n res => {\n this.onSaveFailure(res.error);\n onFailure(res.error);\n }\n );\n }\n\n // Override this method in you domain-service if you would like to use it.\n beforeSave(value: any) { }\n\n // Override this method in you domain-service if you would like to use it.\n onSaveSuccess(response: WebApiSaveResponse) { }\n\n // Override this method in you domain-service if you would like to use it.\n onSaveFailure(response: WebApiSaveResponse) { }\n\n /*\n * LIST PAGE CONFIG\n */\n\n // Override this method in your domain-service if you would like to use it.\n listPageExportOptions(): ListPageExportOption[] {\n return [];\n }\n\n // Override this method in your domain-service if you would like to use it.\n listPageBulkExportOptions(): ListPageBulkExportOption[] {\n return [];\n }\n\n // Override this method in your domain-service if you would like to use it.\n additionalListPageButtons(): ListPageButton[] {\n return [];\n }\n\n // Override this method in your domain-service if you would like to use it.\n onRecordChecked(record: any): void { }\n\n // Override this method in your domain-service if you would like to use it.\n onRecordUnchecked(record: any) : void { }\n\n // Override this method in your domain-service if you would like to use it.\n onCheckAll(records: any[]): void { }\n\n // Override this method in your domain-service if you would like to use it.\n onUncheckAll(): void { }\n\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { AngularTokenService } from '@citizenobserver/angular-token';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SessionGuard implements CanActivate {\n\n constructor(private angularTokenService: AngularTokenService) {}\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n return this.angularTokenService.canActivate(route, state);\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { AuthorisableFeatureService } from '../services/interfaces/authorisable-feature.service';\nimport { AnnouncementService } from '../services/announcement.service';\nimport { CurrentUserService } from '../services/current-user.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FeatureGuard implements CanActivate {\n\n constructor(private announcementService: AnnouncementService, private currentUserService: CurrentUserService,\n private router: Router, private injector: Injector) {}\n\n canActivate(route: ActivatedRouteSnapshot): Promise<boolean> {\n return new Promise((resolve, reject) => {\n this.currentUserService.validateToken(\n (response: any) => {\n const authorisableFeatureServiceInjectionToken = route.data.authorise.service;\n const authorisableFeatureService = this.injector.get<AuthorisableFeatureService>(authorisableFeatureServiceInjectionToken);\n const authorisableAction = route.data.authorise.action;\n\n const permitted = authorisableFeatureService.authorise(authorisableAction);\n\n if (!permitted) {\n this.announcementService.error('mantle.auth.page_access_denied');\n this.router.navigateByUrl('');\n }\n\n resolve(permitted);\n },\n (response: any) => {\n resolve(false);\n }\n );\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivateChild } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { PasswordCheckService } from '../services/password-check.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PasswordCheckGuard implements CanActivateChild {\n\n constructor(private passwordCheckService: PasswordCheckService) { }\n\n canActivateChild(): Observable<boolean> {\n return this.passwordCheckService.checkPassword();\n }\n\n}\n","/*\n * Public API Surface of mantle\n */\n\nexport * from './lib/mantle.module';\nexport * from './lib/material.module';\nexport * from './lib/directives/file-dropzone.directive';\nexport * from './lib/directives/click-stop-propagation.directive';\nexport * from './lib/data-structures/file-attachment.structure';\nexport * from './lib/data-structures/dynamic-layout.structure';\nexport * from './lib/config/charts/progress-bar-chart.data';\nexport * from './lib/config/charts/gantt-chart.data';\nexport * from './lib/config/charts/pie-chart.data';\nexport * from './lib/config/charts/column-chart.data';\nexport * from './lib/config/charts/spline-chart.data';\nexport * from './lib/language-packs/en.data'\nexport * from './lib/language-packs/ms.data'\nexport * from './lib/pipes/secure-image.pipe';\nexport * from './lib/pipes/dynamic.pipe';\nexport * from './lib/components/form/sections/dynamic-form-section/dynamic-form-section.component';\nexport * from './lib/components/form/sections/table-form-section/table-form-section.component';\nexport * from './lib/components/form/sections/roster-shift-list-form-section/roster-shift-list-form-section.component';\nexport * from './lib/components/form/sections/grid-form-section/grid-form-section.component';\nexport * from './lib/components/form/dialog-form/dialog-form.component';\nexport * from './lib/components/form/dialog-nested-form/dialog-nested-form.component';\nexport * from './lib/components/form/fields/autocomplete-input/autocomplete-input.component';\nexport * from './lib/components/form/fields/colorpicker-input/colorpicker-input.component';\nexport * from './lib/components/form/fields/dropdown/dropdown.component';\nexport * from './lib/components/form/fields/imagepicker/imagepicker.component';\nexport * from './lib/components/form/fields/datepicker/datepicker.component';\nexport * from './lib/components/form/fields/number-input/number-input.component';\nexport * from './lib/components/form/fields/chip-input/chip-input.component';\nexport * from './lib/components/form/fields/password-input/password-input.component';\nexport * from './lib/components/form/fields/textarea/textarea.component';\nexport * from './lib/components/form/fields/markdown-input/markdown-input.component';\nexport * from './lib/components/form/fields/multiselect-input/multiselect-input.component';\nexport * from './lib/components/form/fields/datetimepicker/datetimepicker.component';\nexport * from './lib/components/form/fields/time-input/time-input.component';\nexport * from './lib/components/form/fields/filepicker/filepicker.component';\nexport * from './lib/components/form/fields/dynamic-form-field/dynamic-form-field.component';\nexport * from './lib/components/form/fields/image-cropper/image-cropper.component';\nexport * from './lib/components/form/fields/rich-text-input/rich-text-input.component';\nexport * from './lib/components/form/fields/text-input/text-input.component';\nexport * from './lib/components/form/containers/accordion-form-container/accordion-form-container.component';\nexport * from './lib/components/form/containers/plain-form-container/plain-form-container.component';\nexport * from './lib/components/form/containers/dynamic-form-container/dynamic-form-container.component';\nexport * from './lib/components/form/dynamic-form/dynamic-form.component';\nexport * from './lib/components/navigation/reroute/reroute.component';\nexport * from './lib/components/navigation/nav-tree/nav-tree.component';\nexport * from './lib/components/details/sections/grid-details-section/grid-details-section.component';\nexport * from './lib/components/details/sections/dynamic-details-section/dynamic-details-section.component';\nexport * from './lib/components/details/sections/table-details-section/table-details-section.component';\nexport * from './lib/components/details/sections/report-details-section/report-details-section.component';\nexport * from './lib/components/details/sections/roster-shift-list-details-section/roster-shift-list-details-section.component';\nexport * from './lib/components/details/sections/markdown-details-section/markdown-details-section.component';\nexport * from './lib/components/details/dialog-nested-details/dialog-nested-details.component';\nexport * from './lib/components/details/dialog-details/dialog-details.component';\nexport * from './lib/components/details/fields/file-attribute-display/file-attribute-display.component';\nexport * from './lib/components/details/fields/actions-attribute-display/actions-attribute-display.component';\nexport * from './lib/components/details/fields/icon-attribute-display/icon-attribute-display.component';\nexport * from './lib/components/details/fields/link-attribute-display/link-attribute-display.component';\nexport * from './lib/components/details/fields/dynamic-attribute-display/dynamic-attribute-display.component';\nexport * from './lib/components/details/fields/image-attribute-display/image-attribute-display.component';\nexport * from './lib/components/details/fields/markdown-attribute-display/markdown-attribute-display.component';\nexport * from './lib/components/details/fields/multiselect-display/multiselect-display.component';\nexport * from './lib/components/details/fields/rich-text-display/rich-text-display.component';\nexport * from './lib/components/details/fields/chip-attribute-display/chip-attribute-display.component';\nexport * from './lib/components/details/fields/thumbnail-display/thumbnail-display.component';\nexport * from './lib/components/details/containers/dynamic-details-container/dynamic-details-container.component';\nexport * from './lib/components/details/containers/plain-details-container/plain-details-container.component';\nexport * from './lib/components/details/containers/accordion-details-container/accordion-details-container.component';\nexport * from './lib/components/details/dynamic-details/dynamic-details.component';\nexport * from './lib/components/details/fields/report-viewer-display/report-viewer-display.component';\nexport * from './lib/components/form/fields/report-config-input/report-config-input.component';\nexport * from './lib/components/titles/page-title/page-title.component';\nexport * from './lib/components/titles/content-title/content-title.component';\nexport * from './lib/components/titles/section-title/section-title.component';\nexport * from './lib/components/dashboard/sections/dashboard-section/dashboard-section.component';\nexport * from './lib/components/dashboard/dashboard-card/dashboard-card.component';\nexport * from './lib/components/dashboard/dashboard-card-search-menu/dashboard-card-search-menu.component';\nexport * from './lib/components/dashboard/dynamic-dashboard/dynamic-dashboard.component';\nexport * from './lib/components/dashboard/containers/dynamic-dashboard-container/dynamic-dashboard-container.component';\nexport * from './lib/components/dashboard/containers/plain-dashboard-container/plain-dashboard-container.component';\nexport * from './lib/components/dashboard/widgets/dynamic-chart/dynamic-chart.component';\nexport * from './lib/components/dashboard/widgets/dashboard-table/dashboard-table.component';\nexport * from './lib/components/dashboard/widgets/dashboard-table/dashboard-table-datasource';\nexport * from './lib/components/dashboard/widgets/dashboard-info-card/dashboard-info-card.component';\nexport * from './lib/components/dashboard/widgets/dynamic-widget-display/dynamic-widget-display.component';\nexport * from './lib/components/pages/tabbed-page/tabbed-page.component';\nexport * from './lib/components/pages/dashboard-page/dashboard-page.component';\nexport * from './lib/components/pages/layout-editor-page/layout-editor-page.component';\nexport * from './lib/components/pages/list-page/list-page.component';\nexport * from './lib/components/pages/list-page/list-page-datasource';\nexport * from './lib/components/pages/documents-page/documents-page.component';\nexport * from './lib/components/pages/form-page/form-page.component';\nexport * from './lib/components/pages/detail-page/detail-page.component';\nexport * from './lib/components/pages/export-page/export-page.component';\nexport * from './lib/components/widgets/file-preview-dialog/file-preview-dialog.component';\nexport * from './lib/components/widgets/save-confirmation-dialog/save-confirmation-dialog.component';\nexport * from './lib/components/widgets/snackbar/snackbar.component';\nexport * from './lib/components/widgets/search-panel/search-panel.component';\nexport * from './lib/components/widgets/dynamic-table/dynamic-table-datasource';\nexport * from './lib/components/widgets/dynamic-table/dynamic-table.component';\nexport * from './lib/components/widgets/draggable-table/draggable-table-datasource';\nexport * from './lib/components/widgets/draggable-table/draggable-table.component';\nexport * from './lib/components/widgets/delete-confirmation-dialog/delete-confirmation-dialog.component';\nexport * from './lib/components/widgets/loader/loader.component';\nexport * from './lib/components/widgets/tooltip/tooltip.component';\nexport * from './lib/components/widgets/qr-code-dialog/qr-code-dialog.component';\nexport * from './lib/components/layout-editor/containers/accordion-layout-editor-container/accordion-layout-editor-container.component';\nexport * from './lib/components/layout-editor/containers/dynamic-layout-editor-container/dynamic-layout-editor-container.component';\nexport * from './lib/components/layout-editor/containers/plain-layout-editor-container/plain-layout-editor-container.component';\nexport * from './lib/components/layout-editor/dynamic-layout-editor/dynamic-layout-editor.component';\nexport * from './lib/components/layout-editor/elements/dynamic-layout-editor-element/dynamic-layout-editor-element.component';\nexport * from './lib/components/layout-editor/elements/layout-editor-field-element/layout-editor-field-element.component';\nexport * from './lib/components/layout-editor/elements/layout-editor-table-column-element/layout-editor-table-column-element.component';\nexport * from './lib/components/layout-editor/elements/layout-editor-widget-element/layout-editor-widget-element.component';\nexport * from './lib/components/layout-editor/sections/dashboard-layout-editor-section/dashboard-layout-editor-section.component';\nexport * from './lib/components/layout-editor/sections/dynamic-layout-editor-section/dynamic-layout-editor-section.component';\nexport * from './lib/components/layout-editor/sections/grid-layout-editor-section/grid-layout-editor-section.component';\nexport * from './lib/components/layout-editor/sections/markdown-layout-editor-section/markdown-layout-editor-section.component';\nexport * from './lib/components/layout-editor/sections/table-layout-editor-section/table-layout-editor-section.component';\nexport * from './lib/components/pages/roster-page/roster-page.component';\nexport * from './lib/models/screen-size-map.model';\nexport * from './lib/services/dynamic-form.service';\nexport * from './lib/services/web-api.service';\nexport * from './lib/services/current-user.service';\nexport * from './lib/services/chart.service';\nexport * from './lib/services/data-broadcast.service';\nexport * from './lib/services/locale.service';\nexport * from './lib/services/websocket.service';\nexport * from './lib/services/password-check.service';\nexport * from './lib/services/announcement.service';\nexport * from './lib/services/object.service';\nexport * from './lib/services/adapters/websocket.adapter';\nexport * from './lib/services/adapters/web-api-crud.adapter';\nexport * from './lib/services/feature-config.service';\nexport * from './lib/services/array.service';\nexport * from './lib/services/confirmation.service';\nexport * from './lib/services/screen-size.service';\nexport * from './lib/services/interfaces/reroute.service';\nexport * from './lib/services/interfaces/list-page.service';\nexport * from './lib/services/interfaces/dashboard-page.service';\nexport * from './lib/services/interfaces/form-page.service';\nexport * from './lib/services/interfaces/layout-editor-page.service';\nexport * from './lib/services/interfaces/nav-tabs.service';\nexport * from './lib/services/interfaces/authorisable-feature.service';\nexport * from './lib/services/interfaces/detail-page.service';\nexport * from './lib/services/interfaces/export-page.service';\nexport * from './lib/services/interfaces/dashboard-widget.service';\nexport * from './lib/services/interfaces/roster-page.service';\nexport * from './lib/services/interfaces/roster-schedule.service';\nexport * from './lib/guards/session.guard';\nexport * from './lib/guards/feature.guard';\nexport * from './lib/guards/password-check.guard';\nexport * from './lib/tokens/environment.token';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.DataBroadcastService","i3.ObjectService","i1.DataBroadcastService","i2.LocaleService","i2","i1.WebApiService","i1.ObjectService","i3","i4.ClickStopPropagationDirective","i2.WebApiService","i4","i5","i6","i7.SectionTitleComponent","i8","i9.SecureImagePipe","i6.ClickStopPropagationDirective","i5.ClickStopPropagationDirective","i4.SecureImagePipe","i1.ArrayService","i3.ActionsAttributeDisplayComponent","i4.IconAttributeDisplayComponent","i5.ChipAttributeDisplayComponent","i6.FileAttributeDisplayComponent","i7.ImageAttributeDisplayComponent","i8.MarkdownAttributeDisplayComponent","i9.MultiselectDisplayComponent","i10.RichTextDisplayComponent","i11.LinkAttributeDisplayComponent","i12.ThumbnailDisplayComponent","i13.DynamicPipe","i1.ScreenSizeService","i4.DynamicAttributeDisplayComponent","i5.TooltipComponent","i6.GridDetailsSectionComponent","i6.DynamicAttributeDisplayComponent","i2.DynamicTableComponent","i1.DynamicTableComponent","i2.ReportViewerDisplayComponent","i7","i8.DynamicAttributeDisplayComponent","i9","i1.DraggableTableComponent","i6.TooltipComponent","i7.ClickStopPropagationDirective","i8.TooltipComponent","i8.ClickStopPropagationDirective","i9.TooltipComponent","i10","i4.TooltipComponent","i11","i12.DatepickerComponent","i13.DatetimepickerComponent","i14.DropdownComponent","i15.NumberInputComponent","i16.TextInputComponent","i17.MultiselectInputComponent","i18","observableOf","i3.ChipInputComponent","i4.DatepickerComponent","i5.DatetimepickerComponent","i6.ColorPickerInputComponent","i7.DropdownComponent","i8.FilepickerComponent","i9.ImagepickerComponent","i10.NumberInputComponent","i11.PasswordInputComponent","i12.TextareaComponent","i13.TextInputComponent","i14.TimeInputComponent","i15.MarkdownInputComponent","i16.MultiselectInputComponent","i17.RichTextInputComponent","i18.ReportConfigInputComponent","i19.AutocompleteInputComponent","i5.DynamicFormFieldComponent","i6.SectionTitleComponent","i1.DynamicFormService","i3.GridFormSectionComponent","i4.LoaderComponent","i2.DynamicChartComponent","i3.DashboardInfoCardComponent","i4.DashboardTableComponent","i2.ScreenSizeService","i11.ClickStopPropagationDirective","i12.DynamicWidgetDisplayComponent","i13.DashboardCardSearchMenuComponent","i14","i5.DashboardCardComponent","i2.GridDetailsSectionComponent","i3.TableDetailsSectionComponent","i4.ReportDetailsSectionComponent","i5.RosterShiftListDetailsSectionComponent","i6.DashboardSectionComponent","i7.MarkdownDetailsSectionComponent","i4.DynamicDetailsSectionComponent","i2.SectionTitleComponent","i3.DynamicDetailsSectionComponent","i2.AccordionDetailsContainerComponent","i3.PlainDetailsContainerComponent","i2.LoaderComponent","i3.DynamicDetailsContainerComponent","i2.DynamicFormService","i7.GridFormSectionComponent","i8.SectionTitleComponent","i2.ArrayService","i5.SectionTitleComponent","i6.DynamicTableComponent","i4.SectionTitleComponent","i5.DraggableTableComponent","i4.RosterShiftListDetailsSectionComponent","i5.GridFormSectionComponent","i6.TableFormSectionComponent","i7.RosterShiftListFormSectionComponent","i8.DashboardSectionComponent","i9.MarkdownDetailsSectionComponent","i3.DynamicFormSectionComponent","i4.DynamicFormSectionComponent","i2.PlainFormContainerComponent","i3.AccordionFormContainerComponent","i3.LoaderComponent","i4.DynamicFormContainerComponent","i2.AnnouncementService","i9.DynamicFormComponent","i10.SectionTitleComponent","i2.LayoutEditorFieldElementComponent","i3.LayoutEditorTableColumnElementComponent","i4.LayoutEditorWidgetElementComponent","i3.DynamicLayoutEditorElementComponent","i3.ArrayService","i9.DynamicLayoutEditorElementComponent","i2.DashboardLayoutEditorSectionComponent","i3.GridLayoutEditorSectionComponent","i4.MarkdownLayoutEditorSectionComponent","i5.TableLayoutEditorSectionComponent","i4.DynamicLayoutEditorSectionComponent","i3.DynamicLayoutEditorSectionComponent","i2.AccordionLayoutEditorContainerComponent","i3.PlainLayoutEditorContainerComponent","i2.DynamicLayoutEditorContainerComponent","i1.LocaleService","i4.DashboardSectionComponent","i2.PlainDashboardContainerComponent","i3.DynamicDashboardContainerComponent","i3.PageTitleComponent","i4.DynamicDashboardComponent","i3.SecureImagePipe","i8.DynamicLayoutEditorComponent","i9.ContentTitleComponent","i2.ObjectService","i6.DynamicFormComponent","i3.ScreenSizeService","i14.ClickStopPropagationDirective","i15.DynamicAttributeDisplayComponent","i16.PageTitleComponent","i17.SearchPanelComponent","i3.ConfirmationService","i10.DynamicFormComponent","i11.ContentTitleComponent","i12","i9.DynamicDetailsComponent","i10.ContentTitleComponent","i3.WebApiService","i4.ScreenSizeService","i14.FileDropzoneDirective","i18.LoaderComponent","i19","i4.ObjectService","i5.ScreenSizeService","i10.PageTitleComponent","i11.DynamicChartComponent","i3.AnnouncementService","NgxImageCropperComponent","i4.ArrayService","i5.DataBroadcastService","i6.LocaleService","i7.WebApiService","i3.CurrentUserService","i4.DataBroadcastService","i5.WebApiService","i1.AnnouncementService","i2.CurrentUserService","i1.PasswordCheckService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codetectonics-mantle.mjs","sources":["../../../projects/mantle/src/lib/services/data-broadcast.service.ts","../../../projects/mantle/src/lib/services/object.service.ts","../../../projects/mantle/src/lib/services/locale.service.ts","../../../projects/mantle/src/lib/components/navigation/paginator/custom-paginator-intl.ts","../../../projects/mantle/src/lib/material.module.ts","../../../projects/mantle/src/lib/pipes/dynamic.pipe.ts","../../../projects/mantle/src/lib/tokens/environment.token.ts","../../../projects/mantle/src/lib/services/web-api.service.ts","../../../projects/mantle/src/lib/pipes/secure-image.pipe.ts","../../../projects/mantle/src/lib/directives/click-stop-propagation.directive.ts","../../../projects/mantle/src/lib/directives/file-dropzone.directive.ts","../../../projects/mantle/src/lib/components/widgets/loader/loader.component.ts","../../../projects/mantle/src/lib/components/widgets/loader/loader.component.html","../../../projects/mantle/src/lib/services/screen-size.service.ts","../../../projects/mantle/src/lib/services/array.service.ts","../../../projects/mantle/src/lib/components/details/fields/actions-attribute-display/actions-attribute-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/actions-attribute-display/actions-attribute-display.component.html","../../../projects/mantle/src/lib/components/details/fields/icon-attribute-display/icon-attribute-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/icon-attribute-display/icon-attribute-display.component.html","../../../projects/mantle/src/lib/components/details/fields/chip-attribute-display/chip-attribute-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/chip-attribute-display/chip-attribute-display.component.html","../../../projects/mantle/src/lib/components/titles/section-title/section-title.component.ts","../../../projects/mantle/src/lib/components/titles/section-title/section-title.component.html","../../../projects/mantle/src/lib/components/widgets/file-preview-dialog/file-preview-dialog.component.ts","../../../projects/mantle/src/lib/components/widgets/file-preview-dialog/file-preview-dialog.component.html","../../../projects/mantle/src/lib/components/details/fields/file-attribute-display/file-attribute-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/file-attribute-display/file-attribute-display.component.html","../../../projects/mantle/src/lib/components/details/fields/image-attribute-display/image-attribute-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/image-attribute-display/image-attribute-display.component.html","../../../projects/mantle/src/lib/components/details/fields/markdown-attribute-display/markdown-attribute-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/markdown-attribute-display/markdown-attribute-display.component.html","../../../projects/mantle/src/lib/components/details/fields/multiselect-display/multiselect-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/multiselect-display/multiselect-display.component.html","../../../projects/mantle/src/lib/components/widgets/rich-text-base/rich-text-registration.shared.ts","../../../projects/mantle/src/lib/components/widgets/rich-text-base/rich-text-base.component.ts","../../../projects/mantle/src/lib/components/details/fields/rich-text-display/rich-text-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/rich-text-display/rich-text-display.component.html","../../../projects/mantle/src/lib/components/details/fields/link-attribute-display/link-attribute-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/link-attribute-display/link-attribute-display.component.html","../../../projects/mantle/src/lib/components/details/fields/thumbnail-display/thumbnail-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/thumbnail-display/thumbnail-display.component.html","../../../projects/mantle/src/lib/components/details/fields/dynamic-attribute-display/dynamic-attribute-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/dynamic-attribute-display/dynamic-attribute-display.component.html","../../../projects/mantle/src/lib/components/widgets/tooltip/tooltip.component.ts","../../../projects/mantle/src/lib/components/widgets/tooltip/tooltip.component.html","../../../projects/mantle/src/lib/components/details/sections/grid-details-section/grid-details-section.component.ts","../../../projects/mantle/src/lib/components/details/sections/grid-details-section/grid-details-section.component.html","../../../projects/mantle/src/lib/components/details/dialog-nested-details/dialog-nested-details.component.ts","../../../projects/mantle/src/lib/components/details/dialog-nested-details/dialog-nested-details.component.html","../../../projects/mantle/src/lib/components/widgets/dynamic-table/dynamic-table-datasource.ts","../../../projects/mantle/src/lib/components/widgets/dynamic-table/dynamic-table.component.ts","../../../projects/mantle/src/lib/components/widgets/dynamic-table/dynamic-table.component.html","../../../projects/mantle/src/lib/components/details/sections/table-details-section/table-details-section.component.ts","../../../projects/mantle/src/lib/components/details/sections/table-details-section/table-details-section.component.html","../../../projects/mantle/src/lib/components/details/fields/report-viewer-display/report-viewer-display.component.ts","../../../projects/mantle/src/lib/components/details/fields/report-viewer-display/report-viewer-display.component.html","../../../projects/mantle/src/lib/components/details/sections/report-details-section/report-details-section.component.ts","../../../projects/mantle/src/lib/components/details/sections/report-details-section/report-details-section.component.html","../../../projects/mantle/src/lib/components/widgets/draggable-table/draggable-table-datasource.ts","../../../projects/mantle/src/lib/components/widgets/draggable-table/draggable-table.component.ts","../../../projects/mantle/src/lib/components/widgets/draggable-table/draggable-table.component.html","../../../projects/mantle/src/lib/components/details/sections/roster-shift-list-details-section/roster-shift-list-details-section.component.ts","../../../projects/mantle/src/lib/components/details/sections/roster-shift-list-details-section/roster-shift-list-details-section.component.html","../../../projects/mantle/src/lib/services/dynamic-form.service.ts","../../../projects/mantle/src/lib/components/form/fields/chip-input/chip-input.component.ts","../../../projects/mantle/src/lib/components/form/fields/chip-input/chip-input.component.html","../../../projects/mantle/src/lib/components/form/fields/datepicker/datepicker.component.ts","../../../projects/mantle/src/lib/components/form/fields/datepicker/datepicker.component.html","../../../projects/mantle/src/lib/components/form/fields/datetimepicker/datetimepicker.component.ts","../../../projects/mantle/src/lib/components/form/fields/datetimepicker/datetimepicker.component.html","../../../projects/mantle/src/lib/components/form/fields/colorpicker-input/colorpicker-input.component.ts","../../../projects/mantle/src/lib/components/form/fields/colorpicker-input/colorpicker-input.component.html","../../../projects/mantle/src/lib/components/form/fields/dropdown/dropdown.component.ts","../../../projects/mantle/src/lib/components/form/fields/dropdown/dropdown.component.html","../../../projects/mantle/src/lib/components/form/fields/filepicker/filepicker.component.ts","../../../projects/mantle/src/lib/components/form/fields/filepicker/filepicker.component.html","../../../projects/mantle/src/lib/components/form/fields/image-cropper/image-cropper.component.ts","../../../projects/mantle/src/lib/components/form/fields/image-cropper/image-cropper.component.html","../../../projects/mantle/src/lib/components/form/fields/imagepicker/imagepicker.component.ts","../../../projects/mantle/src/lib/components/form/fields/imagepicker/imagepicker.component.html","../../../projects/mantle/src/lib/components/form/fields/number-input/number-input.component.ts","../../../projects/mantle/src/lib/components/form/fields/number-input/number-input.component.html","../../../projects/mantle/src/lib/components/form/fields/password-input/password-input.component.ts","../../../projects/mantle/src/lib/components/form/fields/password-input/password-input.component.html","../../../projects/mantle/src/lib/components/form/fields/textarea/textarea.component.ts","../../../projects/mantle/src/lib/components/form/fields/textarea/textarea.component.html","../../../projects/mantle/src/lib/components/form/fields/text-input/text-input.component.ts","../../../projects/mantle/src/lib/components/form/fields/text-input/text-input.component.html","../../../projects/mantle/src/lib/components/form/fields/time-input/time-input.component.ts","../../../projects/mantle/src/lib/components/form/fields/time-input/time-input.component.html","../../../projects/mantle/src/lib/components/form/fields/markdown-input/markdown-input.component.ts","../../../projects/mantle/src/lib/components/form/fields/markdown-input/markdown-input.component.html","../../../projects/mantle/src/lib/components/form/fields/multiselect-input/multiselect-input.component.ts","../../../projects/mantle/src/lib/components/form/fields/multiselect-input/multiselect-input.component.html","../../../projects/mantle/src/lib/components/form/fields/rich-text-input/rich-text-input.component.ts","../../../projects/mantle/src/lib/components/form/fields/rich-text-input/rich-text-input.component.html","../../../projects/mantle/src/lib/components/form/fields/report-config-input/report-config-input.component.ts","../../../projects/mantle/src/lib/components/form/fields/report-config-input/report-config-input.component.html","../../../projects/mantle/src/lib/components/form/fields/autocomplete-input/autocomplete-input.component.ts","../../../projects/mantle/src/lib/components/form/fields/autocomplete-input/autocomplete-input.component.html","../../../projects/mantle/src/lib/components/form/fields/dynamic-form-field/dynamic-form-field.component.ts","../../../projects/mantle/src/lib/components/form/fields/dynamic-form-field/dynamic-form-field.component.html","../../../projects/mantle/src/lib/components/form/sections/grid-form-section/grid-form-section.component.ts","../../../projects/mantle/src/lib/components/form/sections/grid-form-section/grid-form-section.component.html","../../../projects/mantle/src/lib/components/dashboard/dashboard-card-search-menu/dashboard-card-search-menu.component.ts","../../../projects/mantle/src/lib/components/dashboard/dashboard-card-search-menu/dashboard-card-search-menu.component.html","../../../projects/mantle/src/lib/components/dashboard/widgets/dynamic-chart/dynamic-chart.component.ts","../../../projects/mantle/src/lib/components/dashboard/widgets/dynamic-chart/dynamic-chart.component.html","../../../projects/mantle/src/lib/components/dashboard/widgets/dashboard-info-card/dashboard-info-card.component.ts","../../../projects/mantle/src/lib/components/dashboard/widgets/dashboard-info-card/dashboard-info-card.component.html","../../../projects/mantle/src/lib/components/dashboard/widgets/dashboard-table/dashboard-table-datasource.ts","../../../projects/mantle/src/lib/components/dashboard/widgets/dashboard-table/dashboard-table.component.ts","../../../projects/mantle/src/lib/components/dashboard/widgets/dashboard-table/dashboard-table.component.html","../../../projects/mantle/src/lib/components/dashboard/widgets/dynamic-widget-display/dynamic-widget-display.component.ts","../../../projects/mantle/src/lib/components/dashboard/widgets/dynamic-widget-display/dynamic-widget-display.component.html","../../../projects/mantle/src/lib/components/dashboard/dashboard-card/dashboard-card.component.ts","../../../projects/mantle/src/lib/components/dashboard/dashboard-card/dashboard-card.component.html","../../../projects/mantle/src/lib/components/dashboard/sections/dashboard-section/dashboard-section.component.ts","../../../projects/mantle/src/lib/components/dashboard/sections/dashboard-section/dashboard-section.component.html","../../../projects/mantle/src/lib/components/details/sections/markdown-details-section/markdown-details-section.component.ts","../../../projects/mantle/src/lib/components/details/sections/markdown-details-section/markdown-details-section.component.html","../../../projects/mantle/src/lib/components/details/sections/dynamic-details-section/dynamic-details-section.component.ts","../../../projects/mantle/src/lib/components/details/sections/dynamic-details-section/dynamic-details-section.component.html","../../../projects/mantle/src/lib/components/details/containers/accordion-details-container/accordion-details-container.component.ts","../../../projects/mantle/src/lib/components/details/containers/accordion-details-container/accordion-details-container.component.html","../../../projects/mantle/src/lib/components/details/containers/plain-details-container/plain-details-container.component.ts","../../../projects/mantle/src/lib/components/details/containers/plain-details-container/plain-details-container.component.html","../../../projects/mantle/src/lib/components/details/containers/dynamic-details-container/dynamic-details-container.component.ts","../../../projects/mantle/src/lib/components/details/containers/dynamic-details-container/dynamic-details-container.component.html","../../../projects/mantle/src/lib/components/details/dynamic-details/dynamic-details.component.ts","../../../projects/mantle/src/lib/components/details/dynamic-details/dynamic-details.component.html","../../../projects/mantle/src/lib/components/form/dialog-nested-form/dialog-nested-form.component.ts","../../../projects/mantle/src/lib/components/form/dialog-nested-form/dialog-nested-form.component.html","../../../projects/mantle/src/lib/components/form/sections/table-form-section/table-form-section.component.ts","../../../projects/mantle/src/lib/components/form/sections/table-form-section/table-form-section.component.html","../../../projects/mantle/src/lib/components/form/sections/roster-shift-list-form-section/roster-shift-list-form-section.component.ts","../../../projects/mantle/src/lib/components/form/sections/roster-shift-list-form-section/roster-shift-list-form-section.component.html","../../../projects/mantle/src/lib/components/form/sections/dynamic-form-section/dynamic-form-section.component.ts","../../../projects/mantle/src/lib/components/form/sections/dynamic-form-section/dynamic-form-section.component.html","../../../projects/mantle/src/lib/components/form/containers/plain-form-container/plain-form-container.component.ts","../../../projects/mantle/src/lib/components/form/containers/plain-form-container/plain-form-container.component.html","../../../projects/mantle/src/lib/components/form/containers/accordion-form-container/accordion-form-container.component.ts","../../../projects/mantle/src/lib/components/form/containers/accordion-form-container/accordion-form-container.component.html","../../../projects/mantle/src/lib/components/form/containers/dynamic-form-container/dynamic-form-container.component.ts","../../../projects/mantle/src/lib/components/form/containers/dynamic-form-container/dynamic-form-container.component.html","../../../projects/mantle/src/lib/components/form/dynamic-form/dynamic-form.component.ts","../../../projects/mantle/src/lib/components/form/dynamic-form/dynamic-form.component.html","../../../projects/mantle/src/lib/components/widgets/snackbar/snackbar.component.ts","../../../projects/mantle/src/lib/components/widgets/snackbar/snackbar.component.html","../../../projects/mantle/src/lib/services/announcement.service.ts","../../../projects/mantle/src/lib/components/form/dialog-form/dialog-form.component.ts","../../../projects/mantle/src/lib/components/form/dialog-form/dialog-form.component.html","../../../projects/mantle/src/lib/components/layout-editor/elements/layout-editor-field-element/layout-editor-field-element.component.ts","../../../projects/mantle/src/lib/components/layout-editor/elements/layout-editor-field-element/layout-editor-field-element.component.html","../../../projects/mantle/src/lib/components/layout-editor/elements/layout-editor-table-column-element/layout-editor-table-column-element.component.ts","../../../projects/mantle/src/lib/components/layout-editor/elements/layout-editor-table-column-element/layout-editor-table-column-element.component.html","../../../projects/mantle/src/lib/components/layout-editor/elements/layout-editor-widget-element/layout-editor-widget-element.component.ts","../../../projects/mantle/src/lib/components/layout-editor/elements/layout-editor-widget-element/layout-editor-widget-element.component.html","../../../projects/mantle/src/lib/components/layout-editor/elements/dynamic-layout-editor-element/dynamic-layout-editor-element.component.ts","../../../projects/mantle/src/lib/components/layout-editor/elements/dynamic-layout-editor-element/dynamic-layout-editor-element.component.html","../../../projects/mantle/src/lib/components/layout-editor/sections/dashboard-layout-editor-section/dashboard-layout-editor-section.component.ts","../../../projects/mantle/src/lib/components/layout-editor/sections/dashboard-layout-editor-section/dashboard-layout-editor-section.component.html","../../../projects/mantle/src/lib/components/layout-editor/sections/grid-layout-editor-section/grid-layout-editor-section.component.ts","../../../projects/mantle/src/lib/components/layout-editor/sections/grid-layout-editor-section/grid-layout-editor-section.component.html","../../../projects/mantle/src/lib/components/layout-editor/sections/markdown-layout-editor-section/markdown-layout-editor-section.component.ts","../../../projects/mantle/src/lib/components/layout-editor/sections/markdown-layout-editor-section/markdown-layout-editor-section.component.html","../../../projects/mantle/src/lib/components/layout-editor/sections/table-layout-editor-section/table-layout-editor-section.component.ts","../../../projects/mantle/src/lib/components/layout-editor/sections/table-layout-editor-section/table-layout-editor-section.component.html","../../../projects/mantle/src/lib/components/layout-editor/sections/dynamic-layout-editor-section/dynamic-layout-editor-section.component.ts","../../../projects/mantle/src/lib/components/layout-editor/sections/dynamic-layout-editor-section/dynamic-layout-editor-section.component.html","../../../projects/mantle/src/lib/components/layout-editor/containers/accordion-layout-editor-container/accordion-layout-editor-container.component.ts","../../../projects/mantle/src/lib/components/layout-editor/containers/accordion-layout-editor-container/accordion-layout-editor-container.component.html","../../../projects/mantle/src/lib/components/layout-editor/containers/plain-layout-editor-container/plain-layout-editor-container.component.ts","../../../projects/mantle/src/lib/components/layout-editor/containers/plain-layout-editor-container/plain-layout-editor-container.component.html","../../../projects/mantle/src/lib/components/layout-editor/containers/dynamic-layout-editor-container/dynamic-layout-editor-container.component.ts","../../../projects/mantle/src/lib/components/layout-editor/containers/dynamic-layout-editor-container/dynamic-layout-editor-container.component.html","../../../projects/mantle/src/lib/components/layout-editor/dynamic-layout-editor/dynamic-layout-editor.component.ts","../../../projects/mantle/src/lib/components/layout-editor/dynamic-layout-editor/dynamic-layout-editor.component.html","../../../projects/mantle/src/lib/components/titles/page-title/page-title.component.ts","../../../projects/mantle/src/lib/components/titles/page-title/page-title.component.html","../../../projects/mantle/src/lib/components/dashboard/containers/plain-dashboard-container/plain-dashboard-container.component.ts","../../../projects/mantle/src/lib/components/dashboard/containers/plain-dashboard-container/plain-dashboard-container.component.html","../../../projects/mantle/src/lib/components/dashboard/containers/dynamic-dashboard-container/dynamic-dashboard-container.component.ts","../../../projects/mantle/src/lib/components/dashboard/containers/dynamic-dashboard-container/dynamic-dashboard-container.component.html","../../../projects/mantle/src/lib/components/dashboard/dynamic-dashboard/dynamic-dashboard.component.ts","../../../projects/mantle/src/lib/components/dashboard/dynamic-dashboard/dynamic-dashboard.component.html","../../../projects/mantle/src/lib/components/pages/dashboard-page/dashboard-page.component.ts","../../../projects/mantle/src/lib/components/pages/dashboard-page/dashboard-page.component.html","../../../projects/mantle/src/lib/components/titles/content-title/content-title.component.ts","../../../projects/mantle/src/lib/components/titles/content-title/content-title.component.html","../../../projects/mantle/src/lib/components/pages/layout-editor-page/layout-editor-page.component.ts","../../../projects/mantle/src/lib/components/pages/layout-editor-page/layout-editor-page.component.html","../../../projects/mantle/src/lib/services/adapters/web-api-crud.adapter.ts","../../../projects/mantle/src/lib/components/pages/list-page/list-page-datasource.ts","../../../projects/mantle/src/lib/components/widgets/search-panel/search-panel.component.ts","../../../projects/mantle/src/lib/components/widgets/search-panel/search-panel.component.html","../../../projects/mantle/src/lib/components/pages/list-page/list-page.component.ts","../../../projects/mantle/src/lib/components/pages/list-page/list-page.component.html","../../../projects/mantle/src/lib/components/widgets/delete-confirmation-dialog/delete-confirmation-dialog.component.ts","../../../projects/mantle/src/lib/components/widgets/delete-confirmation-dialog/delete-confirmation-dialog.component.html","../../../projects/mantle/src/lib/components/widgets/save-confirmation-dialog/save-confirmation-dialog.component.ts","../../../projects/mantle/src/lib/components/widgets/save-confirmation-dialog/save-confirmation-dialog.component.html","../../../projects/mantle/src/lib/services/confirmation.service.ts","../../../projects/mantle/src/lib/components/pages/form-page/form-page.component.ts","../../../projects/mantle/src/lib/components/pages/form-page/form-page.component.html","../../../projects/mantle/src/lib/components/pages/detail-page/detail-page.component.ts","../../../projects/mantle/src/lib/components/pages/detail-page/detail-page.component.html","../../../projects/mantle/src/lib/components/pages/documents-page/documents-page.component.ts","../../../projects/mantle/src/lib/components/pages/documents-page/documents-page.component.html","../../../projects/mantle/src/lib/components/pages/tabbed-page/tabbed-page.component.ts","../../../projects/mantle/src/lib/components/pages/tabbed-page/tabbed-page.component.html","../../../projects/mantle/src/lib/components/pages/roster-page/roster-gantt.data.ts","../../../projects/mantle/src/lib/components/pages/roster-page/roster-page.component.ts","../../../projects/mantle/src/lib/components/pages/roster-page/roster-page.component.html","../../../projects/mantle/src/lib/components/pages/export-page/export-page.component.ts","../../../projects/mantle/src/lib/components/pages/export-page/export-page.component.html","../../../projects/mantle/src/lib/components/navigation/nav-tree/nav-tree.component.ts","../../../projects/mantle/src/lib/components/navigation/nav-tree/nav-tree.component.html","../../../projects/mantle/src/lib/components/details/dialog-details/dialog-details.component.ts","../../../projects/mantle/src/lib/components/details/dialog-details/dialog-details.component.html","../../../projects/mantle/src/lib/components/navigation/reroute/reroute.component.ts","../../../projects/mantle/src/lib/components/widgets/qr-code-dialog/qr-code-dialog.component.ts","../../../projects/mantle/src/lib/components/widgets/qr-code-dialog/qr-code-dialog.component.html","../../../projects/mantle/src/lib/mantle.module.ts","../../../projects/mantle/src/lib/config/charts/progress-bar-chart.data.ts","../../../projects/mantle/src/lib/config/charts/gantt-chart.data.ts","../../../projects/mantle/src/lib/config/charts/pie-chart.data.ts","../../../projects/mantle/src/lib/config/charts/column-chart.data.ts","../../../projects/mantle/src/lib/config/charts/spline-chart.data.ts","../../../projects/mantle/src/lib/language-packs/en.data.ts","../../../projects/mantle/src/lib/language-packs/ms.data.ts","../../../projects/mantle/src/lib/models/screen-size-map.model.ts","../../../projects/mantle/src/lib/services/current-user.service.ts","../../../projects/mantle/src/lib/services/chart.service.ts","../../../projects/mantle/src/lib/services/websocket.service.ts","../../../projects/mantle/src/lib/services/password-check.service.ts","../../../projects/mantle/src/lib/services/feature-config.service.ts","../../../projects/mantle/src/lib/guards/session.guard.ts","../../../projects/mantle/src/lib/guards/feature.guard.ts","../../../projects/mantle/src/lib/guards/password-check.guard.ts","../../../projects/mantle/src/public-api.ts","../../../projects/mantle/src/codetectonics-mantle.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DataBroadcastService {\n\n public sessionData: BehaviorSubject<any> = new BehaviorSubject<any>({});\n public locale: BehaviorSubject<any> = new BehaviorSubject<any>({});\n\n}","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ObjectService {\n\n constructor() {}\n\n public removeEmptyAttributes(object: any = {}) {\n for (var attr in object) {\n if (object[attr] === null || object[attr] === undefined || object[attr] === '') {\n delete object[attr];\n }\n }\n }\n\n public removeAllAttributes(object: any = {}) {\n for (var attr in object) {\n delete object[attr];\n }\n }\n\n public deepMerge(...objects: any[]) {\n let result: any = {};\n objects.forEach((object: any) => {\n if (!this.isObject(result) || !this.isObject(object)) {\n result = object;\n }\n else {\n Object.entries(object).forEach(([key, value]) => {\n if (this.isObject(value)) {\n result[key] = this.deepMerge(result[key] || {}, value);\n }\n else {\n result[key] = value;\n }\n });\n }\n });\n return result;\n }\n\n public deepClone(object: any) {\n let objectService = this;\n let copyFunction: (value: any) => any = function(value: any) {\n if (objectService.isObject(value)) {\n return objectService.deepClone(value);\n }\n else if (value instanceof Array) {\n return value.map((item: any) => {\n return copyFunction(item);\n });\n }\n else {\n return value;\n }\n }\n\n let result: any = {};\n Object.entries(object).forEach(([key, value]) => {\n result[key] = copyFunction(value);\n });\n\n return result;\n }\n\n public findKeyByValue(object: any, value: any) {\n return Object.keys(object).find((currentValue: any) => {\n return value == object[currentValue];\n })\n }\n\n public isObject(objValue: any) {\n return objValue && typeof objValue === 'object' && objValue.constructor === Object;\n }\n\n public isEmpty(object: any) {\n return Object.keys(object).length == 0;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DataBroadcastService } from '../services/data-broadcast.service';\nimport { ObjectService } from '../services/object.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocaleService {\n\n private AVAILABLE_LOCALES: any = {\n 'English': 'en',\n 'Melayu': 'ms'\n };\n private DEFAULT_LOCALE: string = 'ms';\n\n constructor(private translate: TranslateService, private dataBroadcastService: DataBroadcastService,\n private objectService: ObjectService) {\n this.translate.addLangs(this.availableLocaleCodes);\n this.translate.setDefaultLang(this.DEFAULT_LOCALE);\n\n const storedLocale = localStorage.getItem('locale');\n if (storedLocale) {\n this.translate.use(storedLocale);\n }\n else {\n this.setDefaultLocale();\n }\n\n this.dataBroadcastService.locale.next(this.currentLocale);\n\n this.dataBroadcastService.locale.subscribe((locale: any) => {\n if (locale == this.currentLocale) return;\n\n if (locale) {\n if (!this.availableLocales.includes(locale)) return;\n\n localStorage.setItem('locale', this.AVAILABLE_LOCALES[locale]);\n window.location.reload();\n }\n else {\n const locale = this.setDefaultLocale();\n localStorage.setItem('locale', locale);\n this.translate.use(locale);\n }\n });\n }\n\n private setDefaultLocale(): string {\n const browserLocale = this.translate.getBrowserLang();\n let locale = this.DEFAULT_LOCALE;\n if (!!browserLocale && this.availableLocaleCodes.includes(browserLocale)) {\n locale = browserLocale;\n }\n this.translate.use(locale);\n return locale;\n }\n\n clearLocale(): void {\n this.dataBroadcastService.locale.next(undefined);\n }\n\n get availableLocales(): string[] {\n return Object.keys(this.AVAILABLE_LOCALES);\n }\n\n private get availableLocaleCodes(): string[] {\n return Object.values(this.AVAILABLE_LOCALES);\n }\n\n get currentLocale(): string {\n return this.objectService.findKeyByValue(this.AVAILABLE_LOCALES, this.translate.currentLang) || '';\n }\n\n get currentLocaleCode(): string {\n return this.translate.currentLang;\n }\n\n getTranslation(key: string): string {\n return this.translate.instant(key);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { MatPaginatorIntl } from '@angular/material/paginator';\nimport { DataBroadcastService } from '../../../services/data-broadcast.service';\nimport { LocaleService } from '../../../services/locale.service';\n\n@Injectable()\nexport class CustomPaginatorIntl extends MatPaginatorIntl {\n\n constructor(private dataBroadcastService: DataBroadcastService, private localeService: LocaleService) {\n super();\n\n this.dataBroadcastService.locale.subscribe((locale: any) => {\n this.itemsPerPageLabel = this.localeService.getTranslation('mantle.paginator.items_per_page');\n this.firstPageLabel = this.localeService.getTranslation('mantle.paginator.first_page');\n this.previousPageLabel = this.localeService.getTranslation('mantle.paginator.previous_page');\n this.nextPageLabel = this.localeService.getTranslation('mantle.paginator.next_page');\n this.lastPageLabel = this.localeService.getTranslation('mantle.paginator.last_page');\n this.changes.next();\n });\n }\n\n getRangeLabel: (page: number, pageSize: number, length: number) => string = (\n page: number,\n pageSize: number,\n length: number,\n ) => {\n length = Math.max(length, 0);\n const startIndex = (page * pageSize) + 1;\n const endIndex = startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;\n \n const ofLabel = this.localeService.getTranslation('mantle.paginator.of');\n return `${startIndex} - ${endIndex} ${ofLabel} ${length}`;\n };\n\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatChipsModule, MAT_CHIPS_DEFAULT_OPTIONS } from '@angular/material/chips';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatPaginatorModule, MatPaginatorIntl } from '@angular/material/paginator';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatMomentDateModule, MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';\nimport { MatSnackBarModule, MAT_SNACK_BAR_DEFAULT_OPTIONS } from '@angular/material/snack-bar';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MatTreeModule } from '@angular/material/tree';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { CustomPaginatorIntl } from './components/navigation/paginator/custom-paginator-intl';\nimport { MtxSelectModule } from '@ng-matero/extensions/select';\nimport { MtxColorpickerModule } from '@ng-matero/extensions/colorpicker';\nimport { MtxDatetimepickerModule } from '@ng-matero/extensions/datetimepicker';\nimport { provideMomentDatetimeAdapter } from '@ng-matero/extensions-moment-adapter';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n MatBadgeModule,\n MatButtonModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatDatepickerModule,\n MatDialogModule,\n MatExpansionModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatSelectModule,\n MatSidenavModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatProgressSpinnerModule,\n MatTableModule,\n MatPaginatorModule,\n MatSortModule,\n MatMomentDateModule,\n MatSnackBarModule,\n MatTreeModule,\n MatAutocompleteModule,\n MtxSelectModule,\n MtxColorpickerModule,\n MtxDatetimepickerModule,\n ],\n exports: [\n MatBadgeModule,\n MatButtonModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatDatepickerModule,\n MatDialogModule,\n MatExpansionModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatSelectModule,\n MatSidenavModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatProgressSpinnerModule,\n MatTableModule,\n MatPaginatorModule,\n MatSortModule,\n MatMomentDateModule,\n MatSnackBarModule,\n MatTreeModule,\n MatAutocompleteModule,\n MtxSelectModule,\n MtxColorpickerModule,\n MtxDatetimepickerModule,\n ],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]\n },\n provideMomentDatetimeAdapter({\n parse: {\n dateInput: ['YYYY-MM-DD', 'DD/MM/YYYY'],\n monthInput: 'MMMM',\n yearInput: 'YYYY',\n timeInput: ['HH:mm'],\n datetimeInput: ['YYYY-MM-DD HH:mm', 'DD/MM/YYYY HH:mm'],\n },\n display: {\n dateInput: 'DD/MM/YYYY',\n monthInput: 'MMMM',\n yearInput: 'YYYY',\n timeInput: 'HH:mm',\n datetimeInput: 'DD/MM/YYYY HH:mm',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n popupHeaderDateLabel: 'MMM DD, ddd',\n },\n }),\n { provide: MAT_SNACK_BAR_DEFAULT_OPTIONS, useValue: { duration: 3000, horizontalPosition: 'right' } },\n { provide: MAT_CHIPS_DEFAULT_OPTIONS, useValue: { separatorKeyCodes: [ENTER, COMMA] } },\n { provide: MatPaginatorIntl, useClass: CustomPaginatorIntl },\n ]\n})\nexport class MaterialModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\nimport moment from 'moment';\n\n@Pipe({\n name: 'dynamicPipe',\n standalone: false\n})\nexport class DynamicPipe implements PipeTransform {\n\n constructor() {}\n\n transform(value: string, modifier: string): string {\n switch (modifier) {\n case 'currency': return this.transformCurrency(value); break;\n case 'date': return this.transformDate(value); break;\n case 'datetime': return this.transformDateTime(value); break;\n default: return this.transformString(value);\n }\n }\n\n transformString(value: string): string {\n return value;\n }\n\n transformCurrency(value: string): string {\n return parseFloat(value).toFixed(2);\n }\n\n transformDate(value: string): string {\n if (!value) return '';\n return moment(value, 'YYYY-MM-DD').format('DD/MM/YYYY');\n }\n\n transformDateTime(value: string): string {\n if (!value) return '';\n return moment(value, 'YYYY-MM-DD HH:mm').format('DD/MM/YYYY @ HH:mm');\n }\n\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const ENVIRONMENT = new InjectionToken<any>('environment');\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { DirectUpload } from \"@rails/activestorage\";\nimport { AngularTokenService } from '@citizenobserver/angular-token';\nimport { map } from 'rxjs/operators';\nimport { ENVIRONMENT } from '../tokens/environment.token';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WebApiService {\n\n private apiUrl: string;\n\n constructor(@Inject(ENVIRONMENT) protected environment: any, protected http: HttpClient,\n protected angularTokenService: AngularTokenService) {\n this.apiUrl = this.environment.API_URL;\n }\n\n public get(path: string, params: any = {}, headers: any = {}) {\n const endpoint = this.absoluteUrl(path);\n return this.http.get(endpoint, { params: params, headers: this.prepareHeaders(headers) });\n }\n\n public create(path: string, params: any = {}, headers: any = {}) {\n const endpoint = this.absoluteUrl(path);\n return this.http.post(endpoint, params, { headers: this.prepareHeaders(headers) });\n }\n\n public update(path: string, params: any = {}, headers: any = {}) {\n const endpoint = this.absoluteUrl(path);\n return this.http.put(endpoint, params, { headers: this.prepareHeaders(headers) });\n }\n\n public destroy(path: string, params: any = {}, headers: any = {}) {\n const endpoint = this.absoluteUrl(path);\n return this.http.delete(endpoint, { params: params, headers: this.prepareHeaders(headers) });\n }\n\n public getBlob(path: string, params: any = {}, headers: any = {}) {\n const endpoint = this.absoluteUrl(path);\n return this.http.get(endpoint, { params: params, headers: this.prepareHeaders(headers), responseType: 'blob' });\n }\n\n public download(path: string, filename: string, params: any = {}, headers: any = {}) {\n return this.getBlob(path, params, headers).pipe(\n map(res => {\n const a = document.createElement('a');\n a.href = URL.createObjectURL(res);\n a.download = filename;\n a.click();\n })\n );\n }\n\n public upload(file: File, onSuccess: (res: any) => void, onFailure: (error: string) => void) {\n const endpoint = this.absoluteUrl('rails/active_storage/direct_uploads');\n const upload = new DirectUpload(file, endpoint, {\n directUploadWillCreateBlobWithXHR: (xhr: any) => {\n // Add credentials to upload request\n let currentAuthData = this.angularTokenService.currentAuthData;\n if (currentAuthData) {\n xhr.setRequestHeader('access-token', currentAuthData.accessToken);\n xhr.setRequestHeader('token-type', currentAuthData.tokenType);\n xhr.setRequestHeader('client', currentAuthData.client);\n xhr.setRequestHeader('expiry', currentAuthData.expiry);\n xhr.setRequestHeader('uid', currentAuthData.uid);\n\n xhr.addEventListener('loadend', (event: any) => {\n localStorage.setItem('accessToken', xhr.getResponseHeader('access-token'));\n localStorage.setItem('client', xhr.getResponseHeader('client'));\n localStorage.setItem('expiry', xhr.getResponseHeader('expiry'));\n localStorage.setItem('tokenType', xhr.getResponseHeader('token-type'));\n localStorage.setItem('uid', xhr.getResponseHeader('uid'));\n\n this.angularTokenService.getAuthDataFromStorage();\n });\n }\n }\n })\n\n upload.create((error: any, res: any) => {\n if (error) {\n if (onFailure) onFailure(error);\n } else {\n if (onSuccess) onSuccess(res);\n }\n });\n }\n\n public absoluteUrl(url: string): string {\n if (url.startsWith('http')) return url;\n\n return `${this.apiUrl}/${url}`;\n }\n\n protected prepareHeaders(headers: any = {}) {\n return headers;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Observable, Subscriber } from 'rxjs';\nimport { WebApiService } from '../services/web-api.service';\n\n@Pipe({\n name: 'secureImage',\n standalone: false\n})\nexport class SecureImagePipe implements PipeTransform {\n\n constructor(private webApiService: WebApiService) { }\n\n transform(src: string): Observable<string> {\n return Observable.create((observer: Subscriber<string>): void => {\n const responseHandler = (result: string = 'assets/fallback.png') => {\n observer.next(result);\n observer.complete();\n }\n\n this.webApiService.getBlob(src).subscribe(\n (response: any) => {\n const reader = new FileReader();\n reader.onloadend = () => responseHandler(reader.result as string);\n reader.onerror = () => responseHandler();\n reader.readAsDataURL(response);\n },\n (response: any) => {\n responseHandler();\n }\n );\n });\n }\n\n}\n","import {Directive, HostListener} from \"@angular/core\";\n\n@Directive({\n selector: \"[click-stop-propagation]\",\n standalone: false\n})\nexport class ClickStopPropagationDirective\n{\n @HostListener(\"click\", [\"$event\"])\n public onClick(event: any): void\n {\n event.stopPropagation();\n }\n}\n","import { Directive, Output, EventEmitter, HostBinding, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[file-dropzone]',\n standalone: false\n})\nexport class FileDropzoneDirective {\n @HostBinding('class.file-dropzone') fileDropzone: boolean = true;\n @HostBinding('class.fileover') fileOver: boolean = false;\n @Output() fileDropped = new EventEmitter<any>();\n\n @HostListener('dragover', ['$event'])\n public onDragOver(event: any) {\n event.preventDefault();\n event.stopPropagation();\n this.fileOver = true;\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(event: any) {\n event.preventDefault();\n event.stopPropagation();\n this.fileOver = false;\n }\n\n @HostListener('drop', ['$event'])\n public ondrop(event: any) {\n event.preventDefault();\n event.stopPropagation();\n this.fileOver = false;\n\n let files = event.dataTransfer.files;\n if (files.length > 0) this.fileDropped.emit(files);\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'mantle-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss'],\n standalone: false,\n\tinputs: ['delay'],\n\thost: { '[style.animation-delay.ms]': 'delay' }\n})\nexport class LoaderComponent {\n\n\tpublic delay: number = 1000;\n\n}\n","<mat-spinner class=\"indicator\" color=\"accent\" [strokeWidth]=\"4\" [diameter]=\"200\"></mat-spinner>\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { BreakpointObserver, Breakpoints, BreakpointState } from '@angular/cdk/layout';\nimport { Subject, BehaviorSubject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ScreenSizeService implements OnDestroy {\n\n private screenSizes: any = {\n xs: Breakpoints.XSmall,\n sm: Breakpoints.Small,\n md: Breakpoints.Medium,\n lg: Breakpoints.Large,\n xl: Breakpoints.XLarge,\n };\n\n public screenSize: BehaviorSubject<any> = new BehaviorSubject<any>({});\n private destroyed = new Subject<void>();\n\n constructor(private breakpointObserver: BreakpointObserver) {\n this.breakpointObserver.observe(\n Object.values(this.screenSizes)\n ).pipe(takeUntil(this.destroyed)).subscribe((breakpointState: BreakpointState) => {\n let currentScreenSize = 'default';\n for (const [key, value] of Object.entries(this.screenSizes)) {\n if (breakpointState.breakpoints[value as string]) currentScreenSize = key;\n }\n\n this.screenSize.next(currentScreenSize);\n });\n }\n\n ngOnDestroy() {\n this.destroyed.next();\n this.destroyed.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ObjectService } from './object.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ArrayService {\n\n constructor(private objectService: ObjectService) {}\n\n public removeItem(array: any[], item: any): any[] {\n let index = array.indexOf(item);\n array.splice(index, 1);\n return array;\n }\n\n public replaceItem(array: any[], item: any, newItem: any): any[] {\n let index = array.indexOf(item);\n array[index] = newItem;\n return array;\n }\n\n public removeById(array: any[], id: string): any[] {\n return this.removeByAttribute(array, 'id', id);\n }\n\n public replaceById(array: any[], id: string, newItem: any): any[] {\n return this.replaceByAttribute(array, 'id', id, newItem);\n }\n\n public removeByAttribute(array: any[], attr: string, val: any): any[] {\n for (let i = array.length - 1; i >= 0; i--) {\n if (array[i][attr] == val) array.splice(i, 1);\n }\n return array;\n }\n\n public replaceByAttribute(array: any[], attr: string, val: any, newItem: any): any[] {\n for (let i = array.length - 1; i >= 0; i--) {\n if (array[i][attr] == val) array[i] = newItem;\n }\n return array;\n }\n\n public findByAttribute(array: any[], attr: string, val: any): any {\n for (let i = 0; i < array.length; i++) {\n let item = array[i];\n if (item[attr] == val) return item;\n }\n return null;\n }\n\n public hasItemWithAttributes(array: any[], criteria: any = {}): boolean {\n return array.some((item: any) => {\n return Object.keys(criteria).every((key: string) => {\n return item[key] && criteria[key] && item[key] === criteria[key];\n })\n });\n }\n\n public hasItem(array: any[], val: any): boolean {\n return array.some((item: any) => {\n return item == val;\n });\n }\n\n public sortAscendingByAttribute(array: any[], attr: string): any[] {\n return array.sort((a, b) => a[attr] > b[attr] ? 1 : -1);\n }\n\n public sortDescendingByAttribute(array: any[], attr: string): any[] {\n return array.sort((a, b) => a[attr] < b[attr] ? 1 : -1);\n }\n\n public maxValueForAttribute(array: any[], attr: string): any {\n if (array.length == 0) return null;\n return this.sortDescendingByAttribute([...array], attr)[0][attr];\n }\n\n public deepClone(array: any[]) {\n return this.objectService.deepClone({ array: array }).array;\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mantle-actions-attribute-display',\n templateUrl: './actions-attribute-display.component.html',\n styleUrls: ['./actions-attribute-display.component.scss'],\n standalone: false\n})\nexport class ActionsAttributeDisplayComponent {\n\n @Input() value: any = {};\n @Input() actions: any[] = [];\n\n}\n","<ng-container *ngFor=\"let action of actions\">\n <button mat-icon-button\n *ngIf=\"action.show\"\n click-stop-propagation\n [color]=\"action.colour\"\n type=\"button\"\n (click)=\"action.onClick(value)\">\n <mat-icon>{{ action.icon }}</mat-icon>\n </button>\n</ng-container>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mantle-icon-attribute-display',\n templateUrl: './icon-attribute-display.component.html',\n styleUrls: ['./icon-attribute-display.component.scss'],\n standalone: false\n})\nexport class IconAttributeDisplayComponent {\n\n @Input() value: any = {};\n\n}\n","<mat-icon *ngIf=\"value\">{{ value }}</mat-icon>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mantle-chip-attribute-display',\n templateUrl: './chip-attribute-display.component.html',\n styleUrls: ['./chip-attribute-display.component.scss'],\n standalone: false\n})\nexport class ChipAttributeDisplayComponent {\n\n @Input() value: any = '';\n @Input() options: any = {};\n\n get chips() {\n if (!this.value) return [];\n\n return this.value.split(',').map((rawChip: string) => {\n return rawChip.trim();\n })\n }\n\n get valueSpecificClass(): string {\n if (!this.options) return '';\n if (!this.options.colours) return '';\n return this.options.colours[this.value] || '';\n }\n\n}\n","<mat-chip-set>\n <mat-chip *ngFor=\"let chip of chips\" [ngClass]=\"valueSpecificClass\" selected>{{ chip }}</mat-chip>\n</mat-chip-set>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mantle-section-title',\n templateUrl: './section-title.component.html',\n styleUrls: ['./section-title.component.scss'],\n standalone: false\n})\nexport class SectionTitleComponent {\n\n @Input() title!: string;\n\n constructor() { }\n\n}\n","<h2 class=\"section-title\">\n {{ title | translate }}\n</h2>\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\nimport { FileAttachment } from '../../../data-structures/file-attachment.structure';\nimport { WebApiService } from '../../../services/web-api.service';\n\n@Component({\n selector: 'mantle-file-preview-dialog',\n templateUrl: './file-preview-dialog.component.html',\n styleUrls: ['./file-preview-dialog.component.scss'],\n standalone: false\n})\nexport class FilePreviewDialogComponent {\n\n private filename: string;\n private downloadUrl: string;\n public previewUrl: string;\n\n constructor(private dialogRef: MatDialogRef<FilePreviewDialogComponent>,\n @Inject(MAT_DIALOG_DATA) private params: FileAttachment,\n private webApiService: WebApiService) {\n this.filename = this.params.filename;\n this.downloadUrl = this.params.source_url;\n this.previewUrl = this.params.preview_url;\n }\n\n onDownload(): void {\n this.webApiService.download(this.downloadUrl, this.filename).subscribe();\n }\n\n onCancel(): void {\n this.dialogRef.close();\n }\n\n}\n","<div mat-dialog-title fxLayout=\"row\" fxLayoutAlign=\"start\" fxLayoutGap=\"8px\" class=\"dialog-title-section\">\n <mantle-section-title fxFlex=\"1 0 1px\" title=\"Preview\"></mantle-section-title>\n <button fxFlex=\"0 0 auto\" mat-icon-button tabindex=\"-1\" (click)=\"onCancel()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content class=\"content-section\">\n\n <img *ngIf=\"previewUrl\" class=\"preview-image\" [attr.src]=\"previewUrl | secureImage | async\" />\n\n <h2 Adding *ngIf=\"!previewUrl\">{{ 'mantle.file_preview.unable_to_preview_file' | translate }}</h2>\n\n</mat-dialog-content>\n\n<mat-dialog-actions fxLayout=\"row\" class=\"actions-section\">\n <div fxFlex=\"1 1 auto\"></div>\n <button fxFlex=\"0 0 auto\" mat-button (click)=\"onDownload()\">{{ 'mantle.buttons.download' | translate }}</button>\n</mat-dialog-actions>\n","import { Component, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from \"@angular/material/dialog\";\nimport { FilePreviewDialogComponent } from '../../../../components/widgets/file-preview-dialog/file-preview-dialog.component';\nimport { FileAttachment } from '../../../../data-structures/file-attachment.structure';\n\n@Component({\n selector: 'mantle-file-attribute-display',\n templateUrl: './file-attribute-display.component.html',\n styleUrls: ['./file-attribute-display.component.scss'],\n standalone: false\n})\nexport class FileAttributeDisplayComponent {\n\n @Input() value: FileAttachment | undefined;\n\n constructor(private dialog: MatDialog) { }\n\n openPreviewDialog() {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = this.value;\n dialogConfig.minWidth = '400px';\n dialogConfig.maxWidth = '80%';\n dialogConfig.autoFocus = false;\n\n this.dialog.open(FilePreviewDialogComponent, dialogConfig);\n }\n\n isString(val: any): boolean { return (typeof val === 'string') && (val.length > 0); }\n\n}\n","<div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <div fxFlex=\"0 1 auto\" class=\"attachment-field\">{{ value?.filename }}</div>\n <div fxFlex=\"1 1 auto\" class=\"attachment-button\">\n <button *ngIf=\"value?.source_url\"\n mat-mini-fab\n color=\"primary\"\n class=\"preview-button\"\n click-stop-propagation\n (click)=\"openPreviewDialog()\">\n <mat-icon>attach_file</mat-icon>\n </button>\n <mat-icon class=\"unsaved-upload-indicator\" *ngIf=\"isString(value)\">attach_file</mat-icon>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from \"@angular/material/dialog\";\nimport { FilePreviewDialogComponent } from '../../../../components/widgets/file-preview-dialog/file-preview-dialog.component';\nimport { FileAttachment } from '../../../../data-structures/file-attachment.structure';\n\n@Component({\n selector: 'mantle-image-attribute-display',\n templateUrl: './image-attribute-display.component.html',\n styleUrls: ['./image-attribute-display.component.scss'],\n standalone: false\n})\nexport class ImageAttributeDisplayComponent {\n\n @Input() value: FileAttachment | undefined;\n\n constructor(private dialog: MatDialog) { }\n\n openPreviewDialog() {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = this.value;\n dialogConfig.maxWidth = '80%';\n dialogConfig.autoFocus = false;\n\n this.dialog.open(FilePreviewDialogComponent, dialogConfig);\n }\n\n isString(val: any): boolean { return (typeof val === 'string') && (val.length > 0); }\n\n}\n","<div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <div fxFlex=\"0 1 auto\" class=\"attachment-field\">{{ value?.filename }}</div>\n <div fxFlex=\"1 1 auto\" class=\"attachment-button\">\n <button *ngIf=\"value?.source_url\"\n mat-mini-fab\n color=\"primary\"\n class=\"preview-button\"\n click-stop-propagation\n (click)=\"openPreviewDialog()\">\n <mat-icon>image</mat-icon>\n </button>\n </div>\n <mat-icon class=\"unsaved-upload-indicator\" *ngIf=\"isString(value)\">image</mat-icon>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mantle-markdown-attribute-display',\n templateUrl: './markdown-attribute-display.component.html',\n styleUrls: ['./markdown-attribute-display.component.scss'],\n standalone: false\n})\nexport class MarkdownAttributeDisplayComponent {\n\n @Input() value: any = '';\n\n}\n","<markdown ngPreserveWhitespaces class=\"markdown-wrapper\">\n {{ value }}\n</markdown>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mantle-multiselect-display',\n templateUrl: './multiselect-display.component.html',\n styleUrls: ['./multiselect-display.component.scss'],\n standalone: false,\n})\nexport class MultiselectDisplayComponent {\n\n @Input() value: any = '';\n @Input() options: any = {};\n\n get chips() {\n if (!this.value) return [];\n\n return this.value.split(',').map((rawChip: string) => {\n return rawChip.trim();\n })\n }\n\n get valueSpecificClass(): string {\n if (!this.options) return '';\n if (!this.options.colours) return '';\n return this.options.colours[this.value] || '';\n }\n\n}\n","<mat-chip-set>\n <mat-chip *ngFor=\"let chip of chips\" [ngClass]=\"valueSpecificClass\" selected>{{ chip }}</mat-chip>\n</mat-chip-set>\n","import Quill from 'quill';\nimport Link from 'quill/formats/link';\nimport Clipboard from 'quill/modules/clipboard';\nimport { Delta, Range } from 'quill';\nimport { Mention, MentionBlot } from 'quill-mention';\nimport QuillTableBetter from 'quill-table-better';\n\nexport class RichTextLink extends Link {\n static sanitize(url: string): string {\n if (!url) return this.SANITIZED_URL;\n const protocol = url.slice(0, url.indexOf(':'));\n return this.PROTOCOL_WHITELIST.includes(protocol)\n ? url\n : 'http://' + url;\n }\n}\n\nexport class RichTextMentionBlot extends MentionBlot {\n static render(data: any): HTMLElement {\n const element = document.createElement('span');\n element.innerText = `{{${data.value}}}`;\n return element;\n }\n}\n\nexport class RichTextClipboard extends Clipboard {\n onPaste(range: Range, { text }: { text?: string }) {\n const formats = this.quill.getFormat(range.index);\n const pastedDelta = this.convert({ text }, formats);\n\n const delta = new Delta()\n .retain(range.index)\n .delete(range.length)\n .concat(pastedDelta);\n\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.setSelection(delta.length() - range.length, Quill.sources.SILENT);\n this.quill.scrollSelectionIntoView();\n }\n}\n\nQuill.register(\n {\n 'blots/mention': RichTextMentionBlot,\n 'modules/mention': Mention,\n 'formats/link': RichTextLink,\n 'modules/clipboard': RichTextClipboard,\n 'modules/table-better': QuillTableBetter,\n },\n true\n);\n\nexport { QuillTableBetter };\n","import Quill from 'quill';\nimport { QuillTableBetter } from './rich-text-registration.shared';\n\nexport abstract class RichTextBaseComponent {\n\n protected buildModules(options?: { mentionSource?: (searchTerm: string, renderList: any) => void; }) {\n return {\n clipboard: { matchVisual: false },\n table: false,\n toolbar: [\n [{ header: ['1', '2', '3', false] }],\n ['bold', 'italic', 'underline', 'strike'],\n ['link', 'code', 'blockquote'],\n [{ list: 'ordered' }, { list: 'bullet' }],\n [{ 'indent': '-1'}, { 'indent': '+1' }], \n ['table-better'],\n [{ align: [] }],\n ['clean'],\n ],\n 'table-better': {\n language: 'en_US',\n menus: ['column', 'row', 'merge', 'table', 'cell', 'wrap', 'copy', 'delete'],\n toolbarTable: true,\n },\n keyboard: {\n bindings: QuillTableBetter.keyboardBindings,\n },\n mention: {\n allowedChars: /^[A-Za-z_]*$/,\n mentionDenotationChars: ['#'],\n positioningStrategy: 'fixed',\n source: options?.mentionSource ?? (() => {}),\n },\n };\n };\n\n protected loadHtmlIntoEditor(quill: Quill, html: string) {\n const delta = quill.clipboard.convert({ html });\n const [range] = quill.selection.getRange();\n\n quill.updateContents(delta, Quill.sources.USER);\n\n quill.setSelection(\n delta.length() - (range?.length || 0),\n Quill.sources.SILENT\n );\n\n quill.scrollSelectionIntoView();\n }\n}\n","import { Component, Input } from '@angular/core';\nimport Quill from 'quill';\nimport { RichTextBaseComponent } from '../../../widgets/rich-text-base/rich-text-base.component';\nimport '../../../widgets/rich-text-base/rich-text-registration.shared';\n\n@Component({\n selector: 'mantle-rich-text-display',\n templateUrl: './rich-text-display.component.html',\n styleUrls: ['./rich-text-display.component.scss'],\n standalone: false\n})\nexport class RichTextDisplayComponent extends RichTextBaseComponent {\n\n @Input() value: any = '';\n\n public quillModules = this.buildModules();\n\n onEditorCreated(quill: Quill) {\n this.loadHtmlIntoEditor(quill, this.value);\n quill.enable(false);\n }\n\n}\n","<div class=\"rich-text-display-wrapper\">\n <quill-editor class=\"quill-editor\"\n theme=\"snow\"\n placeholder=\"\"\n [modules]=\"quillModules\"\n [bounds]=\"'self'\"\n (onEditorCreated)=\"onEditorCreated($event)\">\n </quill-editor>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'mantle-link-attribute-display',\n templateUrl: './link-attribute-display.component.html',\n styleUrls: ['./link-attribute-display.component.scss'],\n standalone: false\n})\nexport class LinkAttributeDisplayComponent {\n\n @Input() value: string = '';\n\n constructor(private router: Router) { }\n\n openLink() {\n this.router.navigateByUrl(this.value);\n }\n\n}\n","<a *ngIf=\"value\"\n [href]=\"value\"\n mat-mini-fab\n color=\"primary\"\n class=\"link-button\"\n click-stop-propagation>\n <mat-icon>link</mat-icon>\n</a>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mantle-thumbnail-display',\n templateUrl: './thumbnail-display.component.html',\n styleUrls: ['./thumbnail-display.component.scss'],\n standalone: false\n})\nexport class ThumbnailDisplayComponent {\n\n @Input() value: string = '';\n\n @Input() size: string = '40px';\n @Input() placeholder: string = '';\n @Input() circular: boolean = false;\n\n constructor() { }\n\n}\n","<div class=\"thumbnail-wrapper\" [ngStyle]=\"{ width: size, height: size }\">\n <img *ngIf=\"value\" [attr.src]=\"value | secureImage | async\" [class.circular]=\"circular\" />\n <mat-icon *ngIf=\"!value && placeholder\" [style.font-size]=\"size\">{{ placeholder }}</mat-icon>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { ArrayService } from '../../../../services/array.service';\nimport type { DynamicFormField } from '../../../../services/dynamic-form.service';\nimport type { DynamicTableColumn } from '../../../../data-structures/dynamic-layout.structure';\n\n@Component({\n selector: 'mantle-dynamic-attribute-display',\n templateUrl: './dynamic-attribute-display.component.html',\n styleUrls: ['./dynamic-attribute-display.component.scss'],\n standalone: false\n})\nexport class DynamicAttributeDisplayComponent {\n\n @Input() value: any = '';\n @Input() field?: DynamicFormField | DynamicTableColumn;\n @Input() fieldType: string = '';\n @Input() options: any = {};\n\n constructor(private arrayService: ArrayService) { }\n\n dropdownValueLabel(value: string): string {\n if (this.field == null) return value;\n\n let option = this.arrayService.findByAttribute(this.field.options['values'], 'value', value);\n return option?.label;\n }\n\n}\n","<ng-container [ngSwitch]=\"field?.type || fieldType\">\n\n <ng-container *ngSwitchCase=\"'chips'\">\n <mantle-chip-attribute-display [value]=\"value\" [options]=\"options\">\n </mantle-chip-attribute-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'chips-lg'\">\n <mantle-chip-attribute-display [value]=\"value\" [options]=\"options\">\n </mantle-chip-attribute-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'file'\">\n <mantle-file-attribute-display [value]=\"value\">\n </mantle-file-attribute-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'image'\">\n <mantle-image-attribute-display [value]=\"value\">\n </mantle-image-attribute-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'link'\">\n <mantle-link-attribute-display [value]=\"value\">\n </mantle-link-attribute-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'thumbnail'\">\n <mantle-thumbnail-display [value]=\"value\"\n [size]=\"options.size\" [placeholder]=\"options.placeholder\" [circular]=\"options.circular\">\n </mantle-thumbnail-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'dropdown'\">\n {{ dropdownValueLabel(value) | dynamicPipe: fieldType }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'dropdown-md'\">\n {{ dropdownValueLabel(value) | dynamicPipe: fieldType }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'dropdown-lg'\">\n {{ dropdownValueLabel(value) | dynamicPipe: fieldType }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'multiselect'\">\n <mantle-multiselect-display [value]=\"value\" [options]=\"options\">\n </mantle-multiselect-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'multiselect-md'\">\n <mantle-multiselect-display [value]=\"value\" [options]=\"options\">\n </mantle-multiselect-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'multiselect-lg'\">\n <mantle-multiselect-display [value]=\"value\" [options]=\"options\">\n </mantle-multiselect-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'markdown'\">\n <mantle-markdown-attribute-display [value]=\"value\">\n </mantle-markdown-attribute-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'rich-text'\">\n <mantle-rich-text-display [value]=\"value\">\n </mantle-rich-text-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'actions'\">\n <mantle-actions-attribute-display [actions]=\"field?.options?.actions!\" [value]=\"value\">\n </mantle-actions-attribute-display>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'icon'\">\n <mantle-icon-attribute-display [value]=\"value\">\n </mantle-icon-attribute-display>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n {{ value | dynamicPipe: fieldType }}\n </ng-container>\n\n</ng-container>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mantle-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrl: './tooltip.component.scss',\n standalone: false\n})\nexport class TooltipComponent {\n @Input() message!: string;\n}\n","<button mat-icon-button\n class=\"mantle-tooltip\"\n disabled\n disabledInteractive\n disableRipple\n [matTooltip]=\"message\"\n matTooltipPosition=\"right\">\n <mat-icon>help</mat-icon>\n</button>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutGridSection } from '../../../../data-structures/dynamic-layout.structure';\nimport { DynamicFormField } from '../../../../services/dynamic-form.service';\nimport { ScreenSizeService } from '../../../../services/screen-size.service';\n\n@Component({\n selector: 'mantle-grid-details-section',\n templateUrl: './grid-details-section.component.html',\n styleUrls: ['./grid-details-section.component.scss'],\n standalone: false\n})\nexport class GridDetailsSectionComponent {\n\n @Input() data: any = {};\n @Input() section!: DynamicLayoutGridSection;\n @Input() defaultRowHeight: string = '76px';\n\n public numColumns: number = 1;\n\n private breakpointColumns = new Map([\n ['xs', 1],\n ['sm', 2],\n ['md', 2],\n ['lg', 3],\n ['xl', 4],\n ]);\n\n constructor(private screenSizeService: ScreenSizeService) {\n this.screenSizeService.screenSize.subscribe((screenSize: any) => {\n if (this.section?.singleColumn) {\n this.numColumns = 1;\n return;\n }\n\n this.numColumns = this.breakpointColumns.get(screenSize) || 1;\n });\n }\n\n getColSpanForField(attribute: DynamicFormField): number {\n if (this.numColumns == 1) return 1;\n else if (['text', 'markdown', 'rich-text', 'report-viewer'].includes(attribute.type)) return this.numColumns;\n else if (attribute.type.endsWith('-lg')) return this.numColumns;\n else if (attribute.type.endsWith('-md')) return 2;\n else return 1;\n }\n\n getRowSpanForField(attribute: DynamicFormField): number {\n if (attribute.type == 'text') return 2;\n else if (attribute.type == 'markdown') return 4;\n else if (attribute.type == 'rich-text') return 4;\n else if (attribute.type == 'report-viewer') return 8;\n else return 1;\n }\n\n}\n","<div class=\"grid-details-layout\">\n <mat-grid-list\n [rowHeight]=\"section.rowHeight || defaultRowHeight\"\n [cols]=\"section.singleColumn ? 1 : numColumns\"\n [class.multi-column]=\"section.singleColumn ? false : numColumns > 1\">\n\n <ng-container *ngFor=\"let field of section.elements\">\n <mat-grid-tile *ngIf=\"!field.hidden\" [colspan]=\"section.singleColumn ? 1 : getColSpanForField(field)\" [rowspan]=\"getRowSpanForField(field)\">\n <div class=\"value-area\">\n <div class=\"attribute-label\" [class.with-tooltip]=\"field.tooltip\">\n {{ field.label }}\n <mantle-tooltip *ngIf=\"field.tooltip\" [message]=\"field.tooltip\"></mantle-tooltip>\n </div>\n <div class=\"attribute-value\">\n <mantle-dynamic-attribute-display [fieldType]=\"field.type\" [value]=\"data[field.attr]\" [field]=\"field\"></mantle-dynamic-attribute-display>\n </div>\n </div>\n </mat-grid-tile>\n </ng-container>\n\n </mat-grid-list>\n</div>\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\nimport { DynamicLayoutGridSection } from '../../../data-structures/dynamic-layout.structure';\n\nexport interface DialogNestedDetailsParams {\n title: string;\n section: DynamicLayoutGridSection;\n data: any;\n showEditButton: boolean;\n}\n\n@Component({\n selector: 'mantle-dialog-nested-details',\n templateUrl: './dialog-nested-details.component.html',\n styleUrls: ['./dialog-nested-details.component.scss'],\n standalone: false\n})\nexport class DialogNestedDetailsComponent {\n\n public title: string;\n public section: DynamicLayoutGridSection;\n public data: any;\n public showEditButton: boolean;\n\n constructor(private dialogRef: MatDialogRef<DialogNestedDetailsComponent>,\n @Inject(MAT_DIALOG_DATA) private dialogNestedDetailsParams: DialogNestedDetailsParams) {\n this.title = this.dialogNestedDetailsParams.title;\n this.section = this.dialogNestedDetailsParams.section;\n this.data = this.dialogNestedDetailsParams.data;\n this.showEditButton = this.dialogNestedDetailsParams.showEditButton;\n }\n\n onEdit() {\n this.dialogRef.close({ edit: true });\n }\n\n onClose() {\n this.dialogRef.close();\n }\n\n}\n","<div mat-dialog-title fxLayout=\"row\" fxLayoutAlign=\"start\" fxLayoutGap=\"8px\" class=\"dialog-title-section\">\n <mantle-section-title fxFlex=\"1 0 1px\" [title]=\"title\"></mantle-section-title>\n <button fxFlex=\"0 0 auto\" mat-icon-button tabindex=\"-1\" (click)=\"onClose()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n\n <mantle-grid-details-section\n [section]=\"section\"\n [data]=\"data\">>\n </mantle-grid-details-section>\n\n</mat-dialog-content>\n\n<mat-dialog-actions *ngIf=\"showEditButton\" fxLayout=\"row\" class=\"actions-section\">\n <div fxFlex=\"1 1 auto\"></div>\n <button fxFlex=\"0 0 auto\" mat-button color=\"primary\" (click)=\"onEdit()\">{{ 'mantle.buttons.edit' | translate }}</button>\n</mat-dialog-actions>\n","import { DataSource } from '@angular/cdk/collections';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { BehaviorSubject, Observable, merge } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ArrayService } from '../../../services/array.service';\nimport { DynamicTableColumn } from '../../../data-structures/dynamic-layout.structure';\n\n/**\n * Data source for the List Page view. This class should\n * encapsulate all logic for fetching and manipulating the displayed data\n * (including sorting, pagination, and searching).\n */\nexport class DynamicTableDataSource extends DataSource<any> {\n paginator: MatPaginator | undefined;\n sort: MatSort | undefined;\n columns: DynamicTableColumn[] = [];\n listSubject: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\n\n constructor(private arrayService: ArrayService) {\n super();\n }\n\n /**\n * Connect this data source to the table. The table will only update when\n * the returned stream emits new items.\n * @returns A stream of the items to be rendered.\n */\n connect(): Observable<any[]> {\n if (this.paginator && this.sort) {\n // Combine everything that affects the rendered data into one update\n // stream for the data-table to consume.\n return merge(this.listSubject.asObservable(), this.paginator.page, this.sort.sortChange).pipe(\n map(() => {\n return this.getPagedData(this.getSortedData([...this.listSubject.value ]))\n .filter(item => { return !item._destroy });\n })\n );\n } else {\n throw Error('Please set the paginator and sort on the data source before connecting.');\n }\n }\n\n /**\n * Called when the table is being destroyed. Use this function, to clean up\n * any open connections or free any held resources that were set up during connect.\n */\n disconnect(): void {}\n\n /**\n * Paginate the data (client-side). If you're using server-side pagination,\n * this would be replaced by requesting the appropriate data from the server.\n */\n private getPagedData(data: any[]): any[] {\n if (this.paginator) {\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n return data.splice(startIndex, this.paginator.pageSize);\n } else {\n return data;\n }\n }\n\n /**\n * Sort the data (client-side). If you're using server-side sorting,\n * this would be replaced by requesting the appropriate data from the server.\n */\n private getSortedData(data: any[]): any[] {\n if (!this.sort) return data;\n\n if (!this.sort.active || !this.sort.direction) {\n this.sort.active = 'id';\n this.sort.direction = 'asc';\n }\n\n const sortAttr = this.sort.active;\n const isAsc = this.sort.direction === 'asc';\n const column = this.arrayService.findByAttribute(this.columns, 'attr', sortAttr);\n\n data.forEach((item: any) => {\n switch(column?.type) {\n case 'autocomplete':\n case 'dropdown':\n let selectedOption = this.arrayService.findByAttribute(column.options.values, 'value', item[sortAttr]);\n item['_sort'] = selectedOption?.label || item[sortAttr];\n break;\n default:\n item['_sort'] = item[sortAttr];\n }\n });\n\n return data.sort((a, b) => {\n return compare(a['_sort'], b['_sort'], isAsc);\n });\n }\n}\n\n/** Simple sort comparator for example ID/Name columns (for client-side sorting). */\nfunction compare(a: string | number, b: string | number, isAsc: boolean): number {\n if (a == b) return 0;\n else return (a < b ? -1 : 1) * (isAsc ? 1 : -1);\n}\n","import { Component, AfterViewInit, OnChanges, Input, Output, EventEmitter, ViewChild } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTable } from '@angular/material/table';\nimport { ArrayService } from '../../../services/array.service';\nimport { DynamicTableColumn } from '../../../data-structures/dynamic-layout.structure';\nimport { DynamicTableDataSource } from './dynamic-table-datasource';\n\n@Component({\n selector: 'mantle-dynamic-table',\n templateUrl: './dynamic-table.component.html',\n styleUrls: ['./dynamic-table.component.scss'],\n standalone: false\n})\nexport class DynamicTableComponent implements AfterViewInit, OnChanges {\n\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n @ViewChild(MatSort) sort!: MatSort;\n @ViewChild(MatTable) table!: MatTable<any>;\n\n @Input() columns!: DynamicTableColumn[];\n @Input() items!: any[];\n @Input() withClickableRows!: boolean;\n @Output() rowClicked = new EventEmitter<any>();\n\n private dataSource: DynamicTableDataSource;\n\n constructor(private arrayService: ArrayService) {\n this.dataSource = new DynamicTableDataSource(this.arrayService);\n }\n\n ngAfterViewInit(): void {\n this.dataSource.sort = this.sort;\n this.dataSource.paginator = this.paginator;\n this.dataSource.columns = this.columns;\n this.table.dataSource = this.dataSource;\n }\n\n ngOnChanges(): void {\n this.dataSource.listSubject.next(this.items);\n }\n\n listColumnAttrs(): string[] {\n return this.columns.filter(column => { return !column.hidden; })\n .map(column => { return column.attr; });\n }\n\n onRowClicked(row: any): void {\n if (!this.withClickableRows) return;\n\n this.rowClicked.emit(row);\n }\n\n}\n","<div class=\"horizontal-scroll-table\">\n <table mat-table class=\"full-width\" matSort>\n\n <ng-container *ngFor=\"let column of columns\">\n <ng-container *ngIf=\"!column.hidden\">\n <ng-container matColumnDef=\"{{ column.attr }}\" *ngIf=\"column.type != 'actions'\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ column.header }}</th>\n <td mat-cell *matCellDef=\"let row\">\n <mantle-dynamic-attribute-display [fieldType]=\"column.type\" [value]=\"row[column.attr]\" [field]=\"column\"></mantle-dynamic-attribute-display>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"{{ column.attr }}\" *ngIf=\"column.type == 'actions'\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header [disabled]=\"true\">{{ column.header }}</th>\n <td mat-cell *matCellDef=\"let row\" class=\"actions-column\">\n <mantle-dynamic-attribute-display [fieldType]=\"column.type\" [value]=\"row\" [field]=\"column\"></mantle-dynamic-attribute-display>\n </td>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"listColumnAttrs()\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: listColumnAttrs();\"\n (click)=\"onRowClicked(row)\"\n [class.clickable-row]=\"withClickableRows\">\n </tr>\n\n </table>\n</div>\n\n<mat-paginator #paginator\n [length]=\"items.length\"\n [pageIndex]=\"0\"\n [pageSize]=\"10\"\n [pageSizeOptions]=\"[5, 10, 20]\">\n</mat-paginator>\n","import { Component, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from \"@angular/material/dialog\";\nimport { DynamicLayoutTableSection } from '../../../../data-structures/dynamic-layout.structure';\nimport { DialogNestedDetailsComponent } from '../../../../components/details/dialog-nested-details/dialog-nested-details.component';\nimport { DetailPageService } from '../../../../services/interfaces/detail-page.service';\n\n@Component({\n selector: 'mantle-table-details-section',\n templateUrl: './table-details-section.component.html',\n styleUrls: ['./table-details-section.component.scss'],\n standalone: false\n})\nexport class TableDetailsSectionComponent {\n\n @Input() data!: any;\n @Input() section!: DynamicLayoutTableSection;\n @Input() detailPageService!: DetailPageService;\n\n constructor(private dialog: MatDialog) { }\n\n openDetailsDialog(record: any): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n title: 'Item',\n section: this.section.config.modal_section,\n data: record,\n showEditButton: false\n };\n dialogConfig.width = '80%';\n\n if (this.section.config.modal_section) {\n dialogConfig.data.section = this.detailPageService.detailDialogLayoutChanges(this.section.config.modal_section, record);\n }\n\n this.dialog.open(DialogNestedDetailsComponent, dialogConfig);\n }\n\n}\n","<div class=\"table-section-content\">\n <mantle-dynamic-table\n [columns]=\"section.elements\"\n [items]=\"data[section.config.attr]\"\n [withClickableRows]=\"true\"\n (rowClicked)=\"openDetailsDialog($event)\">\n </mantle-dynamic-table>\n</div>\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { DynamicTableColumn } from '../../../../data-structures/dynamic-layout.structure';\n\n@Component({\n selector: 'mantle-report-viewer-display',\n templateUrl: './report-viewer-display.component.html',\n styleUrls: ['./report-viewer-display.component.scss'],\n standalone: false\n})\nexport class ReportViewerDisplayComponent implements OnChanges {\n\n @Input() value: any = '';\n\n public columns: DynamicTableColumn[] = [];\n public items: any[] = [];\n\n ngOnChanges(changes: SimpleChanges) {\n this.columns = [];\n this.items = [];\n\n let values = changes.value.currentValue.generated_report || [];\n if (values.length == 0) return;\n\n let headers = Object.keys(values[0]);\n this.columns = headers.map((header: string) => {\n return {\n header: header,\n attr: header,\n type: 'string',\n options: {}\n }\n });\n\n this.items = values;\n }\n\n}\n","<mantle-dynamic-table [columns]=\"columns\"\n [items]=\"items\"\n [withClickableRows]=\"false\">\n</mantle-dynamic-table>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutReportSection } from '../../../../data-structures/dynamic-layout.structure';\n\n@Component({\n selector: 'mantle-report-details-section',\n templateUrl: './report-details-section.component.html',\n styleUrls: ['./report-details-section.component.scss'],\n standalone: false\n})\nexport class ReportDetailsSectionComponent {\n\n @Input() data!: any;\n @Input() section!: DynamicLayoutReportSection;\n\n}\n","<div class=\"table-section-content\">\n <ng-container *ngFor=\"let field of section.elements\">\n <ng-container [ngSwitch]=\"field.type\">\n <ng-container *ngSwitchCase=\"'report-viewer'\">\n <mantle-report-viewer-display [value]=\"data\">\n </mantle-report-viewer-display>\n </ng-container>\n </ng-container>\n </ng-container>\n</div>\n","import { DataSource } from '@angular/cdk/collections';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/**\n * Data source for the List Page view. This class should\n * encapsulate all logic for fetching and manipulating the displayed data\n * (including sorting, pagination, and searching).\n */\nexport class DraggableTableDataSource extends DataSource<any> {\n columns: string[] = [];\n listSubject: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\n\n constructor() {\n super();\n }\n\n /**\n * Connect this data source to the table. The table will only update when\n * the returned stream emits new items.\n * @returns A stream of the items to be rendered.\n */\n connect(): Observable<any[]> {\n return this.listSubject.pipe(\n map(() => {\n return this.listSubject.value.filter(item => { return !item._destroy });\n })\n );\n }\n\n /**\n * Called when the table is being destroyed. Use this function, to clean up\n * any open connections or free any held resources that were set up during connect.\n */\n disconnect(): void {}\n}\n","import { Component, Input, ViewChild, OnChanges } from '@angular/core';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { MatTable } from '@angular/material/table';\nimport { ArrayService } from '../../../services/array.service';\nimport { DraggableTableDataSource } from './draggable-table-datasource';\nimport { DynamicTableColumn } from '../../../data-structures/dynamic-layout.structure';\n\n@Component({\n selector: 'mantle-draggable-table',\n templateUrl: './draggable-table.component.html',\n styleUrls: ['./draggable-table.component.scss'],\n standalone: false\n})\nexport class DraggableTableComponent implements OnChanges {\n\n @ViewChild(MatTable) table!: MatTable<any>;\n\n @Input() columns!: DynamicTableColumn[];\n @Input() items!: any[];\n @Input() sortAttr!: string;\n @Input() writable!: boolean;\n\n public dataSource: DraggableTableDataSource;\n\n constructor(private arrayService: ArrayService) {\n this.dataSource = new DraggableTableDataSource();\n }\n\n ngOnChanges(): void {\n this.dataSource.columns = this.listColumnAttrs();\n this.dataSource.listSubject.next(this.items);\n }\n\n listColumnAttrs(): string[] {\n let columnAttrs = this.columns.map(column => { return column.attr; });\n if (this.writable) columnAttrs.unshift('drag');\n if (this.writable) columnAttrs.push('delete');\n return columnAttrs;\n }\n\n onDropped(event: CdkDragDrop<string>) {\n const previousIndex = this.items.findIndex(item => item === event.item.data);\n moveItemInArray(this.items, previousIndex, event.currentIndex);\n this.refreshOrdinals();\n this.dataSource.listSubject.next(this.items);\n }\n\n onDeleteClicked(row: any) {\n if (row.id) {\n row._destroy = 1;\n }\n else {\n this.arrayService.removeItem(this.items, row);\n }\n\n this.refreshOrdinals();\n this.dataSource.listSubject.next(this.items);\n }\n\n refreshOrdinals() {\n let currentOrdinal = 1;\n this.items.forEach((item: any) => {\n if (item._destroy) return;\n\n item[this.sortAttr] = currentOrdinal;\n currentOrdinal += 1;\n });\n }\n\n}\n","<mat-table\n #table\n [ngClass]=\"{ 'draggable-table-details': !writable, 'draggable-table-form': writable }\"\n [dataSource]=\"dataSource\"\n cdkDropList\n (cdkDropListDropped)=\"onDropped($event)\"\n cdkDropListData=\"items\"\n [cdkDropListDisabled]=\"!writable\"\n [cdkDropListSortingDisabled]=\"!writable\">\n\n <!-- Drag Column -->\n <ng-container matColumnDef=\"drag\" *ngIf=\"writable\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-icon class=\"drag-cursor\" (mousedown)=\"true;\">\n drag_indicator\n </mat-icon>\n </td>\n </ng-container>\n\n <ng-container *ngFor=\"let column of columns\">\n <ng-container matColumnDef=\"{{ column.attr }}\">\n <th mat-header-cell *matHeaderCellDef>{{ column.header | translate }}</th>\n <td mat-cell *matCellDef=\"let row\">\n <mantle-dynamic-attribute-display [fieldType]=\"column.type\" [value]=\"row[column.attr]\" [field]=\"column\"></mantle-dynamic-attribute-display>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container matColumnDef=\"delete\" *ngIf=\"writable\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let row\">\n <button mat-icon-button (click)=\"onDeleteClicked(row)\">\n <mat-icon>\n delete\n </mat-icon>\n </button>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"dataSource.columns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: dataSource.columns;\"\n cdkDrag\n [cdkDragData]=\"row\">\n </tr>\n</mat-table>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutRosterShiftListSection } from '../../../../data-structures/dynamic-layout.structure';\n\n@Component({\n selector: 'mantle-roster-shift-list-details-section',\n templateUrl: './roster-shift-list-details-section.component.html',\n styleUrls: ['./roster-shift-list-details-section.component.scss'],\n standalone: false\n})\nexport class RosterShiftListDetailsSectionComponent {\n\n @Input() data!: any;\n @Input() section!: DynamicLayoutRosterShiftListSection;\n\n constructor() { }\n\n}\n","<div class=\"roster-shift-list-content\">\n <mantle-draggable-table\n [columns]=\"section.elements\"\n [items]=\"data[section.config.attr]\"\n [sortAttr]=\"section.options.ordinal\"\n [writable]=\"false\">\n </mantle-draggable-table>\n</div>\n","import { Injectable } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\n\nexport class DynamicFormField {\n label: string;\n tooltip?: string;\n attr: string;\n type: string;\n options: any;\n default?: string;\n required!: boolean;\n disabled!: boolean;\n hidden!: boolean;\n\n constructor(options: {\n label: string;\n tooltip?: string;\n attr: string;\n type: string;\n options?: any;\n default?: string;\n required?: boolean;\n disabled?: boolean;\n hidden?: boolean;\n }) {\n this.label = options.label;\n this.tooltip = options.tooltip || '';\n this.attr = options.attr;\n this.type = options.type;\n this.options = options.options || {};\n this.default = options.default;\n this.required = !!options.required;\n this.disabled = !!options.disabled;\n this.hidden = !!options.hidden;\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DynamicFormService {\n\n constructor() { }\n\n toFormGroup(data: any = {}, formGroup: FormGroup = new FormGroup({})): FormGroup {\n Object.keys(data).forEach(attr => {\n let formControl = new FormControl(data[attr] ?? undefined);\n formGroup.addControl(attr, formControl);\n });\n\n return formGroup;\n }\n\n generateFormInitData(fields: DynamicFormField[]): any[] {\n return fields.reduce((result: any, field: DynamicFormField) => {\n result[field.attr] = field.default;\n return result;\n }, {});\n }\n\n transformFormValue(formValue: any) {\n formValue = {...formValue};\n Object.keys(formValue).forEach((key: string) => {\n if (Array.isArray(formValue[key])) {\n formValue[key] = formValue[key].map((nestedFormValue: any) => {\n return this.transformFormValue(nestedFormValue);\n });\n }\n else if (formValue[key] && formValue[key].hasOwnProperty('signed_id')) {\n formValue[key] = formValue[key].signed_id;\n }\n\n if (key.startsWith('dynamic_attributes.')) {\n formValue['dynamic_attributes'] ||= {};\n formValue['dynamic_attributes'][key] = formValue[key];\n delete formValue[key];\n }\n });\n return formValue;\n }\n}\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatChipInputEvent } from '@angular/material/chips';\n\nexport interface Chip {\n name: string;\n}\n\n@Component({\n selector: 'mantle-chip-input',\n templateUrl: './chip-input.component.html',\n styleUrls: ['./chip-input.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ChipInputComponent),\n multi: true\n }\n ]\n})\nexport class ChipInputComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public removable: boolean = true;\n\n private value: any = null;\n public chips: Chip[] = [];\n\n constructor() { }\n\n onChange = (newValue: string) => { };\n registerOnChange(fn: (newValue: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n writeValue(newValue: any): void {\n this.value = newValue;\n this.setChipsFromValue();\n this.onChange(newValue);\n }\n\n add(event: MatChipInputEvent): void {\n const value = (event.value || '').trim();\n\n if (value) {\n this.chips.push({name: value});\n }\n\n this.setValueFromChips();\n this.onChange(this.value);\n\n event.input.value = '';\n }\n\n remove(chip: Chip): void {\n const index = this.chips.indexOf(chip);\n\n if (index >= 0) {\n this.chips.splice(index, 1);\n }\n\n this.setValueFromChips();\n this.onChange(this.value);\n }\n\n setValueFromChips() {\n this.value = this.chips.map(\n (chip: Chip) => {\n return chip.name.trim();\n }\n ).join(',');\n }\n\n setChipsFromValue() {\n if (!this.value || !this.value.trim()) return;\n\n this.chips = this.value.split(',').map(\n (chipName: string) => {\n return { name: chipName.trim() };\n }\n );\n }\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <mat-chip-grid #chipGrid [disabled]=\"disable\">\n <mat-chip-row *ngFor=\"let chip of chips\"\n color=\"accent\" selected\n [removable]=\"removable\"\n (removed)=\"remove(chip)\">\n {{ chip.name }}\n <button matChipRemove *ngIf=\"removable\">\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n\n <input [matChipInputFor]=\"chipGrid\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"add($event)\"\n autocomplete=\"off\">\n </mat-chip-grid>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Moment } from 'moment';\nimport moment from 'moment';\n\n@Component({\n selector: 'mantle-datepicker',\n templateUrl: './datepicker.component.html',\n styleUrls: ['./datepicker.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatepickerComponent),\n multi: true\n }\n ]\n})\nexport class DatepickerComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public selectedDate: Moment | null = null;\n\n private modelFormat: string = 'YYYY-MM-DD';\n private displayFormat: string = 'DD/MM/YYYY';\n private parseFormats: string[] = [this.modelFormat, this.displayFormat];\n\n onChange = (newDate: string) => { };\n registerOnChange(fn: (newDate: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n get modelValue(): string {\n if (!this.selectedDate) return '';\n if (this.selectedDate.isValid()) return this.selectedDate.format(this.modelFormat);\n return 'Invalid date';\n }\n\n writeValue(newValue: any): void {\n if (typeof newValue == 'string') {\n newValue = moment(newValue, this.parseFormats).format(this.displayFormat);\n }\n this.onDateEntered(newValue)\n }\n\n onDateSelected(newValue: any) {\n if (newValue) newValue = newValue.format(this.displayFormat);\n this.onDateEntered(newValue)\n }\n\n onDateEntered(newValue: any): void {\n if (newValue && newValue.type == 'change') newValue = newValue.target.value;\n\n this.selectedDate = this.getMoment(newValue);\n\n var value = this.modelValue;\n this.onChange(value);\n\n if (value == 'Invalid date') {\n setTimeout(() => {\n this.onDateEntered(null);\n }, 0);\n }\n }\n\n getMoment(value: string | Moment): Moment | null {\n if (!value) return null;\n\n if (typeof value == 'string') {\n value = moment(value, this.parseFormats);\n }\n\n return value;\n }\n\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <input matInput\n [mtxDatetimepicker]=\"picker\"\n [(ngModel)]=\"selectedDate\"\n (change)=\"onDateEntered($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n (dateChange)=\"onDateSelected($event.value)\"\n autocomplete=\"off\">\n <mtx-datetimepicker #picker type=\"date\"></mtx-datetimepicker>\n <mtx-datetimepicker-toggle matSuffix [for]=\"picker\" tabindex=\"-1\"></mtx-datetimepicker-toggle>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Moment } from 'moment';\nimport moment from 'moment';\n\n@Component({\n selector: 'mantle-datetimepicker',\n templateUrl: './datetimepicker.component.html',\n styleUrls: ['./datetimepicker.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatetimepickerComponent),\n multi: true\n }\n ]\n})\nexport class DatetimepickerComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public selectedDateTime: Moment | null = null;\n\n private modelFormat: string = 'YYYY-MM-DD HH:mm';\n private displayFormat: string = 'DD/MM/YYYY HH:mm';\n private parseFormats: string[] = [this.modelFormat, this.displayFormat];\n\n onChange = (newDate: string) => { };\n registerOnChange(fn: (newDate: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n get modelValue(): string {\n if (!this.selectedDateTime) return '';\n if (this.selectedDateTime.isValid()) return this.selectedDateTime.format(this.modelFormat);\n return 'Invalid date time';\n }\n\n writeValue(newValue: any): void {\n if (typeof newValue == 'string') {\n newValue = moment(newValue, this.parseFormats).format(this.displayFormat);\n }\n this.onDateTimeEntered(newValue)\n }\n\n onDateTimeSelected(newValue: any) {\n if (newValue) newValue = newValue.format(this.displayFormat);\n this.onDateTimeEntered(newValue)\n }\n\n onDateTimeEntered(newValue: any): void {\n if (newValue && newValue.type == 'change') newValue = newValue.target.value;\n\n this.selectedDateTime = this.getMoment(newValue);\n\n var value = this.modelValue;\n this.onChange(value);\n\n if (value == 'Invalid date time') {\n setTimeout(() => {\n this.onDateTimeEntered(null);\n }, 0);\n }\n }\n\n getMoment(value: string | Moment): Moment | null {\n if (!value) return null;\n\n if (typeof value == 'string') {\n value = moment(value, this.parseFormats);\n }\n\n return value;\n }\n\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <input matInput\n [mtxDatetimepicker]=\"picker\"\n [(ngModel)]=\"selectedDateTime\"\n (change)=\"onDateTimeEntered($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n (dateChange)=\"onDateTimeSelected($event.value)\"\n autocomplete=\"off\">\n <mtx-datetimepicker #picker type=\"datetime\"></mtx-datetimepicker>\n <mtx-datetimepicker-toggle matSuffix [for]=\"picker\" tabindex=\"-1\"></mtx-datetimepicker-toggle>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'mantle-colorpicker-input',\n templateUrl: './colorpicker-input.component.html',\n styleUrls: ['./colorpicker-input.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorPickerInputComponent),\n multi: true\n }\n ]\n})\nexport class ColorPickerInputComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public value: any = null;\n\n constructor() { }\n\n onChange = (newValue: string) => { };\n registerOnChange(fn: (newValue: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n writeValue(newValue: any): void {\n this.value = newValue;\n this.onChange(newValue);\n }\n\n onValueChanged(event: any): void {\n this.onChange(this.value);\n }\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <input matInput\n [mtxColorpicker]=\"picker\"\n [(ngModel)]=\"value\"\n (colorChange)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n format=\"hex\"\n autocomplete=\"off\" />\n <mtx-colorpicker-toggle matSuffix [for]=\"picker\" tabindex=\"-1\"></mtx-colorpicker-toggle>\n <mtx-colorpicker #picker></mtx-colorpicker>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, Input, forwardRef, Output, EventEmitter } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'mantle-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DropdownComponent),\n multi: true\n }\n ]\n})\nexport class DropdownComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() options!: { values: { label: string, value: string, hidden: boolean }[] };\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n\n @Output() change = new EventEmitter<any>();\n\n public value: any = null;\n public dropdownValues: { label: string, value: string }[] = [];\n\n constructor() { }\n\n onChange = (newValue: string) => { };\n registerOnChange(fn: (newValue: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n ngOnChanges(changes: any): void {\n this.filterDropdownValues();\n }\n\n writeValue(newValue: any): void {\n this.value = newValue;\n if (this.value !== null && this.value !== undefined) {\n this.value = String(this.value);\n }\n this.onChange(this.value);\n\n this.filterDropdownValues();\n }\n\n onValueChanged(event: any): void {\n this.onChange(this.value);\n this.change.emit(this.value);\n }\n\n filterDropdownValues() {\n this.dropdownValues = this.options.values.filter((item) => {\n if (item.value == this.value) return true;\n return !item.hidden;\n });\n }\n\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <mtx-select\n [(ngModel)]=\"value\"\n (change)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n [matTooltip]=\"(tooltip! | translate)\"\n appendTo=\"body\">\n <mtx-option value=\"\"></mtx-option>\n <mtx-option *ngFor=\"let option of dropdownValues\" [value]=\"option.value\">\n {{option.label}}\n </mtx-option>\n </mtx-select>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, Input, forwardRef, ViewChild, ElementRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FileAttachment } from '../../../../data-structures/file-attachment.structure';\nimport { WebApiService } from '../../../../services/web-api.service';\n\n@Component({\n selector: 'mantle-filepicker',\n templateUrl: './filepicker.component.html',\n styleUrls: ['./filepicker.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FilepickerComponent),\n multi: true\n }\n ]\n})\nexport class FilepickerComponent implements ControlValueAccessor {\n\n @ViewChild('fileInput') fileInput!: ElementRef;\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public previousAttachment: FileAttachment | undefined;\n public currentAttachment: FileAttachment | undefined;\n public uploadInProgress!: boolean;\n\n constructor(private webApiService: WebApiService) { }\n\n onChange = (newValue: FileAttachment | undefined) => { };\n registerOnChange(fn: (newValue: FileAttachment | undefined) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n writeValue(newValue: FileAttachment): void {\n this.currentAttachment = this.previousAttachment = newValue;\n this.onChange(newValue);\n }\n\n onFileSelected(event: any) {\n if (!event.target.files || !event.target.files[0]) return;\n\n const file = event.target.files[0];\n\n this.uploadInProgress = true;\n\n this.webApiService.upload(file,\n (response: any) => {\n this.currentAttachment = {\n filename: file.name,\n source_url: '',\n preview_url: '',\n signed_id: response.signed_id\n }\n this.onChange(this.currentAttachment);\n this.uploadInProgress = false;\n },\n (response: any) => {\n this.reset();\n this.error = 'Unable to upload file';\n this.uploadInProgress = false;\n }\n );\n }\n\n clearAttachment() {\n if (this.fileInput) this.fileInput.nativeElement.value = '';\n this.currentAttachment = {\n filename: '',\n source_url: '',\n preview_url: '',\n signed_id: null\n }\n this.onChange(this.currentAttachment);\n }\n\n reset() {\n if (this.fileInput) this.fileInput.nativeElement.value = '';\n this.currentAttachment = this.previousAttachment;\n this.onChange(undefined);\n }\n\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <input matInput\n type=\"text\"\n [attr.value]=\"currentAttachment?.filename\"\n (click)=\"fileInput.click()\"\n [required]=\"required\"\n [disabled]=\"disable\"\n autocomplete=\"off\">\n\n <button *ngIf=\"currentAttachment?.filename\" mat-icon-button matSuffix tabindex=\"-1\" (click)=\"clearAttachment()\" [disabled]=\"disable\" click-stop-propagation class=\"clear-button\">\n <mat-icon>close</mat-icon>\n </button>\n\n <button *ngIf=\"!uploadInProgress\" mat-icon-button matSuffix tabindex=\"-1\" (click)=\"fileInput.click()\" [disabled]=\"disable\">\n <mat-icon>attach_file</mat-icon>\n </button>\n\n <button *ngIf=\"uploadInProgress\" mat-icon-button matSuffix tabindex=\"-1\" disabled>\n <mat-spinner matSuffix [diameter]=\"20\"></mat-spinner>\n </button>\n\n <input #fileInput\n type=\"file\"\n hidden\n (change)=\"onFileSelected($event)\">\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, Inject } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ImageCroppedEvent } from 'ngx-image-cropper';\n\nexport interface ImageCropperParams {\n imageChangedEvent: any;\n maintainAspectRatio?: boolean;\n aspectRatio?: number;\n resizeToWidth?: number;\n format?: string;\n}\n\n@Component({\n selector: 'mantle-image-cropper',\n templateUrl: './image-cropper.component.html',\n styleUrls: ['./image-cropper.component.scss'],\n standalone: false\n})\nexport class ImageCropperComponent {\n\n public imageChangedEvent: any;\n public maintainAspectRatio: boolean = true;\n public aspectRatio: number = 1;\n public resizeToWidth: number = 100;\n public format: string = 'png';\n public croppedImage: any = '';\n public croppedImageBlob: Blob | null = null;\n\n constructor(private sanitizer: DomSanitizer, private dialogRef: MatDialogRef<ImageCropperComponent>,\n @Inject(MAT_DIALOG_DATA) private data: ImageCropperParams) {\n this.imageChangedEvent = this.data.imageChangedEvent;\n this.maintainAspectRatio = this.data.maintainAspectRatio || this.maintainAspectRatio;\n this.aspectRatio = this.data.aspectRatio || this.aspectRatio;\n this.resizeToWidth = this.data.resizeToWidth || this.resizeToWidth;\n this.format = this.data.format || this.format;\n }\n\n imageCropped(event: ImageCroppedEvent) {\n this.croppedImage = this.sanitizer.bypassSecurityTrustUrl(event.objectUrl || '');\n this.croppedImageBlob = event.blob || null;\n }\n\n loadImageFailed() {\n this.dialogRef.close();\n }\n\n onCropComplete() {\n this.dialogRef.close(this.croppedImageBlob);\n }\n\n onCancel() {\n this.dialogRef.close();\n }\n\n}\n","<div mat-dialog-title fxLayout=\"row\" fxLayoutAlign=\"start\" fxLayoutGap=\"8px\" class=\"dialog-title-section\">\n <h2 fxFlex=\"1 1 auto\" class=\"section-title\">{{ 'mantle.image_cropper.crop_image' | translate }}</h2>\n <button fxFlex=\"0 0 auto\" mat-icon-button tabindex=\"-1\" (click)=\"onCancel()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n<mat-dialog-content>\n <div class=\"cropper-wrapper\" fxLayout=\"row\" fxLayoutAlign=\"start\" fxLayoutGap=\"32px\">\n <div fxFlex=\"1 0 1px\">\n <h5>{{ 'mantle.image_cropper.original' | translate }}</h5>\n </div>\n <div fxFlex=\"0 0 100px\">\n <h5>{{ 'mantle.image_cropper.preview' | translate }}</h5>\n </div>\n </div>\n\n <div class=\"cropper-wrapper\" fxLayout=\"row\" fxLayoutAlign=\"start\" fxLayoutGap=\"32px\">\n\n <image-cropper\n [imageChangedEvent]=\"imageChangedEvent\"\n [maintainAspectRatio]=\"maintainAspectRatio\"\n [aspectRatio]=\"aspectRatio\"\n [resizeToWidth]=\"resizeToWidth\"\n format=\"png\"\n (imageCropped)=\"imageCropped($event)\"\n (loadImageFailed)=\"loadImageFailed()\">\n </image-cropper>\n\n <div fxFlex=\"0 0 100px\" class=\"preview-section\">\n <img [src]=\"croppedImage\" />\n </div>\n </div>\n</mat-dialog-content>\n<mat-dialog-actions fxLayout=\"row\" fxLayoutAlign=\"end\" class=\"actions-section\">\n <button fxFlex=\"0 0 auto\" mat-button (click)=\"onCropComplete()\">{{ 'mantle.buttons.save' | translate }}</button>\n</mat-dialog-actions>\n","import { Component, ElementRef, forwardRef, Input, OnChanges, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { FileAttachment } from '../../../../data-structures/file-attachment.structure';\nimport { ImageCropperComponent } from '../../../../components/form/fields/image-cropper/image-cropper.component';\nimport { WebApiService } from '../../../../services/web-api.service';\n\nexport interface ImageCropperOptions {\n maintainAspectRatio?: boolean,\n aspectRatio?: number,\n resizeToWidth?: number,\n uploadFormat?: string }\n\n@Component({\n selector: 'mantle-imagepicker',\n templateUrl: './imagepicker.component.html',\n styleUrls: ['./imagepicker.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ImagepickerComponent),\n multi: true\n }\n ]\n})\nexport class ImagepickerComponent implements ControlValueAccessor, OnChanges {\n\n @ViewChild('fileInput') fileInput!: ElementRef;\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() options!: ImageCropperOptions;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n private defaultCropperConfig: ImageCropperOptions = {\n maintainAspectRatio: true,\n aspectRatio: 1,\n resizeToWidth: 256,\n uploadFormat: 'png'\n }\n public cropperConfig: ImageCropperOptions = this.defaultCropperConfig;\n\n public previousAttachment: FileAttachment | undefined;\n public currentAttachment: FileAttachment | undefined;\n public uploadInProgress!: boolean;\n\n constructor(private dialog: MatDialog, private webApiService: WebApiService) { }\n\n onChange = (newValue: FileAttachment | undefined) => { };\n registerOnChange(fn: (newValue: FileAttachment | undefined) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n ngOnChanges(): void {\n this.cropperConfig = { ...this.defaultCropperConfig, ...this.options };\n }\n\n writeValue(newValue: FileAttachment): void {\n this.currentAttachment = this.previousAttachment = newValue;\n this.onChange(newValue);\n }\n\n onFileSelected(event: any) {\n if (!event.target.files || !event.target.files[0]) return;\n\n const file = event.target.files[0];\n\n const dialogRef = this.dialog.open(ImageCropperComponent, {\n data: {\n imageChangedEvent: event,\n maintainAspectRatio: this.cropperConfig.maintainAspectRatio,\n aspectRatio: this.cropperConfig.aspectRatio,\n resizeToWidth: this.cropperConfig.resizeToWidth,\n format: this.cropperConfig.uploadFormat\n }\n });\n\n dialogRef.afterClosed().subscribe(\n (croppedImage: Blob) => {\n this.onImageCropped(croppedImage, file.name);\n }\n );\n }\n\n onImageCropped(croppedImage: Blob, filename: string) {\n if (!croppedImage) {\n this.reset();\n return;\n }\n\n filename = filename.split('.').slice(0, -1).join('.') + '.' + this.cropperConfig.uploadFormat;\n let file: File = this.blobToFile(croppedImage, filename);\n\n this.uploadInProgress = true;\n\n this.webApiService.upload(file,\n (response: any) => {\n this.currentAttachment = {\n filename: filename,\n source_url: '',\n preview_url: '',\n signed_id: response.signed_id\n }\n this.onChange(this.currentAttachment);\n this.uploadInProgress = false;\n },\n (response: any) => {\n this.reset();\n this.error = 'Unable to upload file';\n this.uploadInProgress = false;\n }\n );\n }\n\n clearAttachment() {\n if (this.fileInput) this.fileInput.nativeElement.value = '';\n this.currentAttachment = {\n filename: '',\n source_url: '',\n preview_url: '',\n signed_id: null\n }\n this.onChange(this.currentAttachment);\n }\n\n reset() {\n if (this.fileInput) this.fileInput.nativeElement.value = '';\n this.currentAttachment = this.previousAttachment;\n this.onChange(undefined);\n }\n\n blobToFile(blob: Blob, filename: string): File {\n var blobData: any = blob;\n\n blobData.lastModifiedDate = new Date();\n blobData.name = filename;\n\n return <File>blob;\n }\n\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <input matInput\n type=\"text\"\n [attr.value]=\"currentAttachment?.filename\"\n (click)=\"fileInput.click()\"\n [required]=\"required\"\n [disabled]=\"disable\"\n autocomplete=\"off\">\n\n <button *ngIf=\"currentAttachment?.filename\" mat-icon-button matSuffix tabindex=\"-1\" (click)=\"clearAttachment()\" [disabled]=\"disable\" click-stop-propagation class=\"clear-button\">\n <mat-icon>close</mat-icon>\n </button>\n\n <button *ngIf=\"!uploadInProgress\" mat-icon-button matSuffix tabindex=\"-1\" (click)=\"fileInput.click()\" [disabled]=\"disable\">\n <mat-icon>image</mat-icon>\n </button>\n\n <button *ngIf=\"uploadInProgress\" mat-icon-button matSuffix tabindex=\"-1\" disabled>\n <mat-spinner matSuffix [diameter]=\"20\"></mat-spinner>\n </button>\n\n <input #fileInput\n type=\"file\"\n accept=\"image/*\"\n hidden\n (change)=\"onFileSelected($event)\">\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, OnChanges, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, AbstractControl, Validator, ValidationErrors, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\n@Component({\n selector: 'mantle-number-input',\n templateUrl: './number-input.component.html',\n styleUrls: ['./number-input.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberInputComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NumberInputComponent),\n multi: true,\n },\n ]\n})\nexport class NumberInputComponent implements ControlValueAccessor, Validator, OnChanges {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() options!: { min: number, max: number, decimal_places: number };\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public value: number | null = null;\n public errorMessage: string | undefined;\n\n constructor() { }\n\n onChange = (newValue: number | null) => { };\n registerOnChange(fn: (newValue: number | null) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n ngOnChanges(): void { }\n\n /**\n * Utility: safely coerce input into number or null\n */\n private coerceToNumber(value: any): number | null {\n if (value === null || value === undefined) return null;\n if (typeof value === 'number' && !isNaN(value)) return value;\n\n if (typeof value === 'string') {\n const trimmed = value.trim();\n if (trimmed === '') return null;\n\n // Match valid numeric string: -12, 3.14, 0, -0.5, 1e5\n if (/^-?\\d+(\\.\\d+)?([eE][-+]?\\d+)?$/.test(trimmed)) {\n const n = Number(trimmed);\n return Number.isFinite(n) ? n : null;\n }\n\n return null; // treat non-numeric strings as null\n }\n\n return null;\n }\n\n writeValue(newValue: any): void {\n newValue = this.coerceToNumber(newValue);\n this.value = newValue;\n this.onChange(newValue);\n }\n\n onValueChanged(event: any): void {\n this.value = this.coerceToNumber(this.value);\n this.onChange(this.value);\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n const val = this.coerceToNumber(control.value);\n\n // Replace invalid values in form control with null\n if (val === null) {\n this.errorMessage = this.error;\n return null;\n }\n\n const errors: any = {};\n if (this.options?.min !== undefined && val < this.options.min) {\n errors.min = `must be greater than or equal to ${this.options.min}`;\n }\n if (this.options?.max !== undefined && val > this.options.max) {\n errors.max = `must be lower than or equal to ${this.options.max}`;\n }\n\n if (this.options?.decimal_places !== undefined) {\n const factor = Math.pow(10, this.options.decimal_places);\n if (Math.round(val * factor) / factor !== val) {\n errors.decimal_places =\n this.options.decimal_places === 0\n ? 'cannot be a decimal'\n : `must have a maximum of ${this.options.decimal_places} decimal places`;\n }\n }\n\n this.errorMessage = [this.error, ...Object.values(errors)]\n .filter(Boolean)\n .join(', ');\n\n return Object.keys(errors).length > 0 ? errors : null;\n }\n\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"errorMessage\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <input matInput\n type=\"number\"\n [(ngModel)]=\"value\"\n (keyup)=\"onValueChanged($event)\"\n (change)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n autocomplete=\"off\">\n\n <mat-hint *ngIf=\"errorMessage\" class=\"error-message\">{{ errorMessage }}</mat-hint>\n</mat-form-field>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'mantle-password-input',\n templateUrl: './password-input.component.html',\n styleUrls: ['./password-input.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PasswordInputComponent),\n multi: true\n }\n ]\n})\nexport class PasswordInputComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public value: any = null;\n public hide: boolean = true;\n\n constructor() { }\n\n onChange = (newValue: string) => { };\n registerOnChange(fn: (newValue: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n writeValue(newValue: any): void {\n this.value = newValue;\n this.onChange(newValue);\n }\n\n onValueChanged(event: any): void {\n this.onChange(this.value);\n }\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <input matInput\n [type]=\"hide ? 'password' : 'text'\"\n [(ngModel)]=\"value\"\n (keyup)=\"onValueChanged($event)\"\n (change)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n autocomplete=\"off\">\n\n <button mat-icon-button matSuffix type=\"button\" tabindex=\"-1\" (click)=\"hide = !hide\">\n <mat-icon>{{hide ? 'visibility_off' : 'visibility'}}</mat-icon>\n </button>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'mantle-textarea',\n templateUrl: './textarea.component.html',\n styleUrls: ['./textarea.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextareaComponent),\n multi: true\n }\n ]\n})\nexport class TextareaComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() rows: number = 1;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public value: any = null;\n\n constructor() { }\n\n onChange = (newValue: string) => { };\n registerOnChange(fn: (newValue: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n writeValue(newValue: any): void {\n this.value = newValue;\n this.onChange(newValue);\n }\n\n onValueChanged(event: any): void {\n this.onChange(this.value);\n }\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <textarea matInput\n [rows]=\"rows\"\n [(ngModel)]=\"value\"\n (keyup)=\"onValueChanged($event)\"\n (change)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n autocomplete=\"off\">\n </textarea>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'mantle-text-input',\n templateUrl: './text-input.component.html',\n styleUrls: ['./text-input.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextInputComponent),\n multi: true\n }\n ]\n})\nexport class TextInputComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public value: any = null;\n\n constructor() { }\n\n onChange = (newValue: string) => { };\n registerOnChange(fn: (newValue: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n writeValue(newValue: any): void {\n this.value = newValue;\n this.onChange(newValue);\n }\n\n onValueChanged(event: any): void {\n this.onChange(this.value);\n }\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <input matInput\n type=\"text\"\n [(ngModel)]=\"value\"\n (keyup)=\"onValueChanged($event)\"\n (change)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n autocomplete=\"off\">\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Moment } from 'moment';\nimport moment from 'moment';\n\n@Component({\n selector: 'mantle-time-input',\n templateUrl: './time-input.component.html',\n styleUrls: ['./time-input.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimeInputComponent),\n multi: true\n }\n ]\n})\nexport class TimeInputComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public selectedTime: Moment | null = null;\n\n private modelFormat: string = 'HH:mm';\n private displayFormat: string = 'HH:mm';\n private parseFormats: string[] = [this.modelFormat, this.displayFormat];\n\n onChange = (newValue: string) => { };\n registerOnChange(fn: (newValue: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n get modelValue(): string {\n if (!this.selectedTime) return '';\n if (this.selectedTime.isValid()) return this.selectedTime.format(this.modelFormat);\n return 'Invalid time';\n }\n\n writeValue(newValue: any): void {\n if (typeof newValue === 'string') {\n newValue = moment(newValue, this.parseFormats).format(this.displayFormat);\n } else {\n newValue = null;\n }\n this.onTimeEntered(newValue);\n }\n\n onTimeSelected(newValue: any) {\n if (newValue) newValue = newValue.format(this.displayFormat);\n this.onTimeEntered(newValue)\n }\n\n onTimeEntered(newValue: any): void {\n if (newValue && newValue.type == 'change') newValue = newValue.target.value;\n\n this.selectedTime = this.getMoment(newValue);\n\n var value = this.modelValue;\n this.onChange(value);\n\n if (value == 'Invalid time') {\n setTimeout(() => {\n this.onTimeEntered(null);\n }, 0);\n }\n }\n \n getMoment(value: string | Moment): Moment | null {\n if (!value) return null;\n\n if (typeof value == 'string') {\n value = moment(value, this.parseFormats);\n }\n\n return value;\n }\n\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <input matInput\n [mtxDatetimepicker]=\"picker\"\n [(ngModel)]=\"selectedTime\"\n (change)=\"onTimeEntered($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n (dateChange)=\"onTimeSelected($event.value)\"\n autocomplete=\"off\">\n <mtx-datetimepicker #picker type=\"time\"></mtx-datetimepicker>\n <mtx-datetimepicker-toggle matSuffix [for]=\"picker\" tabindex=\"-1\"></mtx-datetimepicker-toggle>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'mantle-markdown-input',\n templateUrl: './markdown-input.component.html',\n styleUrls: ['./markdown-input.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MarkdownInputComponent),\n multi: true\n }\n ]\n})\nexport class MarkdownInputComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public value: any = null;\n\n constructor() { }\n\n onChange = (newValue: string) => { };\n registerOnChange(fn: (newValue: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n writeValue(newValue: any): void {\n this.value = newValue;\n this.onChange(newValue);\n }\n}\n","<div class=\"markdown-input-disabled\" *ngIf=\"disable\">\n <mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n\n <markdown ngPreserveWhitespaces>\n {{ value }}\n </markdown>\n\n <input matInput\n type=\"text\"\n [(ngModel)]=\"value\"\n [required]=\"required\"\n [disabled]=true\n [hidden]=true\n autocomplete=\"off\">\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n </mat-form-field>\n</div>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'mantle-multiselect-input',\n templateUrl: './multiselect-input.component.html',\n styleUrls: ['./multiselect-input.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiselectInputComponent),\n multi: true\n }\n ]\n})\nexport class MultiselectInputComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() options!: { values: { label: string, value: string, hidden: boolean }[] };\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public value: any = null;\n public dropdownValues: { label: string, value: string }[] = [];\n public multiselectValues: string[] = [];\n\n constructor() { }\n\n onChange = (newValue: string) => { };\n registerOnChange(fn: (newValue: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n ngOnChanges(changes: any): void {\n this.filterDropdownValues();\n }\n\n writeValue(newValue: any): void {\n this.value = newValue;\n this.setMultiselectValuesFromValue();\n this.onChange(this.value);\n\n this.filterDropdownValues();\n }\n\n onValueChanged(event: any): void {\n this.onChange(this.value);\n }\n\n filterDropdownValues() {\n this.dropdownValues = this.options.values.filter((item) => {\n if (item.value == this.value) return true;\n return !item.hidden;\n });\n }\n\n add(): void {\n this.setValueFromMultiselectValues();\n this.onChange(this.value);\n }\n\n remove(): void {\n this.setValueFromMultiselectValues();\n this.onChange(this.value);\n }\n\n setValueFromMultiselectValues() {\n this.value = this.multiselectValues.join(',');\n }\n\n setMultiselectValuesFromValue() {\n if (!this.value || !this.value.trim()) return;\n this.multiselectValues = this.value.split(',');\n }\n\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <mtx-select\n [(ngModel)]=\"multiselectValues\"\n (change)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n [multiple]=\"true\"\n [matTooltip]=\"(tooltip! | translate)\"\n (add)=\"add()\"\n (remove)=\"remove()\"\n appendTo=\"body\">\n <mtx-option value=\"\"></mtx-option>\n <mtx-option *ngFor=\"let option of dropdownValues\" [value]=\"option.value\">\n {{option.label}}\n </mtx-option>\n </mtx-select>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport Quill from 'quill';\nimport { RichTextBaseComponent } from '../../../widgets/rich-text-base/rich-text-base.component';\nimport '../../../widgets/rich-text-base/rich-text-registration.shared';\n\n@Component({\n selector: 'mantle-rich-text-input',\n templateUrl: './rich-text-input.component.html',\n styleUrls: ['./rich-text-input.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RichTextInputComponent),\n multi: true\n }\n ]\n})\nexport class RichTextInputComponent extends RichTextBaseComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() options!: { placeholder_attrs: { key: string, value: string }[] };\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public value: string = '';\n\n public quillModules = this.buildModules({\n mentionSource: (searchTerm, renderList) => {\n const values = this.options?.placeholder_attrs || [];\n renderList(\n searchTerm.length === 0\n ? values\n : values.filter(v => v.value.toLowerCase().includes(searchTerm.toLowerCase())),\n searchTerm\n );\n },\n });\n\n onChange = (newValue: string) => { };\n registerOnChange(fn: (newValue: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n writeValue(newValue: any): void {\n this.value = newValue || '';\n }\n\n onEditorCreated(quill: Quill) {\n this.loadHtmlIntoEditor(quill, this.value);\n }\n\n onContentChanged(event: any) {\n this.value = event.html || '';\n this.onChange(this.value);\n }\n}\n","<div class=\"rich-text-editor-wrapper mat-mdc-form-field\" [class.mat-mdc-form-field-invalid]=\"error\">\n <label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </label>\n\n <quill-editor class=\"quill-editor\"\n theme=\"snow\"\n placeholder=\"\"\n [modules]=\"quillModules\"\n [bounds]=\"'self'\"\n (onEditorCreated)=\"onEditorCreated($event)\"\n (onContentChanged)=\"onContentChanged($event)\"\n [readOnly]=\"disable\"\n [required]=\"required\">\n </quill-editor>\n\n <mat-hint *ngIf=\"error\" fxFlex=\"0 0 auto\" class=\"error-message\">{{ error }}</mat-hint>\n</div>\n","import { Component, ElementRef, Input, ViewChild, forwardRef } from '@angular/core';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { AbstractControl, ControlValueAccessor, FormArray, FormControl, FormGroup, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { ArrayService } from '../../../../services/array.service';\nimport { LocaleService } from '../../../../services/locale.service';\n\ninterface ReportConfig {\n dataset: string;\n aggregated: boolean;\n columns: ReportConfigColumn[];\n filters: ReportConfigFilter[];\n}\n\ninterface ReportConfigColumn {\n name: string;\n type: string;\n options: any;\n selected: boolean;\n group_by: boolean;\n count: boolean;\n count_distinct: boolean;\n average: boolean;\n max: boolean;\n min: boolean;\n sum: boolean;\n}\n\ninterface ReportConfigFilter {\n name: string;\n type: string;\n operator: string;\n value: any;\n options: { operators?: any; preSelectedValues?: any };\n}\n\n@Component({\n selector: 'mantle-report-config-input',\n templateUrl: './report-config-input.component.html',\n styleUrls: ['./report-config-input.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ReportConfigInputComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => ReportConfigInputComponent),\n multi: true,\n }\n ]\n})\nexport class ReportConfigInputComponent implements ControlValueAccessor, Validator {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() options!: { datasets: { name: string, columns: { name: string, type: string }[] }[] };\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n @ViewChild('filterContainer') private filterContainer!: ElementRef;\n\n public value: ReportConfig = { dataset: '', aggregated: false, columns: [], filters: [] };\n public errorMessage: string | undefined;\n\n public datasets!: string[];\n public datasetColumns!: ReportConfigColumn[];\n public filterPickerOptions: { values: { label: string, value: string, hidden: boolean }[] } = { values: [] };\n\n public filterFormArray = new FormArray<FormGroup>([]);\n\n constructor(private arrayService: ArrayService, private localeService: LocaleService) { }\n\n onChange = (newValue: ReportConfig) => { };\n registerOnChange(fn: (newValue: ReportConfig) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n writeValue(newValue: ReportConfig): void {\n this.value = newValue;\n\n this.applyReportOptions();\n this.applyValueToDatasetColumns();\n this.refreshValueColumns();\n\n this.onChange(newValue);\n\n this.filterFormArray.clear();\n this.value.filters.forEach(filter => {\n let column = this.arrayService.findByAttribute(this.datasetColumns, 'name', filter.name);\n this.refreshFilterConfig(filter, column, filter.value);\n this.addFilterFormGroup(filter);\n });\n }\n\n onValueChanged(event: ReportConfig): void {\n this.onChange(this.value);\n }\n\n applyReportOptions(): void {\n this.datasets = this.options.datasets.map((dataset) => { return dataset.name; });\n this.datasetColumns = [];\n\n let config = this.arrayService.findByAttribute(this.options.datasets, 'name', this.value.dataset);\n if (!config) return;\n\n this.datasetColumns = config.columns.map((column: { name: string, type: string, options: any }) => {\n return { name: column.name, type: column.type, options: column.options || {}, selected: false, group_by: false, count: false, count_distinct: false, average: false, max: false, min: false, sum: false } as ReportConfigColumn;\n });\n\n this.filterPickerOptions.values = this.datasetColumns.map((column: ReportConfigColumn) => {\n return { label: column.name, value: column.name, hidden: false };\n });\n }\n\n applyValueToDatasetColumns(): void {\n this.datasetColumns.forEach((datasetColumn: ReportConfigColumn) => {\n let attribute = datasetColumn.name;\n let valueColumn = this.arrayService.findByAttribute(this.value.columns, 'name', attribute) || {};\n datasetColumn.selected = valueColumn.selected || false;\n datasetColumn.group_by = valueColumn.group_by || false;\n datasetColumn.count = valueColumn.count || false;\n datasetColumn.count_distinct = valueColumn.count_distinct || false;\n datasetColumn.average = valueColumn.average || false;\n datasetColumn.max = valueColumn.max || false;\n datasetColumn.min = valueColumn.min || false;\n datasetColumn.sum = valueColumn.sum || false;\n })\n }\n\n refreshValueColumns(): void {\n this.value.columns = this.datasetColumns.filter((column: ReportConfigColumn) => {\n return column.selected;\n })\n }\n\n setDataset(dataset: string): void {\n this.value.dataset = dataset;\n this.value.aggregated = false;\n this.value.columns = [];\n this.value.filters = [];\n this.applyReportOptions();\n this.onChange(this.value);\n }\n\n setAggregated(aggregated: boolean): void {\n this.value.aggregated = aggregated;\n if (!aggregated) {\n this.value.columns.forEach((item: any ) => {\n item.group_by = false;\n item.count = false;\n item.count_distinct = false;\n item.average = false;\n item.max = false;\n item.min = false;\n item.sum = false;\n });\n }\n this.onChange(this.value);\n }\n\n setSelected(item: ReportConfigColumn, selected: boolean): void {\n item.selected = selected;\n if (!selected) {\n item.group_by = false;\n item.count = false;\n item.count_distinct = false;\n item.average = false;\n item.max = false;\n item.min = false;\n item.sum = false;\n }\n this.refreshValueColumns();\n this.onChange(this.value);\n }\n\n setGroupBy(item: ReportConfigColumn, groupBy: boolean): void {\n item.group_by = groupBy;\n if (groupBy) {\n item.count = false;\n item.count_distinct = false;\n item.average = false;\n item.max = false;\n item.min = false;\n item.sum = false;\n }\n this.onChange(this.value);\n }\n\n onAggregationChange(): void {\n this.onChange(this.value);\n }\n\n drop(event: CdkDragDrop<ReportConfigColumn[]>) {\n const list = [...this.value.columns];\n moveItemInArray(list, event.previousIndex, event.currentIndex);\n this.datasetColumns = list;\n this.refreshValueColumns();\n }\n\n addFilter(): void {\n let filter = {} as ReportConfigFilter;\n this.refreshFilterConfig(filter, this.datasetColumns[0], null);\n this.value.filters.push(filter);\n\n this.addFilterFormGroup(filter);\n\n this.onChange(this.value);\n\n setTimeout(() => {\n this.filterContainer.nativeElement.scrollTop = this.filterContainer.nativeElement.scrollHeight;\n }, 0);\n }\n\n addFilterFormGroup(filter: ReportConfigFilter): void {\n const fg = new FormGroup({\n name: new FormControl(filter.name),\n operator: new FormControl(filter.operator),\n value: new FormControl(filter.value)\n });\n\n this.filterFormArray.push(fg);\n\n fg.valueChanges.subscribe(val => {\n filter.name = val.name!;\n filter.operator = val.operator!;\n filter.value = val.value;\n this.onChange(this.value);\n });\n }\n\n updateFilterFormGroup(filter: ReportConfigFilter): void {\n const i = this.value.filters.indexOf(filter);\n const fg = this.filterFormArray.at(i) as FormGroup;\n fg.patchValue({\n name: filter.name,\n operator: filter.operator,\n value: filter.value\n });\n }\n\n setFilterColumn(filter: ReportConfigFilter, columnName: string): void {\n let column = this.arrayService.findByAttribute(this.datasetColumns, 'name', columnName);\n this.refreshFilterConfig(filter, column, null);\n this.updateFilterFormGroup(filter);\n this.onChange(this.value);\n }\n\n setFilterOperator(filter: ReportConfigFilter, operator: string): void {\n filter.operator = operator;\n this.onChange(this.value);\n }\n\n removeFilter(index: number): void {\n this.value.filters.splice(index, 1);\n this.filterFormArray.removeAt(index);\n this.onChange(this.value);\n }\n\n refreshFilterConfig(filter: ReportConfigFilter, column: ReportConfigColumn, value: any): void {\n if (!!column) {\n filter.name = column.name;\n filter.type = this.getFilterTypeForColumn(column);\n let operators = this.getOperatorsForFilterType(filter.type);\n let isOperatorAvailable = this.arrayService.findByAttribute(operators, 'value', filter.operator) != null;\n filter.operator = isOperatorAvailable ? filter.operator : operators[0].value;\n filter.options = {\n operators: {\n values: operators.map((operator: { label: string, value: string }) => {\n return { label: this.localeService.getTranslation(operator.label), value: operator.value };\n })\n },\n preSelectedValues: {\n values: column.options.values\n }\n };\n }\n else {\n filter.name = '';\n filter.type = '';\n filter.operator = '';\n filter.options = { operators: { values: [] } };\n }\n filter.value = value;\n }\n\n getFilterTypeForColumn(column: ReportConfigColumn): string {\n let type = '';\n switch (column.type) {\n case 'integer':\n case 'decimal':\n type = 'number';\n break;\n case 'date':\n type = 'date';\n break;\n case 'datetime':\n type = 'datetime';\n break;\n case 'string':\n type = (!!column.options.values) ? 'dropdown' : 'string';\n break;\n }\n return type;\n }\n\n getOperatorsForFilterType(type: string): { label: string, value: string }[] {\n let operators: { label: string, value: string }[] = [];\n switch (type) {\n case 'number':\n case 'date':\n case 'datetime':\n operators = [\n { label: 'mantle.report_config.operators.=', value: '=' },\n { label: 'mantle.report_config.operators.!=', value: '!=' },\n { label: 'mantle.report_config.operators.>', value: '>' },\n { label: 'mantle.report_config.operators.<', value: '<' },\n { label: 'mantle.report_config.operators.>=', value: '>=' },\n { label: 'mantle.report_config.operators.<=', value: '<=' }\n ];\n break;\n case 'string':\n operators = [\n { label: 'mantle.report_config.operators.=', value: '=' },\n { label: 'mantle.report_config.operators.!=', value: '!=' },\n { label: 'mantle.report_config.operators.contains', value: 'contains' },\n { label: 'mantle.report_config.operators.starts_with', value: 'starts_with' },\n { label: 'mantle.report_config.operators.ends_with', value: 'ends_with' }\n ];\n break;\n case 'dropdown':\n operators = [\n { label: 'mantle.report_config.operators.one_of', value: 'one_of' },\n { label: 'mantle.report_config.operators.not_one_of', value: 'not_one_of' }\n ];\n break;\n }\n return operators;\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n const errors: any = {};\n if (!this.value.dataset) {\n errors.dataset = 'Dataset is required';\n }\n\n if (this.value.columns.length === 0) {\n errors.columns = 'You must select at least one column';\n }\n\n if (this.value.aggregated) {\n const notFullyAggregated = this.value.columns.some((column: ReportConfigColumn) => {\n return !(column.group_by || column.count || column.count_distinct || column.average || column.max || column.min || column.sum);\n });\n\n if (notFullyAggregated) {\n errors.aggregation = 'All selected columns must be aggregated when the report is set to aggregated';\n }\n }\n\n if (this.value.filters.length > 0) {\n const filterWithoutName = this.value.filters.some((filter: ReportConfigFilter) => {\n return !filter.name;\n });\n if (filterWithoutName) errors.filterNames = 'All filters must specify a column name';\n\n const filterWithoutOperator = this.value.filters.some((filter: ReportConfigFilter) => {\n return !filter.operator;\n });\n if (filterWithoutOperator) errors.filterOperators = 'All filters must specify an operator';\n\n const filterWithoutValue = this.value.filters.some((filter: ReportConfigFilter) => {\n return !filter.value;\n });\n if (filterWithoutValue) errors.filterValues = 'All filters must specify a value';\n }\n\n this.errorMessage = Object.values(errors).filter(Boolean).join(', ');\n\n return Object.keys(errors).length > 0 ? errors : null;\n }\n}\n","<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"8px\" class=\"report-config-editor-wrapper mat-mdc-form-field\" [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-form-field fxFlex=\"0 0 auto\" [class.mat-mdc-form-field-invalid]=\"error\">\n <label>\n {{ 'mantle.report_config.dataset' | translate }}\n </label>\n <mtx-select\n [(ngModel)]=\"value.dataset\"\n (change)=\"setDataset($event)\"\n appendTo=\"body\">\n <mtx-option value=\"\"></mtx-option>\n <mtx-option *ngFor=\"let option of datasets\" [value]=\"option\">\n {{option}}\n </mtx-option>\n </mtx-select>\n </mat-form-field>\n\n <div fxFlex=\"0 0 auto\">\n <mat-checkbox [checked]=\"value.aggregated\" (change)=\"setAggregated($event.checked)\">\n {{ 'mantle.report_config.use_aggregation' | translate }}\n </mat-checkbox>\n </div>\n\n <h3 fxFlex=\"0 0 auto\" class=\"report-config-subsection-header\">{{ 'mantle.report_config.columns' | translate }}</h3>\n\n <div fxFlex=\"1 0 1px\" fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"8px\" class=\"items-container\">\n \n <div fxFlex=\"0 0 auto\" fxLayout=\"row\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"8px\" class=\"header-row\">\n <div fxFlex=\"0 0 24px\" class=\"header-row-label\"></div>\n <div fxFlex=\"0 0 80px\" class=\"header-row-label selection-check-header\">{{ 'mantle.report_config.select' | translate }}</div>\n <div fxFlex=\"1 1 0\" class=\"header-row-label\">{{ 'mantle.report_config.column' | translate }}</div>\n <ng-container *ngIf=\"value.aggregated\">\n <div fxFlex=\"0 0 80px\" class=\"header-row-label aggregation-check-header\">{{ 'mantle.report_config.group_by' | translate }}</div>\n <div fxFlex=\"0 0 80px\" class=\"header-row-label aggregation-check-header\">{{ 'mantle.report_config.count' | translate }}</div>\n <div fxFlex=\"0 0 80px\" class=\"header-row-label aggregation-check-header\">{{ 'mantle.report_config.count_distinct' | translate }}</div>\n <div fxFlex=\"0 0 80px\" class=\"header-row-label aggregation-check-header\">{{ 'mantle.report_config.average' | translate }}</div>\n <div fxFlex=\"0 0 80px\" class=\"header-row-label aggregation-check-header\">{{ 'mantle.report_config.max' | translate }}</div>\n <div fxFlex=\"0 0 80px\" class=\"header-row-label aggregation-check-header\">{{ 'mantle.report_config.min' | translate }}</div>\n <div fxFlex=\"0 0 80px\" class=\"header-row-label aggregation-check-header\">{{ 'mantle.report_config.sum' | translate }}</div>\n </ng-container>\n </div>\n\n <div fxFlex=\"1 0 0\" fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"8px\" class=\"field-rows\"\n cdkDropList [cdkDropListData]=\"value.columns\" (cdkDropListDropped)=\"drop($event)\">\n\n <div fxFlex=\"0 0 auto\" fxLayout=\"row\" fxLayoutAlign=\"stretch center\" fxLayoutGap=\"8px\" class=\"field-row\"\n *ngFor=\"let item of datasetColumns; let i = index\" cdkDrag>\n\n <!-- Drag handle -->\n <div fxFlex=\"0 0 24px\" class=\"drag-handle\" cdkDragHandle>\n <mat-icon>drag_indicator</mat-icon>\n </div>\n\n <!-- Left checkbox -->\n <mat-checkbox fxFlex=\"0 0 80px\" class=\"selection-check\" [checked]=\"item.selected\" (change)=\"setSelected(item, $event.checked)\"></mat-checkbox>\n\n <!-- Label -->\n <div fxFlex=\"1 1 0\">{{ item.name }}</div>\n\n <!-- Right checkboxes -->\n <ng-container *ngIf=\"value.aggregated\">\n <mat-checkbox fxFlex=\"0 0 80px\" class=\"aggregation-check\" [checked]=\"item.group_by\" (change)=\"setGroupBy(item, $event.checked)\" [disabled]=\"!item.selected\"></mat-checkbox>\n <mat-checkbox fxFlex=\"0 0 80px\" class=\"aggregation-check\" [(ngModel)]=\"item.count\" (change)=\"onAggregationChange()\" [disabled]=\"!item.selected || item.group_by\"></mat-checkbox>\n <mat-checkbox fxFlex=\"0 0 80px\" class=\"aggregation-check\" [(ngModel)]=\"item.count_distinct\" (change)=\"onAggregationChange()\" [disabled]=\"!item.selected || item.group_by\"></mat-checkbox>\n <mat-checkbox fxFlex=\"0 0 80px\" class=\"aggregation-check\" [(ngModel)]=\"item.average\" (change)=\"onAggregationChange()\" [disabled]=\"!item.selected || item.group_by || ['string', 'boolean'].includes(item.type)\"></mat-checkbox>\n <mat-checkbox fxFlex=\"0 0 80px\" class=\"aggregation-check\" [(ngModel)]=\"item.max\" (change)=\"onAggregationChange()\" [disabled]=\"!item.selected || item.group_by || ['string', 'boolean'].includes(item.type)\"></mat-checkbox>\n <mat-checkbox fxFlex=\"0 0 80px\" class=\"aggregation-check\" [(ngModel)]=\"item.min\" (change)=\"onAggregationChange()\" [disabled]=\"!item.selected || item.group_by || ['string', 'boolean'].includes(item.type)\"></mat-checkbox>\n <mat-checkbox fxFlex=\"0 0 80px\" class=\"aggregation-check\" [(ngModel)]=\"item.sum\" (change)=\"onAggregationChange()\" [disabled]=\"!item.selected || item.group_by || ['string', 'boolean', 'date', 'datetime'].includes(item.type)\"></mat-checkbox>\n </ng-container>\n </div>\n\n </div>\n\n </div>\n\n <h3 fxFlex=\"0 0 auto\" class=\"report-config-subsection-header\">{{ 'mantle.report_config.filters' | translate }}</h3>\n\n <div fxFlex=\"1 0 1px\" fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"8px\" class=\"filters-container\">\n\n <div fxFlex=\"0 0 auto\" fxLayout=\"row\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"8px\" class=\"header-row\">\n <div fxFlex=\"1 1 0\" class=\"header-row-label\">{{ 'mantle.report_config.filter' | translate }}</div>\n <div fxFlex=\"1 1 0\" class=\"header-row-label\">{{ 'mantle.report_config.operator' | translate }}</div>\n <div fxFlex=\"1 1 0\" class=\"header-row-label\">{{ 'mantle.report_config.filter_value' | translate }}</div>\n <div fxFlex=\"0 0 48px\" class=\"header-row-label\"></div>\n </div>\n\n <div #filterContainer fxFlex=\"1 0 0\" fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"0\" class=\"filter-rows\">\n <div fxFlex=\"0 0 auto\" fxLayout=\"row\" fxLayoutAlign=\"stretch center\" fxLayoutGap=\"8px\"\n *ngFor=\"let filter of value.filters; let i = index\">\n\n <ng-container [formGroup]=\"filterFormArray.at(i)\">\n <div fxFlex=\"1 1 0\">\n <mantle-dropdown\n [id]=\"'filterName' + i\"\n [formControlName]=\"'name'\"\n [options]=\"filterPickerOptions\"\n [required]=\"true\"\n (change)=\"setFilterColumn(filter, $event)\">\n </mantle-dropdown>\n </div>\n <div fxFlex=\"1 1 0\">\n <mantle-dropdown\n [id]=\"'filterOperator' + i\"\n [formControlName]=\"'operator'\"\n [options]=\"filter.options.operators\"\n [required]=\"true\"\n [disable]=\"!filter.name\"\n (change)=\"setFilterOperator(filter, $event)\">\n </mantle-dropdown>\n </div>\n <div fxFlex=\"1 1 0\">\n <ng-container [ngSwitch]=\"filter.type\">\n\n <mantle-number-input *ngSwitchCase=\"'number'\"\n [id]=\"'filterValue' + i\"\n [formControlName]=\"'value'\"\n [required]=\"true\"\n [disable]=\"!filter.name\">\n </mantle-number-input>\n\n <mantle-datepicker *ngSwitchCase=\"'date'\"\n [id]=\"'filterValue' + i\"\n [formControlName]=\"'value'\"\n [required]=\"true\"\n [disable]=\"!filter.name\">\n </mantle-datepicker>\n\n <mantle-datetimepicker *ngSwitchCase=\"'datetime'\"\n [id]=\"'filterValue' + i\"\n [formControlName]=\"'value'\"\n [required]=\"true\"\n [disable]=\"!filter.name\">\n </mantle-datetimepicker>\n\n <mantle-text-input *ngSwitchCase=\"'string'\"\n [id]=\"'filterValue' + i\"\n [formControlName]=\"'value'\"\n [required]=\"true\"\n [disable]=\"!filter.name\">\n </mantle-text-input>\n\n <mantle-multiselect-input *ngSwitchCase=\"'dropdown'\"\n [id]=\"'filterValue' + i\"\n [formControlName]=\"'value'\"\n [options]=\"filter.options.preSelectedValues\"\n [required]=\"true\">\n </mantle-multiselect-input>\n\n </ng-container>\n </div>\n </ng-container>\n\n <div fxFlex=\"0 0 48px\">\n <button matIconButton color=\"warn\" type=\"button\" (click)=\"removeFilter(i)\">\n <mat-icon>cancel</mat-icon>\n </button>\n </div>\n\n </div>\n </div>\n\n <button mat-raised-button color=\"primary\" type=\"button\" (click)=\"addFilter()\">{{ 'mantle.report_config.add_filter' | translate }}</button>\n\n </div>\n\n <mat-hint *ngIf=\"value.dataset && errorMessage\" class=\"error-message\">{{ errorMessage }}</mat-hint>\n</div>\n","import { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Observable, of as observableOf } from 'rxjs';\n\n@Component({\n selector: 'mantle-autocomplete-input',\n templateUrl: './autocomplete-input.component.html',\n styleUrls: ['./autocomplete-input.component.scss'],\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AutocompleteInputComponent),\n multi: true\n }\n ]\n})\nexport class AutocompleteInputComponent implements ControlValueAccessor {\n\n @Input() label!: string;\n @Input() tooltip?: string;\n @Input() options!: { values: { label: string, value: string }[] };\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public value: any = '';\n public filteredOptions$!: Observable<{ label: string, value: string }[]>;\n\n onChange = (newValue: string) => { };\n registerOnChange(fn: (newValue: string) => void): void { this.onChange = fn; }\n\n onTouched = () => { };\n registerOnTouched(fn: () => void): void { this.onTouched = fn; }\n\n writeValue(newValue: any): void {\n this.value = newValue;\n if (this.value !== null && this.value !== undefined) {\n this.value = String(this.value);\n }\n\n this.filteredOptions$ = observableOf(this.filterAutocompleteValues(this.value || ''));\n this.onChange(this.value);\n }\n\n onValueChanged(event: any): void {\n this.filteredOptions$ = observableOf(this.filterAutocompleteValues(this.value || ''));\n this.onChange(this.value);\n }\n\n filterAutocompleteValues(value: string): { label: string, value: string }[] {\n const filterValue = value.toLowerCase();\n\n return this.options.values.filter(item => item.value.toLowerCase().includes(filterValue));\n }\n\n}\n","<mat-form-field [class.mat-mdc-form-field-invalid]=\"error\">\n <mat-label>\n {{ label | translate }}\n <mantle-tooltip *ngIf=\"tooltip\" [message]=\"tooltip\"></mantle-tooltip>\n </mat-label>\n <input matInput\n type=\"text\"\n [(ngModel)]=\"value\"\n (keyup)=\"onValueChanged($event)\"\n (change)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n [matAutocomplete]=\"auto\">\n\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onValueChanged($event)\">\n <mat-option *ngFor=\"let option of filteredOptions$ | async\" [value]=\"option.value\">\n {{option.label}}\n </mat-option>\n </mat-autocomplete>\n\n <mat-hint *ngIf=\"error\" class=\"error-message\">{{ error }}</mat-hint>\n</mat-form-field>\n","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DynamicFormField } from '../../../../services/dynamic-form.service';\n\n@Component({\n selector: 'mantle-dynamic-form-field',\n templateUrl: './dynamic-form-field.component.html',\n styleUrls: ['./dynamic-form-field.component.scss'],\n standalone: false\n})\nexport class DynamicFormFieldComponent {\n\n @Input() field!: DynamicFormField;\n @Input() form!: FormGroup;\n @Input() error: string | undefined;\n\n}\n","<div class=\"dynamic-form-field-wrapper\" [formGroup]=\"form\">\n <ng-container [ngSwitch]=\"field.type\">\n\n <mantle-text-input *ngSwitchCase=\"'string'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-text-input>\n\n <mantle-text-input *ngSwitchCase=\"'string-md'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-text-input>\n\n <mantle-text-input *ngSwitchCase=\"'string-lg'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-text-input>\n\n <mantle-textarea *ngSwitchCase=\"'text'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [rows]=\"4\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-textarea>\n\n <mantle-dropdown *ngSwitchCase=\"'dropdown'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-dropdown>\n\n <mantle-dropdown *ngSwitchCase=\"'dropdown-md'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-dropdown>\n\n <mantle-dropdown *ngSwitchCase=\"'dropdown-lg'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-dropdown>\n\n <mantle-multiselect-input *ngSwitchCase=\"'multiselect'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-multiselect-input>\n\n <mantle-multiselect-input *ngSwitchCase=\"'multiselect-md'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-multiselect-input>\n\n <mantle-multiselect-input *ngSwitchCase=\"'multiselect-lg'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-multiselect-input>\n\n <mantle-datepicker *ngSwitchCase=\"'date'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-datepicker>\n\n <mantle-datetimepicker *ngSwitchCase=\"'datetime'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-datetimepicker>\n\n <mantle-time-input *ngSwitchCase=\"'time'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-time-input>\n\n <mantle-number-input *ngSwitchCase=\"'number'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-number-input>\n\n <mantle-number-input *ngSwitchCase=\"'currency'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-number-input>\n\n <mantle-filepicker *ngSwitchCase=\"'file'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-filepicker>\n\n <mantle-imagepicker *ngSwitchCase=\"'image'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-imagepicker>\n\n <mantle-chip-input *ngSwitchCase=\"'chips'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-chip-input>\n\n <mantle-chip-input *ngSwitchCase=\"'chips-lg'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-chip-input>\n\n <mantle-password-input *ngSwitchCase=\"'password'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-password-input>\n\n <mantle-markdown-input *ngSwitchCase=\"'markdown'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-markdown-input>\n\n <mantle-rich-text-input *ngSwitchCase=\"'rich-text'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-rich-text-input>\n\n <mantle-autocomplete-input *ngSwitchCase=\"'autocomplete'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-autocomplete-input>\n\n <mantle-text-input *ngSwitchCase=\"'link'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-text-input>\n\n <mantle-colorpicker-input *ngSwitchCase=\"'color'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-colorpicker-input>\n\n <mantle-report-config-input *ngSwitchCase=\"'report-config'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\n [tooltip]=\"field.tooltip\"\n [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-report-config-input>\n </ng-container>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DynamicLayoutGridSection } from '../../../../data-structures/dynamic-layout.structure';\nimport { DynamicFormField } from '../../../../services/dynamic-form.service';\nimport { ScreenSizeService } from '../../../../services/screen-size.service';\n\n@Component({\n selector: 'mantle-grid-form-section',\n templateUrl: './grid-form-section.component.html',\n styleUrls: ['./grid-form-section.component.scss'],\n standalone: false\n})\nexport class GridFormSectionComponent {\n\n @Input() title?: string;\n @Input() section!: DynamicLayoutGridSection;\n @Input() form!: FormGroup;\n @Input() errors: any = {};\n @Input() defaultRowHeight: string = '76px';\n\n public numColumns: number = 1;\n\n private breakpointColumns = new Map([\n ['xs', 1],\n ['sm', 2],\n ['md', 2],\n ['lg', 3],\n ['xl', 4],\n ]);\n\n constructor(private screenSizeService: ScreenSizeService) {\n this.screenSizeService.screenSize.subscribe((screenSize: any) => {\n if (this.section?.singleColumn) {\n this.numColumns = 1;\n return;\n }\n\n this.numColumns = this.breakpointColumns.get(screenSize) || 1;\n });\n }\n\n getColSpanForField(field: DynamicFormField): number {\n if (this.numColumns == 1) return 1;\n else if (['text', 'markdown', 'rich-text'].includes(field.type)) return this.numColumns;\n else if (['report-config'].includes(field.type) || field.type.endsWith('-lg')) return this.numColumns;\n else if (field.type.endsWith('-md')) return 2;\n else return 1;\n }\n\n getRowSpanForField(field: DynamicFormField): number {\n if (field.type == 'text') return 2;\n else if (['markdown', 'rich-text'].includes(field.type)) return 4;\n else if (field.type == 'report-config') return 12;\n else return 1;\n }\n\n get valid(): boolean {\n return this.form.valid;\n }\n\n get value(): any {\n return this.form.getRawValue();\n }\n\n reset(): void {\n this.form.reset();\n }\n\n}\n","<mantle-section-title *ngIf=\"title\" [title]=\"title\"></mantle-section-title>\n\n<form [formGroup]=\"form\" class=\"grid-form-layout\">\n <mat-grid-list\n [rowHeight]=\"section.rowHeight || defaultRowHeight\"\n [cols]=\"section.singleColumn ? 1 : numColumns\"\n [class.multi-column]=\"section.singleColumn ? false : numColumns > 1\">\n\n <ng-container *ngFor=\"let field of section.elements\">\n <mat-grid-tile *ngIf=\"!field.hidden\" [colspan]=\"section.singleColumn ? 1 : getColSpanForField(field)\" [rowspan]=\"getRowSpanForField(field)\">\n <mantle-dynamic-form-field [field]=\"field\" [form]=\"form\" [error]=\"errors[field.attr]\"></mantle-dynamic-form-field>\n </mat-grid-tile>\n </ng-container>\n\n </mat-grid-list>\n</form>\n","import { Component, OnChanges, AfterViewChecked, ChangeDetectorRef, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DashboardCardSearchMenuContent, DynamicLayoutGridSection } from '../../../data-structures/dynamic-layout.structure';\nimport { DynamicFormService } from '../../../services/dynamic-form.service';\n\n@Component({\n selector: 'mantle-dashboard-card-search-menu',\n templateUrl: './dashboard-card-search-menu.component.html',\n styleUrls: ['./dashboard-card-search-menu.component.scss'],\n standalone: false\n})\nexport class DashboardCardSearchMenuComponent implements OnChanges, AfterViewChecked {\n\n @Input() content!: DashboardCardSearchMenuContent;\n\n public section!: DynamicLayoutGridSection;\n public form!: FormGroup;\n\n constructor(private changeDetectorRef: ChangeDetectorRef, private dynamicFormService: DynamicFormService) { }\n\n ngOnChanges(): void {\n if (this.content) {\n this.form = this.dynamicFormService.toFormGroup(this.content.data);\n\n this.section = {\n layout: 'grid',\n elements: this.content.elements,\n singleColumn: true,\n rowHeight: '60px',\n writable: true,\n hidden: false,\n collapsed: false,\n options: {}\n }\n }\n }\n\n ngAfterViewChecked(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n get valid(): boolean {\n return this.form?.valid;\n }\n\n get value(): any {\n return this.dynamicFormService.transformFormValue(this.form?.getRawValue());\n }\n\n reset(): void {\n this.form.reset();\n }\n\n}\n","<ng-container *ngIf=\"content; else loader\">\n <mantle-grid-form-section\n [section]=\"section\"\n [form]=\"form\">\n </mantle-grid-form-section>\n</ng-container>\n\n<ng-template #loader>\n <mantle-loader></mantle-loader>\n</ng-template>\n","import { Component, OnChanges, Input } from '@angular/core';\nimport Highcharts from 'highcharts';\nimport HighchartsItemSeries from 'highcharts/modules/item-series';\nimport HighchartsGantt from 'highcharts/modules/gantt';\nimport HighchartsExporting from 'highcharts/modules/exporting';\nimport HighchartsOfflineExporting from 'highcharts/modules/offline-exporting';\nimport 'svg2pdf.js';\nimport { ObjectService } from '../../../../services/object.service';\n\nHighchartsItemSeries(Highcharts);\nHighchartsGantt(Highcharts);\nHighchartsExporting(Highcharts);\nHighchartsOfflineExporting(Highcharts);\n\n@Component({\n selector: 'mantle-dynamic-chart',\n templateUrl: './dynamic-chart.component.html',\n styleUrls: ['./dynamic-chart.component.scss'],\n standalone: false\n})\nexport class DynamicChartComponent implements OnChanges {\n\n @Input() label: string = '';\n @Input() data: any = {};\n\n Highcharts: typeof Highcharts = Highcharts;\n chartConstructor: string = 'chart';\n chartOptions: Highcharts.Options = {};\n updateFlag: boolean = false;\n oneToOneFlag: boolean = true;\n\n defaultChartOptions: Highcharts.Options = {\n chart: {\n plotBackgroundColor: undefined,\n plotBorderWidth: undefined,\n plotShadow: false,\n styledMode: false,\n type: ''\n },\n credits: {\n enabled: false\n },\n exporting: {\n enabled: false\n },\n plotOptions: {\n column: {\n pointPadding: 0.2,\n borderWidth: 0,\n borderRadius: 3,\n maxPointWidth: 40,\n minPointLength: 4\n }\n },\n tooltip: {},\n series: [],\n title: {\n text: ''\n },\n yAxis: {\n allowDecimals: false\n }\n };\n\n constructor(private objectService: ObjectService) { }\n\n ngOnChanges(): void {\n if (!this.data) return;\n\n this.chartConstructor = 'chart';\n if (this.data.chart && this.data.chart.type == 'gantt') {\n this.chartConstructor = 'ganttChart';\n\n this.data.xAxis[0].min = Date.parse(this.data.xAxis[0].min);\n this.data.xAxis[0].max = Date.parse(this.data.xAxis[0].max);\n\n this.data.series.forEach((s: any) => {\n s.data.forEach((point: any) => {\n point.start = Date.parse(point.start);\n point.end = Date.parse(point.end);\n })\n })\n }\n\n this.chartOptions = this.objectService.deepMerge(this.defaultChartOptions, this.data);\n }\n\n chartCallback: Highcharts.ChartCallbackFunction = function (chart): void {\n setTimeout(() => {\n if (!!chart?.renderer && !chart.renderer.forExport) {\n chart.reflow();\n }\n },0);\n };\n\n}\n","<div *ngIf=\"label\" class=\"header\">\n <p class=\"header-text\">{{ label | translate }}</p>\n</div>\n\n<highcharts-chart\n [Highcharts]=\"Highcharts\"\n [constructorType]=\"chartConstructor\"\n [options]=\"chartOptions\"\n [(update)]=\"updateFlag\"\n [oneToOne]=\"oneToOneFlag\"\n [callbackFunction]=\"chartCallback\">\n</highcharts-chart>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mantle-dashboard-info-card',\n templateUrl: './dashboard-info-card.component.html',\n styleUrls: ['./dashboard-info-card.component.scss'],\n standalone: false\n})\nexport class DashboardInfoCardComponent {\n\n @Input() data: any = '';\n @Input() options: any = '';\n\n constructor() { }\n\n}\n","<div class=\"info-card\">\n <div *ngIf=\"data.key_value\">\n <div *ngIf=\"data.key_value.label\" class=\"sub-header\">{{ data.key_value.label }}</div>\n <span class=\"header\">\n <h1 class=\"header-value\" [ngStyle]=\"{ 'color': data.color }\">{{ data.key_value.value }}</h1> <span class=\"header-units\">{{ data.key_value.unit }}</span>\n </span>\n <div *ngIf=\"data.showSubLabel\">\n <span class=\"header-date\">{{ data.key_value.sub_label }}</span>\n </div>\n </div>\n\n <small *ngIf=\"data.comparison\" class=\"comparison\">\n <mat-icon>{{ (data.comparison.value < 0) ? 'keyboard_arrow_down' : 'keyboard_arrow_up' }}</mat-icon>\n {{ data.comparison.value }} {{ data.comparison.unit }} {{ data.comparison.label }}\n </small>\n\n <table *ngIf=\"data.bulletpoints && data.bulletpoints.length > 0\" class=\"bulletpoints\">\n <tr *ngFor=\"let bulletpoint of data.bulletpoints\" class=\"bulletpoint\">\n <td class=\"bulletpoint-icon\"><mat-icon>chevron_right</mat-icon></td><td class=\"bulletpoint-value\"><b>{{ bulletpoint.value }}</b></td><td class=\"bulletpoint-label\">{{ bulletpoint.label }}</td>\n </tr>\n </table>\n</div>\n","import { DataSource } from '@angular/cdk/collections';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/**\n * Data source for the List Page view. This class should\n * encapsulate all logic for fetching and manipulating the displayed data\n * (including sorting, pagination, and searching).\n */\nexport class DashboardTableDataSource extends DataSource<any> {\n listSubject: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\n\n constructor() {\n super();\n }\n\n /**\n * Connect this data source to the table. The table will only update when\n * the returned stream emits new items.\n * @returns A stream of the items to be rendered.\n */\n connect(): Observable<any[]> {\n return this.listSubject.asObservable().pipe(\n map(() => {\n return this.listSubject.value;\n })\n );\n }\n\n /**\n * Called when the table is being destroyed. Use this function, to clean up\n * any open connections or free any held resources that were set up during connect.\n */\n disconnect(): void {}\n}\n","import { Component, AfterViewInit, OnChanges, Input, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatTable } from '@angular/material/table';\nimport { DashboardTableDataSource } from './dashboard-table-datasource';\n\nexport interface DashboardTableColumn {\n header: string;\n attr: string;\n type: string;\n options: any[];\n}\n\n@Component({\n selector: 'mantle-dashboard-table',\n templateUrl: './dashboard-table.component.html',\n styleUrls: ['./dashboard-table.component.scss'],\n standalone: false\n})\nexport class DashboardTableComponent implements AfterViewInit, OnChanges {\n\n @ViewChild(MatTable) table!: MatTable<any>;\n\n @Input() label: string = '';\n @Input() columns!: DashboardTableColumn[];\n @Input() items!: any[];\n @Input() hideHeaders!: boolean;\n @Input() withStripedRows!: boolean;\n @Input() withClickableRows!: boolean;\n @Input() onRecordClicked!: any;\n\n private dataSource: DashboardTableDataSource;\n\n constructor(private dialog: MatDialog) {\n this.dataSource = new DashboardTableDataSource();\n }\n\n ngAfterViewInit(): void {\n this.table.dataSource = this.dataSource;\n }\n\n ngOnChanges(): void {\n this.dataSource.listSubject.next(this.items);\n }\n\n listColumnAttrs(): string[] {\n return this.columns.map(column => {\n return column.attr;\n });\n }\n\n onRowClicked(row: any): void {\n if (!this.withClickableRows) return;\n\n // TODO: The action triggered by the click should depend on the associated service. So, the dynamic table should not know about the dialog service.\n this.onRecordClicked(this.dialog, row);\n }\n\n}\n","<div *ngIf=\"label\" class=\"header\">\n <p class=\"header-text\">{{ label | translate }}</p>\n</div>\n\n<div class=\"vertically-scrollable horizontal-scroll-table\">\n <table mat-table class=\"full-width\">\n\n <ng-container *ngFor=\"let column of columns\">\n <ng-container matColumnDef=\"{{ column.attr }}\">\n <th mat-header-cell *matHeaderCellDef>{{ column.header | translate }}</th>\n <td mat-cell *matCellDef=\"let row\">\n <mantle-dynamic-attribute-display [fieldType]=\"column.type\" [value]=\"row[column.attr]\" [field]=\"column\"></mantle-dynamic-attribute-display>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!hideHeaders\">\n <tr mat-header-row *matHeaderRowDef=\"listColumnAttrs()\"></tr>\n </ng-container>\n <tr mat-row *matRowDef=\"let row; columns: listColumnAttrs();\"\n (click)=\"onRowClicked(row)\"\n [class.clickable-row]=\"withClickableRows\"\n [class.striped-row]=\"withStripedRows\">\n </tr>\n\n </table>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { DashboardWidgetItemConfig } from '../../../../services/interfaces/dashboard-widget.service';\n\n@Component({\n selector: 'mantle-dynamic-widget-display',\n templateUrl: './dynamic-widget-display.component.html',\n styleUrls: ['./dynamic-widget-display.component.scss'],\n standalone: false\n})\nexport class DynamicWidgetDisplayComponent {\n\n @Input() widgetItem!: DashboardWidgetItemConfig;\n @Input() data: any = '';\n @Input() options: any = '';\n\n}\n","<ng-container [ngSwitch]=\"widgetItem.type\">\n\n <ng-container *ngSwitchCase=\"'chart'\">\n <mantle-dynamic-chart class=\"widget-item\" [label]=\"widgetItem.label\" [data]=\"data\">\n </mantle-dynamic-chart>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'info'\">\n <mantle-dashboard-info-card class=\"widget-item\" [data]=\"data\" [options]=\"options\">\n </mantle-dashboard-info-card>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'table'\">\n <mantle-dashboard-table class=\"widget-item\"\n [label]=\"widgetItem.label\"\n [columns]=\"data.columns\" [items]=\"data.items\"\n [hideHeaders]=\"data.hideHeaders\"\n [withStripedRows]=\"data.withStripedRows\"\n [withClickableRows]=\"data.withClickableRows\"\n [onRecordClicked]=\"data.onRecordClicked\">\n </mantle-dashboard-table>\n </ng-container>\n\n</ng-container>\n","import { Component, OnInit, Input, ViewChild } from '@angular/core';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { DynamicDashboardWidget, DashboardCardSearchMenuContent } from '../../../data-structures/dynamic-layout.structure';\nimport { DashboardCardSearchMenuComponent } from '../../../components/dashboard/dashboard-card-search-menu/dashboard-card-search-menu.component';\nimport { ScreenSizeService } from '../../../services/screen-size.service';\nimport { DashboardPageService } from '../../../services/interfaces/dashboard-page.service';\nimport { DashboardWidgetService, WidgetExportOption, DashboardWidgetButton, DashboardWidgetItemConfig } from '../../../services/interfaces/dashboard-widget.service';\nimport { ObjectService } from '../../../services/object.service';\nimport { DynamicFormField } from '../../../services/dynamic-form.service';\n\n@Component({\n selector: 'mantle-dashboard-card',\n templateUrl: './dashboard-card.component.html',\n styleUrls: ['./dashboard-card.component.scss'],\n standalone: false\n})\nexport class DashboardCardComponent implements OnInit {\n\n @ViewChild(DashboardCardSearchMenuComponent) searchForm!: DashboardCardSearchMenuComponent;\n @ViewChild(MatMenuTrigger) menuTrigger!: MatMenuTrigger;\n\n @Input() widget!: DynamicDashboardWidget;\n @Input() widgetConfig!: any;\n @Input() widgetItems!: any;\n @Input() rowHeight: string = '';\n @Input() dashboardWidgetService!: DashboardWidgetService;\n @Input() dashboardPageService!: DashboardPageService;\n @Input() searchValues: any = {};\n\n public widgetItemContexts: any[] = [];\n public exportOptions: WidgetExportOption[] = [];\n public additionalWidgetButtons: DashboardWidgetButton[] = [];\n public formContent!: DashboardCardSearchMenuContent;\n public options: any = {};\n\n private screenSize: string = 'default';\n public readonly WIDGET_COLUMNS: number = 12;\n public widgetRowHeight: string = '170px';\n\n constructor(private objectService: ObjectService, private screenSizeService: ScreenSizeService) { }\n\n ngOnInit(): void {\n this.initializeWidget();\n this.getWidgetItemData();\n this.options = this.dashboardWidgetService.defaultOptions();\n this.watchScreenSize(this.dashboardWidgetService.widgetDimensions);\n this.refreshFormContent();\n }\n\n initializeWidget() {\n this.exportOptions = this.dashboardWidgetService.widgetExportOptions();\n this.additionalWidgetButtons = this.dashboardWidgetService.additionalWidgetButtons(this.widgetConfig);\n }\n\n getWidgetItemData() {\n this.widgetItemContexts = this.dashboardWidgetService.widgetItemsConfig().map((widgetItem: any) => {\n let widgetItemData = this.widgetItems[widgetItem.slug];\n widgetItemData.data = this.objectService.deepMerge(widgetItem.configuration, widgetItemData.data);\n if (widgetItem.type == 'info') {\n widgetItemData.data = this.objectService.deepMerge(widgetItemData.data, { key_value: { label: widgetItem.label } });\n }\n\n return {\n config: widgetItem,\n data: widgetItemData.data,\n options: widgetItemData.options\n };\n });\n }\n\n refreshFormContent() {\n let elements = this.dashboardWidgetService.widgetSearchFields();\n elements.forEach((searchField: DynamicFormField) => {\n if ((searchField.type == 'dropdown') && (this.searchValues[searchField.attr] !== undefined)) {\n searchField.options = { values: this.searchValues[searchField.attr] };\n }\n });\n\n this.formContent = {\n data: this.options,\n elements: elements\n }\n }\n\n onSearchClicked() {\n let itemSlugs = this.widgetItemContexts.map((context: any) => {\n return context.config.slug;\n });\n let searchParams = this.searchForm.value;\n searchParams.widget_item_slugs = JSON.stringify(itemSlugs);\n this.objectService.removeEmptyAttributes(searchParams);\n\n this.dashboardPageService.getWidgetItems(searchParams).subscribe(res => {\n this.widgetConfig = res.content.data.widget_configs[this.widget.slug];\n this.widgetItems = res.content.data.widget_items;\n\n this.initializeWidget();\n this.getWidgetItemData();\n this.options = this.widgetItems[itemSlugs[0]].options;\n this.refreshFormContent();\n });\n }\n\n onAdditionalWidgetButtonClicked(buttonCallback: Function) {\n buttonCallback({\n onSuccess: () => {\n this.dashboardPageService.getWidgetItems({}).subscribe(res => {\n this.widgetConfig = res.content.data.widget_configs[this.widget.slug];\n this.widgetItems = res.content.data.widget_items;\n\n this.initializeWidget();\n this.getWidgetItemData();\n });\n }\n });\n }\n\n watchScreenSize(widgetDimensions: any) {\n this.screenSizeService.screenSize.subscribe((screenSize: any) => {\n this.screenSize = screenSize;\n this.widgetRowHeight = widgetDimensions.findByScreenSize(this.screenSize).rowHeight;\n });\n }\n\n getWidgetItemColspan(config: DashboardWidgetItemConfig): number {\n return config.size.findByScreenSize(this.screenSize).colspan;\n }\n\n getWidgetItemRowspan(config: DashboardWidgetItemConfig): number {\n return config.size.findByScreenSize(this.screenSize).rowspan;\n }\n}\n","<mat-card fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"0px\" class=\"dashboard-card\">\n <mat-card-header fxFlex=\"0 0 auto\">\n <mat-card-title>\n <span *ngIf=\"!dashboardWidgetService.icon; else iconHeader\" class=\"main-card-title dashboard-card-title\">{{ widget.label }}</span>\n <ng-template #iconHeader>\n <div>\n <mat-icon class=\"card-title-icon\">{{ dashboardWidgetService.icon }}</mat-icon>\n <span class=\"main-card-title dashboard-card-title\">\n {{ widget.label }}\n </span>\n </div>\n </ng-template>\n\n <ng-container *ngFor=\"let exportOption of exportOptions\">\n <button mat-button type=\"button\" class=\"export-button\" (click)=\"exportOption.export(options).subscribe()\">\n <span class=\"export-button-label\">{{ exportOption.label | translate }}</span>\n <mat-icon>download</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"additionalWidgetButtons\">\n <div class=\"widget-button-container\" [ngClass]=\"{ 'with-menu-button': dashboardWidgetService.showMenuButton }\">\n <button *ngFor=\"let button of additionalWidgetButtons\"\n mat-raised-button\n color=\"{{ button.color }}\"\n type=\"button\"\n class=\"widget-button\"\n [ngStyle]=\"button.styling\"\n (click)=\"onAdditionalWidgetButtonClicked(button.onClick)\"\n [disabled]=\"button.disabled\">\n {{ button.label | translate }}\n </button>\n </div>\n </ng-container>\n\n <button #menuTrigger mat-icon-button class=\"more-button\" [matMenuTriggerFor]=\"menu\" *ngIf=\"dashboardWidgetService.showMenuButton\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\" xPosition=\"before\">\n <div class=\"menu-form\" click-stop-propagation>\n <mantle-dashboard-card-search-menu #searchForm [content]=\"formContent\"></mantle-dashboard-card-search-menu>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <div fxFlex=\"1 1 auto\"></div>\n <div fxFlex=\"0 0 auto\">\n <button mat-raised-button color=\"primary\" type=\"button\" class=\"search-button\" (click)=\"onSearchClicked(); menuTrigger.closeMenu();\">\n {{ 'mantle.buttons.search' | translate }}\n </button>\n </div>\n </div>\n </div>\n </mat-menu>\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content fxFlex=\"1 0 1px\" fxAlign=\"center center\" class=\"dashboard-card-content\">\n\n <div class=\"grid-container\">\n <mat-grid-list\n [rowHeight]=\"widgetRowHeight\"\n [cols]=\"WIDGET_COLUMNS\">\n <mat-grid-tile *ngFor=\"let context of widgetItemContexts\" [colspan]=\"getWidgetItemColspan(context.config)\" [rowspan]=\"getWidgetItemRowspan(context.config)\">\n <mantle-dynamic-widget-display\n class=\"card-content-wrapper\"\n [widgetItem]=\"context.config\"\n [data]=\"context.data\"\n [options]=\"context.options\">\n </mantle-dynamic-widget-display>\n </mat-grid-tile>\n </mat-grid-list>\n </div>\n\n </mat-card-content>\n</mat-card>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { DynamicDashboardWidget, DynamicLayoutDashboardSection } from '../../../../data-structures/dynamic-layout.structure';\nimport { DashboardPageService } from '../../../../services/interfaces/dashboard-page.service';\nimport { DashboardWidgetService } from '../../../../services/interfaces/dashboard-widget.service';\nimport { ScreenSizeService } from '../../../../services/screen-size.service';\nimport { ArrayService } from '../../../../services/array.service';\n\n@Component({\n selector: 'mantle-dashboard-section',\n templateUrl: './dashboard-section.component.html',\n styleUrls: ['./dashboard-section.component.scss'],\n standalone: false\n})\nexport class DashboardSectionComponent implements OnInit {\n\n @Input() dashboardPageService!: DashboardPageService;\n @Input() slug: string | undefined;\n @Input() data: any = {};\n @Input() section!: DynamicLayoutDashboardSection;\n @Input() searchValues: any = {};\n\n public dashboardWidgetServices: DashboardWidgetService[] = [];\n public dashbordWidgets: DynamicDashboardWidget[] = [];\n\n private screenSize: string = 'default';\n public readonly SECTION_COLUMNS: number = 12;\n public rowHeight: string = '200px';\n\n constructor(private arrayService: ArrayService, private screenSizeService: ScreenSizeService) { }\n\n ngOnInit(): void {\n if (!this.slug) return;\n\n let dashboardSections = this.dashboardPageService.dashboardSections();\n let dashboardSection = this.arrayService.findByAttribute(dashboardSections, 'sectionSlug', this.slug);\n\n this.dashboardWidgetServices = dashboardSection.dashboardWidgetServices;\n\n this.filterDashboardWidgets();\n\n this.watchScreenSize(dashboardSection.sectionDimensions);\n }\n\n watchScreenSize(sectionDimensions: any) {\n this.screenSizeService.screenSize.subscribe((screenSize: any) => {\n this.screenSize = screenSize;\n this.rowHeight = sectionDimensions.findByScreenSize(this.screenSize).rowHeight;\n });\n }\n\n getColSpanForWidget(widgetSlug: string): number {\n const dashboardWidgetService = this.getDashboardWidgetService(widgetSlug);\n\n if (dashboardWidgetService == null) return 1;\n\n return dashboardWidgetService.widgetSize().findByScreenSize(this.screenSize).colspan;\n }\n\n getRowSpanForWidget(widgetSlug: string): number {\n const dashboardWidgetService = this.getDashboardWidgetService(widgetSlug);\n\n if (dashboardWidgetService == null) return 1;\n\n return dashboardWidgetService.widgetSize().findByScreenSize(this.screenSize).rowspan;\n }\n\n getDashboardWidgetService(widgetSlug: string): any {\n for (let widgetService of this.dashboardWidgetServices) {\n if (widgetService.slug == widgetSlug) return widgetService;\n }\n }\n\n filterDashboardWidgets() {\n this.dashbordWidgets = this.section.elements.filter((widget) => {\n return !widget.hidden;\n });\n }\n\n}\n","<div class=\"grid-container\">\n <mat-grid-list\n [rowHeight]=\"rowHeight\"\n [cols]=\"SECTION_COLUMNS\"\n [class.multi-column]=\"true\">\n\n <mat-grid-tile *ngFor=\"let widget of dashbordWidgets\" [colspan]=\"getColSpanForWidget(widget.slug)\" [rowspan]=\"getRowSpanForWidget(widget.slug)\">\n <mantle-dashboard-card\n [widget]=\"widget\"\n [widgetConfig]=\"data.widget_configs[widget.slug]\"\n [widgetItems]=\"data.widget_items\"\n [rowHeight]=\"rowHeight\"\n [dashboardWidgetService]=\"getDashboardWidgetService(widget.slug)\"\n [dashboardPageService]=\"dashboardPageService\"\n [searchValues]=\"searchValues\">\n </mantle-dashboard-card>\n </mat-grid-tile>\n\n </mat-grid-list>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutMarkdownSection } from '../../../../data-structures/dynamic-layout.structure';\n\n@Component({\n selector: 'mantle-markdown-details-section',\n templateUrl: './markdown-details-section.component.html',\n styleUrls: ['./markdown-details-section.component.scss'],\n standalone: false\n})\nexport class MarkdownDetailsSectionComponent {\n\n @Input() section!: DynamicLayoutMarkdownSection;\n\n}\n","<div class=\"markdown-wrapper\">\n <markdown ngPreserveWhitespaces *ngFor=\"let element of section.elements\">\n {{ element.text }}\n </markdown>\n</div>\n","import { Component, Input } from '@angular/core';\nimport {\n DynamicDetailsContent, DynamicLayoutDashboardSection, DynamicLayoutGridSection,\n DynamicLayoutMarkdownSection, DynamicLayoutRosterShiftListSection, DynamicLayoutSection,\n DynamicLayoutTableSection, DynamicLayoutReportSection\n} from '../../../../data-structures/dynamic-layout.structure';\nimport { DashboardPageService } from '../../../../services/interfaces/dashboard-page.service';\nimport { DetailPageService } from '../../../../services/interfaces/detail-page.service';\n\n@Component({\n selector: 'mantle-dynamic-details-section',\n templateUrl: './dynamic-details-section.component.html',\n styleUrls: ['./dynamic-details-section.component.scss'],\n standalone: false\n})\nexport class DynamicDetailsSectionComponent {\n\n @Input() detailPageService!: DetailPageService;\n @Input() content!: DynamicDetailsContent;\n @Input() section!: DynamicLayoutSection;\n\n constructor() { }\n\n asDynamicLayoutGridSection(section: any): DynamicLayoutGridSection {\n return section as DynamicLayoutGridSection;\n }\n\n asDynamicLayoutTableSection(section: any): DynamicLayoutTableSection {\n return section as DynamicLayoutTableSection;\n }\n\n asDynamicLayoutReportSection(section: any): DynamicLayoutReportSection {\n return section as DynamicLayoutReportSection;\n }\n\n asDynamicLayoutMarkdownSection(section: any): DynamicLayoutMarkdownSection {\n return section as DynamicLayoutMarkdownSection;\n }\n\n asDynamicLayoutDashboardSection(section: any): DynamicLayoutDashboardSection {\n return section as DynamicLayoutDashboardSection;\n }\n\n asDynamicLayoutRosterShiftListSection(section: any): DynamicLayoutRosterShiftListSection {\n return section as DynamicLayoutRosterShiftListSection;\n }\n\n asDashboardPageService(detailPageService: DetailPageService): DashboardPageService {\n return detailPageService as unknown as DashboardPageService;\n }\n\n}\n","<ng-container [ngSwitch]=\"section.layout\">\n\n <ng-container *ngSwitchCase=\"'grid'\">\n <mantle-grid-details-section\n [section]=\"asDynamicLayoutGridSection(section)\"\n [data]=\"content.data\">\n </mantle-grid-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'table'\">\n <mantle-table-details-section\n [section]=\"asDynamicLayoutTableSection(section)\"\n [data]=\"content.data\"\n [detailPageService]=\"detailPageService\">\n </mantle-table-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'dashboard'\">\n <mantle-dashboard-section\n [slug]=\"section.slug\"\n [section]=\"asDynamicLayoutDashboardSection(section)\"\n [data]=\"content.data\"\n [dashboardPageService]=\"asDashboardPageService(detailPageService)\">\n </mantle-dashboard-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'markdown'\">\n <mantle-markdown-details-section\n [section]=\"asDynamicLayoutMarkdownSection(section)\">\n </mantle-markdown-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'roster-shift-list'\">\n <mantle-roster-shift-list-details-section\n [section]=\"asDynamicLayoutRosterShiftListSection(section)\"\n [data]=\"content.data\">\n </mantle-roster-shift-list-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'report'\">\n <mantle-report-details-section\n [section]=\"asDynamicLayoutReportSection(section)\"\n [data]=\"content.data\">\n </mantle-report-details-section>\n </ng-container>\n\n</ng-container>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutContainer, DynamicDetailsContent } from '../../../../data-structures/dynamic-layout.structure';\nimport { DetailPageService } from '../../../../services/interfaces/detail-page.service';\n\n@Component({\n selector: 'mantle-accordion-details-container',\n templateUrl: './accordion-details-container.component.html',\n styleUrls: ['./accordion-details-container.component.scss'],\n standalone: false\n})\nexport class AccordionDetailsContainerComponent {\n\n @Input() detailPageService!: DetailPageService;\n @Input() content!: DynamicDetailsContent;\n @Input() container!: DynamicLayoutContainer;\n\n constructor() { }\n\n}\n","<mat-accordion multi class=\"dynamic-details accordion\">\n <ng-container *ngFor=\"let section of container.sections\">\n <mat-expansion-panel *ngIf=\"!section.hidden\" [expanded]=\"!section.collapsed\" class=\"dynamic-details-section\">\n <mat-expansion-panel-header>\n <mat-panel-title *ngIf=\"section.title\">\n <div class=\"title-wrapper\">\n <h4>{{ section.title }}</h4>\n <mat-divider></mat-divider>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n <mantle-dynamic-details-section [detailPageService]=\"detailPageService\" [section]=\"section\" [content]=\"content\">\n </mantle-dynamic-details-section>\n </mat-expansion-panel>\n </ng-container>\n</mat-accordion>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutContainer, DynamicDetailsContent } from '../../../../data-structures/dynamic-layout.structure';\nimport { DetailPageService } from '../../../../services/interfaces/detail-page.service'\n\n@Component({\n selector: 'mantle-plain-details-container',\n templateUrl: './plain-details-container.component.html',\n styleUrls: ['./plain-details-container.component.scss'],\n standalone: false\n})\nexport class PlainDetailsContainerComponent {\n\n @Input() detailPageService!: DetailPageService;\n @Input() content!: DynamicDetailsContent;\n @Input() container!: DynamicLayoutContainer;\n\n constructor() { }\n\n}\n","<div class=\"dynamic-details plain\">\n <ng-container *ngFor=\"let section of container.sections\">\n <div *ngIf=\"!section.hidden\" class=\"dynamic-details-section\">\n <mantle-section-title *ngIf=\"section.title\" [title]=\"section.title\"></mantle-section-title>\n <mantle-dynamic-details-section [detailPageService]=\"detailPageService\" [section]=\"section\" [content]=\"content\">\n </mantle-dynamic-details-section>\n </div>\n </ng-container>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutContainer, DynamicDetailsContent } from '../../../../data-structures/dynamic-layout.structure';\nimport { DetailPageService } from '../../../../services/interfaces/detail-page.service';\n\n@Component({\n selector: 'mantle-dynamic-details-container',\n templateUrl: './dynamic-details-container.component.html',\n styleUrls: ['./dynamic-details-container.component.scss'],\n standalone: false\n})\nexport class DynamicDetailsContainerComponent {\n\n @Input() detailPageService!: DetailPageService;\n @Input() content!: DynamicDetailsContent;\n @Input() container!: DynamicLayoutContainer;\n\n constructor() { }\n\n}\n","<ng-container [ngSwitch]=\"container.container_style\">\n\n <ng-container *ngSwitchCase=\"'plain'\">\n <mantle-plain-details-container [detailPageService]=\"detailPageService\" [container]=\"container\" [content]=\"content\">\n </mantle-plain-details-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'accordion'\">\n <mantle-accordion-details-container [detailPageService]=\"detailPageService\" [container]=\"container\" [content]=\"content\">\n </mantle-accordion-details-container>\n </ng-container>\n\n</ng-container>\n","import { Component, Input } from '@angular/core';\nimport { DynamicDetailsContent } from '../../../data-structures/dynamic-layout.structure';\nimport { DetailPageService } from '../../../services/interfaces/detail-page.service';\n\n@Component({\n selector: 'mantle-dynamic-details',\n templateUrl: './dynamic-details.component.html',\n styleUrls: ['./dynamic-details.component.scss'],\n standalone: false\n})\nexport class DynamicDetailsComponent {\n\n @Input() detailPageService!: DetailPageService;\n @Input() content!: DynamicDetailsContent;\n\n constructor() { }\n\n}\n","<ng-container *ngIf=\"content; else loader\">\n <ng-container *ngFor=\"let container of content.containers\">\n <mantle-dynamic-details-container [detailPageService]=\"detailPageService\" [container]=\"container\" [content]=\"content\">\n </mantle-dynamic-details-container>\n </ng-container>\n</ng-container>\n\n<ng-template #loader>\n <mantle-loader></mantle-loader>\n</ng-template>\n","import { Component, AfterViewChecked, ChangeDetectorRef, Inject } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\nimport { DynamicLayoutGridSection } from '../../../data-structures/dynamic-layout.structure';\nimport { DynamicFormService } from '../../../services/dynamic-form.service';\nimport { FormPageService } from '../../../services/interfaces/form-page.service';\n\nexport interface DialogNestedFormParams {\n title: string;\n section: DynamicLayoutGridSection;\n data: any;\n showDeleteButton: boolean;\n saveButtonText: string;\n formPageService: FormPageService;\n}\n\n@Component({\n selector: 'mantle-dialog-nested-form',\n templateUrl: './dialog-nested-form.component.html',\n styleUrls: ['./dialog-nested-form.component.scss'],\n standalone: false\n})\nexport class DialogNestedFormComponent implements AfterViewChecked {\n\n public title: string;\n public section: DynamicLayoutGridSection;\n public showDeleteButton: boolean;\n public saveButtonText: string;\n public formPageService!: FormPageService;\n public form!: FormGroup;\n\n constructor(private changeDetectorRef: ChangeDetectorRef, private dialogRef: MatDialogRef<DialogNestedFormComponent>,\n @Inject(MAT_DIALOG_DATA) private dialogNestedFormParams: DialogNestedFormParams,\n private dynamicFormService: DynamicFormService) {\n this.title = this.dialogNestedFormParams.title;\n this.section = this.dialogNestedFormParams.section;\n this.showDeleteButton = this.dialogNestedFormParams.showDeleteButton;\n this.formPageService = this.dialogNestedFormParams.formPageService;\n\n if (!this.dialogNestedFormParams.data) {\n this.dialogNestedFormParams.data = this.dynamicFormService.generateFormInitData(this.dialogNestedFormParams.section.elements);\n }\n\n this.saveButtonText = this.dialogNestedFormParams.saveButtonText || 'mantle.buttons.save';\n\n this.form = this.dynamicFormService.toFormGroup(this.dialogNestedFormParams.data);\n if (this.formPageService) {\n this.formPageService.onDialogFormContentLoaded(this.dialogNestedFormParams);\n this.form.valueChanges.subscribe(val => {\n let changes = this.formPageService.onDialogFormValueChanged(this.dialogNestedFormParams, this.form.getRawValue(), this.form);\n if (changes) this.form.patchValue(changes);\n });\n }\n }\n\n ngAfterViewChecked(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n onSave() {\n let formData = this.dynamicFormService.transformFormValue(this.form.getRawValue());\n this.dialogRef.close(formData);\n }\n\n onDelete() {\n let formData = this.form.getRawValue();\n formData._destroy = 1;\n this.dialogRef.close(formData);\n }\n\n onCancel() {\n this.dialogRef.close();\n }\n\n}\n","<div mat-dialog-title fxLayout=\"row\" fxLayoutAlign=\"start\" fxLayoutGap=\"8px\" class=\"dialog-title-section\">\n <mantle-section-title fxFlex=\"1 0 1px\" [title]=\"title\"></mantle-section-title>\n <button fxFlex=\"0 0 auto\" mat-icon-button tabindex=\"-1\" (click)=\"onCancel()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n\n <mantle-grid-form-section\n [section]=\"section\"\n [form]=\"form\">\n </mantle-grid-form-section>\n\n</mat-dialog-content>\n\n<mat-dialog-actions fxLayout=\"row\" class=\"actions-section\">\n <button fxFlex=\"0 0 auto\" *ngIf=\"showDeleteButton\" mat-button (click)=\"onDelete()\" color=\"warn\">{{ 'mantle.buttons.delete' | translate }}</button>\n <div fxFlex=\"1 1 auto\"></div>\n <button fxFlex=\"0 0 auto\" mat-button (click)=\"onSave()\" [disabled]=\"!form.valid\">{{ saveButtonText | translate }}</button>\n</mat-dialog-actions>\n","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatDialog, MatDialogConfig } from \"@angular/material/dialog\";\nimport { DialogNestedDetailsComponent } from '../../../../components/details/dialog-nested-details/dialog-nested-details.component';\nimport { DialogNestedFormComponent } from '../../../../components/form/dialog-nested-form/dialog-nested-form.component';\nimport { DynamicLayoutTableSection } from '../../../../data-structures/dynamic-layout.structure';\nimport { ArrayService } from '../../../../services/array.service';\nimport { FormPageService } from '../../../../services/interfaces/form-page.service';\n\n@Component({\n selector: 'mantle-table-form-section',\n templateUrl: './table-form-section.component.html',\n styleUrls: ['./table-form-section.component.scss'],\n standalone: false\n})\nexport class TableFormSectionComponent {\n\n @Input() title?: string;\n @Input() section!: DynamicLayoutTableSection;\n @Input() form!: FormGroup;\n @Input() formPageService!: FormPageService;\n\n constructor(private dialog: MatDialog, private arrayService: ArrayService) { }\n\n canAddRecord() {\n if (!this.section.config.can_add) return false;\n if (!this.section.options.max_record_count) return true;\n\n let recordCount = this.form.value[this.section.config.attr].filter((item: any) => {\n return !item._destroy;\n }).length;\n\n return this.section.options.max_record_count > recordCount;\n }\n\n openDetailsDialog(record: any): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n title: 'Item',\n section: this.section.config.modal_section,\n data: record,\n showEditButton: this.section.config.can_edit\n };\n dialogConfig.width = '80%';\n\n if (this.section.config.modal_section) {\n dialogConfig.data.section = this.formPageService.formDialogLayoutChanges(this.section.config.modal_section, record);\n }\n\n const dialogRef = this.dialog.open(DialogNestedDetailsComponent, dialogConfig);\n dialogRef.afterClosed().subscribe((dialogResponse) => {\n if (dialogResponse && dialogResponse.edit) {\n this.openFormDialog(record);\n }\n });\n }\n\n openFormDialog(record?: any): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n title: record ? 'Edit Item' : 'Add Item',\n section: this.section.config.modal_section,\n data: record,\n showDeleteButton: this.section.config.can_delete,\n formPageService: this.formPageService\n };\n dialogConfig.width = '80%';\n\n if (this.section.config.modal_section) {\n dialogConfig.data.section = this.formPageService.formDialogLayoutChanges(this.section.config.modal_section, record || null);\n }\n\n const dialogRef = this.dialog.open(DialogNestedFormComponent, dialogConfig);\n dialogRef.afterClosed().subscribe((formData) => {\n if (formData) {\n this.onDialogFormClosed(formData, record);\n }\n });\n }\n\n onDialogFormClosed(formData: any, existingRecord?: any): void {\n let tableContent = [ ...this.form.getRawValue()[this.section.config.attr] ];\n\n if (formData.id) {\n this.arrayService.replaceById(tableContent, formData.id, formData);\n }\n else if (existingRecord) {\n if (formData._destroy) this.arrayService.removeItem(tableContent, existingRecord);\n else this.arrayService.replaceItem(tableContent, existingRecord, formData);\n }\n else {\n if (formData._destroy) return;\n tableContent.push(formData);\n }\n\n this.form.patchValue({\n [this.section.config.attr]: tableContent\n });\n }\n\n get valid(): boolean {\n return this.form.valid;\n }\n\n get value(): any {\n return this.form.getRawValue();\n }\n\n reset(): void {\n this.form.reset();\n }\n\n}\n","<mantle-section-title *ngIf=\"title\" [title]=\"title\"></mantle-section-title>\n\n<div class=\"table-section-content\">\n <button *ngIf=\"canAddRecord()\" mat-raised-button color=\"primary\" type=\"button\" class=\"add-button\" (click)=\"openFormDialog()\">\n + {{ 'mantle.buttons.add_item' | translate }}\n </button>\n\n <mantle-dynamic-table\n [columns]=\"section.elements\"\n [items]=\"form.value[section.config.attr]\"\n [withClickableRows]=\"true\"\n (rowClicked)=\"openDetailsDialog($event)\">\n </mantle-dynamic-table>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DynamicLayoutRosterShiftListSection } from '../../../../data-structures/dynamic-layout.structure';\n\n@Component({\n selector: 'mantle-roster-shift-list-form-section',\n templateUrl: './roster-shift-list-form-section.component.html',\n styleUrls: ['./roster-shift-list-form-section.component.scss'],\n standalone: false\n})\nexport class RosterShiftListFormSectionComponent implements OnInit {\n\n @Input() title?: string;\n @Input() section!: DynamicLayoutRosterShiftListSection;\n @Input() form!: FormGroup;\n\n public dropdownValues!: { label: string, value: string }[];\n\n constructor() { }\n\n ngOnInit(): void {\n this.setDropdownValues();\n }\n\n canAddRecord() {\n if (!this.section.config.can_add) return false;\n if (!this.section.options.max_record_count) return true;\n\n let recordCount = this.form.value[this.section.config.attr].filter((item: any) => {\n return !item._destroy;\n }).length;\n\n return this.section.options.max_record_count > recordCount;\n }\n\n setDropdownValues(): void {\n let primaryColumnIndex = this.section.elements.findIndex((element) => element.attr == this.section.options.draggable_attr);\n if (primaryColumnIndex == -1) return;\n\n this.dropdownValues = this.section.elements[primaryColumnIndex].options.values.filter((option: any) => { return !option.hidden });;\n }\n\n onAddClicked(value: string) {\n let sortAttr = this.section.options.ordinal;\n let attribute = this.section.options.draggable_attr;\n let tableContent = [ ...this.form.getRawValue()[this.section.config.attr] ];\n\n let formData: any = {};\n formData[sortAttr] = tableContent.filter(item => { return !item._destroy }).length + 1;\n formData[attribute] = value;\n tableContent.push(formData);\n\n this.form.patchValue({\n [this.section.config.attr]: tableContent\n });\n }\n\n get valid(): boolean {\n return this.form.valid;\n }\n\n get value(): any {\n return this.form.getRawValue();\n }\n\n reset(): void {\n this.form.reset();\n }\n\n}\n","<mantle-section-title *ngIf=\"title\" [title]=\"title\"></mantle-section-title>\n\n<div class=\"roster-shift-list-content\">\n <mantle-draggable-table\n [columns]=\"section.elements\"\n [items]=\"form.value[section.config.attr]\"\n [sortAttr]=\"section.options.ordinal\"\n [writable]=\"true\">\n </mantle-draggable-table>\n\n <div class=\"dropdown-add-button-section\" *ngIf=\"canAddRecord()\">\n <button mat-raised-button color=\"primary\"\n type=\"button\" class=\"add-button\"\n [matMenuTriggerFor]=\"dropdownMenu\">\n + {{ 'mantle.buttons.add_item' | translate }} \n </button>\n <mat-menu #dropdownMenu=\"matMenu\">\n <button *ngFor=\"let dropdownValue of dropdownValues\"\n mat-menu-item\n (click)=\"onAddClicked(dropdownValue.value)\">\n {{ dropdownValue.label }}\n </button>\n </mat-menu>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport {\n DynamicFormContent, DynamicLayoutDashboardSection, DynamicLayoutGridSection,\n DynamicLayoutMarkdownSection, DynamicLayoutRosterShiftListSection, DynamicLayoutSection,\n DynamicLayoutTableSection\n} from '../../../../data-structures/dynamic-layout.structure';\nimport { DashboardPageService } from '../../../../services/interfaces/dashboard-page.service';\nimport { DetailPageService } from '../../../../services/interfaces/detail-page.service';\nimport { FormPageService } from '../../../../services/interfaces/form-page.service';\n\n@Component({\n selector: 'mantle-dynamic-form-section',\n templateUrl: './dynamic-form-section.component.html',\n styleUrls: ['./dynamic-form-section.component.scss'],\n standalone: false\n})\nexport class DynamicFormSectionComponent {\n\n @Input() formPageService!: FormPageService;\n @Input() section!: DynamicLayoutSection;\n @Input() content!: DynamicFormContent;\n @Input() form!: FormGroup;\n\n constructor() { }\n\n asDynamicLayoutGridSection(section: any): DynamicLayoutGridSection {\n return section as DynamicLayoutGridSection;\n }\n\n asDynamicLayoutTableSection(section: any): DynamicLayoutTableSection {\n return section as DynamicLayoutTableSection;\n }\n\n asDynamicLayoutMarkdownSection(section: any): DynamicLayoutMarkdownSection {\n return section as DynamicLayoutMarkdownSection;\n }\n\n asDynamicLayoutDashboardSection(section: any): DynamicLayoutDashboardSection {\n return section as DynamicLayoutDashboardSection;\n }\n\n asDynamicLayoutRosterShiftListSection(section: any): DynamicLayoutRosterShiftListSection {\n return section as DynamicLayoutRosterShiftListSection;\n }\n\n asDashboardPageService(formPageService: FormPageService): DashboardPageService {\n return formPageService as unknown as DashboardPageService;\n }\n\n asDetailPageService(formPageService: FormPageService): DetailPageService {\n return formPageService as unknown as DetailPageService;\n }\n\n}\n","<ng-container *ngIf=\"section.writable\">\n <ng-container *ngTemplateOutlet=\"dynamicFormContent; context: { form: form, section: section, content: content };\"></ng-container>\n</ng-container>\n<ng-container *ngIf=\"!section.writable\">\n <ng-container *ngTemplateOutlet=\"dynamicDetailsContent; context: { section: section, content: content };\"></ng-container>\n</ng-container>\n\n<ng-template #dynamicFormContent let-form=\"form\" let-content=\"content\" let-section=\"section\">\n <ng-container [ngSwitch]=\"section.layout\">\n\n <ng-container *ngSwitchCase=\"'grid'\">\n <mantle-grid-form-section\n [section]=\"asDynamicLayoutGridSection(section)\"\n [form]=\"form\"\n [errors]=\"content.errors || {}\">\n </mantle-grid-form-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'table'\">\n <mantle-table-form-section\n [section]=\"asDynamicLayoutTableSection(section)\"\n [form]=\"form\"\n [formPageService]=\"formPageService\">\n </mantle-table-form-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'roster-shift-list'\">\n <mantle-roster-shift-list-form-section\n [section]=\"asDynamicLayoutRosterShiftListSection(section)\"\n [form]=\"form\">\n </mantle-roster-shift-list-form-section>\n </ng-container>\n\n </ng-container>\n</ng-template>\n\n<ng-template #dynamicDetailsContent let-content=\"content\" let-section=\"section\">\n <ng-container [ngSwitch]=\"section.layout\">\n\n <ng-container *ngSwitchCase=\"'grid'\">\n <mantle-grid-details-section\n [section]=\"asDynamicLayoutGridSection(section)\"\n [data]=\"content.data\">\n </mantle-grid-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'table'\">\n <mantle-table-details-section\n [section]=\"asDynamicLayoutTableSection(section)\"\n [data]=\"content.data\"\n [detailPageService]=\"asDetailPageService(formPageService)\">\n </mantle-table-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'dashboard'\">\n <mantle-dashboard-section\n [slug]=\"section.slug\"\n [section]=\"asDynamicLayoutDashboardSection(section)\"\n [data]=\"content.data\"\n [dashboardPageService]=\"asDashboardPageService(formPageService)\">\n </mantle-dashboard-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'markdown'\">\n <mantle-markdown-details-section\n [section]=\"asDynamicLayoutMarkdownSection(section)\">\n </mantle-markdown-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'roster-shift-list'\">\n <mantle-roster-shift-list-details-section\n [section]=\"asDynamicLayoutRosterShiftListSection(section)\"\n [data]=\"content.data\">\n </mantle-roster-shift-list-details-section>\n </ng-container>\n\n </ng-container>\n</ng-template>\n","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DynamicLayoutContainer, DynamicFormContent } from '../../../../data-structures/dynamic-layout.structure';\nimport { FormPageService } from '../../../../services/interfaces/form-page.service';\n\n@Component({\n selector: 'mantle-plain-form-container',\n templateUrl: './plain-form-container.component.html',\n styleUrls: ['./plain-form-container.component.scss'],\n standalone: false\n})\nexport class PlainFormContainerComponent {\n\n @Input() formPageService!: FormPageService;\n @Input() content!: DynamicFormContent;\n @Input() container!: DynamicLayoutContainer;\n @Input() form!: FormGroup;\n\n constructor() { }\n\n}\n","<div class=\"dynamic-form plain\">\n <ng-container *ngFor=\"let section of container.sections\">\n <div *ngIf=\"!section.hidden\" class=\"dynamic-form-section\">\n <mantle-section-title *ngIf=\"section.title\" [title]=\"section.title\"></mantle-section-title>\n <mantle-dynamic-form-section [formPageService]=\"formPageService\" [section]=\"section\" [content]=\"content\" [form]=\"form\">\n </mantle-dynamic-form-section>\n </div>\n </ng-container>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DynamicLayoutContainer, DynamicFormContent } from '../../../../data-structures/dynamic-layout.structure';\nimport { FormPageService } from '../../../../services/interfaces/form-page.service';\n\n@Component({\n selector: 'mantle-accordion-form-container',\n templateUrl: './accordion-form-container.component.html',\n styleUrls: ['./accordion-form-container.component.scss'],\n standalone: false\n})\nexport class AccordionFormContainerComponent {\n\n @Input() formPageService!: FormPageService;\n @Input() content!: DynamicFormContent;\n @Input() container!: DynamicLayoutContainer;\n @Input() form!: FormGroup;\n\n constructor() { }\n\n}\n","<mat-accordion multi class=\"dynamic-form accordion\">\n <ng-container *ngFor=\"let section of container.sections\">\n <mat-expansion-panel *ngIf=\"!section.hidden\" [expanded]=\"!section.collapsed\" class=\"dynamic-form-section\">\n <mat-expansion-panel-header>\n <mat-panel-title *ngIf=\"section.title\">\n <div class=\"title-wrapper\">\n <h4>{{ section.title }}</h4>\n <mat-divider></mat-divider>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n <mantle-dynamic-form-section [formPageService]=\"formPageService\" [section]=\"section\" [content]=\"content\" [form]=\"form\">\n </mantle-dynamic-form-section>\n </mat-expansion-panel>\n </ng-container>\n</mat-accordion>\n","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DynamicLayoutContainer, DynamicFormContent } from '../../../../data-structures/dynamic-layout.structure';\nimport { FormPageService } from '../../../../services/interfaces/form-page.service';\n\n@Component({\n selector: 'mantle-dynamic-form-container',\n templateUrl: './dynamic-form-container.component.html',\n styleUrls: ['./dynamic-form-container.component.scss'],\n standalone: false\n})\nexport class DynamicFormContainerComponent {\n\n @Input() formPageService!: FormPageService;\n @Input() content!: DynamicFormContent;\n @Input() container!: DynamicLayoutContainer;\n @Input() form!: FormGroup;\n\n constructor() { }\n\n}\n","<ng-container [ngSwitch]=\"container.container_style\">\n\n <ng-container *ngSwitchCase=\"'plain'\">\n <mantle-plain-form-container [formPageService]=\"formPageService\" [container]=\"container\" [content]=\"content\" [form]=\"form\">\n </mantle-plain-form-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'accordion'\">\n <mantle-accordion-form-container [formPageService]=\"formPageService\" [container]=\"container\" [content]=\"content\" [form]=\"form\">\n </mantle-accordion-form-container>\n </ng-container>\n\n</ng-container>\n","import { Component, OnChanges, AfterViewChecked, ChangeDetectorRef, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DynamicFormContent } from '../../../data-structures/dynamic-layout.structure';\nimport { DynamicFormService } from '../../../services/dynamic-form.service';\nimport { FormPageService } from '../../../services/interfaces/form-page.service';\n\n@Component({\n selector: 'mantle-dynamic-form',\n templateUrl: './dynamic-form.component.html',\n styleUrls: ['./dynamic-form.component.scss'],\n standalone: false\n})\nexport class DynamicFormComponent implements OnChanges, AfterViewChecked {\n\n @Input() formPageService!: FormPageService;\n @Input() content!: DynamicFormContent;\n\n public form!: FormGroup;\n\n constructor(private changeDetectorRef: ChangeDetectorRef, private dynamicFormService: DynamicFormService) { }\n\n ngOnChanges(): void {\n if (this.content) {\n this.form = this.dynamicFormService.toFormGroup(this.content.data);\n\n if (this.formPageService) {\n this.form.valueChanges.subscribe(val => {\n let changes = this.formPageService.onFormValueChanged(this.content, this.form.getRawValue());\n if (changes) {\n this.content.data = {...this.content.data, ...changes};\n this.form.patchValue(changes);\n }\n });\n }\n }\n }\n\n ngAfterViewChecked(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n get valid(): boolean {\n return this.form?.valid;\n }\n\n get value(): any {\n return this.dynamicFormService.transformFormValue(this.form?.getRawValue());\n }\n\n reset(): void {\n this.form.reset();\n }\n\n}\n","<ng-container *ngIf=\"content; else loader\">\n <ng-container *ngFor=\"let container of content.containers\">\n <mantle-dynamic-form-container [formPageService]=\"formPageService\" [container]=\"container\" [content]=\"content\" [form]=\"form\">\n </mantle-dynamic-form-container>\n </ng-container>\n</ng-container>\n\n<ng-template #loader>\n <mantle-loader></mantle-loader>\n</ng-template>\n","import { Component, Inject } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\n\n@Component({\n selector: 'mantle-snackbar',\n templateUrl: './snackbar.component.html',\n styleUrls: ['./snackbar.component.scss'],\n standalone: false\n})\nexport class SnackbarComponent {\n\n public icon: string = '';\n\n constructor(@Inject(MAT_SNACK_BAR_DATA) public data: any, private snackbarRef: MatSnackBarRef<SnackbarComponent>) {\n switch (this.data.snackType) {\n case 'success':\n this.icon = 'check_circle_outline';\n break;\n case 'error':\n this.icon = 'error';\n break;\n case 'info':\n this.icon = 'info';\n break;\n }\n }\n\n close() {\n this.snackbarRef.dismiss();\n }\n}\n","<div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"8px\" class=\"snack-container\">\n <div fxFlex=\"0 0 auto\">\n <mat-icon class=\"large-icon\">{{ icon }}</mat-icon>\n </div>\n <div fxFlex=\"1 0 1px\">\n <span>{{ data.message | translate }}</span>\n </div>\n <div fxFlex=\"0 0 auto\">\n <button mat-icon-button (click)=\"close()\"><mat-icon>done</mat-icon></button>\n </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { SnackbarComponent } from '../components/widgets/snackbar/snackbar.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AnnouncementService {\n\n constructor(private snackbar: MatSnackBar) { }\n\n info(message: string) {\n this.snackbar.openFromComponent(SnackbarComponent, {\n data: { message: message, snackType: 'info' },\n panelClass: 'info-announcement',\n duration: 10000,\n horizontalPosition: 'center'\n });\n }\n\n success(message: string) {\n this.snackbar.openFromComponent(SnackbarComponent, {\n data: { message: message, snackType: 'success' },\n panelClass: 'success-announcement',\n duration: 3000,\n horizontalPosition: 'center'\n });\n }\n\n error(message: string) {\n this.snackbar.openFromComponent(SnackbarComponent, {\n data: { message: message, snackType: 'error' },\n panelClass: 'warn-announcement',\n duration: 3000,\n horizontalPosition: 'center'\n });\n }\n}\n","import { AfterViewChecked, ChangeDetectorRef, Component, Inject, ViewChild } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\nimport { Observable, of as observableOf } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { WebApiDeleteResponse, WebApiFormResponse, WebApiSaveResponse } from '../../../services/adapters/web-api-crud.adapter';\nimport { DynamicFormComponent } from '../../../components/form/dynamic-form/dynamic-form.component';\nimport { AnnouncementService } from '../../../services/announcement.service';\nimport { ObjectService } from '../../../services/object.service';\nimport { FormPageService } from '../../../services/interfaces/form-page.service';\n\nexport interface DialogFormParams {\n formPageService: FormPageService;\n id: string | undefined;\n title: string;\n initData: any;\n}\n\n@Component({\n selector: 'mantle-dialog-form',\n templateUrl: './dialog-form.component.html',\n styleUrls: ['./dialog-form.component.scss'],\n standalone: false\n})\nexport class DialogFormComponent implements AfterViewChecked {\n\n @ViewChild(DynamicFormComponent) dynamicForm!: DynamicFormComponent;\n\n public formPageService: FormPageService;\n public id: string | undefined;\n public title: string;\n public content$!: Observable<any>;\n public isSaveInProgress!: boolean;\n public isDeleteInProgress!: boolean;\n\n constructor(private dialogRef: MatDialogRef<DialogFormComponent>,\n @Inject(MAT_DIALOG_DATA) private dialogFormParams: DialogFormParams,\n private changeDetectorRef: ChangeDetectorRef,\n private announcementService: AnnouncementService, private objectService: ObjectService) {\n this.formPageService = this.dialogFormParams.formPageService;\n this.id = this.dialogFormParams.id;\n this.title = this.dialogFormParams.title;\n\n let responseObservable = this.id ? this.formPageService.getEdit(this.id) : this.formPageService.getNew(this.dialogFormParams.initData);\n\n this.content$ = responseObservable.pipe(\n map((res: WebApiFormResponse) => {\n if (this.dialogFormParams.initData) {\n res.content.data = this.objectService.deepMerge(res.content.data, this.dialogFormParams.initData);\n }\n return res.content;\n })\n );\n }\n\n ngAfterViewChecked(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n onCancelClicked() {\n this.close();\n }\n\n onSaveClicked() {\n this.isSaveInProgress = true;\n\n let responseObservable = this.id ? this.formPageService.update(this.id, this.dynamicForm.value) :\n this.formPageService.create(this.dynamicForm.value);\n\n responseObservable.subscribe(\n res => { this.onSaveSuccess(res); },\n res => { this.onSaveFailure(res); }\n );\n }\n\n onSaveSuccess(res: WebApiSaveResponse): void {\n this.id = res.id;\n this.content$ = observableOf(res.content);\n this.announcementService.success('mantle.messages.save_successful');\n this.close(res.content.data);\n\n this.isSaveInProgress = false;\n }\n\n onSaveFailure(res: { error: WebApiSaveResponse }): void {\n if (res.error.content) {\n this.content$ = observableOf(res.error.content);\n }\n else {\n this.close();\n }\n\n this.announcementService.error('mantle.messages.save_failed');\n\n if (!!res.error.alert?.message) {\n this.announcementService.error(res.error.alert.message);\n }\n\n this.isSaveInProgress = false;\n }\n\n onDeleteClicked() {\n this.formPageService.delete(\n this.id!,\n () => { this.isDeleteInProgress = true; },\n (res: WebApiDeleteResponse) => { this.onDeleteSuccess(res); },\n (res: WebApiDeleteResponse) => { this.onDeleteFailure(res); }\n );\n }\n\n onDeleteSuccess(res: WebApiDeleteResponse): void {\n this.announcementService.success('mantle.messages.delete_successful');\n this.close({ id: this.id, _destroy: true });\n \n this.isDeleteInProgress = false;\n }\n\n onDeleteFailure(res: WebApiDeleteResponse): void {\n this.announcementService.error('mantle.messages.delete_failed');\n \n this.isDeleteInProgress = false;\n }\n\n close(result: any = false) {\n this.dialogRef.close(result);\n }\n\n}\n","<div mat-dialog-title fxLayout=\"row\" fxLayoutAlign=\"start\" fxLayoutGap=\"8px\" class=\"dialog-title-section\">\n <mantle-section-title fxFlex=\"1 0 1px\" [title]=\"title\"></mantle-section-title>\n <button fxFlex=\"0 0 auto\" mat-icon-button tabindex=\"-1\" (click)=\"onCancelClicked()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <mantle-dynamic-form #dynamicForm [content]=\"content$ | async\"></mantle-dynamic-form>\n</mat-dialog-content>\n\n<mat-dialog-actions fxLayout=\"row\" class=\"actions-section\">\n <div fxFlex=\"0 0 auto\" *ngIf=\"!!id && formPageService.showDeleteButtonInForm\">\n <button mat-button\n *ngIf=\"!isDeleteInProgress\"\n color=\"warn\"\n type=\"button\"\n class=\"delete-button\"\n (click)=\"onDeleteClicked()\">\n {{ 'mantle.buttons.delete' | translate }}\n </button>\n\n <button mat-raised-button\n *ngIf=\"isDeleteInProgress\"\n color=\"warn\"\n type=\"button\"\n class=\"button-with-spinner deleting-button\"\n [disabled]=\"true\">\n {{ 'mantle.buttons.deleting' | translate }}\n <mat-spinner [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n\n <div fxFlex=\"1 1 auto\"></div>\n\n <div fxFlex=\"0 0 auto\">\n <button mat-raised-button\n *ngIf=\"!isSaveInProgress\"\n color=\"primary\"\n type=\"button\"\n class=\"save-button\"\n (click)=\"onSaveClicked()\"\n [disabled]=\"!dynamicForm?.valid\">\n {{ 'mantle.buttons.save' | translate }}\n </button>\n\n <button mat-raised-button\n *ngIf=\"isSaveInProgress\"\n color=\"primary\"\n type=\"button\"\n class=\"button-with-spinner saving-button\"\n (click)=\"onSaveClicked()\"\n [disabled]=\"true\">\n {{ 'mantle.buttons.saving' | translate }}\n <mat-spinner [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n</mat-dialog-actions>\n","import { Component, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { DynamicLayoutEditorFormField } from '../../../../data-structures/dynamic-layout.structure';\nimport { DialogNestedFormComponent } from '../../../../components/form/dialog-nested-form/dialog-nested-form.component';\n\n@Component({\n selector: 'mantle-layout-editor-field-element',\n templateUrl: './layout-editor-field-element.component.html',\n styleUrls: ['./layout-editor-field-element.component.scss'],\n standalone: false\n})\nexport class LayoutEditorFieldElementComponent {\n\n @Input() element!: DynamicLayoutEditorFormField;\n @Input() showControls: boolean = true;\n\n constructor(private dialog: MatDialog) { }\n\n onEditElementClicked() {\n const dialogRef = this.dialog.open(DialogNestedFormComponent, this.elementDialogConfig(this.element));\n\n dialogRef.afterClosed().subscribe(formData => {\n if (!formData) return;\n\n this.element.label = formData.label;\n this.element.attr_type = formData.attr_type;\n });\n }\n\n elementDialogConfig(record: any): MatDialogConfig {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n title: 'Edit Layout Element',\n data: {\n label: record.label,\n attr_name: record.attr_name,\n attr_type: record.attr_type\n },\n section: {\n singleColumn: true,\n elements: [\n { label: 'Label', attr: 'label', type: 'string', required: true },\n { label: 'Attribute', attr: 'attr_name', type: 'string', disabled: true },\n { label: 'Type', attr: 'attr_type', type: 'dropdown', required: true,\n options: {\n values: [\n { value: 'string', label: 'String' },\n { value: 'string-lg', label: 'Wide String' },\n { value: 'text', label: 'Text Area' },\n { value: 'chips', label: 'Chips' },\n { value: 'number', label: 'Number' },\n { value: 'date', label: 'Date' },\n { value: 'datetime', label: 'Date & Time' },\n ]\n }\n }\n ]\n }\n };\n dialogConfig.width = '40%';\n\n return dialogConfig;\n }\n\n onDeleteElementClicked() {\n this.element._destroy = true;\n }\n\n}\n","<mat-card>\n <div class=\"element-content\" fxLayout=\"column\" fxLayoutAlign=\"stretch\">\n\n <div fxFlex=\"0 0 40px\">\n <div *ngIf=\"showControls\" fxLayout=\"row\" fxLayoutAlign=\"center start\" class=\"element-controls\">\n <div fxFlex=\"0 0 auto\">\n <button mat-icon-button\n type=\"button\">\n <mat-icon>drag_indicator</mat-icon>\n </button>\n </div>\n <div fxFlex=\"1 1 auto\"></div>\n <div *ngIf=\"element.user_specified\" fxFlex=\"0 0 auto\">\n <button mat-icon-button\n color=\"primary\"\n type=\"button\"\n (click)=\"onEditElementClicked()\">\n <mat-icon>edit</mat-icon>\n </button>\n </div>\n <div *ngIf=\"element.user_specified\" fxFlex=\"0 0 auto\">\n <button mat-icon-button\n color=\"warn\"\n type=\"button\"\n (click)=\"onDeleteElementClicked()\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n\n <div fxFlex=\"1 0 0\"></div>\n\n <div fxFlex=\"0 0 auto\">\n <h4 class=\"label\">{{ element.label }}</h4>\n </div>\n\n <div fxFlex=\"1 0 0\"></div>\n\n <div fxFlex=\"0 0 auto\">\n <h5 class=\"properties\"><b>{{ '{' }}</b> {{ element.attr_type }} <b>{{ '}' }}</b></h5>\n </div>\n\n </div>\n</mat-card>\n","import { Component, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { DynamicLayoutEditorTableColumn } from '../../../../data-structures/dynamic-layout.structure';\nimport { DialogNestedFormComponent } from '../../../../components/form/dialog-nested-form/dialog-nested-form.component';\n\n@Component({\n selector: 'mantle-layout-editor-table-column-element',\n templateUrl: './layout-editor-table-column-element.component.html',\n styleUrls: ['./layout-editor-table-column-element.component.scss'],\n standalone: false\n})\nexport class LayoutEditorTableColumnElementComponent {\n\n @Input() element!: DynamicLayoutEditorTableColumn;\n @Input() showControls: boolean = true;\n\n constructor(private dialog: MatDialog) { }\n\n onEditElementClicked() {\n const dialogRef = this.dialog.open(DialogNestedFormComponent, this.elementDialogConfig(this.element));\n\n dialogRef.afterClosed().subscribe(formData => {\n if (!formData) return;\n\n this.element.label = formData.label;\n this.element.attr_type = formData.attr_type;\n });\n }\n\n elementDialogConfig(record: any): MatDialogConfig {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n title: 'Edit Table Column',\n data: {\n label: record.label,\n attr_name: record.attr_name,\n attr_type: record.attr_type\n },\n section: {\n singleColumn: true,\n elements: [\n { label: 'Label', attr: 'label', type: 'string', required: true },\n { label: 'Attribute', attr: 'attr_name', type: 'string', disabled: true },\n { label: 'Type', attr: 'attr_type', type: 'dropdown', required: true,\n options: {\n values: [\n { value: 'string', label: 'String' },\n { value: 'string-lg', label: 'Wide String' },\n { value: 'text', label: 'Text Area' },\n { value: 'chips', label: 'Chips' },\n { value: 'number', label: 'Number' },\n { value: 'date', label: 'Date' },\n { value: 'datetime', label: 'Date & Time' },\n ]\n }\n }\n ]\n }\n };\n dialogConfig.width = '40%';\n\n return dialogConfig;\n }\n\n onDeleteElementClicked() {\n this.element._destroy = true;\n }\n\n}\n","<mat-card>\n <div class=\"element-content\" fxLayout=\"column\" fxLayoutAlign=\"stretch\">\n\n <div fxFlex=\"0 0 40px\">\n <div *ngIf=\"showControls\" fxLayout=\"row\" fxLayoutAlign=\"center start\" class=\"element-controls\">\n <div fxFlex=\"0 0 auto\">\n <button mat-icon-button\n type=\"button\">\n <mat-icon>drag_indicator</mat-icon>\n </button>\n </div>\n <div fxFlex=\"1 1 auto\"></div>\n <div *ngIf=\"element.user_specified\" fxFlex=\"0 0 auto\">\n <button mat-icon-button\n color=\"primary\"\n type=\"button\"\n (click)=\"onEditElementClicked()\">\n <mat-icon>edit</mat-icon>\n </button>\n </div>\n <div *ngIf=\"element.user_specified\" fxFlex=\"0 0 auto\">\n <button mat-icon-button\n color=\"warn\"\n type=\"button\"\n (click)=\"onDeleteElementClicked()\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n\n <div fxFlex=\"1 0 0\"></div>\n\n <div fxFlex=\"0 0 auto\">\n <h4 class=\"label\">{{ element.label }}</h4>\n </div>\n\n <div fxFlex=\"1 0 0\"></div>\n\n <div fxFlex=\"0 0 auto\">\n <h5 class=\"properties\"><b>{{ '{' }}</b> {{ element.attr_type }} <b>{{ '}' }}</b></h5>\n </div>\n\n </div>\n</mat-card>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutEditorDashboardWidget } from '../../../../data-structures/dynamic-layout.structure';\n\n@Component({\n selector: 'mantle-layout-editor-widget-element',\n templateUrl: './layout-editor-widget-element.component.html',\n styleUrls: ['./layout-editor-widget-element.component.scss'],\n standalone: false\n})\nexport class LayoutEditorWidgetElementComponent {\n\n @Input() element!: DynamicLayoutEditorDashboardWidget;\n\n constructor() { }\n\n}\n","<mat-card class=\"widget-card\">\n <h4 class=\"label\">{{ element.widget_slug }}</h4>\n <h5 class=\"properties\"><b>{{ '{' }}</b> widget <b>{{ '}' }}</b></h5>\n</mat-card>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutEditorFormField, DynamicLayoutEditorDashboardWidget, DynamicLayoutEditorMarkdownElement, DynamicLayoutEditorTableColumn } from '../../../../data-structures/dynamic-layout.structure';\n\n@Component({\n selector: 'mantle-dynamic-layout-editor-element',\n templateUrl: './dynamic-layout-editor-element.component.html',\n styleUrls: ['./dynamic-layout-editor-element.component.scss'],\n standalone: false\n})\nexport class DynamicLayoutEditorElementComponent {\n\n @Input() element!: DynamicLayoutEditorFormField | DynamicLayoutEditorDashboardWidget | DynamicLayoutEditorMarkdownElement | DynamicLayoutEditorTableColumn;\n @Input() elementType: string = '';\n @Input() showControls: boolean = true;\n\n constructor() { }\n\n asDynamicLayoutEditorFormField(element: any): DynamicLayoutEditorFormField {\n return element as DynamicLayoutEditorFormField;\n }\n\n asDynamicLayoutEditorTableColumn(element: any): DynamicLayoutEditorTableColumn {\n return element as DynamicLayoutEditorTableColumn;\n }\n\n asDynamicLayoutEditorDashboardWidget(element: any): DynamicLayoutEditorDashboardWidget {\n return element as DynamicLayoutEditorDashboardWidget;\n }\n\n}\n","<ng-container [ngSwitch]=\"elementType\">\n\n <ng-container *ngSwitchCase=\"'field'\">\n <mantle-layout-editor-field-element\n [element]=\"asDynamicLayoutEditorFormField(element)\"\n [showControls]=\"showControls\">\n </mantle-layout-editor-field-element>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'table-column'\">\n <mantle-layout-editor-table-column-element\n [element]=\"asDynamicLayoutEditorTableColumn(element)\"\n [showControls]=\"showControls\">\n </mantle-layout-editor-table-column-element>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'widget'\">\n <mantle-layout-editor-widget-element [element]=\"asDynamicLayoutEditorDashboardWidget(element)\">\n </mantle-layout-editor-widget-element>\n </ng-container>\n\n</ng-container>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutEditorSection } from '../../../../data-structures/dynamic-layout.structure';\n\n@Component({\n selector: 'mantle-dashboard-layout-editor-section',\n templateUrl: './dashboard-layout-editor-section.component.html',\n styleUrls: ['./dashboard-layout-editor-section.component.scss'],\n standalone: false\n})\nexport class DashboardLayoutEditorSectionComponent {\n\n @Input() section!: DynamicLayoutEditorSection;\n\n constructor() { }\n\n}\n","<div class=\"grid-layout-editor-section\">\n <mat-grid-list\n rowHeight=\"180px\"\n cols=\"1\"\n [class.multi-column]=\"true\">\n\n <mat-grid-tile *ngFor=\"let widget of section.dynamic_layout_dashboard_widgets_attributes\" [colspan]=\"1\" [rowspan]=\"1\">\n <mantle-dynamic-layout-editor-element\n [element]=\"widget\"\n elementType=\"widget\">\n </mantle-dynamic-layout-editor-element>\n </mat-grid-tile>\n\n </mat-grid-list>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { DynamicLayoutEditorSection, DynamicLayoutEditorFormField } from '../../../../data-structures/dynamic-layout.structure';\nimport { DialogNestedFormComponent } from '../../../../components/form/dialog-nested-form/dialog-nested-form.component';\nimport { ArrayService } from '../../../../services/array.service';\nimport { ScreenSizeService } from '../../../../services/screen-size.service';\n\n@Component({\n selector: 'mantle-grid-layout-editor-section',\n templateUrl: './grid-layout-editor-section.component.html',\n styleUrls: ['./grid-layout-editor-section.component.scss'],\n standalone: false\n})\nexport class GridLayoutEditorSectionComponent {\n\n @Input() section!: DynamicLayoutEditorSection;\n @Input() defaultRowHeight: string = '120px';\n\n public numColumns: number = 1;\n\n private breakpointColumns = new Map([\n ['xs', 1],\n ['sm', 2],\n ['md', 2],\n ['lg', 3],\n ['xl', 4],\n ]);\n\n constructor(private screenSizeService: ScreenSizeService, private dialog: MatDialog, private arrayService: ArrayService) {\n this.screenSizeService.screenSize.subscribe((screenSize: any) => {\n if (this.section?.singleColumn) {\n this.numColumns = 1;\n return;\n }\n\n this.numColumns = this.breakpointColumns.get(screenSize) || 1;\n });\n }\n\n getColSpanForField(attribute: DynamicLayoutEditorFormField): number {\n return (attribute.attr_type == 'text' || attribute.attr_type == 'string-lg' || attribute.attr_type == 'markdown' || attribute.attr_type == 'rich-text') ? this.numColumns : 1;\n }\n\n getRowSpanForField(attribute: DynamicLayoutEditorFormField): number {\n //return (attribute.attr_type == 'text' || attribute.attr_type == 'markdown') ? 2 : 1;\n return 1;\n }\n\n onAddElementClicked() {\n const dialogRef = this.dialog.open(DialogNestedFormComponent, this.elementDialogConfig());\n\n dialogRef.afterClosed().subscribe(formData => {\n if (!formData) return;\n\n this.section.dynamic_layout_grid_fields_attributes.push(formData);\n });\n }\n\n elementDialogConfig(): MatDialogConfig {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n title: 'New Layout Element',\n data: {\n label: '',\n attr_type: 'string',\n ordinal: this.arrayService.maxValueForAttribute(this.section.dynamic_layout_grid_fields_attributes, 'ordinal') + 1,\n user_specified: true\n },\n section: {\n singleColumn: true,\n elements: [\n { label: 'Label', attr: 'label', type: 'string', required: true },\n { label: 'Type', attr: 'attr_type', type: 'dropdown', required: true,\n options: {\n values: [\n { value: 'string', label: 'String' },\n { value: 'string-lg', label: 'Wide String' },\n { value: 'text', label: 'Text Area' },\n { value: 'chips', label: 'Chips' },\n { value: 'number', label: 'Number' },\n { value: 'date', label: 'Date' },\n { value: 'datetime', label: 'Date & Time' },\n ]\n }\n }\n ]\n }\n };\n dialogConfig.width = '40%';\n\n return dialogConfig;\n }\n\n}\n","<div class=\"grid-layout-editor-section\">\n <mat-grid-list\n [rowHeight]=\"section.rowHeight || defaultRowHeight\"\n [cols]=\"section.singleColumn ? 1 : numColumns\"\n [class.multi-column]=\"section.singleColumn ? false : numColumns > 1\">\n\n <ng-container *ngFor=\"let element of section.dynamic_layout_grid_fields_attributes\">\n <mat-grid-tile *ngIf=\"!element._destroy\" [colspan]=\"section.singleColumn ? 1 : getColSpanForField(element)\" [rowspan]=\"getRowSpanForField(element)\">\n <mantle-dynamic-layout-editor-element\n elementType=\"field\"\n [element]=\"element\"\n [showControls]=\"!section.elements_locked\">\n </mantle-dynamic-layout-editor-element>\n </mat-grid-tile>\n </ng-container>\n\n </mat-grid-list>\n</div>\n\n<div fxLayout=\"row\" fxLayoutAlign=\"center start\" fxLayoutGap=\"16px\" class=\"section-controls\">\n <div fxFlex=\"1 1 auto\"></div>\n <div fxFlex=\"0 0 auto\" *ngIf=\"!section.elements_locked\">\n <button mat-raised-button\n color=\"primary\"\n type=\"button\"\n (click)=\"onAddElementClicked()\">\n <mat-icon>add</mat-icon>\n </button>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutEditorSection } from '../../../../data-structures/dynamic-layout.structure';\n\n@Component({\n selector: 'mantle-markdown-layout-editor-section',\n templateUrl: './markdown-layout-editor-section.component.html',\n styleUrls: ['./markdown-layout-editor-section.component.scss'],\n standalone: false\n})\nexport class MarkdownLayoutEditorSectionComponent {\n\n @Input() section!: DynamicLayoutEditorSection;\n\n}\n","<div class=\"markdown-wrapper\">\n <markdown ngPreserveWhitespaces *ngFor=\"let element of section.dynamic_layout_markdown_elements_attributes\">\n {{ element.text }}\n </markdown>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { DynamicLayoutEditorSection } from '../../../../data-structures/dynamic-layout.structure';\nimport { DialogNestedFormComponent } from '../../../../components/form/dialog-nested-form/dialog-nested-form.component';\nimport { ArrayService } from '../../../../services/array.service';\n\n@Component({\n selector: 'mantle-table-layout-editor-section',\n templateUrl: './table-layout-editor-section.component.html',\n styleUrls: ['./table-layout-editor-section.component.scss'],\n standalone: false\n})\nexport class TableLayoutEditorSectionComponent {\n\n @Input() section!: DynamicLayoutEditorSection;\n\n constructor(private dialog: MatDialog, private arrayService: ArrayService) { }\n\n onAddElementClicked() {\n const dialogRef = this.dialog.open(DialogNestedFormComponent, this.elementDialogConfig());\n\n dialogRef.afterClosed().subscribe(formData => {\n if (!formData) return;\n\n this.section.dynamic_layout_table_columns_attributes.push(formData);\n });\n }\n\n elementDialogConfig(): MatDialogConfig {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n title: 'New Table Column',\n data: {\n label: '',\n attr_type: 'string',\n ordinal: this.arrayService.maxValueForAttribute(this.section.dynamic_layout_table_columns_attributes, 'ordinal') + 1,\n user_specified: true\n },\n section: {\n singleColumn: true,\n elements: [\n { label: 'Label', attr: 'label', type: 'string', required: true },\n { label: 'Type', attr: 'attr_type', type: 'dropdown', required: true,\n options: {\n values: [\n { value: 'string', label: 'String' },\n { value: 'string-lg', label: 'Wide String' },\n { value: 'text', label: 'Text Area' },\n { value: 'chips', label: 'Chips' },\n { value: 'number', label: 'Number' },\n { value: 'date', label: 'Date' },\n { value: 'datetime', label: 'Date & Time' },\n ]\n }\n }\n ]\n }\n };\n dialogConfig.width = '40%';\n\n return dialogConfig;\n }\n\n}\n","<div class=\"table-layout-editor-section\">\n <h4 class=\"section-type-label\">Table</h4>\n <mat-grid-list rowHeight=\"120px\" [cols]=\"section.dynamic_layout_table_columns_attributes.length\" [class.multi-column]=\"true\" [ngStyle]=\"{ 'width.px': section.dynamic_layout_table_columns_attributes.length * 300 }\">\n\n <ng-container *ngFor=\"let element of section.dynamic_layout_table_columns_attributes\">\n <mat-grid-tile *ngIf=\"!element._destroy\" colspan=\"1\" rowspan=\"1\">\n <mantle-dynamic-layout-editor-element\n elementType=\"table-column\"\n [element]=\"element\"\n [showControls]=\"!section.elements_locked\">\n </mantle-dynamic-layout-editor-element>\n </mat-grid-tile>\n </ng-container>\n\n </mat-grid-list>\n</div>\n\n<div fxLayout=\"row\" fxLayoutAlign=\"center start\" fxLayoutGap=\"16px\" class=\"section-controls\">\n <div fxFlex=\"1 1 auto\"></div>\n <div fxFlex=\"0 0 auto\" *ngIf=\"!section.elements_locked\">\n <button mat-raised-button\n color=\"primary\"\n type=\"button\"\n (click)=\"onAddElementClicked()\">\n <mat-icon>add</mat-icon>\n </button>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutEditorSection } from '../../../../data-structures/dynamic-layout.structure';\nimport { LayoutEditorPageService } from '../../../../services/interfaces/layout-editor-page.service';\n\n@Component({\n selector: 'mantle-dynamic-layout-editor-section',\n templateUrl: './dynamic-layout-editor-section.component.html',\n styleUrls: ['./dynamic-layout-editor-section.component.scss'],\n standalone: false\n})\nexport class DynamicLayoutEditorSectionComponent {\n\n @Input() layoutEditorPageService!: LayoutEditorPageService;\n @Input() section!: DynamicLayoutEditorSection;\n\n constructor() { }\n\n}\n","<ng-container [ngSwitch]=\"section.layout_style\">\n\n <ng-container *ngSwitchCase=\"'grid'\">\n <mantle-grid-layout-editor-section\n [section]=\"section\">\n </mantle-grid-layout-editor-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'table'\">\n <mantle-table-layout-editor-section\n [section]=\"section\">\n </mantle-table-layout-editor-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'dashboard'\">\n <mantle-dashboard-layout-editor-section\n [section]=\"section\">\n </mantle-dashboard-layout-editor-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'markdown'\">\n <mantle-markdown-layout-editor-section\n [section]=\"section\">\n </mantle-markdown-layout-editor-section>\n </ng-container>\n\n</ng-container>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutEditorContainer } from '../../../../data-structures/dynamic-layout.structure';\nimport { LayoutEditorPageService } from '../../../../services/interfaces/layout-editor-page.service';\n\n@Component({\n selector: 'mantle-accordion-layout-editor-container',\n templateUrl: './accordion-layout-editor-container.component.html',\n styleUrls: ['./accordion-layout-editor-container.component.scss'],\n standalone: false\n})\nexport class AccordionLayoutEditorContainerComponent {\n\n @Input() layoutEditorPageService!: LayoutEditorPageService;\n @Input() container!: DynamicLayoutEditorContainer;\n\n constructor() { }\n\n}\n","<mat-accordion multi class=\"dynamic-details accordion\">\n <ng-container *ngFor=\"let section of container.dynamic_layout_sections_attributes\">\n <mat-expansion-panel [expanded]=\"!section.collapsed\" class=\"dynamic-details-section\">\n <mat-expansion-panel-header>\n <mat-panel-title *ngIf=\"section.title\">\n <div class=\"title-wrapper\">\n <h4>{{ section.title }}</h4>\n <mat-divider></mat-divider>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n <mantle-dynamic-layout-editor-section [layoutEditorPageService]=\"layoutEditorPageService\" [section]=\"section\">\n </mantle-dynamic-layout-editor-section>\n </mat-expansion-panel>\n </ng-container>\n</mat-accordion>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutEditorContainer } from '../../../../data-structures/dynamic-layout.structure';\nimport { LayoutEditorPageService } from '../../../../services/interfaces/layout-editor-page.service';\n\n@Component({\n selector: 'mantle-plain-layout-editor-container',\n templateUrl: './plain-layout-editor-container.component.html',\n styleUrls: ['./plain-layout-editor-container.component.scss'],\n standalone: false\n})\nexport class PlainLayoutEditorContainerComponent {\n\n @Input() layoutEditorPageService!: LayoutEditorPageService;\n @Input() container!: DynamicLayoutEditorContainer;\n\n constructor() { }\n\n}\n","<div class=\"dynamic-details plain\">\n <ng-container *ngFor=\"let section of container.dynamic_layout_sections_attributes\">\n <mat-card class=\"dynamic-details-section\">\n <mantle-section-title *ngIf=\"section.title\" [title]=\"section.title\"></mantle-section-title>\n <mantle-dynamic-layout-editor-section [layoutEditorPageService]=\"layoutEditorPageService\" [section]=\"section\">\n </mantle-dynamic-layout-editor-section>\n </mat-card>\n </ng-container>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutEditorContainer } from '../../../../data-structures/dynamic-layout.structure';\nimport { LayoutEditorPageService } from '../../../../services/interfaces/layout-editor-page.service';\n\n@Component({\n selector: 'mantle-dynamic-layout-editor-container',\n templateUrl: './dynamic-layout-editor-container.component.html',\n styleUrls: ['./dynamic-layout-editor-container.component.scss'],\n standalone: false\n})\nexport class DynamicLayoutEditorContainerComponent {\n\n @Input() layoutEditorPageService!: LayoutEditorPageService;\n @Input() container!: DynamicLayoutEditorContainer;\n\n constructor() { }\n\n}\n","<ng-container [ngSwitch]=\"container.container_style\">\n\n <ng-container *ngSwitchCase=\"'plain'\">\n <mantle-plain-layout-editor-container\n [layoutEditorPageService]=\"layoutEditorPageService\"\n [container]=\"container\">\n </mantle-plain-layout-editor-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'accordion'\">\n <mantle-accordion-layout-editor-container\n [layoutEditorPageService]=\"layoutEditorPageService\"\n [container]=\"container\">\n </mantle-accordion-layout-editor-container>\n </ng-container>\n\n</ng-container>\n","import { Component, Input } from '@angular/core';\nimport { DynamicLayoutEditorContent } from '../../../data-structures/dynamic-layout.structure';\nimport { LayoutEditorPageService } from '../../../services/interfaces/layout-editor-page.service';\n\n@Component({\n selector: 'mantle-dynamic-layout-editor',\n templateUrl: './dynamic-layout-editor.component.html',\n styleUrls: ['./dynamic-layout-editor.component.scss'],\n standalone: false\n})\nexport class DynamicLayoutEditorComponent {\n\n @Input() layoutEditorPageService!: LayoutEditorPageService;\n @Input() content!: DynamicLayoutEditorContent;\n\n constructor() { }\n\n}\n","<ng-container *ngIf=\"content; else loader\">\n <ng-container *ngFor=\"let container of content.data.dynamic_layout_containers_attributes\">\n <mantle-dynamic-layout-editor-container\n [layoutEditorPageService]=\"layoutEditorPageService\"\n [container]=\"container\">\n </mantle-dynamic-layout-editor-container>\n </ng-container>\n</ng-container>\n\n<ng-template #loader>\n <mantle-loader></mantle-loader>\n</ng-template>\n","import { Component } from '@angular/core';\nimport moment from 'moment';\nimport { LocaleService } from '../../../services/locale.service';\nimport { ScreenSizeService } from '../../../services/screen-size.service';\n\n@Component({\n selector: 'mantle-page-title',\n templateUrl: './page-title.component.html',\n styleUrls: ['./page-title.component.scss'],\n standalone: false\n})\nexport class PageTitleComponent {\n\n public today: string;\n public isSmallScreen: boolean = false;\n\n constructor(private localeService: LocaleService, private screenSizeService: ScreenSizeService) {\n this.today = moment().locale(this.localeService.currentLocaleCode).format('dddd | DD MMM YYYY');\n\n this.screenSizeService.screenSize.subscribe((screenSize: any) => {\n this.isSmallScreen = screenSize == 'xs' || screenSize == 'sm';\n });\n }\n\n}\n","<h1 fxLayout=\"row wrap\" fxLayoutGap=\"8px\">\n <div fxFlex=\"0 0 auto\" class=\"title-text\"><ng-content></ng-content></div>\n <div fxFlex=\"1 0 1px\"></div>\n <div fxFlex=\"0 0 auto\" [fxHide]=\"isSmallScreen\" class=\"title-date\">{{ today }}</div>\n</h1>\n\n<hr />\n","import { Component, Input } from '@angular/core';\nimport {\n DynamicDashboardContent, DynamicLayoutContainer, DynamicLayoutGridSection,\n DynamicLayoutTableSection, DynamicLayoutDashboardSection\n} from '../../../../data-structures/dynamic-layout.structure';\nimport { DashboardPageService } from '../../../../services/interfaces/dashboard-page.service';\n\n@Component({\n selector: 'mantle-plain-dashboard-container',\n templateUrl: './plain-dashboard-container.component.html',\n styleUrls: ['./plain-dashboard-container.component.scss'],\n standalone: false\n})\nexport class PlainDashboardContainerComponent {\n\n @Input() dashboardPageService!: DashboardPageService;\n @Input() content!: DynamicDashboardContent;\n @Input() container!: DynamicLayoutContainer;\n @Input() searchValues: any = {};\n\n constructor() { }\n\n asDynamicLayoutGridSection(section: any): DynamicLayoutGridSection {\n return section as DynamicLayoutGridSection;\n }\n\n asDynamicLayoutTableSection(section: any): DynamicLayoutTableSection {\n return section as DynamicLayoutTableSection;\n }\n\n asDynamicLayoutDashboardSection(section: any): DynamicLayoutDashboardSection {\n return section as DynamicLayoutDashboardSection;\n }\n\n}\n","<ng-container *ngFor=\"let section of container.sections\">\n <ng-container *ngIf=\"!section.hidden\">\n <ng-container [ngSwitch]=\"section.layout\">\n\n <ng-container *ngSwitchCase=\"'dashboard'\">\n <mantle-dashboard-section\n [slug]=\"section.slug\"\n [section]=\"asDynamicLayoutDashboardSection(section)\"\n [data]=\"content.data\"\n [dashboardPageService]=\"dashboardPageService\"\n [searchValues]=\"searchValues\">\n </mantle-dashboard-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'grid'\">\n <mantle-grid-details-section\n [section]=\"asDynamicLayoutGridSection(section)\"\n [data]=\"content.data\">\n </mantle-grid-details-section>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'table'\">\n <mantle-table-details-section\n [section]=\"asDynamicLayoutTableSection(section)\"\n [data]=\"content.data\">\n </mantle-table-details-section>\n </ng-container>\n\n </ng-container>\n </ng-container>\n</ng-container>\n","import { Component, Input } from '@angular/core';\nimport { DynamicDashboardContent, DynamicLayoutContainer } from '../../../../data-structures/dynamic-layout.structure';\nimport { DashboardPageService } from '../../../../services/interfaces/dashboard-page.service';\n\n@Component({\n selector: 'mantle-dynamic-dashboard-container',\n templateUrl: './dynamic-dashboard-container.component.html',\n styleUrls: ['./dynamic-dashboard-container.component.scss'],\n standalone: false\n})\nexport class DynamicDashboardContainerComponent {\n\n @Input() dashboardPageService!: DashboardPageService;\n @Input() content!: DynamicDashboardContent;\n @Input() container!: DynamicLayoutContainer;\n @Input() searchValues: any = {};\n\n constructor() { }\n\n}\n","<ng-container [ngSwitch]=\"container.container_style\">\n\n <ng-container *ngSwitchCase=\"'plain'\">\n <mantle-plain-dashboard-container [dashboardPageService]=\"dashboardPageService\" [container]=\"container\" [content]=\"content\" [searchValues]=\"searchValues\">\n </mantle-plain-dashboard-container>\n </ng-container>\n\n</ng-container>\n","import { Component, Input } from '@angular/core';\nimport { DynamicDashboardContent } from '../../../data-structures/dynamic-layout.structure';\nimport { DashboardPageService } from '../../../services/interfaces/dashboard-page.service';\n\n@Component({\n selector: 'mantle-dynamic-dashboard',\n templateUrl: './dynamic-dashboard.component.html',\n styleUrls: ['./dynamic-dashboard.component.scss'],\n standalone: false\n})\nexport class DynamicDashboardComponent {\n\n @Input() dashboardPageService!: DashboardPageService;\n @Input() content!: DynamicDashboardContent;\n @Input() searchValues: any = {};\n\n constructor() { }\n\n}\n","<ng-container *ngIf=\"content; else loader\">\n <ng-container *ngFor=\"let container of content.containers\">\n <mantle-dynamic-dashboard-container [dashboardPageService]=\"dashboardPageService\" [container]=\"container\" [content]=\"content\" [searchValues]=\"searchValues\">\n </mantle-dynamic-dashboard-container>\n </ng-container>\n</ng-container>\n\n<ng-template #loader>\n <mantle-loader></mantle-loader>\n</ng-template>\n","import { Component, OnInit, Injector } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { DashboardPageService } from '../../../services/interfaces/dashboard-page.service';\n\n@Component({\n selector: 'mantle-dashboard-page',\n templateUrl: './dashboard-page.component.html',\n styleUrls: ['./dashboard-page.component.scss'],\n standalone: false\n})\nexport class DashboardPageComponent implements OnInit {\n\n public dashboardPageService: DashboardPageService;\n public pageTitle: string;\n public content$!: Observable<any>;\n public searchValues: any = {};\n\n constructor(private route: ActivatedRoute, private injector: Injector) {\n const dashboardPageServiceInjectionToken = this.route.snapshot.data['dashboardPageService'];\n this.dashboardPageService = this.injector.get<DashboardPageService>(dashboardPageServiceInjectionToken);\n this.pageTitle = this.route.snapshot.data['pageTitle'];\n }\n\n ngOnInit(): void {\n this.content$ = this.dashboardPageService.getWidgetItems({}).pipe(\n map(res => {\n this.searchValues = res.search_values;\n return res.content;\n })\n );\n }\n}\n","<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"16px\" class=\"page dashboard-page full-height-only vertically-scrollable\">\n\n <div fxFlex=\"0 0 auto\">\n <mantle-page-title>{{ pageTitle | translate }}</mantle-page-title>\n </div>\n\n <div fxFlex=\"1 0 auto\">\n <mantle-dynamic-dashboard [content]=\"content$ | async\" [searchValues]=\"searchValues\" [dashboardPageService]=\"dashboardPageService\"></mantle-dynamic-dashboard>\n </div>\n\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'mantle-content-title',\n templateUrl: './content-title.component.html',\n styleUrls: ['./content-title.component.scss'],\n standalone: false\n})\nexport class ContentTitleComponent {\n\n @Input() thumbnail!: string;\n @Input() title!: string;\n\n constructor() { }\n\n}\n","<div fxLayout=\"row\" fxLayoutAlign=\"center center\" class=\"content-title\">\n <div *ngIf=\"thumbnail\" fxFlex=\"0 0 auto\">\n <img class=\"content-title-thumbnail\" [attr.src]=\"thumbnail | secureImage | async\" />\n </div>\n\n <div fxFlex=\"1 0 1px\">\n <h1 *ngIf=\"title\" class=\"content-title-title\">{{ title }}</h1>\n </div>\n</div>\n","import { Component, OnInit, Injector } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { AnnouncementService } from '../../../services/announcement.service';\nimport { LayoutEditorPageService } from '../../../services/interfaces/layout-editor-page.service';\nimport { WebApiFormResponse, WebApiSaveResponse } from '../../../services/adapters/web-api-crud.adapter';\n\n@Component({\n selector: 'mantle-layout-editor-page',\n templateUrl: './layout-editor-page.component.html',\n styleUrls: ['./layout-editor-page.component.scss'],\n standalone: false\n})\nexport class LayoutEditorPageComponent implements OnInit {\n\n public layoutEditorPageService: LayoutEditorPageService;\n\n public id!: string;\n public header: any;\n public content!: any;\n public isTabbedContent: boolean = false;\n public isSaveInProgress!: boolean;\n\n constructor(private route: ActivatedRoute, private injector: Injector,\n private announcementService: AnnouncementService) {\n const layoutEditorPageServiceInjectionToken = this.route.snapshot.data['layoutEditorPageService'];\n this.layoutEditorPageService = this.injector.get<LayoutEditorPageService>(layoutEditorPageServiceInjectionToken);\n this.isTabbedContent = this.route.snapshot.data['isTabbedContent'];\n }\n\n ngOnInit(): void {\n this.pullContent();\n }\n\n pullContent() {\n this.route.params.subscribe(params => {\n this.id = this.route.snapshot.params['id'];\n\n this.layoutEditorPageService.getEdit(this.id).subscribe(\n (res: WebApiFormResponse) => {\n this.loadContent(res);\n }\n );\n });\n }\n\n loadContent(response: any) {\n this.header = response.header;\n this.content = response.content;\n }\n\n onSaveClicked(): void {\n this.isSaveInProgress = true;\n\n this.layoutEditorPageService.save(\n this.id, this.content.data,\n (res: WebApiSaveResponse) => { this.onSaveSuccess(res); },\n (res: WebApiSaveResponse) => { this.onSaveFailure(res); }\n );\n }\n\n onSaveSuccess(res: WebApiSaveResponse): void {\n this.id = res.id!;\n this.content = res.content;\n this.announcementService.success('mantle.messages.save_successful');\n this.back();\n\n this.isSaveInProgress = false;\n }\n\n onSaveFailure(res: WebApiSaveResponse): void {\n if (res.content) {\n this.content = res.content;\n }\n else {\n this.back();\n }\n\n this.announcementService.error('mantle.messages.save_failed');\n\n this.isSaveInProgress = false;\n }\n\n back() {\n this.layoutEditorPageService.openList();\n }\n\n}\n","<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" class=\"full-height-min\" [ngClass]=\"{'page full-height-only vertically-scrollable': !isTabbedContent}\">\n <div fxFlex=\"0 0 auto\" class=\"page-header headline-5\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center start\" fxLayoutGap=\"16px\">\n <div fxFlex=\"1 1 auto\">\n <mantle-content-title *ngIf=\"header\" [title]=\"header.title\"></mantle-content-title>\n </div>\n </div>\n </div>\n\n <div fxFlex=\"1 0 auto\" class=\"main-content\">\n <mantle-dynamic-layout-editor [content]=\"content\" [layoutEditorPageService]=\"layoutEditorPageService\"></mantle-dynamic-layout-editor>\n </div>\n\n <div fxFlex=\"0 0 auto\" class=\"page-footer\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <div fxFlex=\"1 1 auto\"></div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"layoutEditorPageService.showSaveButton\">\n <button mat-raised-button\n color=\"primary\"\n type=\"button\"\n class=\"button-with-spinner save-button\"\n [disabled]=\"layoutEditorPageService.isCommitInProgress\"\n (click)=\"onSaveClicked()\"> <!-- TODO || !dynamicForm?.valid -->\n {{ 'mantle.buttons.save' | translate }}\n <mat-spinner *ngIf=\"isSaveInProgress\" [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n </div>\n </div>\n</div>\n","import { Observable } from 'rxjs';\nimport { HttpParams } from '@angular/common/http';\nimport { DynamicDetailsContent } from '../../data-structures/dynamic-layout.structure';\nimport { DynamicFormContent } from '../../data-structures/dynamic-layout.structure';\n\nexport class WebApiListRequest {\n search: any;\n sort: {\n attr: string;\n direction: string;\n };\n pagination: {\n page_number: number;\n page_size: number;\n };\n\n constructor(params: any = {}) {\n this.search = params.search || {};\n this.sort = {\n attr: params.sort?.attr || 'id',\n direction: params.sort?.direction || 'asc'\n };\n this.pagination = {\n page_number: params.pagination?.page_number || 0,\n page_size: params.pagination?.page_size || 20\n };\n }\n\n toHttpParams(): HttpParams {\n let params = {\n fromObject: {\n 'sort_attr': this.sort.attr,\n 'sort_direction': this.sort.direction,\n 'page_number': this.pagination.page_number,\n 'page_size': this.pagination.page_size,\n ...this.search\n }\n }\n\n return new HttpParams(params);\n }\n}\n\nexport interface WebApiListResponse {\n content: any[];\n sort?: {\n attr: string;\n direction: string;\n };\n pagination?: {\n page_number: number;\n page_size: number;\n total_items: number;\n };\n search_values?: any;\n}\n\nexport interface WebApiDetailsResponse {\n id: string;\n header: any;\n content: DynamicDetailsContent;\n}\n\nexport interface WebApiFormResponse {\n id?: string;\n header: any;\n content: DynamicFormContent;\n}\n\nexport interface WebApiSaveResponse {\n id?: string;\n content: DynamicFormContent;\n confirmationRequest?: { message: string, onConfirmationGiven: (confirmed: boolean) => void };\n alert?: { message: string };\n}\n\nexport interface WebApiDeleteResponse {\n id: string;\n errors?: string[];\n}\n\nexport interface WebApiCrudAdapter {\n\n getList(params: WebApiListRequest, headers: any): Observable<WebApiListResponse>;\n get(id: string, params: any, headers: any): Observable<WebApiDetailsResponse>;\n getNew(params: any, headers: any): Observable<WebApiFormResponse>;\n create(params: any, headers: any): Observable<WebApiSaveResponse>;\n getEdit(id: string, params: any, headers: any): Observable<WebApiFormResponse>;\n update(id: string, params: any, headers: any): Observable<WebApiSaveResponse>;\n destroy(id: string, params: any, headers: any): Observable<WebApiDeleteResponse>;\n\n}\n","import { DataSource } from '@angular/cdk/collections';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort, SortDirection } from '@angular/material/sort';\nimport { Observable, merge } from 'rxjs';\nimport { map, startWith, switchMap } from 'rxjs/operators';\nimport { SearchPanelComponent } from '../../../components/widgets/search-panel/search-panel.component';\nimport { WebApiListRequest, WebApiListResponse } from '../../../services/adapters/web-api-crud.adapter';\nimport { ListPageService } from '../../../services/interfaces/list-page.service';\nimport { DynamicFormField } from '../../../services/dynamic-form.service';\n\n/**\n * Data source for the List Page view. This class should\n * encapsulate all logic for fetching and manipulating the displayed data\n * (including sorting, pagination, and searching).\n */\nexport class ListPageDataSource extends DataSource<any> {\n dataService: ListPageService;\n paginator: MatPaginator | undefined;\n sort: MatSort | undefined;\n searchPanel: SearchPanelComponent | undefined;\n\n public data: any[] = [];\n public selectedRecordIds: any[] = [];\n public selectAll: boolean = false;\n\n constructor(dataService: ListPageService) {\n super();\n this.dataService = dataService;\n }\n\n /**\n * Connect this data source to the table. The table will only update when\n * the returned stream emits new items.\n * @returns A stream of the items to be rendered.\n */\n connect(): Observable<any[]> {\n if (this.paginator && this.sort && this.searchPanel) {\n // Combine everything that affects the rendered data into one update\n // stream for the data-table to consume.\n return merge(this.paginator.page, this.sort.sortChange, this.searchPanel.search, this.dataService.webRtcEvents,\n this.dataService.subContentChangeEvents).pipe(\n startWith(null),\n switchMap(() => {\n let params = new WebApiListRequest({\n search: this.searchPanel?.searchParams,\n sort: { attr: this.sort?.active, direction: this.sort?.direction },\n pagination: { page_number: (this.paginator?.pageIndex || 0) + 1, page_size: this.paginator?.pageSize }\n });\n return this.dataService.getList(params);\n }),\n map(res => {\n if (this.paginator) {\n this.paginator.pageIndex = res.pagination?.page_number! - 1;\n this.paginator.pageSize = res.pagination?.page_size!;\n this.paginator.length = res.pagination?.total_items!;\n }\n if (this.sort) {\n this.sort.active = res.sort?.attr!;\n this.sort.direction = res.sort?.direction! as SortDirection;\n }\n if (this.searchPanel && !!res.search_values) {\n this.searchPanel.searchFields.forEach((searchField: DynamicFormField) => {\n if ((searchField.type == 'dropdown') && (res.search_values[searchField.attr] !== undefined)) {\n searchField.options = { values: res.search_values[searchField.attr] };\n }\n });\n }\n\n this.data = res.content;\n this.dataService.onListContentLoaded(res.content);\n this.selectedRecordIds = [];\n this.selectAll = false;\n\n return this.data;\n })\n );\n } else {\n throw Error('Please set the paginator, sort, and search-panel on the data source before connecting.');\n }\n }\n\n /**\n * Called when the table is being destroyed. Use this function, to clean up\n * any open connections or free any held resources that were set up during connect.\n */\n disconnect(): void {}\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { DynamicFormContent, DynamicLayoutGridSection } from '../../../data-structures/dynamic-layout.structure';\nimport { DynamicFormComponent } from '../../../components/form/dynamic-form/dynamic-form.component';\nimport { DynamicFormField, DynamicFormService } from '../../../services/dynamic-form.service';\nimport { ObjectService } from '../../../services/object.service';\n\n@Component({\n selector: 'mantle-search-panel',\n templateUrl: './search-panel.component.html',\n styleUrls: ['./search-panel.component.scss'],\n standalone: false\n})\nexport class SearchPanelComponent implements OnInit {\n\n @ViewChild(DynamicFormComponent) searchForm!: DynamicFormComponent;\n @Input() searchFields!: DynamicFormField[];\n @Output() search: EventEmitter<any> = new EventEmitter<any>();\n\n public content!: DynamicFormContent;\n\n constructor(private dynamicFormService: DynamicFormService, private objectService: ObjectService) { }\n\n ngOnInit(): void {\n let data = this.dynamicFormService.generateFormInitData(this.searchFields);\n\n this.content = {\n data: data,\n containers: [{\n container_style: 'plain',\n sections: [{\n layout: 'grid',\n elements: this.searchFields,\n singleColumn: true,\n rowHeight: '60px',\n writable: true,\n hidden: false,\n collapsed: false,\n options: {}\n } as DynamicLayoutGridSection]\n }]\n }\n }\n\n get searchParams(): any {\n let value = this.searchForm.value;\n this.objectService.removeEmptyAttributes(value);\n return value;\n }\n\n onResetClicked() {\n this.searchForm.reset();\n this.onSearchClicked();\n }\n\n onSearchClicked() {\n this.search.emit(this.searchParams);\n }\n\n}\n","<div class=\"search-panel\">\n <div fxLayout=\"row\" fxLayoutAlign=\"stretch\">\n <div fxFlex=\"1 0 1px\"><h3 class=\"search-panel-title\">{{ 'mantle.search_panel.search' | translate }}</h3></div> <div fxFlex=\"0 0 auto\"><mat-icon>search</mat-icon></div>\n </div>\n <hr />\n\n <div class=\"filter-subtitle\">{{ 'mantle.search_panel.filter_by' | translate }}</div>\n\n <mantle-dynamic-form #searchForm [content]=\"content\"></mantle-dynamic-form>\n\n <button mat-button type=\"button\" class=\"reset-button\" (click)=\"onResetClicked()\">\n {{ 'mantle.buttons.reset' | translate }}\n </button>\n\n <button mat-raised-button color=\"primary\" type=\"button\" class=\"search-button\" (click)=\"onSearchClicked();\">\n {{ 'mantle.buttons.search' | translate }}\n </button>\n</div>\n","import { AfterViewInit, ChangeDetectorRef, Component, ViewChild, Injector } from '@angular/core';\nimport { AUTO_STYLE, animate, sequence, state, style, transition, trigger } from '@angular/animations';\nimport { ActivatedRoute } from '@angular/router';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTable } from '@angular/material/table';\nimport {\n ListPageService, ListPageColumn, ListPageExportOption, ListPageBulkExportOption, ListPageButton\n} from '../../../services/interfaces/list-page.service';\nimport { ListPageDataSource } from './list-page-datasource';\nimport { SearchPanelComponent } from '../../../components/widgets/search-panel/search-panel.component';\nimport { ArrayService } from '../../../services/array.service';\nimport { ScreenSizeService } from '../../../services/screen-size.service';\n\n@Component({\n selector: 'mantle-list-page',\n templateUrl: './list-page.component.html',\n styleUrls: ['./list-page.component.scss'],\n standalone: false,\n animations: [\n trigger('collapse', [\n state('false', style({ display: AUTO_STYLE, opacity: 1 })),\n state('true', style({ display: 'none', opacity: 0 })),\n transition('false => true', sequence([\n animate(\"1s\", style({ opacity: 0 })),\n style({ display: 'none' })\n ])),\n transition('true => false', sequence([\n style({ display: AUTO_STYLE }),\n animate(\"1s\", style({ opacity: 1 }))\n ]))\n ])\n ]\n})\nexport class ListPageComponent implements AfterViewInit {\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n @ViewChild(MatSort) sort!: MatSort;\n @ViewChild(MatTable) table!: MatTable<any>;\n @ViewChild(SearchPanelComponent) searchPanel!: SearchPanelComponent;\n\n public listPageService: ListPageService;\n public dataSource: ListPageDataSource;\n public displayedColumns!: ListPageColumn[];\n public displayedColumnAttrs!: string[];\n public exportOptions!: ListPageExportOption[];\n public bulkExportOptions!: ListPageBulkExportOption[];\n public withClickableRows!: boolean;\n public isTabbedContent: boolean = false;\n public pageTitle: string;\n public withCollapsibleColumns: boolean = false;\n public expandCollapsibleColumns: boolean = false;\n public additionalButtons: ListPageButton[] = [];\n\n public isActionPanelOpen: boolean = false;\n public isSmallScreen: boolean = false;\n\n constructor(private route: ActivatedRoute, private injector: Injector,\n private changeDetectorRef: ChangeDetectorRef, private arrayService: ArrayService,\n private screenSizeService: ScreenSizeService) {\n const listPageServiceInjectionToken = this.route.snapshot.data['listPageService'];\n this.listPageService = this.injector.get<ListPageService>(listPageServiceInjectionToken);\n\n this.listPageService.prepare(this.route);\n this.dataSource = new ListPageDataSource(this.listPageService);\n this.displayedColumns = this.listPageService.listColumns();\n this.displayedColumnAttrs = this.displayedColumns.map(a => a.attr);\n this.exportOptions = this.listPageService.listPageExportOptions();\n this.bulkExportOptions = this.listPageService.listPageBulkExportOptions();\n this.withClickableRows = this.listPageService.withClickableRows;\n this.isTabbedContent = this.route.snapshot.data['isTabbedContent'];\n this.pageTitle = this.route.snapshot.data['pageTitle'];\n\n if (this.listPageService.withCheckableRows) this.displayedColumnAttrs.unshift('select');\n if (this.listPageService.withCollapsibleColumns) this.withCollapsibleColumns = true;\n\n this.screenSizeService.screenSize.subscribe((screenSize: any) => {\n this.isSmallScreen = screenSize == 'xs' || screenSize == 'sm';\n this.isActionPanelOpen = !this.isSmallScreen;\n });\n\n this.loadAdditionalButtons();\n }\n\n ngAfterViewInit(): void {\n if (this.listPageService.defaultOrder) {\n this.sort.active = this.listPageService.defaultOrder.attr;\n this.sort.direction = this.listPageService.defaultOrder.direction;\n }\n\n this.dataSource.sort = this.sort;\n this.dataSource.paginator = this.paginator;\n this.dataSource.searchPanel = this.searchPanel;\n this.table.dataSource = this.dataSource;\n\n this.changeDetectorRef.detectChanges();\n }\n\n onRecordClicked(record: any) {\n if (!this.withClickableRows) return;\n\n this.listPageService.openRecord(record);\n }\n\n onAddClicked() {\n this.listPageService.openForm();\n }\n\n onBackToParentClicked(): void {\n this.listPageService.openParent();\n }\n\n isRecordChecked(record: any): boolean {\n return this.arrayService.hasItem(this.dataSource.selectedRecordIds, record.id);\n }\n\n onRecordChecked(record: any, checked: boolean) {\n if (checked) {\n this.dataSource.selectedRecordIds.push(record.id);\n this.dataSource.selectAll = this.dataSource.selectedRecordIds.length > 0 && this.dataSource.selectedRecordIds.length == this.dataSource.data.length;\n this.listPageService.onRecordChecked(record);\n }\n else {\n this.arrayService.removeItem(this.dataSource.selectedRecordIds, record.id);\n this.dataSource.selectAll = false;\n this.listPageService.onRecordUnchecked(record);\n }\n }\n\n onCheckAll(checked: boolean) {\n if (checked) {\n this.dataSource.data.forEach((item: any) => {\n if (this.isRecordChecked(item)) return;\n if (!this.listPageService.isRowSelectable(item)) return;\n\n this.dataSource.selectedRecordIds.push(item.id);\n this.listPageService.onRecordChecked(item);\n });\n\n this.dataSource.selectAll = true;\n } else {\n this.dataSource.data.forEach((item: any) => {\n if (!this.isRecordChecked(item)) return;\n\n this.arrayService.removeItem(this.dataSource.selectedRecordIds, item.id);\n this.listPageService.onRecordUnchecked(item);\n });\n\n this.dataSource.selectAll = false;\n }\n }\n\n onBulkExportClicked(exportOption: ListPageBulkExportOption) {\n exportOption.export(this.dataSource.selectedRecordIds);\n }\n\n loadAdditionalButtons() {\n this.additionalButtons = this.listPageService.additionalListPageButtons();\n }\n\n toggleCollapsibleColumns() {\n this.expandCollapsibleColumns = !this.expandCollapsibleColumns;\n }\n}\n","<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"16px\" class=\"list-page\" [ngClass]=\"{'page': !isTabbedContent}\">\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"!isTabbedContent\">\n <mantle-page-title>{{ pageTitle | translate }}</mantle-page-title>\n </div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"listPageService.showBackToParentButton || withCollapsibleColumns\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <div fxFlex=\"0 0 auto\" *ngIf=\"listPageService.showBackToParentButton\">\n <button class=\"back-button\" mat-mini-fab color=\"primary\" type=\"button\" (click)=\"onBackToParentClicked()\">\n <mat-icon>arrow_back</mat-icon>\n </button>\n </div>\n\n <div fxFlex=\"1 1 auto\"></div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"withCollapsibleColumns\">\n <button mat-raised-button\n color=\"primary\"\n type=\"button\"\n class=\"toggle-collapsible-columns-button button-with-icon\"\n (click)=\"toggleCollapsibleColumns()\">\n <ng-container *ngIf=\"expandCollapsibleColumns\">\n <mat-icon class=\"left-icon\">keyboard_double_arrow_left</mat-icon>\n <span>{{ 'mantle.buttons.collapse_table' | translate }}</span>\n </ng-container>\n <ng-container *ngIf=\"!expandCollapsibleColumns\">\n <span>{{ 'mantle.buttons.expand_table' | translate }}</span>\n <mat-icon class=\"right-icon\">keyboard_double_arrow_right</mat-icon>\n </ng-container>\n </button>\n </div>\n </div>\n </div>\n\n <div fxFlex=\"1 0 1px\">\n <mat-drawer-container class=\"full-height-only\" [hasBackdrop]=\"isSmallScreen\">\n <mat-drawer #drawer\n [mode]=\"isSmallScreen ? 'over' : 'side'\"\n [position]=\"isSmallScreen ? 'end' : 'start'\"\n [opened]=\"isActionPanelOpen\"\n [disableClose]=\"!isSmallScreen\"\n (closedStart)=\"isActionPanelOpen = false\"\n (openedStart)=\"isActionPanelOpen = true\">\n\n <button *ngIf=\"listPageService.showAddButton && listPageService.canWrite()\"\n mat-raised-button\n color=\"accent\"\n type=\"button\"\n class=\"add-button\"\n (click)=\"onAddClicked()\">\n <ng-container *ngIf=\"listPageService.customAddButtonLabel; else standardAddButtonLabel\">\n {{ listPageService.customAddButtonLabel | translate }}\n </ng-container>\n <ng-template #standardAddButtonLabel>\n + {{ 'mantle.buttons.add' | translate }} {{ listPageService.noun() | translate }}\n </ng-template>\n </button>\n\n <div class=\"search-section\">\n <mantle-search-panel #searchPanel\n [searchFields]=\"listPageService.searchFields()\">\n </mantle-search-panel>\n </div>\n\n <ng-container *ngFor=\"let exportOption of exportOptions\">\n <button mat-button type=\"button\" class=\"export-button\" (click)=\"exportOption.export(searchPanel.searchParams).subscribe()\">\n <span class=\"export-button-label\">{{ exportOption.label | translate }}</span>\n <mat-icon>download</mat-icon>\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"dataSource.selectedRecordIds.length > 0\">\n <ng-container *ngFor=\"let exportOption of bulkExportOptions\">\n <button mat-button type=\"button\" class=\"export-button\" (click)=\"onBulkExportClicked(exportOption)\">\n <span class=\"export-button-label\">{{ exportOption.label | translate }}</span>\n <mat-icon>download</mat-icon>\n </button>\n </ng-container>\n </ng-container>\n\n <ng-container *ngFor=\"let button of additionalButtons\">\n <div *ngIf=\"button.show()\">\n <button mat-raised-button\n color=\"{{ button.color }}\"\n type=\"button\"\n class=\"additional-button\"\n [disabled]=\"listPageService.isCommitInProgress || button.disabled || dataSource.selectedRecordIds.length <= 0\"\n (click)=\"button.onClick(dataSource.selectedRecordIds)\">\n {{ button.label | translate }}\n </button>\n </div>\n </ng-container>\n\n </mat-drawer>\n\n <div fxLayout=\"column\" fxLayoutAlign=\"stretch\" class=\"main-content full-height-only\">\n\n <div fxFlex=\"1 0 1px\" class=\"vertically-scrollable\">\n <table mat-table class=\"full-width horizontal-scroll-table\" matSort>\n\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef>\n <mat-checkbox click-stop-propagation\n (change)=\"onCheckAll($event.checked)\"\n [checked]=\"dataSource.selectAll\"\n [indeterminate]=\"dataSource.selectAll && (dataSource.selectedRecordIds.length < dataSource.data.length)\">\n </mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let row\" click-stop-propagation>\n <mat-checkbox (change)=\"onRecordChecked(row, $event.checked)\"\n [checked]=\"isRecordChecked(row)\"\n [disabled]=\"!listPageService.isRowSelectable(row)\">\n </mat-checkbox>\n </td>\n </ng-container>\n\n <ng-container *ngFor=\"let column of displayedColumns; let i = index\">\n <ng-container matColumnDef=\"{{ column.attr }}\">\n <th mat-header-cell *matHeaderCellDef\n mat-sort-header=\"{{column.sortAttr || column.attr}}\" [disabled]=\"column.disableSort\"\n [@collapse]=\"column.enableCollapse && !expandCollapsibleColumns\"\n [ngClass]=\"{\n 'collapsible-column': column.enableCollapse,\n 'collapsible-column-left': column.enableCollapse && (!displayedColumns[i - 1] || !displayedColumns[i - 1].enableCollapse),\n 'collapsible-column-right': column.enableCollapse && (!displayedColumns[i + 1] || !displayedColumns[i + 1].enableCollapse)\n }\">\n {{ column.header | translate }}\n </th>\n <td mat-cell *matCellDef=\"let row\"\n [@collapse]=\"column.enableCollapse && !expandCollapsibleColumns\"\n [ngClass]=\"{\n 'collapsible-column': column.enableCollapse,\n 'collapsible-column-left': column.enableCollapse && (!displayedColumns[i - 1] || !displayedColumns[i - 1].enableCollapse),\n 'collapsible-column-right': column.enableCollapse && (!displayedColumns[i + 1] || !displayedColumns[i + 1].enableCollapse)\n }\">\n <mantle-dynamic-attribute-display\n [fieldType]=\"column.type\"\n [value]=\"row[column.attr]\"\n [options]=\"column.options\">\n </mantle-dynamic-attribute-display>\n </td>\n </ng-container>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnAttrs\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumnAttrs;\"\n (click)=\"onRecordClicked(row)\"\n [class.clickable-row]=\"withClickableRows\">\n </tr>\n </table>\n </div>\n\n <mat-paginator #paginator\n fxFlex=\"0 0 auto\"\n [length]=\"0\"\n [pageIndex]=\"0\"\n [pageSize]=\"10\"\n [pageSizeOptions]=\"[10, 20, 50]\">\n </mat-paginator>\n\n </div>\n\n </mat-drawer-container>\n </div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"isSmallScreen\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n\n <button *ngIf=\"isActionPanelOpen\" type=\"button\" mat-button (click)=\"drawer.toggle()\">\n <ng-container *ngIf=\"isActionPanelOpen\">\n {{ 'mantle.buttons.close_actions' | translate }}<mat-icon>chevron_right</mat-icon>\n </ng-container>\n </button>\n\n <div fxFlex=\"1 1 auto\"></div>\n\n <button *ngIf=\"!isActionPanelOpen\" type=\"button\" mat-button (click)=\"drawer.toggle()\">\n <ng-container>\n <mat-icon>chevron_left</mat-icon> {{ 'mantle.buttons.open_actions' | translate }}\n </ng-container>\n </button>\n\n </div>\n </div>\n</div>\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\n\nexport interface DeleteConfirmationDialogButton {\n label: string;\n onClick: (id: string) => void;\n}\n\nexport interface DeleteConfirmationDialogParams {\n message: string;\n buttons: DeleteConfirmationDialogButton[];\n}\n\n@Component({\n selector: 'mantle-delete-confirmation-dialog',\n templateUrl: './delete-confirmation-dialog.component.html',\n styleUrls: ['./delete-confirmation-dialog.component.scss'],\n standalone: false\n})\nexport class DeleteConfirmationDialogComponent {\n\n public message: string;\n public buttons: DeleteConfirmationDialogButton[] = [];\n\n constructor(private dialogRef: MatDialogRef<DeleteConfirmationDialogComponent>,\n @Inject(MAT_DIALOG_DATA) private params: DeleteConfirmationDialogParams) {\n this.message = this.params.message;\n this.buttons = this.params.buttons || [];\n }\n\n onDeleteClicked(deletionAction: (id: string) => void): void {\n this.dialogRef.close({ confirmed: true, deletionAction: deletionAction });\n }\n\n onCancel(): void {\n this.dialogRef.close({ confirmed: false });\n }\n\n}\n","<mat-dialog-content class=\"content-section\">\n\n <h1 class=\"warn-text\">{{ 'mantle.messages.are_you_sure' | translate }} </h1>\n <h3>{{ message | translate }}</h3>\n\n</mat-dialog-content>\n\n<mat-dialog-actions fxLayout=\"row\" class=\"actions-section\">\n <button fxFlex=\"0 0 auto\" mat-button (click)=\"onCancel()\">{{ 'mantle.buttons.cancel' | translate }}</button>\n <div fxFlex=\"1 1 auto\"></div>\n <button fxFlex=\"0 0 auto\" *ngFor=\"let button of buttons\"\n mat-button\n color=\"warn\"\n (click)=\"onDeleteClicked(button.onClick)\">\n {{ button.label | translate }}\n </button>\n</mat-dialog-actions>\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\n\nexport interface SaveConfirmationDialogParams {\n message?: string;\n}\n\n@Component({\n selector: 'mantle-save-confirmation-dialog',\n templateUrl: './save-confirmation-dialog.component.html',\n styleUrls: ['./save-confirmation-dialog.component.scss'],\n standalone: false\n})\nexport class SaveConfirmationDialogComponent {\n\n public message?: string;\n\n constructor(private dialogRef: MatDialogRef<SaveConfirmationDialogComponent>,\n @Inject(MAT_DIALOG_DATA) private params: SaveConfirmationDialogParams) {\n this.message = this.params.message;\n }\n\n onSaveClicked(): void {\n this.dialogRef.close(true);\n }\n\n onCancel(): void {\n this.dialogRef.close(false);\n }\n\n}\n","<mat-dialog-content class=\"content-section\">\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n\n <div fxFlex=\"0 0 auto\">\n <mat-icon class=\"large-icon\">error_outline</mat-icon>\n </div>\n\n <div *ngIf=\"message\" fxFlex=\"1 0 1px\">\n <h3>{{ message | translate }}</h3>\n </div>\n\n <div fxFlex=\"0 0 auto\">\n <button mat-button mat-stroked-button (click)=\"onSaveClicked()\">{{ 'mantle.buttons.confirm' | translate }}</button>\n </div>\n\n </div>\n\n</mat-dialog-content>\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { MatDialog, MatDialogConfig } from \"@angular/material/dialog\";\nimport { DeleteConfirmationDialogComponent } from '../components/widgets/delete-confirmation-dialog/delete-confirmation-dialog.component';\nimport { SaveConfirmationDialogComponent } from '../components/widgets/save-confirmation-dialog/save-confirmation-dialog.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfirmationService {\n\n constructor(private dialog: MatDialog) { }\n\n confirmSave(onConfirmation: (confirmed: boolean) => void, configData: any = {}) {\n const dialogConfig: MatDialogConfig = {\n data: configData,\n minWidth: '400px',\n maxWidth: '80%',\n position: {\n bottom: '8px'\n },\n autoFocus: false,\n panelClass: 'confirmation-dialog'\n }\n\n let dialogRef = this.dialog.open(SaveConfirmationDialogComponent, dialogConfig);\n\n dialogRef.afterClosed().subscribe(onConfirmation);\n }\n\n confirmDeletion(onConfirmation: (deletionAction: (id: string) => Observable<any>) => void, configData: any = {}) {\n const dialogConfig: MatDialogConfig = {\n data: configData,\n minWidth: '400px',\n maxWidth: '80%',\n position: {\n right: '8px',\n bottom: '8px'\n },\n autoFocus: false,\n panelClass: 'delete-confirmation-dialog'\n };\n\n let dialogRef = this.dialog.open(DeleteConfirmationDialogComponent, dialogConfig);\n\n dialogRef.afterClosed().subscribe((res: { confirmed: boolean, deletionAction: (id: string) => Observable<any> }) => {\n if (!res || !res.confirmed) return;\n\n onConfirmation(res.deletionAction);\n });\n }\n\n}\n","import { AfterViewChecked, ChangeDetectorRef, Component, Injector, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Observable, of as observableOf } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AnnouncementService } from '../../../services/announcement.service';\nimport { ConfirmationService } from '../../../services/confirmation.service';\nimport { DynamicFormComponent } from '../../../components/form/dynamic-form/dynamic-form.component';\nimport { FormPageButton, FormPageService } from '../../../services/interfaces/form-page.service';\nimport { WebApiFormResponse, WebApiSaveResponse } from '../../../services/adapters/web-api-crud.adapter';\n\n@Component({\n selector: 'mantle-form-page',\n templateUrl: './form-page.component.html',\n styleUrls: ['./form-page.component.scss'],\n standalone: false\n})\nexport class FormPageComponent implements OnInit, AfterViewChecked {\n\n @ViewChild(DynamicFormComponent) dynamicForm!: DynamicFormComponent;\n\n public formPageService: FormPageService;\n\n private id: string | undefined;\n private cloneId: string | undefined;\n public header: any;\n public content$!: Observable<any>;\n public bottomLeftButtons: FormPageButton[] = [];\n public bottomRightButtons: FormPageButton[] = [];\n public isTabbedContent: boolean = false;\n public isSaveInProgress!: boolean;\n\n constructor(private route: ActivatedRoute, private injector: Injector, private changeDetectorRef: ChangeDetectorRef,\n private announcementService: AnnouncementService, private confirmationService: ConfirmationService) {\n const formPageServiceInjectionToken = this.route.snapshot.data['formPageService'];\n this.formPageService = this.injector.get<FormPageService>(formPageServiceInjectionToken);\n this.isTabbedContent = this.route.snapshot.data['isTabbedContent'];\n }\n\n ngOnInit(): void {\n this.route.params.subscribe(params => {\n this.id = this.route.snapshot.params['id'];\n this.cloneId = this.route.snapshot.params['cloneId'];\n\n let responseObservable = null;\n if (this.cloneId) {\n responseObservable = this.formPageService.getNew({ clone_id: this.cloneId });\n }\n else {\n responseObservable = this.id ? this.formPageService.getEdit(this.id) :\n this.formPageService.getNew();\n }\n\n this.content$ = responseObservable.pipe(\n map((res: WebApiFormResponse) => {\n this.header = res.header;\n this.formPageService.onFormContentLoaded(res.content);\n this.loadAdditionalButtons(res.content.data);\n return res.content;\n })\n );\n });\n }\n\n ngAfterViewChecked(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n loadAdditionalButtons(record: any) {\n let additionalFormPageButtons = this.formPageService.additionalFormPageButtons(record);\n this.bottomLeftButtons = additionalFormPageButtons.filter(button => {\n return button.position == 'left';\n });\n this.bottomRightButtons = additionalFormPageButtons.filter(button => {\n return button.position == 'right';\n });\n }\n\n onCancelClicked(): void {\n this.back();\n }\n\n onSaveClicked(): void {\n this.isSaveInProgress = true;\n\n let value = this.dynamicForm.value;\n this.formPageService.save(\n this.id, value,\n (res: WebApiSaveResponse) => { this.onSaveSuccess(res); },\n (res: WebApiSaveResponse) => { this.onSaveFailure(res); }\n );\n }\n\n onSaveSuccess(res: WebApiSaveResponse): void {\n this.id = res.id;\n this.formPageService.onFormContentLoaded(res.content);\n this.loadAdditionalButtons(res.content.data);\n this.content$ = observableOf(res.content);\n this.announcementService.success('mantle.messages.save_successful');\n this.back();\n\n this.isSaveInProgress = false;\n }\n\n onSaveFailure(res: WebApiSaveResponse): void {\n if (res.content) {\n this.formPageService.onFormContentLoaded(res.content);\n this.content$ = observableOf(res.content);\n }\n else {\n this.back();\n }\n\n if (res.confirmationRequest) {\n this.confirmationService.confirmSave(\n (confirmed: boolean) => {\n res.confirmationRequest?.onConfirmationGiven(confirmed);\n if (confirmed) this.onSaveClicked();\n else this.announcementService.error('mantle.messages.save_failed');\n },\n { message: res.confirmationRequest.message }\n );\n }\n else {\n this.announcementService.error('mantle.messages.save_failed');\n }\n\n if (!!res.alert?.message) {\n this.announcementService.error(res.alert.message);\n }\n\n this.isSaveInProgress = false;\n }\n\n back() {\n if (this.id) this.formPageService.openRecord({ id: this.id });\n else if (this.cloneId) this.formPageService.openRecord({ id: this.cloneId });\n else this.formPageService.openList();\n }\n\n}\n","<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" class=\"full-height-min\" [ngClass]=\"{'page full-height-only vertically-scrollable': !isTabbedContent}\">\n <div fxFlex=\"0 0 auto\" class=\"page-header headline-5\">\n <div fxLayout=\"row\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"16px\">\n <mantle-content-title *ngIf=\"header\" fxFlex=\"0 0 auto\" [thumbnail]=\"header.thumbnail\" [title]=\"header.title\"></mantle-content-title>\n\n <div fxFlex=\"1 1 auto\"></div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"!formPageService.hideCancelButton\">\n <button mat-icon-button\n type=\"button\"\n (click)=\"onCancelClicked()\"\n [disabled]=\"formPageService.isCommitInProgress\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n </div>\n </div>\n\n <div fxFlex=\"1 0 auto\" class=\"main-content\">\n <mantle-dynamic-form #dynamicForm [content]=\"content$ | async\" [formPageService]=\"formPageService\"></mantle-dynamic-form>\n </div>\n\n <div fxFlex=\"0 0 auto\" class=\"page-footer\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <ng-container *ngFor=\"let button of bottomLeftButtons\">\n <div fxFlex=\"0 0 auto\" *ngIf=\"button.show\">\n <button mat-raised-button\n color=\"{{ button.color }}\"\n type=\"button\"\n class=\"button-with-spinner additional-button\"\n [disabled]=\"formPageService.isCommitInProgress || button.disabled\"\n (click)=\"button.onClick(dynamicForm?.value)\">\n {{ button.label | translate }}\n <mat-spinner *ngIf=\"button.isInProgress()\" [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n </ng-container>\n\n <div fxFlex=\"1 1 auto\"></div>\n\n <ng-container *ngFor=\"let button of bottomRightButtons\">\n <div fxFlex=\"0 0 auto\" *ngIf=\"button.show\">\n <button mat-raised-button\n color=\"{{ button.color }}\"\n type=\"button\"\n class=\"button-with-spinner additional-button\"\n [disabled]=\"formPageService.isCommitInProgress || button.disabled\"\n (click)=\"button.onClick(dynamicForm?.value)\">\n {{ button.label | translate }}\n <mat-spinner *ngIf=\"button.isInProgress()\" [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n </ng-container>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"formPageService.showSaveButton\">\n <button mat-raised-button\n color=\"primary\"\n type=\"button\"\n class=\"button-with-spinner save-button\"\n [disabled]=\"formPageService.isCommitInProgress || !dynamicForm?.valid\"\n (click)=\"onSaveClicked()\">\n {{ 'mantle.buttons.save' | translate }}\n <mat-spinner *ngIf=\"isSaveInProgress\" [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Injector, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport {\n DynamicLayoutContainer, DynamicLayoutSection, DynamicLayoutTableSection\n} from '../../../data-structures/dynamic-layout.structure';\nimport { AnnouncementService } from '../../../services/announcement.service';\nimport { DetailPageButton, DetailPageExportOption, DetailPageService } from '../../../services/interfaces/detail-page.service';\nimport { WebApiDeleteResponse, WebApiDetailsResponse } from '../../../services/adapters/web-api-crud.adapter';\n\n@Component({\n selector: 'mantle-detail-page',\n templateUrl: './detail-page.component.html',\n styleUrls: ['./detail-page.component.scss'],\n standalone: false\n})\nexport class DetailPageComponent implements OnInit {\n\n public detailPageService: DetailPageService;\n\n public id!: string;\n public header: any;\n public content!: any;\n public exportOptions!: DetailPageExportOption[];\n public bottomLeftButtons: DetailPageButton[] = [];\n public bottomRightButtons: DetailPageButton[] = [];\n public isTabbedContent: boolean = false;\n public isDeleteInProgress!: boolean;\n\n constructor(private route: ActivatedRoute, private injector: Injector,\n private announcementService: AnnouncementService) {\n const detailPageServiceInjectionToken = this.route.snapshot.data['detailPageService'];\n this.detailPageService = this.injector.get<DetailPageService>(detailPageServiceInjectionToken);\n this.detailPageService.setParentComponent(this);\n this.exportOptions = this.detailPageService.detailPageExportOptions();\n this.isTabbedContent = this.route.snapshot.data['isTabbedContent'];\n }\n\n ngOnInit(): void {\n this.pullContent();\n }\n\n pullContent() {\n this.route.params.subscribe(params => {\n this.id = this.route.snapshot.params['id'];\n\n this.detailPageService.get(this.id).subscribe(\n (res: WebApiDetailsResponse) => {\n this.loadContent(res);\n }\n );\n });\n }\n\n loadContent(response: any) {\n this.header = response.header;\n this.content = response.content;\n\n this.detailPageService.onDetailContentLoaded(this.content);\n\n this.content.containers.forEach((container: DynamicLayoutContainer) => {\n container.sections.forEach((section: DynamicLayoutSection) => {\n this.loadSectionActions(section);\n });\n });\n\n this.loadAdditionalButtons(this.content.data);\n this.exportOptions = this.detailPageService.detailPageExportOptions(this.content.data);\n }\n\n loadSectionActions(section: DynamicLayoutSection) {\n let sectionActions = this.detailPageService.detailPageSectionActions(section.slug!);\n if (sectionActions.length == 0) return;\n\n if (section.layout == 'table') {\n let actionsColumn = { header: '', attr: 'table_row_actions', type: 'actions', options: { actions: sectionActions } };\n (section as DynamicLayoutTableSection).elements.push(actionsColumn);\n }\n }\n\n loadAdditionalButtons(record: any) {\n let additionalDetailPageButtons = this.detailPageService.additionalDetailPageButtons(record);\n this.bottomLeftButtons = additionalDetailPageButtons.filter(button => {\n return button.position == 'left';\n });\n this.bottomRightButtons = additionalDetailPageButtons.filter(button => {\n return button.position == 'right';\n });\n }\n\n onEditClicked(): void {\n this.detailPageService.openForm({ id: this.id });\n }\n\n onCloneClicked(): void {\n this.detailPageService.openForm({}, { clone_id: this.id });\n }\n\n onBackClicked(): void {\n this.detailPageService.openList();\n }\n\n onDeleteClicked(): void {\n this.detailPageService.delete(\n this.id,\n () => { this.isDeleteInProgress = true; },\n (res: WebApiDeleteResponse) => { this.onDeleteSuccess(res); },\n (res: WebApiDeleteResponse) => { this.onDeleteFailure(res); }\n );\n }\n\n onDeleteSuccess(res: WebApiDeleteResponse): void {\n this.announcementService.success('mantle.messages.delete_successful');\n this.back();\n\n this.isDeleteInProgress = false;\n }\n\n onDeleteFailure(res: WebApiDeleteResponse): void {\n this.announcementService.error('mantle.messages.delete_failed');\n\n this.isDeleteInProgress = false;\n }\n\n back() {\n this.detailPageService.openList();\n }\n\n}\n","<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" class=\"full-height-min\" [ngClass]=\"{'page full-height-only vertically-scrollable': !isTabbedContent}\">\n <div fxFlex=\"0 0 auto\" class=\"page-header headline-5\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center start\" fxLayoutGap=\"16px\">\n <div fxFlex=\"0 0 auto\" *ngIf=\"!detailPageService.hideBackButton\">\n <button class=\"back-button\" mat-mini-fab color=\"primary\" type=\"button\" (click)=\"onBackClicked()\">\n <mat-icon>arrow_back</mat-icon>\n </button>\n </div>\n\n <div fxFlex=\"1 1 auto\">\n <mantle-content-title *ngIf=\"header\" [thumbnail]=\"header.thumbnail\" [title]=\"header.title\"></mantle-content-title>\n </div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"!!content && detailPageService.showEditButton && detailPageService.canWrite()\">\n <button mat-mini-fab\n color=\"primary\"\n type=\"button\"\n class=\"edit-button\"\n (click)=\"onEditClicked()\"\n [disabled]=\"detailPageService.isCommitInProgress\">\n <mat-icon>edit</mat-icon>\n </button>\n </div>\n </div>\n </div>\n\n <div fxFlex=\"1 0 auto\" class=\"main-content\">\n <mantle-dynamic-details [content]=\"content\" [detailPageService]=\"detailPageService\"></mantle-dynamic-details>\n </div>\n\n <div fxFlex=\"0 0 36px\" class=\"page-footer\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\" *ngIf=\"!!content\">\n <ng-container *ngFor=\"let button of bottomLeftButtons\">\n <div fxFlex=\"0 0 auto\" *ngIf=\"button.show\">\n <button mat-raised-button\n color=\"{{ button.color }}\"\n type=\"button\"\n class=\"button-with-spinner additional-button\"\n [disabled]=\"detailPageService.isCommitInProgress || button.disabled\"\n (click)=\"button.onClick(id)\">\n {{ button.label | translate }}\n <mat-spinner *ngIf=\"button.isInProgress()\" [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"content\">\n <div fxFlex=\"0 0 auto\" *ngFor=\"let exportOption of exportOptions\">\n <div *ngIf=\"(exportOption.show == null) || (exportOption.show)\">\n <button mat-button\n type=\"button\"\n class=\"export-button\"\n (click)=\"exportOption.export(content.data).subscribe()\"\n [disabled]=\"detailPageService.isCommitInProgress\">\n <span class=\"export-button-label\">{{ exportOption.label | translate }}</span>\n <mat-icon>download</mat-icon>\n </button>\n </div>\n </div>\n </ng-container>\n\n <div fxFlex=\"1 1 auto\"></div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"detailPageService.showCloneButton && detailPageService.canWrite()\">\n <button mat-raised-button\n color=\"accent\"\n type=\"button\"\n class=\"clone-button\"\n (click)=\"onCloneClicked()\">\n {{ 'mantle.buttons.clone' | translate }}\n </button>\n </div>\n\n <ng-container *ngFor=\"let button of bottomRightButtons\">\n <div fxFlex=\"0 0 auto\" *ngIf=\"button.show\">\n <button mat-raised-button\n color=\"{{ button.color }}\"\n type=\"button\"\n class=\"button-with-spinner additional-button\"\n [disabled]=\"detailPageService.isCommitInProgress || button.disabled\"\n (click)=\"button.onClick(id)\">\n {{ button.label | translate }}\n <mat-spinner *ngIf=\"button.isInProgress()\" [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n </ng-container>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"detailPageService.showDeleteButton && detailPageService.canWrite()\">\n <button mat-button\n color=\"warn\"\n type=\"button\"\n class=\"button-with-spinner delete-button\"\n [disabled]=\"detailPageService.isCommitInProgress\"\n (click)=\"onDeleteClicked()\">\n {{ 'mantle.buttons.delete' | translate }} {{ detailPageService.noun() | translate }}\n <mat-spinner *ngIf=\"isDeleteInProgress\" [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n </div>\n </div>\n</div>\n","import { AfterViewInit, Component, ViewChild, Injector } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTable } from '@angular/material/table';\nimport { SearchPanelComponent } from '../../../components/widgets/search-panel/search-panel.component';\nimport { ListPageService, ListPageColumn, ListPageExportOption } from '../../../services/interfaces/list-page.service';\nimport { ListPageDataSource } from '../../../components/pages/list-page/list-page-datasource';\nimport { AnnouncementService } from '../../../services/announcement.service';\nimport { WebApiService } from '../../../services/web-api.service';\nimport { ScreenSizeService } from '../../../services/screen-size.service';\n\n@Component({\n selector: 'mantle-documents-page',\n templateUrl: './documents-page.component.html',\n styleUrls: ['../list-page/list-page.component.scss'],\n standalone: false\n})\nexport class DocumentsPageComponent implements AfterViewInit {\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n @ViewChild(MatSort) sort!: MatSort;\n @ViewChild(MatTable) table!: MatTable<any>;\n @ViewChild(SearchPanelComponent) searchPanel!: SearchPanelComponent;\n\n public listPageService: ListPageService;\n public dataSource: ListPageDataSource;\n public displayedColumns!: ListPageColumn[];\n public displayedColumnAttrs!: string[];\n public exportOptions!: ListPageExportOption[];\n public withClickableRows!: boolean;\n public isTabbedContent: boolean = false;\n public pageTitle: string;\n public uploadInProgress: boolean = false;\n\n public isActionPanelOpen: boolean = false;\n public isSmallScreen: boolean = false;\n\n constructor(private route: ActivatedRoute, private injector: Injector,\n private announcementService: AnnouncementService, private webApiService: WebApiService,\n private screenSizeService: ScreenSizeService) {\n const listPageServiceInjectionToken = this.route.snapshot.data['listPageService'];\n this.listPageService = this.injector.get<ListPageService>(listPageServiceInjectionToken);\n\n this.listPageService.prepare(this.route);\n this.dataSource = new ListPageDataSource(this.listPageService);\n this.displayedColumns = this.listPageService.listColumns();\n this.displayedColumnAttrs = this.displayedColumns.map(a => a.attr);\n this.exportOptions = this.listPageService.listPageExportOptions();\n this.withClickableRows = this.listPageService.withClickableRows;\n this.isTabbedContent = this.route.snapshot.data['isTabbedContent'];\n this.pageTitle = this.route.snapshot.data['pageTitle'];\n\n this.screenSizeService.screenSize.subscribe((screenSize: any) => {\n this.isSmallScreen = screenSize == 'xs' || screenSize == 'sm';\n this.isActionPanelOpen = !this.isSmallScreen;\n });\n }\n\n ngAfterViewInit(): void {\n this.dataSource.sort = this.sort;\n this.dataSource.paginator = this.paginator;\n this.dataSource.searchPanel = this.searchPanel;\n this.table.dataSource = this.dataSource;\n }\n\n onRecordClicked(record: any) {\n if (!this.withClickableRows) return;\n\n this.listPageService.openRecord(record);\n }\n\n onAddClicked() {\n this.listPageService.openForm();\n }\n\n onFileDropped(file: File) {\n this.uploadInProgress = true;\n\n this.webApiService.upload(file,\n (response: any) => {\n let document = {\n filename: file.name,\n source_url: '',\n preview_url: '',\n signed_id: response.signed_id\n }\n this.listPageService.openForm({}, { document: document });\n this.uploadInProgress = false;\n },\n (response: any) => {\n this.announcementService.error('mantle.messages.unable_to_upload_file');\n this.uploadInProgress = false;\n }\n );\n }\n}\n","<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"16px\" class=\"list-page\" [ngClass]=\"{'page': !isTabbedContent}\">\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"!isTabbedContent\">\n <mantle-page-title>{{ pageTitle | translate }}</mantle-page-title>\n </div>\n\n <div fxFlex=\"1 0 1px\">\n <mat-drawer-container class=\"full-height-only\" [hasBackdrop]=\"isSmallScreen\">\n <mat-drawer #drawer\n [mode]=\"isSmallScreen ? 'over' : 'side'\"\n [position]=\"isSmallScreen ? 'end' : 'start'\"\n [opened]=\"isActionPanelOpen\"\n [disableClose]=\"!isSmallScreen\"\n (closedStart)=\"isActionPanelOpen = false\"\n (openedStart)=\"isActionPanelOpen = true\">\n\n <button *ngIf=\"listPageService.showAddButton && listPageService.canWrite()\"\n mat-raised-button\n color=\"accent\"\n type=\"button\"\n class=\"add-button\"\n (click)=\"onAddClicked()\">\n + {{ 'mantle.buttons.add' | translate }} {{ listPageService.noun() | translate }}\n </button>\n\n <div class=\"search-section\">\n <mantle-search-panel #searchPanel\n [searchFields]=\"listPageService.searchFields()\">\n </mantle-search-panel>\n </div>\n\n <ng-container *ngFor=\"let exportOption of exportOptions\">\n <button mat-button type=\"button\" class=\"export-button\" (click)=\"exportOption.export(searchPanel.searchParams).subscribe()\">\n <span class=\"export-button-label\">{{ exportOption.label | translate }}</span>\n <mat-icon>download</mat-icon>\n </button>\n </ng-container>\n\n </mat-drawer>\n\n <div fxLayout=\"column\" fxLayoutAlign=\"stretch\" class=\"main-content full-height-only\"\n file-dropzone (fileDropped)=\"onFileDropped($event[0])\" [class.uploading]=\"uploadInProgress\">\n\n <div *ngIf=\"uploadInProgress\" class=\"uploading-indicator-overlay\">\n <div class=\"uploading-indicator\">Uploading...</div>\n <mantle-loader></mantle-loader>\n </div>\n\n <div fxFlex=\"1 0 1px\" class=\"vertically-scrollable\">\n <table mat-table class=\"full-width horizontal-scroll-table\" matSort>\n\n <ng-container *ngFor=\"let column of displayedColumns\">\n <ng-container matColumnDef=\"{{ column.attr }}\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ column.header | translate }}</th>\n <td mat-cell *matCellDef=\"let row\">\n <mantle-dynamic-attribute-display\n [fieldType]=\"column.type\"\n [value]=\"row[column.attr]\">\n </mantle-dynamic-attribute-display>\n </td>\n </ng-container>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnAttrs\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumnAttrs;\"\n (click)=\"onRecordClicked(row)\"\n [class.clickable-row]=\"withClickableRows\">\n </tr>\n </table>\n </div>\n\n <mat-paginator #paginator\n fxFlex=\"0 0 auto\"\n [length]=\"0\"\n [pageIndex]=\"0\"\n [pageSize]=\"10\"\n [pageSizeOptions]=\"[10, 20, 50]\">\n </mat-paginator>\n\n </div>\n\n </mat-drawer-container>\n </div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"isSmallScreen\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n\n <button *ngIf=\"isActionPanelOpen\" type=\"button\" mat-button (click)=\"drawer.toggle()\">\n <ng-container *ngIf=\"isActionPanelOpen\">\n {{ 'mantle.buttons.close_actions' | translate }}<mat-icon>chevron_right</mat-icon>\n </ng-container>\n </button>\n\n <div fxFlex=\"1 1 auto\"></div>\n\n <button *ngIf=\"!isActionPanelOpen\" type=\"button\" mat-button (click)=\"drawer.toggle()\">\n <ng-container>\n <mat-icon>chevron_left</mat-icon> {{ 'mantle.buttons.open_actions' | translate }}\n </ng-container>\n </button>\n\n </div>\n </div>\n</div>\n","import { Component, OnInit, Injector } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { NavTabsService, TabbedPageTab } from '../../../services/interfaces/nav-tabs.service';\n\n@Component({\n selector: 'mantle-tabbed-page',\n templateUrl: './tabbed-page.component.html',\n styleUrls: ['./tabbed-page.component.scss'],\n standalone: false\n})\nexport class TabbedPageComponent implements OnInit {\n\n public navTabsService: NavTabsService;\n\n public links: TabbedPageTab[] = [];\n public activeLink: string = '';\n\n constructor(private route: ActivatedRoute, private router: Router, private injector: Injector) {\n const navTabsServiceInjectionToken = route.snapshot.data['navTabsService'];\n this.navTabsService = this.injector.get<NavTabsService>(navTabsServiceInjectionToken);\n }\n\n ngOnInit(): void {\n this.route.params.subscribe(params => {\n this.links = this.navTabsService.tabs(this.route.snapshot.params);\n this.activeLink = this.router.url;\n });\n }\n\n}\n","<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"4px\" class=\"tabbed-page full-height-only\">\n\n <div fxFlex=\"0 0 auto\" class=\"tab-bar\">\n <nav mat-tab-nav-bar [tabPanel]=\"tabPanel\">\n <a mat-tab-link *ngFor=\"let link of links\"\n (click)=\"activeLink = link.route\"\n [active]=\"activeLink == link.route\"\n [routerLink]=\"link.route\"> {{ link.label | translate }} </a>\n </nav>\n </div>\n\n <mat-tab-nav-panel #tabPanel fxFlex=\"1 0 1px\" class=\"tab-content vertically-scrollable\">\n <router-outlet></router-outlet>\n </mat-tab-nav-panel>\n\n</div>\n","export const ROSTER_GANTT_CHART: Highcharts.Options = {\n chart: {\n type: 'gantt'\n },\n exporting: {\n enabled: true,\n sourceWidth: 1200,\n buttons: {\n contextButton: <any>{\n menuItems: [\"downloadCSV\", \"downloadPDF\", \"downloadJPEG\"]\n }\n },\n fallbackToExportServer: false,\n libURL: ''\n },\n legend: { enabled: false },\n plotOptions: {\n gantt: {\n borderRadius: 0,\n pointWidth: 24\n },\n series: {\n dataLabels: {\n enabled: true,\n format: '{point.shift_type}'\n }\n }\n },\n tooltip: {\n pointFormatter: function(this: any): string {\n let point = this;\n\n let startDate = new Date(point.start);\n let startDateString = `${startDate.toLocaleString('en-US', { month: 'short' })}. ${startDate.getDate()}`;\n\n let endDate = new Date(point.end);\n endDate.setDate(endDate.getDate() - 1);\n let endDateString = `${endDate.toLocaleString('en-US', { month: 'short' })}. ${endDate.getDate()}`;\n\n return '<b>' + point.shift_type + '</b><br/><span>From: ' + startDateString + '</span><br/><span>To: ' + endDateString + '</span><br/>';\n }\n },\n yAxis: {\n type: 'category',\n grid: {\n enabled: true,\n borderWidth: 1,\n columns: [{\n title: { text: 'Employees' }\n }]\n },\n gridLineWidth: 1\n },\n};\n","import { Component, Injector, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport moment from 'moment';\nimport { Observable } from 'rxjs';\nimport { ROSTER_GANTT_CHART } from './roster-gantt.data';\nimport { DialogFormComponent } from '../../../components/form/dialog-form/dialog-form.component';\nimport { FormPageService } from '../../../services/interfaces/form-page.service';\nimport { LocaleService } from '../../../services/locale.service';\nimport { RosterPageService } from '../../../services/interfaces/roster-page.service';\nimport { RosterScheduleService } from '../../../services/interfaces/roster-schedule.service';\nimport { ObjectService } from '../../../services/object.service';\nimport { WebApiDetailsResponse } from '../../../services/adapters/web-api-crud.adapter';\nimport { ScreenSizeService } from '../../../services/screen-size.service';\n\n@Component({\n selector: 'mantle-roster-page',\n templateUrl: './roster-page.component.html',\n styleUrls: ['./roster-page.component.scss'],\n standalone: false\n})\nexport class RosterPageComponent implements OnInit {\n\n public rosterPageService: RosterPageService;\n public rosterScheduleService: RosterScheduleService;\n public id!: string;\n public pageTitle: string;\n\n public rosterData: any = {}; // Roster gantt chart data\n public startDate: string = '';\n public endDate: string = '';\n public month: string = '';\n\n public isSmallScreen: boolean = false;\n\n constructor(private route: ActivatedRoute, private injector: Injector,\n private localeService: LocaleService, private dialog: MatDialog,\n private objectService: ObjectService, private screenSizeService: ScreenSizeService\n ) {\n const rosterPageServiceInjectionToken = this.route.snapshot.data['rosterPageService'];\n this.rosterPageService = this.injector.get<RosterPageService>(rosterPageServiceInjectionToken);\n const rosterScheduleServiceInjectionToken = this.route.snapshot.data['rosterScheduleService'];\n this.rosterScheduleService = this.injector.get<RosterScheduleService>(rosterScheduleServiceInjectionToken);\n\n this.pageTitle = this.route.snapshot.data['pageTitle'];\n\n this.screenSizeService.screenSize.subscribe((screenSize: any) => {\n this.isSmallScreen = screenSize == 'xs' || screenSize == 'sm';\n });\n }\n\n ngOnInit(): void {\n this.startDate = moment().locale(this.localeService.currentLocaleCode).startOf('month').format('YYYY-MM-DD');\n this.endDate = moment().locale(this.localeService.currentLocaleCode).endOf('month').format('YYYY-MM-DD');\n this.month = moment().locale(this.localeService.currentLocaleCode).startOf('month').format('MMMM YYYY');\n\n this.rosterScheduleService.subContentChangeEvents.subscribe((value: any) => {\n this.pullContent();\n });\n\n this.pullContent();\n }\n\n showPrevMonth(): void {\n this.startDate = moment(this.startDate).locale(this.localeService.currentLocaleCode).subtract(1, 'M').format('YYYY-MM-DD');\n this.endDate = moment(this.startDate).locale(this.localeService.currentLocaleCode).endOf('month').format('YYYY-MM-DD');\n this.month = moment(this.startDate).locale(this.localeService.currentLocaleCode).format('MMMM YYYY');\n\n this.pullContent();\n }\n\n showNextMonth(): void {\n this.startDate = moment(this.startDate).locale(this.localeService.currentLocaleCode).add(1, 'M').format('YYYY-MM-DD');\n this.endDate = moment(this.startDate).locale(this.localeService.currentLocaleCode).endOf('month').format('YYYY-MM-DD');\n this.month = moment(this.startDate).locale(this.localeService.currentLocaleCode).format('MMMM YYYY');\n\n this.pullContent();\n }\n\n pullContent(): void {\n this.route.params.subscribe(params => {\n this.id = this.route.snapshot.params['id'];\n\n this.rosterPageService.get(this.id, { date_from: this.startDate, date_to: this.endDate }).subscribe(\n (res: WebApiDetailsResponse) => {\n this.loadRoster(res.content.data.roster_schedules.data);\n }\n );\n });\n }\n\n loadRoster(data: any): void {\n let ganttChartConfiguration = this.objectService.deepMerge(ROSTER_GANTT_CHART, {\n plotOptions: {\n series: {\n events: {\n click: (event: any) => {\n this.openScheduleRecord(event.point.schedule_id);\n }\n }\n }\n },\n exporting: {\n menuItemDefinitions: {\n downloadCSV: {\n text: 'Download CSV file',\n onclick: () => { this.exportCsv().subscribe() }\n }\n }\n }\n });\n this.rosterData = this.objectService.deepMerge(ganttChartConfiguration, data);\n }\n\n exportCsv(): Observable<any> {\n return this.rosterPageService.exportRosterCsv(\n this.id,\n { date_from: this.startDate, date_to: this.endDate }\n );\n }\n\n onBackClicked(): void {\n this.rosterPageService.openList();\n }\n\n onEditClicked(): void {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n formPageService: this.rosterPageService as unknown as FormPageService,\n title: 'shift_management.dialogs.rosters.edit',\n id: this.id\n };\n dialogConfig.width = '80%';\n dialogConfig.autoFocus = false;\n\n let dialogRef = this.dialog.open(DialogFormComponent, dialogConfig);\n\n dialogRef.afterClosed().subscribe((response: any) => {\n if (response?._destroy) {\n this.rosterPageService.openList();\n }\n else if (response) {\n this.pullContent();\n }\n });\n }\n\n openScheduleRecord(scheduleId: string): void {\n this.rosterScheduleService.openRecord({ id: scheduleId });\n }\n\n openScheduleForm(scheduleId?: string): void {\n this.rosterScheduleService.openForm({ id: scheduleId }, { roster_id: this.id });\n }\n\n}\n","<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"16px\" class=\"page full-height-min full-height-only vertically-scrollable\">\n <mantle-page-title>{{ pageTitle | translate }}</mantle-page-title>\n\n <div fxFlex=\"0 0 auto\" fxLayout=\"column\" fxLayoutGap=\"16px\" class=\"page-header headline-5\">\n <div fxLayout=\"row\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"16px\">\n <div fxFlex=\"0 0 auto\" *ngIf=\"!rosterPageService.hideBackButton\">\n <button class=\"back-button\" mat-mini-fab color=\"primary\" type=\"button\" (click)=\"onBackClicked()\">\n <mat-icon>arrow_back</mat-icon>\n </button>\n </div>\n\n <button *ngIf=\"rosterScheduleService.showAddButton && rosterPageService.canWrite()\"\n mat-raised-button\n color=\"accent\"\n type=\"button\"\n class=\"add-button\"\n (click)=\"openScheduleForm()\">\n + {{ 'mantle.buttons.add' | translate }} {{ rosterScheduleService.noun() | translate }}\n </button>\n\n <ng-container *ngIf=\"!isSmallScreen; then monthControls\">\n </ng-container>\n\n <div fxFlex=\"1 1 auto\"></div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"rosterPageService.showEditButton && rosterPageService.canWrite()\">\n <button mat-mini-fab\n color=\"primary\"\n type=\"button\"\n class=\"edit-button\"\n (click)=\"onEditClicked()\"\n [disabled]=\"rosterPageService.isCommitInProgress\">\n <mat-icon>edit</mat-icon>\n </button>\n </div>\n </div>\n\n <ng-container *ngIf=\"isSmallScreen; then monthControls\">\n </ng-container>\n </div>\n\n <mantle-dynamic-chart [data]=\"rosterData\"></mantle-dynamic-chart>\n</div>\n\n<ng-template #monthControls>\n <div class=\"month-controls\">\n <button type=\"button\" mat-button (click)=\"showPrevMonth()\">\n <mat-icon>chevron_left</mat-icon>\n </button>\n \n <div class=\"month-text\">{{ month }}</div>\n \n <button type=\"button\" mat-button (click)=\"showNextMonth()\">\n <mat-icon>chevron_right</mat-icon>\n </button>\n </div>\n</ng-template>\n","import { AfterViewChecked, ChangeDetectorRef, Component, Injector, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AnnouncementService } from '../../../services/announcement.service';\nimport { DynamicFormComponent } from '../../../components/form/dynamic-form/dynamic-form.component';\nimport { ExportPageService } from '../../../services/interfaces/export-page.service';\nimport { ObjectService } from '../../../services/object.service';\nimport { WebApiFormResponse } from '../../../services/adapters/web-api-crud.adapter';\n\n@Component({\n selector: 'mantle-export-page',\n templateUrl: './export-page.component.html',\n styleUrls: ['./export-page.component.scss'],\n standalone: false\n})\nexport class ExportPageComponent implements OnInit, AfterViewChecked {\n\n @ViewChild(DynamicFormComponent) dynamicForm!: DynamicFormComponent;\n\n private exportPageService: ExportPageService;\n\n public content$!: Observable<any>;\n public isTabbedContent: boolean = false;\n public isExportInProgress!: boolean;\n\n constructor(private route: ActivatedRoute, private injector: Injector, private changeDetectorRef: ChangeDetectorRef,\n private announcementService: AnnouncementService, private objectService: ObjectService) {\n const exportPageServiceInjectionToken = this.route.snapshot.data['exportPageService'];\n this.exportPageService = this.injector.get<ExportPageService>(exportPageServiceInjectionToken);\n this.isTabbedContent = this.route.snapshot.data['isTabbedContent'];\n }\n\n ngOnInit(): void {\n this.content$ = this.exportPageService.getNew().pipe(\n map((res: WebApiFormResponse) => {\n return res.content;\n })\n );\n }\n\n ngAfterViewChecked(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n onExportClicked(): void {\n this.isExportInProgress = true;\n\n let params = this.dynamicForm.value;\n this.objectService.removeEmptyAttributes(params);\n\n this.exportPageService.export(params).subscribe(\n res => { this.onExportSuccess(res); },\n res => { this.onExportFailure(res); }\n );\n }\n\n onExportSuccess(res: any): void {\n this.isExportInProgress = false;\n }\n\n onExportFailure(res: { error: any }): void {\n this.announcementService.error('mantle.messages.export_failed');\n this.isExportInProgress = false;\n }\n\n}\n","<div fxLayout=\"column\" fxLayoutAlign=\"stretch\" fxLayoutGap=\"16px\" class=\"full-height-min\" [ngClass]=\"{'page full-height-only vertically-scrollable': !isTabbedContent}\">\n <div fxFlex=\"1 0 auto\" class=\"main-content\">\n <mantle-dynamic-form #dynamicForm [content]=\"content$ | async\"></mantle-dynamic-form>\n </div>\n\n <div fxFlex=\"0 0 auto\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <div fxFlex=\"1 1 auto\"></div>\n\n <div fxFlex=\"0 0 auto\">\n <button mat-raised-button\n *ngIf=\"!isExportInProgress\"\n color=\"primary\"\n type=\"button\"\n class=\"export-button\"\n [disabled]=\"!dynamicForm?.valid\"\n (click)=\"onExportClicked()\">\n {{ 'mantle.buttons.export' | translate }}\n </button>\n\n\n <button mat-raised-button\n *ngIf=\"isExportInProgress\"\n color=\"primary\"\n type=\"button\"\n class=\"button-with-spinner exporting-button\"\n [disabled]=\"true\">\n {{ 'mantle.buttons.exporting' | translate }}\n <mat-spinner [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input, OnChanges } from '@angular/core';\nimport { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';\nimport { FlatTreeControl } from '@angular/cdk/tree';\n\n/** File node data with possible child nodes. */\nexport interface NavigationNode {\n name: string;\n icon?: string;\n link?: string;\n children?: NavigationNode[];\n}\n\n/**\n * Flattened tree node that has been created from a NavigationNode through the flattener. Flattened\n * nodes include level index and whether they can be expanded or not.\n */\nexport interface FlatTreeNode {\n name: string;\n icon?: string;\n link?: string;\n level: number;\n expandable: boolean;\n}\n\n@Component({\n selector: 'mantle-nav-tree',\n templateUrl: './nav-tree.component.html',\n styleUrls: ['./nav-tree.component.scss'],\n standalone: false\n})\nexport class NavTreeComponent implements OnChanges {\n\n /** The TreeControl controls the expand/collapse state of tree nodes. */\n treeControl: FlatTreeControl<FlatTreeNode>;\n\n /** The TreeFlattener is used to generate the flat list of items from hierarchical data. */\n treeFlattener: MatTreeFlattener<NavigationNode, FlatTreeNode>;\n\n /** The MatTreeFlatDataSource connects the control and flattener to provide data. */\n dataSource: MatTreeFlatDataSource<NavigationNode, FlatTreeNode>;\n\n @Input() notificationCount: number = 0;\n @Input() navTreeFeatures: any[] = [];\n\n constructor() {\n this.treeFlattener = new MatTreeFlattener(\n this.transformer,\n this.getLevel,\n this.isExpandable,\n this.getChildren);\n\n this.treeControl = new FlatTreeControl(this.getLevel, this.isExpandable);\n this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\n }\n\n ngOnChanges(): void {\n this.dataSource.data = this.navTreeFeatures;\n }\n\n /** Transform the data to something the tree can read. */\n transformer(node: NavigationNode, level: number): FlatTreeNode {\n return {\n name: node.name,\n icon: node.icon,\n link: node.link,\n level,\n expandable: !!node.children && node.children.length > 0\n };\n }\n\n /** Get the level of the node */\n getLevel(node: FlatTreeNode): number {\n return node.level;\n }\n\n /** Get whether the node is expanded or not. */\n isExpandable(node: FlatTreeNode): boolean {\n return node.expandable;\n }\n\n /** Get whether the node has children or not. */\n hasChild(index: number, node: FlatTreeNode): boolean {\n return node.expandable;\n }\n\n /** Get the children for the node. */\n getChildren(node: NavigationNode): NavigationNode[] | null | undefined {\n return node.children;\n }\n}\n","<mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n\n <!-- This is the tree node template for leaf nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node\" [class.leaf-node]=\"node.level > 0\">\n <div fxLayout=\"row\" class=\"tree-node-content\">\n <div fxFlex=\"0 0 28px\" *ngIf=\"node.level > 0\" class=\"tree-node-indent\">\n <mat-divider [vertical]=\"true\" color=\"primary\"></mat-divider>\n </div>\n <div fxFlex=\"1 0 1px\">\n <button mat-button [routerLink]=\"node.link\" routerLinkActive=\"active\" class=\"tree-node-button\">\n <mat-icon *ngIf=\"node.icon\"\n [matBadge]=\"(node.name == 'Notifications' && notificationCount > 0) ? notificationCount : undefined\"\n matBadgeColor=\"warn\"\n matBadgeSize=\"small\">\n {{ node.icon }}\n </mat-icon>\n <div class=\"node-label\">{{ node.name | translate }}</div>\n </button>\n </div>\n </div>\n </mat-tree-node>\n\n <!-- This is the tree node template for expandable nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" fxLayout=\"row\" [class.leaf-node]=\"node.level > 0\">\n <div fxLayout=\"row\" class=\"tree-node-content\">\n <div fxFlex=\"0 0 28px\" *ngIf=\"node.level > 0\" class=\"tree-node-indent\">\n <mat-divider [vertical]=\"true\" color=\"primary\"></mat-divider>\n </div>\n <div fxFlex=\"1 0 1px\">\n <button fxFlex=\"1 0 1px\" mat-button matTreeNodeToggle class=\"tree-node-button\">\n <mat-icon *ngIf=\"node.icon\">{{ node.icon }}</mat-icon>\n <div class=\"node-label\">{{ node.name | translate }}</div>\n </button>\n </div>\n </div>\n </mat-tree-node>\n\n</mat-tree>\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\nimport { Event, NavigationStart, Router } from '@angular/router';\nimport { Observable, Subscription } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\nimport { WebApiDeleteResponse, WebApiDetailsResponse } from '../../../services/adapters/web-api-crud.adapter';\nimport { AnnouncementService } from '../../../services/announcement.service';\nimport { DetailPageService } from '../../../services/interfaces/detail-page.service';\n\nexport interface DialogDetailParams {\n detailPageService: DetailPageService;\n id: string;\n title: string;\n}\n\n@Component({\n selector: 'mantle-dialog-details',\n templateUrl: './dialog-details.component.html',\n styleUrls: ['./dialog-details.component.scss'],\n standalone: false\n})\nexport class DialogDetailsComponent implements OnInit {\n\n public detailPageService: DetailPageService;\n public id: string;\n public title: string;\n public content$!: Observable<any>;\n public isDeleteInProgress!: boolean;\n\n private routerSubscription!: Subscription;\n\n constructor(private router: Router, private dialogRef: MatDialogRef<DialogDetailsComponent>,\n @Inject(MAT_DIALOG_DATA) private dialogDetailParams: DialogDetailParams,\n private announcementService: AnnouncementService) {\n this.detailPageService = this.dialogDetailParams.detailPageService;\n this.id = this.dialogDetailParams.id;\n this.title = this.dialogDetailParams.title;\n\n this.content$ = this.detailPageService.get(this.id).pipe(\n map((res: WebApiDetailsResponse) => {\n return res.content;\n })\n );\n }\n\n ngOnInit() {\n this.routerSubscription = this.router.events.pipe(\n filter((event: Event) => event instanceof NavigationStart),\n filter(() => !!this.dialogRef)\n ).subscribe(() => {\n this.dialogRef.close();\n });\n }\n\n onCancelClicked() {\n this.close();\n }\n\n onCloneClicked(): void {\n this.close();\n\n setTimeout(() => {\n this.detailPageService.openForm({}, { clone_id: this.id });\n }, 500);\n }\n\n onEditClicked(): void {\n this.close();\n\n setTimeout(() => {\n this.detailPageService.openForm({ id: this.id });\n }, 500);\n }\n\n onDeleteClicked(): void {\n this.detailPageService.delete(\n this.id,\n () => { this.isDeleteInProgress = true; },\n (res: WebApiDeleteResponse) => { this.onDeleteSuccess(res); },\n (res: WebApiDeleteResponse) => { this.onDeleteFailure(res); }\n );\n }\n\n onDeleteSuccess(res: WebApiDeleteResponse): void {\n this.announcementService.success('mantle.messages.delete_successful');\n this.close({ id: this.id, _destroy: true });\n\n this.isDeleteInProgress = false;\n }\n\n onDeleteFailure(res: WebApiDeleteResponse): void {\n this.announcementService.error('mantle.messages.delete_failed');\n\n this.isDeleteInProgress = false;\n }\n\n close(result: any = false) {\n this.dialogRef.close(result);\n }\n\n ngOnDestroy() {\n this.routerSubscription.unsubscribe();\n }\n\n}\n","<div mat-dialog-title fxLayout=\"row\" fxLayoutAlign=\"start\" fxLayoutGap=\"8px\" class=\"dialog-title-section\">\n <mantle-section-title fxFlex=\"1 0 1px\" [title]=\"title\"></mantle-section-title>\n <button fxFlex=\"0 0 auto\" mat-icon-button tabindex=\"-1\" (click)=\"onCancelClicked()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <mantle-dynamic-details [content]=\"content$ | async\"></mantle-dynamic-details>\n</mat-dialog-content>\n\n<mat-dialog-actions fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\" class=\"actions-section\">\n <div fxFlex=\"0 0 auto\" *ngIf=\"detailPageService.showDeleteButton && detailPageService.canWrite()\">\n <button mat-button\n *ngIf=\"!isDeleteInProgress\"\n color=\"warn\"\n type=\"button\"\n class=\"delete-button\"\n (click)=\"onDeleteClicked()\">\n {{ 'mantle.buttons.delete' | translate }}\n </button>\n\n <button mat-raised-button\n *ngIf=\"isDeleteInProgress\"\n color=\"warn\"\n type=\"button\"\n class=\"button-with-spinner deleting-button\"\n [disabled]=\"true\">\n {{ 'mantle.buttons.deleting' | translate }}\n <mat-spinner [diameter]=\"16\"></mat-spinner>\n </button>\n </div>\n\n <div fxFlex=\"1 1 auto\"></div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"detailPageService.showCloneButton && detailPageService.canWrite()\">\n <button mat-raised-button\n color=\"accent\"\n type=\"button\"\n class=\"edit-button\"\n (click)=\"onCloneClicked()\">\n {{ 'mantle.buttons.clone' | translate }}\n </button>\n </div>\n\n <div fxFlex=\"0 0 auto\" *ngIf=\"detailPageService.showEditButton && detailPageService.canWrite()\">\n <button mat-raised-button\n color=\"primary\"\n type=\"button\"\n class=\"edit-button\"\n (click)=\"onEditClicked()\">\n {{ 'mantle.buttons.edit' | translate }}\n </button>\n </div>\n</mat-dialog-actions>\n","import { Component, Injector, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { RerouteService } from '../../../services/interfaces/reroute.service';\n\n@Component({\n selector: 'mantle-reroute',\n template: '',\n standalone: false\n})\nexport class RerouteComponent implements OnInit {\n\n public rerouteService: RerouteService;\n\n constructor(private route: ActivatedRoute, private injector: Injector) {\n const rerouteServiceInjectionToken = this.route.snapshot.data['rerouteService'];\n this.rerouteService = this.injector.get<RerouteService>(rerouteServiceInjectionToken);\n }\n\n ngOnInit(): void {\n this.reroute();\n }\n\n reroute() {\n this.rerouteService.reroute();\n }\n\n}\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\n\n@Component({\n selector: 'mantle-qr-code-dialog',\n templateUrl: './qr-code-dialog.component.html',\n styleUrls: ['./qr-code-dialog.component.scss'],\n standalone: false\n})\nexport class QrCodeDialogComponent {\n\n public value: string = '';\n public instructions: string = '';\n\n constructor(private dialogRef: MatDialogRef<{ value: string, instructions: string }>,\n @Inject(MAT_DIALOG_DATA) private params: { value: string, instructions: string }) {\n this.value = this.params.value;\n this.instructions = this.params.instructions;\n }\n\n onClose(): void {\n this.dialogRef.close();\n }\n\n}\n","<div mat-dialog-title fxLayout=\"row\" fxLayoutAlign=\"start\" fxLayoutGap=\"8px\" class=\"dialog-title-section\">\n <mantle-section-title fxFlex=\"1 0 1px\" title=\"QR Code\"></mantle-section-title>\n <button fxFlex=\"0 0 auto\" mat-icon-button tabindex=\"-1\" (click)=\"onClose()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <p class=\"instructions\">{{ instructions | translate }}</p>\n <div class=\"qr-code-wrapper\">\n <qr-code [value]=\"value\"\n size=\"300\"\n cssClass=\"qr-code\"\n errorCorrectionLevel=\"M\">\n </qr-code>\n </div>\n</mat-dialog-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { RouterModule } from '@angular/router';\nimport { LayoutModule } from '@angular/cdk/layout';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { HighchartsChartModule } from 'highcharts-angular';\nimport { MarkdownModule } from 'ngx-markdown';\nimport { QrCodeModule } from 'ng-qrcode';\nimport { QuillModule } from 'ngx-quill';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { ImageCropperComponent as NgxImageCropperComponent } from 'ngx-image-cropper';\n\n// Modules\nimport { MaterialModule } from './material.module';\n\n// Pipes\nimport { DynamicPipe } from './pipes/dynamic.pipe';\nimport { SecureImagePipe } from './pipes/secure-image.pipe';\n\n// Directives\nimport { ClickStopPropagationDirective } from \"./directives/click-stop-propagation.directive\";\nimport { FileDropzoneDirective } from './directives/file-dropzone.directive';\n\n// Components\nimport { DynamicDetailsComponent } from './components/details/dynamic-details/dynamic-details.component';\nimport { GridDetailsSectionComponent } from './components/details/sections/grid-details-section/grid-details-section.component';\nimport { TableDetailsSectionComponent } from './components/details/sections/table-details-section/table-details-section.component';\nimport { ReportDetailsSectionComponent } from './components/details/sections/report-details-section/report-details-section.component';\nimport { RosterShiftListDetailsSectionComponent } from './components/details/sections/roster-shift-list-details-section/roster-shift-list-details-section.component';\nimport { DynamicAttributeDisplayComponent } from './components/details/fields/dynamic-attribute-display/dynamic-attribute-display.component';\nimport { ActionsAttributeDisplayComponent } from './components/details/fields/actions-attribute-display/actions-attribute-display.component';\nimport { IconAttributeDisplayComponent } from './components/details/fields/icon-attribute-display/icon-attribute-display.component';\nimport { ChipAttributeDisplayComponent } from './components/details/fields/chip-attribute-display/chip-attribute-display.component';\nimport { FileAttributeDisplayComponent } from './components/details/fields/file-attribute-display/file-attribute-display.component';\nimport { ImageAttributeDisplayComponent } from './components/details/fields/image-attribute-display/image-attribute-display.component';\nimport { MarkdownAttributeDisplayComponent } from './components/details/fields/markdown-attribute-display/markdown-attribute-display.component';\nimport { MultiselectDisplayComponent } from './components/details/fields/multiselect-display/multiselect-display.component';\nimport { RichTextDisplayComponent } from './components/details/fields/rich-text-display/rich-text-display.component';\nimport { ReportViewerDisplayComponent } from './components/details/fields/report-viewer-display/report-viewer-display.component';\nimport { DialogFormComponent } from './components/form/dialog-form/dialog-form.component';\nimport { DialogNestedFormComponent } from './components/form/dialog-nested-form/dialog-nested-form.component';\nimport { DynamicFormComponent } from './components/form/dynamic-form/dynamic-form.component';\nimport { GridFormSectionComponent } from './components/form/sections/grid-form-section/grid-form-section.component';\nimport { TableFormSectionComponent } from './components/form/sections/table-form-section/table-form-section.component';\nimport { RosterShiftListFormSectionComponent } from './components/form/sections/roster-shift-list-form-section/roster-shift-list-form-section.component';\nimport { DynamicFormFieldComponent } from './components/form/fields/dynamic-form-field/dynamic-form-field.component';\nimport { ChipInputComponent } from './components/form/fields/chip-input/chip-input.component';\nimport { DatepickerComponent } from './components/form/fields/datepicker/datepicker.component';\nimport { DatetimepickerComponent } from './components/form/fields/datetimepicker/datetimepicker.component';\nimport { ColorPickerInputComponent } from './components/form/fields/colorpicker-input/colorpicker-input.component';\nimport { DropdownComponent } from './components/form/fields/dropdown/dropdown.component';\nimport { FilepickerComponent } from './components/form/fields/filepicker/filepicker.component';\nimport { ImagepickerComponent } from './components/form/fields/imagepicker/imagepicker.component';\nimport { ImageCropperComponent } from './components/form/fields/image-cropper/image-cropper.component';\nimport { NumberInputComponent } from './components/form/fields/number-input/number-input.component';\nimport { PasswordInputComponent } from './components/form/fields/password-input/password-input.component';\nimport { TextareaComponent } from './components/form/fields/textarea/textarea.component';\nimport { TextInputComponent } from './components/form/fields/text-input/text-input.component';\nimport { TimeInputComponent } from './components/form/fields/time-input/time-input.component';\nimport { MarkdownInputComponent } from './components/form/fields/markdown-input/markdown-input.component';\nimport { MultiselectInputComponent } from './components/form/fields/multiselect-input/multiselect-input.component';\nimport { RichTextInputComponent } from './components/form/fields/rich-text-input/rich-text-input.component';\nimport { ReportConfigInputComponent } from './components/form/fields/report-config-input/report-config-input.component';\nimport { AccordionLayoutEditorContainerComponent } from './components/layout-editor/containers/accordion-layout-editor-container/accordion-layout-editor-container.component';\nimport { DynamicLayoutEditorContainerComponent } from './components/layout-editor/containers/dynamic-layout-editor-container/dynamic-layout-editor-container.component';\nimport { PlainLayoutEditorContainerComponent } from './components/layout-editor/containers/plain-layout-editor-container/plain-layout-editor-container.component';\nimport { DynamicLayoutEditorComponent } from './components/layout-editor/dynamic-layout-editor/dynamic-layout-editor.component';\nimport { DynamicLayoutEditorElementComponent } from './components/layout-editor/elements/dynamic-layout-editor-element/dynamic-layout-editor-element.component';\nimport { LayoutEditorFieldElementComponent } from './components/layout-editor/elements/layout-editor-field-element/layout-editor-field-element.component';\nimport { LayoutEditorTableColumnElementComponent } from './components/layout-editor/elements/layout-editor-table-column-element/layout-editor-table-column-element.component';\nimport { LayoutEditorWidgetElementComponent } from './components/layout-editor/elements/layout-editor-widget-element/layout-editor-widget-element.component';\nimport { DashboardLayoutEditorSectionComponent } from './components/layout-editor/sections/dashboard-layout-editor-section/dashboard-layout-editor-section.component';\nimport { DynamicLayoutEditorSectionComponent } from './components/layout-editor/sections/dynamic-layout-editor-section/dynamic-layout-editor-section.component';\nimport { GridLayoutEditorSectionComponent } from './components/layout-editor/sections/grid-layout-editor-section/grid-layout-editor-section.component';\nimport { MarkdownLayoutEditorSectionComponent } from './components/layout-editor/sections/markdown-layout-editor-section/markdown-layout-editor-section.component';\nimport { TableLayoutEditorSectionComponent } from './components/layout-editor/sections/table-layout-editor-section/table-layout-editor-section.component';\nimport { DashboardPageComponent } from './components/pages/dashboard-page/dashboard-page.component';\nimport { LayoutEditorPageComponent } from './components/pages/layout-editor-page/layout-editor-page.component';\nimport { ListPageComponent } from './components/pages/list-page/list-page.component';\nimport { FormPageComponent } from './components/pages/form-page/form-page.component';\nimport { DetailPageComponent } from './components/pages/detail-page/detail-page.component';\nimport { DocumentsPageComponent } from './components/pages/documents-page/documents-page.component';\nimport { TabbedPageComponent } from './components/pages/tabbed-page/tabbed-page.component';\nimport { RosterPageComponent } from './components/pages/roster-page/roster-page.component';\nimport { ExportPageComponent } from './components/pages/export-page/export-page.component';\nimport { PageTitleComponent } from './components/titles/page-title/page-title.component';\nimport { SectionTitleComponent } from './components/titles/section-title/section-title.component';\nimport { DynamicTableComponent } from './components/widgets/dynamic-table/dynamic-table.component';\nimport { FilePreviewDialogComponent } from './components/widgets/file-preview-dialog/file-preview-dialog.component';\nimport { DeleteConfirmationDialogComponent } from './components/widgets/delete-confirmation-dialog/delete-confirmation-dialog.component';\nimport { SaveConfirmationDialogComponent } from './components/widgets/save-confirmation-dialog/save-confirmation-dialog.component';\nimport { SearchPanelComponent } from './components/widgets/search-panel/search-panel.component';\nimport { NavTreeComponent } from './components/navigation/nav-tree/nav-tree.component';\nimport { LoaderComponent } from './components/widgets/loader/loader.component';\nimport { DialogDetailsComponent } from './components/details/dialog-details/dialog-details.component';\nimport { DialogNestedDetailsComponent } from './components/details/dialog-nested-details/dialog-nested-details.component';\nimport { LinkAttributeDisplayComponent } from './components/details/fields/link-attribute-display/link-attribute-display.component';\nimport { DashboardSectionComponent } from './components/dashboard/sections/dashboard-section/dashboard-section.component';\nimport { DynamicWidgetDisplayComponent } from './components/dashboard/widgets/dynamic-widget-display/dynamic-widget-display.component';\nimport { DynamicChartComponent } from './components/dashboard/widgets/dynamic-chart/dynamic-chart.component';\nimport { DashboardInfoCardComponent } from './components/dashboard/widgets/dashboard-info-card/dashboard-info-card.component';\nimport { DashboardTableComponent } from './components/dashboard/widgets/dashboard-table/dashboard-table.component';\nimport { DashboardCardComponent } from './components/dashboard/dashboard-card/dashboard-card.component';\nimport { DashboardCardSearchMenuComponent } from './components/dashboard/dashboard-card-search-menu/dashboard-card-search-menu.component';\nimport { DynamicDashboardComponent } from './components/dashboard/dynamic-dashboard/dynamic-dashboard.component';\nimport { RerouteComponent } from './components/navigation/reroute/reroute.component';\nimport { SnackbarComponent } from './components/widgets/snackbar/snackbar.component';\nimport { ThumbnailDisplayComponent } from './components/details/fields/thumbnail-display/thumbnail-display.component';\nimport { ContentTitleComponent } from './components/titles/content-title/content-title.component';\nimport { MarkdownDetailsSectionComponent } from './components/details/sections/markdown-details-section/markdown-details-section.component';\nimport { AccordionDetailsContainerComponent } from './components/details/containers/accordion-details-container/accordion-details-container.component';\nimport { PlainDetailsContainerComponent } from './components/details/containers/plain-details-container/plain-details-container.component';\nimport { DynamicDetailsContainerComponent } from './components/details/containers/dynamic-details-container/dynamic-details-container.component';\nimport { DynamicDetailsSectionComponent } from './components/details/sections/dynamic-details-section/dynamic-details-section.component';\nimport { DynamicFormContainerComponent } from './components/form/containers/dynamic-form-container/dynamic-form-container.component';\nimport { PlainFormContainerComponent } from './components/form/containers/plain-form-container/plain-form-container.component';\nimport { AccordionFormContainerComponent } from './components/form/containers/accordion-form-container/accordion-form-container.component';\nimport { DynamicFormSectionComponent } from './components/form/sections/dynamic-form-section/dynamic-form-section.component';\nimport { DynamicDashboardContainerComponent } from './components/dashboard/containers/dynamic-dashboard-container/dynamic-dashboard-container.component';\nimport { PlainDashboardContainerComponent } from './components/dashboard/containers/plain-dashboard-container/plain-dashboard-container.component';\nimport { AutocompleteInputComponent } from './components/form/fields/autocomplete-input/autocomplete-input.component';\nimport { QrCodeDialogComponent } from './components/widgets/qr-code-dialog/qr-code-dialog.component';\nimport { DraggableTableComponent } from './components/widgets/draggable-table/draggable-table.component';\nimport { TooltipComponent } from './components/widgets/tooltip/tooltip.component';\n\n@NgModule({\n declarations: [\n DynamicPipe,\n SecureImagePipe,\n ClickStopPropagationDirective,\n FileDropzoneDirective,\n DynamicDetailsComponent,\n GridDetailsSectionComponent,\n TableDetailsSectionComponent,\n ReportDetailsSectionComponent,\n RosterShiftListDetailsSectionComponent,\n DynamicAttributeDisplayComponent,\n ActionsAttributeDisplayComponent,\n IconAttributeDisplayComponent,\n ChipAttributeDisplayComponent,\n FileAttributeDisplayComponent,\n ImageAttributeDisplayComponent,\n MarkdownAttributeDisplayComponent,\n MultiselectDisplayComponent,\n RichTextDisplayComponent,\n ReportViewerDisplayComponent,\n DialogFormComponent,\n DialogNestedFormComponent,\n DynamicFormComponent,\n GridFormSectionComponent,\n TableFormSectionComponent,\n RosterShiftListFormSectionComponent,\n DynamicFormFieldComponent,\n ChipInputComponent,\n DatepickerComponent,\n DatetimepickerComponent,\n ColorPickerInputComponent,\n DropdownComponent,\n FilepickerComponent,\n ImagepickerComponent,\n ImageCropperComponent,\n NumberInputComponent,\n PasswordInputComponent,\n TextareaComponent,\n TextInputComponent,\n TimeInputComponent,\n MarkdownInputComponent,\n MultiselectInputComponent,\n RichTextInputComponent,\n ReportConfigInputComponent,\n AccordionLayoutEditorContainerComponent,\n DynamicLayoutEditorContainerComponent,\n PlainLayoutEditorContainerComponent,\n DynamicLayoutEditorComponent,\n DynamicLayoutEditorElementComponent,\n LayoutEditorFieldElementComponent,\n LayoutEditorTableColumnElementComponent,\n LayoutEditorWidgetElementComponent,\n DashboardLayoutEditorSectionComponent,\n DynamicLayoutEditorSectionComponent,\n GridLayoutEditorSectionComponent,\n MarkdownLayoutEditorSectionComponent,\n TableLayoutEditorSectionComponent,\n DashboardPageComponent,\n LayoutEditorPageComponent,\n ListPageComponent,\n FormPageComponent,\n DetailPageComponent,\n DocumentsPageComponent,\n TabbedPageComponent,\n RosterPageComponent,\n ExportPageComponent,\n PageTitleComponent,\n SectionTitleComponent,\n DynamicTableComponent,\n FilePreviewDialogComponent,\n DeleteConfirmationDialogComponent,\n SaveConfirmationDialogComponent,\n SearchPanelComponent,\n NavTreeComponent,\n LoaderComponent,\n DialogDetailsComponent,\n DialogNestedDetailsComponent,\n LinkAttributeDisplayComponent,\n DashboardSectionComponent,\n DynamicWidgetDisplayComponent,\n DynamicChartComponent,\n DashboardInfoCardComponent,\n DashboardTableComponent,\n DashboardCardComponent,\n DashboardCardSearchMenuComponent,\n DynamicDashboardComponent,\n RerouteComponent,\n SnackbarComponent,\n ThumbnailDisplayComponent,\n ContentTitleComponent,\n MarkdownDetailsSectionComponent,\n AccordionDetailsContainerComponent,\n PlainDetailsContainerComponent,\n DynamicDetailsContainerComponent,\n DynamicDetailsSectionComponent,\n DynamicFormContainerComponent,\n PlainFormContainerComponent,\n AccordionFormContainerComponent,\n DynamicFormSectionComponent,\n DynamicDashboardContainerComponent,\n PlainDashboardContainerComponent,\n AutocompleteInputComponent,\n QrCodeDialogComponent,\n DraggableTableComponent,\n TooltipComponent,\n ],\n imports: [\n CommonModule,\n RouterModule,\n HttpClientModule,\n LayoutModule,\n FlexLayoutModule,\n DragDropModule,\n BrowserModule,\n BrowserAnimationsModule,\n FormsModule,\n ReactiveFormsModule,\n HighchartsChartModule,\n MarkdownModule.forRoot(),\n QrCodeModule,\n QuillModule.forRoot(),\n TranslateModule,\n MaterialModule,\n NgxImageCropperComponent\n ],\n exports: [\n MaterialModule,\n DynamicPipe,\n SecureImagePipe,\n ClickStopPropagationDirective,\n FileDropzoneDirective,\n DynamicDetailsComponent,\n GridDetailsSectionComponent,\n TableDetailsSectionComponent,\n ReportDetailsSectionComponent,\n RosterShiftListDetailsSectionComponent,\n DynamicAttributeDisplayComponent,\n ActionsAttributeDisplayComponent,\n IconAttributeDisplayComponent,\n ChipAttributeDisplayComponent,\n FileAttributeDisplayComponent,\n ImageAttributeDisplayComponent,\n MarkdownAttributeDisplayComponent,\n MultiselectDisplayComponent,\n RichTextDisplayComponent,\n ReportViewerDisplayComponent,\n DialogFormComponent,\n DialogNestedFormComponent,\n DynamicFormComponent,\n GridFormSectionComponent,\n TableFormSectionComponent,\n RosterShiftListFormSectionComponent,\n DynamicFormFieldComponent,\n ChipInputComponent,\n DatepickerComponent,\n DatetimepickerComponent,\n ColorPickerInputComponent,\n DropdownComponent,\n FilepickerComponent,\n ImagepickerComponent,\n ImageCropperComponent,\n NumberInputComponent,\n PasswordInputComponent,\n TextareaComponent,\n TextInputComponent,\n TimeInputComponent,\n MarkdownInputComponent,\n MultiselectInputComponent,\n RichTextInputComponent,\n ReportConfigInputComponent,\n AccordionLayoutEditorContainerComponent,\n DynamicLayoutEditorContainerComponent,\n PlainLayoutEditorContainerComponent,\n DynamicLayoutEditorComponent,\n DynamicLayoutEditorElementComponent,\n LayoutEditorFieldElementComponent,\n LayoutEditorTableColumnElementComponent,\n LayoutEditorWidgetElementComponent,\n DashboardLayoutEditorSectionComponent,\n DynamicLayoutEditorSectionComponent,\n GridLayoutEditorSectionComponent,\n MarkdownLayoutEditorSectionComponent,\n TableLayoutEditorSectionComponent,\n DashboardPageComponent,\n LayoutEditorPageComponent,\n ListPageComponent,\n FormPageComponent,\n DetailPageComponent,\n DocumentsPageComponent,\n TabbedPageComponent,\n RosterPageComponent,\n ExportPageComponent,\n PageTitleComponent,\n SectionTitleComponent,\n DynamicTableComponent,\n FilePreviewDialogComponent,\n DeleteConfirmationDialogComponent,\n SaveConfirmationDialogComponent,\n SearchPanelComponent,\n NavTreeComponent,\n LoaderComponent,\n DialogDetailsComponent,\n DialogNestedDetailsComponent,\n LinkAttributeDisplayComponent,\n DashboardSectionComponent,\n DynamicWidgetDisplayComponent,\n DynamicChartComponent,\n DashboardInfoCardComponent,\n DashboardTableComponent,\n DashboardCardComponent,\n DashboardCardSearchMenuComponent,\n DynamicDashboardComponent,\n RerouteComponent,\n SnackbarComponent,\n ThumbnailDisplayComponent,\n ContentTitleComponent,\n MarkdownDetailsSectionComponent,\n AccordionDetailsContainerComponent,\n PlainDetailsContainerComponent,\n DynamicDetailsContainerComponent,\n DynamicDetailsSectionComponent,\n DynamicFormContainerComponent,\n PlainFormContainerComponent,\n AccordionFormContainerComponent,\n DynamicFormSectionComponent,\n DynamicDashboardContainerComponent,\n PlainDashboardContainerComponent,\n AutocompleteInputComponent,\n DraggableTableComponent,\n TooltipComponent,\n ],\n providers: [\n DatePipe,\n ],\n})\nexport class MantleModule { }\n","export const PROGRESS_BAR_CHART = {\n chart: {\n type: 'bar',\n backgroundColor: 'white',\n margin: [0, 10, 0, 10],\n spacing: [0, 0, 0, 0],\n height: 100,\n reflow: true,\n },\n title: {\n text: ''\n },\n tooltip: {\n enabled: false\n },\n legend: {\n enabled: false\n },\n credits: {\n enabled: false\n },\n xAxis: {\n visible: false\n },\n yAxis: {\n visible: false,\n min: 0,\n },\n plotOptions: {\n bar: {\n groupPadding: 0,\n pointPadding: 0\n },\n series: {\n dataLabels: {\n enabled: true\n },\n stacking: 'normal',\n states: {\n hover: {\n enabled: false\n },\n inactive: {\n enabled: false\n }\n }\n }\n }\n};\n","export const GANTT_CHART: Highcharts.Options = {\n chart: {\n type: 'gantt'\n },\n yAxis: {\n grid: {\n borderWidth: 0\n },\n gridLineWidth: 0\n },\n plotOptions: {\n gantt: {\n borderRadius: 12,\n pointWidth: 24\n }\n }\n};\n","export const PIE_CHART = {\n chart: {\n type: 'pie'\n },\n tooltip: {\n useHTML: true,\n distance: 10,\n headerFormat: '',\n pointFormat: '<div style=\"display: inline-block; background-color: {point.color}; width: 10px; height: 10px;\"></div> <b>{point.name}: {point.y} ({point.percentage:.0f}%)</b>'\n },\n plotOptions: {\n pie: {\n shadow: false,\n cursor: 'pointer',\n dataLabels: {\n enabled: false\n }\n },\n }\n};\n","export const COLUMN_CHART = {\n chart: {\n type: 'column'\n },\n yAxis: {\n alignTicks: false,\n min: 0,\n title: {\n text: ''\n },\n stackLabels: {\n enabled: false,\n style: {\n color: 'gray'\n }\n }\n },\n legend: {\n enabled: false\n },\n tooltip: {\n useHTML: true,\n borderColor: '#838383',\n headerFormat: '<table><tr><th colspan=\"2\"><b>{point.x}</b></th></tr>',\n pointFormat: '<tr><td><div style=\"display: inline-block; background-color: {series.color}; width: 10px; height: 10px; border-radius: 10px; margin-right: 20px;\"></div>{series.name} </td> <td><b>{point.y}</b></td></tr>',\n footerFormat: '</table>',\n },\n plotOptions: {\n column: {\n stacking: 'normal',\n borderRadius: 0,\n dataLabels: {\n enabled: false\n }\n }\n }\n};\n","export const SPLINE_CHART = {\n chart: {\n type: 'spline'\n },\n yAxis: {\n title: {\n text: ''\n }\n },\n plotOptions: {\n series: {\n label: {\n enabled: false\n },\n marker: {\n symbol: 'circle'\n }\n }\n },\n legend: {\n enabled: false\n }\n};\n","export const MANTLE_LANG_EN = {\n \"mantle\": {\n \"auth\": {\n \"incorrect_password\": \"Incorrect password.\",\n \"page_access_denied\": \"You do not have access to this page.\"\n },\n \"buttons\": {\n \"add\": \"Add\",\n \"add_item\": \"Add Item\",\n \"cancel\": \"Cancel\",\n \"clone\": \"Clone\",\n \"close_actions\": \"Close Actions\",\n \"collapse_table\": \"Collapse Table\",\n \"confirm\": \"Confirm\",\n \"delete\": \"Delete\",\n \"deleting\": \"Deleting\",\n \"download\": \"Download\",\n \"edit\": \"Edit\",\n \"expand_table\": \"Expand Table\",\n \"export\": \"Export\",\n \"exporting\": \"Exporting\",\n \"open_actions\": \"Open Actions\",\n \"reset\": \"Reset\",\n \"save\": \"Save\",\n \"saving\": \"Saving\",\n \"search\": \"Search\",\n \"submit\": \"Submit\"\n },\n \"file_preview\": {\n \"unable_to_preview_file\": \"Unable to preview file.\"\n },\n \"image_cropper\": {\n \"crop_image\": \"Crop Image\",\n \"original\": \"Original\",\n \"preview\": \"Preview\"\n },\n \"report_config\": {\n \"dataset\": \"Dataset\",\n \"use_aggregation\": \"Use Aggregation\",\n \"columns\": \"Columns\",\n \"select\": \"Select\",\n \"column\": \"Column\",\n \"group_by\": \"Group By\",\n \"count\": \"Count\",\n \"count_distinct\": \"Count Distinct\",\n \"average\": \"Average\",\n \"max\": \"Max\",\n \"min\": \"Min\",\n \"sum\": \"Sum\",\n \"filters\": \"Filters\",\n \"filter\": \"Filter\",\n \"operator\": \"Operator\",\n \"filter_value\": \"Filter Value\",\n \"operators\": {\n \"=\": \"=\",\n \"!=\": \"!=\",\n \">\": \">\",\n \"<\": \"<\",\n \">=\": \">=\",\n \"<=\": \"<=\",\n \"contains\": \"contains\",\n \"starts_with\": \"starts with\",\n \"ends_with\": \"ends with\",\n \"one_of\": \"one of\",\n \"not_one_of\": \"not one of\"\n },\n \"add_filter\": \"Add Filter\"\n },\n \"messages\": {\n \"are_you_sure\": \"Are you sure?\",\n \"confirm_deletion\": \"Do you want to delete this record?\",\n \"could_not_update_locale\": \"Could not set language\",\n \"delete_failed\": \"Delete failed!\",\n \"delete_successful\": \"Delete successful!\",\n \"export_failed\": \"Export failed!\",\n \"save_failed\": \"Save failed!\",\n \"save_successful\": \"Save successful!\",\n \"unable_to_upload_file\": \"Unable to upload file\",\n \"unknown_error\": \"Unknown error\"\n },\n \"paginator\": {\n \"items_per_page\": \"Items per page:\",\n \"first_page\": \"First page\",\n \"previous_page\": \"Previous page\",\n \"next_page\": \"Next page\",\n \"last_page\": \"Last page\",\n \"of\": \"of\"\n },\n \"search_panel\": {\n \"search\": \"Search\",\n \"filter_by\": \"Filter By\"\n }\n }\n}\n","export const MANTLE_LANG_MS = {\n \"mantle\": {\n \"auth\": {\n \"incorrect_password\": \"Kata laluan salah.\",\n \"page_access_denied\": \"Anda tidak mempunyai akses ke halaman ini.\"\n },\n \"buttons\": {\n \"add\": \"Tambah\",\n \"add_item\": \"Tambah Item\",\n \"cancel\": \"Batal\",\n \"clone\": \"Klon\",\n \"close_actions\": \"Tutup Tindakan\",\n \"collapse_table\": \"Runtuhkan Jadual\",\n \"confirm\": \"Sahkan\",\n \"delete\": \"Padam\",\n \"deleting\": \"Memadam\",\n \"download\": \"Muat turun\",\n \"edit\": \"Sunting\",\n \"expand_table\": \"Kembangkan Jadual\",\n \"export\": \"Eksport\",\n \"exporting\": \"Mengeksport\",\n \"open_actions\": \"Buka Tindakan\",\n \"reset\": \"Set semula\",\n \"save\": \"Simpan\",\n \"saving\": \"Menyimpan\",\n \"search\": \"Cari\",\n \"submit\": \"Hantar\"\n },\n \"file_preview\": {\n \"unable_to_preview_file\": \"Tidak dapat pratonton fail.\"\n },\n \"image_cropper\": {\n \"crop_image\": \"Pangkas Imej\",\n \"original\": \"Asal\",\n \"preview\": \"Pratonton\"\n },\n \"report_config\": {\n \"dataset\": \"Set Data\",\n \"use_aggregation\": \"Guna Agregasi\",\n \"columns\": \"Lajur\",\n \"select\": \"Pilih\",\n \"column\": \"Lajur\",\n \"group_by\": \"Kumpulkan Mengikut\",\n \"count\": \"Kira\",\n \"count_distinct\": \"Kira Berbeza\",\n \"average\": \"Purata\",\n \"max\": \"Maksimum\",\n \"min\": \"Minimum\",\n \"sum\": \"Jumlah\",\n \"filters\": \"Penapis\",\n \"filter\": \"Penapis\",\n \"operator\": \"Operator\",\n \"filter_value\": \"Nilai Penapis\",\n \"operators\": {\n \"=\": \"=\",\n \"!=\": \"!=\",\n \">\": \">\",\n \"<\": \"<\",\n \">=\": \">=\",\n \"<=\": \"<=\",\n \"contains\": \"mengandungi\",\n \"starts_with\": \"bermula dengan\",\n \"ends_with\": \"berakhir dengan\",\n \"one_of\": \"salah satu daripada\",\n \"not_one_of\": \"bukan salah satu daripada\"\n },\n \"add_filter\": \"Tambah Penapis\"\n },\n \"messages\": {\n \"are_you_sure\": \"Adakah anda pasti?\",\n \"confirm_deletion\": \"Adakah anda mahu memadamkan rekod ini?\",\n \"could_not_update_locale\": \"Tidak dapat menetapkan bahasa\",\n \"delete_failed\": \"Padam gagal!\",\n \"delete_successful\": \"Padam berjaya!\",\n \"export_failed\": \"Eksport gagal!\",\n \"save_failed\": \"Simpanan gagal!\",\n \"save_successful\": \"Simpanan berjaya!\",\n \"unable_to_upload_file\": \"Tidak dapat memuat naik fail\",\n \"unknown_error\": \"Ralat tidak diketahui\"\n },\n \"paginator\": {\n \"items_per_page\": \"Item/halaman:\",\n \"first_page\": \"Muka pertama\",\n \"previous_page\": \"Halaman sebelumnya\",\n \"next_page\": \"Muka seterusnya\",\n \"last_page\": \"Muka terakhir\",\n \"of\": \"daripada\"\n },\n \"search_panel\": {\n \"search\": \"Cari\",\n \"filter_by\": \"Tapis Mengikut\"\n }\n }\n}\n","export interface ScreenSizeMapEntries<T> {\n xs?: T;\n sm?: T;\n md?: T;\n lg?: T;\n xl?: T;\n default: T;\n}\n\nexport class ScreenSizeMap<T> {\n\n private entries: ScreenSizeMapEntries<T>;\n\n constructor(params: ScreenSizeMapEntries<T>) {\n this.entries = params;\n }\n\n public findByScreenSize(screenSize: string): T {\n return this.entries[screenSize as keyof ScreenSizeMapEntries<T>] || this.entries.default;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { tap, retryWhen, delay } from 'rxjs/operators';\nimport { AngularTokenService, ResetPasswordData, SignInData, UpdatePasswordData } from '@citizenobserver/angular-token';\nimport moment from 'moment';\nimport { ArrayService } from './array.service';\nimport { AnnouncementService } from './announcement.service';\nimport { DataBroadcastService } from './data-broadcast.service';\nimport { LocaleService } from './locale.service';\nimport { WebApiService } from './web-api.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CurrentUserService {\n\n constructor(private tokenService: AngularTokenService, private router: Router,\n private announcementService: AnnouncementService, protected arrayService: ArrayService,\n protected dataBroadcastService: DataBroadcastService, private localeService: LocaleService,\n private webApiService: WebApiService) {\n this.dataBroadcastService.sessionData.next(this.getSessionData());\n this.dataBroadcastService.sessionData.subscribe((sessionData: any) => {\n if (sessionData?.id) {\n localStorage.setItem('sessionData', JSON.stringify(sessionData));\n if (sessionData.password_expired) this.router.navigateByUrl('/password-expired');\n this.dataBroadcastService.locale.next(sessionData.locale);\n }\n else {\n localStorage.removeItem('sessionData');\n }\n });\n }\n\n signIn(signInData: SignInData, additionalData: any, onSuccess?: (res: any) => void, onFailure?: (res: any) => void) {\n this.tokenService.signIn(signInData, additionalData).subscribe(\n (response: any) => {\n this.dataBroadcastService.sessionData.next(response.data);\n this.setLatestPasswordCheckTime();\n if (onSuccess) onSuccess(response);\n },\n (response: any) => {\n if (onFailure) onFailure(response);\n }\n );\n }\n\n validateToken(onValid?: (res: any) => void, onInvalid?: (res: any) => void) {\n this.tokenService.validateToken().pipe(\n retryWhen(errors =>\n errors.pipe(\n delay(1000),\n tap(response => {\n if (!response.status.toString().startsWith('5')) {\n throw response;\n }\n })\n )\n )\n ).subscribe(\n (response: any) => {\n this.dataBroadcastService.sessionData.next(response.data);\n if (onValid) onValid(response);\n },\n (response: any) => {\n if (onInvalid) onInvalid(response);\n this.signOut();\n }\n );\n }\n\n updatePassword(updatePasswordData: UpdatePasswordData, onSuccess?: (res: any) => void, onFailure?: (res: any) => void) {\n this.tokenService.updatePassword(updatePasswordData).subscribe(\n (response: any) => {\n this.dataBroadcastService.sessionData.next(response.data);\n if (onSuccess) onSuccess(response);\n },\n (response: any) => {\n if (onFailure) onFailure(response);\n }\n );\n }\n\n resetPassword(resetPasswordData: ResetPasswordData, onSuccess?: (res: any) => void, onFailure?: (res: any) => void) {\n this.tokenService.resetPassword(resetPasswordData).subscribe(\n (response: any) => {\n if (onSuccess) onSuccess(response);\n },\n (response: any) => {\n if (onFailure) onFailure(response);\n }\n );\n }\n\n signOut(callback?: () => void) {\n this.tokenService.signOut().subscribe(\n (response: any) => {\n if (callback) callback();\n this.clearSessionData();\n this.router.navigateByUrl('sign-in');\n },\n (response: any) => {\n if (callback) callback();\n this.clearSessionData();\n this.router.navigateByUrl('sign-in');\n }\n );\n }\n\n isSignedIn() {\n return this.tokenService.userSignedIn();\n }\n\n getSessionData() {\n const sessionData = localStorage.getItem('sessionData');\n return sessionData ? JSON.parse(sessionData) : undefined;\n }\n\n clearSessionData() {\n this.dataBroadcastService.sessionData.next(undefined);\n this.dataBroadcastService.locale.next(undefined);\n }\n\n getId() {\n return this.getSessionData()?.id;\n }\n\n changePassword() {\n this.router.navigateByUrl('/app/account/change-password');\n }\n\n getPermissions() {\n return this.getSessionData()?.permissions || [];\n }\n\n public hasFeatureAccess(feature: string, action: string = 'Read') {\n return this.arrayService.hasItemWithAttributes(\n this.getPermissions(), { feature: feature, action: action }\n );\n }\n\n setLatestPasswordCheckTime() {\n let now = moment().format('YYYY-MM-DD HH:mm:ss');\n localStorage.setItem('latestPasswordCheckTime', now);\n }\n\n getLatestPasswordCheckTime() {\n return localStorage.getItem('latestPasswordCheckTime');\n }\n\n setLocale(locale: string): void {\n if (locale == this.localeService.currentLocale) return;\n if (!this.localeService.availableLocales.includes(locale)) return;\n\n if (this.isSignedIn()) {\n this.webApiService.update('my_account/locale', { locale: locale }).subscribe(\n (response: any) => {\n let sessionData = this.dataBroadcastService.sessionData.getValue();\n sessionData.locale = response.content.data.locale;\n this.dataBroadcastService.sessionData.next(sessionData);\n },\n (error: any) => {\n this.announcementService.error('mantle.messages.could_not_update_locale');\n }\n );\n }\n else {\n this.dataBroadcastService.locale.next(locale);\n }\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ObjectService } from './object.service';\nimport { COLUMN_CHART } from '../config/charts/column-chart.data';\nimport { GANTT_CHART } from '../config/charts/gantt-chart.data';\nimport { PIE_CHART } from '../config/charts/pie-chart.data';\nimport { PROGRESS_BAR_CHART } from '../config/charts/progress-bar-chart.data';\nimport { SPLINE_CHART } from '../config/charts/spline-chart.data';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChartService {\n\n constructor(private objectService: ObjectService) { }\n\n private mergeChartConfig(chartConfig: any, domainConfig: any, widgetConfig?: any) {\n let config = this.objectService.deepMerge(chartConfig, domainConfig);\n\n if (widgetConfig) {\n config = this.objectService.deepMerge(config, widgetConfig);\n }\n\n return config;\n }\n\n public columnChart(domainConfig: any, widgetConfig?: any) {\n return this.mergeChartConfig(COLUMN_CHART, domainConfig, widgetConfig);\n }\n\n public ganttChart(domainConfig: any, widgetConfig?: any) {\n return this.mergeChartConfig(GANTT_CHART, domainConfig, widgetConfig);\n }\n\n public pieChart(domainConfig: any, widgetConfig?: any) {\n return this.mergeChartConfig(PIE_CHART, domainConfig, widgetConfig);\n }\n\n public progressBarChart(domainConfig: any, widgetConfig?: any) {\n return this.mergeChartConfig(PROGRESS_BAR_CHART, domainConfig, widgetConfig);\n }\n\n public splineChart(domainConfig: any, widgetConfig?: any) {\n return this.mergeChartConfig(SPLINE_CHART, domainConfig, widgetConfig);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport * as ActionCable from \"@rails/actioncable\";\nimport { AngularTokenService } from '@citizenobserver/angular-token';\nimport { ENVIRONMENT } from '../tokens/environment.token';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WebsocketService {\n\n private wsUrl: string;\n\n constructor(@Inject(ENVIRONMENT) private environment: any, private angularTokenService: AngularTokenService) {\n this.wsUrl = this.environment.WS_URL;\n }\n\n connect() {\n let currentAuthData = this.angularTokenService.currentAuthData;\n\n let consumer = ActionCable.createConsumer(`${this.wsUrl}/?token=${currentAuthData.accessToken}&client=${currentAuthData.client}&uid=${currentAuthData.uid}`);\n return {\n subscribe: (channelName: string, callbacks: any = {}) => {\n return consumer.subscriptions.create(channelName, {\n\n // Called when the subscription is ready for use on the server\n connected: () => {\n if (callbacks.connected) callbacks.connected();\n },\n\n // Called when the WebSocket connection is closed\n disconnected: () => {\n if (callbacks.disconnected) callbacks.disconnected();\n },\n\n // Called when the subscription is rejected by the server\n rejected: () => {\n if (callbacks.rejected) callbacks.rejected();\n },\n\n // Called when a message is received\n received: (data) => {\n if (callbacks.received) callbacks.received(data);\n }\n\n });\n },\n\n disconnect() {\n consumer.disconnect();\n }\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { Observable } from 'rxjs';\nimport moment from 'moment';\nimport { DialogNestedFormComponent } from '../components/form/dialog-nested-form/dialog-nested-form.component';\nimport { AnnouncementService } from './announcement.service';\nimport { CurrentUserService } from './current-user.service';\nimport { DataBroadcastService } from './data-broadcast.service';\nimport { WebApiService } from './web-api.service';\n\nconst passwordCheckValidityMinutes: number = 5;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PasswordCheckService {\n\n constructor(private dialog: MatDialog, private announcementService: AnnouncementService,\n private currentUserService: CurrentUserService, private dataBroadcastService: DataBroadcastService,\n private webApiService: WebApiService) { }\n\n public checkPassword(): Observable<boolean> {\n return new Observable((subscriber) => {\n if (this.hasLatestPasswordCheckExpired()) {\n const dialogRef = this.dialog.open(DialogNestedFormComponent, this.modalConfiguration());\n\n dialogRef.keydownEvents().subscribe(event => {\n if (event.key === 'Enter') {\n dialogRef.componentInstance.onSave();\n }\n });\n dialogRef.afterClosed().subscribe(formData => {\n if (!formData) {\n subscriber.next(false);\n subscriber.complete();\n return;\n }\n\n const username = this.dataBroadcastService.sessionData.getValue().username;\n this.validatePassword(username, formData['password']).subscribe(\n (response: any) => {\n this.setLatestPasswordCheckTime();\n subscriber.next(true);\n subscriber.complete();\n },\n (error: any) => {\n this.announcementService.error('mantle.auth.incorrect_password');\n subscriber.next(false);\n subscriber.complete();\n }\n );\n });\n }\n else {\n this.setLatestPasswordCheckTime();\n subscriber.next(true);\n subscriber.complete();\n }\n });\n }\n\n private getLatestPasswordCheckTime(): any {\n return this.currentUserService.getLatestPasswordCheckTime();\n }\n\n private setLatestPasswordCheckTime(): void {\n this.currentUserService.setLatestPasswordCheckTime();\n }\n\n private hasLatestPasswordCheckExpired(): boolean {\n const latestPasswordCheckTime = this.getLatestPasswordCheckTime();\n if (!latestPasswordCheckTime) return true;\n\n let now = moment();\n let latestCheckMoment = moment(latestPasswordCheckTime, 'YYYY-MM-DD HH:mm:ss');\n return (now.diff(latestCheckMoment, 'minutes') >= passwordCheckValidityMinutes);\n }\n\n private validatePassword(username: string, password: string): Observable<any> {\n const params = { username: username, password: password };\n return this.webApiService.get('auth/password', params);\n }\n\n private modalConfiguration(): MatDialogConfig {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n title: 'Enter Password',\n section: {\n singleColumn: true,\n elements: [\n { label: 'Password', attr: 'password', required: true, type: 'password' }\n ]\n },\n saveButtonText: 'mantle.buttons.submit'\n };\n dialogConfig.width = '40%';\n\n return dialogConfig;\n }\n}\n","import { EventEmitter } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MatDialog, MatDialogConfig } from \"@angular/material/dialog\";\nimport { Observable } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\nimport { AuthorisableFeatureService } from '../services/interfaces/authorisable-feature.service';\nimport { ConfirmationService } from '../services/confirmation.service';\nimport { CurrentUserService } from '../services/current-user.service';\nimport { DataBroadcastService } from '../services/data-broadcast.service';\nimport { DetailPageService } from '../services/interfaces/detail-page.service';\nimport { FormPageService } from '../services/interfaces/form-page.service';\nimport { WebApiCrudAdapter } from '../services/adapters/web-api-crud.adapter';\nimport { WebsocketAdapter } from '../services/adapters/websocket.adapter';\nimport { WebApiService } from '../services/web-api.service';\nimport { WebsocketService } from '../services/websocket.service';\nimport { DetailPageButton } from '../services/interfaces/detail-page.service';\nimport { DetailPageExportOption } from '../services/interfaces/detail-page.service';\nimport { DialogDetailsComponent } from '../components/details/dialog-details/dialog-details.component';\nimport { DialogFormComponent } from '../components/form/dialog-form/dialog-form.component';\nimport { DynamicDetailsContent } from '../data-structures/dynamic-layout.structure';\nimport { DynamicFormContent } from '../data-structures/dynamic-layout.structure';\nimport { DynamicLayoutGridSection } from '../data-structures/dynamic-layout.structure';\nimport { DialogNestedFormParams } from '../components/form/dialog-nested-form/dialog-nested-form.component';\nimport { FormPageButton } from '../services/interfaces/form-page.service';\nimport { ListPageBulkExportOption } from '../services/interfaces/list-page.service';\nimport { ListPageExportOption } from '../services/interfaces/list-page.service';\nimport { ListPageButton } from '../services/interfaces/list-page.service';\nimport { WebApiDeleteResponse } from '../services/adapters/web-api-crud.adapter';\nimport { WebApiDetailsResponse } from '../services/adapters/web-api-crud.adapter';\nimport { WebApiFormResponse } from '../services/adapters/web-api-crud.adapter';\nimport { WebApiListRequest } from '../services/adapters/web-api-crud.adapter';\nimport { WebApiListResponse } from '../services/adapters/web-api-crud.adapter';\nimport { WebApiSaveResponse } from '../services/adapters/web-api-crud.adapter';\nimport { FormGroup } from '@angular/forms';\n\nexport class FeatureConfigService implements WebApiCrudAdapter, WebsocketAdapter, AuthorisableFeatureService {\n\n private parentComponent: any;\n protected webApiBaseUrl: string;\n protected webApiService: WebApiService;\n private webRtcChannel: string;\n protected webRtcService: WebsocketService;\n protected feature: string;\n protected currentUserService: CurrentUserService;\n protected dataBroadcastService: DataBroadcastService;\n protected sessionData: any = {};\n protected router: Router;\n protected dialog: MatDialog;\n protected confirmationService: ConfirmationService;\n\n private webRtcConnection: any;\n public webRtcEvents: EventEmitter<any> = new EventEmitter<any>();\n\n public subContentChangeEvents: EventEmitter<any> = new EventEmitter<any>();\n\n public isCommitInProgress: boolean = false;\n\n constructor(config: any) {\n this.webApiBaseUrl = config.webApi?.baseUrl;\n this.webApiService = config.webApi?.service;\n this.webRtcChannel = config.webRtc?.channel;\n this.webRtcService = config.webRtc?.service;\n this.feature = config.authorisation?.feature;\n this.currentUserService = config.authorisation?.service;\n this.dataBroadcastService = config.dataBroadcast?.service;\n this.dataBroadcastService?.sessionData.subscribe(sessionData => { this.sessionData = sessionData; });\n this.router = config.routing?.service;\n this.dialog = config.dialog?.service;\n this.confirmationService = config.confirmation?.service;\n this.onInit();\n }\n\n onInit() { }\n\n // Override this method in your domain-service if you would like to use it.\n noun(): string {\n return '';\n }\n\n /*\n * PARENT COMPONENT\n */\n\n setParentComponent(parentComponent: any): void {\n this.parentComponent = parentComponent;\n }\n\n refreshParentComponent() {\n this.parentComponent.pullContent();\n }\n\n populateParentComponent(data: any) {\n this.parentComponent.loadContent(data);\n }\n\n /*\n * WEB API INTERFACE\n */\n\n getList(params: WebApiListRequest, headers: any = {}): Observable<WebApiListResponse> {\n return this.webApiService.get(this.webApiBaseUrl, params.toHttpParams(), headers) as Observable<WebApiListResponse>;\n }\n\n get(id: string, params: any = {}, headers: any = {}): Observable<WebApiDetailsResponse> {\n return this.webApiService.get(`${this.webApiBaseUrl}/${id}`, params, headers) as Observable<WebApiDetailsResponse>;\n }\n\n getNew(params: any = {}, headers: any = {}): Observable<WebApiFormResponse> {\n return this.webApiService.get(`${this.webApiBaseUrl}/new`, params, headers) as Observable<WebApiFormResponse>;\n }\n\n create(params: any, headers: any = {}): Observable<WebApiSaveResponse> {\n this.isCommitInProgress = true;\n let observable = this.webApiService.create(this.webApiBaseUrl, params, headers) as Observable<WebApiSaveResponse>;\n return observable.pipe(\n finalize(() => {\n this.isCommitInProgress = false;\n })\n );\n }\n\n getEdit(id: string, params: any = {}, headers: any = {}): Observable<WebApiFormResponse> {\n return this.webApiService.get(`${this.webApiBaseUrl}/${id}/edit`, params, headers) as Observable<WebApiFormResponse>;\n }\n\n update(id: string, params: any, headers: any = {}): Observable<WebApiSaveResponse> {\n this.isCommitInProgress = true;\n let observable = this.webApiService.update(`${this.webApiBaseUrl}/${id}`, params, headers) as Observable<WebApiSaveResponse>;\n return observable.pipe(\n finalize(() => {\n this.isCommitInProgress = false;\n })\n );\n }\n\n destroy(id: string, params: any = {}, headers: any = {}): Observable<any> {\n this.isCommitInProgress = true;\n return this.webApiService.destroy(`${this.webApiBaseUrl}/${id}`, params, headers).pipe(\n finalize(() => {\n this.isCommitInProgress = false;\n })\n );\n }\n\n downloadList(format: string, filename: string, params: any = {}, headers: any = {}): Observable<any> {\n return this.webApiService.download(`${this.webApiBaseUrl}.${format}`, filename, params, headers);\n }\n\n download(id: string, format: string, filename: string, params: any = {}, headers: any = {}): Observable<any> {\n return this.webApiService.download(`${this.webApiBaseUrl}/${id}.${format}`, filename, params, headers);\n }\n\n /*\n * WEB RTC INTERFACE\n */\n\n connectWebRtc(): void {\n this.webRtcConnection = this.webRtcService?.connect();\n this.webRtcConnection.subscribe({ channel: this.webRtcChannel }, {\n received: (data: any) => {\n this.webRtcEvents.emit(data);\n }\n });\n }\n\n disconnectWebRtc() {\n if (this.webRtcConnection) this.webRtcConnection.disconnect();\n }\n\n /*\n * AUTHORISATION\n */\n\n canRead(): boolean {\n if (!this.feature) return true;\n return this.currentUserService.hasFeatureAccess(this.feature, 'Read');\n }\n\n canWrite(): boolean {\n if (!this.feature) return true;\n return this.currentUserService.hasFeatureAccess(this.feature, 'Write');\n }\n\n authorise(action: string): boolean {\n if (action == 'Write') return this.canWrite();\n else return this.canRead();\n }\n\n /*\n * ROUTING\n */\n\n openRoute(route: string) {\n this.router.navigateByUrl(route);\n }\n\n openParent() { }\n\n /*\n * DIALOG\n */\n\n openDetailDialog(detailPageService: DetailPageService, title: string, record: any) {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n detailPageService: detailPageService,\n title: title,\n id: record.id\n };\n dialogConfig.width = '80%';\n dialogConfig.autoFocus = false;\n\n let dialogRef = this.dialog.open(DialogDetailsComponent, dialogConfig);\n\n dialogRef.afterClosed().subscribe((response: any) => {\n if (response) this.subContentChangeEvents.emit();\n });\n }\n\n openFormDialog(formPageService: FormPageService, title: string, record: any = {}, initData: any = {}) {\n const dialogConfig = new MatDialogConfig();\n dialogConfig.data = {\n formPageService: formPageService,\n title: title,\n id: record.id,\n initData: initData\n };\n dialogConfig.width = '80%';\n dialogConfig.autoFocus = false;\n\n let dialogRef = this.dialog.open(DialogFormComponent, dialogConfig);\n\n dialogRef.afterClosed().subscribe((response: any) => {\n if (response) this.subContentChangeEvents.emit();\n });\n }\n\n /*\n * DETAILS PAGE CONFIG\n */\n\n // Override this method in you domain-service if you would like to use it.\n onDetailContentLoaded(content: DynamicDetailsContent) { }\n\n // Override this method in your domain-service if you would like to use it.\n detailPageExportOptions(): DetailPageExportOption[] {\n return [];\n }\n\n // Override this method in your domain-service if you would like to use it.\n detailPageSectionActions(sectionSlug: string): any[] {\n return [];\n }\n\n // Override this method in your domain-service if you would like to use it.\n detailDialogLayoutChanges(section: DynamicLayoutGridSection, record?: any): any {\n return section;\n }\n\n // Override this method in your domain-service if you would like to use it.\n additionalDetailPageButtons(record: any): DetailPageButton[] {\n return [];\n }\n\n deletionOptions(): any {\n return {\n message: 'mantle.messages.confirm_deletion',\n buttons: [\n {\n label: 'mantle.buttons.delete',\n onClick: (id: string) => {\n return this.destroy(id);\n }\n }\n ]\n }\n }\n\n delete(id: string, onDeleteConfirmed: () => void, onSuccess: (response: WebApiDeleteResponse) => void, onFailure: (response: WebApiDeleteResponse) => void) {\n this.confirmationService.confirmDeletion(\n (deletionAction: (id: string) => Observable<any>) => {\n onDeleteConfirmed();\n\n deletionAction(id).subscribe(\n res => {\n this.onDeleteSuccess(res);\n onSuccess(res);\n },\n res => {\n this.onDeleteFailure(res.error);\n onFailure(res.error);\n }\n );\n },\n this.deletionOptions()\n );\n }\n\n // Override this method in you domain-service if you would like to use it.\n onDeleteSuccess(response: WebApiSaveResponse) { }\n\n // Override this method in you domain-service if you would like to use it.\n onDeleteFailure(response: WebApiSaveResponse) { }\n\n /*\n * FORM PAGE CONFIG\n */\n\n // Override this method in you domain-service if you would like to use it.\n onFormContentLoaded(content: DynamicFormContent) { }\n\n // Override this method in you domain-service if you would like to use it.\n onFormValueChanged(pageContent: DynamicFormContent, formValue: any): any { };\n\n // Override this method in you domain-service if you would like to use it.\n onDialogFormContentLoaded(content: DialogNestedFormParams) { }\n\n // Override this method in your domain-service if you would like to use it.\n formDialogLayoutChanges(section: DynamicLayoutGridSection, record?: any): any {\n return section;\n }\n\n // Override this method in your domain-service if you would like to use it.\n onDialogFormValueChanged(dialogContent: DialogNestedFormParams, formValue: any, form?: FormGroup): any { };\n\n // Override this method in you domain-service if you would like to use it.\n additionalFormPageButtons(record: any): FormPageButton[] {\n return [];\n }\n\n save(id: string | undefined, value: any, onSuccess: (response: WebApiSaveResponse) => void, onFailure: (response: WebApiSaveResponse) => void) {\n this.beforeSave(value);\n\n let responseObservable = id ? this.update(id, value) : this.create(value);\n\n responseObservable.subscribe(\n res => {\n this.onSaveSuccess(res);\n onSuccess(res);\n },\n res => {\n this.onSaveFailure(res.error);\n onFailure(res.error);\n }\n );\n }\n\n // Override this method in you domain-service if you would like to use it.\n beforeSave(value: any) { }\n\n // Override this method in you domain-service if you would like to use it.\n onSaveSuccess(response: WebApiSaveResponse) { }\n\n // Override this method in you domain-service if you would like to use it.\n onSaveFailure(response: WebApiSaveResponse) { }\n\n /*\n * LIST PAGE CONFIG\n */\n\n // Override this method in your domain-service if you would like to use it.\n onListContentLoaded(content: any[]): void { }\n\n // Override this method in your domain-service if you would like to use it.\n listPageExportOptions(): ListPageExportOption[] {\n return [];\n }\n\n // Override this method in your domain-service if you would like to use it.\n listPageBulkExportOptions(): ListPageBulkExportOption[] {\n return [];\n }\n\n // Override this method in your domain-service if you would like to use it.\n additionalListPageButtons(): ListPageButton[] {\n return [];\n }\n\n // Override this method in your domain-service if you would like to use it.\n onRecordChecked(record: any): void { }\n\n // Override this method in your domain-service if you would like to use it.\n onRecordUnchecked(record: any): void { }\n\n // Override this method in your domain-service if you would like to use it.\n isRowSelectable(record: any): boolean {\n return true;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { AngularTokenService } from '@citizenobserver/angular-token';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SessionGuard implements CanActivate {\n\n constructor(private angularTokenService: AngularTokenService) {}\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n return this.angularTokenService.canActivate(route, state);\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { AuthorisableFeatureService } from '../services/interfaces/authorisable-feature.service';\nimport { AnnouncementService } from '../services/announcement.service';\nimport { CurrentUserService } from '../services/current-user.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FeatureGuard implements CanActivate {\n\n constructor(private announcementService: AnnouncementService, private currentUserService: CurrentUserService,\n private router: Router, private injector: Injector) {}\n\n canActivate(route: ActivatedRouteSnapshot): Promise<boolean> {\n return new Promise((resolve, reject) => {\n this.currentUserService.validateToken(\n (response: any) => {\n const authorisableFeatureServiceInjectionToken = route.data.authorise.service;\n const authorisableFeatureService = this.injector.get<AuthorisableFeatureService>(authorisableFeatureServiceInjectionToken);\n const authorisableAction = route.data.authorise.action;\n\n const permitted = authorisableFeatureService.authorise(authorisableAction);\n\n if (!permitted) {\n this.announcementService.error('mantle.auth.page_access_denied');\n this.router.navigateByUrl('');\n }\n\n resolve(permitted);\n },\n (response: any) => {\n resolve(false);\n }\n );\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivateChild } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { PasswordCheckService } from '../services/password-check.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PasswordCheckGuard implements CanActivateChild {\n\n constructor(private passwordCheckService: PasswordCheckService) { }\n\n canActivateChild(): Observable<boolean> {\n return this.passwordCheckService.checkPassword();\n }\n\n}\n","/*\n * Public API Surface of mantle\n */\n\nexport * from './lib/mantle.module';\nexport * from './lib/material.module';\nexport * from './lib/directives/file-dropzone.directive';\nexport * from './lib/directives/click-stop-propagation.directive';\nexport * from './lib/data-structures/file-attachment.structure';\nexport * from './lib/data-structures/dynamic-layout.structure';\nexport * from './lib/config/charts/progress-bar-chart.data';\nexport * from './lib/config/charts/gantt-chart.data';\nexport * from './lib/config/charts/pie-chart.data';\nexport * from './lib/config/charts/column-chart.data';\nexport * from './lib/config/charts/spline-chart.data';\nexport * from './lib/language-packs/en.data'\nexport * from './lib/language-packs/ms.data'\nexport * from './lib/pipes/secure-image.pipe';\nexport * from './lib/pipes/dynamic.pipe';\nexport * from './lib/components/form/sections/dynamic-form-section/dynamic-form-section.component';\nexport * from './lib/components/form/sections/table-form-section/table-form-section.component';\nexport * from './lib/components/form/sections/roster-shift-list-form-section/roster-shift-list-form-section.component';\nexport * from './lib/components/form/sections/grid-form-section/grid-form-section.component';\nexport * from './lib/components/form/dialog-form/dialog-form.component';\nexport * from './lib/components/form/dialog-nested-form/dialog-nested-form.component';\nexport * from './lib/components/form/fields/autocomplete-input/autocomplete-input.component';\nexport * from './lib/components/form/fields/colorpicker-input/colorpicker-input.component';\nexport * from './lib/components/form/fields/dropdown/dropdown.component';\nexport * from './lib/components/form/fields/imagepicker/imagepicker.component';\nexport * from './lib/components/form/fields/datepicker/datepicker.component';\nexport * from './lib/components/form/fields/number-input/number-input.component';\nexport * from './lib/components/form/fields/chip-input/chip-input.component';\nexport * from './lib/components/form/fields/password-input/password-input.component';\nexport * from './lib/components/form/fields/textarea/textarea.component';\nexport * from './lib/components/form/fields/markdown-input/markdown-input.component';\nexport * from './lib/components/form/fields/multiselect-input/multiselect-input.component';\nexport * from './lib/components/form/fields/datetimepicker/datetimepicker.component';\nexport * from './lib/components/form/fields/time-input/time-input.component';\nexport * from './lib/components/form/fields/filepicker/filepicker.component';\nexport * from './lib/components/form/fields/dynamic-form-field/dynamic-form-field.component';\nexport * from './lib/components/form/fields/image-cropper/image-cropper.component';\nexport * from './lib/components/form/fields/rich-text-input/rich-text-input.component';\nexport * from './lib/components/form/fields/text-input/text-input.component';\nexport * from './lib/components/form/containers/accordion-form-container/accordion-form-container.component';\nexport * from './lib/components/form/containers/plain-form-container/plain-form-container.component';\nexport * from './lib/components/form/containers/dynamic-form-container/dynamic-form-container.component';\nexport * from './lib/components/form/dynamic-form/dynamic-form.component';\nexport * from './lib/components/navigation/reroute/reroute.component';\nexport * from './lib/components/navigation/nav-tree/nav-tree.component';\nexport * from './lib/components/details/sections/grid-details-section/grid-details-section.component';\nexport * from './lib/components/details/sections/dynamic-details-section/dynamic-details-section.component';\nexport * from './lib/components/details/sections/table-details-section/table-details-section.component';\nexport * from './lib/components/details/sections/report-details-section/report-details-section.component';\nexport * from './lib/components/details/sections/roster-shift-list-details-section/roster-shift-list-details-section.component';\nexport * from './lib/components/details/sections/markdown-details-section/markdown-details-section.component';\nexport * from './lib/components/details/dialog-nested-details/dialog-nested-details.component';\nexport * from './lib/components/details/dialog-details/dialog-details.component';\nexport * from './lib/components/details/fields/file-attribute-display/file-attribute-display.component';\nexport * from './lib/components/details/fields/actions-attribute-display/actions-attribute-display.component';\nexport * from './lib/components/details/fields/icon-attribute-display/icon-attribute-display.component';\nexport * from './lib/components/details/fields/link-attribute-display/link-attribute-display.component';\nexport * from './lib/components/details/fields/dynamic-attribute-display/dynamic-attribute-display.component';\nexport * from './lib/components/details/fields/image-attribute-display/image-attribute-display.component';\nexport * from './lib/components/details/fields/markdown-attribute-display/markdown-attribute-display.component';\nexport * from './lib/components/details/fields/multiselect-display/multiselect-display.component';\nexport * from './lib/components/details/fields/rich-text-display/rich-text-display.component';\nexport * from './lib/components/details/fields/chip-attribute-display/chip-attribute-display.component';\nexport * from './lib/components/details/fields/thumbnail-display/thumbnail-display.component';\nexport * from './lib/components/details/containers/dynamic-details-container/dynamic-details-container.component';\nexport * from './lib/components/details/containers/plain-details-container/plain-details-container.component';\nexport * from './lib/components/details/containers/accordion-details-container/accordion-details-container.component';\nexport * from './lib/components/details/dynamic-details/dynamic-details.component';\nexport * from './lib/components/details/fields/report-viewer-display/report-viewer-display.component';\nexport * from './lib/components/form/fields/report-config-input/report-config-input.component';\nexport * from './lib/components/titles/page-title/page-title.component';\nexport * from './lib/components/titles/content-title/content-title.component';\nexport * from './lib/components/titles/section-title/section-title.component';\nexport * from './lib/components/dashboard/sections/dashboard-section/dashboard-section.component';\nexport * from './lib/components/dashboard/dashboard-card/dashboard-card.component';\nexport * from './lib/components/dashboard/dashboard-card-search-menu/dashboard-card-search-menu.component';\nexport * from './lib/components/dashboard/dynamic-dashboard/dynamic-dashboard.component';\nexport * from './lib/components/dashboard/containers/dynamic-dashboard-container/dynamic-dashboard-container.component';\nexport * from './lib/components/dashboard/containers/plain-dashboard-container/plain-dashboard-container.component';\nexport * from './lib/components/dashboard/widgets/dynamic-chart/dynamic-chart.component';\nexport * from './lib/components/dashboard/widgets/dashboard-table/dashboard-table.component';\nexport * from './lib/components/dashboard/widgets/dashboard-table/dashboard-table-datasource';\nexport * from './lib/components/dashboard/widgets/dashboard-info-card/dashboard-info-card.component';\nexport * from './lib/components/dashboard/widgets/dynamic-widget-display/dynamic-widget-display.component';\nexport * from './lib/components/pages/tabbed-page/tabbed-page.component';\nexport * from './lib/components/pages/dashboard-page/dashboard-page.component';\nexport * from './lib/components/pages/layout-editor-page/layout-editor-page.component';\nexport * from './lib/components/pages/list-page/list-page.component';\nexport * from './lib/components/pages/list-page/list-page-datasource';\nexport * from './lib/components/pages/documents-page/documents-page.component';\nexport * from './lib/components/pages/form-page/form-page.component';\nexport * from './lib/components/pages/detail-page/detail-page.component';\nexport * from './lib/components/pages/export-page/export-page.component';\nexport * from './lib/components/widgets/file-preview-dialog/file-preview-dialog.component';\nexport * from './lib/components/widgets/save-confirmation-dialog/save-confirmation-dialog.component';\nexport * from './lib/components/widgets/snackbar/snackbar.component';\nexport * from './lib/components/widgets/search-panel/search-panel.component';\nexport * from './lib/components/widgets/dynamic-table/dynamic-table-datasource';\nexport * from './lib/components/widgets/dynamic-table/dynamic-table.component';\nexport * from './lib/components/widgets/draggable-table/draggable-table-datasource';\nexport * from './lib/components/widgets/draggable-table/draggable-table.component';\nexport * from './lib/components/widgets/delete-confirmation-dialog/delete-confirmation-dialog.component';\nexport * from './lib/components/widgets/loader/loader.component';\nexport * from './lib/components/widgets/tooltip/tooltip.component';\nexport * from './lib/components/widgets/qr-code-dialog/qr-code-dialog.component';\nexport * from './lib/components/layout-editor/containers/accordion-layout-editor-container/accordion-layout-editor-container.component';\nexport * from './lib/components/layout-editor/containers/dynamic-layout-editor-container/dynamic-layout-editor-container.component';\nexport * from './lib/components/layout-editor/containers/plain-layout-editor-container/plain-layout-editor-container.component';\nexport * from './lib/components/layout-editor/dynamic-layout-editor/dynamic-layout-editor.component';\nexport * from './lib/components/layout-editor/elements/dynamic-layout-editor-element/dynamic-layout-editor-element.component';\nexport * from './lib/components/layout-editor/elements/layout-editor-field-element/layout-editor-field-element.component';\nexport * from './lib/components/layout-editor/elements/layout-editor-table-column-element/layout-editor-table-column-element.component';\nexport * from './lib/components/layout-editor/elements/layout-editor-widget-element/layout-editor-widget-element.component';\nexport * from './lib/components/layout-editor/sections/dashboard-layout-editor-section/dashboard-layout-editor-section.component';\nexport * from './lib/components/layout-editor/sections/dynamic-layout-editor-section/dynamic-layout-editor-section.component';\nexport * from './lib/components/layout-editor/sections/grid-layout-editor-section/grid-layout-editor-section.component';\nexport * from './lib/components/layout-editor/sections/markdown-layout-editor-section/markdown-layout-editor-section.component';\nexport * from './lib/components/layout-editor/sections/table-layout-editor-section/table-layout-editor-section.component';\nexport * from './lib/components/pages/roster-page/roster-page.component';\nexport * from './lib/models/screen-size-map.model';\nexport * from './lib/services/dynamic-form.service';\nexport * from './lib/services/web-api.service';\nexport * from './lib/services/current-user.service';\nexport * from './lib/services/chart.service';\nexport * from './lib/services/data-broadcast.service';\nexport * from './lib/services/locale.service';\nexport * from './lib/services/websocket.service';\nexport * from './lib/services/password-check.service';\nexport * from './lib/services/announcement.service';\nexport * from './lib/services/object.service';\nexport * from './lib/services/adapters/websocket.adapter';\nexport * from './lib/services/adapters/web-api-crud.adapter';\nexport * from './lib/services/feature-config.service';\nexport * from './lib/services/array.service';\nexport * from './lib/services/confirmation.service';\nexport * from './lib/services/screen-size.service';\nexport * from './lib/services/interfaces/reroute.service';\nexport * from './lib/services/interfaces/list-page.service';\nexport * from './lib/services/interfaces/dashboard-page.service';\nexport * from './lib/services/interfaces/form-page.service';\nexport * from './lib/services/interfaces/layout-editor-page.service';\nexport * from './lib/services/interfaces/nav-tabs.service';\nexport * from './lib/services/interfaces/authorisable-feature.service';\nexport * from './lib/services/interfaces/detail-page.service';\nexport * from './lib/services/interfaces/export-page.service';\nexport * from './lib/services/interfaces/dashboard-widget.service';\nexport * from './lib/services/interfaces/roster-page.service';\nexport * from './lib/services/interfaces/roster-schedule.service';\nexport * from './lib/guards/session.guard';\nexport * from './lib/guards/feature.guard';\nexport * from './lib/guards/password-check.guard';\nexport * from './lib/tokens/environment.token';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.DataBroadcastService","i3.ObjectService","i1.DataBroadcastService","i2.LocaleService","i2","i1.WebApiService","i1.ObjectService","i3","i4.ClickStopPropagationDirective","i2.WebApiService","i4","i5","i6","i7.SectionTitleComponent","i8","i9.SecureImagePipe","i6.ClickStopPropagationDirective","i5.ClickStopPropagationDirective","i4.SecureImagePipe","i1.ArrayService","i3.ActionsAttributeDisplayComponent","i4.IconAttributeDisplayComponent","i5.ChipAttributeDisplayComponent","i6.FileAttributeDisplayComponent","i7.ImageAttributeDisplayComponent","i8.MarkdownAttributeDisplayComponent","i9.MultiselectDisplayComponent","i10.RichTextDisplayComponent","i11.LinkAttributeDisplayComponent","i12.ThumbnailDisplayComponent","i13.DynamicPipe","i1.ScreenSizeService","i4.DynamicAttributeDisplayComponent","i5.TooltipComponent","i6.GridDetailsSectionComponent","i6.DynamicAttributeDisplayComponent","i2.DynamicTableComponent","i1.DynamicTableComponent","i2.ReportViewerDisplayComponent","i7","i8.DynamicAttributeDisplayComponent","i9","i1.DraggableTableComponent","i6.TooltipComponent","i7.ClickStopPropagationDirective","i8.TooltipComponent","i8.ClickStopPropagationDirective","i9.TooltipComponent","i10","i4.TooltipComponent","i11","i12.DatepickerComponent","i13.DatetimepickerComponent","i14.DropdownComponent","i15.NumberInputComponent","i16.TextInputComponent","i17.MultiselectInputComponent","i18","observableOf","i3.ChipInputComponent","i4.DatepickerComponent","i5.DatetimepickerComponent","i6.ColorPickerInputComponent","i7.DropdownComponent","i8.FilepickerComponent","i9.ImagepickerComponent","i10.NumberInputComponent","i11.PasswordInputComponent","i12.TextareaComponent","i13.TextInputComponent","i14.TimeInputComponent","i15.MarkdownInputComponent","i16.MultiselectInputComponent","i17.RichTextInputComponent","i18.ReportConfigInputComponent","i19.AutocompleteInputComponent","i5.DynamicFormFieldComponent","i6.SectionTitleComponent","i1.DynamicFormService","i3.GridFormSectionComponent","i4.LoaderComponent","i2.DynamicChartComponent","i3.DashboardInfoCardComponent","i4.DashboardTableComponent","i2.ScreenSizeService","i11.ClickStopPropagationDirective","i12.DynamicWidgetDisplayComponent","i13.DashboardCardSearchMenuComponent","i14","i5.DashboardCardComponent","i2.GridDetailsSectionComponent","i3.TableDetailsSectionComponent","i4.ReportDetailsSectionComponent","i5.RosterShiftListDetailsSectionComponent","i6.DashboardSectionComponent","i7.MarkdownDetailsSectionComponent","i4.DynamicDetailsSectionComponent","i2.SectionTitleComponent","i3.DynamicDetailsSectionComponent","i2.AccordionDetailsContainerComponent","i3.PlainDetailsContainerComponent","i2.LoaderComponent","i3.DynamicDetailsContainerComponent","i2.DynamicFormService","i7.GridFormSectionComponent","i8.SectionTitleComponent","i2.ArrayService","i5.SectionTitleComponent","i6.DynamicTableComponent","i4.SectionTitleComponent","i5.DraggableTableComponent","i4.RosterShiftListDetailsSectionComponent","i5.GridFormSectionComponent","i6.TableFormSectionComponent","i7.RosterShiftListFormSectionComponent","i8.DashboardSectionComponent","i9.MarkdownDetailsSectionComponent","i3.DynamicFormSectionComponent","i4.DynamicFormSectionComponent","i2.PlainFormContainerComponent","i3.AccordionFormContainerComponent","i3.LoaderComponent","i4.DynamicFormContainerComponent","i2.AnnouncementService","i9.DynamicFormComponent","i10.SectionTitleComponent","i2.LayoutEditorFieldElementComponent","i3.LayoutEditorTableColumnElementComponent","i4.LayoutEditorWidgetElementComponent","i3.DynamicLayoutEditorElementComponent","i3.ArrayService","i9.DynamicLayoutEditorElementComponent","i2.DashboardLayoutEditorSectionComponent","i3.GridLayoutEditorSectionComponent","i4.MarkdownLayoutEditorSectionComponent","i5.TableLayoutEditorSectionComponent","i4.DynamicLayoutEditorSectionComponent","i3.DynamicLayoutEditorSectionComponent","i2.AccordionLayoutEditorContainerComponent","i3.PlainLayoutEditorContainerComponent","i2.DynamicLayoutEditorContainerComponent","i1.LocaleService","i4.DashboardSectionComponent","i2.PlainDashboardContainerComponent","i3.DynamicDashboardContainerComponent","i3.PageTitleComponent","i4.DynamicDashboardComponent","i3.SecureImagePipe","i8.DynamicLayoutEditorComponent","i9.ContentTitleComponent","i2.ObjectService","i6.DynamicFormComponent","i3.ScreenSizeService","i14.ClickStopPropagationDirective","i15.DynamicAttributeDisplayComponent","i16.PageTitleComponent","i17.SearchPanelComponent","i3.ConfirmationService","i10.DynamicFormComponent","i11.ContentTitleComponent","i12","i9.DynamicDetailsComponent","i10.ContentTitleComponent","i3.WebApiService","i4.ScreenSizeService","i14.FileDropzoneDirective","i18.LoaderComponent","i19","i4.ObjectService","i5.ScreenSizeService","i10.PageTitleComponent","i11.DynamicChartComponent","i3.AnnouncementService","NgxImageCropperComponent","i4.ArrayService","i5.DataBroadcastService","i6.LocaleService","i7.WebApiService","i3.CurrentUserService","i4.DataBroadcastService","i5.WebApiService","i1.AnnouncementService","i2.CurrentUserService","i1.PasswordCheckService"],"mappings":"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"}
|