@codetectonics/mantle 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -49
- package/bundles/codetectonics-mantle.umd.js +6907 -0
- package/bundles/codetectonics-mantle.umd.js.map +1 -0
- package/esm2015/codetectonics-mantle.js +5 -0
- package/esm2015/lib/components/dashboard/containers/dynamic-dashboard-container/dynamic-dashboard-container.component.js +24 -0
- package/esm2015/lib/components/dashboard/containers/plain-dashboard-container/plain-dashboard-container.component.js +35 -0
- package/esm2015/lib/components/dashboard/dashboard-card/dashboard-card.component.js +133 -0
- package/esm2015/lib/components/dashboard/dashboard-card-search-menu/dashboard-card-search-menu.component.js +55 -0
- package/esm2015/lib/components/dashboard/dynamic-dashboard/dynamic-dashboard.component.js +23 -0
- package/esm2015/lib/components/dashboard/sections/dashboard-section/dashboard-section.component.js +71 -0
- package/esm2015/lib/components/dashboard/widgets/dashboard-info-card/dashboard-info-card.component.js +26 -0
- package/esm2015/lib/components/dashboard/widgets/dashboard-table/dashboard-table-datasource.js +30 -0
- package/esm2015/lib/components/dashboard/widgets/dashboard-table/dashboard-table.component.js +58 -0
- package/esm2015/lib/components/dashboard/widgets/dynamic-chart/dynamic-chart.component.js +85 -0
- package/esm2015/lib/components/dashboard/widgets/dynamic-widget-display/dynamic-widget-display.component.js +29 -0
- package/esm2015/lib/components/details/containers/accordion-details-container/accordion-details-container.component.js +26 -0
- package/esm2015/lib/components/details/containers/dynamic-details-container/dynamic-details-container.component.js +25 -0
- package/esm2015/lib/components/details/containers/plain-details-container/plain-details-container.component.js +25 -0
- package/esm2015/lib/components/details/dialog-details/dialog-details.component.js +77 -0
- package/esm2015/lib/components/details/dialog-nested-details/dialog-nested-details.component.js +40 -0
- package/esm2015/lib/components/details/dynamic-details/dynamic-details.component.js +23 -0
- package/esm2015/lib/components/details/fields/actions-attribute-display/actions-attribute-display.component.js +27 -0
- package/esm2015/lib/components/details/fields/chip-attribute-display/chip-attribute-display.component.js +40 -0
- package/esm2015/lib/components/details/fields/dynamic-attribute-display/dynamic-attribute-display.component.js +46 -0
- package/esm2015/lib/components/details/fields/file-attribute-display/file-attribute-display.component.js +37 -0
- package/esm2015/lib/components/details/fields/image-attribute-display/image-attribute-display.component.js +36 -0
- package/esm2015/lib/components/details/fields/link-attribute-display/link-attribute-display.component.js +30 -0
- package/esm2015/lib/components/details/fields/markdown-attribute-display/markdown-attribute-display.component.js +21 -0
- package/esm2015/lib/components/details/fields/thumbnail-display/thumbnail-display.component.js +33 -0
- package/esm2015/lib/components/details/sections/dynamic-details-section/dynamic-details-section.component.js +42 -0
- package/esm2015/lib/components/details/sections/grid-details-section/grid-details-section.component.js +53 -0
- package/esm2015/lib/components/details/sections/markdown-details-section/markdown-details-section.component.js +19 -0
- package/esm2015/lib/components/details/sections/table-details-section/table-details-section.component.js +37 -0
- package/esm2015/lib/components/form/containers/accordion-form-container/accordion-form-container.component.js +29 -0
- package/esm2015/lib/components/form/containers/dynamic-form-container/dynamic-form-container.component.js +28 -0
- package/esm2015/lib/components/form/containers/plain-form-container/plain-form-container.component.js +28 -0
- package/esm2015/lib/components/form/dialog-form/dialog-form.component.js +91 -0
- package/esm2015/lib/components/form/dialog-nested-form/dialog-nested-form.component.js +57 -0
- package/esm2015/lib/components/form/dynamic-form/dynamic-form.component.js +52 -0
- package/esm2015/lib/components/form/fields/autocomplete-input/autocomplete-input.component.js +69 -0
- package/esm2015/lib/components/form/fields/chip-input/chip-input.component.js +84 -0
- package/esm2015/lib/components/form/fields/datepicker/datepicker.component.js +91 -0
- package/esm2015/lib/components/form/fields/datetimepicker/datetimepicker.component.js +92 -0
- package/esm2015/lib/components/form/fields/dropdown/dropdown.component.js +73 -0
- package/esm2015/lib/components/form/fields/dynamic-form-field/dynamic-form-field.component.js +37 -0
- package/esm2015/lib/components/form/fields/filepicker/filepicker.component.js +97 -0
- package/esm2015/lib/components/form/fields/image-cropper/image-cropper.component.js +52 -0
- package/esm2015/lib/components/form/fields/imagepicker/imagepicker.component.js +139 -0
- package/esm2015/lib/components/form/fields/markdown-input/markdown-input.component.js +53 -0
- package/esm2015/lib/components/form/fields/number-input/number-input.component.js +91 -0
- package/esm2015/lib/components/form/fields/password-input/password-input.component.js +58 -0
- package/esm2015/lib/components/form/fields/text-input/text-input.component.js +55 -0
- package/esm2015/lib/components/form/fields/textarea/textarea.component.js +58 -0
- package/esm2015/lib/components/form/sections/dynamic-form-section/dynamic-form-section.component.js +47 -0
- package/esm2015/lib/components/form/sections/grid-form-section/grid-form-section.component.js +69 -0
- package/esm2015/lib/components/form/sections/table-form-section/table-form-section.component.js +107 -0
- package/esm2015/lib/components/layout-editor/containers/accordion-layout-editor-container/accordion-layout-editor-container.component.js +24 -0
- package/esm2015/lib/components/layout-editor/containers/dynamic-layout-editor-container/dynamic-layout-editor-container.component.js +23 -0
- package/esm2015/lib/components/layout-editor/containers/plain-layout-editor-container/plain-layout-editor-container.component.js +24 -0
- package/esm2015/lib/components/layout-editor/dynamic-layout-editor/dynamic-layout-editor.component.js +23 -0
- package/esm2015/lib/components/layout-editor/elements/dynamic-layout-editor-element/dynamic-layout-editor-element.component.js +38 -0
- package/esm2015/lib/components/layout-editor/elements/layout-editor-field-element/layout-editor-field-element.component.js +76 -0
- package/esm2015/lib/components/layout-editor/elements/layout-editor-table-column-element/layout-editor-table-column-element.component.js +76 -0
- package/esm2015/lib/components/layout-editor/elements/layout-editor-widget-element/layout-editor-widget-element.component.js +19 -0
- package/esm2015/lib/components/layout-editor/sections/dashboard-layout-editor-section/dashboard-layout-editor-section.component.js +21 -0
- package/esm2015/lib/components/layout-editor/sections/dynamic-layout-editor-section/dynamic-layout-editor-section.component.js +25 -0
- package/esm2015/lib/components/layout-editor/sections/grid-layout-editor-section/grid-layout-editor-section.component.js +102 -0
- package/esm2015/lib/components/layout-editor/sections/markdown-layout-editor-section/markdown-layout-editor-section.component.js +19 -0
- package/esm2015/lib/components/layout-editor/sections/table-layout-editor-section/table-layout-editor-section.component.js +74 -0
- package/esm2015/lib/components/navigation/nav-tree/nav-tree.component.js +65 -0
- package/esm2015/lib/components/navigation/reroute/reroute.component.js +28 -0
- package/esm2015/lib/components/pages/dashboard-page/dashboard-page.component.js +34 -0
- package/esm2015/lib/components/pages/detail-page/detail-page.component.js +101 -0
- package/esm2015/lib/components/pages/documents-page/documents-page.component.js +109 -0
- package/esm2015/lib/components/pages/export-page/export-page.component.js +65 -0
- package/esm2015/lib/components/pages/form-page/form-page.component.js +133 -0
- package/esm2015/lib/components/pages/layout-editor-page/layout-editor-page.component.js +72 -0
- package/esm2015/lib/components/pages/list-page/list-page-datasource.js +62 -0
- package/esm2015/lib/components/pages/list-page/list-page.component.js +159 -0
- package/esm2015/lib/components/pages/tabbed-page/tabbed-page.component.js +35 -0
- package/esm2015/lib/components/titles/content-title/content-title.component.js +23 -0
- package/esm2015/lib/components/titles/page-title/page-title.component.js +28 -0
- package/esm2015/lib/components/titles/section-title/section-title.component.js +18 -0
- package/esm2015/lib/components/widgets/delete-confirmation-dialog/delete-confirmation-dialog.component.js +36 -0
- package/esm2015/lib/components/widgets/dynamic-table/dynamic-table-datasource.js +89 -0
- package/esm2015/lib/components/widgets/dynamic-table/dynamic-table.component.js +67 -0
- package/esm2015/lib/components/widgets/file-preview-dialog/file-preview-dialog.component.js +42 -0
- package/esm2015/lib/components/widgets/loader/loader.component.js +21 -0
- package/esm2015/lib/components/widgets/save-confirmation-dialog/save-confirmation-dialog.component.js +35 -0
- package/esm2015/lib/components/widgets/search-panel/search-panel.component.js +67 -0
- package/esm2015/lib/components/widgets/snackbar/snackbar.component.js +42 -0
- package/esm2015/lib/config/charts/column-chart.data.js +38 -0
- package/esm2015/lib/config/charts/gantt-chart.data.js +18 -0
- package/esm2015/lib/config/charts/pie-chart.data.js +21 -0
- package/esm2015/lib/config/charts/progress-bar-chart.data.js +50 -0
- package/esm2015/lib/config/charts/spline-chart.data.js +24 -0
- package/esm2015/lib/data-structures/dynamic-layout.structure.js +2 -0
- package/esm2015/lib/data-structures/file-attachment.structure.js +2 -0
- package/esm2015/lib/directives/click-stop-propagation.directive.js +19 -0
- package/esm2015/lib/directives/file-dropzone.directive.js +53 -0
- package/esm2015/lib/guards/feature.guard.js +42 -0
- package/esm2015/lib/guards/password-check.guard.js +21 -0
- package/esm2015/lib/guards/session.guard.js +21 -0
- package/esm2015/lib/mantle.module.js +518 -0
- package/esm2015/lib/material.module.js +290 -0
- package/esm2015/lib/models/screen-size-map.model.js +9 -0
- package/esm2015/lib/pipes/dynamic.pipe.js +45 -0
- package/esm2015/lib/pipes/secure-image.pipe.js +35 -0
- package/esm2015/lib/services/adapters/web-api-crud.adapter.js +22 -0
- package/esm2015/lib/services/adapters/websocket.adapter.js +2 -0
- package/esm2015/lib/services/announcement.service.js +43 -0
- package/esm2015/lib/services/array.service.js +82 -0
- package/esm2015/lib/services/chart.service.js +45 -0
- package/esm2015/lib/services/confirmation.service.js +45 -0
- package/esm2015/lib/services/current-user.service.js +120 -0
- package/esm2015/lib/services/dynamic-form.service.js +59 -0
- package/esm2015/lib/services/feature-config.service.js +240 -0
- package/esm2015/lib/services/interfaces/authorisable-feature.service.js +2 -0
- package/esm2015/lib/services/interfaces/dashboard-page.service.js +2 -0
- package/esm2015/lib/services/interfaces/dashboard-widget.service.js +2 -0
- package/esm2015/lib/services/interfaces/detail-page.service.js +2 -0
- package/esm2015/lib/services/interfaces/export-page.service.js +2 -0
- package/esm2015/lib/services/interfaces/form-page.service.js +2 -0
- package/esm2015/lib/services/interfaces/layout-editor-page.service.js +2 -0
- package/esm2015/lib/services/interfaces/list-page.service.js +2 -0
- package/esm2015/lib/services/interfaces/nav-tabs.service.js +2 -0
- package/esm2015/lib/services/interfaces/reroute.service.js +2 -0
- package/esm2015/lib/services/object.service.js +69 -0
- package/esm2015/lib/services/password-check.service.js +93 -0
- package/esm2015/lib/services/screen-size.service.js +41 -0
- package/esm2015/lib/services/web-api.service.js +99 -0
- package/esm2015/lib/services/websocket.service.js +58 -0
- package/esm2015/lib/tokens/environment.token.js +3 -0
- package/esm2015/public-api.js +133 -0
- package/fesm2015/codetectonics-mantle.js +5940 -0
- package/fesm2015/codetectonics-mantle.js.map +1 -0
- package/lib/components/dashboard/containers/dynamic-dashboard-container/dynamic-dashboard-container.component.d.ts +11 -0
- package/lib/components/dashboard/containers/plain-dashboard-container/plain-dashboard-container.component.d.ts +14 -0
- package/lib/components/dashboard/dashboard-card/dashboard-card.component.d.ts +41 -0
- package/lib/components/dashboard/dashboard-card-search-menu/dashboard-card-search-menu.component.d.ts +20 -0
- package/lib/components/dashboard/dynamic-dashboard/dynamic-dashboard.component.d.ts +10 -0
- package/lib/components/dashboard/sections/dashboard-section/dashboard-section.component.d.ts +27 -0
- package/lib/components/dashboard/widgets/dashboard-info-card/dashboard-info-card.component.d.ts +8 -0
- package/lib/components/dashboard/widgets/dashboard-table/dashboard-table-datasource.d.ts +22 -0
- package/lib/components/dashboard/widgets/dashboard-table/dashboard-table.component.d.ts +28 -0
- package/lib/components/dashboard/widgets/dynamic-chart/dynamic-chart.component.d.ts +20 -0
- package/lib/components/dashboard/widgets/dynamic-widget-display/dynamic-widget-display.component.d.ts +9 -0
- package/lib/components/details/containers/accordion-details-container/accordion-details-container.component.d.ts +11 -0
- package/lib/components/details/containers/dynamic-details-container/dynamic-details-container.component.d.ts +11 -0
- package/lib/components/details/containers/plain-details-container/plain-details-container.component.d.ts +11 -0
- package/lib/components/details/dialog-details/dialog-details.component.d.ts +36 -0
- package/lib/components/details/dialog-nested-details/dialog-nested-details.component.d.ts +22 -0
- package/lib/components/details/dynamic-details/dynamic-details.component.d.ts +10 -0
- package/lib/components/details/fields/actions-attribute-display/actions-attribute-display.component.d.ts +7 -0
- package/lib/components/details/fields/chip-attribute-display/chip-attribute-display.component.d.ts +9 -0
- package/lib/components/details/fields/dynamic-attribute-display/dynamic-attribute-display.component.d.ts +15 -0
- package/lib/components/details/fields/file-attribute-display/file-attribute-display.component.d.ts +12 -0
- package/lib/components/details/fields/image-attribute-display/image-attribute-display.component.d.ts +12 -0
- package/lib/components/details/fields/link-attribute-display/link-attribute-display.component.d.ts +10 -0
- package/lib/components/details/fields/markdown-attribute-display/markdown-attribute-display.component.d.ts +6 -0
- package/lib/components/details/fields/thumbnail-display/thumbnail-display.component.d.ts +10 -0
- package/lib/components/details/sections/dynamic-details-section/dynamic-details-section.component.d.ts +17 -0
- package/lib/components/details/sections/grid-details-section/grid-details-section.component.d.ts +17 -0
- package/lib/components/details/sections/markdown-details-section/markdown-details-section.component.d.ts +7 -0
- package/lib/components/details/sections/table-details-section/table-details-section.component.d.ts +12 -0
- package/lib/components/form/containers/accordion-form-container/accordion-form-container.component.d.ts +13 -0
- package/lib/components/form/containers/dynamic-form-container/dynamic-form-container.component.d.ts +13 -0
- package/lib/components/form/containers/plain-form-container/plain-form-container.component.d.ts +13 -0
- package/lib/components/form/dialog-form/dialog-form.component.d.ts +39 -0
- package/lib/components/form/dialog-nested-form/dialog-nested-form.component.d.ts +31 -0
- package/lib/components/form/dynamic-form/dynamic-form.component.d.ts +21 -0
- package/lib/components/form/fields/autocomplete-input/autocomplete-input.component.d.ts +32 -0
- package/lib/components/form/fields/chip-input/chip-input.component.d.ts +27 -0
- package/lib/components/form/fields/datepicker/datepicker.component.d.ts +24 -0
- package/lib/components/form/fields/datetimepicker/datetimepicker.component.d.ts +24 -0
- package/lib/components/form/fields/dropdown/dropdown.component.d.ts +31 -0
- package/lib/components/form/fields/dynamic-form-field/dynamic-form-field.component.d.ts +10 -0
- package/lib/components/form/fields/filepicker/filepicker.component.d.ts +27 -0
- package/lib/components/form/fields/image-cropper/image-cropper.component.d.ts +27 -0
- package/lib/components/form/fields/imagepicker/imagepicker.component.d.ts +41 -0
- package/lib/components/form/fields/markdown-input/markdown-input.component.d.ts +17 -0
- package/lib/components/form/fields/number-input/number-input.component.d.ts +27 -0
- package/lib/components/form/fields/password-input/password-input.component.d.ts +19 -0
- package/lib/components/form/fields/text-input/text-input.component.d.ts +18 -0
- package/lib/components/form/fields/textarea/textarea.component.d.ts +19 -0
- package/lib/components/form/sections/dynamic-form-section/dynamic-form-section.component.d.ts +19 -0
- package/lib/components/form/sections/grid-form-section/grid-form-section.component.d.ts +23 -0
- package/lib/components/form/sections/table-form-section/table-form-section.component.d.ts +22 -0
- package/lib/components/layout-editor/containers/accordion-layout-editor-container/accordion-layout-editor-container.component.d.ts +10 -0
- package/lib/components/layout-editor/containers/dynamic-layout-editor-container/dynamic-layout-editor-container.component.d.ts +10 -0
- package/lib/components/layout-editor/containers/plain-layout-editor-container/plain-layout-editor-container.component.d.ts +10 -0
- package/lib/components/layout-editor/dynamic-layout-editor/dynamic-layout-editor.component.d.ts +10 -0
- package/lib/components/layout-editor/elements/dynamic-layout-editor-element/dynamic-layout-editor-element.component.d.ts +13 -0
- package/lib/components/layout-editor/elements/layout-editor-field-element/layout-editor-field-element.component.d.ts +14 -0
- package/lib/components/layout-editor/elements/layout-editor-table-column-element/layout-editor-table-column-element.component.d.ts +14 -0
- package/lib/components/layout-editor/elements/layout-editor-widget-element/layout-editor-widget-element.component.d.ts +8 -0
- package/lib/components/layout-editor/sections/dashboard-layout-editor-section/dashboard-layout-editor-section.component.d.ts +8 -0
- package/lib/components/layout-editor/sections/dynamic-layout-editor-section/dynamic-layout-editor-section.component.d.ts +10 -0
- package/lib/components/layout-editor/sections/grid-layout-editor-section/grid-layout-editor-section.component.d.ts +21 -0
- package/lib/components/layout-editor/sections/markdown-layout-editor-section/markdown-layout-editor-section.component.d.ts +7 -0
- package/lib/components/layout-editor/sections/table-layout-editor-section/table-layout-editor-section.component.d.ts +14 -0
- package/lib/components/navigation/nav-tree/nav-tree.component.d.ts +46 -0
- package/lib/components/navigation/reroute/reroute.component.d.ts +14 -0
- package/lib/components/pages/dashboard-page/dashboard-page.component.d.ts +16 -0
- package/lib/components/pages/detail-page/detail-page.component.d.ts +35 -0
- package/lib/components/pages/documents-page/documents-page.component.d.ts +41 -0
- package/lib/components/pages/export-page/export-page.component.d.ts +29 -0
- package/lib/components/pages/form-page/form-page.component.d.ts +37 -0
- package/lib/components/pages/layout-editor-page/layout-editor-page.component.d.ts +26 -0
- package/lib/components/pages/list-page/list-page-datasource.d.ts +32 -0
- package/lib/components/pages/list-page/list-page.component.d.ts +46 -0
- package/lib/components/pages/tabbed-page/tabbed-page.component.d.ts +16 -0
- package/lib/components/titles/content-title/content-title.component.d.ts +8 -0
- package/lib/components/titles/page-title/page-title.component.d.ts +10 -0
- package/lib/components/titles/section-title/section-title.component.d.ts +7 -0
- package/lib/components/widgets/delete-confirmation-dialog/delete-confirmation-dialog.component.d.ts +20 -0
- package/lib/components/widgets/dynamic-table/dynamic-table-datasource.d.ts +40 -0
- package/lib/components/widgets/dynamic-table/dynamic-table.component.d.ts +30 -0
- package/lib/components/widgets/file-preview-dialog/file-preview-dialog.component.d.ts +17 -0
- package/lib/components/widgets/loader/loader.component.d.ts +6 -0
- package/lib/components/widgets/save-confirmation-dialog/save-confirmation-dialog.component.d.ts +16 -0
- package/lib/components/widgets/search-panel/search-panel.component.d.ts +21 -0
- package/lib/components/widgets/snackbar/snackbar.component.d.ts +11 -0
- package/lib/config/charts/column-chart.data.d.ts +37 -0
- package/lib/config/charts/gantt-chart.data.d.ts +17 -0
- package/lib/config/charts/pie-chart.data.d.ts +20 -0
- package/lib/config/charts/progress-bar-chart.data.d.ts +49 -0
- package/lib/config/charts/spline-chart.data.d.ts +23 -0
- package/lib/data-structures/dynamic-layout.structure.d.ts +161 -0
- package/lib/data-structures/file-attachment.structure.d.ts +6 -0
- package/lib/directives/click-stop-propagation.directive.d.ts +6 -0
- package/lib/directives/file-dropzone.directive.d.ts +12 -0
- package/lib/guards/feature.guard.d.ts +15 -0
- package/lib/guards/password-check.guard.d.ts +11 -0
- package/lib/guards/session.guard.d.ts +10 -0
- package/lib/mantle.module.d.ts +106 -0
- package/lib/material.module.d.ts +34 -0
- package/lib/models/screen-size-map.model.d.ts +13 -0
- package/lib/pipes/dynamic.pipe.d.ts +12 -0
- package/lib/pipes/secure-image.pipe.d.ts +11 -0
- package/lib/services/adapters/web-api-crud.adapter.d.ts +63 -0
- package/lib/services/adapters/websocket.adapter.d.ts +6 -0
- package/lib/services/announcement.service.d.ts +11 -0
- package/lib/services/array.service.d.ts +21 -0
- package/lib/services/chart.service.d.ts +14 -0
- package/lib/services/confirmation.service.d.ts +11 -0
- package/lib/services/current-user.service.d.ts +28 -0
- package/lib/services/dynamic-form.service.d.ts +30 -0
- package/lib/services/feature-config.service.d.ts +82 -0
- package/lib/services/interfaces/authorisable-feature.service.d.ts +5 -0
- package/lib/services/interfaces/dashboard-page.service.d.ts +13 -0
- package/lib/services/interfaces/dashboard-widget.service.d.ts +34 -0
- package/lib/services/interfaces/detail-page.service.d.ts +36 -0
- package/lib/services/interfaces/export-page.service.d.ts +6 -0
- package/lib/services/interfaces/form-page.service.d.ts +30 -0
- package/lib/services/interfaces/layout-editor-page.service.d.ts +14 -0
- package/lib/services/interfaces/list-page.service.d.ts +44 -0
- package/lib/services/interfaces/nav-tabs.service.d.ts +7 -0
- package/lib/services/interfaces/reroute.service.d.ts +3 -0
- package/lib/services/object.service.d.ts +11 -0
- package/lib/services/password-check.service.d.ts +21 -0
- package/lib/services/screen-size.service.d.ts +14 -0
- package/lib/services/web-api.service.d.ts +21 -0
- package/lib/services/websocket.service.d.ts +20 -0
- package/lib/tokens/environment.token.d.ts +2 -0
- package/package.json +34 -15
- package/public-api.d.ts +129 -2
- package/fesm2022/codetectonics-mantle.mjs +0 -42
- package/fesm2022/codetectonics-mantle.mjs.map +0 -1
- package/lib/mantle.component.d.ts +0 -5
- package/lib/mantle.service.d.ts +0 -6
- /package/{index.d.ts → codetectonics-mantle.d.ts} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1wYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9zZXJ2aWNlcy9pbnRlcmZhY2VzL2Zvcm0tcGFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBXZWJBcGlGb3JtUmVzcG9uc2UsIFdlYkFwaVNhdmVSZXNwb25zZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FkYXB0ZXJzL3dlYi1hcGktY3J1ZC5hZGFwdGVyJztcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udGVudCB9IGZyb20gJy4uLy4uL2RhdGEtc3RydWN0dXJlcy9keW5hbWljLWxheW91dC5zdHJ1Y3R1cmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1QYWdlQnV0dG9uIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgY29sb3I/OiAncHJpbWFyeScgfCAnYWNjZW50JyB8ICd3YXJuJztcbiAgcG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCc7XG4gIHNob3c6IGJvb2xlYW47XG4gIGlzSW5Qcm9ncmVzczogKCkgPT4gYm9vbGVhbjtcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIG9uQ2xpY2s6IChyZWNvcmQ6IGFueSkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtUGFnZVNlcnZpY2Uge1xuXG4gIHNob3dTYXZlQnV0dG9uOiBib29sZWFuO1xuICBpc0NvbW1pdEluUHJvZ3Jlc3M6IGJvb2xlYW47XG5cbiAgbm91bigpOiBzdHJpbmc7XG4gIGdldE5ldyhwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPFdlYkFwaUZvcm1SZXNwb25zZT47XG4gIGNyZWF0ZShwYXJhbXM6IGFueSk6IE9ic2VydmFibGU8V2ViQXBpU2F2ZVJlc3BvbnNlPjtcbiAgZ2V0RWRpdChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxXZWJBcGlGb3JtUmVzcG9uc2U+O1xuICB1cGRhdGUoaWQ6IHN0cmluZywgcGFyYW1zOiBhbnkpOiBPYnNlcnZhYmxlPFdlYkFwaVNhdmVSZXNwb25zZT47XG4gIHNhdmUoaWQ6IHN0cmluZyB8IHVuZGVmaW5lZCwgdmFsdWU6IGFueSwgb25TdWNjZXNzOiAocmVzcG9uc2U6IFdlYkFwaVNhdmVSZXNwb25zZSkgPT4gdm9pZCwgb25GYWlsdXJlOiAocmVzcG9uc2U6IFdlYkFwaVNhdmVSZXNwb25zZSkgPT4gdm9pZCk6IHZvaWQ7XG4gIG9uRm9ybUNvbnRlbnRMb2FkZWQoY29udGVudDogRHluYW1pY0Zvcm1Db250ZW50KTogdm9pZDtcbiAgb25Gb3JtVmFsdWVDaGFuZ2VkKHBhZ2VDb250ZW50OiBEeW5hbWljRm9ybUNvbnRlbnQsIGZvcm1WYWx1ZTogYW55KTogdm9pZDtcbiAgYmVmb3JlU2F2ZShwYXJhbXM6IGFueSk6IHZvaWQ7XG4gIG9uU2F2ZVN1Y2Nlc3MocmVzcG9uc2U6IFdlYkFwaVNhdmVSZXNwb25zZSk6IHZvaWQ7XG4gIG9uU2F2ZUZhaWx1cmUocmVzcG9uc2U6IFdlYkFwaVNhdmVSZXNwb25zZSk6IHZvaWQ7XG4gIGFkZGl0aW9uYWxGb3JtUGFnZUJ1dHRvbnMocmVjb3JkOiBhbnkpOiBGb3JtUGFnZUJ1dHRvbltdO1xuICBvcGVuUmVjb3JkKHJlY29yZDogYW55KTogdm9pZDtcbiAgb3Blbkxpc3QoKTogdm9pZDtcblxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWVkaXRvci1wYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9zZXJ2aWNlcy9pbnRlcmZhY2VzL2xheW91dC1lZGl0b3ItcGFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBXZWJBcGlGb3JtUmVzcG9uc2UsIFdlYkFwaVNhdmVSZXNwb25zZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FkYXB0ZXJzL3dlYi1hcGktY3J1ZC5hZGFwdGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBMYXlvdXRFZGl0b3JQYWdlU2VydmljZSB7XG5cbiAgc2hvd1NhdmVCdXR0b246IGJvb2xlYW47XG4gIGlzQ29tbWl0SW5Qcm9ncmVzczogYm9vbGVhbjtcblxuICBub3VuKCk6IHN0cmluZztcbiAgZ2V0RWRpdChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxXZWJBcGlGb3JtUmVzcG9uc2U+O1xuICBvcGVuTGlzdCgpOiB2b2lkO1xuICBjYW5Xcml0ZSgpOiBib29sZWFuO1xuICB1cGRhdGUoaWQ6IHN0cmluZywgcGFyYW1zOiBhbnkpOiBPYnNlcnZhYmxlPFdlYkFwaVNhdmVSZXNwb25zZT47XG4gIHNhdmUoaWQ6IHN0cmluZyB8IHVuZGVmaW5lZCwgdmFsdWU6IGFueSwgb25TdWNjZXNzOiAocmVzcG9uc2U6IFdlYkFwaVNhdmVSZXNwb25zZSkgPT4gdm9pZCwgb25GYWlsdXJlOiAocmVzcG9uc2U6IFdlYkFwaVNhdmVSZXNwb25zZSkgPT4gdm9pZCk6IHZvaWQ7XG4gIG9uU2F2ZVN1Y2Nlc3MocmVzcG9uc2U6IFdlYkFwaVNhdmVSZXNwb25zZSk6IHZvaWQ7XG4gIG9uU2F2ZUZhaWx1cmUocmVzcG9uc2U6IFdlYkFwaVNhdmVSZXNwb25zZSk6IHZvaWQ7XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9zZXJ2aWNlcy9pbnRlcmZhY2VzL2xpc3QtcGFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFdlYkFwaUxpc3RSZXF1ZXN0LCBXZWJBcGlMaXN0UmVzcG9uc2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hZGFwdGVycy93ZWItYXBpLWNydWQuYWRhcHRlcic7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUZpZWxkIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZHluYW1pYy1mb3JtLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RQYWdlQ29sdW1uIHtcbiAgaGVhZGVyOiBzdHJpbmc7XG4gIGF0dHI6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBvcHRpb25zPzogYW55O1xuICBzb3J0QXR0cj86IHN0cmluZztcbiAgZGlzYWJsZVNvcnQ/OiBib29sZWFuO1xuICBlbmFibGVDb2xsYXBzZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFBhZ2VFeHBvcnRPcHRpb24ge1xuICBsYWJlbDogc3RyaW5nO1xuICBleHBvcnQocGFyYW1zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFBhZ2VCdWxrRXhwb3J0T3B0aW9uIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgZXhwb3J0KHNlbGVjdGVkSWRzOiBzdHJpbmdbXSk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFBhZ2VTZXJ2aWNlIHtcblxuICB3aXRoQ2hlY2thYmxlUm93cz86IGJvb2xlYW47XG4gIHdpdGhDbGlja2FibGVSb3dzOiBib29sZWFuO1xuICB3aXRoQ29sbGFwc2libGVDb2x1bW5zPzogYm9vbGVhbjtcbiAgc2hvd0FkZEJ1dHRvbjogYm9vbGVhbjtcbiAgd2ViUnRjRXZlbnRzOiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgbGlzdENvbnRlbnRDaGFuZ2VFdmVudHM6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICBkZWZhdWx0T3JkZXI/OiB7IGF0dHI6IHN0cmluZywgZGlyZWN0aW9uOiAnYXNjJyB8ICdkZXNjJyB9O1xuXG4gIHByZXBhcmUocm91dGU6IEFjdGl2YXRlZFJvdXRlKTogdm9pZDtcbiAgbm91bigpOiBzdHJpbmc7XG4gIGxpc3RDb2x1bW5zKCk6IExpc3RQYWdlQ29sdW1uW107XG4gIHNlYXJjaEZpZWxkcygpOiBEeW5hbWljRm9ybUZpZWxkW107XG4gIGxpc3RQYWdlRXhwb3J0T3B0aW9ucygpOiBMaXN0UGFnZUV4cG9ydE9wdGlvbltdO1xuICBsaXN0UGFnZUJ1bGtFeHBvcnRPcHRpb25zKCk6IExpc3RQYWdlQnVsa0V4cG9ydE9wdGlvbltdO1xuICBnZXRMaXN0KHBhcmFtczogV2ViQXBpTGlzdFJlcXVlc3QpOiBPYnNlcnZhYmxlPFdlYkFwaUxpc3RSZXNwb25zZT47XG4gIG9wZW5SZWNvcmQocmVjb3JkOiBhbnkpOiB2b2lkO1xuICBvcGVuRm9ybShyZWNvcmQ/OiBhbnksIGluaXREYXRhPzogYW55KTogdm9pZDtcbiAgY2FuV3JpdGUoKTogYm9vbGVhbjtcblxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXRhYnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hbnRsZS9zcmMvbGliL3NlcnZpY2VzL2ludGVyZmFjZXMvbmF2LXRhYnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBUYWJiZWRQYWdlVGFiIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgcm91dGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOYXZUYWJzU2VydmljZSB7XG5cbiAgdGFicyhyb3V0ZVBhcmFtczogYW55KTogVGFiYmVkUGFnZVRhYltdO1xuXG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVyb3V0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvc2VydmljZXMvaW50ZXJmYWNlcy9yZXJvdXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUmVyb3V0ZVNlcnZpY2Uge1xuXG4gIHJlcm91dGUoKTogdm9pZDtcblxufVxuIl19
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ObjectService {
|
|
4
|
+
constructor() { }
|
|
5
|
+
removeEmptyAttributes(object = {}) {
|
|
6
|
+
for (var attr in object) {
|
|
7
|
+
if (object[attr] === null || object[attr] === undefined || object[attr] === '') {
|
|
8
|
+
delete object[attr];
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
removeAllAttributes(object = {}) {
|
|
13
|
+
for (var attr in object) {
|
|
14
|
+
delete object[attr];
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
deepMerge(...objects) {
|
|
18
|
+
let result = {};
|
|
19
|
+
objects.forEach((object) => {
|
|
20
|
+
if (!this.isObject(result) || !this.isObject(object)) {
|
|
21
|
+
result = object;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
Object.entries(object).forEach(([key, value]) => {
|
|
25
|
+
if (this.isObject(value)) {
|
|
26
|
+
result[key] = this.deepMerge(result[key] || {}, value);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
result[key] = value;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
deepClone(object) {
|
|
37
|
+
let objectService = this;
|
|
38
|
+
let copyFunction = function (value) {
|
|
39
|
+
if (objectService.isObject(value)) {
|
|
40
|
+
return objectService.deepClone(value);
|
|
41
|
+
}
|
|
42
|
+
else if (value instanceof Array) {
|
|
43
|
+
return value.map((item) => {
|
|
44
|
+
return copyFunction(item);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
return value;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
let result = {};
|
|
52
|
+
Object.entries(object).forEach(([key, value]) => {
|
|
53
|
+
result[key] = copyFunction(value);
|
|
54
|
+
});
|
|
55
|
+
return result;
|
|
56
|
+
}
|
|
57
|
+
isObject(objValue) {
|
|
58
|
+
return objValue && typeof objValue === 'object' && objValue.constructor === Object;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
ObjectService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ObjectService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
62
|
+
ObjectService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ObjectService, providedIn: 'root' });
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ObjectService, decorators: [{
|
|
64
|
+
type: Injectable,
|
|
65
|
+
args: [{
|
|
66
|
+
providedIn: 'root'
|
|
67
|
+
}]
|
|
68
|
+
}], ctorParameters: function () { return []; } });
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9zZXJ2aWNlcy9vYmplY3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sYUFBYTtJQUV4QixnQkFBZSxDQUFDO0lBRVQscUJBQXFCLENBQUMsU0FBYyxFQUFFO1FBQzNDLEtBQUssSUFBSSxJQUFJLElBQUksTUFBTSxFQUFFO1lBQ3ZCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQzlFLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3JCO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sbUJBQW1CLENBQUMsU0FBYyxFQUFFO1FBQ3pDLEtBQUssSUFBSSxJQUFJLElBQUksTUFBTSxFQUFFO1lBQ3ZCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVNLFNBQVMsQ0FBQyxHQUFHLE9BQWM7UUFDaEMsSUFBSSxNQUFNLEdBQVEsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtZQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3BELE1BQU0sR0FBRyxNQUFNLENBQUM7YUFDakI7aUJBQ0k7Z0JBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO29CQUM5QyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQ3hCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7cUJBQ3hEO3lCQUNJO3dCQUNILE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7cUJBQ3JCO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxTQUFTLENBQUMsTUFBVztRQUMxQixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxZQUFZLEdBQXdCLFVBQVMsS0FBVTtZQUN6RCxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pDLE9BQU8sYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN2QztpQkFDSSxJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUU7Z0JBQy9CLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO29CQUM3QixPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUIsQ0FBQyxDQUFDLENBQUM7YUFDSjtpQkFDSTtnQkFDSCxPQUFPLEtBQUssQ0FBQzthQUNkO1FBQ0gsQ0FBQyxDQUFBO1FBRUQsSUFBSSxNQUFNLEdBQVEsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUM5QyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVNLFFBQVEsQ0FBQyxRQUFhO1FBQzNCLE9BQU8sUUFBUSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxRQUFRLENBQUMsV0FBVyxLQUFLLE1BQU0sQ0FBQztJQUNyRixDQUFDOzsyR0FoRVUsYUFBYTsrR0FBYixhQUFhLGNBRlosTUFBTTs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0U2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyByZW1vdmVFbXB0eUF0dHJpYnV0ZXMob2JqZWN0OiBhbnkgPSB7fSkge1xuICAgIGZvciAodmFyIGF0dHIgaW4gb2JqZWN0KSB7XG4gICAgICBpZiAob2JqZWN0W2F0dHJdID09PSBudWxsIHx8IG9iamVjdFthdHRyXSA9PT0gdW5kZWZpbmVkIHx8IG9iamVjdFthdHRyXSA9PT0gJycpIHtcbiAgICAgICAgZGVsZXRlIG9iamVjdFthdHRyXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlQWxsQXR0cmlidXRlcyhvYmplY3Q6IGFueSA9IHt9KSB7XG4gICAgZm9yICh2YXIgYXR0ciBpbiBvYmplY3QpIHtcbiAgICAgIGRlbGV0ZSBvYmplY3RbYXR0cl07XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRlZXBNZXJnZSguLi5vYmplY3RzOiBhbnlbXSkge1xuICAgIGxldCByZXN1bHQ6IGFueSA9IHt9O1xuICAgIG9iamVjdHMuZm9yRWFjaCgob2JqZWN0OiBhbnkpID0+IHtcbiAgICAgIGlmICghdGhpcy5pc09iamVjdChyZXN1bHQpIHx8ICF0aGlzLmlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICAgICAgcmVzdWx0ID0gb2JqZWN0O1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKG9iamVjdCkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IHRoaXMuZGVlcE1lcmdlKHJlc3VsdFtrZXldIHx8IHt9LCB2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgZGVlcENsb25lKG9iamVjdDogYW55KSB7XG4gICAgbGV0IG9iamVjdFNlcnZpY2UgPSB0aGlzO1xuICAgIGxldCBjb3B5RnVuY3Rpb246ICh2YWx1ZTogYW55KSA9PiBhbnkgPSBmdW5jdGlvbih2YWx1ZTogYW55KSB7XG4gICAgICBpZiAob2JqZWN0U2VydmljZS5pc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdFNlcnZpY2UuZGVlcENsb25lKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLm1hcCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGNvcHlGdW5jdGlvbihpdGVtKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCByZXN1bHQ6IGFueSA9IHt9O1xuICAgIE9iamVjdC5lbnRyaWVzKG9iamVjdCkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICByZXN1bHRba2V5XSA9IGNvcHlGdW5jdGlvbih2YWx1ZSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGlzT2JqZWN0KG9ialZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4gb2JqVmFsdWUgJiYgdHlwZW9mIG9ialZhbHVlID09PSAnb2JqZWN0JyAmJiBvYmpWYWx1ZS5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { MatDialog, MatDialogConfig } from '@angular/material/dialog';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
4
|
+
import * as moment from 'moment';
|
|
5
|
+
import { DialogNestedFormComponent } from '../components/form/dialog-nested-form/dialog-nested-form.component';
|
|
6
|
+
import { AnnouncementService } from './announcement.service';
|
|
7
|
+
import { CurrentUserService } from './current-user.service';
|
|
8
|
+
import { WebApiService } from './web-api.service';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/material/dialog";
|
|
11
|
+
import * as i2 from "./announcement.service";
|
|
12
|
+
import * as i3 from "./current-user.service";
|
|
13
|
+
import * as i4 from "./web-api.service";
|
|
14
|
+
const passwordCheckValidityMinutes = 5;
|
|
15
|
+
export class PasswordCheckService {
|
|
16
|
+
constructor(dialog, announcementService, currentUserService, webApiService) {
|
|
17
|
+
this.dialog = dialog;
|
|
18
|
+
this.announcementService = announcementService;
|
|
19
|
+
this.currentUserService = currentUserService;
|
|
20
|
+
this.webApiService = webApiService;
|
|
21
|
+
}
|
|
22
|
+
checkPassword() {
|
|
23
|
+
return new Observable((subscriber) => {
|
|
24
|
+
if (this.hasLatestPasswordCheckExpired()) {
|
|
25
|
+
const dialogRef = this.dialog.open(DialogNestedFormComponent, this.modalConfiguration());
|
|
26
|
+
dialogRef.afterClosed().subscribe(formData => {
|
|
27
|
+
if (!formData) {
|
|
28
|
+
subscriber.next(false);
|
|
29
|
+
subscriber.complete();
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const username = this.currentUserService.sessionData.getValue().username;
|
|
33
|
+
this.validatePassword(username, formData['password']).subscribe((response) => {
|
|
34
|
+
this.setLatestPasswordCheckTime();
|
|
35
|
+
subscriber.next(true);
|
|
36
|
+
subscriber.complete();
|
|
37
|
+
}, (error) => {
|
|
38
|
+
this.announcementService.error('Incorrect password.');
|
|
39
|
+
subscriber.next(false);
|
|
40
|
+
subscriber.complete();
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this.setLatestPasswordCheckTime();
|
|
46
|
+
subscriber.next(true);
|
|
47
|
+
subscriber.complete();
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
getLatestPasswordCheckTime() {
|
|
52
|
+
return this.currentUserService.getLatestPasswordCheckTime();
|
|
53
|
+
}
|
|
54
|
+
setLatestPasswordCheckTime() {
|
|
55
|
+
this.currentUserService.setLatestPasswordCheckTime();
|
|
56
|
+
}
|
|
57
|
+
hasLatestPasswordCheckExpired() {
|
|
58
|
+
const latestPasswordCheckTime = this.getLatestPasswordCheckTime();
|
|
59
|
+
if (!latestPasswordCheckTime)
|
|
60
|
+
return true;
|
|
61
|
+
let now = moment();
|
|
62
|
+
let latestCheckMoment = moment(latestPasswordCheckTime, 'YYYY-MM-DD HH:mm:ss');
|
|
63
|
+
return (now.diff(latestCheckMoment, 'minutes') >= passwordCheckValidityMinutes);
|
|
64
|
+
}
|
|
65
|
+
validatePassword(username, password) {
|
|
66
|
+
const params = { username: username, password: password };
|
|
67
|
+
return this.webApiService.get('auth/password', params);
|
|
68
|
+
}
|
|
69
|
+
modalConfiguration() {
|
|
70
|
+
const dialogConfig = new MatDialogConfig();
|
|
71
|
+
dialogConfig.data = {
|
|
72
|
+
title: 'Enter Password',
|
|
73
|
+
section: {
|
|
74
|
+
singleColumn: true,
|
|
75
|
+
elements: [
|
|
76
|
+
{ label: 'Password', attr: 'password', required: true, type: 'password' }
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
saveButtonText: 'Submit'
|
|
80
|
+
};
|
|
81
|
+
dialogConfig.width = '40%';
|
|
82
|
+
return dialogConfig;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
PasswordCheckService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PasswordCheckService, deps: [{ token: i1.MatDialog }, { token: i2.AnnouncementService }, { token: i3.CurrentUserService }, { token: i4.WebApiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
86
|
+
PasswordCheckService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PasswordCheckService, providedIn: 'root' });
|
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PasswordCheckService, decorators: [{
|
|
88
|
+
type: Injectable,
|
|
89
|
+
args: [{
|
|
90
|
+
providedIn: 'root'
|
|
91
|
+
}]
|
|
92
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.AnnouncementService }, { type: i3.CurrentUserService }, { type: i4.WebApiService }]; } });
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtY2hlY2suc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hbnRsZS9zcmMvbGliL3NlcnZpY2VzL3Bhc3N3b3JkLWNoZWNrLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDL0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7QUFFbEQsTUFBTSw0QkFBNEIsR0FBVyxDQUFDLENBQUM7QUFLL0MsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUFvQixNQUFpQixFQUFVLG1CQUF3QyxFQUNuRSxrQkFBc0MsRUFBVSxhQUE0QjtRQUQ1RSxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUNuRSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFBSSxDQUFDO0lBRTlGLGFBQWE7UUFDbEIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ25DLElBQUksSUFBSSxDQUFDLDZCQUE2QixFQUFFLEVBQUU7Z0JBQ3hDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMs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S0FBSyxHQUFHLEtBQUssQ0FBQztRQUUzQixPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDOztrSEE3RVUsb0JBQW9CO3NIQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs0RkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBEaWFsb2dOZXN0ZWRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9mb3JtL2RpYWxvZy1uZXN0ZWQtZm9ybS9kaWFsb2ctbmVzdGVkLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEFubm91bmNlbWVudFNlcnZpY2UgfSBmcm9tICcuL2Fubm91bmNlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEN1cnJlbnRVc2VyU2VydmljZSB9IGZyb20gJy4vY3VycmVudC11c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgV2ViQXBpU2VydmljZSB9IGZyb20gJy4vd2ViLWFwaS5zZXJ2aWNlJztcblxuY29uc3QgcGFzc3dvcmRDaGVja1ZhbGlkaXR5TWludXRlczogbnVtYmVyID0gNTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGFzc3dvcmRDaGVja1NlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csIHByaXZhdGUgYW5ub3VuY2VtZW50U2VydmljZTogQW5ub3VuY2VtZW50U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjdXJyZW50VXNlclNlcnZpY2U6IEN1cnJlbnRVc2VyU2VydmljZSwgcHJpdmF0ZSB3ZWJBcGlTZXJ2aWNlOiBXZWJBcGlTZXJ2aWNlKSB7IH1cblxuICBwdWJsaWMgY2hlY2tQYXNzd29yZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXIpID0+IHtcbiAgICAgIGlmICh0aGlzLmhhc0xhdGVzdFBhc3N3b3JkQ2hlY2tFeHBpcmVkKCkpIHtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihEaWFsb2dOZXN0ZWRGb3JtQ29tcG9uZW50LCB0aGlzLm1vZGFsQ29uZmlndXJhdGlvbigpKTtcblxuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoZm9ybURhdGEgPT4ge1xuICAgICAgICAgIGlmICghZm9ybURhdGEpIHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChmYWxzZSk7XG4gICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgdXNlcm5hbWUgPSB0aGlzLmN1cnJlbnRVc2VyU2VydmljZS5zZXNzaW9uRGF0YS5nZXRWYWx1ZSgpLnVzZXJuYW1lO1xuICAgICAgICAgIHRoaXMudmFsaWRhdGVQYXNzd29yZCh1c2VybmFtZSwgZm9ybURhdGFbJ3Bhc3N3b3JkJ10pLnN1YnNjcmliZShcbiAgICAgICAgICAgIChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc2V0TGF0ZXN0UGFzc3dvcmRDaGVja1RpbWUoKTtcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5hbm5vdW5jZW1lbnRTZXJ2aWNlLmVycm9yKCdJbmNvcnJlY3QgcGFzc3dvcmQuJyk7XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLnNldExhdGVzdFBhc3N3b3JkQ2hlY2tUaW1lKCk7XG4gICAgICAgIHN1YnNjcmliZXIubmV4dCh0cnVlKTtcbiAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRMYXRlc3RQYXNzd29yZENoZWNrVGltZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRVc2VyU2VydmljZS5nZXRMYXRlc3RQYXNzd29yZENoZWNrVGltZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRMYXRlc3RQYXNzd29yZENoZWNrVGltZSgpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRVc2VyU2VydmljZS5zZXRMYXRlc3RQYXNzd29yZENoZWNrVGltZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNMYXRlc3RQYXNzd29yZENoZWNrRXhwaXJlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBsYXRlc3RQYXNzd29yZENoZWNrVGltZSA9IHRoaXMuZ2V0TGF0ZXN0UGFzc3dvcmRDaGVja1RpbWUoKTtcbiAgICBpZiAoIWxhdGVzdFBhc3N3b3JkQ2hlY2tUaW1lKSByZXR1cm4gdHJ1ZTtcblxuICAgIGxldCBub3cgPSBtb21lbnQoKTtcbiAgICBsZXQgbGF0ZXN0Q2hlY2tNb21lbnQgPSBtb21lbnQobGF0ZXN0UGFzc3dvcmRDaGVja1RpbWUsICdZWVlZLU1NLUREIEhIOm1tOnNzJyk7XG4gICAgcmV0dXJuIChub3cuZGlmZihsYXRlc3RDaGVja01vbWVudCwgJ21pbnV0ZXMnKSA+PSBwYXNzd29yZENoZWNrVmFsaWRpdHlNaW51dGVzKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVQYXNzd29yZCh1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB7IHVzZXJuYW1lOiB1c2VybmFtZSwgcGFzc3dvcmQ6IHBhc3N3b3JkIH07XG4gICAgcmV0dXJuIHRoaXMud2ViQXBpU2VydmljZS5nZXQoJ2F1dGgvcGFzc3dvcmQnLCBwYXJhbXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBtb2RhbENvbmZpZ3VyYXRpb24oKTogTWF0RGlhbG9nQ29uZmlnIHtcbiAgICBjb25zdCBkaWFsb2dDb25maWcgPSBuZXcgTWF0RGlhbG9nQ29uZmlnKCk7XG4gICAgZGlhbG9nQ29uZmlnLmRhdGEgPSB7XG4gICAgICB0aXRsZTogJ0VudGVyIFBhc3N3b3JkJyxcbiAgICAgIHNlY3Rpb246IHtcbiAgICAgICAgc2luZ2xlQ29sdW1uOiB0cnVlLFxuICAgICAgICBlbGVtZW50czogW1xuICAgICAgICAgIHsgbGFiZWw6ICdQYXNzd29yZCcsIGF0dHI6ICdwYXNzd29yZCcsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiAncGFzc3dvcmQnIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHNhdmVCdXR0b25UZXh0OiAnU3VibWl0J1xuICAgIH07XG4gICAgZGlhbG9nQ29uZmlnLndpZHRoID0gJzQwJSc7XG5cbiAgICByZXR1cm4gZGlhbG9nQ29uZmlnO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';
|
|
3
|
+
import { Subject, BehaviorSubject } from 'rxjs';
|
|
4
|
+
import { takeUntil } from 'rxjs/operators';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/cdk/layout";
|
|
7
|
+
export class ScreenSizeService {
|
|
8
|
+
constructor(breakpointObserver) {
|
|
9
|
+
this.breakpointObserver = breakpointObserver;
|
|
10
|
+
this.screenSizes = {
|
|
11
|
+
xs: Breakpoints.XSmall,
|
|
12
|
+
sm: Breakpoints.Small,
|
|
13
|
+
md: Breakpoints.Medium,
|
|
14
|
+
lg: Breakpoints.Large,
|
|
15
|
+
xl: Breakpoints.XLarge,
|
|
16
|
+
};
|
|
17
|
+
this.screenSize = new BehaviorSubject({});
|
|
18
|
+
this.destroyed = new Subject();
|
|
19
|
+
this.breakpointObserver.observe(Object.values(this.screenSizes)).pipe(takeUntil(this.destroyed)).subscribe((breakpointState) => {
|
|
20
|
+
let currentScreenSize = 'default';
|
|
21
|
+
for (const [key, value] of Object.entries(this.screenSizes)) {
|
|
22
|
+
if (breakpointState.breakpoints[value])
|
|
23
|
+
currentScreenSize = key;
|
|
24
|
+
}
|
|
25
|
+
this.screenSize.next(currentScreenSize);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
ngOnDestroy() {
|
|
29
|
+
this.destroyed.next();
|
|
30
|
+
this.destroyed.complete();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
ScreenSizeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ScreenSizeService, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
34
|
+
ScreenSizeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ScreenSizeService, providedIn: 'root' });
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ScreenSizeService, decorators: [{
|
|
36
|
+
type: Injectable,
|
|
37
|
+
args: [{
|
|
38
|
+
providedIn: 'root'
|
|
39
|
+
}]
|
|
40
|
+
}], ctorParameters: function () { return [{ type: i1.BreakpointObserver }]; } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLXNpemUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hbnRsZS9zcmMvbGliL3NlcnZpY2VzL3NjcmVlbi1zaXplLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFtQixNQUFNLHFCQUFxQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBSzNDLE1BQU0sT0FBTyxpQkFBaUI7SUFhNUIsWUFBb0Isa0JBQXNDO1FBQXRDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFYbEQsZ0JBQVcsR0FBUTtZQUN6QixFQUFFLEVBQUUsV0FBVyxDQUFDLE1BQU07WUFDdEIsRUFBRSxFQUFFLFdBQVcsQ0FBQyxLQUFLO1lBQ3JCLEVBQUUsRUFBRSxXQUFXLENBQUMsTUFBTTtZQUN0QixFQUFFLEVBQUUsV0FBVyxDQUFDLEtBQUs7WUFDckIsRUFBRSxFQUFFLFdBQVcsQ0FBQyxNQUFNO1NBQ3ZCLENBQUM7UUFFSyxlQUFVLEdBQXlCLElBQUksZUFBZSxDQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBR3RDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQzdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUNoQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsZUFBZ0MsRUFBRSxFQUFFO1lBQy9FLElBQUksaUJBQWlCLEdBQUcsU0FBUyxDQUFDO1lBQ2xDLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDM0QsSUFBSSxlQUFlLENBQUMsV0FBVyxDQUFDLEtBQWUsQ0FBQztvQkFBRSxpQkFBaUIsR0FBRyxHQUFHLENBQUM7YUFDM0U7WUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7K0dBN0JVLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07NEZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50cywgQnJlYWtwb2ludFN0YXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBTdWJqZWN0LCBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2NyZWVuU2l6ZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgc2NyZWVuU2l6ZXM6IGFueSA9IHtcbiAgICB4czogQnJlYWtwb2ludHMuWFNtYWxsLFxuICAgIHNtOiBCcmVha3BvaW50cy5TbWFsbCxcbiAgICBtZDogQnJlYWtwb2ludHMuTWVkaXVtLFxuICAgIGxnOiBCcmVha3BvaW50cy5MYXJnZSxcbiAgICB4bDogQnJlYWtwb2ludHMuWExhcmdlLFxuICB9O1xuXG4gIHB1YmxpYyBzY3JlZW5TaXplOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih7fSk7XG4gIHByaXZhdGUgZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyKSB7XG4gICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShcbiAgICAgIE9iamVjdC52YWx1ZXModGhpcy5zY3JlZW5TaXplcylcbiAgICApLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSkuc3Vic2NyaWJlKChicmVha3BvaW50U3RhdGU6IEJyZWFrcG9pbnRTdGF0ZSkgPT4ge1xuICAgICAgbGV0IGN1cnJlbnRTY3JlZW5TaXplID0gJ2RlZmF1bHQnO1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5zY3JlZW5TaXplcykpIHtcbiAgICAgICAgaWYgKGJyZWFrcG9pbnRTdGF0ZS5icmVha3BvaW50c1t2YWx1ZSBhcyBzdHJpbmddKSBjdXJyZW50U2NyZWVuU2l6ZSA9IGtleTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zY3JlZW5TaXplLm5leHQoY3VycmVudFNjcmVlblNpemUpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { HttpClient } from '@angular/common/http';
|
|
3
|
+
import { DirectUpload } from "@rails/activestorage";
|
|
4
|
+
import { AngularTokenService } from 'angular-token';
|
|
5
|
+
import { map } from 'rxjs/operators';
|
|
6
|
+
import { ENVIRONMENT } from '../tokens/environment.token';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common/http";
|
|
9
|
+
import * as i2 from "angular-token";
|
|
10
|
+
export class WebApiService {
|
|
11
|
+
constructor(environment, http, angularTokenService) {
|
|
12
|
+
this.environment = environment;
|
|
13
|
+
this.http = http;
|
|
14
|
+
this.angularTokenService = angularTokenService;
|
|
15
|
+
this.apiUrl = this.environment.apiUrl;
|
|
16
|
+
}
|
|
17
|
+
get(path, params = {}, headers = {}) {
|
|
18
|
+
const endpoint = this.absoluteUrl(path);
|
|
19
|
+
return this.http.get(endpoint, { params: params, headers: this.prepareHeaders(headers) });
|
|
20
|
+
}
|
|
21
|
+
create(path, params = {}, headers = {}) {
|
|
22
|
+
const endpoint = this.absoluteUrl(path);
|
|
23
|
+
return this.http.post(endpoint, params, { headers: this.prepareHeaders(headers) });
|
|
24
|
+
}
|
|
25
|
+
update(path, params = {}, headers = {}) {
|
|
26
|
+
const endpoint = this.absoluteUrl(path);
|
|
27
|
+
return this.http.put(endpoint, params, { headers: this.prepareHeaders(headers) });
|
|
28
|
+
}
|
|
29
|
+
destroy(path, params = {}, headers = {}) {
|
|
30
|
+
const endpoint = this.absoluteUrl(path);
|
|
31
|
+
return this.http.delete(endpoint, { params: params, headers: this.prepareHeaders(headers) });
|
|
32
|
+
}
|
|
33
|
+
getBlob(path, params = {}, headers = {}) {
|
|
34
|
+
const endpoint = this.absoluteUrl(path);
|
|
35
|
+
return this.http.get(endpoint, { params: params, headers: this.prepareHeaders(headers), responseType: 'blob' });
|
|
36
|
+
}
|
|
37
|
+
download(path, filename, params = {}, headers = {}) {
|
|
38
|
+
return this.getBlob(path, params, headers).pipe(map(res => {
|
|
39
|
+
const a = document.createElement('a');
|
|
40
|
+
a.href = URL.createObjectURL(res);
|
|
41
|
+
a.download = filename;
|
|
42
|
+
a.click();
|
|
43
|
+
}));
|
|
44
|
+
}
|
|
45
|
+
upload(file, onSuccess, onFailure) {
|
|
46
|
+
const endpoint = this.absoluteUrl('rails/active_storage/direct_uploads');
|
|
47
|
+
const upload = new DirectUpload(file, endpoint, {
|
|
48
|
+
directUploadWillCreateBlobWithXHR: (xhr) => {
|
|
49
|
+
// Add credentials to upload request
|
|
50
|
+
let currentAuthData = this.angularTokenService.currentAuthData;
|
|
51
|
+
if (currentAuthData) {
|
|
52
|
+
xhr.setRequestHeader('access-token', currentAuthData.accessToken);
|
|
53
|
+
xhr.setRequestHeader('token-type', currentAuthData.tokenType);
|
|
54
|
+
xhr.setRequestHeader('client', currentAuthData.client);
|
|
55
|
+
xhr.setRequestHeader('expiry', currentAuthData.expiry);
|
|
56
|
+
xhr.setRequestHeader('uid', currentAuthData.uid);
|
|
57
|
+
xhr.addEventListener('loadend', (event) => {
|
|
58
|
+
localStorage.setItem('accessToken', xhr.getResponseHeader('access-token'));
|
|
59
|
+
localStorage.setItem('client', xhr.getResponseHeader('client'));
|
|
60
|
+
localStorage.setItem('expiry', xhr.getResponseHeader('expiry'));
|
|
61
|
+
localStorage.setItem('tokenType', xhr.getResponseHeader('token-type'));
|
|
62
|
+
localStorage.setItem('uid', xhr.getResponseHeader('uid'));
|
|
63
|
+
this.angularTokenService.getAuthDataFromStorage();
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
upload.create((error, res) => {
|
|
69
|
+
if (error) {
|
|
70
|
+
if (onFailure)
|
|
71
|
+
onFailure(error);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
if (onSuccess)
|
|
75
|
+
onSuccess(res);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
absoluteUrl(url) {
|
|
80
|
+
if (url.startsWith('http'))
|
|
81
|
+
return url;
|
|
82
|
+
return `${this.apiUrl}/${url}`;
|
|
83
|
+
}
|
|
84
|
+
prepareHeaders(headers = {}) {
|
|
85
|
+
return headers;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
WebApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: WebApiService, deps: [{ token: ENVIRONMENT }, { token: i1.HttpClient }, { token: i2.AngularTokenService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
89
|
+
WebApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: WebApiService, providedIn: 'root' });
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: WebApiService, decorators: [{
|
|
91
|
+
type: Injectable,
|
|
92
|
+
args: [{
|
|
93
|
+
providedIn: 'root'
|
|
94
|
+
}]
|
|
95
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
96
|
+
type: Inject,
|
|
97
|
+
args: [ENVIRONMENT]
|
|
98
|
+
}] }, { type: i1.HttpClient }, { type: i2.AngularTokenService }]; } });
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvc2VydmljZXMvd2ViLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFLMUQsTUFBTSxPQUFPLGFBQWE7SUFJeEIsWUFBeUMsV0FBZ0IsRUFBWSxJQUFnQixFQUMvRCxtQkFBd0M7UUFEckIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFBWSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQy9ELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDNUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUN4QyxDQUFDO0lBRU0sR0FBRyxDQUFDLElBQVksRUFBRSxTQUFjLEVBQUUsRUFBRSxVQUFlLEVBQUU7UUFDMUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFTSxNQUFN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QUM7YUFDL0I7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxXQUFXLENBQUMsR0FBVztRQUM1QixJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1lBQUUsT0FBTyxHQUFHLENBQUM7UUFFdkMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVTLGNBQWMsQ0FBQyxVQUFlLEVBQUU7UUFDeEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7MkdBeEZVLGFBQWEsa0JBSUosV0FBVzsrR0FKcEIsYUFBYSxjQUZaLE1BQU07NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUtjLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IERpcmVjdFVwbG9hZCB9IGZyb20gXCJAcmFpbHMvYWN0aXZlc3RvcmFnZVwiO1xuaW1wb3J0IHsgQW5ndWxhclRva2VuU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItdG9rZW4nO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRU5WSVJPTk1FTlQgfSBmcm9tICcuLi90b2tlbnMvZW52aXJvbm1lbnQudG9rZW4nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBXZWJBcGlTZXJ2aWNlIHtcblxuICBwcml2YXRlIGFwaVVybDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRU5WSVJPTk1FTlQpIHByaXZhdGUgZW52aXJvbm1lbnQ6IGFueSwgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBhbmd1bGFyVG9rZW5TZXJ2aWNlOiBBbmd1bGFyVG9rZW5TZXJ2aWNlKSB7XG4gICAgdGhpcy5hcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwaVVybDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQocGF0aDogc3RyaW5nLCBwYXJhbXM6IGFueSA9IHt9LCBoZWFkZXJzOiBhbnkgPSB7fSkge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gdGhpcy5hYnNvbHV0ZVVybChwYXRoKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChlbmRwb2ludCwgeyBwYXJhbXM6IHBhcmFtcywgaGVhZGVyczogdGhpcy5wcmVwYXJlSGVhZGVycyhoZWFkZXJzKSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGUocGF0aDogc3RyaW5nLCBwYXJhbXM6IGFueSA9IHt9LCBoZWFkZXJzOiBhbnkgPSB7fSkge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gdGhpcy5hYnNvbHV0ZVVybChwYXRoKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoZW5kcG9pbnQsIHBhcmFtcywgeyBoZWFkZXJzOiB0aGlzLnByZXBhcmVIZWFkZXJzKGhlYWRlcnMpIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZShwYXRoOiBzdHJpbmcsIHBhcmFtczogYW55ID0ge30sIGhlYWRlcnM6IGFueSA9IHt9KSB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSB0aGlzLmFic29sdXRlVXJsKHBhdGgpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGVuZHBvaW50LCBwYXJhbXMsIHsgaGVhZGVyczogdGhpcy5wcmVwYXJlSGVhZGVycyhoZWFkZXJzKSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KHBhdGg6IHN0cmluZywgcGFyYW1zOiBhbnkgPSB7fSwgaGVhZGVyczogYW55ID0ge30pIHtcbiAgICBjb25zdCBlbmRwb2ludCA9IHRoaXMuYWJzb2x1dGVVcmwocGF0aCk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoZW5kcG9pbnQsIHsgcGFyYW1zOiBwYXJhbXMsIGhlYWRlcnM6IHRoaXMucHJlcGFyZUhlYWRlcnMoaGVhZGVycykgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QmxvYihwYXRoOiBzdHJpbmcsIHBhcmFtczogYW55ID0ge30sIGhlYWRlcnM6IGFueSA9IHt9KSB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSB0aGlzLmFic29sdXRlVXJsKHBhdGgpO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGVuZHBvaW50LCB7IHBhcmFtczogcGFyYW1zLCBoZWFkZXJzOiB0aGlzLnByZXBhcmVIZWFkZXJzKGhlYWRlcnMpLCByZXNwb25zZVR5cGU6ICdibG9iJyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkb3dubG9hZChwYXRoOiBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcsIHBhcmFtczogYW55ID0ge30sIGhlYWRlcnM6IGFueSA9IHt9KSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QmxvYihwYXRoLCBwYXJhbXMsIGhlYWRlcnMpLnBpcGUoXG4gICAgICBtYXAocmVzID0+IHtcbiAgICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgYS5ocmVmID0gVVJMLmNyZWF0ZU9iamVjdFVSTChyZXMpO1xuICAgICAgICBhLmRvd25sb2FkID0gZmlsZW5hbWU7XG4gICAgICAgIGEuY2xpY2soKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGxvYWQoZmlsZTogRmlsZSwgb25TdWNjZXNzOiAocmVzOiBhbnkpID0+IHZvaWQsIG9uRmFpbHVyZTogKGVycm9yOiBzdHJpbmcpID0+IHZvaWQpIHtcbiAgICBjb25zdCBlbmRwb2ludCA9IHRoaXMuYWJzb2x1dGVVcmwoJ3JhaWxzL2FjdGl2ZV9zdG9yYWdlL2RpcmVjdF91cGxvYWRzJyk7XG4gICAgY29uc3QgdXBsb2FkID0gbmV3IERpcmVjdFVwbG9hZChmaWxlLCBlbmRwb2ludCwge1xuICAgICAgZGlyZWN0VXBsb2FkV2lsbENyZWF0ZUJsb2JXaXRoWEhSOiAoeGhyOiBhbnkpID0+IHtcbiAgICAgICAgLy8gQWRkIGNyZWRlbnRpYWxzIHRvIHVwbG9hZCByZXF1ZXN0XG4gICAgICAgIGxldCBjdXJyZW50QXV0aERhdGEgPSB0aGlzLmFuZ3VsYXJUb2tlblNlcnZpY2UuY3VycmVudEF1dGhEYXRhO1xuICAgICAgICBpZiAoY3VycmVudEF1dGhEYXRhKSB7XG4gICAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ2FjY2Vzcy10b2tlbicsIGN1cnJlbnRBdXRoRGF0YS5hY2Nlc3NUb2tlbik7XG4gICAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ3Rva2VuLXR5cGUnLCBjdXJyZW50QXV0aERhdGEudG9rZW5UeXBlKTtcbiAgICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcignY2xpZW50JywgY3VycmVudEF1dGhEYXRhLmNsaWVudCk7XG4gICAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ2V4cGlyeScsIGN1cnJlbnRBdXRoRGF0YS5leHBpcnkpO1xuICAgICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCd1aWQnLCBjdXJyZW50QXV0aERhdGEudWlkKTtcblxuICAgICAgICAgIHhoci5hZGRFdmVudExpc3RlbmVyKCdsb2FkZW5kJywgKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdhY2Nlc3NUb2tlbicsIHhoci5nZXRSZXNwb25zZUhlYWRlcignYWNjZXNzLXRva2VuJykpO1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2NsaWVudCcsIHhoci5nZXRSZXNwb25zZUhlYWRlcignY2xpZW50JykpO1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2V4cGlyeScsIHhoci5nZXRSZXNwb25zZUhlYWRlcignZXhwaXJ5JykpO1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3Rva2VuVHlwZScsIHhoci5nZXRSZXNwb25zZUhlYWRlcigndG9rZW4tdHlwZScpKTtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd1aWQnLCB4aHIuZ2V0UmVzcG9uc2VIZWFkZXIoJ3VpZCcpKTtcblxuICAgICAgICAgICAgdGhpcy5hbmd1bGFyVG9rZW5TZXJ2aWNlLmdldEF1dGhEYXRhRnJvbVN0b3JhZ2UoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG5cbiAgICB1cGxvYWQuY3JlYXRlKChlcnJvcjogYW55LCByZXM6IGFueSkgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIGlmIChvbkZhaWx1cmUpIG9uRmFpbHVyZShlcnJvcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAob25TdWNjZXNzKSBvblN1Y2Nlc3MocmVzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhYnNvbHV0ZVVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHVybC5zdGFydHNXaXRoKCdodHRwJykpIHJldHVybiB1cmw7XG5cbiAgICByZXR1cm4gYCR7dGhpcy5hcGlVcmx9LyR7dXJsfWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJlcGFyZUhlYWRlcnMoaGVhZGVyczogYW55ID0ge30pIHtcbiAgICByZXR1cm4gaGVhZGVycztcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import * as ActionCable from "@rails/actioncable";
|
|
3
|
+
import { AngularTokenService } from 'angular-token';
|
|
4
|
+
import { ENVIRONMENT } from '../tokens/environment.token';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "angular-token";
|
|
7
|
+
export class WebsocketService {
|
|
8
|
+
constructor(environment, angularTokenService) {
|
|
9
|
+
this.environment = environment;
|
|
10
|
+
this.angularTokenService = angularTokenService;
|
|
11
|
+
this.wsUrl = this.environment.wsUrl;
|
|
12
|
+
}
|
|
13
|
+
connect() {
|
|
14
|
+
let currentAuthData = this.angularTokenService.currentAuthData;
|
|
15
|
+
let consumer = ActionCable.createConsumer(`${this.wsUrl}/?token=${currentAuthData.accessToken}&client=${currentAuthData.client}&uid=${currentAuthData.uid}`);
|
|
16
|
+
return {
|
|
17
|
+
subscribe: (channelName, callbacks = {}) => {
|
|
18
|
+
return consumer.subscriptions.create(channelName, {
|
|
19
|
+
// Called when the subscription is ready for use on the server
|
|
20
|
+
connected: () => {
|
|
21
|
+
if (callbacks.connected)
|
|
22
|
+
callbacks.connected();
|
|
23
|
+
},
|
|
24
|
+
// Called when the WebSocket connection is closed
|
|
25
|
+
disconnected: () => {
|
|
26
|
+
if (callbacks.disconnected)
|
|
27
|
+
callbacks.disconnected();
|
|
28
|
+
},
|
|
29
|
+
// Called when the subscription is rejected by the server
|
|
30
|
+
rejected: () => {
|
|
31
|
+
if (callbacks.rejected)
|
|
32
|
+
callbacks.rejected();
|
|
33
|
+
},
|
|
34
|
+
// Called when a message is received
|
|
35
|
+
received: (data) => {
|
|
36
|
+
if (callbacks.received)
|
|
37
|
+
callbacks.received(data);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
},
|
|
41
|
+
disconnect() {
|
|
42
|
+
consumer.disconnect();
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
WebsocketService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: WebsocketService, deps: [{ token: ENVIRONMENT }, { token: i1.AngularTokenService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
48
|
+
WebsocketService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: WebsocketService, providedIn: 'root' });
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: WebsocketService, decorators: [{
|
|
50
|
+
type: Injectable,
|
|
51
|
+
args: [{
|
|
52
|
+
providedIn: 'root'
|
|
53
|
+
}]
|
|
54
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
55
|
+
type: Inject,
|
|
56
|
+
args: [ENVIRONMENT]
|
|
57
|
+
}] }, { type: i1.AngularTokenService }]; } });
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9zZXJ2aWNlcy93ZWJzb2NrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEtBQUssV0FBVyxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQUsxRCxNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLFlBQXlDLFdBQWdCLEVBQVUsbUJBQXdDO1FBQWxFLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBQVUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN6RyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQztRQUUvRCxJQUFJLFFBQVEsR0FBRyxXQUFXLENBQUMsY0FBYyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssV0FBVyxlQUFlLENBQUMsV0FBVyxXQUFXLGVBQWUsQ0FBQyxNQUFNLFFBQVEsZUFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDN0osT0FBTztZQUNMLFNBQVMsRUFBRSxDQUFDLFdBQW1CLEVBQUUsWUFBaUIsRUFBRSxFQUFFLEVBQUU7Z0JBQ3RELE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFO29CQUVoRCw4REFBOEQ7b0JBQzlELFNBQVMsRUFBRSxHQUFHLEVBQUU7d0JBQ2QsSUFBSSxTQUFTLENBQUMsU0FBUzs0QkFBRSxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ2pELENBQUM7b0JBRUQsaURBQWlEO29CQUNqRCxZQUFZLEVBQUUsR0FBRyxFQUFFO3dCQUNqQixJQUFJLFNBQVMsQ0FBQyxZQUFZOzRCQUFFLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDdkQsQ0FBQztvQkFFRCx5REFBeUQ7b0JBQ3pELFFBQVEsRUFBRSxHQUFHLEVBQUU7d0JBQ2IsSUFBSSxTQUFTLENBQUMsUUFBUTs0QkFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQy9DLENBQUM7b0JBRUQsb0NBQW9DO29CQUNwQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTt3QkFDakIsSUFBSSxTQUFTLENBQUMsUUFBUTs0QkFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNuRCxDQUFDO2lCQUVGLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxVQUFVO2dCQUNSLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN4QixDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7OzhHQTNDVSxnQkFBZ0Isa0JBSVAsV0FBVztrSEFKcEIsZ0JBQWdCLGNBRmYsTUFBTTs0RkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFLYyxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIEFjdGlvbkNhYmxlIGZyb20gXCJAcmFpbHMvYWN0aW9uY2FibGVcIjtcbmltcG9ydCB7IEFuZ3VsYXJUb2tlblNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLXRva2VuJztcbmltcG9ydCB7IEVOVklST05NRU5UIH0gZnJvbSAnLi4vdG9rZW5zL2Vudmlyb25tZW50LnRva2VuJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgV2Vic29ja2V0U2VydmljZSB7XG5cbiAgcHJpdmF0ZSB3c1VybDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRU5WSVJPTk1FTlQpIHByaXZhdGUgZW52aXJvbm1lbnQ6IGFueSwgcHJpdmF0ZSBhbmd1bGFyVG9rZW5TZXJ2aWNlOiBBbmd1bGFyVG9rZW5TZXJ2aWNlKSB7XG4gICAgdGhpcy53c1VybCA9IHRoaXMuZW52aXJvbm1lbnQud3NVcmw7XG4gIH1cblxuICBjb25uZWN0KCkge1xuICAgIGxldCBjdXJyZW50QXV0aERhdGEgPSB0aGlzLmFuZ3VsYXJUb2tlblNlcnZpY2UuY3VycmVudEF1dGhEYXRhO1xuXG4gICAgbGV0IGNvbnN1bWVyID0gQWN0aW9uQ2FibGUuY3JlYXRlQ29uc3VtZXIoYCR7dGhpcy53c1VybH0vP3Rva2VuPSR7Y3VycmVudEF1dGhEYXRhLmFjY2Vzc1Rva2VufSZjbGllbnQ9JHtjdXJyZW50QXV0aERhdGEuY2xpZW50fSZ1aWQ9JHtjdXJyZW50QXV0aERhdGEudWlkfWApO1xuICAgIHJldHVybiB7XG4gICAgICBzdWJzY3JpYmU6IChjaGFubmVsTmFtZTogc3RyaW5nLCBjYWxsYmFja3M6IGFueSA9IHt9KSA9PiB7XG4gICAgICAgIHJldHVybiBjb25zdW1lci5zdWJzY3JpcHRpb25zLmNyZWF0ZShjaGFubmVsTmFtZSwge1xuXG4gICAgICAgICAgLy8gQ2FsbGVkIHdoZW4gdGhlIHN1YnNjcmlwdGlvbiBpcyByZWFkeSBmb3IgdXNlIG9uIHRoZSBzZXJ2ZXJcbiAgICAgICAgICBjb25uZWN0ZWQ6ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChjYWxsYmFja3MuY29ubmVjdGVkKSBjYWxsYmFja3MuY29ubmVjdGVkKCk7XG4gICAgICAgICAgfSxcblxuICAgICAgICAgIC8vIENhbGxlZCB3aGVuIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBpcyBjbG9zZWRcbiAgICAgICAgICBkaXNjb25uZWN0ZWQ6ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChjYWxsYmFja3MuZGlzY29ubmVjdGVkKSBjYWxsYmFja3MuZGlzY29ubmVjdGVkKCk7XG4gICAgICAgICAgfSxcblxuICAgICAgICAgIC8vIENhbGxlZCB3aGVuIHRoZSBzdWJzY3JpcHRpb24gaXMgcmVqZWN0ZWQgYnkgdGhlIHNlcnZlclxuICAgICAgICAgIHJlamVjdGVkOiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2tzLnJlamVjdGVkKSBjYWxsYmFja3MucmVqZWN0ZWQoKTtcbiAgICAgICAgICB9LFxuXG4gICAgICAgICAgLy8gQ2FsbGVkIHdoZW4gYSBtZXNzYWdlIGlzIHJlY2VpdmVkXG4gICAgICAgICAgcmVjZWl2ZWQ6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2tzLnJlY2VpdmVkKSBjYWxsYmFja3MucmVjZWl2ZWQoZGF0YSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgIH0pO1xuICAgICAgfSxcblxuICAgICAgZGlzY29ubmVjdCgpIHtcbiAgICAgICAgY29uc3VtZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const ENVIRONMENT = new InjectionToken('environment');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi90b2tlbnMvZW52aXJvbm1lbnQudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQU0sYUFBYSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgRU5WSVJPTk1FTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignZW52aXJvbm1lbnQnKTtcbiJdfQ==
|