@yuuvis/client-framework 2.0.0-beta.0 → 2.0.0-beta.11
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/actions/lib/actions/delete-action/delete/delete.component.d.ts +3 -3
- package/actions/lib/actions/delete-action/delete-action.d.ts +1 -1
- package/actions/lib/actions.service.d.ts +7 -3
- package/actions/lib/components/contextmenu/contextmenu.component.d.ts +3 -1
- package/autocomplete/README.md +3 -0
- package/autocomplete/index.d.ts +3 -0
- package/autocomplete/lib/autocomplete.component.d.ts +72 -0
- package/autocomplete/lib/autocomplete.interface.d.ts +4 -0
- package/autocomplete/lib/autocomplete.module.d.ts +7 -0
- package/common/index.d.ts +4 -4
- package/common/lib/common.module.d.ts +19 -0
- package/common/lib/common.utils.d.ts +2 -0
- package/common/lib/components/confirm/confirm.component.d.ts +7 -0
- package/common/lib/components/confirm/confirm.interface.d.ts +7 -0
- package/common/lib/components/confirm/confirm.service.d.ts +9 -0
- package/common/lib/components/dialog/dialog.component.d.ts +6 -0
- package/common/lib/components/dialog/dialog.options.d.ts +7 -0
- package/common/lib/components/index.d.ts +5 -0
- package/common/lib/directives/autofocus-child.directive.d.ts +13 -0
- package/common/lib/directives/autofocus-delayed.directive.d.ts +18 -0
- package/common/lib/directives/drag-scroll.directive.d.ts +20 -0
- package/common/lib/directives/index.d.ts +8 -4
- package/common/lib/directives/noop-value-accessor.directive.d.ts +2 -2
- package/common/lib/mat-form-field.abstract.d.ts +41 -0
- package/common/lib/services/index.d.ts +1 -1
- package/common/lib/services/layout-settings/layout-settings.service.d.ts +18 -0
- package/datepicker/README.md +3 -0
- package/datepicker/index.d.ts +5 -0
- package/datepicker/lib/calendar/calendar.component.d.ts +72 -0
- package/datepicker/lib/date-input/date-input-element/date-input-element.component.d.ts +43 -0
- package/datepicker/lib/date-input/date-input-hour-element/date-input-hour-element.component.d.ts +11 -0
- package/datepicker/lib/date-input/date-input.component.d.ts +61 -0
- package/datepicker/lib/datepicker-calendar/datepicker-calendar-trigger.component.d.ts +7 -0
- package/datepicker/lib/datepicker-calendar/datepicker-calendar.component.d.ts +12 -0
- package/datepicker/lib/datepicker.component.d.ts +80 -0
- package/datepicker/lib/datepicker.interface.d.ts +34 -0
- package/datepicker/lib/datepicker.module.d.ts +9 -0
- package/datepicker/lib/datepicker.service.d.ts +46 -0
- package/datepicker/lib/datepicker.utils.d.ts +23 -0
- package/datepicker/lib/time-input/time-input.component.d.ts +36 -0
- package/datepicker/lib/time-input/time-input.interface.d.ts +6 -0
- package/fesm2022/yuuvis-client-framework-actions.mjs +147 -105
- package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-app-bar.mjs +7 -8
- package/fesm2022/yuuvis-client-framework-app-bar.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-autocomplete.mjs +210 -0
- package/fesm2022/yuuvis-client-framework-autocomplete.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-clipboard.mjs +9 -9
- package/fesm2022/yuuvis-client-framework-clipboard.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-common.mjs +853 -780
- package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-datepicker.mjs +1688 -0
- package/fesm2022/yuuvis-client-framework-datepicker.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-forms.mjs +945 -1157
- package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-icons.mjs +85 -12
- package/fesm2022/yuuvis-client-framework-icons.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-list.mjs +81 -45
- package/fesm2022/yuuvis-client-framework-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-master-details.mjs +112 -0
- package/fesm2022/yuuvis-client-framework-master-details.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs +60 -0
- package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs +125 -100
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-details.mjs +49 -59
- package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs +188 -77
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-form.mjs +99 -184
- package/fesm2022/yuuvis-client-framework-object-form.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-preview.mjs +12 -12
- package/fesm2022/yuuvis-client-framework-object-preview.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-summary.mjs +46 -42
- package/fesm2022/yuuvis-client-framework-object-summary.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-overflow-menu.mjs +126 -0
- package/fesm2022/yuuvis-client-framework-overflow-menu.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-pagination.mjs +7 -9
- package/fesm2022/yuuvis-client-framework-pagination.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-panel.mjs +8 -7
- package/fesm2022/yuuvis-client-framework-panel.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-popout.mjs +212 -0
- package/fesm2022/yuuvis-client-framework-popout.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-renderer.mjs +99 -72
- package/fesm2022/yuuvis-client-framework-renderer.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-sequence-list.mjs +29 -112
- package/fesm2022/yuuvis-client-framework-sequence-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-simple-search.mjs +40 -21
- package/fesm2022/yuuvis-client-framework-simple-search.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-split-view.mjs +188 -0
- package/fesm2022/yuuvis-client-framework-split-view.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-tile-list.mjs +100 -93
- package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-tree.mjs +15 -15
- package/fesm2022/yuuvis-client-framework-tree.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-upload-progress.mjs +16 -21
- package/fesm2022/yuuvis-client-framework-upload-progress.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework.mjs +4 -4
- package/fesm2022/yuuvis-client-framework.mjs.map +1 -1
- package/forms/index.d.ts +7 -1
- package/forms/lib/elements/catalog/catalog.component.d.ts +17 -56
- package/forms/lib/elements/data-grid/edit-table-data/edit-data.component.d.ts +5 -4
- package/forms/lib/elements/datetime/datetime.component.d.ts +19 -10
- package/forms/lib/elements/datetime-range/datetime-range.component.d.ts +12 -27
- package/forms/lib/elements/index.d.ts +0 -1
- package/forms/lib/elements/number/number.component.d.ts +21 -30
- package/forms/lib/elements/number-range/number-range.component.d.ts +12 -7
- package/forms/lib/elements/organization/organization.component.d.ts +23 -51
- package/forms/lib/elements/range-select-date/range-select-date.component.d.ts +12 -7
- package/forms/lib/elements/range-select-filesize/range-select-filesize.component.d.ts +12 -7
- package/forms/lib/elements/string/string.component.d.ts +15 -20
- package/forms/lib/forms.module.d.ts +8 -11
- package/icons/index.d.ts +1 -0
- package/icons/lib/icon.component.d.ts +20 -0
- package/lib/assets/i18n/de.json +7 -23
- package/lib/assets/i18n/en.json +10 -26
- package/list/index.d.ts +1 -0
- package/list/lib/list-item.directive.d.ts +5 -4
- package/list/lib/list.component.d.ts +6 -3
- package/list/lib/list.module.d.ts +8 -0
- package/master-details/README.md +3 -0
- package/master-details/index.d.ts +2 -0
- package/master-details/lib/master-details.component.d.ts +58 -0
- package/master-details/lib/master-details.interface.d.ts +7 -0
- package/master-details/lib/master-details.module.d.ts +7 -0
- package/metadata-form/index.d.ts +4 -1
- package/metadata-form/lib/metadata-form-field/metadata-form-field.component.d.ts +4 -17
- package/metadata-form/lib/metadata-form-field/metadata-form-field.interface.d.ts +11 -0
- package/metadata-form/lib/object-metadata-element-error.directive.d.ts +13 -0
- package/metadata-form/lib/object-metadata-element-label.directive.d.ts +10 -0
- package/metadata-form/lib/object-metadata-element-template.directive.d.ts +3 -3
- package/metadata-form-defaults/README.md +3 -0
- package/metadata-form-defaults/index.d.ts +2 -0
- package/metadata-form-defaults/lib/metadata-form-defaults.module.d.ts +7 -0
- package/object-details/lib/object-audit/object-audit.component.d.ts +3 -9
- package/object-details/lib/object-details.component.d.ts +0 -2
- package/object-details/lib/object-metadata/object-metadata.component.d.ts +4 -3
- package/object-details/lib/retention-badge/retention-badge.component.d.ts +0 -3
- package/object-flavor/index.d.ts +1 -0
- package/object-flavor/lib/abstract-apply-create-flavor/abstract-apply-create-flavor.component.d.ts +1 -2
- package/object-flavor/lib/abstract-apply-object-flavor/abstract-apply-object-flavor.component.d.ts +3 -2
- package/object-flavor/lib/default-apply-flavor/default-apply-flavor.component.d.ts +19 -0
- package/object-flavor/lib/flavor-chip/flavor-chip.component.d.ts +1 -1
- package/object-flavor/lib/object-flavor/object-flavor.component.d.ts +3 -6
- package/object-flavor/lib/object-flavor-picker/object-flavor-picker.component.d.ts +0 -1
- package/object-form/index.d.ts +1 -1
- package/object-form/lib/object-form-element/object-form-element.component.d.ts +2 -2
- package/object-form/lib/object-form-group/object-form-group.component.d.ts +1 -3
- package/object-form/lib/object-form.component.d.ts +2 -2
- package/object-form/lib/object-form.interface.d.ts +0 -44
- package/object-form/lib/object-form.module.d.ts +7 -0
- package/object-form/lib/object-form.service.d.ts +1 -2
- package/object-form/lib/object-form.utils.d.ts +1 -1
- package/object-summary/lib/object-summary/object-summary.component.d.ts +13 -15
- package/overflow-menu/README.md +3 -0
- package/overflow-menu/index.d.ts +3 -0
- package/overflow-menu/lib/overflow-menu.component.d.ts +31 -0
- package/overflow-menu/lib/overflow-menu.interface.d.ts +9 -0
- package/overflow-menu/lib/overflow-menu.module.d.ts +7 -0
- package/package.json +44 -70
- package/popout/README.md +3 -0
- package/popout/index.d.ts +3 -0
- package/popout/lib/popout.component.d.ts +58 -0
- package/popout/lib/popout.interface.d.ts +17 -0
- package/popout/lib/popout.module.d.ts +7 -0
- package/renderer/lib/property-renderer/abstract.renderer.d.ts +4 -4
- package/renderer/lib/property-renderer/icon.renderer.component.d.ts +2 -0
- package/renderer/lib/renderer.directive.d.ts +4 -3
- package/sequence-list/index.d.ts +0 -1
- package/sequence-list/lib/sequence-list.component.d.ts +0 -4
- package/simple-search/index.d.ts +0 -1
- package/simple-search/lib/simple-search/simple-search.component.d.ts +6 -10
- package/split-view/README.md +3 -0
- package/split-view/index.d.ts +4 -0
- package/split-view/lib/split-area.directive.d.ts +16 -0
- package/split-view/lib/split-view.component.d.ts +76 -0
- package/split-view/lib/split-view.interface.d.ts +10 -0
- package/split-view/lib/split-view.module.d.ts +8 -0
- package/styles/client-framework.scss +21 -67
- package/tile-list/lib/tile/tile.component.d.ts +1 -2
- package/tile-list/lib/tile-config/property-select/property-select.component.d.ts +0 -1
- package/tile-list/lib/tile-config/tile-config-trigger/tile-config-trigger.component.d.ts +1 -2
- package/tile-list/lib/tile-config/tile-config.component.d.ts +0 -3
- package/tile-list/lib/tile-list/tile-list.component.d.ts +5 -5
- package/upload-progress/lib/upload-progress/upload-progress-overlay/upload-progress-overlay.component.d.ts +0 -5
- package/upload-progress/lib/upload-progress/upload-progress.component.d.ts +0 -4
- package/common/lib/components/focus-indicator/focus-indicator.component.d.ts +0 -7
- package/common/lib/components/token-input/token-input.component.d.ts +0 -55
- package/common/lib/components/token-input/token-input.interface.d.ts +0 -8
- package/common/lib/services/error-messages/error-messages.service.d.ts +0 -7
- package/esm2022/actions/index.mjs +0 -7
- package/esm2022/actions/lib/actions/copy-action/copy-action.mjs +0 -31
- package/esm2022/actions/lib/actions/cut-action/cut-action.mjs +0 -30
- package/esm2022/actions/lib/actions/delete-action/delete/delete.component.mjs +0 -67
- package/esm2022/actions/lib/actions/delete-action/delete-action.mjs +0 -38
- package/esm2022/actions/lib/actions/download-action/download-action.mjs +0 -33
- package/esm2022/actions/lib/actions.icon.mjs +0 -8
- package/esm2022/actions/lib/actions.interface.mjs +0 -19
- package/esm2022/actions/lib/actions.module.mjs +0 -16
- package/esm2022/actions/lib/actions.service.mjs +0 -89
- package/esm2022/actions/lib/components/contextmenu/contextmenu.component.mjs +0 -27
- package/esm2022/actions/yuuvis-client-framework-actions.mjs +0 -5
- package/esm2022/app-bar/index.mjs +0 -2
- package/esm2022/app-bar/lib/app-bar.component.mjs +0 -89
- package/esm2022/app-bar/yuuvis-client-framework-app-bar.mjs +0 -5
- package/esm2022/clipboard/index.mjs +0 -2
- package/esm2022/clipboard/lib/clipboard.component.mjs +0 -48
- package/esm2022/clipboard/yuuvis-client-framework-clipboard.mjs +0 -5
- package/esm2022/common/index.mjs +0 -7
- package/esm2022/common/lib/components/focus-indicator/focus-indicator.component.mjs +0 -41
- package/esm2022/common/lib/components/token-input/token-input.component.mjs +0 -324
- package/esm2022/common/lib/components/token-input/token-input.interface.mjs +0 -2
- package/esm2022/common/lib/directives/busy-overlay.directive.mjs +0 -88
- package/esm2022/common/lib/directives/click-double.directive.mjs +0 -61
- package/esm2022/common/lib/directives/container-size.directive.mjs +0 -56
- package/esm2022/common/lib/directives/drag-select.directive.mjs +0 -114
- package/esm2022/common/lib/directives/file-drop-zone/file-drop-zone.directive.mjs +0 -153
- package/esm2022/common/lib/directives/file-drop-zone/file-drop-zone.interface.mjs +0 -2
- package/esm2022/common/lib/directives/focus-within.directive.mjs +0 -81
- package/esm2022/common/lib/directives/index.mjs +0 -9
- package/esm2022/common/lib/directives/light-dismiss.directive.mjs +0 -44
- package/esm2022/common/lib/directives/longpress.directive.mjs +0 -36
- package/esm2022/common/lib/directives/noop-value-accessor.directive.mjs +0 -42
- package/esm2022/common/lib/services/error-messages/error-messages.service.mjs +0 -68
- package/esm2022/common/lib/services/index.mjs +0 -2
- package/esm2022/common/yuuvis-client-framework-common.mjs +0 -5
- package/esm2022/forms/index.mjs +0 -24
- package/esm2022/forms/lib/elements/catalog/catalog.component.mjs +0 -118
- package/esm2022/forms/lib/elements/data-grid/data-grid/data-grid.component.mjs +0 -172
- package/esm2022/forms/lib/elements/data-grid/edit-table-data/edit-data.component.mjs +0 -95
- package/esm2022/forms/lib/elements/data-grid/model/data-grid.interface.mjs +0 -9
- package/esm2022/forms/lib/elements/datetime/datetime.component.mjs +0 -82
- package/esm2022/forms/lib/elements/datetime-range/datetime-range.component.mjs +0 -166
- package/esm2022/forms/lib/elements/index.mjs +0 -11
- package/esm2022/forms/lib/elements/number/number.component.mjs +0 -195
- package/esm2022/forms/lib/elements/number-range/number-range.component.mjs +0 -176
- package/esm2022/forms/lib/elements/organization/organization.component.mjs +0 -286
- package/esm2022/forms/lib/elements/range-select-date/date-range-picker/date-range-picker.component.mjs +0 -38
- package/esm2022/forms/lib/elements/range-select-date/range-select-date.component.mjs +0 -181
- package/esm2022/forms/lib/elements/range-select-date/range-select-date.interface.mjs +0 -2
- package/esm2022/forms/lib/elements/range-select-filesize/range-select-filesize.component.mjs +0 -98
- package/esm2022/forms/lib/elements/range-select-filesize/range-select-filesize.interface.mjs +0 -2
- package/esm2022/forms/lib/elements/string/string.component.mjs +0 -261
- package/esm2022/forms/lib/form-input/form-input.component.mjs +0 -88
- package/esm2022/forms/lib/forms.module.mjs +0 -58
- package/esm2022/forms/yuuvis-client-framework-forms.mjs +0 -5
- package/esm2022/icons/index.mjs +0 -4
- package/esm2022/icons/lib/icon.service.mjs +0 -59
- package/esm2022/icons/lib/icons.mjs +0 -32
- package/esm2022/icons/lib/object-type-icon/object-type-icon.component.mjs +0 -29
- package/esm2022/icons/yuuvis-client-framework-icons.mjs +0 -5
- package/esm2022/index.mjs +0 -2
- package/esm2022/lib/yuuvis-client-framework.module.mjs +0 -15
- package/esm2022/list/index.mjs +0 -3
- package/esm2022/list/lib/list-item.directive.mjs +0 -72
- package/esm2022/list/lib/list.component.mjs +0 -135
- package/esm2022/list/yuuvis-client-framework-list.mjs +0 -5
- package/esm2022/metadata-form/index.mjs +0 -4
- package/esm2022/metadata-form/lib/metadata-default-templates/metadata-default-templates.component.mjs +0 -32
- package/esm2022/metadata-form/lib/metadata-form-element-registry.service.mjs +0 -99
- package/esm2022/metadata-form/lib/metadata-form-field/metadata-form-field.component.mjs +0 -83
- package/esm2022/metadata-form/lib/object-metadata-element-template.directive.mjs +0 -52
- package/esm2022/metadata-form/yuuvis-client-framework-metadata-form.mjs +0 -5
- package/esm2022/object-details/index.mjs +0 -8
- package/esm2022/object-details/lib/object-audit/object-audit.component.mjs +0 -195
- package/esm2022/object-details/lib/object-details-shell/object-details-shell.component.mjs +0 -127
- package/esm2022/object-details/lib/object-details.component.mjs +0 -61
- package/esm2022/object-details/lib/object-metadata/form-section-group.pipe.mjs +0 -17
- package/esm2022/object-details/lib/object-metadata/object-metadata.component.mjs +0 -202
- package/esm2022/object-details/lib/object-metadata/object-metadata.interface.mjs +0 -2
- package/esm2022/object-details/lib/retention-badge/retention-badge.component.mjs +0 -27
- package/esm2022/object-details/yuuvis-client-framework-object-details.mjs +0 -5
- package/esm2022/object-flavor/index.mjs +0 -6
- package/esm2022/object-flavor/lib/abstract-apply-create-flavor/abstract-apply-create-flavor.component.mjs +0 -25
- package/esm2022/object-flavor/lib/abstract-apply-object-flavor/abstract-apply-object-flavor.component.mjs +0 -21
- package/esm2022/object-flavor/lib/flavor-chip/flavor-chip.component.mjs +0 -35
- package/esm2022/object-flavor/lib/object-flavor/object-flavor.component.mjs +0 -93
- package/esm2022/object-flavor/lib/object-flavor-picker/object-flavor-picker.component.mjs +0 -43
- package/esm2022/object-flavor/yuuvis-client-framework-object-flavor.mjs +0 -5
- package/esm2022/object-form/index.mjs +0 -5
- package/esm2022/object-form/lib/form-scripting.api.interface.mjs +0 -2
- package/esm2022/object-form/lib/form-scripting.service.mjs +0 -160
- package/esm2022/object-form/lib/object-form-element/object-form-element.component.mjs +0 -87
- package/esm2022/object-form/lib/object-form-extension.interface.mjs +0 -36
- package/esm2022/object-form/lib/object-form-group/object-form-group.component.mjs +0 -85
- package/esm2022/object-form/lib/object-form-script/form-scripting-element-extension/form-scripting-element-extension.component.mjs +0 -23
- package/esm2022/object-form/lib/object-form-script/object-form-script.service.mjs +0 -115
- package/esm2022/object-form/lib/object-form-script/object-form-scripting-scope.mjs +0 -251
- package/esm2022/object-form/lib/object-form-translate.service.mjs +0 -73
- package/esm2022/object-form/lib/object-form.component.mjs +0 -628
- package/esm2022/object-form/lib/object-form.interface.mjs +0 -9
- package/esm2022/object-form/lib/object-form.model.mjs +0 -20
- package/esm2022/object-form/lib/object-form.service.mjs +0 -130
- package/esm2022/object-form/lib/object-form.utils.mjs +0 -55
- package/esm2022/object-form/lib/object-form.validation.mjs +0 -48
- package/esm2022/object-form/yuuvis-client-framework-object-form.mjs +0 -5
- package/esm2022/object-preview/index.mjs +0 -3
- package/esm2022/object-preview/lib/components/index.mjs +0 -3
- package/esm2022/object-preview/lib/components/object-email-preview/object-email-preview.component.mjs +0 -45
- package/esm2022/object-preview/lib/components/object-preview/object-preview.component.mjs +0 -78
- package/esm2022/object-preview/lib/services/object-preview.service.mjs +0 -119
- package/esm2022/object-preview/yuuvis-client-framework-object-preview.mjs +0 -5
- package/esm2022/object-summary/index.mjs +0 -5
- package/esm2022/object-summary/lib/multi-object-summary/multi-object-summary.component.mjs +0 -33
- package/esm2022/object-summary/lib/object-summary/object-summary.component.mjs +0 -275
- package/esm2022/object-summary/lib/object-summary-data/object-summary-data.component.mjs +0 -80
- package/esm2022/object-summary/lib/object-summary.module.mjs +0 -15
- package/esm2022/object-summary/yuuvis-client-framework-object-summary.mjs +0 -5
- package/esm2022/pagination/index.mjs +0 -3
- package/esm2022/pagination/lib/pagination.component.mjs +0 -46
- package/esm2022/pagination/lib/pagination.interface.mjs +0 -2
- package/esm2022/pagination/yuuvis-client-framework-pagination.mjs +0 -5
- package/esm2022/panel/index.mjs +0 -2
- package/esm2022/panel/lib/panel.component.mjs +0 -20
- package/esm2022/panel/yuuvis-client-framework-panel.mjs +0 -5
- package/esm2022/renderer/index.mjs +0 -11
- package/esm2022/renderer/lib/property-renderer/abstract.renderer.mjs +0 -29
- package/esm2022/renderer/lib/property-renderer/datetime.renderer.mjs +0 -13
- package/esm2022/renderer/lib/property-renderer/decimal.renderer.component.mjs +0 -12
- package/esm2022/renderer/lib/property-renderer/filesize.renderer.component.mjs +0 -28
- package/esm2022/renderer/lib/property-renderer/icon.renderer.component.mjs +0 -23
- package/esm2022/renderer/lib/property-renderer/integer.renderer.component.mjs +0 -12
- package/esm2022/renderer/lib/property-renderer/organization.renderer.mjs +0 -19
- package/esm2022/renderer/lib/property-renderer/string.renderer.component.mjs +0 -12
- package/esm2022/renderer/lib/property-renderer/unknown.renderer.mjs +0 -12
- package/esm2022/renderer/lib/renderer.directive.mjs +0 -51
- package/esm2022/renderer/lib/services/renderer/renderer.interface.mjs +0 -2
- package/esm2022/renderer/lib/services/renderer/renderer.service.mjs +0 -84
- package/esm2022/renderer/yuuvis-client-framework-renderer.mjs +0 -5
- package/esm2022/sequence-list/index.mjs +0 -4
- package/esm2022/sequence-list/lib/due-date-picker/due-date-picker.component.mjs +0 -99
- package/esm2022/sequence-list/lib/sequence-list.component.mjs +0 -141
- package/esm2022/sequence-list/lib/sequence-list.interface.mjs +0 -2
- package/esm2022/sequence-list/yuuvis-client-framework-sequence-list.mjs +0 -5
- package/esm2022/simple-search/index.mjs +0 -3
- package/esm2022/simple-search/lib/simple-search/simple-search.component.mjs +0 -111
- package/esm2022/simple-search/lib/simple-search/simple-search.interface.mjs +0 -2
- package/esm2022/simple-search/yuuvis-client-framework-simple-search.mjs +0 -5
- package/esm2022/tile-list/index.mjs +0 -11
- package/esm2022/tile-list/lib/tile/tile.component.mjs +0 -53
- package/esm2022/tile-list/lib/tile-config/action-select/action-select.component.mjs +0 -25
- package/esm2022/tile-list/lib/tile-config/icon-select/icon-select.component.mjs +0 -33
- package/esm2022/tile-list/lib/tile-config/property-select/property-select.component.mjs +0 -91
- package/esm2022/tile-list/lib/tile-config/tile-config-tile/tile-config-tile.component.mjs +0 -66
- package/esm2022/tile-list/lib/tile-config/tile-config-trigger/tile-config-trigger.component.mjs +0 -46
- package/esm2022/tile-list/lib/tile-config/tile-config.component.mjs +0 -156
- package/esm2022/tile-list/lib/tile-extension/directive/tile-extension.directive.mjs +0 -37
- package/esm2022/tile-list/lib/tile-extension/extensions/email.extension.mjs +0 -42
- package/esm2022/tile-list/lib/tile-extension/tile-extension.service.mjs +0 -35
- package/esm2022/tile-list/lib/tile-list/tile-list.component.mjs +0 -510
- package/esm2022/tile-list/lib/tile-list/tile-list.interface.mjs +0 -2
- package/esm2022/tile-list/yuuvis-client-framework-tile-list.mjs +0 -5
- package/esm2022/token-search/index.mjs +0 -3
- package/esm2022/token-search/token-search.component.mjs +0 -78
- package/esm2022/token-search/token-search.interface.mjs +0 -2
- package/esm2022/token-search/yuuvis-client-framework-token-search.mjs +0 -5
- package/esm2022/tree/index.mjs +0 -3
- package/esm2022/tree/lib/tree-node/tree-node.component.mjs +0 -65
- package/esm2022/tree/lib/tree.component.mjs +0 -148
- package/esm2022/tree/lib/tree.interface.mjs +0 -2
- package/esm2022/tree/lib/tree.service.mjs +0 -95
- package/esm2022/tree/yuuvis-client-framework-tree.mjs +0 -5
- package/esm2022/upload-progress/index.mjs +0 -2
- package/esm2022/upload-progress/lib/upload-progress/upload-progress-overlay/upload-progress-overlay.component.mjs +0 -49
- package/esm2022/upload-progress/lib/upload-progress/upload-progress.component.mjs +0 -37
- package/esm2022/upload-progress/yuuvis-client-framework-upload-progress.mjs +0 -5
- package/esm2022/user-avatar/index.mjs +0 -3
- package/esm2022/user-avatar/lib/user-avatar.component.mjs +0 -69
- package/esm2022/user-avatar/lib/user-avatar.module.mjs +0 -24
- package/esm2022/user-avatar/yuuvis-client-framework-user-avatar.mjs +0 -5
- package/esm2022/yuuvis-client-framework.mjs +0 -5
- package/fesm2022/yuuvis-client-framework-token-search.mjs +0 -85
- package/fesm2022/yuuvis-client-framework-token-search.mjs.map +0 -1
- package/fesm2022/yuuvis-client-framework-user-avatar.mjs +0 -96
- package/fesm2022/yuuvis-client-framework-user-avatar.mjs.map +0 -1
- package/forms/lib/form-input/form-input.component.d.ts +0 -48
- package/object-form/lib/object-form-translate.service.d.ts +0 -15
- package/object-form/lib/object-form.model.d.ts +0 -18
- package/sequence-list/lib/due-date-picker/due-date-picker.component.d.ts +0 -28
- package/simple-search/lib/simple-search/simple-search.interface.d.ts +0 -4
- package/token-search/README.md +0 -3
- package/token-search/index.d.ts +0 -2
- package/token-search/token-search.component.d.ts +0 -22
- package/token-search/token-search.interface.d.ts +0 -4
- package/user-avatar/README.md +0 -3
- package/user-avatar/index.d.ts +0 -2
- package/user-avatar/lib/user-avatar.component.d.ts +0 -44
- package/user-avatar/lib/user-avatar.module.d.ts +0 -8
- /package/{metadata-form → metadata-form-defaults}/lib/metadata-default-templates/metadata-default-templates.component.d.ts +0 -0
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Situation } from '@yuuvis/client-core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* Registration service for form elements rendered within an object form.
|
|
6
|
-
*/
|
|
7
|
-
export class MetadataFormElementRegistry {
|
|
8
|
-
constructor() {
|
|
9
|
-
this._defaults = {};
|
|
10
|
-
this._edit = {};
|
|
11
|
-
this._search = {};
|
|
12
|
-
this._create = {};
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Get a template to render a certain form element
|
|
16
|
-
* @param propertyType The internal type to get the template for
|
|
17
|
-
* @param situation Form situation
|
|
18
|
-
* @returns TemplateRef or undefined
|
|
19
|
-
*/
|
|
20
|
-
getElementTemplate(propertyType, situation = Situation.EDIT) {
|
|
21
|
-
let cmps = { ...this._defaults, ...this._edit };
|
|
22
|
-
if (situation === Situation.SEARCH)
|
|
23
|
-
cmps = { ...this._defaults, ...this._edit, ...this._search };
|
|
24
|
-
else if (situation === Situation.CREATE)
|
|
25
|
-
cmps = { ...this._defaults, ...this._edit, ...this._create };
|
|
26
|
-
return cmps[propertyType];
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Register an object form element for a certain internal type. You might add a new component
|
|
30
|
-
* or overwrite an existung one.
|
|
31
|
-
* @param propertyType The internal type to provide the component for
|
|
32
|
-
* @param component The component
|
|
33
|
-
* @param situation Form situation to provide thew form element for (defaults to EDIT)
|
|
34
|
-
*/
|
|
35
|
-
addElementTemplate(propertyType, templateRef, situation = Situation.EDIT) {
|
|
36
|
-
if (propertyType && templateRef) {
|
|
37
|
-
switch (situation) {
|
|
38
|
-
case Situation.SEARCH: {
|
|
39
|
-
this._search[propertyType] = templateRef;
|
|
40
|
-
break;
|
|
41
|
-
}
|
|
42
|
-
case Situation.CREATE: {
|
|
43
|
-
this._create[propertyType] = templateRef;
|
|
44
|
-
break;
|
|
45
|
-
}
|
|
46
|
-
default: {
|
|
47
|
-
this._edit[propertyType] = templateRef;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Remove a registered form element.
|
|
54
|
-
* @param propertyType The internal type to remove the component for
|
|
55
|
-
* @param situation Form situation to provide thew form element for (defaults to EDIT)
|
|
56
|
-
*/
|
|
57
|
-
removeElementTemplate(propertyType, situation = Situation.EDIT) {
|
|
58
|
-
switch (situation) {
|
|
59
|
-
case Situation.SEARCH: {
|
|
60
|
-
delete this._search[propertyType];
|
|
61
|
-
break;
|
|
62
|
-
}
|
|
63
|
-
case Situation.CREATE: {
|
|
64
|
-
delete this._create[propertyType];
|
|
65
|
-
break;
|
|
66
|
-
}
|
|
67
|
-
default: {
|
|
68
|
-
delete this._edit[propertyType];
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Register default form element component. Usually this will be done by the object
|
|
74
|
-
* form component itself.
|
|
75
|
-
* @param propertyType The internal type to provide the component for
|
|
76
|
-
* @param component The default component
|
|
77
|
-
*/
|
|
78
|
-
_addDefaultElementTemplate(propertyType, templateRef) {
|
|
79
|
-
if (propertyType && templateRef) {
|
|
80
|
-
this._defaults[propertyType] = templateRef;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Remove a registered default form element.
|
|
85
|
-
* @param propertyType The internal type to remove the component for
|
|
86
|
-
*/
|
|
87
|
-
_removeDefaultElementTemplate(propertyType) {
|
|
88
|
-
delete this._defaults[propertyType];
|
|
89
|
-
}
|
|
90
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataFormElementRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
91
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataFormElementRegistry, providedIn: 'root' }); }
|
|
92
|
-
}
|
|
93
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataFormElementRegistry, decorators: [{
|
|
94
|
-
type: Injectable,
|
|
95
|
-
args: [{
|
|
96
|
-
providedIn: 'root'
|
|
97
|
-
}]
|
|
98
|
-
}] });
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtZm9ybS1lbGVtZW50LXJlZ2lzdHJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL21ldGFkYXRhLWZvcm0vc3JjL2xpYi9tZXRhZGF0YS1mb3JtLWVsZW1lbnQtcmVnaXN0cnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFaEQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sMkJBQTJCO0lBSHhDO1FBSVUsY0FBUyxHQUFpRCxFQUFFLENBQUM7UUFFN0QsVUFBSyxHQUFpRCxFQUFFLENBQUM7UUFDekQsWUFBTyxHQUFpRCxFQUFFLENBQUM7UUFDM0QsWUFBTyxHQUFpRCxFQUFFLENBQUM7S0FpRnBFO0lBL0VDOzs7OztPQUtHO0lBQ0gsa0JBQWtCLENBQUMsWUFBb0IsRUFBRSxZQUFvQixTQUFTLENBQUMsSUFBSTtRQUN6RSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoRCxJQUFJLFNBQVMsS0FBSyxTQUFTLENBQUMsTUFBTTtZQUFFLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDNUYsSUFBSSxTQUFTLEtBQUssU0FBUyxDQUFDLE1BQU07WUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRXRHLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxrQkFBa0IsQ0FBQyxZQUFvQixFQUFFLFdBQTZCLEVBQUUsWUFBdUIsU0FBUyxDQUFDLElBQUk7UUFDM0csSUFBSSxZQUFZLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEMsUUFBUSxTQUFTLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxXQUFXLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1IsQ0FBQztnQkFDRCxLQUFLLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLFdBQVcsQ0FBQztvQkFDekMsTUFBTTtnQkFDUixDQUFDO2dCQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7b0JBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxXQUFXLENBQUM7Z0JBQ3pDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gscUJBQXFCLENBQUMsWUFBb0IsRUFBRSxZQUF1QixTQUFTLENBQUMsSUFBSTtRQUMvRSxRQUFRLFNBQVMsRUFBRSxDQUFDO1lBQ2xCLEtBQUssU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDbEMsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ2xDLE1BQU07WUFDUixDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCwwQkFBMEIsQ0FBQyxZQUFvQixFQUFFLFdBQTZCO1FBQzVFLElBQUksWUFBWSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsV0FBVyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsNkJBQTZCLENBQUMsWUFBb0I7UUFDaEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7K0dBckZVLDJCQUEyQjttSEFBM0IsMkJBQTJCLGNBRjFCLE1BQU07OzRGQUVQLDJCQUEyQjtrQkFIdkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2l0dWF0aW9uIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5cbi8qKlxuICogUmVnaXN0cmF0aW9uIHNlcnZpY2UgZm9yIGZvcm0gZWxlbWVudHMgcmVuZGVyZWQgd2l0aGluIGFuIG9iamVjdCBmb3JtLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBNZXRhZGF0YUZvcm1FbGVtZW50UmVnaXN0cnkge1xuICBwcml2YXRlIF9kZWZhdWx0czogeyBbcHJvcGVydHlUeXBlOiBzdHJpbmddOiBUZW1wbGF0ZVJlZjxhbnk+IH0gPSB7fTtcblxuICBwcml2YXRlIF9lZGl0OiB7IFtwcm9wZXJ0eVR5cGU6IHN0cmluZ106IFRlbXBsYXRlUmVmPGFueT4gfSA9IHt9O1xuICBwcml2YXRlIF9zZWFyY2g6IHsgW3Byb3BlcnR5VHlwZTogc3RyaW5nXTogVGVtcGxhdGVSZWY8YW55PiB9ID0ge307XG4gIHByaXZhdGUgX2NyZWF0ZTogeyBbcHJvcGVydHlUeXBlOiBzdHJpbmddOiBUZW1wbGF0ZVJlZjxhbnk+IH0gPSB7fTtcblxuICAvKipcbiAgICogR2V0IGEgdGVtcGxhdGUgdG8gcmVuZGVyIGEgY2VydGFpbiBmb3JtIGVsZW1lbnRcbiAgICogQHBhcmFtIHByb3BlcnR5VHlwZSBUaGUgaW50ZXJuYWwgdHlwZSB0byBnZXQgdGhlIHRlbXBsYXRlIGZvclxuICAgKiBAcGFyYW0gc2l0dWF0aW9uIEZvcm0gc2l0dWF0aW9uXG4gICAqIEByZXR1cm5zIFRlbXBsYXRlUmVmIG9yIHVuZGVmaW5lZFxuICAgKi9cbiAgZ2V0RWxlbWVudFRlbXBsYXRlKHByb3BlcnR5VHlwZTogc3RyaW5nLCBzaXR1YXRpb246IHN0cmluZyA9IFNpdHVhdGlvbi5FRElUKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGNtcHMgPSB7IC4uLnRoaXMuX2RlZmF1bHRzLCAuLi50aGlzLl9lZGl0IH07XG4gICAgaWYgKHNpdHVhdGlvbiA9PT0gU2l0dWF0aW9uLlNFQVJDSCkgY21wcyA9IHsgLi4udGhpcy5fZGVmYXVsdHMsIC4uLnRoaXMuX2VkaXQsIC4uLnRoaXMuX3NlYXJjaCB9O1xuICAgIGVsc2UgaWYgKHNpdHVhdGlvbiA9PT0gU2l0dWF0aW9uLkNSRUFURSkgY21wcyA9IHsgLi4udGhpcy5fZGVmYXVsdHMsIC4uLnRoaXMuX2VkaXQsIC4uLnRoaXMuX2NyZWF0ZSB9O1xuXG4gICAgcmV0dXJuIGNtcHNbcHJvcGVydHlUeXBlXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhbiBvYmplY3QgZm9ybSBlbGVtZW50IGZvciBhIGNlcnRhaW4gaW50ZXJuYWwgdHlwZS4gWW91IG1pZ2h0IGFkZCBhIG5ldyBjb21wb25lbnRcbiAgICogb3Igb3ZlcndyaXRlIGFuIGV4aXN0dW5nIG9uZS5cbiAgICogQHBhcmFtIHByb3BlcnR5VHlwZSBUaGUgaW50ZXJuYWwgdHlwZSB0byBwcm92aWRlIHRoZSBjb21wb25lbnQgZm9yXG4gICAqIEBwYXJhbSBjb21wb25lbnQgVGhlIGNvbXBvbmVudFxuICAgKiBAcGFyYW0gc2l0dWF0aW9uIEZvcm0gc2l0dWF0aW9uIHRvIHByb3ZpZGUgdGhldyBmb3JtIGVsZW1lbnQgZm9yIChkZWZhdWx0cyB0byBFRElUKVxuICAgKi9cbiAgYWRkRWxlbWVudFRlbXBsYXRlKHByb3BlcnR5VHlwZTogc3RyaW5nLCB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Piwgc2l0dWF0aW9uOiBTaXR1YXRpb24gPSBTaXR1YXRpb24uRURJVCk6IHZvaWQge1xuICAgIGlmIChwcm9wZXJ0eVR5cGUgJiYgdGVtcGxhdGVSZWYpIHtcbiAgICAgIHN3aXRjaCAoc2l0dWF0aW9uKSB7XG4gICAgICAgIGNhc2UgU2l0dWF0aW9uLlNFQVJDSDoge1xuICAgICAgICAgIHRoaXMuX3NlYXJjaFtwcm9wZXJ0eVR5cGVdID0gdGVtcGxhdGVSZWY7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBTaXR1YXRpb24uQ1JFQVRFOiB7XG4gICAgICAgICAgdGhpcy5fY3JlYXRlW3Byb3BlcnR5VHlwZV0gPSB0ZW1wbGF0ZVJlZjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgdGhpcy5fZWRpdFtwcm9wZXJ0eVR5cGVdID0gdGVtcGxhdGVSZWY7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgcmVnaXN0ZXJlZCBmb3JtIGVsZW1lbnQuXG4gICAqIEBwYXJhbSBwcm9wZXJ0eVR5cGUgVGhlIGludGVybmFsIHR5cGUgdG8gcmVtb3ZlIHRoZSBjb21wb25lbnQgZm9yXG4gICAqIEBwYXJhbSBzaXR1YXRpb24gRm9ybSBzaXR1YXRpb24gdG8gcHJvdmlkZSB0aGV3IGZvcm0gZWxlbWVudCBmb3IgKGRlZmF1bHRzIHRvIEVESVQpXG4gICAqL1xuICByZW1vdmVFbGVtZW50VGVtcGxhdGUocHJvcGVydHlUeXBlOiBzdHJpbmcsIHNpdHVhdGlvbjogU2l0dWF0aW9uID0gU2l0dWF0aW9uLkVESVQpIHtcbiAgICBzd2l0Y2ggKHNpdHVhdGlvbikge1xuICAgICAgY2FzZSBTaXR1YXRpb24uU0VBUkNIOiB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLl9zZWFyY2hbcHJvcGVydHlUeXBlXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFNpdHVhdGlvbi5DUkVBVEU6IHtcbiAgICAgICAgZGVsZXRlIHRoaXMuX2NyZWF0ZVtwcm9wZXJ0eVR5cGVdO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgZGVsZXRlIHRoaXMuX2VkaXRbcHJvcGVydHlUeXBlXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgZGVmYXVsdCBmb3JtIGVsZW1lbnQgY29tcG9uZW50LiBVc3VhbGx5IHRoaXMgd2lsbCBiZSBkb25lIGJ5IHRoZSBvYmplY3RcbiAgICogZm9ybSBjb21wb25lbnQgaXRzZWxmLlxuICAgKiBAcGFyYW0gcHJvcGVydHlUeXBlIFRoZSBpbnRlcm5hbCB0eXBlIHRvIHByb3ZpZGUgdGhlIGNvbXBvbmVudCBmb3JcbiAgICogQHBhcmFtIGNvbXBvbmVudCBUaGUgZGVmYXVsdCBjb21wb25lbnRcbiAgICovXG4gIF9hZGREZWZhdWx0RWxlbWVudFRlbXBsYXRlKHByb3BlcnR5VHlwZTogc3RyaW5nLCB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pik6IHZvaWQge1xuICAgIGlmIChwcm9wZXJ0eVR5cGUgJiYgdGVtcGxhdGVSZWYpIHtcbiAgICAgIHRoaXMuX2RlZmF1bHRzW3Byb3BlcnR5VHlwZV0gPSB0ZW1wbGF0ZVJlZjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgcmVnaXN0ZXJlZCBkZWZhdWx0IGZvcm0gZWxlbWVudC5cbiAgICogQHBhcmFtIHByb3BlcnR5VHlwZSBUaGUgaW50ZXJuYWwgdHlwZSB0byByZW1vdmUgdGhlIGNvbXBvbmVudCBmb3JcbiAgICovXG4gIF9yZW1vdmVEZWZhdWx0RWxlbWVudFRlbXBsYXRlKHByb3BlcnR5VHlwZTogc3RyaW5nKSB7XG4gICAgZGVsZXRlIHRoaXMuX2RlZmF1bHRzW3Byb3BlcnR5VHlwZV07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { NgClass, NgTemplateOutlet } from '@angular/common';
|
|
2
|
-
import { Component, effect, inject, input, signal, untracked, ViewEncapsulation } from '@angular/core';
|
|
3
|
-
import { Situation, SystemService, TranslateService, Utils } from '@yuuvis/client-core';
|
|
4
|
-
import { injectNgControl, NoopValueAccessorDirective } from '@yuuvis/client-framework/common';
|
|
5
|
-
import { FormInputComponent } from '@yuuvis/client-framework/forms';
|
|
6
|
-
import { MetadataFormElementRegistry } from '../metadata-form-element-registry.service';
|
|
7
|
-
import { ErrorMessagesService } from '@yuuvis/client-framework/common';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@yuuvis/client-framework/common";
|
|
10
|
-
export class MetadataFormFieldComponent {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.#registry = inject(MetadataFormElementRegistry);
|
|
13
|
-
this.#system = inject(SystemService);
|
|
14
|
-
this.translate = inject(TranslateService);
|
|
15
|
-
this.#errorMassge = inject(ErrorMessagesService);
|
|
16
|
-
this._subs = [];
|
|
17
|
-
this.ngControl = injectNgControl();
|
|
18
|
-
this.elementTemplate = signal(undefined);
|
|
19
|
-
this.errors = null;
|
|
20
|
-
this.label = '';
|
|
21
|
-
this.readonly = false;
|
|
22
|
-
this.required = false;
|
|
23
|
-
this.formField = input.required({ alias: 'field' });
|
|
24
|
-
this.#fieldEffect = effect(() => {
|
|
25
|
-
const field = this.formField();
|
|
26
|
-
untracked(() => {
|
|
27
|
-
this.elementTemplate.set(this.#registry.getElementTemplate(field._internalType, this.situation()));
|
|
28
|
-
this.label = this.#system.getLocalizedLabel(field.name) || field.name;
|
|
29
|
-
// TODO: set readonly state based on ...????... schema?
|
|
30
|
-
this.readonly = false;
|
|
31
|
-
this.required = this.situation() !== Situation.SEARCH ? field.required : false;
|
|
32
|
-
this.ngControl.statusChanges;
|
|
33
|
-
this.fetchTags();
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
/**
|
|
37
|
-
* Form situation, if not set default will be 'EDIT'
|
|
38
|
-
*/
|
|
39
|
-
this.situation = input(Situation.EDIT);
|
|
40
|
-
}
|
|
41
|
-
#registry;
|
|
42
|
-
#system;
|
|
43
|
-
#errorMassge;
|
|
44
|
-
#fieldEffect;
|
|
45
|
-
fetchTags() {
|
|
46
|
-
this.tag = undefined;
|
|
47
|
-
if (this.situation() === Situation.CREATE &&
|
|
48
|
-
(Utils.hasProperty(this.formField(), 'defaultvaluefunction') || Utils.hasProperty(this.formField(), 'defaultvalue'))) {
|
|
49
|
-
this.tag =
|
|
50
|
-
this.formField().defaultvaluefunction === 'EXTRACTION'
|
|
51
|
-
? {
|
|
52
|
-
label: 'ex',
|
|
53
|
-
title: this.translate.instant('yuv.object-form-element.tag.ex')
|
|
54
|
-
}
|
|
55
|
-
: {
|
|
56
|
-
label: 'df',
|
|
57
|
-
title: this.translate.instant('yuv.object-form-element.tag.df')
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
ngOnInit() {
|
|
62
|
-
if (this.ngControl.statusChanges)
|
|
63
|
-
this._subs.push(this.ngControl.statusChanges.subscribe(() => {
|
|
64
|
-
this.errors = this.ngControl.control.errors
|
|
65
|
-
? Object.keys(this.ngControl.control.errors).map((key) => {
|
|
66
|
-
return this.ngControl.control.errors ? this.#errorMassge.getErrorLabel(key, this.ngControl.control.errors[key].params) : null;
|
|
67
|
-
})
|
|
68
|
-
: null;
|
|
69
|
-
}));
|
|
70
|
-
}
|
|
71
|
-
ngOnDestroy() {
|
|
72
|
-
this._subs.forEach((s) => s.unsubscribe());
|
|
73
|
-
}
|
|
74
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
75
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MetadataFormFieldComponent, isStandalone: true, selector: "yuv-metadata-form-field", inputs: { formField: { classPropertyName: "formField", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, situation: { classPropertyName: "situation", publicName: "situation", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "yuv-metadata-form-field" }, hostDirectives: [{ directive: i1.NoopValueAccessorDirective }], ngImport: i0, template: "@let field = formField();\n\n@if (field) {\n @let et = elementTemplate();\n\n <div class=\"form-field t-{{ field._internalType }}\" #formField [attr.data-name]=\"field.name\" [ngClass]=\"{ disabled: !!readonly }\">\n @if (et) {\n @if (field._internalType === 'table') {\n <ng-container *ngTemplateOutlet=\"et; context: { $implicit: { situation: situation(), ngControl: ngControl.control, field } }\"></ng-container>\n } @else {\n <yuv-form-input\n [ngClass]=\"{ checkbox: field._internalType === 'boolean' }\"\n [tag]=\"tag\"\n [label]=\"label\"\n [required]=\"required\"\n [invalid]=\"!!errors\"\n [disabled]=\"readonly\"\n >\n <ng-container *ngTemplateOutlet=\"et; context: { $implicit: { situation: situation(), ngControl: ngControl.control, field } }\"></ng-container>\n </yuv-form-input>\n }\n } @else {\n <em>\n <strong>{{ field._internalType }}</strong>\n </em>\n }\n\n <!-- the fields description -->\n @if (field.description) {\n <div class=\"description\">\n {{ field.description }}\n </div>\n }\n\n <!-- error/validation messages -->\n @if (errors) {\n <div class=\"err-msg\">\n <div>{{ errors[errors['length'] - 1] }}</div>\n </div>\n }\n </div>\n}\n", styles: [".yuv-metadata-form-field{display:inline-block}.yuv-metadata-form-field .form-field{margin-block-end:1px;border-radius:.25em}.yuv-metadata-form-field .form-field .description{border:0;font-size:var(--font-hint);color:var(--text-color-caption);font-style:italic;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 8) 0 calc(var(--app-pane-padding) / 8)}.yuv-metadata-form-field .form-field .err-msg{font-size:var(--font-hint);color:var(--color-error);padding:calc(var(--app-pane-padding) / 4) 0;border:0}.yuv-metadata-form-field .form-field .table{flex-flow:column;align-items:flex-start;border:1px solid var(--panel-divider-color)}.yuv-metadata-form-field .form-field .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.yuv-metadata-form-field .form-field .table.invalid{border:1px solid var(--color-error)}.yuv-metadata-form-field .form-field.inlineError .err-msg{display:none}.yuv-metadata-form-field.ng-dirty:not(.ng-invalid)>.form-field:not(.focused) .fe-wrapper>label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)!important}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FormInputComponent, selector: "yuv-form-input", inputs: ["label", "tag", "description", "invalid", "disabled", "required"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
76
|
-
}
|
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataFormFieldComponent, decorators: [{
|
|
78
|
-
type: Component,
|
|
79
|
-
args: [{ selector: 'yuv-metadata-form-field', standalone: true, imports: [NgClass, NgTemplateOutlet, FormInputComponent], hostDirectives: [NoopValueAccessorDirective], encapsulation: ViewEncapsulation.None, host: {
|
|
80
|
-
class: 'yuv-metadata-form-field'
|
|
81
|
-
}, template: "@let field = formField();\n\n@if (field) {\n @let et = elementTemplate();\n\n <div class=\"form-field t-{{ field._internalType }}\" #formField [attr.data-name]=\"field.name\" [ngClass]=\"{ disabled: !!readonly }\">\n @if (et) {\n @if (field._internalType === 'table') {\n <ng-container *ngTemplateOutlet=\"et; context: { $implicit: { situation: situation(), ngControl: ngControl.control, field } }\"></ng-container>\n } @else {\n <yuv-form-input\n [ngClass]=\"{ checkbox: field._internalType === 'boolean' }\"\n [tag]=\"tag\"\n [label]=\"label\"\n [required]=\"required\"\n [invalid]=\"!!errors\"\n [disabled]=\"readonly\"\n >\n <ng-container *ngTemplateOutlet=\"et; context: { $implicit: { situation: situation(), ngControl: ngControl.control, field } }\"></ng-container>\n </yuv-form-input>\n }\n } @else {\n <em>\n <strong>{{ field._internalType }}</strong>\n </em>\n }\n\n <!-- the fields description -->\n @if (field.description) {\n <div class=\"description\">\n {{ field.description }}\n </div>\n }\n\n <!-- error/validation messages -->\n @if (errors) {\n <div class=\"err-msg\">\n <div>{{ errors[errors['length'] - 1] }}</div>\n </div>\n }\n </div>\n}\n", styles: [".yuv-metadata-form-field{display:inline-block}.yuv-metadata-form-field .form-field{margin-block-end:1px;border-radius:.25em}.yuv-metadata-form-field .form-field .description{border:0;font-size:var(--font-hint);color:var(--text-color-caption);font-style:italic;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 8) 0 calc(var(--app-pane-padding) / 8)}.yuv-metadata-form-field .form-field .err-msg{font-size:var(--font-hint);color:var(--color-error);padding:calc(var(--app-pane-padding) / 4) 0;border:0}.yuv-metadata-form-field .form-field .table{flex-flow:column;align-items:flex-start;border:1px solid var(--panel-divider-color)}.yuv-metadata-form-field .form-field .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.yuv-metadata-form-field .form-field .table.invalid{border:1px solid var(--color-error)}.yuv-metadata-form-field .form-field.inlineError .err-msg{display:none}.yuv-metadata-form-field.ng-dirty:not(.ng-invalid)>.form-field:not(.focused) .fe-wrapper>label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)!important}\n"] }]
|
|
82
|
-
}] });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL21ldGFkYXRhLWZvcm0vc3JjL2xpYi9tZXRhZGF0YS1mb3JtLWZpZWxkL21ldGFkYXRhLWZvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9tZXRhZGF0YS1mb3JtL3NyYy9saWIvbWV0YWRhdGEtZm9ybS1maWVsZC9tZXRhZGF0YS1mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZJLE9BQU8sRUFBbUIsU0FBUyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZUFBZSxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDeEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7OztBQWN2RSxNQUFNLE9BQU8sMEJBQTBCO0lBWnZDO1FBYVcsY0FBUyxHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ2hELFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFD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QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU07b0JBQ3pDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO3dCQUNyRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO29CQUNoSSxDQUFDLENBQUM7b0JBQ0osQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNYLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDOytHQTdFVSwwQkFBMEI7bUdBQTFCLDBCQUEwQix1ZEN0QnZDLHUwQ0EwQ0EsZ29DRDdCWSxPQUFPLG9GQUFFLGdCQUFnQixvSkFBRSxrQkFBa0I7OzRGQVM1QywwQkFBMEI7a0JBWnRDLFNBQVM7K0JBQ0UseUJBQXlCLGNBQ3ZCLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQyxrQkFHeEMsQ0FBQywwQkFBMEIsQ0FBQyxpQkFDN0IsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUseUJBQXlCO3FCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBzaWduYWwsIFRlbXBsYXRlUmVmLCB1bnRyYWNrZWQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JqZWN0VHlwZUZpZWxkLCBTaXR1YXRpb24sIFN5c3RlbVNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2UsIFV0aWxzIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBpbmplY3ROZ0NvbnRyb2wsIE5vb3BWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXRhZGF0YUZvcm1FbGVtZW50UmVnaXN0cnkgfSBmcm9tICcuLi9tZXRhZGF0YS1mb3JtLWVsZW1lbnQtcmVnaXN0cnkuc2VydmljZSc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2VzU2VydmljZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtbWV0YWRhdGEtZm9ybS1maWVsZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0LCBGb3JtSW5wdXRDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vbWV0YWRhdGEtZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tZXRhZGF0YS1mb3JtLWZpZWxkLmNvbXBvbmVudC5zY3NzJyxcbiAgaG9zdERpcmVjdGl2ZXM6IFtOb29wVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZV0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3l1di1tZXRhZGF0YS1mb3JtLWZpZWxkJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE1ldGFkYXRhRm9ybUZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICByZWFkb25seSAjcmVnaXN0cnkgPSBpbmplY3QoTWV0YWRhdGFGb3JtRWxlbWVudFJlZ2lzdHJ5KTtcbiAgcmVhZG9ubHkgI3N5c3RlbSA9IGluamVjdChTeXN0ZW1TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gIHJlYWRvbmx5ICNlcnJvck1hc3NnZSA9IGluamVjdChFcnJvck1lc3NhZ2VzU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgbmdDb250cm9sID0gaW5qZWN0TmdDb250cm9sKCk7XG4gIGVsZW1lbnRUZW1wbGF0ZSA9IHNpZ25hbDxUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcbiAgbGFiZWwgPSAnJztcbiAgcmVhZG9ubHkgPSBmYWxzZTtcbiAgcmVxdWlyZWQgPSBmYWxzZTtcbiAgdGFnOlxuICAgIHwge1xuICAgICAgICBsYWJlbDogc3RyaW5nO1xuICAgICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgfVxuICAgIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9maWVsZCE6IE9iamVjdFR5cGVGaWVsZDtcblxuICBmb3JtRmllbGQgPSBpbnB1dC5yZXF1aXJlZDxPYmplY3RUeXBlRmllbGQ+KHsgYWxpYXM6ICdmaWVsZCcgfSk7XG5cbiAgI2ZpZWxkRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBmaWVsZCA9IHRoaXMuZm9ybUZpZWxkKCk7XG5cbiAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgdGhpcy5lbGVtZW50VGVtcGxhdGUuc2V0KHRoaXMuI3JlZ2lzdHJ5LmdldEVsZW1lbnRUZW1wbGF0ZShmaWVsZC5faW50ZXJuYWxUeXBlLCB0aGlzLnNpdHVhdGlvbigpKSk7XG4gICAgICB0aGlzLmxhYmVsID0gdGhpcy4jc3lzdGVtLmdldExvY2FsaXplZExhYmVsKGZpZWxkLm5hbWUpIHx8IGZpZWxkLm5hbWU7XG5cbiAgICAgIC8vIFRPRE86IHNldCByZWFkb25seSBzdGF0ZSBiYXNlZCBvbiAuLi4/Pz8/Li4uIHNjaGVtYT9cbiAgICAgIHRoaXMucmVhZG9ubHkgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVxdWlyZWQgPSB0aGlzLnNpdHVhdGlvbigpICE9PSBTaXR1YXRpb24uU0VBUkNIID8gZmllbGQucmVxdWlyZWQgOiBmYWxzZTtcbiAgICAgIHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXM7XG4gICAgICB0aGlzLmZldGNoVGFncygpO1xuICAgIH0pO1xuICB9KTtcblxuICAvKipcbiAgICogRm9ybSBzaXR1YXRpb24sIGlmIG5vdCBzZXQgZGVmYXVsdCB3aWxsIGJlICdFRElUJ1xuICAgKi9cbiAgc2l0dWF0aW9uID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPihTaXR1YXRpb24uRURJVCk7XG5cbiAgZmV0Y2hUYWdzKCkge1xuICAgIHRoaXMudGFnID0gdW5kZWZpbmVkO1xuICAgIGlmIChcbiAgICAgIHRoaXMuc2l0dWF0aW9uKCkgPT09IFNpdHVhdGlvbi5DUkVBVEUgJiZcbiAgICAgIChVdGlscy5oYXNQcm9wZXJ0eSh0aGlzLmZvcm1GaWVsZCgpLCAnZGVmYXVsdHZhbHVlZnVuY3Rpb24nKSB8fCBVdGlscy5oYXNQcm9wZXJ0eSh0aGlzLmZvcm1GaWVsZCgpLCAnZGVmYXVsdHZhbHVlJykpXG4gICAgKSB7XG4gICAgICB0aGlzLnRhZyA9XG4gICAgICAgICh0aGlzLmZvcm1GaWVsZCgpIGFzIGFueSkuZGVmYXVsdHZhbHVlZnVuY3Rpb24gPT09ICdFWFRSQUNUSU9OJ1xuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBsYWJlbDogJ2V4JyxcbiAgICAgICAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5vYmplY3QtZm9ybS1lbGVtZW50LnRhZy5leCcpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiAnZGYnLFxuICAgICAgICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2Lm9iamVjdC1mb3JtLWVsZW1lbnQudGFnLmRmJylcbiAgICAgICAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXMpXG4gICAgICB0aGlzLl9zdWJzLnB1c2goXG4gICAgICAgIHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9ycyA9IHRoaXMubmdDb250cm9sLmNvbnRyb2wuZXJyb3JzXG4gICAgICAgICAgICA/IE9iamVjdC5rZXlzKHRoaXMubmdDb250cm9sLmNvbnRyb2wuZXJyb3JzKS5tYXAoKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbC5jb250cm9sLmVycm9ycyA/IHRoaXMuI2Vycm9yTWFzc2dlLmdldEVycm9yTGFiZWwoa2V5LCB0aGlzLm5nQ29udHJvbC5jb250cm9sLmVycm9yc1trZXldLnBhcmFtcykgOiBudWxsO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnMuZm9yRWFjaCgocykgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxufVxuIiwiQGxldCBmaWVsZCA9IGZvcm1GaWVsZCgpO1xuXG5AaWYgKGZpZWxkKSB7XG4gIEBsZXQgZXQgPSBlbGVtZW50VGVtcGxhdGUoKTtcblxuICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZCB0LXt7IGZpZWxkLl9pbnRlcm5hbFR5cGUgfX1cIiAjZm9ybUZpZWxkIFthdHRyLmRhdGEtbmFtZV09XCJmaWVsZC5uYW1lXCIgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogISFyZWFkb25seSB9XCI+XG4gICAgQGlmIChldCkge1xuICAgICAgQGlmIChmaWVsZC5faW50ZXJuYWxUeXBlID09PSAndGFibGUnKSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJldDsgY29udGV4dDogeyAkaW1wbGljaXQ6IHsgc2l0dWF0aW9uOiBzaXR1YXRpb24oKSwgbmdDb250cm9sOiBuZ0NvbnRyb2wuY29udHJvbCwgZmllbGQgfSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHl1di1mb3JtLWlucHV0XG4gICAgICAgICAgW25nQ2xhc3NdPVwieyBjaGVja2JveDogZmllbGQuX2ludGVybmFsVHlwZSA9PT0gJ2Jvb2xlYW4nIH1cIlxuICAgICAgICAgIFt0YWddPVwidGFnXCJcbiAgICAgICAgICBbbGFiZWxdPVwibGFiZWxcIlxuICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgW2ludmFsaWRdPVwiISFlcnJvcnNcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWFkb25seVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXQ7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiB7IHNpdHVhdGlvbjogc2l0dWF0aW9uKCksIG5nQ29udHJvbDogbmdDb250cm9sLmNvbnRyb2wsIGZpZWxkIH0gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3l1di1mb3JtLWlucHV0PlxuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgPGVtPlxuICAgICAgICA8c3Ryb25nPnt7IGZpZWxkLl9pbnRlcm5hbFR5cGUgfX08L3N0cm9uZz5cbiAgICAgIDwvZW0+XG4gICAgfVxuXG4gICAgPCEtLSB0aGUgZmllbGRzIGRlc2NyaXB0aW9uIC0tPlxuICAgIEBpZiAoZmllbGQuZGVzY3JpcHRpb24pIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICB7eyBmaWVsZC5kZXNjcmlwdGlvbiB9fVxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPCEtLSBlcnJvci92YWxpZGF0aW9uIG1lc3NhZ2VzIC0tPlxuICAgIEBpZiAoZXJyb3JzKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZXJyLW1zZ1wiPlxuICAgICAgICA8ZGl2Pnt7IGVycm9yc1tlcnJvcnNbJ2xlbmd0aCddIC0gMV0gfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG59XG4iXX0=
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { Directive, Input, TemplateRef, inject } from '@angular/core';
|
|
2
|
-
import { Situation } from '@yuuvis/client-core';
|
|
3
|
-
import { MetadataFormElementRegistry } from './metadata-form-element-registry.service';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
/**
|
|
6
|
-
* Directive to be applied to a `ng-template`. It will register the template as a
|
|
7
|
-
* form element used by object-form component.
|
|
8
|
-
*
|
|
9
|
-
* Context is provided with the following fields:
|
|
10
|
-
* - situation: form situation 'EDIT', 'CREATE', 'SEARCH'
|
|
11
|
-
* - field: ObjectTypeField
|
|
12
|
-
* - ngControl: Reactive FormControl
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* <ng-template yuvMetadataElementTemplate propertyType="boolean:switch" let-ctx>...</ng-template>
|
|
16
|
-
*
|
|
17
|
-
*/
|
|
18
|
-
export class MetadataElementTemplateDirective {
|
|
19
|
-
constructor() {
|
|
20
|
-
this.registry = inject(MetadataFormElementRegistry);
|
|
21
|
-
this.template = inject((TemplateRef));
|
|
22
|
-
this.situation = Situation.EDIT;
|
|
23
|
-
}
|
|
24
|
-
ngOnInit() {
|
|
25
|
-
if (this.yuvMetadataElementTemplate === 'default')
|
|
26
|
-
this.registry._addDefaultElementTemplate(this.propertyType, this.template);
|
|
27
|
-
else
|
|
28
|
-
this.registry.addElementTemplate(this.propertyType, this.template, this.situation);
|
|
29
|
-
}
|
|
30
|
-
ngOnDestroy() {
|
|
31
|
-
if (this.yuvMetadataElementTemplate === 'default')
|
|
32
|
-
this.registry._removeDefaultElementTemplate(this.propertyType);
|
|
33
|
-
else
|
|
34
|
-
this.registry.removeElementTemplate(this.propertyType, this.situation);
|
|
35
|
-
}
|
|
36
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataElementTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
37
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: MetadataElementTemplateDirective, isStandalone: true, selector: "[yuvMetadataElementTemplate]", inputs: { yuvMetadataElementTemplate: "yuvMetadataElementTemplate", propertyType: "propertyType", situation: "situation" }, ngImport: i0 }); }
|
|
38
|
-
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataElementTemplateDirective, decorators: [{
|
|
40
|
-
type: Directive,
|
|
41
|
-
args: [{
|
|
42
|
-
selector: '[yuvMetadataElementTemplate]',
|
|
43
|
-
standalone: true,
|
|
44
|
-
}]
|
|
45
|
-
}], propDecorators: { yuvMetadataElementTemplate: [{
|
|
46
|
-
type: Input
|
|
47
|
-
}], propertyType: [{
|
|
48
|
-
type: Input
|
|
49
|
-
}], situation: [{
|
|
50
|
-
type: Input
|
|
51
|
-
}] } });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LW1ldGFkYXRhLWVsZW1lbnQtdGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9tZXRhZGF0YS1mb3JtL3NyYy9saWIvb2JqZWN0LW1ldGFkYXRhLWVsZW1lbnQtdGVtcGxhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7QUFFdkY7Ozs7Ozs7Ozs7OztHQVlHO0FBS0gsTUFBTSxPQUFPLGdDQUFnQztJQUo3QztRQUtVLGFBQVEsR0FBRyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUMvQyxhQUFRLEdBQUcsTUFBTSxDQUFDLENBQUEsV0FBZ0IsQ0FBQSxDQUFDLENBQUM7UUFJbkMsY0FBUyxHQUFjLFNBQVMsQ0FBQyxJQUFJLENBQUM7S0FXaEQ7SUFUQyxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsMEJBQTBCLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7O1lBQ3pILElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLDBCQUEwQixLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzs7WUFDN0csSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5RSxDQUFDOytHQWhCVSxnQ0FBZ0M7bUdBQWhDLGdDQUFnQzs7NEZBQWhDLGdDQUFnQztrQkFKNUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBS1UsMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTaXR1YXRpb24gfSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IE1ldGFkYXRhRm9ybUVsZW1lbnRSZWdpc3RyeSB9IGZyb20gJy4vbWV0YWRhdGEtZm9ybS1lbGVtZW50LXJlZ2lzdHJ5LnNlcnZpY2UnO1xuXG4vKipcbiAqIERpcmVjdGl2ZSB0byBiZSBhcHBsaWVkIHRvIGEgYG5nLXRlbXBsYXRlYC4gSXQgd2lsbCByZWdpc3RlciB0aGUgdGVtcGxhdGUgYXMgYVxuICogZm9ybSBlbGVtZW50IHVzZWQgYnkgb2JqZWN0LWZvcm0gY29tcG9uZW50LlxuICpcbiAqIENvbnRleHQgaXMgcHJvdmlkZWQgd2l0aCB0aGUgZm9sbG93aW5nIGZpZWxkczpcbiAqIC0gc2l0dWF0aW9uOiBmb3JtIHNpdHVhdGlvbiAnRURJVCcsICdDUkVBVEUnLCAnU0VBUkNIJ1xuICogLSBmaWVsZDogT2JqZWN0VHlwZUZpZWxkXG4gKiAtIG5nQ29udHJvbDogUmVhY3RpdmUgRm9ybUNvbnRyb2xcbiAqXG4gKiBAZXhhbXBsZVxuICogPG5nLXRlbXBsYXRlIHl1dk1ldGFkYXRhRWxlbWVudFRlbXBsYXRlIHByb3BlcnR5VHlwZT1cImJvb2xlYW46c3dpdGNoXCIgbGV0LWN0eD4uLi48L25nLXRlbXBsYXRlPlxuICpcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3l1dk1ldGFkYXRhRWxlbWVudFRlbXBsYXRlXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE1ldGFkYXRhRWxlbWVudFRlbXBsYXRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlZ2lzdHJ5ID0gaW5qZWN0KE1ldGFkYXRhRm9ybUVsZW1lbnRSZWdpc3RyeSk7XG4gIHByaXZhdGUgdGVtcGxhdGUgPSBpbmplY3QoVGVtcGxhdGVSZWY8YW55Pik7XG5cbiAgQElucHV0KCkgeXV2TWV0YWRhdGFFbGVtZW50VGVtcGxhdGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHByb3BlcnR5VHlwZSE6IHN0cmluZztcbiAgQElucHV0KCkgc2l0dWF0aW9uOiBTaXR1YXRpb24gPSBTaXR1YXRpb24uRURJVDtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy55dXZNZXRhZGF0YUVsZW1lbnRUZW1wbGF0ZSA9PT0gJ2RlZmF1bHQnKSB0aGlzLnJlZ2lzdHJ5Ll9hZGREZWZhdWx0RWxlbWVudFRlbXBsYXRlKHRoaXMucHJvcGVydHlUeXBlLCB0aGlzLnRlbXBsYXRlKTtcbiAgICBlbHNlIHRoaXMucmVnaXN0cnkuYWRkRWxlbWVudFRlbXBsYXRlKHRoaXMucHJvcGVydHlUeXBlLCB0aGlzLnRlbXBsYXRlLCB0aGlzLnNpdHVhdGlvbik7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy55dXZNZXRhZGF0YUVsZW1lbnRUZW1wbGF0ZSA9PT0gJ2RlZmF1bHQnKSB0aGlzLnJlZ2lzdHJ5Ll9yZW1vdmVEZWZhdWx0RWxlbWVudFRlbXBsYXRlKHRoaXMucHJvcGVydHlUeXBlKTtcbiAgICBlbHNlIHRoaXMucmVnaXN0cnkucmVtb3ZlRWxlbWVudFRlbXBsYXRlKHRoaXMucHJvcGVydHlUeXBlLCB0aGlzLnNpdHVhdGlvbik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXV1dmlzLWNsaWVudC1mcmFtZXdvcmstbWV0YWRhdGEtZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvbWV0YWRhdGEtZm9ybS9zcmMveXV1dmlzLWNsaWVudC1mcmFtZXdvcmstbWV0YWRhdGEtZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export * from './lib/object-details.component';
|
|
2
|
-
export * from './lib/object-metadata/form-section-group.pipe';
|
|
3
|
-
export * from './lib/object-metadata/object-metadata.interface';
|
|
4
|
-
export * from './lib/object-audit/object-audit.component';
|
|
5
|
-
export * from './lib/object-metadata/object-metadata.component';
|
|
6
|
-
export * from './lib/object-details-shell/object-details-shell.component';
|
|
7
|
-
export * from './lib/retention-badge/retention-badge.component';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1kZXRhaWxzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYywyREFBMkQsQ0FBQztBQUUxRSxjQUFjLGlEQUFpRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvb2JqZWN0LWRldGFpbHMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL29iamVjdC1tZXRhZGF0YS9mb3JtLXNlY3Rpb24tZ3JvdXAucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vYmplY3QtbWV0YWRhdGEvb2JqZWN0LW1ldGFkYXRhLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vYmplY3QtYXVkaXQvb2JqZWN0LWF1ZGl0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vYmplY3QtbWV0YWRhdGEvb2JqZWN0LW1ldGFkYXRhLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vYmplY3QtZGV0YWlscy1zaGVsbC9vYmplY3QtZGV0YWlscy1zaGVsbC5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZXRlbnRpb24tYmFkZ2UvcmV0ZW50aW9uLWJhZGdlLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, computed, effect, input, signal } from '@angular/core';
|
|
3
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
-
import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms';
|
|
5
|
-
import { RouterLink } from '@angular/router';
|
|
6
|
-
import { AppCacheService, AuditService, BackendService, EventService, LocaleDatePipe, SystemService, TranslateModule, TranslateService, YuvEventType } from '@yuuvis/client-core';
|
|
7
|
-
import { BusyOverlayDirective } from '@yuuvis/client-framework/common';
|
|
8
|
-
import { YUV_ICONS } from '@yuuvis/client-framework/icons';
|
|
9
|
-
import { YvcIconModule } from '@yuuvis/components/icon';
|
|
10
|
-
import { finalize } from 'rxjs';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "@yuuvis/client-core";
|
|
13
|
-
import * as i2 from "@angular/forms";
|
|
14
|
-
import * as i3 from "@angular/common";
|
|
15
|
-
import * as i4 from "@yuuvis/components/icon";
|
|
16
|
-
export class ObjectAuditComponent {
|
|
17
|
-
#dmsObjectEffect;
|
|
18
|
-
get objectID() {
|
|
19
|
-
return this._objectID;
|
|
20
|
-
}
|
|
21
|
-
constructor(auditService, backend, appCache, eventService, system, fb, translate
|
|
22
|
-
// private iconRegistry: IconRegistryService,
|
|
23
|
-
// @Inject(ROUTES) private routes: YuvRoutes
|
|
24
|
-
) {
|
|
25
|
-
this.auditService = auditService;
|
|
26
|
-
this.backend = backend;
|
|
27
|
-
this.appCache = appCache;
|
|
28
|
-
this.eventService = eventService;
|
|
29
|
-
this.system = system;
|
|
30
|
-
this.fb = fb;
|
|
31
|
-
this.translate = translate;
|
|
32
|
-
this.FILTER_CACHE_KEY = 'yuv.audit.filters';
|
|
33
|
-
this.icons = {
|
|
34
|
-
filter: YUV_ICONS.filter,
|
|
35
|
-
arrowNext: YUV_ICONS.arrowNext
|
|
36
|
-
};
|
|
37
|
-
this.resolvedItems = signal([]);
|
|
38
|
-
this.searchPanelShow = false;
|
|
39
|
-
this.error = false;
|
|
40
|
-
this.busy = false;
|
|
41
|
-
this.searchActions = [];
|
|
42
|
-
this.auditLabels = {};
|
|
43
|
-
this.dmsObject = input(undefined);
|
|
44
|
-
this.#dmsObjectEffect = effect(() => {
|
|
45
|
-
const o = this.dmsObject();
|
|
46
|
-
if (!o) {
|
|
47
|
-
this._objectID = undefined;
|
|
48
|
-
this._objectTypeID = undefined;
|
|
49
|
-
this.auditsRes = undefined;
|
|
50
|
-
}
|
|
51
|
-
else if (!this._objectID || this._objectID !== o.id) {
|
|
52
|
-
this._objectID = o.id;
|
|
53
|
-
this._objectTypeID = o.objectTypeId;
|
|
54
|
-
this.query();
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
this.query();
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
/**
|
|
61
|
-
* A list of audits that should not be shown. Use the audit codes (like 100, 301, etc.).
|
|
62
|
-
* This will also disable the corresponding filters.
|
|
63
|
-
*/
|
|
64
|
-
this.skipActions = input([]);
|
|
65
|
-
/**
|
|
66
|
-
* Whether or not to ignore admin and user separation of audit entries
|
|
67
|
-
*/
|
|
68
|
-
this.allActions = input(false);
|
|
69
|
-
this.link = input(undefined, { alias: 'versionsLink' });
|
|
70
|
-
this.versionsLink = computed(() => {
|
|
71
|
-
const link = this.link();
|
|
72
|
-
return link ? `${link}` : undefined;
|
|
73
|
-
});
|
|
74
|
-
// this.versionStatePath = this.routes && this.routes.versions ? this.routes.versions.path : null;
|
|
75
|
-
// this.versionStateQueryParam = this.routes && this.routes.versions ? this.routes.versions.queryParams.version : null;
|
|
76
|
-
// this.iconRegistry.registerIcons([filter, arrowNext, arrowNext]);
|
|
77
|
-
this.auditLabels = {
|
|
78
|
-
a100: this.translate.instant('yuv.audit.label.create.metadata'),
|
|
79
|
-
a101: this.translate.instant('yuv.audit.label.create.metadata.withcontent'),
|
|
80
|
-
a110: this.translate.instant('yuv.audit.label.create.tag'),
|
|
81
|
-
a200: this.translate.instant('yuv.audit.label.delete'),
|
|
82
|
-
a201: this.translate.instant('yuv.audit.label.delete.content'), // #v
|
|
83
|
-
a202: this.translate.instant('yuv.audit.label.delete.marked'),
|
|
84
|
-
a210: this.translate.instant('yuv.audit.label.delete.tag'), // #v
|
|
85
|
-
a220: this.translate.instant('yuv.audit.label.delete.version'), // #v
|
|
86
|
-
a300: this.translate.instant('yuv.audit.label.update.metadata'),
|
|
87
|
-
a301: this.translate.instant('yuv.audit.label.update.content'),
|
|
88
|
-
a302: this.translate.instant('yuv.audit.label.update.metadata.withcontent'),
|
|
89
|
-
a303: this.translate.instant('yuv.audit.label.update.move.content'),
|
|
90
|
-
a310: this.translate.instant('yuv.audit.label.update.tag'),
|
|
91
|
-
a325: this.translate.instant('yuv.audit.label.update.restore'),
|
|
92
|
-
a340: this.translate.instant('yuv.audit.label.update.move'),
|
|
93
|
-
a400: this.translate.instant('yuv.audit.label.get.content'),
|
|
94
|
-
a401: this.translate.instant('yuv.audit.label.get.metadata'),
|
|
95
|
-
a402: this.translate.instant('yuv.audit.label.get.rendition.text'),
|
|
96
|
-
a403: this.translate.instant('yuv.audit.label.get.rendition.pdf'),
|
|
97
|
-
a404: this.translate.instant('yuv.audit.label.get.rendition.thumbnail'),
|
|
98
|
-
a10000: this.translate.instant('yuv.audit.label.get.custom')
|
|
99
|
-
};
|
|
100
|
-
this.eventService
|
|
101
|
-
.on(YuvEventType.DMS_OBJECT_UPDATED)
|
|
102
|
-
.pipe(takeUntilDestroyed())
|
|
103
|
-
.subscribe((e) => {
|
|
104
|
-
const dmsObject = e.data;
|
|
105
|
-
// reload audit entries when update belongs to the current dms object
|
|
106
|
-
if (dmsObject.id === this.objectID) {
|
|
107
|
-
this.query();
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
fetchAuditEntries() {
|
|
112
|
-
if (!this._objectID || !this._objectTypeID)
|
|
113
|
-
return;
|
|
114
|
-
this.error = false;
|
|
115
|
-
this.busy = true;
|
|
116
|
-
this.auditService
|
|
117
|
-
.getAuditEntries(this._objectID, { skipActions: this.skipActions() })
|
|
118
|
-
.pipe(finalize(() => (this.busy = false)))
|
|
119
|
-
.subscribe({
|
|
120
|
-
next: (res) => {
|
|
121
|
-
this.auditsRes = res;
|
|
122
|
-
this.resolvedItems.set(this.mapResult(res));
|
|
123
|
-
},
|
|
124
|
-
error: () => {
|
|
125
|
-
this.onError();
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
mapResult(res) {
|
|
130
|
-
return (res.items
|
|
131
|
-
// TODO: Remove this filter once the system:ren:text audit lifecycle planning is complete and the tag's purpose is fully defined.
|
|
132
|
-
// https://help.optimal-systems.com/yuuvis/Momentum/latest/index.html#_content_renditions_asynchronous_full_text_indexing.html
|
|
133
|
-
.filter((i) => !i.detail.includes('[system:ren:text, 1]'))
|
|
134
|
-
.map((i) => {
|
|
135
|
-
const r = { ...i, label: this.auditLabels['a' + i.action] };
|
|
136
|
-
// tag related audits
|
|
137
|
-
if ([110, 210, 310].includes(i.action)) {
|
|
138
|
-
const params = this.getAuditEntryParams(i);
|
|
139
|
-
if (params) {
|
|
140
|
-
r.more = `
|
|
141
|
-
${this.system.getLocalizedLabel(params[0])}: ${this.system.getLocalizedLabel(`${params[0]}:${params[1]}`)}
|
|
142
|
-
`;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
// restore audit
|
|
146
|
-
else if (i.action === 325) {
|
|
147
|
-
const params = this.getAuditEntryParams(i);
|
|
148
|
-
r.more = this.translate.instant('yuv.audit.label.update.restore.more', { version: params[0] || '[?]' });
|
|
149
|
-
}
|
|
150
|
-
// custom audits
|
|
151
|
-
else if (i.action === 10000) {
|
|
152
|
-
r.label = this.system.getLocalizedLabel(`audit:custom:${i.subaction}`) || `${i.subaction}`;
|
|
153
|
-
}
|
|
154
|
-
return r;
|
|
155
|
-
}));
|
|
156
|
-
}
|
|
157
|
-
getAuditEntryParams(auditItem) {
|
|
158
|
-
const m = auditItem.detail.match(/\[(.*?)\]/);
|
|
159
|
-
return m && m[1] ? m[1].split(',').map((i) => i.trim()) : [];
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Execute a query from the search panel.
|
|
163
|
-
*/
|
|
164
|
-
query() {
|
|
165
|
-
this.fetchAuditEntries();
|
|
166
|
-
}
|
|
167
|
-
goToPage(page) {
|
|
168
|
-
if (this.auditsRes) {
|
|
169
|
-
this.busy = true;
|
|
170
|
-
this.auditService
|
|
171
|
-
.getPage(this.auditsRes, page)
|
|
172
|
-
.pipe(finalize(() => (this.busy = false)))
|
|
173
|
-
.subscribe({
|
|
174
|
-
next: (res) => {
|
|
175
|
-
this.auditsRes = res;
|
|
176
|
-
this.resolvedItems.set(this.mapResult(res));
|
|
177
|
-
},
|
|
178
|
-
error: () => {
|
|
179
|
-
this.onError();
|
|
180
|
-
}
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
onError() {
|
|
185
|
-
this.auditsRes = undefined;
|
|
186
|
-
this.error = true;
|
|
187
|
-
}
|
|
188
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectAuditComponent, deps: [{ token: i1.AuditService }, { token: i1.BackendService }, { token: i1.AppCacheService }, { token: i1.EventService }, { token: i1.SystemService }, { token: i2.UntypedFormBuilder }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
189
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ObjectAuditComponent, isStandalone: true, selector: "yuv-object-audit", inputs: { dmsObject: { classPropertyName: "dmsObject", publicName: "dmsObject", isSignal: true, isRequired: false, transformFunction: null }, skipActions: { classPropertyName: "skipActions", publicName: "skipActions", isSignal: true, isRequired: false, transformFunction: null }, allActions: { classPropertyName: "allActions", publicName: "allActions", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "versionsLink", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"yuv-audit\" [ngClass]=\"{ singleEntry: auditsRes?.items?.length === 1, onPage: auditsRes && auditsRes.page > 1 }\" [yuvBusyOverlay]=\"busy\">\n @if (error) {\n <div class=\"error\">\n <div translate>yuv.audit.fetch.error</div>\n </div>\n }\n\n @if (auditsRes) {\n <!-- list of audits -->\n @let resItems = resolvedItems();\n @if (resItems.length) {\n <div class=\"timeline\">\n @for (item of resItems; track $index) {\n <div class=\"audit\">\n <div class=\"date\">{{ item.creationDate | localeDate }}</div>\n <div class=\"node\">\n <div class=\"label\">\n <span class=\"title\">{{ item.label }}</span> \n </div>\n <div class=\"more meta\">{{ item.more }}</div>\n <div class=\"creator meta\">{{ item.createdBy.title }}</div>\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"empty\" translate>yuv.audit.result.empty</div>\n }\n\n <!-- controls -->\n @if (auditsRes.hasMoreItems || auditsRes.page > 1) {\n <div class=\"footer\" yuvOfflineDisabled>\n <div class=\"paging\">\n <button [attr.aria-label]=\"'yuv.audit.label.paging.prev' | translate\" [disabled]=\"auditsRes.page === 1\" (click)=\"goToPage(auditsRes.page - 1)\">\n <yvc-icon class=\"prev\" [svg]=\"icons.arrowNext\"></yvc-icon>\n </button>\n <div class=\"page\">\n {{ auditsRes.page }}\n </div>\n <button [attr.aria-label]=\"'yuv.audit.label.paging.next' | translate\" [disabled]=\"!auditsRes.hasMoreItems\" (click)=\"goToPage(auditsRes.page + 1)\">\n <yvc-icon class=\"next\" [svg]=\"icons.arrowNext\"></yvc-icon>\n </button>\n </div>\n </div>\n }\n }\n</div>\n", styles: [":host .yuv-audit{position:relative;height:100%;display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:\"items\" \"footer\";background-color:var(--panel-background-grey);container-type:inline-size;container-name:cmp}:host .yuv-audit .error{grid-area:items;display:flex;flex-flow:column;align-items:center;justify-content:center}:host .yuv-audit .error>div{background-color:var(--color-error);color:#fff;margin:var(--app-pane-padding);padding:var(--app-pane-padding);border-radius:calc(var(--app-pane-padding) / 2)}:host .yuv-audit .search{position:absolute;left:0;top:0;bottom:0;max-width:90%;background-color:var(--panel-background);border-right:1px solid var(--panel-divider-color);animation:yuvFadeInLeft var(--app-default-transition-duration);padding:var(--app-pane-padding);display:flex;z-index:3;flex-flow:column}:host .yuv-audit .search h3{color:var(--text-color-caption);margin:0 0 var(--app-pane-padding) 0;font-size:var(--font-title);font-weight:var(--font-weight-light)}:host .yuv-audit .search button.group{color:var(--text-color-caption);margin:0 0 var(--app-pane-padding) 0;font-size:var(--font-subhead);font-weight:var(--font-weight-normal);padding:0;cursor:pointer}:host .yuv-audit .search button.group:focus{color:var(--color-accent);outline:0;background-color:transparent;border-color:transparent}:host .yuv-audit .search .controls{flex:1;overflow-y:auto}:host .yuv-audit .search .controls .form-control{margin-top:var(--app-pane-padding)}:host .yuv-audit .search .buttons{display:flex;justify-content:flex-end}:host .yuv-audit .btn-search{position:absolute;top:var(--app-pane-padding);left:var(--app-pane-padding);background-color:var(--panel-background);padding:calc(var(--app-pane-padding) / 2);border:1px solid var(--panel-divider-color);z-index:1;box-shadow:0 0 10px 10px var(--panel-background-grey)}:host .yuv-audit .btn-search.badge{color:var(--color-accent)}:host .yuv-audit .btn-search yvc-icon{display:block}:host .yuv-audit .audits{grid-area:items}:host .yuv-audit .empty{grid-area:items;display:flex;flex-flow:column;align-items:center;justify-content:center;color:var(--text-color-caption)}:host .yuv-audit .footer{grid-area:footer;background-color:var(--panel-background);border-top:1px solid var(--panel-divider-color);display:flex}:host .yuv-audit .footer .paging{flex:1;display:flex;align-items:center;justify-content:flex-end;color:var(--text-color-caption)}:host .yuv-audit .footer .paging .page{padding:0 calc(var(--app-pane-padding) / 2)}:host .yuv-audit .footer .paging .prev{transform:rotate(180deg)}:host .yuv-audit .footer button{padding:0}:host .timeline{--track-color: var(--panel-divider-color);--track-size: calc(var(--app-pane-padding) * 3);overflow-y:auto;padding:var(--app-pane-padding) var(--app-pane-padding) calc(var(--app-pane-padding) * 2) var(--app-pane-padding)}@container (max-width: 450px){:host .timeline .audit{grid-template-columns:var(--track-size) auto;grid-template-rows:var(--track-size) auto;grid-template-areas:\"line date\" \"node node\"}:host .timeline .audit .date{justify-self:start}:host .timeline .audit .date,:host .timeline .audit:after{translate:0 .5em}:host .timeline .audit .node{margin:0;width:100%}:host .timeline .audit:last-child:before{height:100%}}:host .timeline :where(.audit){display:grid;grid-template-columns:1fr var(--track-size) 1fr;grid-template-areas:\"date line node\"}:host .timeline :where(.audit) .date{grid-area:date;justify-self:end;align-self:center}:host .timeline :where(.audit) .node{grid-area:node;justify-self:start;background-color:var(--panel-background);border:1px solid var(--panel-divider-color);border-radius:.25em;margin:calc(var(--app-pane-padding) / 2) 0;padding:var(--app-pane-padding);box-sizing:border-box;display:grid;gap:calc(var(--app-pane-padding) / 8)}:host .timeline :where(.audit) .node .label{display:flex;align-items:end}:host .timeline :where(.audit) .node .label .title{flex:1;word-break:break-word;font-weight:700;color:var(--text-color-body)}:host .timeline :where(.audit) .node .label .version{line-height:1em;border-radius:2px;background-color:rgba(var(--color-accent-rgb),.15);color:var(--color-accent);font-size:var(--font-hint);font-family:monospace;align-self:center;margin-left:var(--app-pane-padding);padding:4px 6px;display:block}:host .timeline :where(.audit) .node .meta{color:var(--text-color-caption)}:host .timeline :where(.audit):before{grid-area:line;content:\"\";width:calc(50% - 1px);height:100%;border-inline-end:1px solid var(--track-color)}:host .timeline :where(.audit):after{grid-area:line;content:\"\";width:11px;height:11px;border-radius:50%;border:2px solid var(--track-color);background-color:var(--panel-background-grey);box-sizing:border-box;align-self:center;justify-self:center}:host .timeline :where(.audit):first-child:before{height:50%;align-self:end}:host .timeline :where(.audit):last-child:before{height:50%;align-self:start}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: BusyOverlayDirective, selector: "[yuvBusyOverlay]", inputs: ["yuvBusyOverlay"] }, { kind: "pipe", type: LocaleDatePipe, name: "localeDate" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i4.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }] }); }
|
|
190
|
-
}
|
|
191
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectAuditComponent, decorators: [{
|
|
192
|
-
type: Component,
|
|
193
|
-
args: [{ selector: 'yuv-object-audit', standalone: true, imports: [CommonModule, RouterLink, ReactiveFormsModule, BusyOverlayDirective, LocaleDatePipe, TranslateModule, YvcIconModule], template: "<div class=\"yuv-audit\" [ngClass]=\"{ singleEntry: auditsRes?.items?.length === 1, onPage: auditsRes && auditsRes.page > 1 }\" [yuvBusyOverlay]=\"busy\">\n @if (error) {\n <div class=\"error\">\n <div translate>yuv.audit.fetch.error</div>\n </div>\n }\n\n @if (auditsRes) {\n <!-- list of audits -->\n @let resItems = resolvedItems();\n @if (resItems.length) {\n <div class=\"timeline\">\n @for (item of resItems; track $index) {\n <div class=\"audit\">\n <div class=\"date\">{{ item.creationDate | localeDate }}</div>\n <div class=\"node\">\n <div class=\"label\">\n <span class=\"title\">{{ item.label }}</span> \n </div>\n <div class=\"more meta\">{{ item.more }}</div>\n <div class=\"creator meta\">{{ item.createdBy.title }}</div>\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"empty\" translate>yuv.audit.result.empty</div>\n }\n\n <!-- controls -->\n @if (auditsRes.hasMoreItems || auditsRes.page > 1) {\n <div class=\"footer\" yuvOfflineDisabled>\n <div class=\"paging\">\n <button [attr.aria-label]=\"'yuv.audit.label.paging.prev' | translate\" [disabled]=\"auditsRes.page === 1\" (click)=\"goToPage(auditsRes.page - 1)\">\n <yvc-icon class=\"prev\" [svg]=\"icons.arrowNext\"></yvc-icon>\n </button>\n <div class=\"page\">\n {{ auditsRes.page }}\n </div>\n <button [attr.aria-label]=\"'yuv.audit.label.paging.next' | translate\" [disabled]=\"!auditsRes.hasMoreItems\" (click)=\"goToPage(auditsRes.page + 1)\">\n <yvc-icon class=\"next\" [svg]=\"icons.arrowNext\"></yvc-icon>\n </button>\n </div>\n </div>\n }\n }\n</div>\n", styles: [":host .yuv-audit{position:relative;height:100%;display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:\"items\" \"footer\";background-color:var(--panel-background-grey);container-type:inline-size;container-name:cmp}:host .yuv-audit .error{grid-area:items;display:flex;flex-flow:column;align-items:center;justify-content:center}:host .yuv-audit .error>div{background-color:var(--color-error);color:#fff;margin:var(--app-pane-padding);padding:var(--app-pane-padding);border-radius:calc(var(--app-pane-padding) / 2)}:host .yuv-audit .search{position:absolute;left:0;top:0;bottom:0;max-width:90%;background-color:var(--panel-background);border-right:1px solid var(--panel-divider-color);animation:yuvFadeInLeft var(--app-default-transition-duration);padding:var(--app-pane-padding);display:flex;z-index:3;flex-flow:column}:host .yuv-audit .search h3{color:var(--text-color-caption);margin:0 0 var(--app-pane-padding) 0;font-size:var(--font-title);font-weight:var(--font-weight-light)}:host .yuv-audit .search button.group{color:var(--text-color-caption);margin:0 0 var(--app-pane-padding) 0;font-size:var(--font-subhead);font-weight:var(--font-weight-normal);padding:0;cursor:pointer}:host .yuv-audit .search button.group:focus{color:var(--color-accent);outline:0;background-color:transparent;border-color:transparent}:host .yuv-audit .search .controls{flex:1;overflow-y:auto}:host .yuv-audit .search .controls .form-control{margin-top:var(--app-pane-padding)}:host .yuv-audit .search .buttons{display:flex;justify-content:flex-end}:host .yuv-audit .btn-search{position:absolute;top:var(--app-pane-padding);left:var(--app-pane-padding);background-color:var(--panel-background);padding:calc(var(--app-pane-padding) / 2);border:1px solid var(--panel-divider-color);z-index:1;box-shadow:0 0 10px 10px var(--panel-background-grey)}:host .yuv-audit .btn-search.badge{color:var(--color-accent)}:host .yuv-audit .btn-search yvc-icon{display:block}:host .yuv-audit .audits{grid-area:items}:host .yuv-audit .empty{grid-area:items;display:flex;flex-flow:column;align-items:center;justify-content:center;color:var(--text-color-caption)}:host .yuv-audit .footer{grid-area:footer;background-color:var(--panel-background);border-top:1px solid var(--panel-divider-color);display:flex}:host .yuv-audit .footer .paging{flex:1;display:flex;align-items:center;justify-content:flex-end;color:var(--text-color-caption)}:host .yuv-audit .footer .paging .page{padding:0 calc(var(--app-pane-padding) / 2)}:host .yuv-audit .footer .paging .prev{transform:rotate(180deg)}:host .yuv-audit .footer button{padding:0}:host .timeline{--track-color: var(--panel-divider-color);--track-size: calc(var(--app-pane-padding) * 3);overflow-y:auto;padding:var(--app-pane-padding) var(--app-pane-padding) calc(var(--app-pane-padding) * 2) var(--app-pane-padding)}@container (max-width: 450px){:host .timeline .audit{grid-template-columns:var(--track-size) auto;grid-template-rows:var(--track-size) auto;grid-template-areas:\"line date\" \"node node\"}:host .timeline .audit .date{justify-self:start}:host .timeline .audit .date,:host .timeline .audit:after{translate:0 .5em}:host .timeline .audit .node{margin:0;width:100%}:host .timeline .audit:last-child:before{height:100%}}:host .timeline :where(.audit){display:grid;grid-template-columns:1fr var(--track-size) 1fr;grid-template-areas:\"date line node\"}:host .timeline :where(.audit) .date{grid-area:date;justify-self:end;align-self:center}:host .timeline :where(.audit) .node{grid-area:node;justify-self:start;background-color:var(--panel-background);border:1px solid var(--panel-divider-color);border-radius:.25em;margin:calc(var(--app-pane-padding) / 2) 0;padding:var(--app-pane-padding);box-sizing:border-box;display:grid;gap:calc(var(--app-pane-padding) / 8)}:host .timeline :where(.audit) .node .label{display:flex;align-items:end}:host .timeline :where(.audit) .node .label .title{flex:1;word-break:break-word;font-weight:700;color:var(--text-color-body)}:host .timeline :where(.audit) .node .label .version{line-height:1em;border-radius:2px;background-color:rgba(var(--color-accent-rgb),.15);color:var(--color-accent);font-size:var(--font-hint);font-family:monospace;align-self:center;margin-left:var(--app-pane-padding);padding:4px 6px;display:block}:host .timeline :where(.audit) .node .meta{color:var(--text-color-caption)}:host .timeline :where(.audit):before{grid-area:line;content:\"\";width:calc(50% - 1px);height:100%;border-inline-end:1px solid var(--track-color)}:host .timeline :where(.audit):after{grid-area:line;content:\"\";width:11px;height:11px;border-radius:50%;border:2px solid var(--track-color);background-color:var(--panel-background-grey);box-sizing:border-box;align-self:center;justify-self:center}:host .timeline :where(.audit):first-child:before{height:50%;align-self:end}:host .timeline :where(.audit):last-child:before{height:50%;align-self:start}\n"] }]
|
|
194
|
-
}], ctorParameters: () => [{ type: i1.AuditService }, { type: i1.BackendService }, { type: i1.AppCacheService }, { type: i1.EventService }, { type: i1.SystemService }, { type: i2.UntypedFormBuilder }, { type: i1.TranslateService }] });
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWF1ZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LWRldGFpbHMvc3JjL2xpYi9vYmplY3QtYXVkaXQvb2JqZWN0LWF1ZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LWRldGFpbHMvc3JjL2xpYi9vYmplY3QtYXVkaXQvb2JqZWN0LWF1ZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUNMLGVBQWUsRUFHZixZQUFZLEVBQ1osY0FBYyxFQUVkLFlBQVksRUFDWixjQUFjLEVBQ2QsYUFBYSxFQUNiLGVBQWUsRUFDZixnQkFBZ0IsRUFFaEIsWUFBWSxFQUNiLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFTaEMsTUFBTSxPQUFPLG9CQUFvQjtJQXFCL0IsZ0JBQWdCLENBYWI7SUFhSCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQVVELFlBQ1UsWUFBMEIsRUFDMUIsT0FBdUIsRUFDdkIsUUFBeUIsRUFDekIsWUFBMEIsRUFDMUIsTUFBcUIsRUFDckIsRUFBc0IsRUFDdEIsU0FBMkI7SUFDbkMsNkNBQTZDO0lBQzdDLDRDQUE0Qzs7UUFScEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWpFN0IscUJBQWdCLEdBQUcsbUJBQW1CLENBQUM7UUFLL0MsVUFBSyxHQUFHO1lBQ04sTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNO1lBQ3hCLFNBQVMsRUFBRSxTQUFTLENBQUMsU0FBUztTQUMvQixDQUFDO1FBR0Ysa0JBQWEsR0FBRyxNQUFNLENBQXVCLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDZCxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2Isa0JBQWEsR0FBMkMsRUFBRSxDQUFDO1FBQzNELGdCQUFXLEdBQVEsRUFBRSxDQUFDO1FBRXRCLGNBQVMsR0FBRyxLQUFLLENBQXdCLFNBQVMsQ0FBQyxDQUFDO1FBRXBELHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDN0IsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDUCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1lBQzdCLENBQUM7aUJBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3RELElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDO2dCQUNwQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUg7OztXQUdHO1FBQ0gsZ0JBQVcsR0FBRyxLQUFLLENBQVcsRUFBRSxDQUFDLENBQUM7UUFFbEM7O1dBRUc7UUFDSCxlQUFVLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBTTFCLFNBQUksR0FBRyxLQUFLLENBQXFCLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBRXZFLGlCQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMzQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFekIsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztRQWFELGtHQUFrRztRQUNsRyx1SEFBdUg7UUFDdkgsbUVBQW1FO1FBQ25FLElBQUksQ0FBQyxXQUFXLEdBQUc7WUFDakIsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUFpQyxDQUFDO1lBQy9ELElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyw2Q0FBNkMsQ0FBQztZQUMzRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsNEJBQTRCLENBQUM7WUFFMUQsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDO1lBQ3RELElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFFLEtBQUs7WUFDckUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDO1lBQzdELElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLEtBQUs7WUFDakUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGdDQUFnQyxDQUFDLEVBQUUsS0FBSztZQUVyRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQWlDLENBQUM7WUFDL0QsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO1lBQzlELElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyw2Q0FBNkMsQ0FBQztZQUMzRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMscUNBQXFDLENBQUM7WUFDbkUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDRCQUE0QixDQUFDO1lBQzFELElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQztZQUM5RCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsNkJBQTZCLENBQUM7WUFFM0QsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDZCQUE2QixDQUFDO1lBQzNELElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQztZQUM1RCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsb0NBQW9DLENBQUM7WUFDbEUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLG1DQUFtQyxDQUFDO1lBQ2pFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyx5Q0FBeUMsQ0FBQztZQUV2RSxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsNEJBQTRCLENBQUM7U0FDN0QsQ0FBQztRQUVGLElBQUksQ0FBQyxZQUFZO2FBQ2QsRUFBRSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQzthQUNuQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUMxQixTQUFTLENBQUMsQ0FBQyxDQUFXLEVBQUUsRUFBRTtZQUN6QixNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsSUFBaUIsQ0FBQztZQUN0QyxxRUFBcUU7WUFDckUsSUFBSSxTQUFTLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTztRQUNuRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUVqQixJQUFJLENBQUMsWUFBWTthQUNkLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO2FBQ3BFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDekMsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsR0FBcUIsRUFBRSxFQUFFO2dCQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztnQkFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzlDLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFO2dCQUNWLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFNBQVMsQ0FBQyxHQUFxQjtRQUNyQyxPQUFPLENBQ0wsR0FBRyxDQUFDLEtBQUs7WUFDUCxpSUFBaUk7WUFDakksOEhBQThIO2FBQzdILE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2FBQ3pELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1QsTUFBTSxDQUFDLEdBQXVCLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2hGLHFCQUFxQjtZQUNyQixJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDWCxDQUFDLENBQUMsSUFBSSxHQUFHO1lBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1dBQ3hHLENBQUM7Z0JBQ0EsQ0FBQztZQUNILENBQUM7WUFDRCxnQkFBZ0I7aUJBQ1gsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUMxQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMscUNBQXFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDMUcsQ0FBQztZQUNELGdCQUFnQjtpQkFDWCxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQzVCLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDN0YsQ0FBQztZQUNELE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNKLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxTQUFxQjtRQUMvQyxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5QyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQy9ELENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDSCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVk7UUFDbkIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakIsSUFBSSxDQUFDLFlBQVk7aUJBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDO2lCQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO2lCQUN6QyxTQUFTLENBQUM7Z0JBQ1QsSUFBSSxFQUFFLENBQUMsR0FBcUIsRUFBRSxFQUFFO29CQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztvQkFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUM5QyxDQUFDO2dCQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7b0JBQ1YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNqQixDQUFDO2FBQ0YsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNILENBQUM7SUFFTyxPQUFPO1FBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQzsrR0FwTVUsb0JBQW9CO21HQUFwQixvQkFBb0IsMG1CQ2hDakMsaTBEQStDQSx3M0pEbkJZLFlBQVksNEhBQWMsbUJBQW1CLCtCQUFFLG9CQUFvQixvRkFBRSxjQUFjLGtEQUFFLGVBQWUsa09BQUUsYUFBYTs7NEZBSWxILG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQXBwQ2FjaGVTZXJ2aWNlLFxuICBBdWRpdEVudHJ5LFxuICBBdWRpdFF1ZXJ5UmVzdWx0LFxuICBBdWRpdFNlcnZpY2UsXG4gIEJhY2tlbmRTZXJ2aWNlLFxuICBEbXNPYmplY3QsXG4gIEV2ZW50U2VydmljZSxcbiAgTG9jYWxlRGF0ZVBpcGUsXG4gIFN5c3RlbVNlcnZpY2UsXG4gIFRyYW5zbGF0ZU1vZHVsZSxcbiAgVHJhbnNsYXRlU2VydmljZSxcbiAgWXV2RXZlbnQsXG4gIFl1dkV2ZW50VHlwZVxufSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IEJ1c3lPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2NvbW1vbic7XG5pbXBvcnQgeyBZVVZfSUNPTlMgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvaWNvbnMnO1xuaW1wb3J0IHsgWXZjSWNvbk1vZHVsZSB9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3l1di1vYmplY3QtYXVkaXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJMaW5rLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBCdXN5T3ZlcmxheURpcmVjdGl2ZSwgTG9jYWxlRGF0ZVBpcGUsIFRyYW5zbGF0ZU1vZHVsZSwgWXZjSWNvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtYXVkaXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vb2JqZWN0LWF1ZGl0LmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RBdWRpdENvbXBvbmVudCB7XG4gIHByaXZhdGUgRklMVEVSX0NBQ0hFX0tFWSA9ICd5dXYuYXVkaXQuZmlsdGVycyc7XG5cbiAgcHJpdmF0ZSBfb2JqZWN0SUQ/OiBzdHJpbmc7XG4gIHByaXZhdGUgX29iamVjdFR5cGVJRD86IHN0cmluZztcblxuICBpY29ucyA9IHtcbiAgICBmaWx0ZXI6IFlVVl9JQ09OUy5maWx0ZXIsXG4gICAgYXJyb3dOZXh0OiBZVVZfSUNPTlMuYXJyb3dOZXh0XG4gIH07XG5cbiAgYXVkaXRzUmVzPzogQXVkaXRRdWVyeVJlc3VsdDtcbiAgcmVzb2x2ZWRJdGVtcyA9IHNpZ25hbDxSZXNsb3ZlZEF1ZGl0RW50cnlbXT4oW10pO1xuICBzZWFyY2hQYW5lbFNob3cgPSBmYWxzZTtcbiAgZXJyb3IgPSBmYWxzZTtcbiAgYnVzeSA9IGZhbHNlO1xuICBzZWFyY2hBY3Rpb25zOiB7IGxhYmVsOiBzdHJpbmc7IGFjdGlvbnM6IHN0cmluZ1tdIH1bXSA9IFtdO1xuICBhdWRpdExhYmVsczogYW55ID0ge307XG5cbiAgZG1zT2JqZWN0ID0gaW5wdXQ8RG1zT2JqZWN0IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gICNkbXNPYmplY3RFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG8gPSB0aGlzLmRtc09iamVjdCgpO1xuICAgIGlmICghbykge1xuICAgICAgdGhpcy5fb2JqZWN0SUQgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLl9vYmplY3RUeXBlSUQgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmF1ZGl0c1JlcyA9IHVuZGVmaW5lZDtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLl9vYmplY3RJRCB8fCB0aGlzLl9vYmplY3RJRCAhPT0gby5pZCkge1xuICAgICAgdGhpcy5fb2JqZWN0SUQgPSBvLmlkO1xuICAgICAgdGhpcy5fb2JqZWN0VHlwZUlEID0gby5vYmplY3RUeXBlSWQ7XG4gICAgICB0aGlzLnF1ZXJ5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucXVlcnkoKTtcbiAgICB9XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgYXVkaXRzIHRoYXQgc2hvdWxkIG5vdCBiZSBzaG93bi4gVXNlIHRoZSBhdWRpdCBjb2RlcyAobGlrZSAxMDAsIDMwMSwgZXRjLikuXG4gICAqIFRoaXMgd2lsbCBhbHNvIGRpc2FibGUgdGhlIGNvcnJlc3BvbmRpbmcgZmlsdGVycy5cbiAgICovXG4gIHNraXBBY3Rpb25zID0gaW5wdXQ8bnVtYmVyW10+KFtdKTtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gaWdub3JlIGFkbWluIGFuZCB1c2VyIHNlcGFyYXRpb24gb2YgYXVkaXQgZW50cmllc1xuICAgKi9cbiAgYWxsQWN0aW9ucyA9IGlucHV0KGZhbHNlKTtcblxuICBnZXQgb2JqZWN0SUQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX29iamVjdElEO1xuICB9XG5cbiAgbGluayA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkLCB7IGFsaWFzOiAndmVyc2lvbnNMaW5rJyB9KTtcblxuICB2ZXJzaW9uc0xpbmsgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbGluayA9IHRoaXMubGluaygpO1xuXG4gICAgcmV0dXJuIGxpbmsgPyBgJHtsaW5rfWAgOiB1bmRlZmluZWQ7XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXVkaXRTZXJ2aWNlOiBBdWRpdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kU2VydmljZSxcbiAgICBwcml2YXRlIGFwcENhY2hlOiBBcHBDYWNoZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIHN5c3RlbTogU3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgICAvLyBwcml2YXRlIGljb25SZWdpc3RyeTogSWNvblJlZ2lzdHJ5U2VydmljZSxcbiAgICAvLyBASW5qZWN0KFJPVVRFUykgcHJpdmF0ZSByb3V0ZXM6IFl1dlJvdXRlc1xuICApIHtcbiAgICAvLyB0aGlzLnZlcnNpb25TdGF0ZVBhdGggPSB0aGlzLnJvdXRlcyAmJiB0aGlzLnJvdXRlcy52ZXJzaW9ucyA/IHRoaXMucm91dGVzLnZlcnNpb25zLnBhdGggOiBudWxsO1xuICAgIC8vIHRoaXMudmVyc2lvblN0YXRlUXVlcnlQYXJhbSA9IHRoaXMucm91dGVzICYmIHRoaXMucm91dGVzLnZlcnNpb25zID8gdGhpcy5yb3V0ZXMudmVyc2lvbnMucXVlcnlQYXJhbXMudmVyc2lvbiA6IG51bGw7XG4gICAgLy8gdGhpcy5pY29uUmVnaXN0cnkucmVnaXN0ZXJJY29ucyhbZmlsdGVyLCBhcnJvd05leHQsIGFycm93TmV4dF0pO1xuICAgIHRoaXMuYXVkaXRMYWJlbHMgPSB7XG4gICAgICBhMTAwOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXVkaXQubGFiZWwuY3JlYXRlLm1ldGFkYXRhJyksXG4gICAgICBhMTAxOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXVkaXQubGFiZWwuY3JlYXRlLm1ldGFkYXRhLndpdGhjb250ZW50JyksXG4gICAgICBhMTEwOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXVkaXQubGFiZWwuY3JlYXRlLnRhZycpLFxuXG4gICAgICBhMjAwOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXVkaXQubGFiZWwuZGVsZXRlJyksXG4gICAgICBhMjAxOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXVkaXQubGFiZWwuZGVsZXRlLmNvbnRlbnQnKSwgLy8gI3ZcbiAgICAgIGEyMDI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hdWRpdC5sYWJlbC5kZWxldGUubWFya2VkJyksXG4gICAgICBhMjEwOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXVkaXQubGFiZWwuZGVsZXRlLnRhZycpLCAvLyAjdlxuICAgICAgYTIyMDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2LmF1ZGl0LmxhYmVsLmRlbGV0ZS52ZXJzaW9uJyksIC8vICN2XG5cbiAgICAgIGEzMDA6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hdWRpdC5sYWJlbC51cGRhdGUubWV0YWRhdGEnKSxcbiAgICAgIGEzMDE6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hdWRpdC5sYWJlbC51cGRhdGUuY29udGVudCcpLFxuICAgICAgYTMwMjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2LmF1ZGl0LmxhYmVsLnVwZGF0ZS5tZXRhZGF0YS53aXRoY29udGVudCcpLFxuICAgICAgYTMwMzogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2LmF1ZGl0LmxhYmVsLnVwZGF0ZS5tb3ZlLmNvbnRlbnQnKSxcbiAgICAgIGEzMTA6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hdWRpdC5sYWJlbC51cGRhdGUudGFnJyksXG4gICAgICBhMzI1OiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXVkaXQubGFiZWwudXBkYXRlLnJlc3RvcmUnKSxcbiAgICAgIGEzNDA6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hdWRpdC5sYWJlbC51cGRhdGUubW92ZScpLFxuXG4gICAgICBhNDAwOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXVkaXQubGFiZWwuZ2V0LmNvbnRlbnQnKSxcbiAgICAgIGE0MDE6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hdWRpdC5sYWJlbC5nZXQubWV0YWRhdGEnKSxcbiAgICAgIGE0MDI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hdWRpdC5sYWJlbC5nZXQucmVuZGl0aW9uLnRleHQnKSxcbiAgICAgIGE0MDM6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hdWRpdC5sYWJlbC5nZXQucmVuZGl0aW9uLnBkZicpLFxuICAgICAgYTQwNDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2LmF1ZGl0LmxhYmVsLmdldC5yZW5kaXRpb24udGh1bWJuYWlsJyksXG5cbiAgICAgIGExMDAwMDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2LmF1ZGl0LmxhYmVsLmdldC5jdXN0b20nKVxuICAgIH07XG5cbiAgICB0aGlzLmV2ZW50U2VydmljZVxuICAgICAgLm9uKFl1dkV2ZW50VHlwZS5ETVNfT0JKRUNUX1VQREFURUQpXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKGU6IFl1dkV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGRtc09iamVjdCA9IGUuZGF0YSBhcyBEbXNPYmplY3Q7XG4gICAgICAgIC8vIHJlbG9hZCBhdWRpdCBlbnRyaWVzIHdoZW4gdXBkYXRlIGJlbG9uZ3MgdG8gdGhlIGN1cnJlbnQgZG1zIG9iamVjdFxuICAgICAgICBpZiAoZG1zT2JqZWN0LmlkID09PSB0aGlzLm9iamVjdElEKSB7XG4gICAgICAgICAgdGhpcy5xdWVyeSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hBdWRpdEVudHJpZXMoKSB7XG4gICAgaWYgKCF0aGlzLl9vYmplY3RJRCB8fCAhdGhpcy5fb2JqZWN0VHlwZUlEKSByZXR1cm47XG4gICAgdGhpcy5lcnJvciA9IGZhbHNlO1xuICAgIHRoaXMuYnVzeSA9IHRydWU7XG5cbiAgICB0aGlzLmF1ZGl0U2VydmljZVxuICAgICAgLmdldEF1ZGl0RW50cmllcyh0aGlzLl9vYmplY3RJRCwgeyBza2lwQWN0aW9uczogdGhpcy5za2lwQWN0aW9ucygpIH0pXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5idXN5ID0gZmFsc2UpKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzOiBBdWRpdFF1ZXJ5UmVzdWx0KSA9PiB7XG4gICAgICAgICAgdGhpcy5hdWRpdHNSZXMgPSByZXM7XG4gICAgICAgICAgdGhpcy5yZXNvbHZlZEl0ZW1zLnNldCh0aGlzLm1hcFJlc3VsdChyZXMpKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLm9uRXJyb3IoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG1hcFJlc3VsdChyZXM6IEF1ZGl0UXVlcnlSZXN1bHQpOiBSZXNsb3ZlZEF1ZGl0RW50cnlbXSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHJlcy5pdGVtc1xuICAgICAgICAvLyBUT0RPOiBSZW1vdmUgdGhpcyBmaWx0ZXIgb25jZSB0aGUgc3lzdGVtOnJlbjp0ZXh0IGF1ZGl0IGxpZmVjeWNsZSBwbGFubmluZyBpcyBjb21wbGV0ZSBhbmQgdGhlIHRhZydzIHB1cnBvc2UgaXMgZnVsbHkgZGVmaW5lZC5cbiAgICAgICAgLy8gaHR0cHM6Ly9oZWxwLm9wdGltYWwtc3lzdGVtcy5jb20veXV1dmlzL01vbWVudHVtL2xhdGVzdC9pbmRleC5odG1sI19jb250ZW50X3JlbmRpdGlvbnNfYXN5bmNocm9ub3VzX2Z1bGxfdGV4dF9pbmRleGluZy5odG1sXG4gICAgICAgIC5maWx0ZXIoKGkpID0+ICFpLmRldGFpbC5pbmNsdWRlcygnW3N5c3RlbTpyZW46dGV4dCwgMV0nKSlcbiAgICAgICAgLm1hcCgoaSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHI6IFJlc2xvdmVkQXVkaXRFbnRyeSA9IHsgLi4uaSwgbGFiZWw6IHRoaXMuYXVkaXRMYWJlbHNbJ2EnICsgaS5hY3Rpb25dIH07XG4gICAgICAgICAgLy8gdGFnIHJlbGF0ZWQgYXVkaXRzXG4gICAgICAgICAgaWYgKFsxMTAsIDIxMCwgMzEwXS5pbmNsdWRlcyhpLmFjdGlvbikpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuZ2V0QXVkaXRFbnRyeVBhcmFtcyhpKTtcbiAgICAgICAgICAgIGlmIChwYXJhbXMpIHtcbiAgICAgICAgICAgICAgci5tb3JlID0gYFxuICAgICAgICAgICR7dGhpcy5zeXN0ZW0uZ2V0TG9jYWxpemVkTGFiZWwocGFyYW1zWzBdKX06ICR7dGhpcy5zeXN0ZW0uZ2V0TG9jYWxpemVkTGFiZWwoYCR7cGFyYW1zWzBdfToke3BhcmFtc1sxXX1gKX1cbiAgICAgICAgICBgO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyByZXN0b3JlIGF1ZGl0XG4gICAgICAgICAgZWxzZSBpZiAoaS5hY3Rpb24gPT09IDMyNSkge1xuICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5nZXRBdWRpdEVudHJ5UGFyYW1zKGkpO1xuICAgICAgICAgICAgci5tb3JlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2LmF1ZGl0LmxhYmVsLnVwZGF0ZS5yZXN0b3JlLm1vcmUnLCB7IHZlcnNpb246IHBhcmFtc1swXSB8fCAnWz9dJyB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gY3VzdG9tIGF1ZGl0c1xuICAgICAgICAgIGVsc2UgaWYgKGkuYWN0aW9uID09PSAxMDAwMCkge1xuICAgICAgICAgICAgci5sYWJlbCA9IHRoaXMuc3lzdGVtLmdldExvY2FsaXplZExhYmVsKGBhdWRpdDpjdXN0b206JHtpLnN1YmFjdGlvbn1gKSB8fCBgJHtpLnN1YmFjdGlvbn1gO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBdWRpdEVudHJ5UGFyYW1zKGF1ZGl0SXRlbTogQXVkaXRFbnRyeSk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBtID0gYXVkaXRJdGVtLmRldGFpbC5tYXRjaCgvXFxbKC4qPylcXF0vKTtcbiAgICByZXR1cm4gbSAmJiBtWzFdID8gbVsxXS5zcGxpdCgnLCcpLm1hcCgoaSkgPT4gaS50cmltKCkpIDogW107XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSBhIHF1ZXJ5IGZyb20gdGhlIHNlYXJjaCBwYW5lbC5cbiAgICovXG4gIHF1ZXJ5KCkge1xuICAgIHRoaXMuZmV0Y2hBdWRpdEVudHJpZXMoKTtcbiAgfVxuXG4gIGdvVG9QYWdlKHBhZ2U6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmF1ZGl0c1Jlcykge1xuICAgICAgdGhpcy5idXN5ID0gdHJ1ZTtcbiAgICAgIHRoaXMuYXVkaXRTZXJ2aWNlXG4gICAgICAgIC5nZXRQYWdlKHRoaXMuYXVkaXRzUmVzLCBwYWdlKVxuICAgICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5idXN5ID0gZmFsc2UpKSlcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHJlczogQXVkaXRRdWVyeVJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hdWRpdHNSZXMgPSByZXM7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVkSXRlbXMuc2V0KHRoaXMubWFwUmVzdWx0KHJlcykpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25FcnJvcigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbkVycm9yKCkge1xuICAgIHRoaXMuYXVkaXRzUmVzID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICB9XG59XG5cbmludGVyZmFjZSBSZXNsb3ZlZEF1ZGl0RW50cnkgZXh0ZW5kcyBBdWRpdEVudHJ5IHtcbiAgbGFiZWw6IHN0cmluZztcbn1cbiIsIjxkaXYgY2xhc3M9XCJ5dXYtYXVkaXRcIiBbbmdDbGFzc109XCJ7IHNpbmdsZUVudHJ5OiBhdWRpdHNSZXM/Lml0ZW1zPy5sZW5ndGggPT09IDEsIG9uUGFnZTogYXVkaXRzUmVzICYmIGF1ZGl0c1Jlcy5wYWdlID4gMSB9XCIgW3l1dkJ1c3lPdmVybGF5XT1cImJ1c3lcIj5cbiAgQGlmIChlcnJvcikge1xuICAgIDxkaXYgY2xhc3M9XCJlcnJvclwiPlxuICAgICAgPGRpdiB0cmFuc2xhdGU+eXV2LmF1ZGl0LmZldGNoLmVycm9yPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cblxuICBAaWYgKGF1ZGl0c1Jlcykge1xuICAgIDwhLS0gbGlzdCBvZiBhdWRpdHMgLS0+XG4gICAgQGxldCByZXNJdGVtcyA9IHJlc29sdmVkSXRlbXMoKTtcbiAgICBAaWYgKHJlc0l0ZW1zLmxlbmd0aCkge1xuICAgICAgPGRpdiBjbGFzcz1cInRpbWVsaW5lXCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgcmVzSXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdWRpdFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVcIj57eyBpdGVtLmNyZWF0aW9uRGF0ZSB8IGxvY2FsZURhdGUgfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RlXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb3JlIG1ldGFcIj57eyBpdGVtLm1vcmUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNyZWF0b3IgbWV0YVwiPnt7IGl0ZW0uY3JlYXRlZEJ5LnRpdGxlIH19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZW1wdHlcIiB0cmFuc2xhdGU+eXV2LmF1ZGl0LnJlc3VsdC5lbXB0eTwvZGl2PlxuICAgIH1cblxuICAgIDwhLS0gY29udHJvbHMgLS0+XG4gICAgQGlmIChhdWRpdHNSZXMuaGFzTW9yZUl0ZW1zIHx8IGF1ZGl0c1Jlcy5wYWdlID4gMSkge1xuICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiIHl1dk9mZmxpbmVEaXNhYmxlZD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBhZ2luZ1wiPlxuICAgICAgICAgIDxidXR0b24gW2F0dHIuYXJpYS1sYWJlbF09XCIneXV2LmF1ZGl0LmxhYmVsLnBhZ2luZy5wcmV2JyB8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCJhdWRpdHNSZXMucGFnZSA9PT0gMVwiIChjbGljayk9XCJnb1RvUGFnZShhdWRpdHNSZXMucGFnZSAtIDEpXCI+XG4gICAgICAgICAgICA8eXZjLWljb24gY2xhc3M9XCJwcmV2XCIgW3N2Z109XCJpY29ucy5hcnJvd05leHRcIj48L3l2Yy1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWdlXCI+XG4gICAgICAgICAgICB7eyBhdWRpdHNSZXMucGFnZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxidXR0b24gW2F0dHIuYXJpYS1sYWJlbF09XCIneXV2LmF1ZGl0LmxhYmVsLnBhZ2luZy5uZXh0JyB8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCIhYXVkaXRzUmVzLmhhc01vcmVJdGVtc1wiIChjbGljayk9XCJnb1RvUGFnZShhdWRpdHNSZXMucGFnZSArIDEpXCI+XG4gICAgICAgICAgICA8eXZjLWljb24gY2xhc3M9XCJuZXh0XCIgW3N2Z109XCJpY29ucy5hcnJvd05leHRcIj48L3l2Yy1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgfVxuPC9kaXY+XG4iXX0=
|