@valtimo/components 12.14.0 → 13.0.0
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/assets/css/carbon.scss +6 -1
- package/assets/css/color.scss +1 -1
- package/assets/css/compatibility.scss +51 -3
- package/assets/css/design-tokens.css +1 -1
- package/assets/css/formio-carbon.scss +16 -0
- package/assets/css/ng-multiselect-dropdown.theme.scss +1 -1
- package/fesm2022/valtimo-components.mjs +1854 -2411
- package/fesm2022/valtimo-components.mjs.map +1 -1
- package/lib/components/alert/alert.component.d.ts.map +1 -1
- package/lib/components/bpmn-js-diagram/bpmn-js-diagram.component.d.ts +2 -2
- package/lib/components/bpmn-js-diagram/bpmn-js-diagram.component.d.ts.map +1 -1
- package/lib/components/breadcrumb-navigation/breadcrumb-navigation.component.d.ts.map +1 -1
- package/lib/components/breadcrumb-navigation/breadcrumb.service.d.ts +7 -4
- package/lib/components/breadcrumb-navigation/breadcrumb.service.d.ts.map +1 -1
- package/lib/components/camunda/form/camunda-form.components.d.ts.map +1 -1
- package/lib/components/camunda/form/custom/camunda-custom-form.component.d.ts.map +1 -1
- package/lib/components/camunda/form/generated/camunda-generated-form.component.d.ts.map +1 -1
- package/lib/components/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.d.ts.map +1 -1
- package/lib/components/camunda/form/generated/formfield/camunda-formfield-generator.directive.d.ts.map +1 -1
- package/lib/components/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.d.ts.map +1 -1
- package/lib/components/camunda/form/generated/formfield/date/camunda-date-formfield.component.d.ts.map +1 -1
- package/lib/components/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.d.ts.map +1 -1
- package/lib/components/camunda/form/generated/formfield/long/camunda-long-formfield.component.d.ts.map +1 -1
- package/lib/components/camunda/form/generated/formfield/string/camunda-string-formfield.component.d.ts.map +1 -1
- package/lib/components/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.d.ts.map +1 -1
- package/lib/components/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.d.ts.map +1 -1
- package/lib/components/carbon-list/CarbonListFilterPipe.directive.d.ts.map +1 -1
- package/lib/components/carbon-list/carbon-list.component.d.ts +3 -2
- package/lib/components/carbon-list/carbon-list.component.d.ts.map +1 -1
- package/lib/components/carbon-list/carbon-list.module.d.ts +8 -9
- package/lib/components/carbon-list/carbon-list.module.d.ts.map +1 -1
- package/lib/components/carbon-list/no-results/carbon-no-results.component.d.ts.map +1 -1
- package/lib/components/carbon-list/tags-modal/tags-modal.component.d.ts.map +1 -1
- package/lib/components/confirmation-modal/confirmation-modal.component.d.ts +1 -1
- package/lib/components/confirmation-modal/confirmation-modal.component.d.ts.map +1 -1
- package/lib/components/confirmation-modal/confirmation-modal.module.d.ts +2 -2
- package/lib/components/confirmation-modal/confirmation-modal.module.d.ts.map +1 -1
- package/lib/components/data-list/data-list.component.d.ts.map +1 -1
- package/lib/components/date-picker/date-picker.component.d.ts.map +1 -1
- package/lib/components/dropzone/dropzone.component.d.ts.map +1 -1
- package/lib/components/editor/editor.component.d.ts.map +1 -1
- package/lib/components/editor/editor.module.d.ts +2 -2
- package/lib/components/editor/editor.service.d.ts.map +1 -1
- package/lib/components/expansion-panel/expansion-panel.component.d.ts.map +1 -1
- package/lib/components/field-auto-focus/field-auto-focus.directive.d.ts.map +1 -1
- package/lib/components/file-size/file-size.pipe.d.ts.map +1 -1
- package/lib/components/filter-sidebar/filter-sidebar.component.d.ts.map +1 -1
- package/lib/components/form/form.component.d.ts.map +1 -1
- package/lib/components/form-io/form-io-builder.component.d.ts +14 -4
- package/lib/components/form-io/form-io-builder.component.d.ts.map +1 -1
- package/lib/components/form-io/form-io-builder.utils.d.ts.map +1 -1
- package/lib/components/form-io/form-io-currency/currency.component.d.ts.map +1 -1
- package/lib/components/form-io/form-io-currency/currency.formio.d.ts.map +1 -1
- package/lib/components/form-io/form-io-current-user/form-io-current-user.component.d.ts.map +1 -1
- package/lib/components/form-io/form-io-dummy/dummy.component.d.ts.map +1 -1
- package/lib/components/form-io/form-io-dummy/dummy.formio.d.ts.map +1 -1
- package/lib/components/form-io/form-io-iban/iban.component.d.ts.map +1 -1
- package/lib/components/form-io/form-io-iban/iban.formio.d.ts.map +1 -1
- package/lib/components/form-io/form-io-iban/iban.validators.d.ts.map +1 -1
- package/lib/components/form-io/form-io-uploader/form-io-uploader.component.d.ts.map +1 -1
- package/lib/components/form-io/form-io.component.d.ts +7 -4
- package/lib/components/form-io/form-io.component.d.ts.map +1 -1
- package/lib/components/form-io/formio-config.d.ts +1 -1
- package/lib/components/form-io/formio-config.d.ts.map +1 -1
- package/lib/components/form-io/services/form-io.tags.service.d.ts +11 -0
- package/lib/components/form-io/services/form-io.tags.service.d.ts.map +1 -0
- package/lib/components/input/input.component.d.ts +3 -0
- package/lib/components/input/input.component.d.ts.map +1 -1
- package/lib/components/input/input.module.d.ts +2 -3
- package/lib/components/input/input.module.d.ts.map +1 -1
- package/lib/components/input-label/input-label.component.d.ts.map +1 -1
- package/lib/components/left-sidebar/left-sidebar.component.d.ts +1 -1
- package/lib/components/left-sidebar/left-sidebar.component.d.ts.map +1 -1
- package/lib/components/left-sidebar/left-sidebar.module.d.ts +2 -2
- package/lib/components/menu/menu-item-text.component.d.ts +1 -1
- package/lib/components/menu/menu-item-text.component.d.ts.map +1 -1
- package/lib/components/menu/menu.service.d.ts +8 -4
- package/lib/components/menu/menu.service.d.ts.map +1 -1
- package/lib/components/modal/modal.component.d.ts.map +1 -1
- package/lib/components/multi-input/carbon-multi-input.component.d.ts +3 -3
- package/lib/components/multi-input/carbon-multi-input.component.d.ts.map +1 -1
- package/lib/components/multi-input/carbon-multi-input.module.d.ts +10 -11
- package/lib/components/multi-input/carbon-multi-input.module.d.ts.map +1 -1
- package/lib/components/multi-input/components/key-value/key-value.component.d.ts.map +1 -1
- package/lib/components/multi-input/components/key-value-path-selector/key-value-path-selector.component.d.ts +3 -3
- package/lib/components/multi-input/components/key-value-path-selector/key-value-path-selector.component.d.ts.map +1 -1
- package/lib/components/multi-input/components/value-path-selector-dropdown-value/value-path-selector-dropdown-value.component.d.ts +3 -3
- package/lib/components/multi-input/components/value-path-selector-dropdown-value/value-path-selector-dropdown-value.component.d.ts.map +1 -1
- package/lib/components/multi-input/components/value-path-selector-value/value-path-selector-value.component.d.ts +3 -3
- package/lib/components/multi-input/components/value-path-selector-value/value-path-selector-value.component.d.ts.map +1 -1
- package/lib/components/multi-input-form/multi-input-form.component.d.ts +3 -0
- package/lib/components/multi-input-form/multi-input-form.component.d.ts.map +1 -1
- package/lib/components/multi-input-form/multi-input-form.module.d.ts +2 -2
- package/lib/components/multi-input-form/multi-input-form.module.d.ts.map +1 -1
- package/lib/components/multiselect-dropdown/multiselect-dropdown.component.d.ts.map +1 -1
- package/lib/components/page-header/page-header.component.d.ts.map +1 -1
- package/lib/components/page-header/page-header.module.d.ts +2 -2
- package/lib/components/page-subtitle/page-subtitle.component.d.ts.map +1 -1
- package/lib/components/page-title/page-title.component.d.ts +1 -1
- package/lib/components/page-title/page-title.component.d.ts.map +1 -1
- package/lib/components/paragraph/paragraph.component.d.ts.map +1 -1
- package/lib/components/progress-bar/progress-bar.component.d.ts.map +1 -1
- package/lib/components/prompt/prompt.component.d.ts +0 -4
- package/lib/components/prompt/prompt.component.d.ts.map +1 -1
- package/lib/components/prompt/prompt.module.d.ts +3 -4
- package/lib/components/prompt/prompt.module.d.ts.map +1 -1
- package/lib/components/radio/radio.component.d.ts.map +1 -1
- package/lib/components/radio/radio.module.d.ts +2 -3
- package/lib/components/radio/radio.module.d.ts.map +1 -1
- package/lib/components/render-in-body/render-in-body.component.d.ts +14 -0
- package/lib/components/render-in-body/render-in-body.component.d.ts.map +1 -0
- package/lib/components/right-sidebar/right-sidebar.component.d.ts +1 -1
- package/lib/components/right-sidebar/right-sidebar.component.d.ts.map +1 -1
- package/lib/components/search-fields/search-fields.component.d.ts +5 -5
- package/lib/components/search-fields/search-fields.component.d.ts.map +1 -1
- package/lib/components/searchable-dropdown/searchable-dropdown.component.d.ts.map +1 -1
- package/lib/components/searchable-dropdown-select/searchable-dropdown-select.component.d.ts.map +1 -1
- package/lib/components/select/select.component.d.ts.map +1 -1
- package/lib/components/spinner/spinner.component.d.ts.map +1 -1
- package/lib/components/stepper/stepper-container/stepper-container.component.d.ts.map +1 -1
- package/lib/components/stepper/stepper-content/stepper-content.component.d.ts.map +1 -1
- package/lib/components/stepper/stepper-footer/stepper-footer.component.d.ts.map +1 -1
- package/lib/components/stepper/stepper-footer-step/stepper-footer-step.component.d.ts.map +1 -1
- package/lib/components/stepper/stepper-header/stepper-header.component.d.ts.map +1 -1
- package/lib/components/stepper/stepper-step/stepper-step.component.d.ts.map +1 -1
- package/lib/components/stepper/stepper.module.d.ts +2 -3
- package/lib/components/stepper/stepper.module.d.ts.map +1 -1
- package/lib/components/table/table.component.d.ts.map +1 -1
- package/lib/components/table/table.module.d.ts +1 -1
- package/lib/components/timeline/timeline.component.d.ts +7 -3
- package/lib/components/timeline/timeline.component.d.ts.map +1 -1
- package/lib/components/timeline/timeline.module.d.ts +2 -1
- package/lib/components/timeline/timeline.module.d.ts.map +1 -1
- package/lib/components/tooltip-icon/tooltip-icon.component.d.ts.map +1 -1
- package/lib/components/topbar/topbar.component.d.ts +1 -1
- package/lib/components/topbar/topbar.component.d.ts.map +1 -1
- package/lib/components/uploader/uploader-drag-drop.directive.d.ts.map +1 -1
- package/lib/components/uploader/uploader.component.d.ts.map +1 -1
- package/lib/components/v-modal/modal.component.d.ts.map +1 -1
- package/lib/components/v-modal/modal.module.d.ts +2 -6
- package/lib/components/v-modal/modal.module.d.ts.map +1 -1
- package/lib/components/value-path-selector/value-path-selector.component.d.ts +11 -12
- package/lib/components/value-path-selector/value-path-selector.component.d.ts.map +1 -1
- package/lib/components/version/version.service.d.ts +1 -1
- package/lib/components/webcam/webcam.component.d.ts.map +1 -1
- package/lib/components/widget/widget.component.d.ts.map +1 -1
- package/lib/constants/carbon.constants.d.ts +0 -1
- package/lib/constants/carbon.constants.d.ts.map +1 -1
- package/lib/directives/{command-click/command-click.directive.d.ts → ctrl-click/ctrl-click.directive.d.ts} +2 -2
- package/lib/directives/ctrl-click/ctrl-click.directive.d.ts.map +1 -0
- package/lib/directives/digit-only/digit-only.directive.d.ts.map +1 -1
- package/lib/directives/fit-page/fit-page.directive.d.ts +6 -2
- package/lib/directives/fit-page/fit-page.directive.d.ts.map +1 -1
- package/lib/directives/muuri/muuri-directive.module.d.ts +10 -0
- package/lib/directives/muuri/muuri-directive.module.d.ts.map +1 -0
- package/lib/directives/muuri/muuri-item.component.d.ts +8 -0
- package/lib/directives/muuri/muuri-item.component.d.ts.map +1 -0
- package/lib/directives/muuri/muuri.directive.d.ts +27 -0
- package/lib/directives/muuri/muuri.directive.d.ts.map +1 -0
- package/lib/directives/read-only.directive.d.ts +15 -0
- package/lib/directives/read-only.directive.d.ts.map +1 -0
- package/lib/directives/remove-classnames/remove-classnames.directive.d.ts.map +1 -1
- package/lib/directives/render-in-page-header/render-in-page-header.directive.d.ts +1 -1
- package/lib/directives/render-page-header/render-page-header.directive.d.ts +1 -1
- package/lib/directives/render-page-subtitle/render-page-subtitle.directive.d.ts +1 -1
- package/lib/directives/tooltip/tooltip.component.d.ts.map +1 -1
- package/lib/directives/valtimo-cds-modal/valtimo-cds-modal.directive.d.ts +1 -1
- package/lib/directives/valtimo-cds-modal/valtimo-cds-modal.directive.d.ts.map +1 -1
- package/lib/directives/valtimo-cds-overflow-button/valtimo-cds-overflow-button.directive.d.ts +3 -2
- package/lib/directives/valtimo-cds-overflow-button/valtimo-cds-overflow-button.directive.d.ts.map +1 -1
- package/lib/models/carbon-list.model.d.ts +1 -1
- package/lib/models/carbon-list.model.d.ts.map +1 -1
- package/lib/models/form-io.model.d.ts +86 -5
- package/lib/models/form-io.model.d.ts.map +1 -1
- package/lib/models/value-path-selector.model.d.ts +1 -2
- package/lib/models/value-path-selector.model.d.ts.map +1 -1
- package/lib/modules/custom-formio-component/create-custom-component.d.ts +39 -33
- package/lib/modules/custom-formio-component/create-custom-component.d.ts.map +1 -1
- package/lib/modules/custom-formio-component/elements.common.d.ts +1 -1
- package/lib/modules/custom-formio-component/elements.common.d.ts.map +1 -1
- package/lib/modules/custom-formio-component/index.d.ts +0 -1
- package/lib/modules/custom-formio-component/index.d.ts.map +1 -1
- package/lib/modules/custom-formio-component/register-custom-component.d.ts +0 -1
- package/lib/modules/custom-formio-component/register-custom-component.d.ts.map +1 -1
- package/lib/pipes/ellipsis.pipe.d.ts.map +1 -1
- package/lib/pipes/menu-item-translation.pipe.d.ts +1 -1
- package/lib/services/choice-field.service.d.ts +1 -1
- package/lib/services/key-state.service.d.ts.map +1 -1
- package/lib/services/page-header.service.d.ts +1 -1
- package/lib/services/page-title.service.d.ts +1 -0
- package/lib/services/page-title.service.d.ts.map +1 -1
- package/lib/services/prompt.service.d.ts +0 -13
- package/lib/services/prompt.service.d.ts.map +1 -1
- package/lib/services/shell.service.d.ts +1 -1
- package/lib/services/valtimo-modal.service.d.ts +3 -3
- package/lib/services/valtimo-modal.service.d.ts.map +1 -1
- package/lib/services/value-path-selector.service.d.ts +9 -9
- package/lib/services/value-path-selector.service.d.ts.map +1 -1
- package/package.json +22 -23
- package/public_api.d.ts +9 -25
- package/public_api.d.ts.map +1 -1
- package/esm2022/lib/components/alert/alert.component.mjs +0 -137
- package/esm2022/lib/components/alert/alert.module.mjs +0 -33
- package/esm2022/lib/components/alert/alert.service.mjs +0 -80
- package/esm2022/lib/components/bpmn-js-diagram/bpmn-js-diagram.component.mjs +0 -168
- package/esm2022/lib/components/bpmn-js-diagram/bpmn-js-diagram.module.mjs +0 -33
- package/esm2022/lib/components/breadcrumb-navigation/breadcrumb-navigation.component.mjs +0 -57
- package/esm2022/lib/components/breadcrumb-navigation/breadcrumb-navigation.module.mjs +0 -36
- package/esm2022/lib/components/breadcrumb-navigation/breadcrumb.service.mjs +0 -127
- package/esm2022/lib/components/button/button.component.mjs +0 -99
- package/esm2022/lib/components/button/button.module.mjs +0 -37
- package/esm2022/lib/components/camunda/form/camunda-form.components.mjs +0 -41
- package/esm2022/lib/components/camunda/form/camunda-form.module.mjs +0 -35
- package/esm2022/lib/components/camunda/form/custom/camunda-custom-form.component.mjs +0 -40
- package/esm2022/lib/components/camunda/form/custom/camunda-custom-form.module.mjs +0 -33
- package/esm2022/lib/components/camunda/form/generated/camunda-generated-form.component.mjs +0 -67
- package/esm2022/lib/components/camunda/form/generated/camunda-generated-form.module.mjs +0 -63
- package/esm2022/lib/components/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.mjs +0 -30
- package/esm2022/lib/components/camunda/form/generated/formfield/camunda-formfield-generator.directive.mjs +0 -63
- package/esm2022/lib/components/camunda/form/generated/formfield/camunda-formfield.service.mjs +0 -67
- package/esm2022/lib/components/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.mjs +0 -41
- package/esm2022/lib/components/camunda/form/generated/formfield/date/camunda-date-formfield.component.mjs +0 -66
- package/esm2022/lib/components/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.mjs +0 -33
- package/esm2022/lib/components/camunda/form/generated/formfield/formfield.model.mjs +0 -17
- package/esm2022/lib/components/camunda/form/generated/formfield/long/camunda-long-formfield.component.mjs +0 -30
- package/esm2022/lib/components/camunda/form/generated/formfield/string/camunda-string-formfield.component.mjs +0 -30
- package/esm2022/lib/components/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.mjs +0 -30
- package/esm2022/lib/components/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.mjs +0 -35
- package/esm2022/lib/components/camunda/form/generated/formfield/validation/date.validators.mjs +0 -55
- package/esm2022/lib/components/carbon-list/CarbonListFilterPipe.directive.mjs +0 -34
- package/esm2022/lib/components/carbon-list/carbon-list.component.mjs +0 -603
- package/esm2022/lib/components/carbon-list/carbon-list.module.mjs +0 -103
- package/esm2022/lib/components/carbon-list/no-results/carbon-no-results.component.mjs +0 -71
- package/esm2022/lib/components/carbon-list/services/carbon-list-drag-and-drop.service.mjs +0 -165
- package/esm2022/lib/components/carbon-list/services/index.mjs +0 -17
- package/esm2022/lib/components/carbon-list/tags-modal/tags-modal.component.mjs +0 -35
- package/esm2022/lib/components/card/card.component.mjs +0 -34
- package/esm2022/lib/components/card/card.module.mjs +0 -33
- package/esm2022/lib/components/case-tags-selector/case-tags-selector.component.mjs +0 -80
- package/esm2022/lib/components/confirmation-modal/confirmation-modal.component.mjs +0 -119
- package/esm2022/lib/components/confirmation-modal/confirmation-modal.module.mjs +0 -50
- package/esm2022/lib/components/data-list/data-list.component.mjs +0 -31
- package/esm2022/lib/components/data-list/data-list.module.mjs +0 -33
- package/esm2022/lib/components/date-picker/date-picker.component.mjs +0 -166
- package/esm2022/lib/components/date-picker/date-picker.module.mjs +0 -40
- package/esm2022/lib/components/dropzone/dropzone.component.mjs +0 -168
- package/esm2022/lib/components/dropzone/dropzone.module.mjs +0 -37
- package/esm2022/lib/components/editor/editor.component.mjs +0 -189
- package/esm2022/lib/components/editor/editor.module.mjs +0 -34
- package/esm2022/lib/components/editor/editor.service.mjs +0 -87
- package/esm2022/lib/components/expansion-panel/expansion-panel.component.mjs +0 -41
- package/esm2022/lib/components/expansion-panel/expansion-panel.module.mjs +0 -35
- package/esm2022/lib/components/field-auto-focus/field-auto-focus.directive.mjs +0 -36
- package/esm2022/lib/components/field-auto-focus/field-auto-focus.module.mjs +0 -33
- package/esm2022/lib/components/file-size/file-size.module.mjs +0 -33
- package/esm2022/lib/components/file-size/file-size.pipe.mjs +0 -42
- package/esm2022/lib/components/filter-sidebar/filter-sidebar.component.mjs +0 -46
- package/esm2022/lib/components/filter-sidebar/filter-sidebar.module.mjs +0 -33
- package/esm2022/lib/components/form/form.component.mjs +0 -146
- package/esm2022/lib/components/form/form.module.mjs +0 -33
- package/esm2022/lib/components/form-io/form-io-builder.component.mjs +0 -82
- package/esm2022/lib/components/form-io/form-io-builder.utils.mjs +0 -53
- package/esm2022/lib/components/form-io/form-io-currency/currency-edit-form.mjs +0 -96
- package/esm2022/lib/components/form-io/form-io-currency/currency.component.mjs +0 -108
- package/esm2022/lib/components/form-io/form-io-currency/currency.formio.mjs +0 -24
- package/esm2022/lib/components/form-io/form-io-current-user/form-io-current-user-edit-form.mjs +0 -64
- package/esm2022/lib/components/form-io/form-io-current-user/form-io-current-user.component.mjs +0 -41
- package/esm2022/lib/components/form-io/form-io-current-user/form-io-current-user.formio.mjs +0 -34
- package/esm2022/lib/components/form-io/form-io-dummy/dummy.component.mjs +0 -27
- package/esm2022/lib/components/form-io/form-io-dummy/dummy.formio.mjs +0 -20
- package/esm2022/lib/components/form-io/form-io-iban/iban.component.mjs +0 -61
- package/esm2022/lib/components/form-io/form-io-iban/iban.formio.mjs +0 -22
- package/esm2022/lib/components/form-io/form-io-iban/iban.validators.mjs +0 -26
- package/esm2022/lib/components/form-io/form-io-resource-selector/form-io-resource-selector.formio.mjs +0 -84
- package/esm2022/lib/components/form-io/form-io-uploader/form-io-uploader-edit-form.mjs +0 -115
- package/esm2022/lib/components/form-io/form-io-uploader/form-io-uploader.component.mjs +0 -93
- package/esm2022/lib/components/form-io/form-io-uploader/form-io-uploader.formio.mjs +0 -49
- package/esm2022/lib/components/form-io/form-io.component.mjs +0 -237
- package/esm2022/lib/components/form-io/form-io.module.mjs +0 -127
- package/esm2022/lib/components/form-io/formio-config.mjs +0 -27
- package/esm2022/lib/components/form-io/formio-value-resolver-selector/formio-value-resolver-selector-edit-form.mjs +0 -19
- package/esm2022/lib/components/form-io/formio-value-resolver-selector/formio-value-resolver-selector.component.mjs +0 -57
- package/esm2022/lib/components/form-io/formio-value-resolver-selector/formio-value-resolver-selector.formio.mjs +0 -42
- package/esm2022/lib/components/form-io/services/form-io-dom.service.mjs +0 -38
- package/esm2022/lib/components/form-io/services/form-io-local-storage.service.mjs +0 -68
- package/esm2022/lib/components/form-io/services/form-io-state.service.mjs +0 -69
- package/esm2022/lib/components/input/input.component.mjs +0 -176
- package/esm2022/lib/components/input/input.module.mjs +0 -59
- package/esm2022/lib/components/input-label/input-label.component.mjs +0 -84
- package/esm2022/lib/components/input-label/input-label.module.mjs +0 -55
- package/esm2022/lib/components/left-sidebar/left-sidebar.component.mjs +0 -129
- package/esm2022/lib/components/left-sidebar/left-sidebar.module.mjs +0 -58
- package/esm2022/lib/components/list/ListFilterPipe.directive.mjs +0 -35
- package/esm2022/lib/components/list/list.component.mjs +0 -202
- package/esm2022/lib/components/list/list.module.mjs +0 -56
- package/esm2022/lib/components/menu/menu-item-text.component.mjs +0 -54
- package/esm2022/lib/components/menu/menu-routing.module.mjs +0 -33
- package/esm2022/lib/components/menu/menu.init.mjs +0 -32
- package/esm2022/lib/components/menu/menu.module.mjs +0 -58
- package/esm2022/lib/components/menu/menu.service.mjs +0 -247
- package/esm2022/lib/components/modal/modal.component.mjs +0 -85
- package/esm2022/lib/components/modal/modal.module.mjs +0 -33
- package/esm2022/lib/components/multi-input/carbon-multi-input.component.mjs +0 -300
- package/esm2022/lib/components/multi-input/carbon-multi-input.module.mjs +0 -86
- package/esm2022/lib/components/multi-input/components/arbitrary-amount-value/arbitrary-amount-value.component.mjs +0 -63
- package/esm2022/lib/components/multi-input/components/arbitrary-amount-value/index.mjs +0 -17
- package/esm2022/lib/components/multi-input/components/index.mjs +0 -23
- package/esm2022/lib/components/multi-input/components/key-dropdown-value/index.mjs +0 -17
- package/esm2022/lib/components/multi-input/components/key-dropdown-value/key-dropdown-value.component.mjs +0 -71
- package/esm2022/lib/components/multi-input/components/key-value/index.mjs +0 -17
- package/esm2022/lib/components/multi-input/components/key-value/key-value.component.mjs +0 -62
- package/esm2022/lib/components/multi-input/components/key-value-path-selector/index.mjs +0 -17
- package/esm2022/lib/components/multi-input/components/key-value-path-selector/key-value-path-selector.component.mjs +0 -82
- package/esm2022/lib/components/multi-input/components/single-value/index.mjs +0 -17
- package/esm2022/lib/components/multi-input/components/single-value/single-value.component.mjs +0 -49
- package/esm2022/lib/components/multi-input/components/value-path-selector-dropdown-value/index.mjs +0 -17
- package/esm2022/lib/components/multi-input/components/value-path-selector-dropdown-value/value-path-selector-dropdown-value.component.mjs +0 -92
- package/esm2022/lib/components/multi-input/components/value-path-selector-value/index.mjs +0 -17
- package/esm2022/lib/components/multi-input/components/value-path-selector-value/value-path-selector-value.component.mjs +0 -82
- package/esm2022/lib/components/multi-input-form/default-value.pipe.mjs +0 -33
- package/esm2022/lib/components/multi-input-form/multi-input-form.component.mjs +0 -201
- package/esm2022/lib/components/multi-input-form/multi-input-form.module.mjs +0 -58
- package/esm2022/lib/components/multiselect-dropdown/multiselect-dropdown.component.mjs +0 -52
- package/esm2022/lib/components/multiselect-dropdown/multiselect-dropdown.module.mjs +0 -35
- package/esm2022/lib/components/page/page-container/page-container.component.mjs +0 -29
- package/esm2022/lib/components/page/page-content/page-content.component.mjs +0 -29
- package/esm2022/lib/components/page/page-header/page-header.component.mjs +0 -29
- package/esm2022/lib/components/page/page-header-actions/page-header-actions.component.mjs +0 -29
- package/esm2022/lib/components/page/page-header-introduction/page-header-introduction.component.mjs +0 -29
- package/esm2022/lib/components/page/page.module.mjs +0 -60
- package/esm2022/lib/components/page-actions/page-actions.component.mjs +0 -82
- package/esm2022/lib/components/page-header/page-header.component.mjs +0 -66
- package/esm2022/lib/components/page-header/page-header.module.mjs +0 -55
- package/esm2022/lib/components/page-subtitle/page-subtitle.component.mjs +0 -53
- package/esm2022/lib/components/page-title/page-title.component.mjs +0 -116
- package/esm2022/lib/components/page-title/page-title.module.mjs +0 -35
- package/esm2022/lib/components/paragraph/paragraph.component.mjs +0 -50
- package/esm2022/lib/components/paragraph/paragraph.module.mjs +0 -37
- package/esm2022/lib/components/pending-changes/pending-changes.component.mjs +0 -91
- package/esm2022/lib/components/pending-changes/pending-changes.service.mjs +0 -37
- package/esm2022/lib/components/progress-bar/progress-bar.component.mjs +0 -26
- package/esm2022/lib/components/progress-bar/progress-bar.module.mjs +0 -33
- package/esm2022/lib/components/prompt/prompt.component.mjs +0 -74
- package/esm2022/lib/components/prompt/prompt.module.mjs +0 -39
- package/esm2022/lib/components/radio/radio.component.mjs +0 -116
- package/esm2022/lib/components/radio/radio.module.mjs +0 -55
- package/esm2022/lib/components/right-sidebar/right-sidebar.component.mjs +0 -309
- package/esm2022/lib/components/right-sidebar/right-sidebar.module.mjs +0 -98
- package/esm2022/lib/components/search-fields/search-fields.component.mjs +0 -241
- package/esm2022/lib/components/search-fields/search-fields.module.mjs +0 -90
- package/esm2022/lib/components/searchable-dropdown/searchable-dropdown.component.mjs +0 -201
- package/esm2022/lib/components/searchable-dropdown/searchable-dropdown.module.mjs +0 -34
- package/esm2022/lib/components/searchable-dropdown-select/searchable-dropdown-select.component.mjs +0 -71
- package/esm2022/lib/components/searchable-dropdown-select/searchable-dropdown-select.module.mjs +0 -35
- package/esm2022/lib/components/select/select.component.mjs +0 -200
- package/esm2022/lib/components/select/select.module.mjs +0 -37
- package/esm2022/lib/components/spinner/spinner.component.mjs +0 -54
- package/esm2022/lib/components/spinner/spinner.module.mjs +0 -35
- package/esm2022/lib/components/status-selector/status-selector.component.mjs +0 -86
- package/esm2022/lib/components/stepper/stepper-container/stepper-container.component.mjs +0 -91
- package/esm2022/lib/components/stepper/stepper-content/stepper-content.component.mjs +0 -52
- package/esm2022/lib/components/stepper/stepper-footer/stepper-footer.component.mjs +0 -43
- package/esm2022/lib/components/stepper/stepper-footer-step/stepper-footer-step.component.mjs +0 -71
- package/esm2022/lib/components/stepper/stepper-header/stepper-header.component.mjs +0 -37
- package/esm2022/lib/components/stepper/stepper-step/stepper-step.component.mjs +0 -39
- package/esm2022/lib/components/stepper/stepper.module.mjs +0 -68
- package/esm2022/lib/components/table/table.component.mjs +0 -172
- package/esm2022/lib/components/table/table.module.mjs +0 -58
- package/esm2022/lib/components/timeline/timeline.component.mjs +0 -42
- package/esm2022/lib/components/timeline/timeline.module.mjs +0 -35
- package/esm2022/lib/components/title/title.component.mjs +0 -57
- package/esm2022/lib/components/title/title.module.mjs +0 -36
- package/esm2022/lib/components/tooltip-icon/tooltip-icon.component.mjs +0 -39
- package/esm2022/lib/components/tooltip-icon/tooltip-icon.module.mjs +0 -39
- package/esm2022/lib/components/topbar/topbar.component.mjs +0 -127
- package/esm2022/lib/components/topbar/topbar.module.mjs +0 -36
- package/esm2022/lib/components/uploader/uploader-drag-drop.directive.mjs +0 -58
- package/esm2022/lib/components/uploader/uploader.component.mjs +0 -69
- package/esm2022/lib/components/uploader/uploader.module.mjs +0 -35
- package/esm2022/lib/components/v-card/card.component.mjs +0 -80
- package/esm2022/lib/components/v-card/card.module.mjs +0 -38
- package/esm2022/lib/components/v-modal/modal.component.mjs +0 -73
- package/esm2022/lib/components/v-modal/modal.module.mjs +0 -38
- package/esm2022/lib/components/value-path-selector/index.mjs +0 -17
- package/esm2022/lib/components/value-path-selector/value-path-selector.component.mjs +0 -317
- package/esm2022/lib/components/version/version.service.mjs +0 -38
- package/esm2022/lib/components/view-content/type-converters/booleanTypeConverter.mjs +0 -31
- package/esm2022/lib/components/view-content/type-converters/currencyTypeConverter.mjs +0 -43
- package/esm2022/lib/components/view-content/type-converters/dateTimeTypeConverter.mjs +0 -30
- package/esm2022/lib/components/view-content/type-converters/dateTypeConverter.mjs +0 -30
- package/esm2022/lib/components/view-content/type-converters/enumTypeConverter.mjs +0 -26
- package/esm2022/lib/components/view-content/type-converters/numberTypeConverter.mjs +0 -43
- package/esm2022/lib/components/view-content/type-converters/percentTypeConverter.mjs +0 -43
- package/esm2022/lib/components/view-content/type-converters/relatedFilesTypeConverter.mjs +0 -24
- package/esm2022/lib/components/view-content/type-converters/stringReplaceUnderscoreTypeConverter.mjs +0 -27
- package/esm2022/lib/components/view-content/type-converters/stringTypeConverter.mjs +0 -28
- package/esm2022/lib/components/view-content/type-converters/type-converters.model.mjs +0 -80
- package/esm2022/lib/components/view-content/view-content.module.mjs +0 -33
- package/esm2022/lib/components/view-content/view-content.service.mjs +0 -49
- package/esm2022/lib/components/webcam/webcam.component.mjs +0 -102
- package/esm2022/lib/components/webcam/webcam.module.mjs +0 -34
- package/esm2022/lib/components/widget/widget.component.mjs +0 -89
- package/esm2022/lib/components/widget/widget.module.mjs +0 -33
- package/esm2022/lib/constants/carbon.constants.mjs +0 -21
- package/esm2022/lib/constants/index.mjs +0 -19
- package/esm2022/lib/constants/status.constants.mjs +0 -18
- package/esm2022/lib/constants/view-type-converter.constants.mjs +0 -18
- package/esm2022/lib/directives/command-click/command-click-directive.module.mjs +0 -33
- package/esm2022/lib/directives/command-click/command-click.directive.mjs +0 -52
- package/esm2022/lib/directives/digit-only/digit-only.directive.mjs +0 -283
- package/esm2022/lib/directives/fit-page/fit-page-directive.module.mjs +0 -33
- package/esm2022/lib/directives/fit-page/fit-page.directive.mjs +0 -54
- package/esm2022/lib/directives/remove-classnames/remove-classnames.directive.mjs +0 -53
- package/esm2022/lib/directives/render-in-page-header/render-in-page-header-directive.module.mjs +0 -33
- package/esm2022/lib/directives/render-in-page-header/render-in-page-header.directive.mjs +0 -60
- package/esm2022/lib/directives/render-page-header/render-page-header-directive.module.mjs +0 -33
- package/esm2022/lib/directives/render-page-header/render-page-header.directive.mjs +0 -56
- package/esm2022/lib/directives/render-page-subtitle/render-page-subtitle-directive.module.mjs +0 -33
- package/esm2022/lib/directives/render-page-subtitle/render-page-subtitle.directive.mjs +0 -57
- package/esm2022/lib/directives/tooltip/tooltip.component.mjs +0 -42
- package/esm2022/lib/directives/tooltip/tooltip.directive.mjs +0 -76
- package/esm2022/lib/directives/tooltip/tooltip.module.mjs +0 -35
- package/esm2022/lib/directives/valtimo-cds-modal/valtimo-cds-modal-directive.module.mjs +0 -33
- package/esm2022/lib/directives/valtimo-cds-modal/valtimo-cds-modal.directive.mjs +0 -109
- package/esm2022/lib/directives/valtimo-cds-overflow-button/valtimo-cds-overflow-button-directive.module.mjs +0 -33
- package/esm2022/lib/directives/valtimo-cds-overflow-button/valtimo-cds-overflow-button.directive.mjs +0 -82
- package/esm2022/lib/guards/index.mjs +0 -17
- package/esm2022/lib/guards/pending-changes.guard.mjs +0 -2
- package/esm2022/lib/models/alert.model.mjs +0 -30
- package/esm2022/lib/models/button.model.mjs +0 -17
- package/esm2022/lib/models/carbon-list.model.mjs +0 -31
- package/esm2022/lib/models/carbon-pagination.model.mjs +0 -21
- package/esm2022/lib/models/carbon-tag.model.mjs +0 -17
- package/esm2022/lib/models/carbon-theme.model.mjs +0 -24
- package/esm2022/lib/models/choice-field.model.mjs +0 -17
- package/esm2022/lib/models/choicefield-value.model.mjs +0 -17
- package/esm2022/lib/models/documenten-api-metadata.model.mjs +0 -17
- package/esm2022/lib/models/editor.model.mjs +0 -22
- package/esm2022/lib/models/form-io.model.mjs +0 -30
- package/esm2022/lib/models/form.model.mjs +0 -17
- package/esm2022/lib/models/index.mjs +0 -47
- package/esm2022/lib/models/input.model.mjs +0 -17
- package/esm2022/lib/models/modal.model.mjs +0 -17
- package/esm2022/lib/models/multi-input.model.mjs +0 -17
- package/esm2022/lib/models/pagination.model.mjs +0 -24
- package/esm2022/lib/models/radio.model.mjs +0 -17
- package/esm2022/lib/models/right-sidebar.model.mjs +0 -17
- package/esm2022/lib/models/searchable-dropdown.model.mjs +0 -17
- package/esm2022/lib/models/select.model.mjs +0 -17
- package/esm2022/lib/models/sort.model.mjs +0 -17
- package/esm2022/lib/models/stepper.model.mjs +0 -17
- package/esm2022/lib/models/table.model.mjs +0 -17
- package/esm2022/lib/models/theme.model.mjs +0 -30
- package/esm2022/lib/models/timeline.model.mjs +0 -52
- package/esm2022/lib/models/title.model.mjs +0 -17
- package/esm2022/lib/models/topbar.model.mjs +0 -17
- package/esm2022/lib/models/value-path-selector.model.mjs +0 -36
- package/esm2022/lib/models/version.model.mjs +0 -17
- package/esm2022/lib/modules/custom-formio-component/create-custom-component.mjs +0 -162
- package/esm2022/lib/modules/custom-formio-component/custom-tags.service.mjs +0 -32
- package/esm2022/lib/modules/custom-formio-component/elements.common.mjs +0 -17
- package/esm2022/lib/modules/custom-formio-component/index.mjs +0 -20
- package/esm2022/lib/modules/custom-formio-component/register-custom-component.mjs +0 -42
- package/esm2022/lib/modules/index.mjs +0 -17
- package/esm2022/lib/pipes/case-count.pipe.mjs +0 -35
- package/esm2022/lib/pipes/components-pipes.module.mjs +0 -31
- package/esm2022/lib/pipes/ellipsis.pipe.mjs +0 -16
- package/esm2022/lib/pipes/index.mjs +0 -21
- package/esm2022/lib/pipes/is-array.pipe.mjs +0 -29
- package/esm2022/lib/pipes/menu-item-translation.pipe.mjs +0 -47
- package/esm2022/lib/services/cds-theme.service.mjs +0 -100
- package/esm2022/lib/services/choice-field.service.mjs +0 -70
- package/esm2022/lib/services/index.mjs +0 -29
- package/esm2022/lib/services/key-generator.service.mjs +0 -50
- package/esm2022/lib/services/key-state.service.mjs +0 -33
- package/esm2022/lib/services/modal.service.mjs +0 -148
- package/esm2022/lib/services/page-header.service.mjs +0 -93
- package/esm2022/lib/services/page-subtitle.service.mjs +0 -46
- package/esm2022/lib/services/page-title.service.mjs +0 -121
- package/esm2022/lib/services/prompt.service.mjs +0 -205
- package/esm2022/lib/services/shell.service.mjs +0 -213
- package/esm2022/lib/services/stepper.service.mjs +0 -108
- package/esm2022/lib/services/user-interface.service.mjs +0 -47
- package/esm2022/lib/services/valtimo-modal.service.mjs +0 -46
- package/esm2022/lib/services/value-path-selector.service.mjs +0 -110
- package/esm2022/public_api.mjs +0 -227
- package/esm2022/valtimo-components.mjs +0 -5
- package/lib/components/button/button.component.d.ts +0 -30
- package/lib/components/button/button.component.d.ts.map +0 -1
- package/lib/components/button/button.module.d.ts +0 -13
- package/lib/components/button/button.module.d.ts.map +0 -1
- package/lib/components/card/card.component.d.ts +0 -17
- package/lib/components/card/card.component.d.ts.map +0 -1
- package/lib/components/card/card.module.d.ts +0 -9
- package/lib/components/card/card.module.d.ts.map +0 -1
- package/lib/components/list/ListFilterPipe.directive.d.ts +0 -8
- package/lib/components/list/ListFilterPipe.directive.d.ts.map +0 -1
- package/lib/components/list/list.component.d.ts +0 -51
- package/lib/components/list/list.component.d.ts.map +0 -1
- package/lib/components/list/list.module.d.ts +0 -15
- package/lib/components/list/list.module.d.ts.map +0 -1
- package/lib/components/page/page-container/page-container.component.d.ts +0 -9
- package/lib/components/page/page-container/page-container.component.d.ts.map +0 -1
- package/lib/components/page/page-content/page-content.component.d.ts +0 -9
- package/lib/components/page/page-content/page-content.component.d.ts.map +0 -1
- package/lib/components/page/page-header/page-header.component.d.ts +0 -9
- package/lib/components/page/page-header/page-header.component.d.ts.map +0 -1
- package/lib/components/page/page-header-actions/page-header-actions.component.d.ts +0 -9
- package/lib/components/page/page-header-actions/page-header-actions.component.d.ts.map +0 -1
- package/lib/components/page/page-header-introduction/page-header-introduction.component.d.ts +0 -9
- package/lib/components/page/page-header-introduction/page-header-introduction.component.d.ts.map +0 -1
- package/lib/components/page/page.module.d.ts +0 -16
- package/lib/components/page/page.module.d.ts.map +0 -1
- package/lib/components/title/title.component.d.ts +0 -19
- package/lib/components/title/title.component.d.ts.map +0 -1
- package/lib/components/title/title.module.d.ts +0 -12
- package/lib/components/title/title.module.d.ts.map +0 -1
- package/lib/components/v-card/card.component.d.ts +0 -23
- package/lib/components/v-card/card.component.d.ts.map +0 -1
- package/lib/components/v-card/card.module.d.ts +0 -14
- package/lib/components/v-card/card.module.d.ts.map +0 -1
- package/lib/directives/command-click/command-click-directive.module.d.ts +0 -9
- package/lib/directives/command-click/command-click-directive.module.d.ts.map +0 -1
- package/lib/directives/command-click/command-click.directive.d.ts.map +0 -1
- package/lib/directives/fit-page/fit-page-directive.module.d.ts +0 -9
- package/lib/directives/fit-page/fit-page-directive.module.d.ts.map +0 -1
- package/lib/directives/render-in-page-header/render-in-page-header-directive.module.d.ts +0 -9
- package/lib/directives/render-in-page-header/render-in-page-header-directive.module.d.ts.map +0 -1
- package/lib/directives/render-page-header/render-page-header-directive.module.d.ts +0 -9
- package/lib/directives/render-page-header/render-page-header-directive.module.d.ts.map +0 -1
- package/lib/directives/render-page-subtitle/render-page-subtitle-directive.module.d.ts +0 -9
- package/lib/directives/render-page-subtitle/render-page-subtitle-directive.module.d.ts.map +0 -1
- package/lib/directives/valtimo-cds-modal/valtimo-cds-modal-directive.module.d.ts +0 -9
- package/lib/directives/valtimo-cds-modal/valtimo-cds-modal-directive.module.d.ts.map +0 -1
- package/lib/directives/valtimo-cds-overflow-button/valtimo-cds-overflow-button-directive.module.d.ts +0 -9
- package/lib/directives/valtimo-cds-overflow-button/valtimo-cds-overflow-button-directive.module.d.ts.map +0 -1
- package/lib/modules/custom-formio-component/custom-tags.service.d.ts +0 -8
- package/lib/modules/custom-formio-component/custom-tags.service.d.ts.map +0 -1
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { NavigationEnd, NavigationStart, ResolveEnd } from '@angular/router';
|
|
3
|
-
import { BehaviorSubject, combineLatest, Observable, Subject, timer } from 'rxjs';
|
|
4
|
-
import { filter, map, take } from 'rxjs/operators';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@valtimo/config";
|
|
7
|
-
import * as i2 from "@valtimo/document";
|
|
8
|
-
import * as i3 from "@angular/common/http";
|
|
9
|
-
import * as i4 from "keycloak-angular";
|
|
10
|
-
import * as i5 from "ngx-logger";
|
|
11
|
-
import * as i6 from "../pending-changes/pending-changes.service";
|
|
12
|
-
import * as i7 from "@angular/router";
|
|
13
|
-
import * as i8 from "@valtimo/security";
|
|
14
|
-
export class MenuService {
|
|
15
|
-
get activeParentSequenceNumber$() {
|
|
16
|
-
return this._activeParentSequenceNumber$.asObservable();
|
|
17
|
-
}
|
|
18
|
-
constructor(configService, documentService, http, keycloakService, logger, menuIncludeService, pendingChangesService, router, userProviderService) {
|
|
19
|
-
this.configService = configService;
|
|
20
|
-
this.documentService = documentService;
|
|
21
|
-
this.http = http;
|
|
22
|
-
this.keycloakService = keycloakService;
|
|
23
|
-
this.logger = logger;
|
|
24
|
-
this.menuIncludeService = menuIncludeService;
|
|
25
|
-
this.pendingChangesService = pendingChangesService;
|
|
26
|
-
this.router = router;
|
|
27
|
-
this.userProviderService = userProviderService;
|
|
28
|
-
this._activeParentSequenceNumber$ = new BehaviorSubject('');
|
|
29
|
-
this.includeFunctionObservables = {};
|
|
30
|
-
this._menuItems$ = new BehaviorSubject([]);
|
|
31
|
-
this.currentRoute$ = this.router.events.pipe(filter(event => event instanceof NavigationEnd ||
|
|
32
|
-
event instanceof NavigationStart ||
|
|
33
|
-
event instanceof ResolveEnd), map(event => event?.url), filter(url => !!url));
|
|
34
|
-
this.dossierItemsAppended$ = new BehaviorSubject(false);
|
|
35
|
-
this.objectsItemsAppended$ = new BehaviorSubject(false);
|
|
36
|
-
const config = configService?.config;
|
|
37
|
-
this.menuConfig = config?.menu;
|
|
38
|
-
this.disableCaseCount = config?.featureToggles?.disableCaseCount;
|
|
39
|
-
this.enableObjectManagement = config?.featureToggles?.enableObjectManagement ?? true;
|
|
40
|
-
}
|
|
41
|
-
// Find out which menu item sequence number matches the current url the closest
|
|
42
|
-
get closestSequence$() {
|
|
43
|
-
return combineLatest([
|
|
44
|
-
this.dossierItemsAppended$,
|
|
45
|
-
this.objectsItemsAppended$,
|
|
46
|
-
this.currentRoute$,
|
|
47
|
-
this.menuItems$,
|
|
48
|
-
]).pipe(filter(() => !this.pendingChangesService.pendingChanges), filter(([dossierItemsAppended, objectsItemsAppended]) => dossierItemsAppended || objectsItemsAppended), map(([_1, _2, currentRoute, menuItems]) => {
|
|
49
|
-
let closestSequence = '0';
|
|
50
|
-
let highestDifference = 0;
|
|
51
|
-
// recursive function to check how closely each item matches to the current url
|
|
52
|
-
const checkItemMatch = (stringUrl, sequence, parentSequence) => {
|
|
53
|
-
// length of the current full url
|
|
54
|
-
const currentRouteUrlLength = currentRoute.length;
|
|
55
|
-
// length of the current full url with the item's url substracted
|
|
56
|
-
const currentRouteSubstractLength = currentRoute.replace(stringUrl, '').length;
|
|
57
|
-
// the amount of characters that could be substracted
|
|
58
|
-
const difference = currentRouteUrlLength - currentRouteSubstractLength;
|
|
59
|
-
// the larger the amount of characters that could be substracted, the more closely the menu item url matches the current url
|
|
60
|
-
if (difference > highestDifference) {
|
|
61
|
-
highestDifference = difference;
|
|
62
|
-
closestSequence = sequence;
|
|
63
|
-
if (parentSequence) {
|
|
64
|
-
this._activeParentSequenceNumber$.next(parentSequence);
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
this._activeParentSequenceNumber$.next('');
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
// check how closely each menu item (and child menu item) matches the current url using a recursive function
|
|
72
|
-
menuItems.forEach(item => {
|
|
73
|
-
checkItemMatch(item.link?.join('') || '', `${item.sequence}`);
|
|
74
|
-
if (item.children) {
|
|
75
|
-
item.children.forEach(childItem => {
|
|
76
|
-
if (Array.isArray(childItem.link)) {
|
|
77
|
-
checkItemMatch(Array.isArray(item.link)
|
|
78
|
-
? [...item.link, ...childItem.link].join('')
|
|
79
|
-
: childItem.link.join(''), `${item.sequence}${childItem.sequence}`, `${item.sequence}`);
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
// returns the closest sequence number (each menu item has a sequence number)
|
|
85
|
-
return closestSequence;
|
|
86
|
-
}));
|
|
87
|
-
}
|
|
88
|
-
get menuItems$() {
|
|
89
|
-
return this._menuItems$.asObservable();
|
|
90
|
-
}
|
|
91
|
-
init() {
|
|
92
|
-
this.reload();
|
|
93
|
-
this.logger.debug('Menu initialized');
|
|
94
|
-
}
|
|
95
|
-
reload() {
|
|
96
|
-
const roles = this.keycloakService.getUserRoles(true);
|
|
97
|
-
return this._menuItems$.next(this.loadMenuItems(roles));
|
|
98
|
-
}
|
|
99
|
-
loadMenuItems(userRoles) {
|
|
100
|
-
let menuItems = [];
|
|
101
|
-
this.menuConfig.menuItems.forEach((menuItem) => {
|
|
102
|
-
if (menuItem.includeFunction !== undefined) {
|
|
103
|
-
this.includeFunctionObservables[menuItem.title] =
|
|
104
|
-
this.menuIncludeService.getIncludeFunction(menuItem.includeFunction);
|
|
105
|
-
}
|
|
106
|
-
menuItem.show = true;
|
|
107
|
-
// check if the top level menu item specifies roles it requires. If so, check if the user roles contain at least one of these roles
|
|
108
|
-
if (Array.isArray(menuItem?.roles)
|
|
109
|
-
? userRoles.find(userRole => menuItem.roles.includes(userRole))
|
|
110
|
-
: true) {
|
|
111
|
-
// check if menu item has children. If so, check if children specify required roles. If so, check if the user roles contain at least one of these roles
|
|
112
|
-
const filteredMenuItemChildren = menuItem?.children &&
|
|
113
|
-
menuItem?.children.filter(childMenuItem => Array.isArray(childMenuItem?.roles)
|
|
114
|
-
? userRoles.find(userRole => childMenuItem.roles.includes(userRole))
|
|
115
|
-
: true);
|
|
116
|
-
// if the menu item has children, set the menu item children to filtered menu item children
|
|
117
|
-
const menuItemWithFilteredChildren = {
|
|
118
|
-
...menuItem,
|
|
119
|
-
...(menuItem?.children && { children: filteredMenuItemChildren }),
|
|
120
|
-
};
|
|
121
|
-
menuItems.push(menuItemWithFilteredChildren);
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
menuItems = this.sortMenuItems(menuItems);
|
|
125
|
-
this.appendDossierSubMenuItems(menuItems).subscribe(value => (menuItems = this.applyMenuRoleSecurity(value)));
|
|
126
|
-
if (this.enableObjectManagement) {
|
|
127
|
-
this.appendObjectsSubMenuItems(menuItems).subscribe(value => (menuItems = this.applyMenuRoleSecurity(value)));
|
|
128
|
-
}
|
|
129
|
-
return menuItems;
|
|
130
|
-
}
|
|
131
|
-
sortMenuItems(menuItems) {
|
|
132
|
-
return menuItems.sort((a, b) => a.sequence - b.sequence);
|
|
133
|
-
}
|
|
134
|
-
appendDossierSubMenuItems(menuItems) {
|
|
135
|
-
return new Observable(subscriber => {
|
|
136
|
-
this.logger.debug('appendDossierSubMenuItems');
|
|
137
|
-
this.documentService.getAllDefinitions().subscribe(definitions => {
|
|
138
|
-
combineLatest([
|
|
139
|
-
...definitions.content.map(definition => this.documentService.getCaseSettings(definition?.id?.name)),
|
|
140
|
-
])
|
|
141
|
-
.pipe(take(1))
|
|
142
|
-
.subscribe(allCaseSettings => {
|
|
143
|
-
const openDocumentCountMap = !this.disableCaseCount && this.getOpenDocumentCountMap(definitions);
|
|
144
|
-
const dossierMenuItems = definitions.content.map((definition, index) => {
|
|
145
|
-
const caseSettings = allCaseSettings?.find(setting => setting.name === definition.id.name);
|
|
146
|
-
return {
|
|
147
|
-
link: ['/dossiers/' + definition.id.name],
|
|
148
|
-
title: definition.schema.title,
|
|
149
|
-
iconClass: 'icon mdi mdi-dot-circle',
|
|
150
|
-
sequence: index,
|
|
151
|
-
show: true,
|
|
152
|
-
...(!this.disableCaseCount &&
|
|
153
|
-
caseSettings?.canHaveAssignee && {
|
|
154
|
-
count$: openDocumentCountMap.get(definition.id.name),
|
|
155
|
-
}),
|
|
156
|
-
};
|
|
157
|
-
});
|
|
158
|
-
this.logger.debug('found dossierMenuItems', dossierMenuItems);
|
|
159
|
-
const menuItemIndex = menuItems.findIndex(({ title }) => title === 'Dossiers');
|
|
160
|
-
if (menuItemIndex > 0) {
|
|
161
|
-
const dossierMenu = menuItems[menuItemIndex];
|
|
162
|
-
this.logger.debug('updating dossierMenu', dossierMenu);
|
|
163
|
-
dossierMenu.children = dossierMenuItems;
|
|
164
|
-
menuItems[menuItemIndex] = dossierMenu;
|
|
165
|
-
}
|
|
166
|
-
subscriber.next(menuItems);
|
|
167
|
-
this.dossierItemsAppended$.next(true);
|
|
168
|
-
this.logger.debug('appendDossierSubMenuItems finished');
|
|
169
|
-
});
|
|
170
|
-
});
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
appendObjectsSubMenuItems(menuItems) {
|
|
174
|
-
return new Observable(subscriber => {
|
|
175
|
-
this.logger.debug('appendObjectManagementSubMenuItems');
|
|
176
|
-
this.getAllObjects().subscribe(objects => {
|
|
177
|
-
const visibleObjects = objects.filter(object => object?.showInDataMenu !== false);
|
|
178
|
-
if (visibleObjects?.length > 0) {
|
|
179
|
-
const objectsMenuItems = visibleObjects.map((object, index) => ({
|
|
180
|
-
link: ['/objects/' + object.id],
|
|
181
|
-
title: object.title,
|
|
182
|
-
iconClass: 'icon mdi mdi-dot-circle',
|
|
183
|
-
sequence: index,
|
|
184
|
-
show: true,
|
|
185
|
-
}));
|
|
186
|
-
this.logger.debug('found objectsMenuItems', objectsMenuItems);
|
|
187
|
-
const menuItemIndex = menuItems.findIndex(({ title }) => title === 'Objects');
|
|
188
|
-
if (menuItemIndex > 0) {
|
|
189
|
-
const objectsMenu = menuItems[menuItemIndex];
|
|
190
|
-
this.logger.debug('updating objectsMenu', objectsMenu);
|
|
191
|
-
objectsMenu.children = objectsMenuItems;
|
|
192
|
-
menuItems[menuItemIndex] = objectsMenu;
|
|
193
|
-
}
|
|
194
|
-
subscriber.next(menuItems);
|
|
195
|
-
this.objectsItemsAppended$.next(true);
|
|
196
|
-
this.logger.debug('appendObjectsSubMenuItems finished');
|
|
197
|
-
}
|
|
198
|
-
});
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
|
-
getOpenDocumentCountMap(definitions) {
|
|
202
|
-
const countMap = new Map();
|
|
203
|
-
definitions.content.forEach(definition => countMap.set(definition.id.name, new Subject()));
|
|
204
|
-
timer(0, 5000).subscribe(() => {
|
|
205
|
-
this.documentService.getOpenDocumentCount().subscribe(openDocumentCountList => {
|
|
206
|
-
openDocumentCountList.forEach(openDocumentCount => {
|
|
207
|
-
const mapEntry = countMap.get(openDocumentCount.documentDefinitionName);
|
|
208
|
-
if (mapEntry)
|
|
209
|
-
mapEntry.next(openDocumentCount.openDocumentCount);
|
|
210
|
-
});
|
|
211
|
-
});
|
|
212
|
-
});
|
|
213
|
-
return countMap;
|
|
214
|
-
}
|
|
215
|
-
applyMenuRoleSecurity(menuItems) {
|
|
216
|
-
this.userProviderService.getUserSubject().subscribe(user => {
|
|
217
|
-
if (user.roles != null) {
|
|
218
|
-
this.logger.debug('applyMenuRoleSecurity');
|
|
219
|
-
const userRoles = user.roles;
|
|
220
|
-
menuItems.forEach((menuItem) => {
|
|
221
|
-
const access = this.determineRoleAccess(menuItem, userRoles);
|
|
222
|
-
this.logger.debug('Menu: check role access', menuItem.roles, access);
|
|
223
|
-
if (menuItem.show !== access) {
|
|
224
|
-
this.logger.debug('Menu: Change access', menuItem, access);
|
|
225
|
-
menuItem.show = access;
|
|
226
|
-
}
|
|
227
|
-
});
|
|
228
|
-
}
|
|
229
|
-
});
|
|
230
|
-
return menuItems;
|
|
231
|
-
}
|
|
232
|
-
determineRoleAccess(menuItem, roles) {
|
|
233
|
-
return !menuItem.roles || menuItem.roles.some(role => roles.includes(role));
|
|
234
|
-
}
|
|
235
|
-
getAllObjects() {
|
|
236
|
-
return this.http.get(`${this.configService.config.valtimoApi.endpointUri}v1/object/management/configuration`);
|
|
237
|
-
}
|
|
238
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MenuService, deps: [{ token: i1.ConfigService }, { token: i2.DocumentService }, { token: i3.HttpClient }, { token: i4.KeycloakService }, { token: i5.NGXLogger }, { token: i1.MenuIncludeService }, { token: i6.PendingChangesService }, { token: i7.Router }, { token: i8.UserProviderService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
239
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MenuService, providedIn: 'root' }); }
|
|
240
|
-
}
|
|
241
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MenuService, decorators: [{
|
|
242
|
-
type: Injectable,
|
|
243
|
-
args: [{
|
|
244
|
-
providedIn: 'root',
|
|
245
|
-
}]
|
|
246
|
-
}], ctorParameters: () => [{ type: i1.ConfigService }, { type: i2.DocumentService }, { type: i3.HttpClient }, { type: i4.KeycloakService }, { type: i5.NGXLogger }, { type: i1.MenuIncludeService }, { type: i6.PendingChangesService }, { type: i7.Router }, { type: i8.UserProviderService }] });
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tZW51L21lbnUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQkEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsYUFBYSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQU1uRixPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNoRixPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQU1qRCxNQUFNLE9BQU8sV0FBVztJQVV0QixJQUFJLDJCQUEyQjtRQUM3QixPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0lBRUQsWUFDbUIsYUFBNEIsRUFDNUIsZUFBZ0MsRUFDaEMsSUFBZ0IsRUFDaEIsZUFBZ0MsRUFDaEMsTUFBaUIsRUFDakIsa0JBQXNDLEVBQ3RDLHFCQUE0QyxFQUM1QyxNQUFjLEVBQ2QsbUJBQXdDO1FBUnhDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsd0JBQW1CLEdBQW5CLG1CQUFtQixD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LE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGlvbkVuZCwgTmF2aWdhdGlvblN0YXJ0LCBSZXNvbHZlRW5kLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0NvbmZpZ1NlcnZpY2UsIE1lbnVDb25maWcsIE1lbnVJbmNsdWRlU2VydmljZSwgTWVudUl0ZW19IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQge0RvY3VtZW50RGVmaW5pdGlvbnMsIERvY3VtZW50U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuaW1wb3J0IHtVc2VyUHJvdmlkZXJTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9zZWN1cml0eSc7XG5pbXBvcnQge0tleWNsb2FrU2VydmljZX0gZnJvbSAna2V5Y2xvYWstYW5ndWxhcic7XG5pbXBvcnQge05HWExvZ2dlcn0gZnJvbSAnbmd4LWxvZ2dlcic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGltZXJ9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgdGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBNZW51U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2ZVBhcmVudFNlcXVlbmNlTnVtYmVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gIHB1YmxpYyBpbmNsdWRlRnVuY3Rpb25PYnNlcnZhYmxlczoge1trZXk6IHN0cmluZ106IE9ic2VydmFibGU8Ym9vbGVhbj59ID0ge307XG5cbiAgcHJpdmF0ZSBfbWVudUl0ZW1zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWVudUl0ZW1bXT4oW10pO1xuICBwcml2YXRlIG1lbnVDb25maWc6IE1lbnVDb25maWc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkaXNhYmxlQ2FzZUNvdW50ITogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBlbmFibGVPYmplY3RNYW5hZ2VtZW50ITogYm9vbGVhbjtcblxuICBnZXQgYWN0aXZlUGFyZW50U2VxdWVuY2VOdW1iZXIkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVBhcmVudFNlcXVlbmNlTnVtYmVyJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGtleWNsb2FrU2VydmljZTogS2V5Y2xvYWtTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBOR1hMb2dnZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZW51SW5jbHVkZVNlcnZpY2U6IE1lbnVJbmNsdWRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBlbmRpbmdDaGFuZ2VzU2VydmljZTogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyUHJvdmlkZXJTZXJ2aWNlOiBVc2VyUHJvdmlkZXJTZXJ2aWNlXG4gICkge1xuICAgIGNvbnN0IGNvbmZpZyA9IGNvbmZpZ1NlcnZpY2U/LmNvbmZpZztcbiAgICB0aGlzLm1lbnVDb25maWcgPSBjb25maWc/Lm1lbnU7XG4gICAgdGhpcy5kaXNhYmxlQ2FzZUNvdW50ID0gY29uZmlnPy5mZWF0dXJlVG9nZ2xlcz8uZGlzYWJsZUNhc2VDb3VudDtcbiAgICB0aGlzLmVuYWJsZU9iamVjdE1hbmFnZW1lbnQgPSBjb25maWc/LmZlYXR1cmVUb2dnbGVzPy5lbmFibGVPYmplY3RNYW5hZ2VtZW50ID8/IHRydWU7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGN1cnJlbnRSb3V0ZSQgPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcbiAgICBmaWx0ZXIoXG4gICAgICBldmVudCA9PlxuICAgICAgICBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgfHxcbiAgICAgICAgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQgfHxcbiAgICAgICAgZXZlbnQgaW5zdGFuY2VvZiBSZXNvbHZlRW5kXG4gICAgKSxcbiAgICBtYXAoZXZlbnQgPT4gKGV2ZW50IGFzIE5hdmlnYXRpb25FbmQpPy51cmwpLFxuICAgIGZpbHRlcih1cmwgPT4gISF1cmwpXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkb3NzaWVySXRlbXNBcHBlbmRlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBvYmplY3RzSXRlbXNBcHBlbmRlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAvLyBGaW5kIG91dCB3aGljaCBtZW51IGl0ZW0gc2VxdWVuY2UgbnVtYmVyIG1hdGNoZXMgdGhlIGN1cnJlbnQgdXJsIHRoZSBjbG9zZXN0XG4gIHB1YmxpYyBnZXQgY2xvc2VzdFNlcXVlbmNlJCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuZG9zc2llckl0ZW1zQXBwZW5kZWQkLFxuICAgICAgdGhpcy5vYmplY3RzSXRlbXNBcHBlbmRlZCQsXG4gICAgICB0aGlzLmN1cnJlbnRSb3V0ZSQsXG4gICAgICB0aGlzLm1lbnVJdGVtcyQsXG4gICAgXSkucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiAhdGhpcy5wZW5kaW5nQ2hhbmdlc1NlcnZpY2UucGVuZGluZ0NoYW5nZXMpLFxuICAgICAgZmlsdGVyKFxuICAgICAgICAoW2Rvc3NpZXJJdGVtc0FwcGVuZGVkLCBvYmplY3RzSXRlbXNBcHBlbmRlZF0pID0+XG4gICAgICAgICAgZG9zc2llckl0ZW1zQXBwZW5kZWQgfHwgb2JqZWN0c0l0ZW1zQXBwZW5kZWRcbiAgICAgICksXG4gICAgICBtYXAoKFtfMSwgXzIsIGN1cnJlbnRSb3V0ZSwgbWVudUl0ZW1zXSkgPT4ge1xuICAgICAgICBsZXQgY2xvc2VzdFNlcXVlbmNlID0gJzAnO1xuICAgICAgICBsZXQgaGlnaGVzdERpZmZlcmVuY2UgPSAwO1xuXG4gICAgICAgIC8vIHJlY3Vyc2l2ZSBmdW5jdGlvbiB0byBjaGVjayBob3cgY2xvc2VseSBlYWNoIGl0ZW0gbWF0Y2hlcyB0byB0aGUgY3VycmVudCB1cmxcbiAgICAgICAgY29uc3QgY2hlY2tJdGVtTWF0Y2ggPSAoXG4gICAgICAgICAgc3RyaW5nVXJsOiBzdHJpbmcsXG4gICAgICAgICAgc2VxdWVuY2U6IHN0cmluZyxcbiAgICAgICAgICBwYXJlbnRTZXF1ZW5jZT86IHN0cmluZ1xuICAgICAgICApOiB2b2lkID0+IHtcbiAgICAgICAgICAvLyBsZW5ndGggb2YgdGhlIGN1cnJlbnQgZnVsbCB1cmxcbiAgICAgICAgICBjb25zdCBjdXJyZW50Um91dGVVcmxMZW5ndGggPSBjdXJyZW50Um91dGUubGVuZ3RoO1xuICAgICAgICAgIC8vIGxlbmd0aCBvZiB0aGUgY3VycmVudCBmdWxsIHVybCB3aXRoIHRoZSBpdGVtJ3MgdXJsIHN1YnN0cmFjdGVkXG4gICAgICAgICAgY29uc3QgY3VycmVudFJvdXRlU3Vic3RyYWN0TGVuZ3RoID0gY3VycmVudFJvdXRlLnJlcGxhY2Uoc3RyaW5nVXJsLCAnJykubGVuZ3RoO1xuICAgICAgICAgIC8vIHRoZSBhbW91bnQgb2YgY2hhcmFjdGVycyB0aGF0IGNvdWxkIGJlIHN1YnN0cmFjdGVkXG4gICAgICAgICAgY29uc3QgZGlmZmVyZW5jZSA9IGN1cnJlbnRSb3V0ZVVybExlbmd0aCAtIGN1cnJlbnRSb3V0ZVN1YnN0cmFjdExlbmd0aDtcblxuICAgICAgICAgIC8vIHRoZSBsYXJnZXIgdGhlIGFtb3VudCBvZiBjaGFyYWN0ZXJzIHRoYXQgY291bGQgYmUgc3Vic3RyYWN0ZWQsIHRoZSBtb3JlIGNsb3NlbHkgdGhlIG1lbnUgaXRlbSB1cmwgbWF0Y2hlcyB0aGUgY3VycmVudCB1cmxcbiAgICAgICAgICBpZiAoZGlmZmVyZW5jZSA+IGhpZ2hlc3REaWZmZXJlbmNlKSB7XG4gICAgICAgICAgICBoaWdoZXN0RGlmZmVyZW5jZSA9IGRpZmZlcmVuY2U7XG4gICAgICAgICAgICBjbG9zZXN0U2VxdWVuY2UgPSBzZXF1ZW5jZTtcblxuICAgICAgICAgICAgaWYgKHBhcmVudFNlcXVlbmNlKSB7XG4gICAgICAgICAgICAgIHRoaXMuX2FjdGl2ZVBhcmVudFNlcXVlbmNlTnVtYmVyJC5uZXh0KHBhcmVudFNlcXVlbmNlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuX2FjdGl2ZVBhcmVudFNlcXVlbmNlTnVtYmVyJC5uZXh0KCcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gY2hlY2sgaG93IGNsb3NlbHkgZWFjaCBtZW51IGl0ZW0gKGFuZCBjaGlsZCBtZW51IGl0ZW0pIG1hdGNoZXMgdGhlIGN1cnJlbnQgdXJsIHVzaW5nIGEgcmVjdXJzaXZlIGZ1bmN0aW9uXG4gICAgICAgIG1lbnVJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgIGNoZWNrSXRlbU1hdGNoKGl0ZW0ubGluaz8uam9pbignJykgfHwgJycsIGAke2l0ZW0uc2VxdWVuY2V9YCk7XG5cbiAgICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgICAgaXRlbS5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkSXRlbSA9PiB7XG4gICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkSXRlbS5saW5rKSkge1xuICAgICAgICAgICAgICAgIGNoZWNrSXRlbU1hdGNoKFxuICAgICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShpdGVtLmxpbmspXG4gICAgICAgICAgICAgICAgICAgID8gWy4uLml0ZW0ubGluaywgLi4uY2hpbGRJdGVtLmxpbmtdLmpvaW4oJycpXG4gICAgICAgICAgICAgICAgICAgIDogY2hpbGRJdGVtLmxpbmsuam9pbignJyksXG4gICAgICAgICAgICAgICAgICBgJHtpdGVtLnNlcXVlbmNlfSR7Y2hpbGRJdGVtLnNlcXVlbmNlfWAsXG4gICAgICAgICAgICAgICAgICBgJHtpdGVtLnNlcXVlbmNlfWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIHJldHVybnMgdGhlIGNsb3Nlc3Qgc2VxdWVuY2UgbnVtYmVyIChlYWNoIG1lbnUgaXRlbSBoYXMgYSBzZXF1ZW5jZSBudW1iZXIpXG5cbiAgICAgICAgcmV0dXJuIGNsb3Nlc3RTZXF1ZW5jZTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWVudUl0ZW1zJCgpOiBPYnNlcnZhYmxlPE1lbnVJdGVtW10+IHtcbiAgICByZXR1cm4gdGhpcy5fbWVudUl0ZW1zJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWxvYWQoKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnTWVudSBpbml0aWFsaXplZCcpO1xuICB9XG5cbiAgcHVibGljIHJlbG9hZCgpOiB2b2lkIHtcbiAgICBjb25zdCByb2xlcyA9IHRoaXMua2V5Y2xvYWtTZXJ2aWNlLmdldFVzZXJSb2xlcyh0cnVlKTtcbiAgICByZXR1cm4gdGhpcy5fbWVudUl0ZW1zJC5uZXh0KHRoaXMubG9hZE1lbnVJdGVtcyhyb2xlcykpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkTWVudUl0ZW1zKHVzZXJSb2xlczogQXJyYXk8c3RyaW5nPik6IE1lbnVJdGVtW10ge1xuICAgIGxldCBtZW51SXRlbXM6IE1lbnVJdGVtW10gPSBbXTtcbiAgICB0aGlzLm1lbnVDb25maWcubWVudUl0ZW1zLmZvckVhY2goKG1lbnVJdGVtOiBNZW51SXRlbSkgPT4ge1xuICAgICAgaWYgKG1lbnVJdGVtLmluY2x1ZGVGdW5jdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuaW5jbHVkZUZ1bmN0aW9uT2JzZXJ2YWJsZXNbbWVudUl0ZW0udGl0bGVdID1cbiAgICAgICAgICB0aGlzLm1lbnVJbmNsdWRlU2VydmljZS5nZXRJbmNsdWRlRnVuY3Rpb24obWVudUl0ZW0uaW5jbHVkZUZ1bmN0aW9uKTtcbiAgICAgIH1cblxuICAgICAgbWVudUl0ZW0uc2hvdyA9IHRydWU7XG5cbiAgICAgIC8vIGNoZWNrIGlmIHRoZSB0b3AgbGV2ZWwgbWVudSBpdGVtIHNwZWNpZmllcyByb2xlcyBpdCByZXF1aXJlcy4gSWYgc28sIGNoZWNrIGlmIHRoZSB1c2VyIHJvbGVzIGNvbnRhaW4gYXQgbGVhc3Qgb25lIG9mIHRoZXNlIHJvbGVzXG4gICAgICBpZiAoXG4gICAgICAgIEFycmF5LmlzQXJyYXkobWVudUl0ZW0/LnJvbGVzKVxuICAgICAgICAgID8gdXNlclJvbGVzLmZpbmQodXNlclJvbGUgPT4gbWVudUl0ZW0ucm9sZXMuaW5jbHVkZXModXNlclJvbGUpKVxuICAgICAgICAgIDogdHJ1ZVxuICAgICAgKSB7XG4gICAgICAgIC8vIGNoZWNrIGlmIG1lbnUgaXRlbSBoYXMgY2hpbGRyZW4uIElmIHNvLCBjaGVjayBpZiBjaGlsZHJlbiBzcGVjaWZ5IHJlcXVpcmVkIHJvbGVzLiBJZiBzbywgY2hlY2sgaWYgdGhlIHVzZXIgcm9sZXMgY29udGFpbiBhdCBsZWFzdCBvbmUgb2YgdGhlc2Ugcm9sZXNcbiAgICAgICAgY29uc3QgZmlsdGVyZWRNZW51SXRlbUNoaWxkcmVuID1cbiAgICAgICAgICBtZW51SXRlbT8uY2hpbGRyZW4gJiZcbiAgICAgICAgICBtZW51SXRlbT8uY2hpbGRyZW4uZmlsdGVyKGNoaWxkTWVudUl0ZW0gPT5cbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkoY2hpbGRNZW51SXRlbT8ucm9sZXMpXG4gICAgICAgICAgICAgID8gdXNlclJvbGVzLmZpbmQodXNlclJvbGUgPT4gY2hpbGRNZW51SXRlbS5yb2xlcy5pbmNsdWRlcyh1c2VyUm9sZSkpXG4gICAgICAgICAgICAgIDogdHJ1ZVxuICAgICAgICAgICk7XG5cbiAgICAgICAgLy8gaWYgdGhlIG1lbnUgaXRlbSBoYXMgY2hpbGRyZW4sIHNldCB0aGUgbWVudSBpdGVtIGNoaWxkcmVuIHRvIGZpbHRlcmVkIG1lbnUgaXRlbSBjaGlsZHJlblxuICAgICAgICBjb25zdCBtZW51SXRlbVdpdGhGaWx0ZXJlZENoaWxkcmVuOiBNZW51SXRlbSA9IHtcbiAgICAgICAgICAuLi5tZW51SXRlbSxcbiAgICAgICAgICAuLi4obWVudUl0ZW0/LmNoaWxkcmVuICYmIHtjaGlsZHJlbjogZmlsdGVyZWRNZW51SXRlbUNoaWxkcmVufSksXG4gICAgICAgIH07XG5cbiAgICAgICAgbWVudUl0ZW1zLnB1c2gobWVudUl0ZW1XaXRoRmlsdGVyZWRDaGlsZHJlbik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgbWVudUl0ZW1zID0gdGhpcy5zb3J0TWVudUl0ZW1zKG1lbnVJdGVtcyk7XG4gICAgdGhpcy5hcHBlbmREb3NzaWVyU3ViTWVudUl0ZW1zKG1lbnVJdGVtcykuc3Vic2NyaWJlKFxuICAgICAgdmFsdWUgPT4gKG1lbnVJdGVtcyA9IHRoaXMuYXBwbHlNZW51Um9sZVNlY3VyaXR5KHZhbHVlKSlcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuZW5hYmxlT2JqZWN0TWFuYWdlbWVudCkge1xuICAgICAgdGhpcy5hcHBlbmRPYmplY3RzU3ViTWVudUl0ZW1zKG1lbnVJdGVtcykuc3Vic2NyaWJlKFxuICAgICAgICB2YWx1ZSA9PiAobWVudUl0ZW1zID0gdGhpcy5hcHBseU1lbnVSb2xlU2VjdXJpdHkodmFsdWUpKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG1lbnVJdGVtcztcbiAgfVxuXG4gIHByaXZhdGUgc29ydE1lbnVJdGVtcyhtZW51SXRlbXM6IE1lbnVJdGVtW10pOiBNZW51SXRlbVtdIHtcbiAgICByZXR1cm4gbWVudUl0ZW1zLnNvcnQoKGEsIGIpID0+IGEuc2VxdWVuY2UgLSBiLnNlcXVlbmNlKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwZW5kRG9zc2llclN1Yk1lbnVJdGVtcyhtZW51SXRlbXM6IE1lbnVJdGVtW10pOiBPYnNlcnZhYmxlPE1lbnVJdGVtW10+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoc3Vic2NyaWJlciA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnYXBwZW5kRG9zc2llclN1Yk1lbnVJdGVtcycpO1xuICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UuZ2V0QWxsRGVmaW5pdGlvbnMoKS5zdWJzY3JpYmUoZGVmaW5pdGlvbnMgPT4ge1xuICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAuLi5kZWZpbml0aW9ucy5jb250ZW50Lm1hcChkZWZpbml0aW9uID0+XG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS5nZXRDYXNlU2V0dGluZ3MoZGVmaW5pdGlvbj8uaWQ/Lm5hbWUpXG4gICAgICAgICAgKSxcbiAgICAgICAgXSlcbiAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoYWxsQ2FzZVNldHRpbmdzID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9wZW5Eb2N1bWVudENvdW50TWFwID1cbiAgICAgICAgICAgICAgIXRoaXMuZGlzYWJsZUNhc2VDb3VudCAmJiB0aGlzLmdldE9wZW5Eb2N1bWVudENvdW50TWFwKGRlZmluaXRpb25zKTtcblxuICAgICAgICAgICAgY29uc3QgZG9zc2llck1lbnVJdGVtczogTWVudUl0ZW1bXSA9IGRlZmluaXRpb25zLmNvbnRlbnQubWFwKChkZWZpbml0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBjYXNlU2V0dGluZ3MgPSBhbGxDYXNlU2V0dGluZ3M/LmZpbmQoXG4gICAgICAgICAgICAgICAgc2V0dGluZyA9PiBzZXR0aW5nLm5hbWUgPT09IGRlZmluaXRpb24uaWQubmFtZVxuICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbGluazogWycvZG9zc2llcnMvJyArIGRlZmluaXRpb24uaWQubmFtZV0sXG4gICAgICAgICAgICAgICAgdGl0bGU6IGRlZmluaXRpb24uc2NoZW1hLnRpdGxlLFxuICAgICAgICAgICAgICAgIGljb25DbGFzczogJ2ljb24gbWRpIG1kaS1kb3QtY2lyY2xlJyxcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZTogaW5kZXgsXG4gICAgICAgICAgICAgICAgc2hvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAuLi4oIXRoaXMuZGlzYWJsZUNhc2VDb3VudCAmJlxuICAgICAgICAgICAgICAgICAgY2FzZVNldHRpbmdzPy5jYW5IYXZlQXNzaWduZWUgJiYge1xuICAgICAgICAgICAgICAgICAgICBjb3VudCQ6IG9wZW5Eb2N1bWVudENvdW50TWFwLmdldChkZWZpbml0aW9uLmlkLm5hbWUpLFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIH0gYXMgTWVudUl0ZW07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdmb3VuZCBkb3NzaWVyTWVudUl0ZW1zJywgZG9zc2llck1lbnVJdGVtcyk7XG4gICAgICAgICAgICBjb25zdCBtZW51SXRlbUluZGV4ID0gbWVudUl0ZW1zLmZpbmRJbmRleCgoe3RpdGxlfSkgPT4gdGl0bGUgPT09ICdEb3NzaWVycycpO1xuICAgICAgICAgICAgaWYgKG1lbnVJdGVtSW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGRvc3NpZXJNZW51ID0gbWVudUl0ZW1zW21lbnVJdGVtSW5kZXhdO1xuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndXBkYXRpbmcgZG9zc2llck1lbnUnLCBkb3NzaWVyTWVudSk7XG4gICAgICAgICAgICAgIGRvc3NpZXJNZW51LmNoaWxkcmVuID0gZG9zc2llck1lbnVJdGVtcztcbiAgICAgICAgICAgICAgbWVudUl0ZW1zW21lbnVJdGVtSW5kZXhdID0gZG9zc2llck1lbnU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQobWVudUl0ZW1zKTtcbiAgICAgICAgICAgIHRoaXMuZG9zc2llckl0ZW1zQXBwZW5kZWQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnYXBwZW5kRG9zc2llclN1Yk1lbnVJdGVtcyBmaW5pc2hlZCcpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFwcGVuZE9iamVjdHNTdWJNZW51SXRlbXMobWVudUl0ZW1zOiBNZW51SXRlbVtdKTogT2JzZXJ2YWJsZTxNZW51SXRlbVtdPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKHN1YnNjcmliZXIgPT4ge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ2FwcGVuZE9iamVjdE1hbmFnZW1lbnRTdWJNZW51SXRlbXMnKTtcbiAgICAgIHRoaXMuZ2V0QWxsT2JqZWN0cygpLnN1YnNjcmliZShvYmplY3RzID0+IHtcbiAgICAgICAgY29uc3QgdmlzaWJsZU9iamVjdHMgPSBvYmplY3RzLmZpbHRlcihvYmplY3QgPT4gb2JqZWN0Py5zaG93SW5EYXRhTWVudSAhPT0gZmFsc2UpO1xuICAgICAgICBpZiAodmlzaWJsZU9iamVjdHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zdCBvYmplY3RzTWVudUl0ZW1zOiBNZW51SXRlbVtdID0gdmlzaWJsZU9iamVjdHMubWFwKFxuICAgICAgICAgICAgKG9iamVjdCwgaW5kZXgpID0+XG4gICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgbGluazogWycvb2JqZWN0cy8nICsgb2JqZWN0LmlkXSxcbiAgICAgICAgICAgICAgICB0aXRsZTogb2JqZWN0LnRpdGxlLFxuICAgICAgICAgICAgICAgIGljb25DbGFzczogJ2ljb24gbWRpIG1kaS1kb3QtY2lyY2xlJyxcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZTogaW5kZXgsXG4gICAgICAgICAgICAgICAgc2hvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgfSkgYXMgTWVudUl0ZW1cbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdmb3VuZCBvYmplY3RzTWVudUl0ZW1zJywgb2JqZWN0c01lbnVJdGVtcyk7XG4gICAgICAgICAgY29uc3QgbWVudUl0ZW1JbmRleCA9IG1lbnVJdGVtcy5maW5kSW5kZXgoKHt0aXRsZX0pID0+IHRpdGxlID09PSAnT2JqZWN0cycpO1xuICAgICAgICAgIGlmIChtZW51SXRlbUluZGV4ID4gMCkge1xuICAgICAgICAgICAgY29uc3Qgb2JqZWN0c01lbnUgPSBtZW51SXRlbXNbbWVudUl0ZW1JbmRleF07XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndXBkYXRpbmcgb2JqZWN0c01lbnUnLCBvYmplY3RzTWVudSk7XG4gICAgICAgICAgICBvYmplY3RzTWVudS5jaGlsZHJlbiA9IG9iamVjdHNNZW51SXRlbXM7XG4gICAgICAgICAgICBtZW51SXRlbXNbbWVudUl0ZW1JbmRleF0gPSBvYmplY3RzTWVudTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc3Vic2NyaWJlci5uZXh0KG1lbnVJdGVtcyk7XG4gICAgICAgICAgdGhpcy5vYmplY3RzSXRlbXNBcHBlbmRlZCQubmV4dCh0cnVlKTtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnYXBwZW5kT2JqZWN0c1N1Yk1lbnVJdGVtcyBmaW5pc2hlZCcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3BlbkRvY3VtZW50Q291bnRNYXAoZGVmaW5pdGlvbnM6IERvY3VtZW50RGVmaW5pdGlvbnMpOiBNYXA8c3RyaW5nLCBTdWJqZWN0PG51bWJlcj4+IHtcbiAgICBjb25zdCBjb3VudE1hcCA9IG5ldyBNYXA8c3RyaW5nLCBTdWJqZWN0PG51bWJlcj4+KCk7XG4gICAgZGVmaW5pdGlvbnMuY29udGVudC5mb3JFYWNoKGRlZmluaXRpb24gPT5cbiAgICAgIGNvdW50TWFwLnNldChkZWZpbml0aW9uLmlkLm5hbWUsIG5ldyBTdWJqZWN0PG51bWJlcj4oKSlcbiAgICApO1xuXG4gICAgdGltZXIoMCwgNTAwMCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmdldE9wZW5Eb2N1bWVudENvdW50KCkuc3Vic2NyaWJlKG9wZW5Eb2N1bWVudENvdW50TGlzdCA9PiB7XG4gICAgICAgIG9wZW5Eb2N1bWVudENvdW50TGlzdC5mb3JFYWNoKG9wZW5Eb2N1bWVudENvdW50ID0+IHtcbiAgICAgICAgICBjb25zdCBtYXBFbnRyeSA9IGNvdW50TWFwLmdldChvcGVuRG9jdW1lbnRDb3VudC5kb2N1bWVudERlZmluaXRpb25OYW1lKTtcblxuICAgICAgICAgIGlmIChtYXBFbnRyeSkgbWFwRW50cnkubmV4dChvcGVuRG9jdW1lbnRDb3VudC5vcGVuRG9jdW1lbnRDb3VudCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvdW50TWFwO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseU1lbnVSb2xlU2VjdXJpdHkobWVudUl0ZW1zOiBNZW51SXRlbVtdKTogTWVudUl0ZW1bXSB7XG4gICAgdGhpcy51c2VyUHJvdmlkZXJTZXJ2aWNlLmdldFVzZXJTdWJqZWN0KCkuc3Vic2NyaWJlKHVzZXIgPT4ge1xuICAgICAgaWYgKHVzZXIucm9sZXMgIT0gbnVsbCkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnYXBwbHlNZW51Um9sZVNlY3VyaXR5Jyk7XG4gICAgICAgIGNvbnN0IHVzZXJSb2xlcyA9IHVzZXIucm9sZXM7XG4gICAgICAgIG1lbnVJdGVtcy5mb3JFYWNoKChtZW51SXRlbTogTWVudUl0ZW0pID0+IHtcbiAgICAgICAgICBjb25zdCBhY2Nlc3MgPSB0aGlzLmRldGVybWluZVJvbGVBY2Nlc3MobWVudUl0ZW0sIHVzZXJSb2xlcyk7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ01lbnU6IGNoZWNrIHJvbGUgYWNjZXNzJywgbWVudUl0ZW0ucm9sZXMsIGFjY2Vzcyk7XG4gICAgICAgICAgaWYgKG1lbnVJdGVtLnNob3cgIT09IGFjY2Vzcykge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ01lbnU6IENoYW5nZSBhY2Nlc3MnLCBtZW51SXRlbSwgYWNjZXNzKTtcbiAgICAgICAgICAgIG1lbnVJdGVtLnNob3cgPSBhY2Nlc3M7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbWVudUl0ZW1zO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRlcm1pbmVSb2xlQWNjZXNzKG1lbnVJdGVtOiBNZW51SXRlbSwgcm9sZXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFtZW51SXRlbS5yb2xlcyB8fCBtZW51SXRlbS5yb2xlcy5zb21lKHJvbGUgPT4gcm9sZXMuaW5jbHVkZXMocm9sZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBbGxPYmplY3RzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICBgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnLnZhbHRpbW9BcGkuZW5kcG9pbnRVcml9djEvb2JqZWN0L21hbmFnZW1lbnQvY29uZmlndXJhdGlvbmBcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { Component, Input, ViewChild, } from '@angular/core';
|
|
17
|
-
import { BehaviorSubject } from 'rxjs';
|
|
18
|
-
import * as i0 from "@angular/core";
|
|
19
|
-
import * as i1 from "../../services/valtimo-modal.service";
|
|
20
|
-
import * as i2 from "@angular/common";
|
|
21
|
-
export class ModalComponent {
|
|
22
|
-
constructor(modalService) {
|
|
23
|
-
this.modalService = modalService;
|
|
24
|
-
this.title = '';
|
|
25
|
-
this.subtitle = '';
|
|
26
|
-
this.showFooter = false;
|
|
27
|
-
this.modalShowing$ = new BehaviorSubject(false);
|
|
28
|
-
}
|
|
29
|
-
ngOnInit() {
|
|
30
|
-
this.openScrollSubscription();
|
|
31
|
-
}
|
|
32
|
-
ngAfterViewInit() {
|
|
33
|
-
$(`#${this.elementId}`).modal({ show: false });
|
|
34
|
-
this.watchForClassChanges();
|
|
35
|
-
}
|
|
36
|
-
show() {
|
|
37
|
-
$(`#${this.elementId}`).modal('show');
|
|
38
|
-
}
|
|
39
|
-
hide() {
|
|
40
|
-
$(`#${this.elementId}`).modal('hide');
|
|
41
|
-
}
|
|
42
|
-
ngOnDestroy() {
|
|
43
|
-
this.scrollSubscription?.unsubscribe();
|
|
44
|
-
this.observer?.disconnect();
|
|
45
|
-
}
|
|
46
|
-
openScrollSubscription() {
|
|
47
|
-
this.scrollSubscription = this.modalService.scrollToTop$.subscribe(() => {
|
|
48
|
-
const element = this.scrollModal.nativeElement;
|
|
49
|
-
if (element)
|
|
50
|
-
element.scrollTo(0, 0);
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
watchForClassChanges() {
|
|
54
|
-
this.observer = new MutationObserver(mutations => {
|
|
55
|
-
mutations?.forEach(mutation => {
|
|
56
|
-
if (mutation?.attributeName === 'class') {
|
|
57
|
-
const modalShowing = mutation?.target?.classList?.contains('show');
|
|
58
|
-
this.modalShowing$.next(modalShowing);
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
const config = { attributes: true, childList: false, characterData: false };
|
|
63
|
-
this.observer.observe(this.scrollModal.nativeElement, config);
|
|
64
|
-
}
|
|
65
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModalComponent, deps: [{ token: i1.ValtimoModalService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModalComponent, selector: "valtimo-modal", inputs: { elementId: "elementId", title: "title", subtitle: "subtitle", templateBelowSubtitle: "templateBelowSubtitle", showFooter: "showFooter" }, viewQueries: [{ propertyName: "scrollModal", first: true, predicate: ["scrollModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"modal fade custom-width\" [id]=\"elementId\" role=\"dialog\" aria-modal=\"true\" #scrollModal>\n <div class=\"modal-dialog modal-lg\">\n <div class=\"modal-content\">\n <div class=\"modal-header modal-header-colored colored-header-grey\">\n <div class=\"modal-title\">\n <h4 class=\"title-text mb-2\">{{ title }}</h4>\n <h5 class=\"subtitle-text\">{{ subtitle }}</h5>\n <ng-container *ngIf=\"templateBelowSubtitle\">\n <ng-container *ngTemplateOutlet=\"templateBelowSubtitle\"></ng-container>\n </ng-container>\n </div>\n <div class=\"text-right\">\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n </div>\n <div class=\"modal-body\">\n <ng-content select=\"[body]\"></ng-content>\n </div>\n <div class=\"modal-footer\" *ngIf=\"showFooter\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n", styles: [".colored-header-grey{background-color:#f3f4f7}.title-text{color:#585555}.subtitle-text{color:#959595}.modal-header-image{height:auto;width:50%}.modal-header{padding-bottom:.66rem;border-bottom:1px solid #c5c6c9}@media (min-width: 768px){.close{position:relative;left:25px;padding:0!important;margin-top:-20px!important}.close span{color:#fff}.modal-content{overflow:visible}}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
67
|
-
}
|
|
68
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModalComponent, decorators: [{
|
|
69
|
-
type: Component,
|
|
70
|
-
args: [{ selector: 'valtimo-modal', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"modal fade custom-width\" [id]=\"elementId\" role=\"dialog\" aria-modal=\"true\" #scrollModal>\n <div class=\"modal-dialog modal-lg\">\n <div class=\"modal-content\">\n <div class=\"modal-header modal-header-colored colored-header-grey\">\n <div class=\"modal-title\">\n <h4 class=\"title-text mb-2\">{{ title }}</h4>\n <h5 class=\"subtitle-text\">{{ subtitle }}</h5>\n <ng-container *ngIf=\"templateBelowSubtitle\">\n <ng-container *ngTemplateOutlet=\"templateBelowSubtitle\"></ng-container>\n </ng-container>\n </div>\n <div class=\"text-right\">\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n </div>\n <div class=\"modal-body\">\n <ng-content select=\"[body]\"></ng-content>\n </div>\n <div class=\"modal-footer\" *ngIf=\"showFooter\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n", styles: [".colored-header-grey{background-color:#f3f4f7}.title-text{color:#585555}.subtitle-text{color:#959595}.modal-header-image{height:auto;width:50%}.modal-header{padding-bottom:.66rem;border-bottom:1px solid #c5c6c9}@media (min-width: 768px){.close{position:relative;left:25px;padding:0!important;margin-top:-20px!important}.close span{color:#fff}.modal-content{overflow:visible}}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
|
|
71
|
-
}], ctorParameters: () => [{ type: i1.ValtimoModalService }], propDecorators: { elementId: [{
|
|
72
|
-
type: Input
|
|
73
|
-
}], title: [{
|
|
74
|
-
type: Input
|
|
75
|
-
}], subtitle: [{
|
|
76
|
-
type: Input
|
|
77
|
-
}], templateBelowSubtitle: [{
|
|
78
|
-
type: Input
|
|
79
|
-
}], showFooter: [{
|
|
80
|
-
type: Input
|
|
81
|
-
}], scrollModal: [{
|
|
82
|
-
type: ViewChild,
|
|
83
|
-
args: ['scrollModal']
|
|
84
|
-
}] } });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUVMLFNBQVMsRUFFVCxLQUFLLEVBSUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxlQUFlLEVBQWUsTUFBTSxNQUFNLENBQUM7Ozs7QUFVbkQsTUFBTSxPQUFPLGNBQWM7SUFlekIsWUFBNkIsWUFBaUM7UUFBakMsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBYnJELFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRWQsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUluQixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBTUksQ0FBQztJQUVsRSxRQUFRO1FBQ04sSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELGVBQWU7UUFDYixDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSTtRQUNGLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSTtRQUNGLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7WUFFL0MsSUFBSSxPQUFPO2dCQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDL0MsU0FBUyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDNUIsSUFBSSxRQUFRLEVBQUUsYUFBYSxLQUFLLE9BQU8sRUFBRSxDQUFDO29CQUN4QyxNQUFNLFlBQVksR0FBSSxRQUFRLEVBQUUsTUFBYyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzVFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUN4QyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoRSxDQUFDOytHQTFEVSxjQUFjO21HQUFkLGNBQWMscVRDckMzQiw2dERBMENBOzs0RkRMYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLGVBQWU7d0ZBS2hCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRW9CLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VmFsdGltb01vZGFsU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvdmFsdGltby1tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdmFyXG5kZWNsYXJlIHZhciAkO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGVsZW1lbnRJZDogc3RyaW5nO1xuICBASW5wdXQoKSB0aXRsZSA9ICcnO1xuICBASW5wdXQoKSBzdWJ0aXRsZSA9ICcnO1xuICBASW5wdXQoKSB0ZW1wbGF0ZUJlbG93U3VidGl0bGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIHNob3dGb290ZXIgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdzY3JvbGxNb2RhbCcpIHNjcm9sbE1vZGFsOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICByZWFkb25seSBtb2RhbFNob3dpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSBzY3JvbGxTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSBvYnNlcnZlciE6IE11dGF0aW9uT2JzZXJ2ZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBtb2RhbFNlcnZpY2U6IFZhbHRpbW9Nb2RhbFNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuU2Nyb2xsU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgJChgIyR7dGhpcy5lbGVtZW50SWR9YCkubW9kYWwoe3Nob3c6IGZhbHNlfSk7XG4gICAgdGhpcy53YXRjaEZvckNsYXNzQ2hhbmdlcygpO1xuICB9XG5cbiAgc2hvdygpIHtcbiAgICAkKGAjJHt0aGlzLmVsZW1lbnRJZH1gKS5tb2RhbCgnc2hvdycpO1xuICB9XG5cbiAgaGlkZSgpIHtcbiAgICAkKGAjJHt0aGlzLmVsZW1lbnRJZH1gKS5tb2RhbCgnaGlkZScpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zY3JvbGxTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuU2Nyb2xsU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsU3Vic2NyaXB0aW9uID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2Nyb2xsVG9Ub3AkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5zY3JvbGxNb2RhbC5uYXRpdmVFbGVtZW50O1xuXG4gICAgICBpZiAoZWxlbWVudCkgZWxlbWVudC5zY3JvbGxUbygwLCAwKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgd2F0Y2hGb3JDbGFzc0NoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5vYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKG11dGF0aW9ucyA9PiB7XG4gICAgICBtdXRhdGlvbnM/LmZvckVhY2gobXV0YXRpb24gPT4ge1xuICAgICAgICBpZiAobXV0YXRpb24/LmF0dHJpYnV0ZU5hbWUgPT09ICdjbGFzcycpIHtcbiAgICAgICAgICBjb25zdCBtb2RhbFNob3dpbmcgPSAobXV0YXRpb24/LnRhcmdldCBhcyBhbnkpPy5jbGFzc0xpc3Q/LmNvbnRhaW5zKCdzaG93Jyk7XG4gICAgICAgICAgdGhpcy5tb2RhbFNob3dpbmckLm5leHQobW9kYWxTaG93aW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgY29uZmlnID0ge2F0dHJpYnV0ZXM6IHRydWUsIGNoaWxkTGlzdDogZmFsc2UsIGNoYXJhY3RlckRhdGE6IGZhbHNlfTtcbiAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcy5zY3JvbGxNb2RhbC5uYXRpdmVFbGVtZW50LCBjb25maWcpO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxkaXYgY2xhc3M9XCJtb2RhbCBmYWRlIGN1c3RvbS13aWR0aFwiIFtpZF09XCJlbGVtZW50SWRcIiByb2xlPVwiZGlhbG9nXCIgYXJpYS1tb2RhbD1cInRydWVcIiAjc2Nyb2xsTW9kYWw+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2cgbW9kYWwtbGdcIj5cbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBtb2RhbC1oZWFkZXItY29sb3JlZCBjb2xvcmVkLWhlYWRlci1ncmV5XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC10aXRsZVwiPlxuICAgICAgICAgIDxoNCBjbGFzcz1cInRpdGxlLXRleHQgbWItMlwiPnt7IHRpdGxlIH19PC9oND5cbiAgICAgICAgICA8aDUgY2xhc3M9XCJzdWJ0aXRsZS10ZXh0XCI+e3sgc3VidGl0bGUgfX08L2g1PlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZUJlbG93U3VidGl0bGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZUJlbG93U3VidGl0bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCI+XG4gICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2JvZHldXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCIgKm5nSWY9XCJzaG93Rm9vdGVyXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { NgModule } from '@angular/core';
|
|
17
|
-
import { CommonModule } from '@angular/common';
|
|
18
|
-
import { ModalComponent } from './modal.component';
|
|
19
|
-
import * as i0 from "@angular/core";
|
|
20
|
-
export class ModalModule {
|
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
22
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: ModalModule, declarations: [ModalComponent], imports: [CommonModule], exports: [ModalComponent] }); }
|
|
23
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModalModule, imports: [CommonModule] }); }
|
|
24
|
-
}
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModalModule, decorators: [{
|
|
26
|
-
type: NgModule,
|
|
27
|
-
args: [{
|
|
28
|
-
declarations: [ModalComponent],
|
|
29
|
-
imports: [CommonModule],
|
|
30
|
-
exports: [ModalComponent],
|
|
31
|
-
}]
|
|
32
|
-
}] });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7O0FBT2pELE1BQU0sT0FBTyxXQUFXOytHQUFYLFdBQVc7Z0hBQVgsV0FBVyxpQkFKUCxjQUFjLGFBQ25CLFlBQVksYUFDWixjQUFjO2dIQUViLFdBQVcsWUFIWixZQUFZOzs0RkFHWCxXQUFXO2tCQUx2QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TW9kYWxDb21wb25lbnR9IGZyb20gJy4vbW9kYWwuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTW9kYWxDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW01vZGFsQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxNb2R1bGUge31cbiJdfQ==
|