@codetectonics/mantle 1.0.6 → 1.0.7-beta.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.
- package/fesm2022/codetectonics-mantle.mjs +6561 -0
- package/fesm2022/codetectonics-mantle.mjs.map +1 -0
- package/index.d.ts +2805 -0
- package/package.json +40 -32
- package/bundles/codetectonics-mantle.umd.js +0 -7979
- package/bundles/codetectonics-mantle.umd.js.map +0 -1
- package/codetectonics-mantle.d.ts +0 -5
- package/esm2015/codetectonics-mantle.js +0 -5
- package/esm2015/lib/components/dashboard/containers/dynamic-dashboard-container/dynamic-dashboard-container.component.js +0 -28
- package/esm2015/lib/components/dashboard/containers/plain-dashboard-container/plain-dashboard-container.component.js +0 -39
- package/esm2015/lib/components/dashboard/dashboard-card/dashboard-card.component.js +0 -141
- package/esm2015/lib/components/dashboard/dashboard-card-search-menu/dashboard-card-search-menu.component.js +0 -54
- package/esm2015/lib/components/dashboard/dynamic-dashboard/dynamic-dashboard.component.js +0 -27
- package/esm2015/lib/components/dashboard/sections/dashboard-section/dashboard-section.component.js +0 -72
- package/esm2015/lib/components/dashboard/widgets/dashboard-info-card/dashboard-info-card.component.js +0 -26
- package/esm2015/lib/components/dashboard/widgets/dashboard-table/dashboard-table-datasource.js +0 -30
- package/esm2015/lib/components/dashboard/widgets/dashboard-table/dashboard-table.component.js +0 -61
- package/esm2015/lib/components/dashboard/widgets/dynamic-chart/dynamic-chart.component.js +0 -91
- package/esm2015/lib/components/dashboard/widgets/dynamic-widget-display/dynamic-widget-display.component.js +0 -29
- package/esm2015/lib/components/details/containers/accordion-details-container/accordion-details-container.component.js +0 -26
- package/esm2015/lib/components/details/containers/dynamic-details-container/dynamic-details-container.component.js +0 -25
- package/esm2015/lib/components/details/containers/plain-details-container/plain-details-container.component.js +0 -25
- package/esm2015/lib/components/details/dialog-details/dialog-details.component.js +0 -83
- package/esm2015/lib/components/details/dialog-nested-details/dialog-nested-details.component.js +0 -41
- package/esm2015/lib/components/details/dynamic-details/dynamic-details.component.js +0 -23
- package/esm2015/lib/components/details/fields/actions-attribute-display/actions-attribute-display.component.js +0 -27
- package/esm2015/lib/components/details/fields/chip-attribute-display/chip-attribute-display.component.js +0 -40
- package/esm2015/lib/components/details/fields/dynamic-attribute-display/dynamic-attribute-display.component.js +0 -46
- package/esm2015/lib/components/details/fields/file-attribute-display/file-attribute-display.component.js +0 -37
- package/esm2015/lib/components/details/fields/icon-attribute-display/icon-attribute-display.component.js +0 -22
- package/esm2015/lib/components/details/fields/image-attribute-display/image-attribute-display.component.js +0 -36
- package/esm2015/lib/components/details/fields/link-attribute-display/link-attribute-display.component.js +0 -29
- package/esm2015/lib/components/details/fields/markdown-attribute-display/markdown-attribute-display.component.js +0 -21
- package/esm2015/lib/components/details/fields/thumbnail-display/thumbnail-display.component.js +0 -33
- package/esm2015/lib/components/details/sections/dynamic-details-section/dynamic-details-section.component.js +0 -46
- package/esm2015/lib/components/details/sections/grid-details-section/grid-details-section.component.js +0 -64
- package/esm2015/lib/components/details/sections/markdown-details-section/markdown-details-section.component.js +0 -19
- package/esm2015/lib/components/details/sections/roster-shift-list-details-section/roster-shift-list-details-section.component.js +0 -21
- package/esm2015/lib/components/details/sections/table-details-section/table-details-section.component.js +0 -42
- package/esm2015/lib/components/form/containers/accordion-form-container/accordion-form-container.component.js +0 -28
- package/esm2015/lib/components/form/containers/dynamic-form-container/dynamic-form-container.component.js +0 -27
- package/esm2015/lib/components/form/containers/plain-form-container/plain-form-container.component.js +0 -27
- package/esm2015/lib/components/form/dialog-form/dialog-form.component.js +0 -102
- package/esm2015/lib/components/form/dialog-nested-form/dialog-nested-form.component.js +0 -66
- package/esm2015/lib/components/form/dynamic-form/dynamic-form.component.js +0 -55
- package/esm2015/lib/components/form/fields/autocomplete-input/autocomplete-input.component.js +0 -70
- package/esm2015/lib/components/form/fields/chip-input/chip-input.component.js +0 -85
- package/esm2015/lib/components/form/fields/colorpicker-input/colorpicker-input.component.js +0 -57
- package/esm2015/lib/components/form/fields/datepicker/datepicker.component.js +0 -92
- package/esm2015/lib/components/form/fields/datetimepicker/datetimepicker.component.js +0 -93
- package/esm2015/lib/components/form/fields/dropdown/dropdown.component.js +0 -73
- package/esm2015/lib/components/form/fields/dynamic-form-field/dynamic-form-field.component.js +0 -40
- package/esm2015/lib/components/form/fields/filepicker/filepicker.component.js +0 -97
- package/esm2015/lib/components/form/fields/image-cropper/image-cropper.component.js +0 -53
- package/esm2015/lib/components/form/fields/imagepicker/imagepicker.component.js +0 -138
- package/esm2015/lib/components/form/fields/markdown-input/markdown-input.component.js +0 -54
- package/esm2015/lib/components/form/fields/number-input/number-input.component.js +0 -92
- package/esm2015/lib/components/form/fields/password-input/password-input.component.js +0 -59
- package/esm2015/lib/components/form/fields/text-input/text-input.component.js +0 -56
- package/esm2015/lib/components/form/fields/textarea/textarea.component.js +0 -59
- package/esm2015/lib/components/form/fields/time-input/time-input.component.js +0 -80
- package/esm2015/lib/components/form/sections/dynamic-form-section/dynamic-form-section.component.js +0 -54
- package/esm2015/lib/components/form/sections/grid-form-section/grid-form-section.component.js +0 -76
- package/esm2015/lib/components/form/sections/roster-shift-list-form-section/roster-shift-list-form-section.component.js +0 -69
- package/esm2015/lib/components/form/sections/table-form-section/table-form-section.component.js +0 -115
- package/esm2015/lib/components/layout-editor/containers/accordion-layout-editor-container/accordion-layout-editor-container.component.js +0 -24
- package/esm2015/lib/components/layout-editor/containers/dynamic-layout-editor-container/dynamic-layout-editor-container.component.js +0 -23
- package/esm2015/lib/components/layout-editor/containers/plain-layout-editor-container/plain-layout-editor-container.component.js +0 -24
- package/esm2015/lib/components/layout-editor/dynamic-layout-editor/dynamic-layout-editor.component.js +0 -23
- package/esm2015/lib/components/layout-editor/elements/dynamic-layout-editor-element/dynamic-layout-editor-element.component.js +0 -38
- package/esm2015/lib/components/layout-editor/elements/layout-editor-field-element/layout-editor-field-element.component.js +0 -76
- package/esm2015/lib/components/layout-editor/elements/layout-editor-table-column-element/layout-editor-table-column-element.component.js +0 -76
- package/esm2015/lib/components/layout-editor/elements/layout-editor-widget-element/layout-editor-widget-element.component.js +0 -19
- package/esm2015/lib/components/layout-editor/sections/dashboard-layout-editor-section/dashboard-layout-editor-section.component.js +0 -21
- package/esm2015/lib/components/layout-editor/sections/dynamic-layout-editor-section/dynamic-layout-editor-section.component.js +0 -25
- package/esm2015/lib/components/layout-editor/sections/grid-layout-editor-section/grid-layout-editor-section.component.js +0 -100
- package/esm2015/lib/components/layout-editor/sections/markdown-layout-editor-section/markdown-layout-editor-section.component.js +0 -19
- package/esm2015/lib/components/layout-editor/sections/table-layout-editor-section/table-layout-editor-section.component.js +0 -73
- package/esm2015/lib/components/navigation/nav-tree/nav-tree.component.js +0 -66
- package/esm2015/lib/components/navigation/paginator/custom-paginator-intl.js +0 -33
- package/esm2015/lib/components/navigation/reroute/reroute.component.js +0 -27
- package/esm2015/lib/components/pages/dashboard-page/dashboard-page.component.js +0 -36
- package/esm2015/lib/components/pages/detail-page/detail-page.component.js +0 -105
- package/esm2015/lib/components/pages/documents-page/documents-page.component.js +0 -106
- package/esm2015/lib/components/pages/export-page/export-page.component.js +0 -63
- package/esm2015/lib/components/pages/form-page/form-page.component.js +0 -131
- package/esm2015/lib/components/pages/layout-editor-page/layout-editor-page.component.js +0 -74
- package/esm2015/lib/components/pages/list-page/list-page-datasource.js +0 -69
- package/esm2015/lib/components/pages/list-page/list-page.component.js +0 -167
- package/esm2015/lib/components/pages/roster-page/roster-gantt.data.js +0 -50
- package/esm2015/lib/components/pages/roster-page/roster-page.component.js +0 -134
- package/esm2015/lib/components/pages/tabbed-page/tabbed-page.component.js +0 -35
- package/esm2015/lib/components/titles/content-title/content-title.component.js +0 -23
- package/esm2015/lib/components/titles/page-title/page-title.component.js +0 -29
- package/esm2015/lib/components/titles/section-title/section-title.component.js +0 -19
- package/esm2015/lib/components/widgets/delete-confirmation-dialog/delete-confirmation-dialog.component.js +0 -37
- package/esm2015/lib/components/widgets/draggable-table/draggable-table-datasource.js +0 -31
- package/esm2015/lib/components/widgets/draggable-table/draggable-table.component.js +0 -79
- package/esm2015/lib/components/widgets/dynamic-table/dynamic-table-datasource.js +0 -89
- package/esm2015/lib/components/widgets/dynamic-table/dynamic-table.component.js +0 -65
- package/esm2015/lib/components/widgets/file-preview-dialog/file-preview-dialog.component.js +0 -42
- package/esm2015/lib/components/widgets/loader/loader.component.js +0 -21
- package/esm2015/lib/components/widgets/qr-code-dialog/qr-code-dialog.component.js +0 -37
- package/esm2015/lib/components/widgets/save-confirmation-dialog/save-confirmation-dialog.component.js +0 -36
- package/esm2015/lib/components/widgets/search-panel/search-panel.component.js +0 -66
- package/esm2015/lib/components/widgets/snackbar/snackbar.component.js +0 -43
- package/esm2015/lib/config/charts/column-chart.data.js +0 -38
- package/esm2015/lib/config/charts/gantt-chart.data.js +0 -18
- package/esm2015/lib/config/charts/pie-chart.data.js +0 -21
- package/esm2015/lib/config/charts/progress-bar-chart.data.js +0 -50
- package/esm2015/lib/config/charts/spline-chart.data.js +0 -24
- package/esm2015/lib/data-structures/dynamic-layout.structure.js +0 -2
- package/esm2015/lib/data-structures/file-attachment.structure.js +0 -2
- package/esm2015/lib/directives/click-stop-propagation.directive.js +0 -19
- package/esm2015/lib/directives/file-dropzone.directive.js +0 -53
- package/esm2015/lib/guards/feature.guard.js +0 -39
- package/esm2015/lib/guards/password-check.guard.js +0 -20
- package/esm2015/lib/guards/session.guard.js +0 -20
- package/esm2015/lib/language-packs/en.data.js +0 -63
- package/esm2015/lib/language-packs/ms.data.js +0 -63
- package/esm2015/lib/mantle.module.js +0 -568
- package/esm2015/lib/material.module.js +0 -314
- package/esm2015/lib/models/screen-size-map.model.js +0 -9
- package/esm2015/lib/pipes/dynamic.pipe.js +0 -45
- package/esm2015/lib/pipes/secure-image.pipe.js +0 -34
- package/esm2015/lib/services/adapters/web-api-crud.adapter.js +0 -22
- package/esm2015/lib/services/adapters/websocket.adapter.js +0 -2
- package/esm2015/lib/services/announcement.service.js +0 -42
- package/esm2015/lib/services/array.service.js +0 -81
- package/esm2015/lib/services/chart.service.js +0 -44
- package/esm2015/lib/services/confirmation.service.js +0 -45
- package/esm2015/lib/services/current-user.service.js +0 -151
- package/esm2015/lib/services/data-broadcast.service.js +0 -18
- package/esm2015/lib/services/dynamic-form.service.js +0 -60
- package/esm2015/lib/services/feature-config.service.js +0 -262
- package/esm2015/lib/services/interfaces/authorisable-feature.service.js +0 -2
- package/esm2015/lib/services/interfaces/dashboard-page.service.js +0 -2
- package/esm2015/lib/services/interfaces/dashboard-widget.service.js +0 -2
- package/esm2015/lib/services/interfaces/detail-page.service.js +0 -2
- package/esm2015/lib/services/interfaces/export-page.service.js +0 -2
- package/esm2015/lib/services/interfaces/form-page.service.js +0 -2
- package/esm2015/lib/services/interfaces/layout-editor-page.service.js +0 -2
- package/esm2015/lib/services/interfaces/list-page.service.js +0 -2
- package/esm2015/lib/services/interfaces/nav-tabs.service.js +0 -2
- package/esm2015/lib/services/interfaces/reroute.service.js +0 -2
- package/esm2015/lib/services/interfaces/roster-page.service.js +0 -2
- package/esm2015/lib/services/interfaces/roster-schedule.service.js +0 -2
- package/esm2015/lib/services/locale.service.js +0 -75
- package/esm2015/lib/services/object.service.js +0 -77
- package/esm2015/lib/services/password-check.service.js +0 -92
- package/esm2015/lib/services/screen-size.service.js +0 -41
- package/esm2015/lib/services/web-api.service.js +0 -97
- package/esm2015/lib/services/websocket.service.js +0 -57
- package/esm2015/lib/tokens/environment.token.js +0 -3
- package/esm2015/public-api.js +0 -148
- package/fesm2015/codetectonics-mantle.js +0 -6945
- package/fesm2015/codetectonics-mantle.js.map +0 -1
- package/lib/components/dashboard/containers/dynamic-dashboard-container/dynamic-dashboard-container.component.d.ts +0 -12
- package/lib/components/dashboard/containers/plain-dashboard-container/plain-dashboard-container.component.d.ts +0 -15
- package/lib/components/dashboard/dashboard-card/dashboard-card.component.d.ts +0 -42
- package/lib/components/dashboard/dashboard-card-search-menu/dashboard-card-search-menu.component.d.ts +0 -20
- package/lib/components/dashboard/dynamic-dashboard/dynamic-dashboard.component.d.ts +0 -11
- package/lib/components/dashboard/sections/dashboard-section/dashboard-section.component.d.ts +0 -28
- package/lib/components/dashboard/widgets/dashboard-info-card/dashboard-info-card.component.d.ts +0 -8
- package/lib/components/dashboard/widgets/dashboard-table/dashboard-table-datasource.d.ts +0 -22
- package/lib/components/dashboard/widgets/dashboard-table/dashboard-table.component.d.ts +0 -29
- package/lib/components/dashboard/widgets/dynamic-chart/dynamic-chart.component.d.ts +0 -20
- package/lib/components/dashboard/widgets/dynamic-widget-display/dynamic-widget-display.component.d.ts +0 -9
- package/lib/components/details/containers/accordion-details-container/accordion-details-container.component.d.ts +0 -11
- package/lib/components/details/containers/dynamic-details-container/dynamic-details-container.component.d.ts +0 -11
- package/lib/components/details/containers/plain-details-container/plain-details-container.component.d.ts +0 -11
- package/lib/components/details/dialog-details/dialog-details.component.d.ts +0 -37
- package/lib/components/details/dialog-nested-details/dialog-nested-details.component.d.ts +0 -22
- package/lib/components/details/dynamic-details/dynamic-details.component.d.ts +0 -10
- package/lib/components/details/fields/actions-attribute-display/actions-attribute-display.component.d.ts +0 -7
- package/lib/components/details/fields/chip-attribute-display/chip-attribute-display.component.d.ts +0 -9
- package/lib/components/details/fields/dynamic-attribute-display/dynamic-attribute-display.component.d.ts +0 -15
- package/lib/components/details/fields/file-attribute-display/file-attribute-display.component.d.ts +0 -12
- package/lib/components/details/fields/icon-attribute-display/icon-attribute-display.component.d.ts +0 -6
- package/lib/components/details/fields/image-attribute-display/image-attribute-display.component.d.ts +0 -12
- package/lib/components/details/fields/link-attribute-display/link-attribute-display.component.d.ts +0 -10
- package/lib/components/details/fields/markdown-attribute-display/markdown-attribute-display.component.d.ts +0 -6
- package/lib/components/details/fields/thumbnail-display/thumbnail-display.component.d.ts +0 -10
- package/lib/components/details/sections/dynamic-details-section/dynamic-details-section.component.d.ts +0 -18
- package/lib/components/details/sections/grid-details-section/grid-details-section.component.d.ts +0 -17
- package/lib/components/details/sections/markdown-details-section/markdown-details-section.component.d.ts +0 -7
- package/lib/components/details/sections/roster-shift-list-details-section/roster-shift-list-details-section.component.d.ts +0 -9
- package/lib/components/details/sections/table-details-section/table-details-section.component.d.ts +0 -14
- package/lib/components/form/containers/accordion-form-container/accordion-form-container.component.d.ts +0 -13
- package/lib/components/form/containers/dynamic-form-container/dynamic-form-container.component.d.ts +0 -13
- package/lib/components/form/containers/plain-form-container/plain-form-container.component.d.ts +0 -13
- package/lib/components/form/dialog-form/dialog-form.component.d.ts +0 -43
- package/lib/components/form/dialog-nested-form/dialog-nested-form.component.d.ts +0 -34
- package/lib/components/form/dynamic-form/dynamic-form.component.d.ts +0 -21
- package/lib/components/form/fields/autocomplete-input/autocomplete-input.component.d.ts +0 -32
- package/lib/components/form/fields/chip-input/chip-input.component.d.ts +0 -27
- package/lib/components/form/fields/colorpicker-input/colorpicker-input.component.d.ts +0 -18
- package/lib/components/form/fields/datepicker/datepicker.component.d.ts +0 -24
- package/lib/components/form/fields/datetimepicker/datetimepicker.component.d.ts +0 -24
- package/lib/components/form/fields/dropdown/dropdown.component.d.ts +0 -31
- package/lib/components/form/fields/dynamic-form-field/dynamic-form-field.component.d.ts +0 -10
- package/lib/components/form/fields/filepicker/filepicker.component.d.ts +0 -27
- package/lib/components/form/fields/image-cropper/image-cropper.component.d.ts +0 -27
- package/lib/components/form/fields/imagepicker/imagepicker.component.d.ts +0 -41
- package/lib/components/form/fields/markdown-input/markdown-input.component.d.ts +0 -17
- package/lib/components/form/fields/number-input/number-input.component.d.ts +0 -27
- package/lib/components/form/fields/password-input/password-input.component.d.ts +0 -19
- package/lib/components/form/fields/text-input/text-input.component.d.ts +0 -18
- package/lib/components/form/fields/textarea/textarea.component.d.ts +0 -19
- package/lib/components/form/fields/time-input/time-input.component.d.ts +0 -22
- package/lib/components/form/sections/dynamic-form-section/dynamic-form-section.component.d.ts +0 -22
- package/lib/components/form/sections/grid-form-section/grid-form-section.component.d.ts +0 -23
- package/lib/components/form/sections/roster-shift-list-form-section/roster-shift-list-form-section.component.d.ts +0 -23
- package/lib/components/form/sections/table-form-section/table-form-section.component.d.ts +0 -24
- package/lib/components/layout-editor/containers/accordion-layout-editor-container/accordion-layout-editor-container.component.d.ts +0 -10
- package/lib/components/layout-editor/containers/dynamic-layout-editor-container/dynamic-layout-editor-container.component.d.ts +0 -10
- package/lib/components/layout-editor/containers/plain-layout-editor-container/plain-layout-editor-container.component.d.ts +0 -10
- package/lib/components/layout-editor/dynamic-layout-editor/dynamic-layout-editor.component.d.ts +0 -10
- package/lib/components/layout-editor/elements/dynamic-layout-editor-element/dynamic-layout-editor-element.component.d.ts +0 -13
- package/lib/components/layout-editor/elements/layout-editor-field-element/layout-editor-field-element.component.d.ts +0 -14
- package/lib/components/layout-editor/elements/layout-editor-table-column-element/layout-editor-table-column-element.component.d.ts +0 -14
- package/lib/components/layout-editor/elements/layout-editor-widget-element/layout-editor-widget-element.component.d.ts +0 -8
- package/lib/components/layout-editor/sections/dashboard-layout-editor-section/dashboard-layout-editor-section.component.d.ts +0 -8
- package/lib/components/layout-editor/sections/dynamic-layout-editor-section/dynamic-layout-editor-section.component.d.ts +0 -10
- package/lib/components/layout-editor/sections/grid-layout-editor-section/grid-layout-editor-section.component.d.ts +0 -21
- package/lib/components/layout-editor/sections/markdown-layout-editor-section/markdown-layout-editor-section.component.d.ts +0 -7
- package/lib/components/layout-editor/sections/table-layout-editor-section/table-layout-editor-section.component.d.ts +0 -14
- package/lib/components/navigation/nav-tree/nav-tree.component.d.ts +0 -46
- package/lib/components/navigation/paginator/custom-paginator-intl.d.ts +0 -12
- package/lib/components/navigation/reroute/reroute.component.d.ts +0 -14
- package/lib/components/pages/dashboard-page/dashboard-page.component.d.ts +0 -17
- package/lib/components/pages/detail-page/detail-page.component.d.ts +0 -36
- package/lib/components/pages/documents-page/documents-page.component.d.ts +0 -41
- package/lib/components/pages/export-page/export-page.component.d.ts +0 -29
- package/lib/components/pages/form-page/form-page.component.d.ts +0 -37
- package/lib/components/pages/layout-editor-page/layout-editor-page.component.d.ts +0 -27
- package/lib/components/pages/list-page/list-page-datasource.d.ts +0 -32
- package/lib/components/pages/list-page/list-page.component.d.ts +0 -49
- package/lib/components/pages/roster-page/roster-gantt.data.d.ts +0 -1
- package/lib/components/pages/roster-page/roster-page.component.d.ts +0 -40
- package/lib/components/pages/tabbed-page/tabbed-page.component.d.ts +0 -16
- package/lib/components/titles/content-title/content-title.component.d.ts +0 -8
- package/lib/components/titles/page-title/page-title.component.d.ts +0 -12
- package/lib/components/titles/section-title/section-title.component.d.ts +0 -7
- package/lib/components/widgets/delete-confirmation-dialog/delete-confirmation-dialog.component.d.ts +0 -21
- package/lib/components/widgets/draggable-table/draggable-table-datasource.d.ts +0 -23
- package/lib/components/widgets/draggable-table/draggable-table.component.d.ts +0 -24
- package/lib/components/widgets/dynamic-table/dynamic-table-datasource.d.ts +0 -40
- package/lib/components/widgets/dynamic-table/dynamic-table.component.d.ts +0 -25
- package/lib/components/widgets/file-preview-dialog/file-preview-dialog.component.d.ts +0 -17
- package/lib/components/widgets/loader/loader.component.d.ts +0 -6
- package/lib/components/widgets/qr-code-dialog/qr-code-dialog.component.d.ts +0 -18
- package/lib/components/widgets/save-confirmation-dialog/save-confirmation-dialog.component.d.ts +0 -15
- package/lib/components/widgets/search-panel/search-panel.component.d.ts +0 -21
- package/lib/components/widgets/snackbar/snackbar.component.d.ts +0 -11
- package/lib/config/charts/column-chart.data.d.ts +0 -37
- package/lib/config/charts/gantt-chart.data.d.ts +0 -17
- package/lib/config/charts/pie-chart.data.d.ts +0 -20
- package/lib/config/charts/progress-bar-chart.data.d.ts +0 -49
- package/lib/config/charts/spline-chart.data.d.ts +0 -23
- package/lib/data-structures/dynamic-layout.structure.d.ts +0 -179
- package/lib/data-structures/file-attachment.structure.d.ts +0 -6
- package/lib/directives/click-stop-propagation.directive.d.ts +0 -6
- package/lib/directives/file-dropzone.directive.d.ts +0 -12
- package/lib/guards/feature.guard.d.ts +0 -15
- package/lib/guards/password-check.guard.d.ts +0 -11
- package/lib/guards/session.guard.d.ts +0 -10
- package/lib/language-packs/en.data.d.ts +0 -62
- package/lib/language-packs/ms.data.d.ts +0 -62
- package/lib/mantle.module.d.ts +0 -117
- package/lib/material.module.d.ts +0 -37
- package/lib/models/screen-size-map.model.d.ts +0 -13
- package/lib/pipes/dynamic.pipe.d.ts +0 -12
- package/lib/pipes/secure-image.pipe.d.ts +0 -11
- package/lib/services/adapters/web-api-crud.adapter.d.ts +0 -64
- package/lib/services/adapters/websocket.adapter.d.ts +0 -6
- package/lib/services/announcement.service.d.ts +0 -11
- package/lib/services/array.service.d.ts +0 -21
- package/lib/services/chart.service.d.ts +0 -14
- package/lib/services/confirmation.service.d.ts +0 -11
- package/lib/services/current-user.service.d.ts +0 -35
- package/lib/services/data-broadcast.service.d.ts +0 -8
- package/lib/services/dynamic-form.service.d.ts +0 -32
- package/lib/services/feature-config.service.d.ts +0 -94
- package/lib/services/interfaces/authorisable-feature.service.d.ts +0 -5
- package/lib/services/interfaces/dashboard-page.service.d.ts +0 -13
- package/lib/services/interfaces/dashboard-widget.service.d.ts +0 -34
- package/lib/services/interfaces/detail-page.service.d.ts +0 -38
- package/lib/services/interfaces/export-page.service.d.ts +0 -6
- package/lib/services/interfaces/form-page.service.d.ts +0 -38
- package/lib/services/interfaces/layout-editor-page.service.d.ts +0 -14
- package/lib/services/interfaces/list-page.service.d.ts +0 -57
- package/lib/services/interfaces/nav-tabs.service.d.ts +0 -7
- package/lib/services/interfaces/reroute.service.d.ts +0 -3
- package/lib/services/interfaces/roster-page.service.d.ts +0 -20
- package/lib/services/interfaces/roster-schedule.service.d.ts +0 -22
- package/lib/services/locale.service.d.ts +0 -21
- package/lib/services/object.service.d.ts +0 -13
- package/lib/services/password-check.service.d.ts +0 -23
- package/lib/services/screen-size.service.d.ts +0 -14
- package/lib/services/web-api.service.d.ts +0 -21
- package/lib/services/websocket.service.d.ts +0 -20
- package/lib/tokens/environment.token.d.ts +0 -2
- package/public-api.d.ts +0 -144
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/router";
|
|
4
|
-
import * as i2 from "../../../services/announcement.service";
|
|
5
|
-
import * as i3 from "@angular/material/button";
|
|
6
|
-
import * as i4 from "@angular/material/icon";
|
|
7
|
-
import * as i5 from "../../titles/content-title/content-title.component";
|
|
8
|
-
import * as i6 from "../../details/dynamic-details/dynamic-details.component";
|
|
9
|
-
import * as i7 from "@angular/material/progress-spinner";
|
|
10
|
-
import * as i8 from "@angular/flex-layout/flex";
|
|
11
|
-
import * as i9 from "@angular/common";
|
|
12
|
-
import * as i10 from "@angular/flex-layout/extended";
|
|
13
|
-
import * as i11 from "@angular/material/form-field";
|
|
14
|
-
import * as i12 from "@ngx-translate/core";
|
|
15
|
-
export class DetailPageComponent {
|
|
16
|
-
constructor(route, injector, announcementService) {
|
|
17
|
-
this.route = route;
|
|
18
|
-
this.injector = injector;
|
|
19
|
-
this.announcementService = announcementService;
|
|
20
|
-
this.bottomLeftButtons = [];
|
|
21
|
-
this.bottomRightButtons = [];
|
|
22
|
-
this.isTabbedContent = false;
|
|
23
|
-
const detailPageServiceInjectionToken = this.route.snapshot.data['detailPageService'];
|
|
24
|
-
this.detailPageService = this.injector.get(detailPageServiceInjectionToken);
|
|
25
|
-
this.detailPageService.setParentComponent(this);
|
|
26
|
-
this.exportOptions = this.detailPageService.detailPageExportOptions();
|
|
27
|
-
this.isTabbedContent = this.route.snapshot.data['isTabbedContent'];
|
|
28
|
-
}
|
|
29
|
-
ngOnInit() {
|
|
30
|
-
this.pullContent();
|
|
31
|
-
}
|
|
32
|
-
pullContent() {
|
|
33
|
-
this.route.params.subscribe(params => {
|
|
34
|
-
this.id = this.route.snapshot.params['id'];
|
|
35
|
-
this.detailPageService.get(this.id).subscribe((res) => {
|
|
36
|
-
this.loadContent(res);
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
loadContent(response) {
|
|
41
|
-
this.header = response.header;
|
|
42
|
-
this.content = response.content;
|
|
43
|
-
this.detailPageService.onDetailContentLoaded(this.content);
|
|
44
|
-
this.content.containers.forEach((container) => {
|
|
45
|
-
container.sections.forEach((section) => {
|
|
46
|
-
this.loadSectionActions(section);
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
this.loadAdditionalButtons(this.content.data);
|
|
50
|
-
this.exportOptions = this.detailPageService.detailPageExportOptions(this.content.data);
|
|
51
|
-
}
|
|
52
|
-
loadSectionActions(section) {
|
|
53
|
-
let sectionActions = this.detailPageService.detailPageSectionActions(section.slug);
|
|
54
|
-
if (sectionActions.length == 0)
|
|
55
|
-
return;
|
|
56
|
-
if (section.layout == 'table') {
|
|
57
|
-
let actionsColumn = { header: '', attr: 'table_row_actions', type: 'actions', options: { actions: sectionActions } };
|
|
58
|
-
section.elements.push(actionsColumn);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
loadAdditionalButtons(record) {
|
|
62
|
-
let additionalDetailPageButtons = this.detailPageService.additionalDetailPageButtons(record);
|
|
63
|
-
this.bottomLeftButtons = additionalDetailPageButtons.filter(button => {
|
|
64
|
-
return button.position == 'left';
|
|
65
|
-
});
|
|
66
|
-
this.bottomRightButtons = additionalDetailPageButtons.filter(button => {
|
|
67
|
-
return button.position == 'right';
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
onEditClicked() {
|
|
71
|
-
this.detailPageService.openForm({ id: this.id });
|
|
72
|
-
}
|
|
73
|
-
onCloneClicked() {
|
|
74
|
-
this.detailPageService.openForm({}, { clone_id: this.id });
|
|
75
|
-
}
|
|
76
|
-
onBackClicked() {
|
|
77
|
-
this.detailPageService.openList();
|
|
78
|
-
}
|
|
79
|
-
onDeleteClicked() {
|
|
80
|
-
this.detailPageService.delete(this.id, () => { this.isDeleteInProgress = true; }, (res) => { this.onDeleteSuccess(res); }, (res) => { this.onDeleteFailure(res); });
|
|
81
|
-
}
|
|
82
|
-
onDeleteSuccess(res) {
|
|
83
|
-
this.announcementService.success('mantle.messages.delete_successful');
|
|
84
|
-
this.back();
|
|
85
|
-
this.isDeleteInProgress = false;
|
|
86
|
-
}
|
|
87
|
-
onDeleteFailure(res) {
|
|
88
|
-
this.announcementService.error('mantle.messages.delete_failed');
|
|
89
|
-
this.isDeleteInProgress = false;
|
|
90
|
-
}
|
|
91
|
-
back() {
|
|
92
|
-
this.detailPageService.openList();
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
DetailPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: DetailPageComponent, deps: [{ token: i1.ActivatedRoute }, { token: i0.Injector }, { token: i2.AnnouncementService }], target: i0.ɵɵFactoryTarget.Component });
|
|
96
|
-
DetailPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: DetailPageComponent, selector: "mantle-detail-page", ngImport: i0, template: "<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", styles: [".edit-button{margin-bottom:8px}.export-button{display:block;width:144px;background-color:transparent;white-space:nowrap;padding:0;margin:16px 0 16px auto}.export-button .export-button-label{display:inline-block;width:100px;white-space:normal;text-align:right;text-transform:uppercase;font-weight:normal;line-height:1.25rem;margin-right:.25rem}.export-button .mat-icon{height:auto;width:auto;font-size:2.5rem}.additional-button{min-width:140px}.clone-button{min-width:140px}.in-progress-button .mat-spinner{position:absolute;top:10px;right:12px}\n"], components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.ContentTitleComponent, selector: "mantle-content-title", inputs: ["thumbnail", "title"] }, { type: i6.DynamicDetailsComponent, selector: "mantle-dynamic-details", inputs: ["detailPageService", "content"] }, { type: i7.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i8.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i10.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i8.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i8.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.MatSuffix, selector: "[matSuffix]" }], pipes: { "translate": i12.TranslatePipe } });
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: DetailPageComponent, decorators: [{
|
|
98
|
-
type: Component,
|
|
99
|
-
args: [{
|
|
100
|
-
selector: 'mantle-detail-page',
|
|
101
|
-
templateUrl: './detail-page.component.html',
|
|
102
|
-
styleUrls: ['./detail-page.component.scss']
|
|
103
|
-
}]
|
|
104
|
-
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i0.Injector }, { type: i2.AnnouncementService }]; } });
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9wYWdlcy9kZXRhaWwtcGFnZS9kZXRhaWwtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2VzL2RldGFpbC1wYWdlL2RldGFpbC1wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQWM1RCxNQUFNLE9BQU8sbUJBQW1CO0lBYTlCLFlBQW9CLEtBQXFCLEVBQVUsUUFBa0IsRUFDakQsbUJBQXdDO1FBRHhDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNqRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBTnJELHNCQUFpQixHQUF1QixFQUFFLENBQUM7UUFDM0MsdUJBQWtCLEdBQXVCLEVBQUUsQ0FBQztRQUM1QyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUt0QyxNQUFNLCtCQUErQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBb0IsK0JBQStCLENBQUMsQ0FBQztRQUMvRixJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUN0RSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FB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bUIsMERDZGhDLDRnSkF3R0E7MkZEMUZhLG1CQUFtQjtrQkFML0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixXQUFXLEVBQUUsOEJBQThCO29CQUMzQyxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztpQkFDNUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIER5bmFtaWNMYXlvdXRDb250YWluZXIsIER5bmFtaWNMYXlvdXRTZWN0aW9uLCBEeW5hbWljTGF5b3V0VGFibGVTZWN0aW9uXG59IGZyb20gJy4uLy4uLy4uL2RhdGEtc3RydWN0dXJlcy9keW5hbWljLWxheW91dC5zdHJ1Y3R1cmUnO1xuaW1wb3J0IHsgQW5ub3VuY2VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Fubm91bmNlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IERldGFpbFBhZ2VCdXR0b24sIERldGFpbFBhZ2VFeHBvcnRPcHRpb24sIERldGFpbFBhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW50ZXJmYWNlcy9kZXRhaWwtcGFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFdlYkFwaURlbGV0ZVJlc3BvbnNlLCBXZWJBcGlEZXRhaWxzUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hZGFwdGVycy93ZWItYXBpLWNydWQuYWRhcHRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hbnRsZS1kZXRhaWwtcGFnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kZXRhaWwtcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RldGFpbC1wYWdlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRGV0YWlsUGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIGRldGFpbFBhZ2VTZXJ2aWNlOiBEZXRhaWxQYWdlU2VydmljZTtcblxuICBwdWJsaWMgaWQhOiBzdHJpbmc7XG4gIHB1YmxpYyBoZWFkZXI6IGFueTtcbiAgcHVibGljIGNvbnRlbnQhOiBhbnk7XG4gIHB1YmxpYyBleHBvcnRPcHRpb25zITogRGV0YWlsUGFnZUV4cG9ydE9wdGlvbltdO1xuICBwdWJsaWMgYm90dG9tTGVmdEJ1dHRvbnM6IERldGFpbFBhZ2VCdXR0b25bXSA9IFtdO1xuICBwdWJsaWMgYm90dG9tUmlnaHRCdXR0b25zOiBEZXRhaWxQYWdlQnV0dG9uW10gPSBbXTtcbiAgcHVibGljIGlzVGFiYmVkQ29udGVudDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgaXNEZWxldGVJblByb2dyZXNzITogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgIHByaXZhdGUgYW5ub3VuY2VtZW50U2VydmljZTogQW5ub3VuY2VtZW50U2VydmljZSkge1xuICAgIGNvbnN0IGRldGFpbFBhZ2VTZXJ2aWNlSW5qZWN0aW9uVG9rZW4gPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbJ2RldGFpbFBhZ2VTZXJ2aWNlJ107XG4gICAgdGhpcy5kZXRhaWxQYWdlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0PERldGFpbFBhZ2VTZXJ2aWNlPihkZXRhaWxQYWdlU2VydmljZUluamVjdGlvblRva2VuKTtcbiAgICB0aGlzLmRldGFpbFBhZ2VTZXJ2aWNlLnNldFBhcmVudENvbXBvbmVudCh0aGlzKTtcbiAgICB0aGlzLmV4cG9ydE9wdGlvbnMgPSB0aGlzLmRldGFpbFBhZ2VTZXJ2aWNlLmRldGFpbFBhZ2VFeHBvcnRPcHRpb25zKCk7XG4gICAgdGhpcy5pc1RhYmJlZENvbnRlbnQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbJ2lzVGFiYmVkQ29udGVudCddO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wdWxsQ29udGVudCgpO1xuICB9XG5cbiAgcHVsbENvbnRlbnQoKSB7XG4gICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICB0aGlzLmlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ2lkJ107XG5cbiAgICAgIHRoaXMuZGV0YWlsUGFnZVNlcnZpY2UuZ2V0KHRoaXMuaWQpLnN1YnNjcmliZShcbiAgICAgICAgKHJlczogV2ViQXBpRGV0YWlsc1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkQ29udGVudChyZXMpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgbG9hZENvbnRlbnQocmVzcG9uc2U6IGFueSkge1xuICAgIHRoaXMuaGVhZGVyID0gcmVzcG9uc2UuaGVhZGVyO1xuICAgIHRoaXMuY29udGVudCA9IHJlc3BvbnNlLmNvbnRlbnQ7XG5cbiAgICB0aGlzLmRldGFpbFBhZ2VTZXJ2aWNlLm9uRGV0YWlsQ29udGVudExvYWRlZCh0aGlzLmNvbnRlbnQpO1xuXG4gICAgdGhpcy5jb250ZW50LmNvbnRhaW5lcnMuZm9yRWFjaCgoY29udGFpbmVyOiBEeW5hbWljTGF5b3V0Q29udGFpbmVyKSA9PiB7XG4gICAgICBjb250YWluZXIuc2VjdGlvbnMuZm9yRWFjaCgoc2VjdGlvbjogRHluYW1pY0xheW91dFNlY3Rpb24pID0+IHtcbiAgICAgICAgdGhpcy5sb2FkU2VjdGlvbkFjdGlvbnMoc2VjdGlvbik7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHRoaXMubG9hZEFkZGl0aW9uYWxCdXR0b25zKHRoaXMuY29udGVudC5kYXRhKTtcbiAgICB0aGlzLmV4cG9ydE9wdGlvbnMgPSB0aGlzLmRldGFpbFBhZ2VTZXJ2aWNlLmRldGFpbFBhZ2VFeHBvcnRPcHRpb25zKHRoaXMuY29udGVudC5kYXRhKTtcbiAgfVxuXG4gIGxvYWRTZWN0aW9uQWN0aW9ucyhzZWN0aW9uOiBEeW5hbWljTGF5b3V0U2VjdGlvbikge1xuICAgIGxldCBzZWN0aW9uQWN0aW9ucyA9IHRoaXMuZGV0YWlsUGFnZVNlcnZpY2UuZGV0YWlsUGFnZVNlY3Rpb25BY3Rpb25zKHNlY3Rpb24uc2x1ZyEpO1xuICAgIGlmIChzZWN0aW9uQWN0aW9ucy5sZW5ndGggPT0gMCkgcmV0dXJuO1xuXG4gICAgaWYgKHNlY3Rpb24ubGF5b3V0ID09ICd0YWJsZScpIHtcbiAgICAgIGxldCBhY3Rpb25zQ29sdW1uID0geyBoZWFkZXI6ICcnLCBhdHRyOiAndGFibGVfcm93X2FjdGlvbnMnLCB0eXBlOiAnYWN0aW9ucycsIG9wdGlvbnM6IHsgYWN0aW9uczogc2VjdGlvbkFjdGlvbnMgfSB9O1xuICAgICAgKHNlY3Rpb24gYXMgRHluYW1pY0xheW91dFRhYmxlU2VjdGlvbikuZWxlbWVudHMucHVzaChhY3Rpb25zQ29sdW1uKTtcbiAgICB9XG4gIH1cblxuICBsb2FkQWRkaXRpb25hbEJ1dHRvbnMocmVjb3JkOiBhbnkpIHtcbiAgICBsZXQgYWRkaXRpb25hbERldGFpbFBhZ2VCdXR0b25zID0gdGhpcy5kZXRhaWxQYWdlU2VydmljZS5hZGRpdGlvbmFsRGV0YWlsUGFnZUJ1dHRvbnMocmVjb3JkKTtcbiAgICB0aGlzLmJvdHRvbUxlZnRCdXR0b25zID0gYWRkaXRpb25hbERldGFpbFBhZ2VCdXR0b25zLmZpbHRlcihidXR0b24gPT4ge1xuICAgICAgcmV0dXJuIGJ1dHRvbi5wb3NpdGlvbiA9PSAnbGVmdCc7XG4gICAgfSk7XG4gICAgdGhpcy5ib3R0b21SaWdodEJ1dHRvbnMgPSBhZGRpdGlvbmFsRGV0YWlsUGFnZUJ1dHRvbnMuZmlsdGVyKGJ1dHRvbiA9PiB7XG4gICAgICByZXR1cm4gYnV0dG9uLnBvc2l0aW9uID09ICdyaWdodCc7XG4gICAgfSk7XG4gIH1cblxuICBvbkVkaXRDbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuZGV0YWlsUGFnZVNlcnZpY2Uub3BlbkZvcm0oeyBpZDogdGhpcy5pZCB9KTtcbiAgfVxuXG4gIG9uQ2xvbmVDbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuZGV0YWlsUGFnZVNlcnZpY2Uub3BlbkZvcm0oe30sIHsgY2xvbmVfaWQ6IHRoaXMuaWQgfSk7XG4gIH1cblxuICBvbkJhY2tDbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuZGV0YWlsUGFnZVNlcnZpY2Uub3Blbkxpc3QoKTtcbiAgfVxuXG4gIG9uRGVsZXRlQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmRldGFpbFBhZ2VTZXJ2aWNlLmRlbGV0ZShcbiAgICAgIHRoaXMuaWQsXG4gICAgICAoKSA9PiB7IHRoaXMuaXNEZWxldGVJblByb2dyZXNzID0gdHJ1ZTsgfSxcbiAgICAgIChyZXM6IFdlYkFwaURlbGV0ZVJlc3BvbnNlKSA9PiB7IHRoaXMub25EZWxldGVTdWNjZXNzKHJlcyk7IH0sXG4gICAgICAocmVzOiBXZWJBcGlEZWxldGVSZXNwb25zZSkgPT4geyB0aGlzLm9uRGVsZXRlRmFpbHVyZShyZXMpOyB9XG4gICAgKTtcbiAgfVxuXG4gIG9uRGVsZXRlU3VjY2VzcyhyZXM6IFdlYkFwaURlbGV0ZVJlc3BvbnNlKTogdm9pZCB7XG4gICAgdGhpcy5hbm5vdW5jZW1lbnRTZXJ2aWNlLnN1Y2Nlc3MoJ21hbnRsZS5tZXNzYWdlcy5kZWxldGVfc3VjY2Vzc2Z1bCcpO1xuICAgIHRoaXMuYmFjaygpO1xuXG4gICAgdGhpcy5pc0RlbGV0ZUluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgfVxuXG4gIG9uRGVsZXRlRmFpbHVyZShyZXM6IFdlYkFwaURlbGV0ZVJlc3BvbnNlKTogdm9pZCB7XG4gICAgdGhpcy5hbm5vdW5jZW1lbnRTZXJ2aWNlLmVycm9yKCdtYW50bGUubWVzc2FnZXMuZGVsZXRlX2ZhaWxlZCcpO1xuXG4gICAgdGhpcy5pc0RlbGV0ZUluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgfVxuXG4gIGJhY2soKSB7XG4gICAgdGhpcy5kZXRhaWxQYWdlU2VydmljZS5vcGVuTGlzdCgpO1xuICB9XG5cbn1cbiIsIjxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3RyZXRjaFwiIGNsYXNzPVwiZnVsbC1oZWlnaHQtbWluXCIgW25nQ2xhc3NdPVwieydwYWdlIGZ1bGwtaGVpZ2h0LW9ubHkgdmVydGljYWxseS1zY3JvbGxhYmxlJzogIWlzVGFiYmVkQ29udGVudH1cIj5cbiAgPGRpdiBmeEZsZXg9XCIwIDAgYXV0b1wiIGNsYXNzPVwicGFnZS1oZWFkZXJcIj5cbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBzdGFydFwiIGZ4TGF5b3V0R2FwPVwiMTZweFwiPlxuICAgICAgPGRpdiBmeEZsZXg9XCIwIDAgYXV0b1wiICpuZ0lmPVwiIWRldGFpbFBhZ2VTZXJ2aWNlLmhpZGVCYWNrQnV0dG9uXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJiYWNrLWJ1dHRvblwiIG1hdC1taW5pLWZhYiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uQmFja0NsaWNrZWQoKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5hcnJvd19iYWNrPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBmeEZsZXg9XCIxIDEgYXV0b1wiPlxuICAgICAgICA8bWFudGxlLWNvbnRlbnQtdGl0bGUgKm5nSWY9XCJoZWFkZXJcIiBbdGh1bWJuYWlsXT1cImhlYWRlci50aHVtYm5haWxcIiBbdGl0bGVdPVwiaGVhZGVyLnRpdGxlXCI+PC9tYW50bGUtY29udGVudC10aXRsZT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGZ4RmxleD1cIjAgMCBhdXRvXCIgKm5nSWY9XCJkZXRhaWxQYWdlU2VydmljZS5zaG93RWRpdEJ1dHRvbiAmJiBkZXRhaWxQYWdlU2VydmljZS5jYW5Xcml0ZSgpXCI+XG4gICAgICAgIDxidXR0b24gbWF0LW1pbmktZmFiXG4gICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImVkaXQtYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkVkaXRDbGlja2VkKClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRldGFpbFBhZ2VTZXJ2aWNlLmlzQ29tbWl0SW5Qcm9ncmVzc1wiPlxuICAgICAgICAgIDxtYXQtaWNvbj5lZGl0PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBmeEZsZXg9XCIxIDAgYXV0b1wiIGNsYXNzPVwibWFpbi1jb250ZW50XCI+XG4gICAgPG1hbnRsZS1keW5hbWljLWRldGFpbHMgW2NvbnRlbnRdPVwiY29udGVudFwiIFtkZXRhaWxQYWdlU2VydmljZV09XCJkZXRhaWxQYWdlU2VydmljZVwiPjwvbWFudGxlLWR5bmFtaWMtZGV0YWlscz5cbiAgPC9kaXY+XG5cbiAgPGRpdiBmeEZsZXg9XCIwIDAgYXV0b1wiIGNsYXNzPVwicGFnZS1mb290ZXJcIj5cbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBmeExheW91dEdhcD1cIjE2cHhcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBib3R0b21MZWZ0QnV0dG9uc1wiPlxuICAgICAgICA8ZGl2IGZ4RmxleD1cIjAgMCBhdXRvXCIgKm5nSWY9XCJidXR0b24uc2hvd1wiPlxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgICAgY29sb3I9XCJ7eyBidXR0b24uY29sb3IgfX1cIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhZGRpdGlvbmFsLWJ1dHRvblwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2luLXByb2dyZXNzLWJ1dHRvbic6IGJ1dHRvbi5pc0luUHJvZ3Jlc3MoKSB9XCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRldGFpbFBhZ2VTZXJ2aWNlLmlzQ29tbWl0SW5Qcm9ncmVzcyB8fCBidXR0b24uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiYnV0dG9uLm9uQ2xpY2soaWQpXCI+XG4gICAgICAgICAgICB7eyBidXR0b24ubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDxtYXQtc3Bpbm5lciAqbmdJZj1cImJ1dHRvbi5pc0luUHJvZ3Jlc3MoKVwiIG1hdFN1ZmZpeCBbZGlhbWV0ZXJdPVwiMTZcIj48L21hdC1zcGlubmVyPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudFwiPlxuICAgICAgICA8ZGl2IGZ4RmxleD1cIjAgMCBhdXRvXCIgKm5nRm9yPVwibGV0IGV4cG9ydE9wdGlvbiBvZiBleHBvcnRPcHRpb25zXCI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIihleHBvcnRPcHRpb24uc2hvdyA9PSBudWxsKSB8fCAoZXhwb3J0T3B0aW9uLnNob3cpXCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiZXhwb3J0LWJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJleHBvcnRPcHRpb24uZXhwb3J0KGNvbnRlbnQuZGF0YSkuc3Vic2NyaWJlKClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGV0YWlsUGFnZVNlcnZpY2UuaXNDb21taXRJblByb2dyZXNzXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXhwb3J0LWJ1dHRvbi1sYWJlbFwiPnt7IGV4cG9ydE9wdGlvbi5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uPmRvd25sb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8ZGl2IGZ4RmxleD1cIjEgMSBhdXRvXCI+PC9kaXY+XG5cbiAgICAgIDxkaXYgZnhGbGV4PVwiMCAwIGF1dG9cIiAqbmdJZj1cImRldGFpbFBhZ2VTZXJ2aWNlLnNob3dDbG9uZUJ1dHRvbiAmJiBkZXRhaWxQYWdlU2VydmljZS5jYW5Xcml0ZSgpXCI+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJjbG9uZS1idXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xvbmVDbGlja2VkKClcIj5cbiAgICAgICAgICB7eyAnbWFudGxlLmJ1dHRvbnMuY2xvbmUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBib3R0b21SaWdodEJ1dHRvbnNcIj5cbiAgICAgICAgPGRpdiBmeEZsZXg9XCIwIDAgYXV0b1wiICpuZ0lmPVwiYnV0dG9uLnNob3dcIj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICAgIGNvbG9yPVwie3sgYnV0dG9uLmNvbG9yIH19XCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYWRkaXRpb25hbC1idXR0b25cIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpbi1wcm9ncmVzcy1idXR0b24nOiBidXR0b24uaXNJblByb2dyZXNzKCkgfVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkZXRhaWxQYWdlU2VydmljZS5pc0NvbW1pdEluUHJvZ3Jlc3MgfHwgYnV0dG9uLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImJ1dHRvbi5vbkNsaWNrKGlkKVwiPlxuICAgICAgICAgICAge3sgYnV0dG9uLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8bWF0LXNwaW5uZXIgKm5nSWY9XCJidXR0b24uaXNJblByb2dyZXNzKClcIiBtYXRTdWZmaXggW2RpYW1ldGVyXT1cIjE2XCI+PC9tYXQtc3Bpbm5lcj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPGRpdiBmeEZsZXg9XCIwIDAgYXV0b1wiICpuZ0lmPVwiZGV0YWlsUGFnZVNlcnZpY2Uuc2hvd0RlbGV0ZUJ1dHRvbiAmJiBkZXRhaWxQYWdlU2VydmljZS5jYW5Xcml0ZSgpXCI+XG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvblxuICAgICAgICAgICAgY29sb3I9XCJ3YXJuXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2luLXByb2dyZXNzLWJ1dHRvbic6IGlzRGVsZXRlSW5Qcm9ncmVzcyB9XCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkZXRhaWxQYWdlU2VydmljZS5pc0NvbW1pdEluUHJvZ3Jlc3NcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlQ2xpY2tlZCgpXCI+XG4gICAgICAgICAge3sgJ21hbnRsZS5idXR0b25zLmRlbGV0ZScgfCB0cmFuc2xhdGUgfX0ge3sgZGV0YWlsUGFnZVNlcnZpY2Uubm91bigpIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPG1hdC1zcGlubmVyICpuZ0lmPVwiaXNEZWxldGVJblByb2dyZXNzXCIgbWF0U3VmZml4IFtkaWFtZXRlcl09XCIxNlwiPjwvbWF0LXNwaW5uZXI+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { Component, ViewChild } from '@angular/core';
|
|
2
|
-
import { MatPaginator } from '@angular/material/paginator';
|
|
3
|
-
import { MatSort } from '@angular/material/sort';
|
|
4
|
-
import { MatTable } from '@angular/material/table';
|
|
5
|
-
import { SearchPanelComponent } from '../../../components/widgets/search-panel/search-panel.component';
|
|
6
|
-
import { ListPageDataSource } from '../../../components/pages/list-page/list-page-datasource';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/router";
|
|
9
|
-
import * as i2 from "../../../services/announcement.service";
|
|
10
|
-
import * as i3 from "../../../services/web-api.service";
|
|
11
|
-
import * as i4 from "../../../services/screen-size.service";
|
|
12
|
-
import * as i5 from "../../titles/page-title/page-title.component";
|
|
13
|
-
import * as i6 from "@angular/material/sidenav";
|
|
14
|
-
import * as i7 from "@angular/material/button";
|
|
15
|
-
import * as i8 from "../../widgets/search-panel/search-panel.component";
|
|
16
|
-
import * as i9 from "@angular/material/icon";
|
|
17
|
-
import * as i10 from "../../widgets/loader/loader.component";
|
|
18
|
-
import * as i11 from "@angular/material/table";
|
|
19
|
-
import * as i12 from "@angular/material/sort";
|
|
20
|
-
import * as i13 from "../../details/fields/dynamic-attribute-display/dynamic-attribute-display.component";
|
|
21
|
-
import * as i14 from "@angular/material/paginator";
|
|
22
|
-
import * as i15 from "@angular/flex-layout/flex";
|
|
23
|
-
import * as i16 from "@angular/common";
|
|
24
|
-
import * as i17 from "@angular/flex-layout/extended";
|
|
25
|
-
import * as i18 from "../../../directives/file-dropzone.directive";
|
|
26
|
-
import * as i19 from "@ngx-translate/core";
|
|
27
|
-
export class DocumentsPageComponent {
|
|
28
|
-
constructor(route, injector, announcementService, webApiService, screenSizeService) {
|
|
29
|
-
this.route = route;
|
|
30
|
-
this.injector = injector;
|
|
31
|
-
this.announcementService = announcementService;
|
|
32
|
-
this.webApiService = webApiService;
|
|
33
|
-
this.screenSizeService = screenSizeService;
|
|
34
|
-
this.isTabbedContent = false;
|
|
35
|
-
this.uploadInProgress = false;
|
|
36
|
-
this.isActionPanelOpen = false;
|
|
37
|
-
this.isSmallScreen = false;
|
|
38
|
-
const listPageServiceInjectionToken = this.route.snapshot.data['listPageService'];
|
|
39
|
-
this.listPageService = this.injector.get(listPageServiceInjectionToken);
|
|
40
|
-
this.listPageService.prepare(this.route);
|
|
41
|
-
this.dataSource = new ListPageDataSource(this.listPageService);
|
|
42
|
-
this.displayedColumns = this.listPageService.listColumns();
|
|
43
|
-
this.displayedColumnAttrs = this.displayedColumns.map(a => a.attr);
|
|
44
|
-
this.exportOptions = this.listPageService.listPageExportOptions();
|
|
45
|
-
this.withClickableRows = this.listPageService.withClickableRows;
|
|
46
|
-
this.isTabbedContent = this.route.snapshot.data['isTabbedContent'];
|
|
47
|
-
this.pageTitle = this.route.snapshot.data['pageTitle'];
|
|
48
|
-
this.screenSizeService.screenSize.subscribe((screenSize) => {
|
|
49
|
-
this.isSmallScreen = screenSize == 'xs' || screenSize == 'sm';
|
|
50
|
-
this.isActionPanelOpen = !this.isSmallScreen;
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
ngAfterViewInit() {
|
|
54
|
-
this.dataSource.sort = this.sort;
|
|
55
|
-
this.dataSource.paginator = this.paginator;
|
|
56
|
-
this.dataSource.searchPanel = this.searchPanel;
|
|
57
|
-
this.table.dataSource = this.dataSource;
|
|
58
|
-
}
|
|
59
|
-
onRecordClicked(record) {
|
|
60
|
-
if (!this.withClickableRows)
|
|
61
|
-
return;
|
|
62
|
-
this.listPageService.openRecord(record);
|
|
63
|
-
}
|
|
64
|
-
onAddClicked() {
|
|
65
|
-
this.listPageService.openForm();
|
|
66
|
-
}
|
|
67
|
-
onFileDropped(file) {
|
|
68
|
-
this.uploadInProgress = true;
|
|
69
|
-
this.webApiService.upload(file, (response) => {
|
|
70
|
-
let document = {
|
|
71
|
-
filename: file.name,
|
|
72
|
-
source_url: '',
|
|
73
|
-
preview_url: '',
|
|
74
|
-
signed_id: response.signed_id
|
|
75
|
-
};
|
|
76
|
-
this.listPageService.openForm({}, { document: document });
|
|
77
|
-
this.uploadInProgress = false;
|
|
78
|
-
}, (response) => {
|
|
79
|
-
this.announcementService.error('mantle.messages.unable_to_upload_file');
|
|
80
|
-
this.uploadInProgress = false;
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
DocumentsPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: DocumentsPageComponent, deps: [{ token: i1.ActivatedRoute }, { token: i0.Injector }, { token: i2.AnnouncementService }, { token: i3.WebApiService }, { token: i4.ScreenSizeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
85
|
-
DocumentsPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: DocumentsPageComponent, selector: "mantle-documents-page", viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "table", first: true, predicate: MatTable, descendants: true }, { propertyName: "searchPanel", first: true, predicate: SearchPanelComponent, descendants: true }], ngImport: i0, template: "<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", styles: [".main-content{padding-top:0;padding-bottom:0}.mat-drawer{padding:0 16px 0 0}.mat-drawer .add-button{display:block;width:200px;text-transform:uppercase;text-wrap-mode:wrap;border-radius:0;margin:16px 0 0;line-height:16px;padding:10px 16px}.mat-drawer-end{padding:0 16px}.search-section{margin:16px 0 0}.export-button{display:block;width:144px;background-color:transparent;white-space:nowrap;padding:0;margin:16px 0 16px auto}.export-button .export-button-label{display:inline-block;width:100px;white-space:normal;text-align:right;text-transform:uppercase;font-weight:normal;line-height:1.25rem;margin-right:.25rem}.export-button .mat-icon{height:auto;width:auto;font-size:2.5rem}.toggle-collapsible-columns-button{width:200px;text-transform:uppercase}.toggle-collapsible-columns-button .mat-icon{font-size:1.2rem}.collapsible-column-left{border-left:1px solid lightgray}.collapsible-column-right{border-right:1px solid lightgray}th.collapsible-column{border-top:1px solid lightgray}th.collapsible-column-left{border-radius:2px 0 0}th.collapsible-column-right{border-radius:0 2px 0 0}.additional-button{display:block;width:100%;text-transform:uppercase;border-radius:0;margin:16px 0 0}.in-progress-button .mat-spinner{position:absolute;top:10px;right:12px}\n"], components: [{ type: i5.PageTitleComponent, selector: "mantle-page-title" }, { type: i6.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { type: i6.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.SearchPanelComponent, selector: "mantle-search-panel", inputs: ["searchFields"], outputs: ["search"] }, { type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i10.LoaderComponent, selector: "mantle-loader", inputs: ["delay"] }, { type: i11.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i12.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "arrowPosition", "sortActionDescription", "disableClear", "mat-sort-header", "start"], exportAs: ["matSortHeader"] }, { type: i13.DynamicAttributeDisplayComponent, selector: "mantle-dynamic-attribute-display", inputs: ["value", "field", "fieldType", "options"] }, { type: i11.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i11.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { type: i14.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }], directives: [{ type: i15.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i15.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i15.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i16.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i17.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i16.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i15.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i16.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i18.FileDropzoneDirective, selector: "[file-dropzone]", outputs: ["fileDropped"] }, { type: i12.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortActive"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { type: i11.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i11.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i11.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i11.MatCellDef, selector: "[matCellDef]" }, { type: i11.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i11.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i11.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }], pipes: { "translate": i19.TranslatePipe } });
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: DocumentsPageComponent, decorators: [{
|
|
87
|
-
type: Component,
|
|
88
|
-
args: [{
|
|
89
|
-
selector: 'mantle-documents-page',
|
|
90
|
-
templateUrl: './documents-page.component.html',
|
|
91
|
-
styleUrls: ['../list-page/list-page.component.scss']
|
|
92
|
-
}]
|
|
93
|
-
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i0.Injector }, { type: i2.AnnouncementService }, { type: i3.WebApiService }, { type: i4.ScreenSizeService }]; }, propDecorators: { paginator: [{
|
|
94
|
-
type: ViewChild,
|
|
95
|
-
args: [MatPaginator]
|
|
96
|
-
}], sort: [{
|
|
97
|
-
type: ViewChild,
|
|
98
|
-
args: [MatSort]
|
|
99
|
-
}], table: [{
|
|
100
|
-
type: ViewChild,
|
|
101
|
-
args: [MatTable]
|
|
102
|
-
}], searchPanel: [{
|
|
103
|
-
type: ViewChild,
|
|
104
|
-
args: [SearchPanelComponent]
|
|
105
|
-
}] } });
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9wYWdlcy9kb2N1bWVudHMtcGFnZS9kb2N1bWVudHMtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2VzL2RvY3VtZW50cy1wYWdlL2RvY3VtZW50cy1wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFNBQVMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUU5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUV2RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVTlGLE1BQU0sT0FBTyxzQkFBc0I7SUFtQmpDLFlBQW9CLEtBQXFCLEVBQVUsUUFBa0IsRUFDakQsbUJBQXdDLEVBQVUsYUFBNEIsRUFDOUUsaUJBQW9DO1FBRnBDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNqRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDOUUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVRqRCxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUVqQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFFbEMsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBQ25DLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBS3BDLE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBa0IsNkJBQTZCLENBQUMsQ0FBQztRQUV6RixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMzRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNsRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQztRQUNoRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsVUFBZSxFQUFFLEVBQUU7WUFDOUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLElBQUksSUFBSSxJQUFJLFVBQVUsSUFBSSxJQUFJLENBQUM7WUFDOUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDL0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMxQyxDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQVc7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUI7WUFBRSxPQUFPO1FBRXBDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQVU7UUFDdEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUU3QixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQzVCLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDaEIsSUFBSSxRQUFRLEdBQUc7Z0JBQ2IsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNuQixVQUFVLEVBQUUsRUFBRTtnQkFDZCxXQUFXLEVBQUUsRUFBRTtnQkFDZixTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVM7YUFDOUIsQ0FBQTtZQUNELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsQ0FBQyxFQUNELENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDaEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1lBQ3hFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDOzttSEE1RVUsc0JBQXNCO3VHQUF0QixzQkFBc0Isd0dBQ3RCLFlBQVksdUVBQ1osT0FBTyx3RUFDUCxRQUFRLDhFQUNSLG9CQUFvQixnRENyQmpDLGdySUF3R0E7MkZEdkZhLHNCQUFzQjtrQkFMbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxXQUFXLEVBQUUsaUNBQWlDO29CQUM5QyxTQUFTLEVBQUUsQ0FBQyx1Q0FBdUMsQ0FBQztpQkFDckQ7ME5BRTBCLFNBQVM7c0JBQWpDLFNBQVM7dUJBQUMsWUFBWTtnQkFDSCxJQUFJO3NCQUF2QixTQUFTO3VCQUFDLE9BQU87Z0JBQ0csS0FBSztzQkFBekIsU0FBUzt1QkFBQyxRQUFRO2dCQUNjLFdBQVc7c0JBQTNDLFNBQVM7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgTWF0U29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgTWF0VGFibGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lbENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvd2lkZ2V0cy9zZWFyY2gtcGFuZWwvc2VhcmNoLXBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaXN0UGFnZVNlcnZpY2UsIExpc3RQYWdlQ29sdW1uLCBMaXN0UGFnZUV4cG9ydE9wdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ludGVyZmFjZXMvbGlzdC1wYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGlzdFBhZ2VEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9wYWdlcy9saXN0LXBhZ2UvbGlzdC1wYWdlLWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgQW5ub3VuY2VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Fubm91bmNlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFdlYkFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy93ZWItYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NyZWVuU2l6ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zY3JlZW4tc2l6ZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFudGxlLWRvY3VtZW50cy1wYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50cy1wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4uL2xpc3QtcGFnZS9saXN0LXBhZ2UuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEb2N1bWVudHNQYWdlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yKSBwYWdpbmF0b3IhOiBNYXRQYWdpbmF0b3I7XG4gIEBWaWV3Q2hpbGQoTWF0U29ydCkgc29ydCE6IE1hdFNvcnQ7XG4gIEBWaWV3Q2hpbGQoTWF0VGFibGUpIHRhYmxlITogTWF0VGFibGU8YW55PjtcbiAgQFZpZXdDaGlsZChTZWFyY2hQYW5lbENvbXBvbmVudCkgc2VhcmNoUGFuZWwhOiBTZWFyY2hQYW5lbENvbXBvbmVudDtcblxuICBwdWJsaWMgbGlzdFBhZ2VTZXJ2aWNlOiBMaXN0UGFnZVNlcnZpY2U7XG4gIHB1YmxpYyBkYXRhU291cmNlOiBMaXN0UGFnZURhdGFTb3VyY2U7XG4gIHB1YmxpYyBkaXNwbGF5ZWRDb2x1bW5zITogTGlzdFBhZ2VDb2x1bW5bXTtcbiAgcHVibGljIGRpc3BsYXllZENvbHVtbkF0dHJzITogc3RyaW5nW107XG4gIHB1YmxpYyBleHBvcnRPcHRpb25zITogTGlzdFBhZ2VFeHBvcnRPcHRpb25bXTtcbiAgcHVibGljIHdpdGhDbGlja2FibGVSb3dzITogYm9vbGVhbjtcbiAgcHVibGljIGlzVGFiYmVkQ29udGVudDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgcGFnZVRpdGxlOiBzdHJpbmc7XG4gIHB1YmxpYyB1cGxvYWRJblByb2dyZXNzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGlzQWN0aW9uUGFuZWxPcGVuOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBpc1NtYWxsU2NyZWVuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICAgICAgICBwcml2YXRlIGFubm91bmNlbWVudFNlcnZpY2U6IEFubm91bmNlbWVudFNlcnZpY2UsIHByaXZhdGUgd2ViQXBpU2VydmljZTogV2ViQXBpU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzY3JlZW5TaXplU2VydmljZTogU2NyZWVuU2l6ZVNlcnZpY2UpIHtcbiAgICBjb25zdCBsaXN0UGFnZVNlcnZpY2VJbmplY3Rpb25Ub2tlbiA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YVsnbGlzdFBhZ2VTZXJ2aWNlJ107XG4gICAgdGhpcy5saXN0UGFnZVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldDxMaXN0UGFnZVNlcnZpY2U+KGxpc3RQYWdlU2VydmljZUluamVjdGlvblRva2VuKTtcblxuICAgIHRoaXMubGlzdFBhZ2VTZXJ2aWNlLnByZXBhcmUodGhpcy5yb3V0ZSk7XG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IExpc3RQYWdlRGF0YVNvdXJjZSh0aGlzLmxpc3RQYWdlU2VydmljZSk7XG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5saXN0UGFnZVNlcnZpY2UubGlzdENvbHVtbnMoKTtcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbkF0dHJzID0gdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLm1hcChhID0+IGEuYXR0cik7XG4gICAgdGhpcy5leHBvcnRPcHRpb25zID0gdGhpcy5saXN0UGFnZVNlcnZpY2UubGlzdFBhZ2VFeHBvcnRPcHRpb25zKCk7XG4gICAgdGhpcy53aXRoQ2xpY2thYmxlUm93cyA9IHRoaXMubGlzdFBhZ2VTZXJ2aWNlLndpdGhDbGlja2FibGVSb3dzO1xuICAgIHRoaXMuaXNUYWJiZWRDb250ZW50ID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhWydpc1RhYmJlZENvbnRlbnQnXTtcbiAgICB0aGlzLnBhZ2VUaXRsZSA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YVsncGFnZVRpdGxlJ107XG5cbiAgICB0aGlzLnNjcmVlblNpemVTZXJ2aWNlLnNjcmVlblNpemUuc3Vic2NyaWJlKChzY3JlZW5TaXplOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuaXNTbWFsbFNjcmVlbiA9IHNjcmVlblNpemUgPT0gJ3hzJyB8fCBzY3JlZW5TaXplID09ICdzbSc7XG4gICAgICB0aGlzLmlzQWN0aW9uUGFuZWxPcGVuID0gIXRoaXMuaXNTbWFsbFNjcmVlbjtcbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcbiAgICB0aGlzLmRhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XG4gICAgdGhpcy5kYXRhU291cmNlLnNlYXJjaFBhbmVsID0gdGhpcy5zZWFyY2hQYW5lbDtcbiAgICB0aGlzLnRhYmxlLmRhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2U7XG4gIH1cblxuICBvblJlY29yZENsaWNrZWQocmVjb3JkOiBhbnkpIHtcbiAgICBpZiAoIXRoaXMud2l0aENsaWNrYWJsZVJvd3MpIHJldHVybjtcblxuICAgIHRoaXMubGlzdFBhZ2VTZXJ2aWNlLm9wZW5SZWNvcmQocmVjb3JkKTtcbiAgfVxuXG4gIG9uQWRkQ2xpY2tlZCgpIHtcbiAgICB0aGlzLmxpc3RQYWdlU2VydmljZS5vcGVuRm9ybSgpO1xuICB9XG5cbiAgb25GaWxlRHJvcHBlZChmaWxlOiBGaWxlKSB7XG4gICAgdGhpcy51cGxvYWRJblByb2dyZXNzID0gdHJ1ZTtcblxuICAgIHRoaXMud2ViQXBpU2VydmljZS51cGxvYWQoZmlsZSxcbiAgICAgIChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIGxldCBkb2N1bWVudCA9IHtcbiAgICAgICAgICBmaWxlbmFtZTogZmlsZS5uYW1lLFxuICAgICAgICAgIHNvdXJjZV91cmw6ICcnLFxuICAgICAgICAgIHByZXZpZXdfdXJsOiAnJyxcbiAgICAgICAgICBzaWduZWRfaWQ6IHJlc3BvbnNlLnNpZ25lZF9pZFxuICAgICAgICB9XG4gICAgICAgIHRoaXMubGlzdFBhZ2VTZXJ2aWNlLm9wZW5Gb3JtKHt9LCB7IGRvY3VtZW50OiBkb2N1bWVudCB9KTtcbiAgICAgICAgdGhpcy51cGxvYWRJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5hbm5vdW5jZW1lbnRTZXJ2aWNlLmVycm9yKCdtYW50bGUubWVzc2FnZXMudW5hYmxlX3RvX3VwbG9hZF9maWxlJyk7XG4gICAgICAgIHRoaXMudXBsb2FkSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgfVxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3RyZXRjaFwiIGZ4TGF5b3V0R2FwPVwiMTZweFwiIGNsYXNzPVwibGlzdC1wYWdlIGZ1bGwtaGVpZ2h0LW9ubHlcIiBbbmdDbGFzc109XCJ7J3BhZ2UnOiAhaXNUYWJiZWRDb250ZW50fVwiPlxuXG4gIDxkaXYgZnhGbGV4PVwiMCAwIGF1dG9cIiAqbmdJZj1cIiFpc1RhYmJlZENvbnRlbnRcIj5cbiAgICA8bWFudGxlLXBhZ2UtdGl0bGU+e3sgcGFnZVRpdGxlIHwgdHJhbnNsYXRlIH19PC9tYW50bGUtcGFnZS10aXRsZT5cbiAgPC9kaXY+XG5cbiAgPGRpdiBmeEZsZXg9XCIxIDAgMXB4XCI+XG4gICAgPG1hdC1kcmF3ZXItY29udGFpbmVyIGNsYXNzPVwiZnVsbC1oZWlnaHQtb25seVwiIFtoYXNCYWNrZHJvcF09XCJpc1NtYWxsU2NyZWVuXCI+XG4gICAgICA8bWF0LWRyYXdlciAjZHJhd2VyXG4gICAgICAgICAgW21vZGVdPVwiaXNTbWFsbFNjcmVlbiA/ICdvdmVyJyA6ICdzaWRlJ1wiXG4gICAgICAgICAgW3Bvc2l0aW9uXT1cImlzU21hbGxTY3JlZW4gPyAnZW5kJyA6ICdzdGFydCdcIlxuICAgICAgICAgIFtvcGVuZWRdPVwiaXNBY3Rpb25QYW5lbE9wZW5cIlxuICAgICAgICAgIFtkaXNhYmxlQ2xvc2VdPVwiIWlzU21hbGxTY3JlZW5cIlxuICAgICAgICAgIChjbG9zZWRTdGFydCk9XCJpc0FjdGlvblBhbmVsT3BlbiA9IGZhbHNlXCJcbiAgICAgICAgICAob3BlbmVkU3RhcnQpPVwiaXNBY3Rpb25QYW5lbE9wZW4gPSB0cnVlXCI+XG5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImxpc3RQYWdlU2VydmljZS5zaG93QWRkQnV0dG9uICYmIGxpc3RQYWdlU2VydmljZS5jYW5Xcml0ZSgpXCJcbiAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYWRkLWJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25BZGRDbGlja2VkKClcIj5cbiAgICAgICAgICArIHt7ICdtYW50bGUuYnV0dG9ucy5hZGQnIHwgdHJhbnNsYXRlIH19IHt7IGxpc3RQYWdlU2VydmljZS5ub3VuKCkgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1zZWN0aW9uXCI+XG4gICAgICAgICAgPG1hbnRsZS1zZWFyY2gtcGFuZWwgI3NlYXJjaFBhbmVsXG4gICAgICAgICAgICAgIFtzZWFyY2hGaWVsZHNdPVwibGlzdFBhZ2VTZXJ2aWNlLnNlYXJjaEZpZWxkcygpXCI+XG4gICAgICAgICAgPC9tYW50bGUtc2VhcmNoLXBhbmVsPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBleHBvcnRPcHRpb24gb2YgZXhwb3J0T3B0aW9uc1wiPlxuICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJleHBvcnQtYnV0dG9uXCIgKGNsaWNrKT1cImV4cG9ydE9wdGlvbi5leHBvcnQoc2VhcmNoUGFuZWwuc2VhcmNoUGFyYW1zKS5zdWJzY3JpYmUoKVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHBvcnQtYnV0dG9uLWxhYmVsXCI+e3sgZXhwb3J0T3B0aW9uLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgPG1hdC1pY29uPmRvd25sb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwvbWF0LWRyYXdlcj5cblxuICAgICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzdHJldGNoXCIgY2xhc3M9XCJtYWluLWNvbnRlbnQgZnVsbC1oZWlnaHQtb25seVwiXG4gICAgICAgICAgZmlsZS1kcm9wem9uZSAoZmlsZURyb3BwZWQpPVwib25GaWxlRHJvcHBlZCgkZXZlbnRbMF0pXCIgW2NsYXNzLnVwbG9hZGluZ109XCJ1cGxvYWRJblByb2dyZXNzXCI+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cInVwbG9hZEluUHJvZ3Jlc3NcIiBjbGFzcz1cInVwbG9hZGluZy1pbmRpY2F0b3Itb3ZlcmxheVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWRpbmctaW5kaWNhdG9yXCI+VXBsb2FkaW5nLi4uPC9kaXY+XG4gICAgICAgICAgPG1hbnRsZS1sb2FkZXI+PC9tYW50bGUtbG9hZGVyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGZ4RmxleD1cIjEgMCAxcHhcIiBjbGFzcz1cInZlcnRpY2FsbHktc2Nyb2xsYWJsZVwiPlxuICAgICAgICAgIDx0YWJsZSBtYXQtdGFibGUgY2xhc3M9XCJmdWxsLXdpZHRoIGhvcml6b250YWwtc2Nyb2xsLXRhYmxlXCIgbWF0U29ydD5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGRpc3BsYXllZENvbHVtbnNcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJ7eyBjb2x1bW4uYXR0ciB9fVwiPlxuICAgICAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPnt7IGNvbHVtbi5oZWFkZXIgfCB0cmFuc2xhdGUgfX08L3RoPlxuICAgICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIj5cbiAgICAgICAgICAgICAgICAgIDxtYW50bGUtZHluYW1pYy1hdHRyaWJ1dGUtZGlzcGxheVxuICAgICAgICAgICAgICAgICAgICAgIFtmaWVsZFR5cGVdPVwiY29sdW1uLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJyb3dbY29sdW1uLmF0dHJdXCI+XG4gICAgICAgICAgICAgICAgICA8L21hbnRsZS1keW5hbWljLWF0dHJpYnV0ZS1kaXNwbGF5PlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uQXR0cnNcIj48L3RyPlxuICAgICAgICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbkF0dHJzO1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUmVjb3JkQ2xpY2tlZChyb3cpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuY2xpY2thYmxlLXJvd109XCJ3aXRoQ2xpY2thYmxlUm93c1wiPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bWF0LXBhZ2luYXRvciAjcGFnaW5hdG9yXG4gICAgICAgICAgICBmeEZsZXg9XCIwIDAgYXV0b1wiXG4gICAgICAgICAgICBbbGVuZ3RoXT1cIjBcIlxuICAgICAgICAgICAgW3BhZ2VJbmRleF09XCIwXCJcbiAgICAgICAgICAgIFtwYWdlU2l6ZV09XCIxMFwiXG4gICAgICAgICAgICBbcGFnZVNpemVPcHRpb25zXT1cIlsxMCwgMjAsIDUwXVwiPlxuICAgICAgICA8L21hdC1wYWdpbmF0b3I+XG5cbiAgICAgIDwvZGl2PlxuXG4gICAgPC9tYXQtZHJhd2VyLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBmeEZsZXg9XCIwIDAgYXV0b1wiICpuZ0lmPVwiaXNTbWFsbFNjcmVlblwiPlxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGZ4TGF5b3V0R2FwPVwiMTZweFwiPlxuXG4gICAgICA8YnV0dG9uICpuZ0lmPVwiaXNBY3Rpb25QYW5lbE9wZW5cIiB0eXBlPVwiYnV0dG9uXCIgbWF0LWJ1dHRvbiAoY2xpY2spPVwiZHJhd2VyLnRvZ2dsZSgpXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0FjdGlvblBhbmVsT3BlblwiPlxuICAgICAgICAgIHt7ICdtYW50bGUuYnV0dG9ucy5jbG9zZV9hY3Rpb25zJyB8IHRyYW5zbGF0ZSB9fTxtYXQtaWNvbj5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGRpdiBmeEZsZXg9XCIxIDEgYXV0b1wiPjwvZGl2PlxuXG4gICAgICA8YnV0dG9uICpuZ0lmPVwiIWlzQWN0aW9uUGFuZWxPcGVuXCIgdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b24gKGNsaWNrKT1cImRyYXdlci50b2dnbGUoKVwiPlxuICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgIDxtYXQtaWNvbj5jaGV2cm9uX2xlZnQ8L21hdC1pY29uPiB7eyAnbWFudGxlLmJ1dHRvbnMub3Blbl9hY3Rpb25zJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { Component, ViewChild } from '@angular/core';
|
|
2
|
-
import { map } from 'rxjs/operators';
|
|
3
|
-
import { DynamicFormComponent } from '../../../components/form/dynamic-form/dynamic-form.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/router";
|
|
6
|
-
import * as i2 from "../../../services/announcement.service";
|
|
7
|
-
import * as i3 from "../../../services/object.service";
|
|
8
|
-
import * as i4 from "../../form/dynamic-form/dynamic-form.component";
|
|
9
|
-
import * as i5 from "@angular/material/button";
|
|
10
|
-
import * as i6 from "@angular/material/progress-spinner";
|
|
11
|
-
import * as i7 from "@angular/flex-layout/flex";
|
|
12
|
-
import * as i8 from "@angular/common";
|
|
13
|
-
import * as i9 from "@angular/flex-layout/extended";
|
|
14
|
-
import * as i10 from "@angular/material/form-field";
|
|
15
|
-
import * as i11 from "@ngx-translate/core";
|
|
16
|
-
export class ExportPageComponent {
|
|
17
|
-
constructor(route, injector, changeDetectorRef, announcementService, objectService) {
|
|
18
|
-
this.route = route;
|
|
19
|
-
this.injector = injector;
|
|
20
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
21
|
-
this.announcementService = announcementService;
|
|
22
|
-
this.objectService = objectService;
|
|
23
|
-
this.isTabbedContent = false;
|
|
24
|
-
const exportPageServiceInjectionToken = this.route.snapshot.data['exportPageService'];
|
|
25
|
-
this.exportPageService = this.injector.get(exportPageServiceInjectionToken);
|
|
26
|
-
this.isTabbedContent = this.route.snapshot.data['isTabbedContent'];
|
|
27
|
-
}
|
|
28
|
-
ngOnInit() {
|
|
29
|
-
this.content$ = this.exportPageService.getNew().pipe(map((res) => {
|
|
30
|
-
return res.content;
|
|
31
|
-
}));
|
|
32
|
-
}
|
|
33
|
-
ngAfterViewChecked() {
|
|
34
|
-
this.changeDetectorRef.detectChanges();
|
|
35
|
-
}
|
|
36
|
-
onExportClicked() {
|
|
37
|
-
this.isExportInProgress = true;
|
|
38
|
-
let params = this.dynamicForm.value;
|
|
39
|
-
this.objectService.removeEmptyAttributes(params);
|
|
40
|
-
this.exportPageService.export(params).subscribe(res => { this.onExportSuccess(res); }, res => { this.onExportFailure(res); });
|
|
41
|
-
}
|
|
42
|
-
onExportSuccess(res) {
|
|
43
|
-
this.isExportInProgress = false;
|
|
44
|
-
}
|
|
45
|
-
onExportFailure(res) {
|
|
46
|
-
this.announcementService.error('mantle.messages.export_failed');
|
|
47
|
-
this.isExportInProgress = false;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
ExportPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: ExportPageComponent, deps: [{ token: i1.ActivatedRoute }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: i2.AnnouncementService }, { token: i3.ObjectService }], target: i0.ɵɵFactoryTarget.Component });
|
|
51
|
-
ExportPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: ExportPageComponent, selector: "mantle-export-page", viewQueries: [{ propertyName: "dynamicForm", first: true, predicate: DynamicFormComponent, descendants: true }], ngImport: i0, template: "<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", styles: [".export-button,.exporting-button{width:140px}.exporting-button .mat-spinner{position:absolute;top:10px;right:12px}\n"], components: [{ type: i4.DynamicFormComponent, selector: "mantle-dynamic-form", inputs: ["formPageService", "content"] }, { type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i6.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.MatSuffix, selector: "[matSuffix]" }], pipes: { "async": i8.AsyncPipe, "translate": i11.TranslatePipe } });
|
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: ExportPageComponent, decorators: [{
|
|
53
|
-
type: Component,
|
|
54
|
-
args: [{
|
|
55
|
-
selector: 'mantle-export-page',
|
|
56
|
-
templateUrl: './export-page.component.html',
|
|
57
|
-
styleUrls: ['./export-page.component.scss']
|
|
58
|
-
}]
|
|
59
|
-
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: i2.AnnouncementService }, { type: i3.ObjectService }]; }, propDecorators: { dynamicForm: [{
|
|
60
|
-
type: ViewChild,
|
|
61
|
-
args: [DynamicFormComponent]
|
|
62
|
-
}] } });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFudGxlL3NyYy9saWIvY29tcG9uZW50cy9wYWdlcy9leHBvcnQtcGFnZS9leHBvcnQtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2VzL2V4cG9ydC1wYWdlL2V4cG9ydC1wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUMsU0FBUyxFQUFvQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHNUcsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7Ozs7Ozs7Ozs7O0FBVXBHLE1BQU0sT0FBTyxtQkFBbUI7SUFVOUIsWUFBb0IsS0FBcUIsRUFBVSxRQUFrQixFQUFVLGlCQUFvQyxFQUMvRixtQkFBd0MsRUFBVSxhQUE0QjtRQUQ5RSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBVSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQy9GLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUozRixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUt0QyxNQUFNLCtCQUErQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBb0IsK0JBQStCLENBQUMsQ0FBQztRQUMvRixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUNsRCxHQUFHLENBQUMsQ0FBQyxHQUF1QixFQUFFLEVBQUU7WUFDOUIsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFFL0IsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVqRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FDN0MsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNyQyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3RDLENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZSxDQUFDLEdBQVE7UUFDdEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBRUQsZUFBZSxDQUFDLEdBQW1CO1FBQ2pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLENBQUM7O2dIQWhEVSxtQkFBbUI7b0dBQW5CLG1CQUFtQix1R0FFbkIsb0JBQW9CLGdEQ2pCakMsK3VDQWtDQTsyRkRuQmEsbUJBQW1CO2tCQUwvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFdBQVcsRUFBRSw4QkFBOEI7b0JBQzNDLFNBQVMsRUFBRSxDQUFDLDhCQUE4QixDQUFDO2lCQUM1QzswTkFHa0MsV0FBVztzQkFBM0MsU0FBUzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdDaGVja2VkLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbmplY3RvciwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFubm91bmNlbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hbm5vdW5jZW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvZm9ybS9keW5hbWljLWZvcm0vZHluYW1pYy1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFeHBvcnRQYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ludGVyZmFjZXMvZXhwb3J0LXBhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBPYmplY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb2JqZWN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgV2ViQXBpRm9ybVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYWRhcHRlcnMvd2ViLWFwaS1jcnVkLmFkYXB0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYW50bGUtZXhwb3J0LXBhZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vZXhwb3J0LXBhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9leHBvcnQtcGFnZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEV4cG9ydFBhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQge1xuXG4gIEBWaWV3Q2hpbGQoRHluYW1pY0Zvcm1Db21wb25lbnQpIGR5bmFtaWNGb3JtITogRHluYW1pY0Zvcm1Db21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBleHBvcnRQYWdlU2VydmljZTogRXhwb3J0UGFnZVNlcnZpY2U7XG5cbiAgcHVibGljIGNvbnRlbnQkITogT2JzZXJ2YWJsZTxhbnk+O1xuICBwdWJsaWMgaXNUYWJiZWRDb250ZW50OiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBpc0V4cG9ydEluUHJvZ3Jlc3MhOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgYW5ub3VuY2VtZW50U2VydmljZTogQW5ub3VuY2VtZW50U2VydmljZSwgcHJpdmF0ZSBvYmplY3RTZXJ2aWNlOiBPYmplY3RTZXJ2aWNlKSB7XG4gICAgY29uc3QgZXhwb3J0UGFnZVNlcnZpY2VJbmplY3Rpb25Ub2tlbiA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YVsnZXhwb3J0UGFnZVNlcnZpY2UnXTtcbiAgICB0aGlzLmV4cG9ydFBhZ2VTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8RXhwb3J0UGFnZVNlcnZpY2U+KGV4cG9ydFBhZ2VTZXJ2aWNlSW5qZWN0aW9uVG9rZW4pO1xuICAgIHRoaXMuaXNUYWJiZWRDb250ZW50ID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhWydpc1RhYmJlZENvbnRlbnQnXTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGVudCQgPSB0aGlzLmV4cG9ydFBhZ2VTZXJ2aWNlLmdldE5ldygpLnBpcGUoXG4gICAgICBtYXAoKHJlczogV2ViQXBpRm9ybVJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHJldHVybiByZXMuY29udGVudDtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG9uRXhwb3J0Q2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzRXhwb3J0SW5Qcm9ncmVzcyA9IHRydWU7XG5cbiAgICBsZXQgcGFyYW1zID0gdGhpcy5keW5hbWljRm9ybS52YWx1ZTtcbiAgICB0aGlzLm9iamVjdFNlcnZpY2UucmVtb3ZlRW1wdHlBdHRyaWJ1dGVzKHBhcmFtcyk7XG5cbiAgICB0aGlzLmV4cG9ydFBhZ2VTZXJ2aWNlLmV4cG9ydChwYXJhbXMpLnN1YnNjcmliZShcbiAgICAgIHJlcyA9PiB7IHRoaXMub25FeHBvcnRTdWNjZXNzKHJlcyk7IH0sXG4gICAgICByZXMgPT4geyB0aGlzLm9uRXhwb3J0RmFpbHVyZShyZXMpOyB9XG4gICAgKTtcbiAgfVxuXG4gIG9uRXhwb3J0U3VjY2VzcyhyZXM6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuaXNFeHBvcnRJblByb2dyZXNzID0gZmFsc2U7XG4gIH1cblxuICBvbkV4cG9ydEZhaWx1cmUocmVzOiB7IGVycm9yOiBhbnkgfSk6IHZvaWQge1xuICAgIHRoaXMuYW5ub3VuY2VtZW50U2VydmljZS5lcnJvcignbWFudGxlLm1lc3NhZ2VzLmV4cG9ydF9mYWlsZWQnKTtcbiAgICB0aGlzLmlzRXhwb3J0SW5Qcm9ncmVzcyA9IGZhbHNlO1xuICB9XG5cbn1cbiIsIjxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3RyZXRjaFwiIGZ4TGF5b3V0R2FwPVwiMTZweFwiIGNsYXNzPVwiZnVsbC1oZWlnaHQtbWluXCIgW25nQ2xhc3NdPVwieydwYWdlIGZ1bGwtaGVpZ2h0LW9ubHkgdmVydGljYWxseS1zY3JvbGxhYmxlJzogIWlzVGFiYmVkQ29udGVudH1cIj5cbiAgPGRpdiBmeEZsZXg9XCIxIDAgYXV0b1wiIGNsYXNzPVwibWFpbi1jb250ZW50XCI+XG4gICAgPG1hbnRsZS1keW5hbWljLWZvcm0gI2R5bmFtaWNGb3JtIFtjb250ZW50XT1cImNvbnRlbnQkIHwgYXN5bmNcIj48L21hbnRsZS1keW5hbWljLWZvcm0+XG4gIDwvZGl2PlxuXG4gIDxkaXYgZnhGbGV4PVwiMCAwIGF1dG9cIj5cbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBmeExheW91dEdhcD1cIjE2cHhcIj5cbiAgICAgIDxkaXYgZnhGbGV4PVwiMSAxIGF1dG9cIj48L2Rpdj5cblxuICAgICAgPGRpdiBmeEZsZXg9XCIwIDAgYXV0b1wiPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIiFpc0V4cG9ydEluUHJvZ3Jlc3NcIlxuICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJleHBvcnQtYnV0dG9uXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZHluYW1pY0Zvcm0/LnZhbGlkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkV4cG9ydENsaWNrZWQoKVwiPlxuICAgICAgICAgIHt7ICdtYW50bGUuYnV0dG9ucy5leHBvcnQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuXG5cbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJpc0V4cG9ydEluUHJvZ3Jlc3NcIlxuICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJleHBvcnRpbmctYnV0dG9uXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XG4gICAgICAgICAge3sgJ21hbnRsZS5idXR0b25zLmV4cG9ydGluZycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8bWF0LXNwaW5uZXIgbWF0U3VmZml4IFtkaWFtZXRlcl09XCIxNlwiPjwvbWF0LXNwaW5uZXI+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { Component, ViewChild } from '@angular/core';
|
|
2
|
-
import { of as observableOf } from 'rxjs';
|
|
3
|
-
import { map } from 'rxjs/operators';
|
|
4
|
-
import { DynamicFormComponent } from '../../../components/form/dynamic-form/dynamic-form.component';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/router";
|
|
7
|
-
import * as i2 from "../../../services/announcement.service";
|
|
8
|
-
import * as i3 from "../../../services/confirmation.service";
|
|
9
|
-
import * as i4 from "../../titles/content-title/content-title.component";
|
|
10
|
-
import * as i5 from "@angular/material/button";
|
|
11
|
-
import * as i6 from "@angular/material/icon";
|
|
12
|
-
import * as i7 from "../../form/dynamic-form/dynamic-form.component";
|
|
13
|
-
import * as i8 from "@angular/material/progress-spinner";
|
|
14
|
-
import * as i9 from "@angular/flex-layout/flex";
|
|
15
|
-
import * as i10 from "@angular/common";
|
|
16
|
-
import * as i11 from "@angular/flex-layout/extended";
|
|
17
|
-
import * as i12 from "@angular/material/form-field";
|
|
18
|
-
import * as i13 from "@ngx-translate/core";
|
|
19
|
-
export class FormPageComponent {
|
|
20
|
-
constructor(route, injector, changeDetectorRef, announcementService, confirmationService) {
|
|
21
|
-
this.route = route;
|
|
22
|
-
this.injector = injector;
|
|
23
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
24
|
-
this.announcementService = announcementService;
|
|
25
|
-
this.confirmationService = confirmationService;
|
|
26
|
-
this.bottomLeftButtons = [];
|
|
27
|
-
this.bottomRightButtons = [];
|
|
28
|
-
this.isTabbedContent = false;
|
|
29
|
-
const formPageServiceInjectionToken = this.route.snapshot.data['formPageService'];
|
|
30
|
-
this.formPageService = this.injector.get(formPageServiceInjectionToken);
|
|
31
|
-
this.isTabbedContent = this.route.snapshot.data['isTabbedContent'];
|
|
32
|
-
}
|
|
33
|
-
ngOnInit() {
|
|
34
|
-
this.route.params.subscribe(params => {
|
|
35
|
-
this.id = this.route.snapshot.params['id'];
|
|
36
|
-
this.cloneId = this.route.snapshot.params['cloneId'];
|
|
37
|
-
let responseObservable = null;
|
|
38
|
-
if (this.cloneId) {
|
|
39
|
-
responseObservable = this.formPageService.getNew({ clone_id: this.cloneId });
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
responseObservable = this.id ? this.formPageService.getEdit(this.id) :
|
|
43
|
-
this.formPageService.getNew();
|
|
44
|
-
}
|
|
45
|
-
this.content$ = responseObservable.pipe(map((res) => {
|
|
46
|
-
this.header = res.header;
|
|
47
|
-
this.formPageService.onFormContentLoaded(res.content);
|
|
48
|
-
this.loadAdditionalButtons(res.content.data);
|
|
49
|
-
return res.content;
|
|
50
|
-
}));
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
ngAfterViewChecked() {
|
|
54
|
-
this.changeDetectorRef.detectChanges();
|
|
55
|
-
}
|
|
56
|
-
loadAdditionalButtons(record) {
|
|
57
|
-
let additionalFormPageButtons = this.formPageService.additionalFormPageButtons(record);
|
|
58
|
-
this.bottomLeftButtons = additionalFormPageButtons.filter(button => {
|
|
59
|
-
return button.position == 'left';
|
|
60
|
-
});
|
|
61
|
-
this.bottomRightButtons = additionalFormPageButtons.filter(button => {
|
|
62
|
-
return button.position == 'right';
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
onCancelClicked() {
|
|
66
|
-
this.back();
|
|
67
|
-
}
|
|
68
|
-
onSaveClicked() {
|
|
69
|
-
this.isSaveInProgress = true;
|
|
70
|
-
let value = this.dynamicForm.value;
|
|
71
|
-
this.formPageService.save(this.id, value, (res) => { this.onSaveSuccess(res); }, (res) => { this.onSaveFailure(res); });
|
|
72
|
-
}
|
|
73
|
-
onSaveSuccess(res) {
|
|
74
|
-
this.id = res.id;
|
|
75
|
-
this.formPageService.onFormContentLoaded(res.content);
|
|
76
|
-
this.loadAdditionalButtons(res.content.data);
|
|
77
|
-
this.content$ = observableOf(res.content);
|
|
78
|
-
this.announcementService.success('mantle.messages.save_successful');
|
|
79
|
-
this.back();
|
|
80
|
-
this.isSaveInProgress = false;
|
|
81
|
-
}
|
|
82
|
-
onSaveFailure(res) {
|
|
83
|
-
var _a;
|
|
84
|
-
if (res.content) {
|
|
85
|
-
this.formPageService.onFormContentLoaded(res.content);
|
|
86
|
-
this.content$ = observableOf(res.content);
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
this.back();
|
|
90
|
-
}
|
|
91
|
-
if (res.confirmationRequest) {
|
|
92
|
-
this.confirmationService.confirmSave((confirmed) => {
|
|
93
|
-
var _a;
|
|
94
|
-
(_a = res.confirmationRequest) === null || _a === void 0 ? void 0 : _a.onConfirmationGiven(confirmed);
|
|
95
|
-
if (confirmed)
|
|
96
|
-
this.onSaveClicked();
|
|
97
|
-
else
|
|
98
|
-
this.announcementService.error('mantle.messages.save_failed');
|
|
99
|
-
}, { message: res.confirmationRequest.message });
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
this.announcementService.error('mantle.messages.save_failed');
|
|
103
|
-
}
|
|
104
|
-
if (!!((_a = res.alert) === null || _a === void 0 ? void 0 : _a.message)) {
|
|
105
|
-
this.announcementService.error(res.alert.message);
|
|
106
|
-
}
|
|
107
|
-
this.isSaveInProgress = false;
|
|
108
|
-
}
|
|
109
|
-
back() {
|
|
110
|
-
if (this.id)
|
|
111
|
-
this.formPageService.openRecord({ id: this.id });
|
|
112
|
-
else if (this.cloneId)
|
|
113
|
-
this.formPageService.openRecord({ id: this.cloneId });
|
|
114
|
-
else
|
|
115
|
-
this.formPageService.openList();
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
FormPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: FormPageComponent, deps: [{ token: i1.ActivatedRoute }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: i2.AnnouncementService }, { token: i3.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
119
|
-
FormPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.5", type: FormPageComponent, selector: "mantle-form-page", viewQueries: [{ propertyName: "dynamicForm", first: true, predicate: DynamicFormComponent, descendants: true }], ngImport: i0, template: "<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", styles: [".save-button,.additional-button{width:140px}.in-progress-button .mat-spinner{position:absolute;top:10px;right:12px}\n"], components: [{ type: i4.ContentTitleComponent, selector: "mantle-content-title", inputs: ["thumbnail", "title"] }, { type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7.DynamicFormComponent, selector: "mantle-dynamic-form", inputs: ["formPageService", "content"] }, { type: i8.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i9.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i9.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i11.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i9.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i9.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.MatSuffix, selector: "[matSuffix]" }], pipes: { "async": i10.AsyncPipe, "translate": i13.TranslatePipe } });
|
|
120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: FormPageComponent, decorators: [{
|
|
121
|
-
type: Component,
|
|
122
|
-
args: [{
|
|
123
|
-
selector: 'mantle-form-page',
|
|
124
|
-
templateUrl: './form-page.component.html',
|
|
125
|
-
styleUrls: ['./form-page.component.scss']
|
|
126
|
-
}]
|
|
127
|
-
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: i2.AnnouncementService }, { type: i3.ConfirmationService }]; }, propDecorators: { dynamicForm: [{
|
|
128
|
-
type: ViewChild,
|
|
129
|
-
args: [DynamicFormComponent]
|
|
130
|
-
}] } });
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hbnRsZS9zcmMvbGliL2NvbXBvbmVudHMvcGFnZXMvZm9ybS1wYWdlL2Zvcm0tcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYW50bGUvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2VzL2Zvcm0tcGFnZS9mb3JtLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QyxTQUFTLEVBQW9CLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RyxPQUFPLEVBQWMsRUFBRSxJQUFJLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQVNwRyxNQUFNLE9BQU8saUJBQWlCO0lBZTVCLFlBQW9CLEtBQXFCLEVBQVUsUUFBa0IsRUFBVSxpQkFBb0MsRUFDL0YsbUJBQXdDLEVBQVUsbUJBQXdDO1FBRDFGLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDL0Ysd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUFVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFOdkcsc0JBQWlCLEdBQXFCLEVBQUUsQ0FBQztRQUN6Qyx1QkFBa0IsR0FBcUIsRUFBRSxDQUFDO1FBQzFDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBS3RDLE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFD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clZpZXdDaGVja2VkLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbmplY3RvciwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIGFzIG9ic2VydmFibGVPZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQW5ub3VuY2VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Fubm91bmNlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jb25maXJtYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvZm9ybS9keW5hbWljLWZvcm0vZHluYW1pYy1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtUGFnZUJ1dHRvbiwgRm9ybVBhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW50ZXJmYWNlcy9mb3JtLXBhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBXZWJBcGlGb3JtUmVzcG9uc2UsIFdlYkFwaVNhdmVSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FkYXB0ZXJzL3dlYi1hcGktY3J1ZC5hZGFwdGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFudGxlLWZvcm0tcGFnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLXBhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLXBhZ2UuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtUGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG5cbiAgQFZpZXdDaGlsZChEeW5hbWljRm9ybUNvbXBvbmVudCkgZHluYW1pY0Zvcm0hOiBEeW5hbWljRm9ybUNvbXBvbmVudDtcblxuICBwdWJsaWMgZm9ybVBhZ2VTZXJ2aWNlOiBGb3JtUGFnZVNlcnZpY2U7XG5cbiAgcHJpdmF0ZSBpZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGNsb25lSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGhlYWRlcjogYW55O1xuICBwdWJsaWMgY29udGVudCQhOiBPYnNlcnZhYmxlPGFueT47XG4gIHB1YmxpYyBib3R0b21MZWZ0QnV0dG9uczogRm9ybVBhZ2VCdXR0b25bXSA9IFtdO1xuICBwdWJsaWMgYm90dG9tUmlnaHRCdXR0b25zOiBGb3JtUGFnZUJ1dHRvbltdID0gW107XG4gIHB1YmxpYyBpc1RhYmJlZENvbnRlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGlzU2F2ZUluUHJvZ3Jlc3MhOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgYW5ub3VuY2VtZW50U2VydmljZTogQW5ub3VuY2VtZW50U2VydmljZSwgcHJpdmF0ZSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlKSB7XG4gICAgY29uc3QgZm9ybVBhZ2VTZXJ2aWNlSW5qZWN0aW9uVG9rZW4gPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbJ2Zvcm1QYWdlU2VydmljZSddO1xuICAgIHRoaXMuZm9ybVBhZ2VTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8Rm9ybVBhZ2VTZXJ2aWNlPihmb3JtUGFnZVNlcnZpY2VJbmplY3Rpb25Ub2tlbik7XG4gICAgdGhpcy5pc1RhYmJlZENvbnRlbnQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbJ2lzVGFiYmVkQ29udGVudCddO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICB0aGlzLmlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ2lkJ107XG4gICAgICB0aGlzLmNsb25lSWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1snY2xvbmVJZCddO1xuXG4gICAgICBsZXQgcmVzcG9uc2VPYnNlcnZhYmxlID0gbnVsbDtcbiAgICAgIGlmICh0aGlzLmNsb25lSWQpIHtcbiAgICAgICAgcmVzcG9uc2VPYnNlcnZhYmxlID0gdGhpcy5mb3JtUGFnZVNlcnZpY2UuZ2V0TmV3KHsgY2xvbmVfaWQ6IHRoaXMuY2xvbmVJZCB9KTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICByZXNwb25zZU9ic2VydmFibGUgPSB0aGlzLmlkID8gdGhpcy5mb3JtUGFnZVNlcnZpY2UuZ2V0RWRpdCh0aGlzLmlkKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1QYWdlU2VydmljZS5nZXROZXcoKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jb250ZW50JCA9IHJlc3BvbnNlT2JzZXJ2YWJsZS5waXBlKFxuICAgICAgICBtYXAoKHJlczogV2ViQXBpRm9ybVJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5oZWFkZXIgPSByZXMuaGVhZGVyO1xuICAgICAgICAgIHRoaXMuZm9ybVBhZ2VTZXJ2aWNlLm9uRm9ybUNvbnRlbnRMb2FkZWQocmVzLmNvbnRlbnQpO1xuICAgICAgICAgIHRoaXMubG9hZEFkZGl0aW9uYWxCdXR0b25zKHJlcy5jb250ZW50LmRhdGEpO1xuICAgICAgICAgIHJldHVybiByZXMuY29udGVudDtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBsb2FkQWRkaXRpb25hbEJ1dHRvbnMocmVjb3JkOiBhbnkpIHtcbiAgICBsZXQgYWRkaXRpb25hbEZvcm1QYWdlQnV0dG9ucyA9IHRoaXMuZm9ybVBhZ2VTZXJ2aWNlLmFkZGl0aW9uYWxGb3JtUGFnZUJ1dHRvbnMocmVjb3JkKTtcbiAgICB0aGlzLmJvdHRvbUxlZnRCdXR0b25zID0gYWRkaXRpb25hbEZvcm1QYWdlQnV0dG9ucy5maWx0ZXIoYnV0dG9uID0+IHtcbiAgICAgIHJldHVybiBidXR0b24ucG9zaXRpb24gPT0gJ2xlZnQnO1xuICAgIH0pO1xuICAgIHRoaXMuYm90dG9tUmlnaHRCdXR0b25zID0gYWRkaXRpb25hbEZvcm1QYWdlQnV0dG9ucy5maWx0ZXIoYnV0dG9uID0+IHtcbiAgICAgIHJldHVybiBidXR0b24ucG9zaXRpb24gPT0gJ3JpZ2h0JztcbiAgICB9KTtcbiAgfVxuXG4gIG9uQ2FuY2VsQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmJhY2soKTtcbiAgfVxuXG4gIG9uU2F2ZUNsaWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5pc1NhdmVJblByb2dyZXNzID0gdHJ1ZTtcblxuICAgIGxldCB2YWx1ZSA9IHRoaXMuZHluYW1pY0Zvcm0udmFsdWU7XG4gICAgdGhpcy5mb3JtUGFnZVNlcnZpY2Uuc2F2ZShcbiAgICAgIHRoaXMuaWQsIHZhbHVlLFxuICAgICAgKHJlczogV2ViQXBpU2F2ZVJlc3BvbnNlKSA9PiB7IHRoaXMub25TYXZlU3VjY2VzcyhyZXMpOyB9LFxuICAgICAgKHJlczogV2ViQXBpU2F2ZVJlc3BvbnNlKSA9PiB7IHRoaXMub25TYXZlRmFpbHVyZShyZXMpOyB9XG4gICAgKTtcbiAgfVxuXG4gIG9uU2F2ZVN1Y2Nlc3MocmVzOiBXZWJBcGlTYXZlUmVzcG9uc2UpOiB2b2lkIHtcbiAgICB0aGlzLmlkID0gcmVzLmlkO1xuICAgIHRoaXMuZm9ybVBhZ2VTZXJ2aWNlLm9uRm9ybUNvbnRlbnRMb2FkZWQocmVzLmNvbnRlbnQpO1xuICAgIHRoaXMubG9hZEFkZGl0aW9uYWxCdXR0b25zKHJlcy5jb250ZW50LmRhdGEpO1xuICAgIHRoaXMuY29udGVudCQgPSBvYnNlcnZhYmxlT2YocmVzLmNvbnRlbnQpO1xuICAgIHRoaXMuYW5ub3VuY2VtZW50U2VydmljZS5zdWNjZXNzKCdtYW50bGUubWVzc2FnZXMuc2F2ZV9zdWNjZXNzZnVsJyk7XG4gICAgdGhpcy5iYWNrKCk7XG5cbiAgICB0aGlzLmlzU2F2ZUluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgfVxuXG4gIG9uU2F2ZUZhaWx1cmUocmVzOiBXZWJBcGlTYXZlUmVzcG9uc2UpOiB2b2lkIHtcbiAgICBpZiAocmVzLmNvbnRlbnQpIHtcbiAgICAgIHRoaXMuZm9ybVBhZ2VTZXJ2aWNlLm9uRm9ybUNvbnRlbnRMb2FkZWQocmVzLmNvbnRlbnQpO1xuICAgICAgdGhpcy5jb250ZW50JCA9IG9ic2VydmFibGVPZihyZXMuY29udGVudCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5iYWNrKCk7XG4gICAgfVxuXG4gICAgaWYgKHJlcy5jb25maXJtYXRpb25SZXF1ZXN0KSB7XG4gICAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybVNhdmUoXG4gICAgICAgIChjb25maXJtZWQ6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICByZXMuY29uZmlybWF0aW9uUmVxdWVzdD8ub25Db25maXJtYXRpb25HaXZlbihjb25maXJtZWQpO1xuICAgICAgICAgIGlmIChjb25maXJtZWQpIHRoaXMub25TYXZlQ2xpY2tlZCgpO1xuICAgICAgICAgIGVsc2UgdGhpcy5hbm5vdW5jZW1lbnRTZXJ2aWNlLmVycm9yKCdtYW50bGUubWVzc2FnZXMuc2F2ZV9mYWlsZWQnKTtcbiAgICAgICAgfSxcbiAgICAgICAgeyBtZXNzYWdlOiByZXMuY29uZmlybWF0aW9uUmVxdWVzdC5tZXNzYWdlIH1cbiAgICAgICk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5hbm5vdW5jZW1lbnRTZXJ2aWNlLmVycm9yKCdtYW50bGUubWVzc2FnZXMuc2F2ZV9mYWlsZWQnKTtcbiAgICB9XG5cbiAgICBpZiAoISFyZXMuYWxlcnQ/Lm1lc3NhZ2UpIHtcbiAgICAgIHRoaXMuYW5ub3VuY2VtZW50U2VydmljZS5lcnJvcihyZXMuYWxlcnQubWVzc2FnZSk7XG4gICAgfVxuXG4gICAgdGhpcy5pc1NhdmVJblByb2dyZXNzID0gZmFsc2U7XG4gIH1cblxuICBiYWNrKCkge1xuICAgIGlmICh0aGlzLmlkKSB0aGlzLmZvcm1QYWdlU2VydmljZS5vcGVuUmVjb3JkKHsgaWQ6IHRoaXMuaWQgfSk7XG4gICAgZWxzZSBpZiAodGhpcy5jbG9uZUlkKSB0aGlzLmZvcm1QYWdlU2VydmljZS5vcGVuUmVjb3JkKHsgaWQ6IHRoaXMuY2xvbmVJZCB9KTtcbiAgICBlbHNlIHRoaXMuZm9ybVBhZ2VTZXJ2aWNlLm9wZW5MaXN0KCk7XG4gIH1cblxufVxuIiwiPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzdHJldGNoXCIgY2xhc3M9XCJmdWxsLWhlaWdodC1taW5cIiBbbmdDbGFzc109XCJ7J3BhZ2UgZnVsbC1oZWlnaHQtb25seSB2ZXJ0aWNhbGx5LXNjcm9sbGFibGUnOiAhaXNUYWJiZWRDb250ZW50fVwiPlxuICA8ZGl2IGZ4RmxleD1cIjAgMCBhdXRvXCIgY2xhc3M9XCJwYWdlLWhlYWRlclwiPlxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RyZXRjaFwiIGZ4TGF5b3V0R2FwPVwiMTZweFwiPlxuICAgICAgPG1hbnRsZS1jb250ZW50LXRpdGxlICpuZ0lmPVwiaGVhZGVyXCIgZnhGbGV4PVwiMCAwIGF1dG9cIiBbdGh1bWJuYWlsXT1cImhlYWRlci50aHVtYm5haWxcIiBbdGl0bGVdPVwiaGVhZGVyLnRpdGxlXCI+PC9tYW50bGUtY29udGVudC10aXRsZT5cblxuICAgICAgPGRpdiBmeEZsZXg9XCIxIDEgYXV0b1wiPjwvZGl2PlxuXG4gICAgICA8ZGl2IGZ4RmxleD1cIjAgMCBhdXRvXCIgKm5nSWY9XCIhZm9ybVBhZ2VTZXJ2aWNlLmhpZGVDYW5jZWxCdXR0b25cIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsQ2xpY2tlZCgpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmb3JtUGFnZVNlcnZpY2UuaXNDb21taXRJblByb2dyZXNzXCI+XG4gICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBmeEZsZXg9XCIxIDAgYXV0b1wiIGNsYXNzPVwibWFpbi1jb250ZW50XCI+XG4gICAgPG1hbnRsZS1keW5hbWljLWZvcm0gI2R5bmFtaWNGb3JtIFtjb250ZW50XT1cImNvbnRlbnQkIHwgYXN5bmNcIiBbZm9ybVBhZ2VTZXJ2aWNlXT1cImZvcm1QYWdlU2VydmljZVwiPjwvbWFudGxlLWR5bmFtaWMtZm9ybT5cbiAgPC9kaXY+XG5cbiAgPGRpdiBmeEZsZXg9XCIwIDAgYXV0b1wiIGNsYXNzPVwicGFnZS1mb290ZXJcIj5cbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBmeExheW91dEdhcD1cIjE2cHhcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBib3R0b21MZWZ0QnV0dG9uc1wiPlxuICAgICAgICA8ZGl2IGZ4RmxleD1cIjAgMCBhdXRvXCIgKm5nSWY9XCJidXR0b24uc2hvd1wiPlxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgICAgY29sb3I9XCJ7eyBidXR0b24uY29sb3IgfX1cIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhZGRpdGlvbmFsLWJ1dHRvblwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2luLXByb2dyZXNzLWJ1dHRvbic6IGJ1dHRvbi5pc0luUHJvZ3Jlc3MoKSB9XCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZvcm1QYWdlU2VydmljZS5pc0NvbW1pdEluUHJvZ3Jlc3MgfHwgYnV0dG9uLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImJ1dHRvbi5vbkNsaWNrKGR5bmFtaWNGb3JtPy52YWx1ZSlcIj5cbiAgICAgICAgICAgIHt7IGJ1dHRvbi5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPG1hdC1zcGlubmVyICpuZ0lmPVwiYnV0dG9uLmlzSW5Qcm9ncmVzcygpXCIgbWF0U3VmZml4IFtkaWFtZXRlcl09XCIxNlwiPjwvbWF0LXNwaW5uZXI+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxkaXYgZnhGbGV4PVwiMSAxIGF1dG9cIj48L2Rpdj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGJvdHRvbVJpZ2h0QnV0dG9uc1wiPlxuICAgICAgICA8ZGl2IGZ4RmxleD1cIjAgMCBhdXRvXCIgKm5nSWY9XCJidXR0b24uc2hvd1wiPlxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgICAgY29sb3I9XCJ7eyBidXR0b24uY29sb3IgfX1cIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhZGRpdGlvbmFsLWJ1dHRvblwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2luLXByb2dyZXNzLWJ1dHRvbic6IGJ1dHRvbi5pc0luUHJvZ3Jlc3MoKSB9XCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZvcm1QYWdlU2VydmljZS5pc0NvbW1pdEluUHJvZ3Jlc3MgfHwgYnV0dG9uLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImJ1dHRvbi5vbkNsaWNrKGR5bmFtaWNGb3JtPy52YWx1ZSlcIj5cbiAgICAgICAgICAgIHt7IGJ1dHRvbi5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPG1hdC1zcGlubmVyICpuZ0lmPVwiYnV0dG9uLmlzSW5Qcm9ncmVzcygpXCIgbWF0U3VmZml4IFtkaWFtZXRlcl09XCIxNlwiPjwvbWF0LXNwaW5uZXI+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxkaXYgZnhGbGV4PVwiMCAwIGF1dG9cIiAqbmdJZj1cImZvcm1QYWdlU2VydmljZS5zaG93U2F2ZUJ1dHRvblwiPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2luLXByb2dyZXNzLWJ1dHRvbic6IGlzU2F2ZUluUHJvZ3Jlc3MgfVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybVBhZ2VTZXJ2aWNlLmlzQ29tbWl0SW5Qcm9ncmVzcyB8fCAhZHluYW1pY0Zvcm0/LnZhbGlkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNhdmVDbGlja2VkKClcIj5cbiAgICAgICAgICB7eyAnbWFudGxlLmJ1dHRvbnMuc2F2ZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8bWF0LXNwaW5uZXIgKm5nSWY9XCJpc1NhdmVJblByb2dyZXNzXCIgbWF0U3VmZml4IFtkaWFtZXRlcl09XCIxNlwiPjwvbWF0LXNwaW5uZXI+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|