@codetectonics/mantle 1.0.0 → 1.0.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"codetectonics-mantle.umd.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../../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/titles/section-title/section-title.component.ts","../../../projects/mantle/src/lib/components/titles/section-title/section-title.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/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/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/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/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/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/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/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/services/dynamic-form.service.ts","../../../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/textarea/textarea.component.ts","../../../projects/mantle/src/lib/components/form/fields/textarea/textarea.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/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/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/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/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/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/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/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/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/widgets/loader/loader.component.ts","../../../projects/mantle/src/lib/components/widgets/loader/loader.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/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/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/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/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/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/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/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/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/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/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":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","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 this.translate.use(this.AVAILABLE_LOCALES[locale]);\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 const locale = this.availableLocaleCodes.includes(browserLocale) ? browserLocale : this.DEFAULT_LOCALE;\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_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { NgxMatDatetimePickerModule, NgxMatTimepickerModule, NGX_MAT_DATE_FORMATS } from '@angular-material-components/datetime-picker';\nimport { NgxMatMomentModule } from '@angular-material-components/moment-adapter';\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';\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 NgxMatDatetimePickerModule,\n NgxMatTimepickerModule,\n NgxMatMomentModule,\n MatTreeModule,\n MatAutocompleteModule,\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 NgxMatDatetimePickerModule,\n NgxMatTimepickerModule,\n NgxMatMomentModule,\n MatTreeModule,\n MatAutocompleteModule,\n ],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]\n },\n {\n provide: MAT_DATE_FORMATS,\n useValue: {\n parse: {\n dateInput: ['YYYY-MM-DD', 'DD/MM/YYYY'],\n },\n display: {\n dateInput: 'DD/MM/YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n }\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 {\n provide: NGX_MAT_DATE_FORMATS,\n useValue: {\n parse: {\n dateInput: ['YYYY-MM-DD HH:mm', 'DD/MM/YYYY HH:mm'],\n },\n display: {\n dateInput: 'DD/MM/YYYY HH:mm',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n }\n }\n },\n { provide: MatPaginatorIntl, useClass: CustomPaginatorIntl },\n ]\n})\nexport class MaterialModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment from 'moment';\n\n@Pipe({\n name: 'dynamicPipe'\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 '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})\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})\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})\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, 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})\nexport class SectionTitleComponent {\n\n @Input() title!: string;\n\n constructor() { }\n\n}\n","<h3 class=\"section-title\">\n {{ title | translate }}\n</h3>\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-chip-attribute-display',\n templateUrl: './chip-attribute-display.component.html',\n styleUrls: ['./chip-attribute-display.component.scss']\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-list>\n <mat-chip *ngFor=\"let chip of chips\" [ngClass]=\"valueSpecificClass\" selected>{{ chip }}</mat-chip>\n</mat-chip-list>\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})\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})\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\">{{ value?.filename }}</div>\n <div fxFlex=\"1 1 auto\">\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})\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\">{{ value?.filename }}</div>\n <div fxFlex=\"1 1 auto\">\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';\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})\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})\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';\n\n@Component({\n selector: 'mantle-markdown-attribute-display',\n templateUrl: './markdown-attribute-display.component.html',\n styleUrls: ['./markdown-attribute-display.component.scss']\n})\nexport class MarkdownAttributeDisplayComponent {\n\n @Input() value: any = '';\n\n}\n","<markdown ngPreserveWhitespaces>\n {{ value }}\n</markdown>\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})\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})\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';\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})\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=\"'markdown'\">\n <mantle-markdown-attribute-display [value]=\"value\">\n </mantle-markdown-attribute-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';\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})\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'].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 return (attribute.type == 'text' || attribute.type == 'markdown') ? 2 : 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 <button *ngIf=\"field.tooltip\"\n mat-icon-button\n disabled\n disabledInteractive\n disableRipple\n [matTooltip]=\"field.tooltip\"\n matTooltipPosition=\"right\">\n <mat-icon>help</mat-icon>\n </button>\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})\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})\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})\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 { 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';\n\n@Component({\n selector: 'mantle-text-input',\n templateUrl: './text-input.component.html',\n styleUrls: ['./text-input.component.scss'],\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() 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-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</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, 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 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() 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-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</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-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\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() 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\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 }\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-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</mat-label>\n <mat-select\n [(ngModel)]=\"value\"\n (selectionChange)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\">\n <mat-option value=\"\"></mat-option>\n <mat-option *ngFor=\"let option of dropdownValues\" [value]=\"option.value\">\n {{option.label}}\n </mat-option>\n </mat-select>\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 * as moment from 'moment';\n\n@Component({\n selector: 'mantle-datepicker',\n templateUrl: './datepicker.component.html',\n styleUrls: ['./datepicker.component.scss'],\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() 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-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</mat-label>\n <input matInput\n [matDatepicker]=\"picker\"\n [(ngModel)]=\"selectedDate\"\n (change)=\"onDateEntered($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n (dateChange)=\"onDateSelected($event.value)\"\n autocomplete=\"off\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\" tabindex=\"-1\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\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 * as moment from 'moment';\n\n@Component({\n selector: 'mantle-datetimepicker',\n templateUrl: './datetimepicker.component.html',\n styleUrls: ['./datetimepicker.component.scss'],\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() 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';\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-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</mat-label>\n <input matInput\n [ngxMatDatetimePicker]=\"picker\"\n [(ngModel)]=\"selectedDateTime\"\n (change)=\"onDateTimeEntered($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n (dateChange)=\"onDateTimeSelected($event.value)\"\n autocomplete=\"off\">\n <mat-datepicker-toggle matSuffix [for]=\"$any(picker)\" tabindex=\"-1\"></mat-datepicker-toggle>\n <ngx-mat-datetime-picker #picker [defaultTime]=\"[8,0,0]\"></ngx-mat-datetime-picker>\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-time-input',\n templateUrl: './time-input.component.html',\n styleUrls: ['./time-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimeInputComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => TimeInputComponent),\n multi: true,\n },\n ]\n})\nexport class TimeInputComponent implements ControlValueAccessor, Validator, OnChanges {\n\n @Input() label!: string;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public value: any = null;\n public errorMessage: string | undefined;\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(): void { }\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 validate(control: AbstractControl): ValidationErrors | null {\n if (!control.value) {\n this.errorMessage = this.error;\n return null;\n }\n\n this.errorMessage = '';\n\n if (control.value === null || control.value === '') return null;\n if (/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/.test(control.value)) return null;\n\n this.errorMessage = 'must have format HH:mm';\n return [this.errorMessage];\n }\n\n}\n","<mat-form-field [class.mat-form-field-invalid]=\"errorMessage\">\n <mat-label>{{ label | translate }}</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=\"errorMessage\" class=\"error-message\">{{ errorMessage }}</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 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() 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: any = null;\n public errorMessage: string | undefined;\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(): void { }\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 validate(control: AbstractControl): ValidationErrors | null {\n if (control.value === null) {\n this.errorMessage = this.error;\n return null;\n }\n\n let errors: any = {};\n if (this.options.min && control.value < this.options.min) errors.min = `must be greater than or equal to ${this.options.min}`;\n if (this.options.max && control.value > this.options.max) errors.max = `must be lower than or equal to ${this.options.max}`;\n if (this.options.decimal_places) {\n if (this.options.decimal_places == 0) {\n if ((control.value - Math.floor(control.value)) !== 0) errors.decimal_places = 'cannot be a decimal';\n }\n else {\n if ((control.value - control.value.toFixed(2)) !== 0) errors.decimal_places = `must have a maximum of ${this.options.decimal_places} decimal places`;\n }\n }\n\n this.errorMessage = [...[this.error], ...Object.values(errors)].filter(item => { return !!item }).join(', ');\n\n return errors ? errors : null;\n }\n\n}\n","<mat-form-field [class.mat-form-field-invalid]=\"errorMessage\">\n <mat-label>{{ label | translate }}</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, 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 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() 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-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</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>\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 <mat-spinner *ngIf=\"uploadInProgress\" matSuffix [diameter]=\"18\"></mat-spinner>\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 { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ImageCroppedEvent, base64ToFile } 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})\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\n constructor(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 = event.base64;\n }\n\n loadImageFailed() {\n this.dialogRef.close();\n }\n\n onCropComplete() {\n let file = base64ToFile(this.croppedImage);\n this.dialogRef.close(file);\n }\n\n onCancel() {\n this.dialogRef.close();\n }\n\n}\n","<div mat-dialog-title fxLayout=\"row\" fxLayoutAlign=\"center center\" class=\"dialog-title-section\">\n <h2 fxFlex=\"1 1 auto\">{{ '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 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() 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-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</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>\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 <mat-spinner *ngIf=\"uploadInProgress\" matSuffix [diameter]=\"18\"></mat-spinner>\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, 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 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() 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 chipName = (event.value || '').trim();\n\n if (chipName) {\n this.chips.push({name: chipName});\n }\n\n this.setValueFromChips();\n this.onChange(this.value);\n\n event.chipInput!.clear();\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-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</mat-label>\n <mat-chip-list #chipList\n [disabled]=\"disable\">\n <mat-chip *ngFor=\"let chip of chips\"\n color=\"accent\" selected\n [removable]=\"removable\"\n (removed)=\"remove(chip)\">\n {{ chip.name }}\n <mat-icon matChipRemove *ngIf=\"removable\">cancel</mat-icon>\n </mat-chip>\n\n <input [matChipInputFor]=\"chipList\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"add($event)\"\n autocomplete=\"off\">\n </mat-chip-list>\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-password-input',\n templateUrl: './password-input.component.html',\n styleUrls: ['./password-input.component.scss'],\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() 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-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</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-markdown-input',\n templateUrl: './markdown-input.component.html',\n styleUrls: ['./markdown-input.component.scss'],\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() 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-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</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';\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 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() 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-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</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})\nexport class DynamicFormFieldComponent {\n\n @Input() field!: DynamicFormField;\n @Input() form!: FormGroup;\n @Input() error: string | undefined;\n\n}\n","<div [formGroup]=\"form\" [class.with-tooltip]=\"field.tooltip\">\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 [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 [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 [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 [rows]=\"6\"\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 [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-dropdown>\n\n <mantle-datepicker *ngSwitchCase=\"'date'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-markdown-input>\n\n <mantle-autocomplete-input *ngSwitchCase=\"'autocomplete'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\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 [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-text-input>\n\n <button *ngIf=\"field.tooltip\"\n mat-icon-button\n disabled\n disabledInteractive\n disableRipple\n [matTooltip]=\"field.tooltip\"\n matTooltipPosition=\"right\">\n <mat-icon>help</mat-icon>\n </button>\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})\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'].includes(field.type)) return this.numColumns;\n else if (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 return (field.type == 'text' || field.type == 'markdown') ? 2 : 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 } from '@angular/core';\n\n@Component({\n selector: 'mantle-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss'],\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 { 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})\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 * as Highcharts from 'highcharts';\ndeclare var require: any;\nrequire('highcharts/modules/item-series')(Highcharts);\nrequire('highcharts/modules/gantt')(Highcharts);\nrequire('highcharts/modules/exporting')(Highcharts);\nimport { ObjectService } from '../../../../services/object.service';\n\n@Component({\n selector: 'mantle-dynamic-chart',\n templateUrl: './dynamic-chart.component.html',\n styleUrls: ['./dynamic-chart.component.scss']\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 chart.reflow();\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})\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})\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})\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';\n\n@Component({\n selector: 'mantle-dashboard-card',\n templateUrl: './dashboard-card.component.html',\n styleUrls: ['./dashboard-card.component.scss']\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\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 this.formContent = {\n data: this.options,\n elements: this.dashboardWidgetService.widgetSearchFields()\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=\"sub-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\">\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 { 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})\nexport class DashboardSectionComponent implements OnInit {\n\n @Input() dashboardPageService!: DashboardPageService;\n @Input() slug: string | undefined;\n @Input() data: any = {};\n @Input() section!: DynamicLayoutDashboardSection;\n\n public dashboardWidgetServices: DashboardWidgetService[] = [];\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.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","<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 section.elements\" [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 </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})\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 { 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})\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})\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 { Component, Input } from '@angular/core';\nimport {\n DynamicDetailsContent, 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';\n\n@Component({\n selector: 'mantle-dynamic-details-section',\n templateUrl: './dynamic-details-section.component.html',\n styleUrls: ['./dynamic-details-section.component.scss']\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 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>\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})\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-accordion-details-container',\n templateUrl: './accordion-details-container.component.html',\n styleUrls: ['./accordion-details-container.component.scss']\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-dynamic-details-container',\n templateUrl: './dynamic-details-container.component.html',\n styleUrls: ['./dynamic-details-container.component.scss']\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})\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})\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());\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.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})\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})\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})\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})\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})\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})\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})\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})\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})\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=\"deleting-button\"\n [disabled]=\"true\">\n {{ 'mantle.buttons.deleting' | translate }}\n <mat-spinner matSuffix [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=\"saving-button\"\n (click)=\"onSaveClicked()\"\n [disabled]=\"true\">\n {{ 'mantle.buttons.saving' | translate }}\n <mat-spinner matSuffix [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})\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})\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})\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})\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 { 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})\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') ? 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 { 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})\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';\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})\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 { 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})\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 { 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})\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})\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})\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})\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})\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 * as 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})\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})\nexport class PlainDashboardContainerComponent {\n\n @Input() dashboardPageService!: DashboardPageService;\n @Input() content!: DynamicDashboardContent;\n @Input() container!: DynamicLayoutContainer;\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 </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})\nexport class DynamicDashboardContainerComponent {\n\n @Input() dashboardPageService!: DashboardPageService;\n @Input() content!: DynamicDashboardContent;\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-dashboard-container [dashboardPageService]=\"dashboardPageService\" [container]=\"container\" [content]=\"content\">\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})\nexport class DynamicDashboardComponent {\n\n @Input() dashboardPageService!: DashboardPageService;\n @Input() content!: DynamicDashboardContent;\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\">\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})\nexport class DashboardPageComponent implements OnInit {\n\n public dashboardPageService: DashboardPageService;\n public pageTitle: string;\n public content$!: Observable<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 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\" [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})\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})\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\">\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=\"save-button\"\n [ngClass]=\"{ 'in-progress-button': isSaveInProgress }\"\n [disabled]=\"layoutEditorPageService.isCommitInProgress\"\n (click)=\"onSaveClicked()\"> <!-- TODO || !dynamicForm?.valid -->\n {{ 'mantle.buttons.save' | translate }}\n <mat-spinner *ngIf=\"isSaveInProgress\" matSuffix [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}\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';\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\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})\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 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 }\n else {\n this.arrayService.removeItem(this.dataSource.selectedRecordIds, record.id);\n this.dataSource.selectAll = false;\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 }\n else {\n this.dataSource.selectedRecordIds = [];\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 full-height-only\" [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 [ngClass]=\"{ 'in-progress-button': button.isInProgress() }\"\n [disabled]=\"listPageService.isCommitInProgress || button.disabled || dataSource.selectedRecordIds.length <= 0\"\n (click)=\"button.onClick(dataSource.selectedRecordIds)\">\n {{ button.label | translate }}\n <mat-spinner *ngIf=\"button.isInProgress()\" matSuffix [diameter]=\"16\"></mat-spinner>\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})\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})\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 = new MatDialogConfig();\n dialogConfig.data = configData;\n dialogConfig.minWidth = '400px';\n dialogConfig.maxWidth = '80%';\n dialogConfig.position = { bottom: '8px' };\n dialogConfig.autoFocus = false;\n dialogConfig.panelClass = 'confirmation-dialog';\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 = new MatDialogConfig();\n dialogConfig.data = configData;\n dialogConfig.minWidth = '400px';\n dialogConfig.maxWidth = '80%';\n dialogConfig.position = { right: '8px', bottom: '8px' };\n dialogConfig.autoFocus = false;\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})\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\">\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=\"additional-button\"\n [ngClass]=\"{ 'in-progress-button': button.isInProgress() }\"\n [disabled]=\"formPageService.isCommitInProgress || button.disabled\"\n (click)=\"button.onClick(dynamicForm?.value)\">\n {{ button.label | translate }}\n <mat-spinner *ngIf=\"button.isInProgress()\" matSuffix [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=\"additional-button\"\n [ngClass]=\"{ 'in-progress-button': button.isInProgress() }\"\n [disabled]=\"formPageService.isCommitInProgress || button.disabled\"\n (click)=\"button.onClick(dynamicForm?.value)\">\n {{ button.label | translate }}\n <mat-spinner *ngIf=\"button.isInProgress()\" matSuffix [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=\"save-button\"\n [ngClass]=\"{ 'in-progress-button': isSaveInProgress }\"\n [disabled]=\"formPageService.isCommitInProgress || !dynamicForm?.valid\"\n (click)=\"onSaveClicked()\">\n {{ 'mantle.buttons.save' | translate }}\n <mat-spinner *ngIf=\"isSaveInProgress\" matSuffix [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})\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\">\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=\"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 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=\"additional-button\"\n [ngClass]=\"{ 'in-progress-button': button.isInProgress() }\"\n [disabled]=\"detailPageService.isCommitInProgress || button.disabled\"\n (click)=\"button.onClick(id)\">\n {{ button.label | translate }}\n <mat-spinner *ngIf=\"button.isInProgress()\" matSuffix [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=\"additional-button\"\n [ngClass]=\"{ 'in-progress-button': button.isInProgress() }\"\n [disabled]=\"detailPageService.isCommitInProgress || button.disabled\"\n (click)=\"button.onClick(id)\">\n {{ button.label | translate }}\n <mat-spinner *ngIf=\"button.isInProgress()\" matSuffix [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=\"delete-button\"\n [ngClass]=\"{ 'in-progress-button': isDeleteInProgress }\"\n [disabled]=\"detailPageService.isCommitInProgress\"\n (click)=\"onDeleteClicked()\">\n {{ 'mantle.buttons.delete' | translate }} {{ detailPageService.noun() | translate }}\n <mat-spinner *ngIf=\"isDeleteInProgress\" matSuffix [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})\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 full-height-only\" [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})\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>\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 <div fxFlex=\"1 0 1px\" class=\"tab-content vertically-scrollable\">\n <router-outlet></router-outlet>\n </div>\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 },\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 * as 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})\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\">\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})\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=\"exporting-button\"\n [disabled]=\"true\">\n {{ 'mantle.buttons.exporting' | translate }}\n <mat-spinner matSuffix [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})\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})\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=\"deleting-button\"\n [disabled]=\"true\">\n {{ 'mantle.buttons.deleting' | translate }}\n <mat-spinner matSuffix [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})\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})\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 { ImageCropperModule } from 'ngx-image-cropper';\nimport { HighchartsChartModule } from 'highcharts-angular';\nimport { MarkdownModule } from 'ngx-markdown';\nimport { QrCodeModule } from 'ng-qrcode';\nimport { TranslateModule } from '@ngx-translate/core';\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 { 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 { 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 { 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 { 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';\n\n@NgModule({\n declarations: [\n DynamicPipe,\n SecureImagePipe,\n ClickStopPropagationDirective,\n FileDropzoneDirective,\n DynamicDetailsComponent,\n GridDetailsSectionComponent,\n TableDetailsSectionComponent,\n RosterShiftListDetailsSectionComponent,\n DynamicAttributeDisplayComponent,\n ActionsAttributeDisplayComponent,\n IconAttributeDisplayComponent,\n ChipAttributeDisplayComponent,\n FileAttributeDisplayComponent,\n ImageAttributeDisplayComponent,\n MarkdownAttributeDisplayComponent,\n DialogFormComponent,\n DialogNestedFormComponent,\n DynamicFormComponent,\n GridFormSectionComponent,\n TableFormSectionComponent,\n RosterShiftListFormSectionComponent,\n DynamicFormFieldComponent,\n ChipInputComponent,\n DatepickerComponent,\n DatetimepickerComponent,\n DropdownComponent,\n FilepickerComponent,\n ImagepickerComponent,\n ImageCropperComponent,\n NumberInputComponent,\n PasswordInputComponent,\n TextareaComponent,\n TextInputComponent,\n TimeInputComponent,\n MarkdownInputComponent,\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 ],\n imports: [\n CommonModule,\n RouterModule,\n HttpClientModule,\n LayoutModule,\n FlexLayoutModule,\n DragDropModule,\n BrowserModule,\n BrowserAnimationsModule,\n FormsModule,\n ReactiveFormsModule,\n ImageCropperModule,\n HighchartsChartModule,\n MarkdownModule.forRoot(),\n QrCodeModule,\n TranslateModule,\n MaterialModule,\n ],\n exports: [\n MaterialModule,\n DynamicPipe,\n SecureImagePipe,\n ClickStopPropagationDirective,\n FileDropzoneDirective,\n DynamicDetailsComponent,\n GridDetailsSectionComponent,\n TableDetailsSectionComponent,\n RosterShiftListDetailsSectionComponent,\n DynamicAttributeDisplayComponent,\n ActionsAttributeDisplayComponent,\n IconAttributeDisplayComponent,\n ChipAttributeDisplayComponent,\n FileAttributeDisplayComponent,\n ImageAttributeDisplayComponent,\n MarkdownAttributeDisplayComponent,\n DialogFormComponent,\n DialogNestedFormComponent,\n DynamicFormComponent,\n GridFormSectionComponent,\n TableFormSectionComponent,\n RosterShiftListFormSectionComponent,\n DynamicFormFieldComponent,\n ChipInputComponent,\n DatepickerComponent,\n DatetimepickerComponent,\n DropdownComponent,\n FilepickerComponent,\n ImagepickerComponent,\n ImageCropperComponent,\n NumberInputComponent,\n PasswordInputComponent,\n TextareaComponent,\n TextInputComponent,\n TimeInputComponent,\n MarkdownInputComponent,\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 ],\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 = {\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 \"core\": {\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 },\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 \"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 \"core\": {\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 },\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 \"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 'angular-token';\nimport * as 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, private arrayService: ArrayService,\n private 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 '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 * as 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.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';\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): 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 listPageExportOptions(): ListPageExportOption[] {\n return [];\n }\n\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","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { AngularTokenService } from '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/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/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/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/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/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/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/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":["BehaviorSubject","i0","Injectable","i1","i2.DataBroadcastService","i3.ObjectService","MatPaginatorIntl","i1.DataBroadcastService","i2.LocaleService","CommonModule","MatBadgeModule","MatButtonModule","MatCardModule","MatCheckboxModule","MatChipsModule","MatDatepickerModule","MatDialogModule","MatExpansionModule","MatGridListModule","MatIconModule","MatInputModule","MatListModule","MatMenuModule","MatSelectModule","MatSidenavModule","MatTabsModule","MatToolbarModule","MatTooltipModule","MatProgressSpinnerModule","MatTableModule","MatPaginatorModule","MatSortModule","MatMomentDateModule","MatSnackBarModule","NgxMatDatetimePickerModule","NgxMatTimepickerModule","NgxMatMomentModule","MatTreeModule","MatAutocompleteModule","DateAdapter","MomentDateAdapter","MAT_DATE_LOCALE","MAT_MOMENT_DATE_ADAPTER_OPTIONS","MAT_DATE_FORMATS","MAT_SNACK_BAR_DEFAULT_OPTIONS","MAT_CHIPS_DEFAULT_OPTIONS","ENTER","COMMA","NGX_MAT_DATE_FORMATS","NgModule","moment","Pipe","InjectionToken","map","DirectUpload","i2","Inject","Observable","i1.WebApiService","Directive","HostListener","EventEmitter","HostBinding","Output","Component","Input","Breakpoints","Subject","takeUntil","i1.ObjectService","i3","MAT_DIALOG_DATA","i2.WebApiService","i3.SectionTitleComponent","i4","i5","i6","i7","i8.SecureImagePipe","i9","MatDialogConfig","i6.ClickStopPropagationDirective","i5.ClickStopPropagationDirective","i4.SecureImagePipe","i4.ClickStopPropagationDirective","i1.ArrayService","i2.ChipAttributeDisplayComponent","i3.FileAttributeDisplayComponent","i4.ImageAttributeDisplayComponent","i5.LinkAttributeDisplayComponent","i6.ThumbnailDisplayComponent","i7.MarkdownAttributeDisplayComponent","i8.ActionsAttributeDisplayComponent","i9.IconAttributeDisplayComponent","i10","i11.DynamicPipe","i1.ScreenSizeService","i5.DynamicAttributeDisplayComponent","i2.SectionTitleComponent","i5.GridDetailsSectionComponent","i8","merge","DataSource","MatPaginator","MatSort","MatTable","i4.DynamicAttributeDisplayComponent","ViewChild","i2.DynamicTableComponent","FormGroup","FormControl","NG_VALUE_ACCESSOR","forwardRef","NG_VALIDATORS","i8.ClickStopPropagationDirective","base64ToFile","i9.ClickStopPropagationDirective","observableOf","i1.TextInputComponent","i2.TextareaComponent","i3.DropdownComponent","i4.DatepickerComponent","i5.DatetimepickerComponent","i6.TimeInputComponent","i7.NumberInputComponent","i8.FilepickerComponent","i9.ImagepickerComponent","i10.ChipInputComponent","i11.PasswordInputComponent","i12.MarkdownInputComponent","i13.AutocompleteInputComponent","i14","i15","i16","i17","i18","i4.DynamicFormFieldComponent","i1.DynamicFormService","i2.GridFormSectionComponent","i3.LoaderComponent","Highcharts","i3.DynamicAttributeDisplayComponent","i1.DynamicChartComponent","i2.DashboardInfoCardComponent","i3.DashboardTableComponent","i2.ScreenSizeService","MatMenuTrigger","i7.DashboardCardSearchMenuComponent","i9.DynamicWidgetDisplayComponent","i11","i12","i13.ClickStopPropagationDirective","i4.DashboardCardComponent","moveItemInArray","i1.DraggableTableComponent","i1.GridDetailsSectionComponent","i2.TableDetailsSectionComponent","i3.DashboardSectionComponent","i4.MarkdownDetailsSectionComponent","i5.RosterShiftListDetailsSectionComponent","i1.SectionTitleComponent","i2.DynamicDetailsSectionComponent","i3.DynamicDetailsSectionComponent","i1.PlainDetailsContainerComponent","i2.AccordionDetailsContainerComponent","i1.DynamicDetailsContainerComponent","i2.LoaderComponent","i2.DynamicFormService","i6.GridFormSectionComponent","i2.ArrayService","i5.DynamicTableComponent","i2.DraggableTableComponent","i1.GridFormSectionComponent","i2.TableFormSectionComponent","i3.RosterShiftListFormSectionComponent","i4.GridDetailsSectionComponent","i5.TableDetailsSectionComponent","i6.DashboardSectionComponent","i7.MarkdownDetailsSectionComponent","i8.RosterShiftListDetailsSectionComponent","i2.DynamicFormSectionComponent","i3.DynamicFormSectionComponent","i1.PlainFormContainerComponent","i2.AccordionFormContainerComponent","i2.DynamicFormContainerComponent","MAT_SNACK_BAR_DATA","i2.AnnouncementService","i4.SectionTitleComponent","i7.DynamicFormComponent","i1.LayoutEditorFieldElementComponent","i2.LayoutEditorTableColumnElementComponent","i3.LayoutEditorWidgetElementComponent","i3.ArrayService","i5.DynamicLayoutEditorElementComponent","i4.DynamicLayoutEditorElementComponent","i2.DynamicLayoutEditorElementComponent","i1.GridLayoutEditorSectionComponent","i2.TableLayoutEditorSectionComponent","i3.DashboardLayoutEditorSectionComponent","i4.MarkdownLayoutEditorSectionComponent","i3.DynamicLayoutEditorSectionComponent","i1.PlainLayoutEditorContainerComponent","i2.AccordionLayoutEditorContainerComponent","i1.DynamicLayoutEditorContainerComponent","i1.LocaleService","i1.DashboardSectionComponent","i2.GridDetailsSectionComponent","i3.TableDetailsSectionComponent","i1.PlainDashboardContainerComponent","i1.DynamicDashboardContainerComponent","i2.PageTitleComponent","i3.DynamicDashboardComponent","i3.SecureImagePipe","i3.ContentTitleComponent","i4.DynamicLayoutEditorComponent","HttpParams","startWith","switchMap","i2.ObjectService","i4.DynamicFormComponent","i3.ScreenSizeService","i4.PageTitleComponent","i8.SearchPanelComponent","i13.DynamicAttributeDisplayComponent","i19.ClickStopPropagationDirective","i20","trigger","state","style","AUTO_STYLE","transition","sequence","animate","i3.ConfirmationService","i4.ContentTitleComponent","i13","i5.ContentTitleComponent","i6.DynamicDetailsComponent","i3.WebApiService","i4.ScreenSizeService","i5.PageTitleComponent","i10.LoaderComponent","i18.FileDropzoneDirective","i19","i4.ObjectService","i5.ScreenSizeService","i6.PageTitleComponent","i9.DynamicChartComponent","MatTreeFlattener","FlatTreeControl","MatTreeFlatDataSource","filter","NavigationStart","i3.AnnouncementService","i7.DynamicDetailsComponent","RouterModule","HttpClientModule","LayoutModule","FlexLayoutModule","DragDropModule","BrowserModule","BrowserAnimationsModule","FormsModule","ReactiveFormsModule","ImageCropperModule","HighchartsChartModule","QrCodeModule","TranslateModule","DatePipe","MarkdownModule","retryWhen","delay","tap","i4.ArrayService","i5.DataBroadcastService","i6.LocaleService","i7.WebApiService","ActionCable","i3.CurrentUserService","i4.DataBroadcastService","i5.WebApiService","finalize","i1.AnnouncementService","i2.CurrentUserService","i1.PasswordCheckService"],"mappings":"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"}
1
+ {"version":3,"file":"codetectonics-mantle.umd.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../../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/titles/section-title/section-title.component.ts","../../../projects/mantle/src/lib/components/titles/section-title/section-title.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/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/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/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/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/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/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/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/services/dynamic-form.service.ts","../../../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/textarea/textarea.component.ts","../../../projects/mantle/src/lib/components/form/fields/textarea/textarea.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/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/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/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/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/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/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/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/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/widgets/loader/loader.component.ts","../../../projects/mantle/src/lib/components/widgets/loader/loader.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/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/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/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/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/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/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/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/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/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/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":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","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 this.translate.use(this.AVAILABLE_LOCALES[locale]);\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 const locale = this.availableLocaleCodes.includes(browserLocale) ? browserLocale : this.DEFAULT_LOCALE;\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_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { NgxMatDatetimePickerModule, NgxMatTimepickerModule, NGX_MAT_DATE_FORMATS } from '@angular-material-components/datetime-picker';\nimport { NgxMatMomentModule } from '@angular-material-components/moment-adapter';\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';\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 NgxMatDatetimePickerModule,\n NgxMatTimepickerModule,\n NgxMatMomentModule,\n MatTreeModule,\n MatAutocompleteModule,\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 NgxMatDatetimePickerModule,\n NgxMatTimepickerModule,\n NgxMatMomentModule,\n MatTreeModule,\n MatAutocompleteModule,\n ],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]\n },\n {\n provide: MAT_DATE_FORMATS,\n useValue: {\n parse: {\n dateInput: ['YYYY-MM-DD', 'DD/MM/YYYY'],\n },\n display: {\n dateInput: 'DD/MM/YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n }\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 {\n provide: NGX_MAT_DATE_FORMATS,\n useValue: {\n parse: {\n dateInput: ['YYYY-MM-DD HH:mm', 'DD/MM/YYYY HH:mm'],\n },\n display: {\n dateInput: 'DD/MM/YYYY HH:mm',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n }\n }\n },\n { provide: MatPaginatorIntl, useClass: CustomPaginatorIntl },\n ]\n})\nexport class MaterialModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment from 'moment';\n\n@Pipe({\n name: 'dynamicPipe'\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 '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})\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})\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})\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, 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})\nexport class SectionTitleComponent {\n\n @Input() title!: string;\n\n constructor() { }\n\n}\n","<h3 class=\"section-title\">\n {{ title | translate }}\n</h3>\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-chip-attribute-display',\n templateUrl: './chip-attribute-display.component.html',\n styleUrls: ['./chip-attribute-display.component.scss']\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-list>\n <mat-chip *ngFor=\"let chip of chips\" [ngClass]=\"valueSpecificClass\" selected>{{ chip }}</mat-chip>\n</mat-chip-list>\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})\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})\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\">{{ value?.filename }}</div>\n <div fxFlex=\"1 1 auto\">\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})\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\">{{ value?.filename }}</div>\n <div fxFlex=\"1 1 auto\">\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';\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})\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})\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';\n\n@Component({\n selector: 'mantle-markdown-attribute-display',\n templateUrl: './markdown-attribute-display.component.html',\n styleUrls: ['./markdown-attribute-display.component.scss']\n})\nexport class MarkdownAttributeDisplayComponent {\n\n @Input() value: any = '';\n\n}\n","<markdown ngPreserveWhitespaces>\n {{ value }}\n</markdown>\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})\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})\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';\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})\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=\"'markdown'\">\n <mantle-markdown-attribute-display [value]=\"value\">\n </mantle-markdown-attribute-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';\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})\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'].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 return (attribute.type == 'text' || attribute.type == 'markdown') ? 2 : 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 <button *ngIf=\"field.tooltip\"\n mat-icon-button\n disabled\n disabledInteractive\n disableRipple\n [matTooltip]=\"field.tooltip\"\n matTooltipPosition=\"right\">\n <mat-icon>help</mat-icon>\n </button>\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})\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})\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})\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 { 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';\n\n@Component({\n selector: 'mantle-text-input',\n templateUrl: './text-input.component.html',\n styleUrls: ['./text-input.component.scss'],\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() 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-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</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, 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 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() 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-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</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-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\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() 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\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 }\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-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</mat-label>\n <mat-select\n [(ngModel)]=\"value\"\n (selectionChange)=\"onValueChanged($event)\"\n [required]=\"required\"\n [disabled]=\"disable\">\n <mat-option value=\"\"></mat-option>\n <mat-option *ngFor=\"let option of dropdownValues\" [value]=\"option.value\">\n {{option.label}}\n </mat-option>\n </mat-select>\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 * as moment from 'moment';\n\n@Component({\n selector: 'mantle-datepicker',\n templateUrl: './datepicker.component.html',\n styleUrls: ['./datepicker.component.scss'],\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() 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-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</mat-label>\n <input matInput\n [matDatepicker]=\"picker\"\n [(ngModel)]=\"selectedDate\"\n (change)=\"onDateEntered($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n (dateChange)=\"onDateSelected($event.value)\"\n autocomplete=\"off\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\" tabindex=\"-1\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\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 * as moment from 'moment';\n\n@Component({\n selector: 'mantle-datetimepicker',\n templateUrl: './datetimepicker.component.html',\n styleUrls: ['./datetimepicker.component.scss'],\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() 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';\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-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</mat-label>\n <input matInput\n [ngxMatDatetimePicker]=\"picker\"\n [(ngModel)]=\"selectedDateTime\"\n (change)=\"onDateTimeEntered($event)\"\n [required]=\"required\"\n [disabled]=\"disable\"\n (dateChange)=\"onDateTimeSelected($event.value)\"\n autocomplete=\"off\">\n <mat-datepicker-toggle matSuffix [for]=\"$any(picker)\" tabindex=\"-1\"></mat-datepicker-toggle>\n <ngx-mat-datetime-picker #picker [defaultTime]=\"[8,0,0]\"></ngx-mat-datetime-picker>\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-time-input',\n templateUrl: './time-input.component.html',\n styleUrls: ['./time-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimeInputComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => TimeInputComponent),\n multi: true,\n },\n ]\n})\nexport class TimeInputComponent implements ControlValueAccessor, Validator, OnChanges {\n\n @Input() label!: string;\n @Input() disable!: boolean;\n @Input() required!: boolean;\n @Input() error: string | undefined;\n\n public value: any = null;\n public errorMessage: string | undefined;\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(): void { }\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 validate(control: AbstractControl): ValidationErrors | null {\n if (!control.value) {\n this.errorMessage = this.error;\n return null;\n }\n\n this.errorMessage = '';\n\n if (control.value === null || control.value === '') return null;\n if (/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/.test(control.value)) return null;\n\n this.errorMessage = 'must have format HH:mm';\n return [this.errorMessage];\n }\n\n}\n","<mat-form-field [class.mat-form-field-invalid]=\"errorMessage\">\n <mat-label>{{ label | translate }}</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=\"errorMessage\" class=\"error-message\">{{ errorMessage }}</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 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() 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: any = null;\n public errorMessage: string | undefined;\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(): void { }\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 validate(control: AbstractControl): ValidationErrors | null {\n if (control.value === null) {\n this.errorMessage = this.error;\n return null;\n }\n\n let errors: any = {};\n if (this.options.min && control.value < this.options.min) errors.min = `must be greater than or equal to ${this.options.min}`;\n if (this.options.max && control.value > this.options.max) errors.max = `must be lower than or equal to ${this.options.max}`;\n if (this.options.decimal_places) {\n if (this.options.decimal_places == 0) {\n if ((control.value - Math.floor(control.value)) !== 0) errors.decimal_places = 'cannot be a decimal';\n }\n else {\n if ((control.value - control.value.toFixed(2)) !== 0) errors.decimal_places = `must have a maximum of ${this.options.decimal_places} decimal places`;\n }\n }\n\n this.errorMessage = [...[this.error], ...Object.values(errors)].filter(item => { return !!item }).join(', ');\n\n return errors ? errors : null;\n }\n\n}\n","<mat-form-field [class.mat-form-field-invalid]=\"errorMessage\">\n <mat-label>{{ label | translate }}</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, 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 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() 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-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</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>\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 <mat-spinner *ngIf=\"uploadInProgress\" matSuffix [diameter]=\"18\"></mat-spinner>\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 { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ImageCroppedEvent, base64ToFile } 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})\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\n constructor(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 = event.base64;\n }\n\n loadImageFailed() {\n this.dialogRef.close();\n }\n\n onCropComplete() {\n let file = base64ToFile(this.croppedImage);\n this.dialogRef.close(file);\n }\n\n onCancel() {\n this.dialogRef.close();\n }\n\n}\n","<div mat-dialog-title fxLayout=\"row\" fxLayoutAlign=\"center center\" class=\"dialog-title-section\">\n <h2 fxFlex=\"1 1 auto\">{{ '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 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() 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-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</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>\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 <mat-spinner *ngIf=\"uploadInProgress\" matSuffix [diameter]=\"18\"></mat-spinner>\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, 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 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() 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 chipName = (event.value || '').trim();\n\n if (chipName) {\n this.chips.push({name: chipName});\n }\n\n this.setValueFromChips();\n this.onChange(this.value);\n\n event.chipInput!.clear();\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-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</mat-label>\n <mat-chip-list #chipList\n [disabled]=\"disable\">\n <mat-chip *ngFor=\"let chip of chips\"\n color=\"accent\" selected\n [removable]=\"removable\"\n (removed)=\"remove(chip)\">\n {{ chip.name }}\n <mat-icon matChipRemove *ngIf=\"removable\">cancel</mat-icon>\n </mat-chip>\n\n <input [matChipInputFor]=\"chipList\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"add($event)\"\n autocomplete=\"off\">\n </mat-chip-list>\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-password-input',\n templateUrl: './password-input.component.html',\n styleUrls: ['./password-input.component.scss'],\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() 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-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</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-markdown-input',\n templateUrl: './markdown-input.component.html',\n styleUrls: ['./markdown-input.component.scss'],\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() 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-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</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';\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 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() 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-form-field-invalid]=\"error\">\n <mat-label>{{ label | translate }}</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})\nexport class DynamicFormFieldComponent {\n\n @Input() field!: DynamicFormField;\n @Input() form!: FormGroup;\n @Input() error: string | undefined;\n\n}\n","<div [formGroup]=\"form\" [class.with-tooltip]=\"field.tooltip\">\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 [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 [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 [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 [rows]=\"6\"\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 [options]=\"field.options\"\n [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-dropdown>\n\n <mantle-datepicker *ngSwitchCase=\"'date'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\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 [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 [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 [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 [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 [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 [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 [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 [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 [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 [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-markdown-input>\n\n <mantle-autocomplete-input *ngSwitchCase=\"'autocomplete'\"\n [id]=\"field.attr\"\n [formControlName]=\"field.attr\"\n [label]=\"field.label\"\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 [required]=\"field.required\"\n [disable]=\"field.disabled\"\n [error]=\"error\">\n </mantle-text-input>\n\n <button *ngIf=\"field.tooltip\"\n mat-icon-button\n disabled\n disabledInteractive\n disableRipple\n [matTooltip]=\"field.tooltip\"\n matTooltipPosition=\"right\">\n <mat-icon>help</mat-icon>\n </button>\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})\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'].includes(field.type)) return this.numColumns;\n else if (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 return (field.type == 'text' || field.type == 'markdown') ? 2 : 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 } from '@angular/core';\n\n@Component({\n selector: 'mantle-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss'],\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 { 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})\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 * as Highcharts from 'highcharts';\ndeclare var require: any;\nrequire('highcharts/modules/item-series')(Highcharts);\nrequire('highcharts/modules/gantt')(Highcharts);\nrequire('highcharts/modules/exporting')(Highcharts);\nimport { ObjectService } from '../../../../services/object.service';\n\n@Component({\n selector: 'mantle-dynamic-chart',\n templateUrl: './dynamic-chart.component.html',\n styleUrls: ['./dynamic-chart.component.scss']\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 chart.reflow();\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})\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})\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})\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';\n\n@Component({\n selector: 'mantle-dashboard-card',\n templateUrl: './dashboard-card.component.html',\n styleUrls: ['./dashboard-card.component.scss']\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\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 this.formContent = {\n data: this.options,\n elements: this.dashboardWidgetService.widgetSearchFields()\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=\"sub-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\">\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 { 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})\nexport class DashboardSectionComponent implements OnInit {\n\n @Input() dashboardPageService!: DashboardPageService;\n @Input() slug: string | undefined;\n @Input() data: any = {};\n @Input() section!: DynamicLayoutDashboardSection;\n\n public dashboardWidgetServices: DashboardWidgetService[] = [];\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.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","<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 section.elements\" [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 </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})\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 { 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})\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})\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 { Component, Input } from '@angular/core';\nimport {\n DynamicDetailsContent, 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';\n\n@Component({\n selector: 'mantle-dynamic-details-section',\n templateUrl: './dynamic-details-section.component.html',\n styleUrls: ['./dynamic-details-section.component.scss']\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 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>\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})\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-accordion-details-container',\n templateUrl: './accordion-details-container.component.html',\n styleUrls: ['./accordion-details-container.component.scss']\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-dynamic-details-container',\n templateUrl: './dynamic-details-container.component.html',\n styleUrls: ['./dynamic-details-container.component.scss']\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})\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})\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());\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.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})\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})\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})\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})\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})\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})\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})\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})\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})\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=\"deleting-button\"\n [disabled]=\"true\">\n {{ 'mantle.buttons.deleting' | translate }}\n <mat-spinner matSuffix [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=\"saving-button\"\n (click)=\"onSaveClicked()\"\n [disabled]=\"true\">\n {{ 'mantle.buttons.saving' | translate }}\n <mat-spinner matSuffix [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})\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})\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})\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})\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 { 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})\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') ? 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 { 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})\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';\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})\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 { 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})\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 { 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})\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})\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})\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})\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})\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 * as 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})\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})\nexport class PlainDashboardContainerComponent {\n\n @Input() dashboardPageService!: DashboardPageService;\n @Input() content!: DynamicDashboardContent;\n @Input() container!: DynamicLayoutContainer;\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 </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})\nexport class DynamicDashboardContainerComponent {\n\n @Input() dashboardPageService!: DashboardPageService;\n @Input() content!: DynamicDashboardContent;\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-dashboard-container [dashboardPageService]=\"dashboardPageService\" [container]=\"container\" [content]=\"content\">\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})\nexport class DynamicDashboardComponent {\n\n @Input() dashboardPageService!: DashboardPageService;\n @Input() content!: DynamicDashboardContent;\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\">\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})\nexport class DashboardPageComponent implements OnInit {\n\n public dashboardPageService: DashboardPageService;\n public pageTitle: string;\n public content$!: Observable<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 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\" [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})\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})\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\">\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=\"save-button\"\n [ngClass]=\"{ 'in-progress-button': isSaveInProgress }\"\n [disabled]=\"layoutEditorPageService.isCommitInProgress\"\n (click)=\"onSaveClicked()\"> <!-- TODO || !dynamicForm?.valid -->\n {{ 'mantle.buttons.save' | translate }}\n <mat-spinner *ngIf=\"isSaveInProgress\" matSuffix [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}\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';\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\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})\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 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 }\n else {\n this.arrayService.removeItem(this.dataSource.selectedRecordIds, record.id);\n this.dataSource.selectAll = false;\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 }\n else {\n this.dataSource.selectedRecordIds = [];\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 full-height-only\" [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 [ngClass]=\"{ 'in-progress-button': button.isInProgress() }\"\n [disabled]=\"listPageService.isCommitInProgress || button.disabled || dataSource.selectedRecordIds.length <= 0\"\n (click)=\"button.onClick(dataSource.selectedRecordIds)\">\n {{ button.label | translate }}\n <mat-spinner *ngIf=\"button.isInProgress()\" matSuffix [diameter]=\"16\"></mat-spinner>\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})\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})\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 = new MatDialogConfig();\n dialogConfig.data = configData;\n dialogConfig.minWidth = '400px';\n dialogConfig.maxWidth = '80%';\n dialogConfig.position = { bottom: '8px' };\n dialogConfig.autoFocus = false;\n dialogConfig.panelClass = 'confirmation-dialog';\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 = new MatDialogConfig();\n dialogConfig.data = configData;\n dialogConfig.minWidth = '400px';\n dialogConfig.maxWidth = '80%';\n dialogConfig.position = { right: '8px', bottom: '8px' };\n dialogConfig.autoFocus = false;\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})\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\">\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=\"additional-button\"\n [ngClass]=\"{ 'in-progress-button': button.isInProgress() }\"\n [disabled]=\"formPageService.isCommitInProgress || button.disabled\"\n (click)=\"button.onClick(dynamicForm?.value)\">\n {{ button.label | translate }}\n <mat-spinner *ngIf=\"button.isInProgress()\" matSuffix [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=\"additional-button\"\n [ngClass]=\"{ 'in-progress-button': button.isInProgress() }\"\n [disabled]=\"formPageService.isCommitInProgress || button.disabled\"\n (click)=\"button.onClick(dynamicForm?.value)\">\n {{ button.label | translate }}\n <mat-spinner *ngIf=\"button.isInProgress()\" matSuffix [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=\"save-button\"\n [ngClass]=\"{ 'in-progress-button': isSaveInProgress }\"\n [disabled]=\"formPageService.isCommitInProgress || !dynamicForm?.valid\"\n (click)=\"onSaveClicked()\">\n {{ 'mantle.buttons.save' | translate }}\n <mat-spinner *ngIf=\"isSaveInProgress\" matSuffix [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})\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\">\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=\"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 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=\"additional-button\"\n [ngClass]=\"{ 'in-progress-button': button.isInProgress() }\"\n [disabled]=\"detailPageService.isCommitInProgress || button.disabled\"\n (click)=\"button.onClick(id)\">\n {{ button.label | translate }}\n <mat-spinner *ngIf=\"button.isInProgress()\" matSuffix [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=\"additional-button\"\n [ngClass]=\"{ 'in-progress-button': button.isInProgress() }\"\n [disabled]=\"detailPageService.isCommitInProgress || button.disabled\"\n (click)=\"button.onClick(id)\">\n {{ button.label | translate }}\n <mat-spinner *ngIf=\"button.isInProgress()\" matSuffix [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=\"delete-button\"\n [ngClass]=\"{ 'in-progress-button': isDeleteInProgress }\"\n [disabled]=\"detailPageService.isCommitInProgress\"\n (click)=\"onDeleteClicked()\">\n {{ 'mantle.buttons.delete' | translate }} {{ detailPageService.noun() | translate }}\n <mat-spinner *ngIf=\"isDeleteInProgress\" matSuffix [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})\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 full-height-only\" [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})\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>\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 <div fxFlex=\"1 0 1px\" class=\"tab-content vertically-scrollable\">\n <router-outlet></router-outlet>\n </div>\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 },\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 * as 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})\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\">\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})\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=\"exporting-button\"\n [disabled]=\"true\">\n {{ 'mantle.buttons.exporting' | translate }}\n <mat-spinner matSuffix [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})\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})\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=\"deleting-button\"\n [disabled]=\"true\">\n {{ 'mantle.buttons.deleting' | translate }}\n <mat-spinner matSuffix [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})\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})\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 { ImageCropperModule } from 'ngx-image-cropper';\nimport { HighchartsChartModule } from 'highcharts-angular';\nimport { MarkdownModule } from 'ngx-markdown';\nimport { QrCodeModule } from 'ng-qrcode';\nimport { TranslateModule } from '@ngx-translate/core';\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 { 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 { 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 { 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 { 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';\n\n@NgModule({\n declarations: [\n DynamicPipe,\n SecureImagePipe,\n ClickStopPropagationDirective,\n FileDropzoneDirective,\n DynamicDetailsComponent,\n GridDetailsSectionComponent,\n TableDetailsSectionComponent,\n RosterShiftListDetailsSectionComponent,\n DynamicAttributeDisplayComponent,\n ActionsAttributeDisplayComponent,\n IconAttributeDisplayComponent,\n ChipAttributeDisplayComponent,\n FileAttributeDisplayComponent,\n ImageAttributeDisplayComponent,\n MarkdownAttributeDisplayComponent,\n DialogFormComponent,\n DialogNestedFormComponent,\n DynamicFormComponent,\n GridFormSectionComponent,\n TableFormSectionComponent,\n RosterShiftListFormSectionComponent,\n DynamicFormFieldComponent,\n ChipInputComponent,\n DatepickerComponent,\n DatetimepickerComponent,\n DropdownComponent,\n FilepickerComponent,\n ImagepickerComponent,\n ImageCropperComponent,\n NumberInputComponent,\n PasswordInputComponent,\n TextareaComponent,\n TextInputComponent,\n TimeInputComponent,\n MarkdownInputComponent,\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 ],\n imports: [\n CommonModule,\n RouterModule,\n HttpClientModule,\n LayoutModule,\n FlexLayoutModule,\n DragDropModule,\n BrowserModule,\n BrowserAnimationsModule,\n FormsModule,\n ReactiveFormsModule,\n ImageCropperModule,\n HighchartsChartModule,\n MarkdownModule.forRoot(),\n QrCodeModule,\n TranslateModule,\n MaterialModule,\n ],\n exports: [\n MaterialModule,\n DynamicPipe,\n SecureImagePipe,\n ClickStopPropagationDirective,\n FileDropzoneDirective,\n DynamicDetailsComponent,\n GridDetailsSectionComponent,\n TableDetailsSectionComponent,\n RosterShiftListDetailsSectionComponent,\n DynamicAttributeDisplayComponent,\n ActionsAttributeDisplayComponent,\n IconAttributeDisplayComponent,\n ChipAttributeDisplayComponent,\n FileAttributeDisplayComponent,\n ImageAttributeDisplayComponent,\n MarkdownAttributeDisplayComponent,\n DialogFormComponent,\n DialogNestedFormComponent,\n DynamicFormComponent,\n GridFormSectionComponent,\n TableFormSectionComponent,\n RosterShiftListFormSectionComponent,\n DynamicFormFieldComponent,\n ChipInputComponent,\n DatepickerComponent,\n DatetimepickerComponent,\n DropdownComponent,\n FilepickerComponent,\n ImagepickerComponent,\n ImageCropperComponent,\n NumberInputComponent,\n PasswordInputComponent,\n TextareaComponent,\n TextInputComponent,\n TimeInputComponent,\n MarkdownInputComponent,\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 ],\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 = {\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 \"core\": {\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 },\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 \"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 \"core\": {\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 },\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 \"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 'angular-token';\nimport * as 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 '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 * as 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.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';\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): 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 listPageExportOptions(): ListPageExportOption[] {\n return [];\n }\n\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","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { AngularTokenService } from '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/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/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/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/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/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/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/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":["BehaviorSubject","i0","Injectable","i1","i2.DataBroadcastService","i3.ObjectService","MatPaginatorIntl","i1.DataBroadcastService","i2.LocaleService","CommonModule","MatBadgeModule","MatButtonModule","MatCardModule","MatCheckboxModule","MatChipsModule","MatDatepickerModule","MatDialogModule","MatExpansionModule","MatGridListModule","MatIconModule","MatInputModule","MatListModule","MatMenuModule","MatSelectModule","MatSidenavModule","MatTabsModule","MatToolbarModule","MatTooltipModule","MatProgressSpinnerModule","MatTableModule","MatPaginatorModule","MatSortModule","MatMomentDateModule","MatSnackBarModule","NgxMatDatetimePickerModule","NgxMatTimepickerModule","NgxMatMomentModule","MatTreeModule","MatAutocompleteModule","DateAdapter","MomentDateAdapter","MAT_DATE_LOCALE","MAT_MOMENT_DATE_ADAPTER_OPTIONS","MAT_DATE_FORMATS","MAT_SNACK_BAR_DEFAULT_OPTIONS","MAT_CHIPS_DEFAULT_OPTIONS","ENTER","COMMA","NGX_MAT_DATE_FORMATS","NgModule","moment","Pipe","InjectionToken","map","DirectUpload","i2","Inject","Observable","i1.WebApiService","Directive","HostListener","EventEmitter","HostBinding","Output","Component","Input","Breakpoints","Subject","takeUntil","i1.ObjectService","i3","MAT_DIALOG_DATA","i2.WebApiService","i3.SectionTitleComponent","i4","i5","i6","i7","i8.SecureImagePipe","i9","MatDialogConfig","i6.ClickStopPropagationDirective","i5.ClickStopPropagationDirective","i4.SecureImagePipe","i4.ClickStopPropagationDirective","i1.ArrayService","i2.ChipAttributeDisplayComponent","i3.FileAttributeDisplayComponent","i4.ImageAttributeDisplayComponent","i5.LinkAttributeDisplayComponent","i6.ThumbnailDisplayComponent","i7.MarkdownAttributeDisplayComponent","i8.ActionsAttributeDisplayComponent","i9.IconAttributeDisplayComponent","i10","i11.DynamicPipe","i1.ScreenSizeService","i5.DynamicAttributeDisplayComponent","i2.SectionTitleComponent","i5.GridDetailsSectionComponent","i8","merge","DataSource","MatPaginator","MatSort","MatTable","i4.DynamicAttributeDisplayComponent","ViewChild","i2.DynamicTableComponent","FormGroup","FormControl","NG_VALUE_ACCESSOR","forwardRef","NG_VALIDATORS","i8.ClickStopPropagationDirective","base64ToFile","i9.ClickStopPropagationDirective","observableOf","i1.TextInputComponent","i2.TextareaComponent","i3.DropdownComponent","i4.DatepickerComponent","i5.DatetimepickerComponent","i6.TimeInputComponent","i7.NumberInputComponent","i8.FilepickerComponent","i9.ImagepickerComponent","i10.ChipInputComponent","i11.PasswordInputComponent","i12.MarkdownInputComponent","i13.AutocompleteInputComponent","i14","i15","i16","i17","i18","i4.DynamicFormFieldComponent","i1.DynamicFormService","i2.GridFormSectionComponent","i3.LoaderComponent","Highcharts","i3.DynamicAttributeDisplayComponent","i1.DynamicChartComponent","i2.DashboardInfoCardComponent","i3.DashboardTableComponent","i2.ScreenSizeService","MatMenuTrigger","i7.DashboardCardSearchMenuComponent","i9.DynamicWidgetDisplayComponent","i11","i12","i13.ClickStopPropagationDirective","i4.DashboardCardComponent","moveItemInArray","i1.DraggableTableComponent","i1.GridDetailsSectionComponent","i2.TableDetailsSectionComponent","i3.DashboardSectionComponent","i4.MarkdownDetailsSectionComponent","i5.RosterShiftListDetailsSectionComponent","i1.SectionTitleComponent","i2.DynamicDetailsSectionComponent","i3.DynamicDetailsSectionComponent","i1.PlainDetailsContainerComponent","i2.AccordionDetailsContainerComponent","i1.DynamicDetailsContainerComponent","i2.LoaderComponent","i2.DynamicFormService","i6.GridFormSectionComponent","i2.ArrayService","i5.DynamicTableComponent","i2.DraggableTableComponent","i1.GridFormSectionComponent","i2.TableFormSectionComponent","i3.RosterShiftListFormSectionComponent","i4.GridDetailsSectionComponent","i5.TableDetailsSectionComponent","i6.DashboardSectionComponent","i7.MarkdownDetailsSectionComponent","i8.RosterShiftListDetailsSectionComponent","i2.DynamicFormSectionComponent","i3.DynamicFormSectionComponent","i1.PlainFormContainerComponent","i2.AccordionFormContainerComponent","i2.DynamicFormContainerComponent","MAT_SNACK_BAR_DATA","i2.AnnouncementService","i4.SectionTitleComponent","i7.DynamicFormComponent","i1.LayoutEditorFieldElementComponent","i2.LayoutEditorTableColumnElementComponent","i3.LayoutEditorWidgetElementComponent","i3.ArrayService","i5.DynamicLayoutEditorElementComponent","i4.DynamicLayoutEditorElementComponent","i2.DynamicLayoutEditorElementComponent","i1.GridLayoutEditorSectionComponent","i2.TableLayoutEditorSectionComponent","i3.DashboardLayoutEditorSectionComponent","i4.MarkdownLayoutEditorSectionComponent","i3.DynamicLayoutEditorSectionComponent","i1.PlainLayoutEditorContainerComponent","i2.AccordionLayoutEditorContainerComponent","i1.DynamicLayoutEditorContainerComponent","i1.LocaleService","i1.DashboardSectionComponent","i2.GridDetailsSectionComponent","i3.TableDetailsSectionComponent","i1.PlainDashboardContainerComponent","i1.DynamicDashboardContainerComponent","i2.PageTitleComponent","i3.DynamicDashboardComponent","i3.SecureImagePipe","i3.ContentTitleComponent","i4.DynamicLayoutEditorComponent","HttpParams","startWith","switchMap","i2.ObjectService","i4.DynamicFormComponent","i3.ScreenSizeService","i4.PageTitleComponent","i8.SearchPanelComponent","i13.DynamicAttributeDisplayComponent","i19.ClickStopPropagationDirective","i20","trigger","state","style","AUTO_STYLE","transition","sequence","animate","i3.ConfirmationService","i4.ContentTitleComponent","i13","i5.ContentTitleComponent","i6.DynamicDetailsComponent","i3.WebApiService","i4.ScreenSizeService","i5.PageTitleComponent","i10.LoaderComponent","i18.FileDropzoneDirective","i19","i4.ObjectService","i5.ScreenSizeService","i6.PageTitleComponent","i9.DynamicChartComponent","MatTreeFlattener","FlatTreeControl","MatTreeFlatDataSource","filter","NavigationStart","i3.AnnouncementService","i7.DynamicDetailsComponent","RouterModule","HttpClientModule","LayoutModule","FlexLayoutModule","DragDropModule","BrowserModule","BrowserAnimationsModule","FormsModule","ReactiveFormsModule","ImageCropperModule","HighchartsChartModule","QrCodeModule","TranslateModule","DatePipe","MarkdownModule","retryWhen","delay","tap","i4.ArrayService","i5.DataBroadcastService","i6.LocaleService","i7.WebApiService","ActionCable","i3.CurrentUserService","i4.DataBroadcastService","i5.WebApiService","finalize","i1.AnnouncementService","i2.CurrentUserService","i1.PasswordCheckService"],"mappings":"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"}