@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,36 +0,0 @@
|
|
|
1
|
-
import { Component, inject, input } from '@angular/core';
|
|
2
|
-
import { FormScriptingApiService } from './form-scripting.service';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* Class to extend by form element extensions.
|
|
6
|
-
*/
|
|
7
|
-
// eslint-disable-next-line @angular-eslint/component-class-suffix
|
|
8
|
-
export class ObjectFormElementExtension {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.#formScriptingApiService = inject(FormScriptingApiService);
|
|
11
|
-
this.input = input.required();
|
|
12
|
-
}
|
|
13
|
-
#formScriptingApiService;
|
|
14
|
-
getApi() {
|
|
15
|
-
return this.#formScriptingApiService.getApi();
|
|
16
|
-
}
|
|
17
|
-
getCurrentValue() {
|
|
18
|
-
return this.getApi().form.getValue(this.input().formControlName);
|
|
19
|
-
}
|
|
20
|
-
setValue(value) {
|
|
21
|
-
// only set the value if the value is different. Otherwise the form
|
|
22
|
-
// will end up in an infinite loop
|
|
23
|
-
if (value !== this.getCurrentValue())
|
|
24
|
-
this.getApi().form.setValue(this.input().formControlName, value);
|
|
25
|
-
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFormElementExtension, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: ObjectFormElementExtension, isStandalone: true, selector: "ng-component", inputs: { input: { classPropertyName: "input", publicName: "input", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: '', isInline: true }); }
|
|
28
|
-
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFormElementExtension, decorators: [{
|
|
30
|
-
type: Component,
|
|
31
|
-
args: [{
|
|
32
|
-
template: '',
|
|
33
|
-
standalone: true
|
|
34
|
-
}]
|
|
35
|
-
}] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tZXh0ZW5zaW9uLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vc3JjL2xpYi9vYmplY3QtZm9ybS1leHRlbnNpb24uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUUvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFZbkU7O0dBRUc7QUFLSCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFnQiwwQkFBMEI7SUFMaEQ7UUFNRSw2QkFBd0IsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUUzRCxVQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBNkMsQ0FBQztLQWVyRTtJQWpCQyx3QkFBd0IsQ0FBbUM7SUFJakQsTUFBTTtRQUNkLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFUyxlQUFlO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYztRQUNyQixtRUFBbUU7UUFDbkUsa0NBQWtDO1FBQ2xDLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pHLENBQUM7K0dBakJtQiwwQkFBMEI7bUdBQTFCLDBCQUEwQiwyTUFKcEMsRUFBRTs7NEZBSVEsMEJBQTBCO2tCQUwvQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO29CQUNaLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybVNjcmlwdGluZ0FQSSB9IGZyb20gJy4vZm9ybS1zY3JpcHRpbmcuYXBpLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGb3JtU2NyaXB0aW5nQXBpU2VydmljZSB9IGZyb20gJy4vZm9ybS1zY3JpcHRpbmcuc2VydmljZSc7XG5cbi8vIEV4dGVuc2lvbiBvZiBhIHBhcnRpY3VsYXIgZm9ybSBlbGVtZW50XG5leHBvcnQgaW50ZXJmYWNlIElPYmplY3RGb3JtRWxlbWVudEV4dGVuc2lvbiB7XG4gIHByb3BlcnR5OiBzdHJpbmc7XG4gIGNtcDogVHlwZTxPYmplY3RGb3JtRWxlbWVudEV4dGVuc2lvbj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9iamVjdEZvcm1FbGVtZW50RXh0ZW5zaW9uQ29tcG9uZW50SW5wdXQge1xuICBmb3JtQ29udHJvbE5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDbGFzcyB0byBleHRlbmQgYnkgZm9ybSBlbGVtZW50IGV4dGVuc2lvbnMuXG4gKi9cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogJycsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1jbGFzcy1zdWZmaXhcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBPYmplY3RGb3JtRWxlbWVudEV4dGVuc2lvbiB7XG4gICNmb3JtU2NyaXB0aW5nQXBpU2VydmljZSA9IGluamVjdChGb3JtU2NyaXB0aW5nQXBpU2VydmljZSk7XG5cbiAgaW5wdXQgPSBpbnB1dC5yZXF1aXJlZDxJT2JqZWN0Rm9ybUVsZW1lbnRFeHRlbnNpb25Db21wb25lbnRJbnB1dD4oKTtcblxuICBwcm90ZWN0ZWQgZ2V0QXBpKCk6IEZvcm1TY3JpcHRpbmdBUEkge1xuICAgIHJldHVybiB0aGlzLiNmb3JtU2NyaXB0aW5nQXBpU2VydmljZS5nZXRBcGkoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDdXJyZW50VmFsdWUoKTogdW5rbm93biB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXBpKCkuZm9ybS5nZXRWYWx1ZSh0aGlzLmlucHV0KCkuZm9ybUNvbnRyb2xOYW1lKTtcbiAgfVxuXG4gIHNldFZhbHVlKHZhbHVlOiB1bmtub3duKSB7XG4gICAgLy8gb25seSBzZXQgdGhlIHZhbHVlIGlmIHRoZSB2YWx1ZSBpcyBkaWZmZXJlbnQuIE90aGVyd2lzZSB0aGUgZm9ybVxuICAgIC8vIHdpbGwgZW5kIHVwIGluIGFuIGluZmluaXRlIGxvb3BcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuZ2V0Q3VycmVudFZhbHVlKCkpIHRoaXMuZ2V0QXBpKCkuZm9ybS5zZXRWYWx1ZSh0aGlzLmlucHV0KCkuZm9ybUNvbnRyb2xOYW1lLCB2YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, effect, input, Input, ViewEncapsulation } from '@angular/core';
|
|
3
|
-
import { ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import { KeysPipe, Situation } from '@yuuvis/client-core';
|
|
5
|
-
import { YvcTabsModule } from '@yuuvis/components/tabs';
|
|
6
|
-
import { ObjectFormElementComponent } from '../object-form-element/object-form-element.component';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/common";
|
|
9
|
-
import * as i2 from "@yuuvis/components/tabs";
|
|
10
|
-
import * as i3 from "@angular/forms";
|
|
11
|
-
export class ObjectFormGroupComponent {
|
|
12
|
-
constructor() {
|
|
13
|
-
this.types = {
|
|
14
|
-
STACK: 'stack',
|
|
15
|
-
GROUP: 'group',
|
|
16
|
-
FIELDSET: 'fieldset'
|
|
17
|
-
};
|
|
18
|
-
this.isCore = false;
|
|
19
|
-
this.isData = false;
|
|
20
|
-
// @ViewChild('tabView') tabView: TabView;
|
|
21
|
-
// form situation, if not set default will be 'EDIT'
|
|
22
|
-
this.situation = Situation.EDIT;
|
|
23
|
-
this.group = input();
|
|
24
|
-
this.#groupEffect = effect(() => {
|
|
25
|
-
const g = this.group();
|
|
26
|
-
if (g) {
|
|
27
|
-
this.isCore = !!g._eoFormGroup && g._eoFormGroup.label === 'core';
|
|
28
|
-
this.isData = !!g._eoFormGroup && g._eoFormGroup.label === 'data';
|
|
29
|
-
this.groupType = this.#getGroupType();
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
this.noGroupLabels = input();
|
|
33
|
-
}
|
|
34
|
-
#groupEffect;
|
|
35
|
-
getHeaderStyleClass(ctrl) {
|
|
36
|
-
return `dirty-${ctrl.dirty} invalid-${ctrl.invalid}`;
|
|
37
|
-
}
|
|
38
|
-
getChildControl(ctrl) {
|
|
39
|
-
return ctrl;
|
|
40
|
-
}
|
|
41
|
-
getObjectFormGroup(control) {
|
|
42
|
-
return control._eoFormGroup;
|
|
43
|
-
}
|
|
44
|
-
getObjectFormControlWrapper(control) {
|
|
45
|
-
return control?._eoFormControlWrapper;
|
|
46
|
-
}
|
|
47
|
-
getElement(control) {
|
|
48
|
-
return control;
|
|
49
|
-
}
|
|
50
|
-
#getGroupType() {
|
|
51
|
-
// may as well be an ObjectFormControlWrapper so check first
|
|
52
|
-
// if we got a real group
|
|
53
|
-
const group = this.group();
|
|
54
|
-
if (group?._eoFormGroup) {
|
|
55
|
-
if (group._eoFormGroup.type === 'o2mGroupStack') {
|
|
56
|
-
// for data section only render as stack (tabs) if we have more than one child
|
|
57
|
-
if (this.isData && Object.keys(group.controls).length === 1) {
|
|
58
|
-
return this.types.GROUP;
|
|
59
|
-
}
|
|
60
|
-
return this.types.STACK;
|
|
61
|
-
}
|
|
62
|
-
if (group._eoFormGroup.type === 'o2mGroup') {
|
|
63
|
-
return group._eoFormGroup.label && !(this.isCore || this.isData) && !this.noGroupLabels && !this.#parentIsStack(group)
|
|
64
|
-
? this.types.FIELDSET
|
|
65
|
-
: this.types.GROUP;
|
|
66
|
-
}
|
|
67
|
-
return this.types.GROUP;
|
|
68
|
-
}
|
|
69
|
-
else
|
|
70
|
-
return undefined;
|
|
71
|
-
}
|
|
72
|
-
#parentIsStack(group) {
|
|
73
|
-
const parentFormElement = group.parent && group.parent['_eoFormGroup'];
|
|
74
|
-
return parentFormElement && parentFormElement.type === 'o2mGroupStack';
|
|
75
|
-
}
|
|
76
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFormGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
77
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ObjectFormGroupComponent, isStandalone: true, selector: "yuv-object-form-group", inputs: { situation: { classPropertyName: "situation", publicName: "situation", isSignal: false, isRequired: false, transformFunction: null }, group: { classPropertyName: "group", publicName: "group", isSignal: true, isRequired: false, transformFunction: null }, noGroupLabels: { classPropertyName: "noGroupLabels", publicName: "noGroupLabels", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@let grp = group();\n@if (grp) {\n <div\n class=\"form-element {{ grp._eoFormGroup ? grp._eoFormGroup.type : 'o2mControlWrap' }} align-{{\n grp._eoFormGroup && grp._eoFormGroup.layout ? grp._eoFormGroup.layout.align : ''\n }}\"\n [formGroup]=\"grp\"\n >\n @switch (groupType) {\n <!-- group stacks (tabs) -->\n @case ('stack') {\n <yvc-tabs>\n @for (key of grp.controls | keys; track key) {\n <ng-template\n [yvcTab]=\"{\n id: key,\n headerStyleClass: getHeaderStyleClass(grp.controls[key]),\n label: getObjectFormGroup(grp.controls[key])?.label || ''\n }\"\n >\n <div class=\"stack\" [ngClass]=\"{ stackBase: grp._eoFormGroup?.label === 'data' }\">\n @if (getObjectFormControlWrapper(grp.controls[key])) {\n <yuv-object-form-element [element]=\"getElement(grp.controls[key])\" [situation]=\"situation\"></yuv-object-form-element>\n } @else {\n <yuv-object-form-group [group]=\"getChildControl(grp.controls[key])\" [noGroupLabels]=\"true\" [situation]=\"situation\"></yuv-object-form-group>\n }\n </div>\n </ng-template>\n }\n </yvc-tabs>\n }\n\n <!-- group with legend -->\n @case ('fieldset') {\n <div class=\"om-group fieldset\">\n <div class=\"legend\">\n <span>{{ grp._eoFormGroup?.label }}</span>\n </div>\n\n <div>\n @for (key of grp.controls | keys; track key) {\n @if (getObjectFormControlWrapper(grp.controls[key])) {\n <yuv-object-form-element [element]=\"getElement(grp.controls[key])\" [situation]=\"situation\"></yuv-object-form-element>\n } @else {\n <yuv-object-form-group [group]=\"getChildControl(grp.controls[key])\" [noGroupLabels]=\"true\" [situation]=\"situation\"></yuv-object-form-group>\n }\n }\n </div>\n </div>\n }\n <!-- group -->\n @case ('group') {\n @for (key of grp.controls | keys; track key) {\n @if (getObjectFormControlWrapper(grp.controls[key])) {\n <yuv-object-form-element [element]=\"getElement(grp.controls[key])\" [situation]=\"situation\"></yuv-object-form-element>\n } @else {\n <yuv-object-form-group [group]=\"getChildControl(grp.controls[key])\" [noGroupLabels]=\"true\" [situation]=\"situation\"></yuv-object-form-group>\n }\n }\n }\n }\n </div>\n}\n", styles: [".form-element{box-sizing:border-box}.form-element .fieldset{margin:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);padding:calc(var(--app-pane-padding) / 4);background:#00000006;border:1px solid rgba(0,0,0,.1)}.dark .form-element .fieldset{background:#ffffff06;border-color:#ffffff1a}.contrast .form-element .fieldset{background-color:transparent;border-color:var(--panel-divider-color)}.form-element .fieldset .legend{margin-bottom:calc(var(--app-pane-padding) / 2)}.form-element .fieldset .legend>span{display:inline-block;font-size:var(--font-hint);border-radius:2px;color:#fff;background-color:#00000038;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 4)}.dark .form-element .fieldset .legend>span{background-color:#ffffff38}.contrast .form-element .fieldset .legend>span{background-color:var(--panel-divider-color);color:var(--panel-background)}.form-element.o2mGroupStack{background:#00000005;border:1px solid rgba(0,0,0,.1)}.dark .form-element.o2mGroupStack{background:#ffffff05;border:1px solid rgba(255,255,255,.1)}.contrast .form-element.o2mGroupStack{background-color:transparent;border-color:var(--panel-divider-color)}.form-element.o2mGroupStack .p-tabview.p-component .p-tabview-panels{background:#fff;overflow:initial}.dark .form-element.o2mGroupStack .p-tabview.p-component .p-tabview-panels{background:#ffffff0a}.form-element.o2mGroupStack .p-tabview.p-component>.p-tabview-nav li.p-highlight{border-color:#00000042}.dark .form-element.o2mGroupStack .p-tabview.p-component>.p-tabview-nav li.p-highlight{border-color:#ffffff42}.form-element.o2mGroupStack .p-tabview.p-component>.p-tabview-nav>li:not(.p-highlight):not(.p-disabled):hover{border-color:#00000029}.dark .form-element.o2mGroupStack .p-tabview.p-component>.p-tabview-nav>li:not(.p-highlight):not(.p-disabled):hover{border-color:#ffffff29}.form-element.o2mGroupStack .p-tabview.p-component>.p-tabview-nav-container>.p-tabview-nav-content>.p-tabview-nav li.dirty-true:not(.invalid-true) a .p-tabview-title{background-color:var(--color-dirty-background);color:var(--color-dirty-font)}.form-element.o2mGroupStack .p-tabview.p-component>.p-tabview-nav-container>.p-tabview-nav-content>.p-tabview-nav li.invalid-true a .p-tabview-title{background-color:var(--color-error);color:#fff}.form-element.o2mGroupStack .p-tabview.p-component>.p-tabview-nav-container>.p-tabview-nav-content>.p-tabview-nav li.invalid-true a .p-tabview-title:after{content:\"!\";margin-left:calc(var(--app-pane-padding) / 2)}.form-element.align-column{display:flex;flex-flow:column nowrap;justify-content:flex-start;align-content:stretch;align-items:stretch}.form-element.align-column>*{flex:1 1 auto}.form-element.align-row{display:flex;flex-flow:row wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.form-element.align-row>*{flex:1 0 200px;max-width:100%}.form-element.align-row>.fieldset>:not(.legend){display:flex;flex-flow:row wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.form-element .stackBase{padding:var(--app-pane-padding);background:var(--panel-background-lightgrey)}.form-element .stackBase>yuv-form-group>.form-element>.fieldset{margin:0;padding:0;border:0;background-color:transparent}.form-element .stackBase>yuv-form-group>.form-element>.fieldset>.legend{display:none}\n"], dependencies: [{ kind: "component", type: ObjectFormGroupComponent, selector: "yuv-object-form-group", inputs: ["situation", "group", "noGroupLabels"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: YvcTabsModule }, { kind: "component", type: i2.Tabs, selector: "yvc-tabs", inputs: ["tabs", "layoutSettingsID", "panelOrder", "panelOrderIncludeUnmentioned", "cacheViews", "tabSplitEnabled", "tabRemoveEnabled"], outputs: ["tabSplit", "tabRemove", "tabChange"] }, { kind: "directive", type: i2.YvcTabDirective, selector: "[yvcTab]", inputs: ["yvcTab"] }, { kind: "pipe", type: KeysPipe, name: "keys" }, { kind: "component", type: ObjectFormElementComponent, selector: "yuv-object-form-element", inputs: ["situation", "element"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
78
|
-
}
|
|
79
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFormGroupComponent, decorators: [{
|
|
80
|
-
type: Component,
|
|
81
|
-
args: [{ selector: 'yuv-object-form-group', standalone: true, imports: [CommonModule, YvcTabsModule, KeysPipe, ObjectFormElementComponent, ReactiveFormsModule], encapsulation: ViewEncapsulation.None, template: "@let grp = group();\n@if (grp) {\n <div\n class=\"form-element {{ grp._eoFormGroup ? grp._eoFormGroup.type : 'o2mControlWrap' }} align-{{\n grp._eoFormGroup && grp._eoFormGroup.layout ? grp._eoFormGroup.layout.align : ''\n }}\"\n [formGroup]=\"grp\"\n >\n @switch (groupType) {\n <!-- group stacks (tabs) -->\n @case ('stack') {\n <yvc-tabs>\n @for (key of grp.controls | keys; track key) {\n <ng-template\n [yvcTab]=\"{\n id: key,\n headerStyleClass: getHeaderStyleClass(grp.controls[key]),\n label: getObjectFormGroup(grp.controls[key])?.label || ''\n }\"\n >\n <div class=\"stack\" [ngClass]=\"{ stackBase: grp._eoFormGroup?.label === 'data' }\">\n @if (getObjectFormControlWrapper(grp.controls[key])) {\n <yuv-object-form-element [element]=\"getElement(grp.controls[key])\" [situation]=\"situation\"></yuv-object-form-element>\n } @else {\n <yuv-object-form-group [group]=\"getChildControl(grp.controls[key])\" [noGroupLabels]=\"true\" [situation]=\"situation\"></yuv-object-form-group>\n }\n </div>\n </ng-template>\n }\n </yvc-tabs>\n }\n\n <!-- group with legend -->\n @case ('fieldset') {\n <div class=\"om-group fieldset\">\n <div class=\"legend\">\n <span>{{ grp._eoFormGroup?.label }}</span>\n </div>\n\n <div>\n @for (key of grp.controls | keys; track key) {\n @if (getObjectFormControlWrapper(grp.controls[key])) {\n <yuv-object-form-element [element]=\"getElement(grp.controls[key])\" [situation]=\"situation\"></yuv-object-form-element>\n } @else {\n <yuv-object-form-group [group]=\"getChildControl(grp.controls[key])\" [noGroupLabels]=\"true\" [situation]=\"situation\"></yuv-object-form-group>\n }\n }\n </div>\n </div>\n }\n <!-- group -->\n @case ('group') {\n @for (key of grp.controls | keys; track key) {\n @if (getObjectFormControlWrapper(grp.controls[key])) {\n <yuv-object-form-element [element]=\"getElement(grp.controls[key])\" [situation]=\"situation\"></yuv-object-form-element>\n } @else {\n <yuv-object-form-group [group]=\"getChildControl(grp.controls[key])\" [noGroupLabels]=\"true\" [situation]=\"situation\"></yuv-object-form-group>\n }\n }\n }\n }\n </div>\n}\n", styles: [".form-element{box-sizing:border-box}.form-element .fieldset{margin:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);padding:calc(var(--app-pane-padding) / 4);background:#00000006;border:1px solid rgba(0,0,0,.1)}.dark .form-element .fieldset{background:#ffffff06;border-color:#ffffff1a}.contrast .form-element .fieldset{background-color:transparent;border-color:var(--panel-divider-color)}.form-element .fieldset .legend{margin-bottom:calc(var(--app-pane-padding) / 2)}.form-element .fieldset .legend>span{display:inline-block;font-size:var(--font-hint);border-radius:2px;color:#fff;background-color:#00000038;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 4)}.dark .form-element .fieldset .legend>span{background-color:#ffffff38}.contrast .form-element .fieldset .legend>span{background-color:var(--panel-divider-color);color:var(--panel-background)}.form-element.o2mGroupStack{background:#00000005;border:1px solid rgba(0,0,0,.1)}.dark .form-element.o2mGroupStack{background:#ffffff05;border:1px solid rgba(255,255,255,.1)}.contrast .form-element.o2mGroupStack{background-color:transparent;border-color:var(--panel-divider-color)}.form-element.o2mGroupStack .p-tabview.p-component .p-tabview-panels{background:#fff;overflow:initial}.dark .form-element.o2mGroupStack .p-tabview.p-component .p-tabview-panels{background:#ffffff0a}.form-element.o2mGroupStack .p-tabview.p-component>.p-tabview-nav li.p-highlight{border-color:#00000042}.dark .form-element.o2mGroupStack .p-tabview.p-component>.p-tabview-nav li.p-highlight{border-color:#ffffff42}.form-element.o2mGroupStack .p-tabview.p-component>.p-tabview-nav>li:not(.p-highlight):not(.p-disabled):hover{border-color:#00000029}.dark .form-element.o2mGroupStack .p-tabview.p-component>.p-tabview-nav>li:not(.p-highlight):not(.p-disabled):hover{border-color:#ffffff29}.form-element.o2mGroupStack .p-tabview.p-component>.p-tabview-nav-container>.p-tabview-nav-content>.p-tabview-nav li.dirty-true:not(.invalid-true) a .p-tabview-title{background-color:var(--color-dirty-background);color:var(--color-dirty-font)}.form-element.o2mGroupStack .p-tabview.p-component>.p-tabview-nav-container>.p-tabview-nav-content>.p-tabview-nav li.invalid-true a .p-tabview-title{background-color:var(--color-error);color:#fff}.form-element.o2mGroupStack .p-tabview.p-component>.p-tabview-nav-container>.p-tabview-nav-content>.p-tabview-nav li.invalid-true a .p-tabview-title:after{content:\"!\";margin-left:calc(var(--app-pane-padding) / 2)}.form-element.align-column{display:flex;flex-flow:column nowrap;justify-content:flex-start;align-content:stretch;align-items:stretch}.form-element.align-column>*{flex:1 1 auto}.form-element.align-row{display:flex;flex-flow:row wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.form-element.align-row>*{flex:1 0 200px;max-width:100%}.form-element.align-row>.fieldset>:not(.legend){display:flex;flex-flow:row wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.form-element .stackBase{padding:var(--app-pane-padding);background:var(--panel-background-lightgrey)}.form-element .stackBase>yuv-form-group>.form-element>.fieldset{margin:0;padding:0;border:0;background-color:transparent}.form-element .stackBase>yuv-form-group>.form-element>.fieldset>.legend{display:none}\n"] }]
|
|
82
|
-
}], propDecorators: { situation: [{
|
|
83
|
-
type: Input
|
|
84
|
-
}] } });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9vYmplY3QtZm9ybS9zcmMvbGliL29iamVjdC1mb3JtLWdyb3VwL29iamVjdC1mb3JtLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vc3JjL2xpYi9vYmplY3QtZm9ybS1ncm91cC9vYmplY3QtZm9ybS1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQW1CLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7Ozs7O0FBWWxHLE1BQU0sT0FBTyx3QkFBd0I7SUFSckM7UUFTVSxVQUFLLEdBQUc7WUFDZCxLQUFLLEVBQUUsT0FBTztZQUNkLEtBQUssRUFBRSxPQUFPO1lBQ2QsUUFBUSxFQUFFLFVBQVU7U0FDckIsQ0FBQztRQUdGLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWYsMENBQTBDO1FBRTFDLG9EQUFvRDtRQUMzQyxjQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztRQUVw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LHcwR0Q5Q2Esd0JBQXdCLGtIQUx6QixZQUFZLDRIQUFFLGFBQWEsMldBQUUsUUFBUSw2Q0FBRSwwQkFBMEIscUdBQUUsbUJBQW1COzs0RkFLckYsd0JBQXdCO2tCQVJwQyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSwwQkFBMEIsRUFBRSxtQkFBbUIsQ0FBQyxpQkFHbEYsaUJBQWlCLENBQUMsSUFBSTs4QkFnQjVCLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIGlucHV0LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEtleXNQaXBlLCBTaXR1YXRpb24gfSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFl2Y1RhYnNNb2R1bGUgfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvdGFicyc7XG5pbXBvcnQgeyBPYmplY3RGb3JtRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4uL29iamVjdC1mb3JtLWVsZW1lbnQvb2JqZWN0LWZvcm0tZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyLCBZdXZGb3JtR3JvdXAsIFl1dkZvcm1Hcm91cFdyYXBwZXIgfSBmcm9tICcuLi9vYmplY3QtZm9ybS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT2JqZWN0Rm9ybUdyb3VwIH0gZnJvbSAnLi4vb2JqZWN0LWZvcm0ubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtb2JqZWN0LWZvcm0tZ3JvdXAnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBZdmNUYWJzTW9kdWxlLCBLZXlzUGlwZSwgT2JqZWN0Rm9ybUVsZW1lbnRDb21wb25lbnQsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LWZvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vYmplY3QtZm9ybS1ncm91cC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdEZvcm1Hcm91cENvbXBvbmVudCB7XG4gIHByaXZhdGUgdHlwZXMgPSB7XG4gICAgU1RBQ0s6ICdzdGFjaycsXG4gICAgR1JPVVA6ICdncm91cCcsXG4gICAgRklFTERTRVQ6ICdmaWVsZHNldCdcbiAgfTtcblxuICBncm91cFR5cGU/OiBzdHJpbmc7XG4gIGlzQ29yZSA9IGZhbHNlO1xuICBpc0RhdGEgPSBmYWxzZTtcblxuICAvLyBAVmlld0NoaWxkKCd0YWJWaWV3JykgdGFiVmlldzogVGFiVmlldztcblxuICAvLyBmb3JtIHNpdHVhdGlvbiwgaWYgbm90IHNldCBkZWZhdWx0IHdpbGwgYmUgJ0VESVQnXG4gIEBJbnB1dCgpIHNpdHVhdGlvbiA9IFNpdHVhdGlvbi5FRElUO1xuXG4gIGdyb3VwID0gaW5wdXQ8T2JqZWN0Rm9ybUdyb3VwPigpO1xuICAjZ3JvdXBFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGcgPSB0aGlzLmdyb3VwKCk7XG5cbiAgICBpZiAoZykge1xuICAgICAgdGhpcy5pc0NvcmUgPSAhIWcuX2VvRm9ybUdyb3VwICYmIGcuX2VvRm9ybUdyb3VwLmxhYmVsID09PSAnY29yZSc7XG4gICAgICB0aGlzLmlzRGF0YSA9ICEhZy5fZW9Gb3JtR3JvdXAgJiYgZy5fZW9Gb3JtR3JvdXAubGFiZWwgPT09ICdkYXRhJztcbiAgICAgIHRoaXMuZ3JvdXBUeXBlID0gdGhpcy4jZ2V0R3JvdXBUeXBlKCk7XG4gICAgfVxuICB9KTtcblxuICBub0dyb3VwTGFiZWxzID0gaW5wdXQ8Ym9vbGVhbj4oKTtcblxuICBnZXRIZWFkZXJTdHlsZUNsYXNzKGN0cmw6IEFic3RyYWN0Q29udHJvbCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBkaXJ0eS0ke2N0cmwuZGlydHl9IGludmFsaWQtJHtjdHJsLmludmFsaWR9YDtcbiAgfVxuXG4gIGdldENoaWxkQ29udHJvbChjdHJsOiBBYnN0cmFjdENvbnRyb2wpOiBPYmplY3RGb3JtR3JvdXAge1xuICAgIHJldHVybiBjdHJsIGFzIE9iamVjdEZvcm1Hcm91cDtcbiAgfVxuXG4gIGdldE9iamVjdEZvcm1Hcm91cChjb250cm9sOiBhbnkpOiBZdXZGb3JtR3JvdXAgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAoY29udHJvbCBhcyBPYmplY3RGb3JtR3JvdXApLl9lb0Zvcm1Hcm91cDtcbiAgfVxuXG4gIGdldE9iamVjdEZvcm1Db250cm9sV3JhcHBlcihjb250cm9sOiBhbnkpOiBZdXZGb3JtR3JvdXBXcmFwcGVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gKGNvbnRyb2wgYXMgT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyKT8uX2VvRm9ybUNvbnRyb2xXcmFwcGVyO1xuICB9XG5cbiAgZ2V0RWxlbWVudChjb250cm9sOiBhbnkpOiBPYmplY3RGb3JtQ29udHJvbFdyYXBwZXIge1xuICAgIHJldHVybiBjb250cm9sIGFzIE9iamVjdEZvcm1Db250cm9sV3JhcHBlcjtcbiAgfVxuXG4gICNnZXRHcm91cFR5cGUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAvLyBtYXkgYXMgd2VsbCBiZSBhbiBPYmplY3RGb3JtQ29udHJvbFdyYXBwZXIgc28gY2hlY2sgZmlyc3RcbiAgICAvLyBpZiB3ZSBnb3QgYSByZWFsIGdyb3VwXG4gICAgY29uc3QgZ3JvdXAgPSB0aGlzLmdyb3VwKCkgYXMgT2JqZWN0Rm9ybUdyb3VwO1xuICAgIGlmIChncm91cD8uX2VvRm9ybUdyb3VwKSB7XG4gICAgICBpZiAoZ3JvdXAuX2VvRm9ybUdyb3VwLnR5cGUgPT09ICdvMm1Hcm91cFN0YWNrJykge1xuICAgICAgICAvLyBmb3IgZGF0YSBzZWN0aW9uIG9ubHkgcmVuZGVyIGFzIHN0YWNrICh0YWJzKSBpZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgY2hpbGRcbiAgICAgICAgaWYgKHRoaXMuaXNEYXRhICYmIE9iamVjdC5rZXlzKGdyb3VwLmNvbnRyb2xzKS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy50eXBlcy5HUk9VUDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy50eXBlcy5TVEFDSztcbiAgICAgIH1cbiAgICAgIGlmIChncm91cC5fZW9Gb3JtR3JvdXAudHlwZSA9PT0gJ28ybUdyb3VwJykge1xuICAgICAgICByZXR1cm4gZ3JvdXAuX2VvRm9ybUdyb3VwLmxhYmVsICYmICEodGhpcy5pc0NvcmUgfHwgdGhpcy5pc0RhdGEpICYmICF0aGlzLm5vR3JvdXBMYWJlbHMgJiYgIXRoaXMuI3BhcmVudElzU3RhY2soZ3JvdXApXG4gICAgICAgICAgPyB0aGlzLnR5cGVzLkZJRUxEU0VUXG4gICAgICAgICAgOiB0aGlzLnR5cGVzLkdST1VQO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMudHlwZXMuR1JPVVA7XG4gICAgfSBlbHNlIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAjcGFyZW50SXNTdGFjayhncm91cDogT2JqZWN0Rm9ybUdyb3VwKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcGFyZW50Rm9ybUVsZW1lbnQgPSBncm91cC5wYXJlbnQgJiYgKGdyb3VwLnBhcmVudCBhcyBhbnkpWydfZW9Gb3JtR3JvdXAnXTtcbiAgICByZXR1cm4gcGFyZW50Rm9ybUVsZW1lbnQgJiYgcGFyZW50Rm9ybUVsZW1lbnQudHlwZSA9PT0gJ28ybUdyb3VwU3RhY2snO1xuICB9XG59XG4iLCJAbGV0IGdycCA9IGdyb3VwKCk7XG5AaWYgKGdycCkge1xuICA8ZGl2XG4gICAgY2xhc3M9XCJmb3JtLWVsZW1lbnQge3sgZ3JwLl9lb0Zvcm1Hcm91cCA/IGdycC5fZW9Gb3JtR3JvdXAudHlwZSA6ICdvMm1Db250cm9sV3JhcCcgfX0gYWxpZ24te3tcbiAgICAgIGdycC5fZW9Gb3JtR3JvdXAgJiYgZ3JwLl9lb0Zvcm1Hcm91cC5sYXlvdXQgPyBncnAuX2VvRm9ybUdyb3VwLmxheW91dC5hbGlnbiA6ICcnXG4gICAgfX1cIlxuICAgIFtmb3JtR3JvdXBdPVwiZ3JwXCJcbiAgPlxuICAgIEBzd2l0Y2ggKGdyb3VwVHlwZSkge1xuICAgICAgPCEtLSBncm91cCBzdGFja3MgKHRhYnMpIC0tPlxuICAgICAgQGNhc2UgKCdzdGFjaycpIHtcbiAgICAgICAgPHl2Yy10YWJzPlxuICAgICAgICAgIEBmb3IgKGtleSBvZiBncnAuY29udHJvbHMgfCBrZXlzOyB0cmFjayBrZXkpIHtcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICBbeXZjVGFiXT1cIntcbiAgICAgICAgICAgICAgICBpZDoga2V5LFxuICAgICAgICAgICAgICAgIGhlYWRlclN0eWxlQ2xhc3M6IGdldEhlYWRlclN0eWxlQ2xhc3MoZ3JwLmNvbnRyb2xzW2tleV0pLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBnZXRPYmplY3RGb3JtR3JvdXAoZ3JwLmNvbnRyb2xzW2tleV0pPy5sYWJlbCB8fCAnJ1xuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YWNrXCIgW25nQ2xhc3NdPVwieyBzdGFja0Jhc2U6IGdycC5fZW9Gb3JtR3JvdXA/LmxhYmVsID09PSAnZGF0YScgfVwiPlxuICAgICAgICAgICAgICAgIEBpZiAoZ2V0T2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyKGdycC5jb250cm9sc1trZXldKSkge1xuICAgICAgICAgICAgICAgICAgPHl1di1vYmplY3QtZm9ybS1lbGVtZW50IFtlbGVtZW50XT1cImdldEVsZW1lbnQoZ3JwLmNvbnRyb2xzW2tleV0pXCIgW3NpdHVhdGlvbl09XCJzaXR1YXRpb25cIj48L3l1di1vYmplY3QtZm9ybS1lbGVtZW50PlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgPHl1di1vYmplY3QtZm9ybS1ncm91cCBbZ3JvdXBdPVwiZ2V0Q2hpbGRDb250cm9sKGdycC5jb250cm9sc1trZXldKVwiIFtub0dyb3VwTGFiZWxzXT1cInRydWVcIiBbc2l0dWF0aW9uXT1cInNpdHVhdGlvblwiPjwveXV2LW9iamVjdC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIH1cbiAgICAgICAgPC95dmMtdGFicz5cbiAgICAgIH1cblxuICAgICAgPCEtLSBncm91cCB3aXRoIGxlZ2VuZCAtLT5cbiAgICAgIEBjYXNlICgnZmllbGRzZXQnKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvbS1ncm91cCBmaWVsZHNldFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWdlbmRcIj5cbiAgICAgICAgICAgIDxzcGFuPnt7IGdycC5fZW9Gb3JtR3JvdXA/LmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIEBmb3IgKGtleSBvZiBncnAuY29udHJvbHMgfCBrZXlzOyB0cmFjayBrZXkpIHtcbiAgICAgICAgICAgICAgQGlmIChnZXRPYmplY3RGb3JtQ29udHJvbFdyYXBwZXIoZ3JwLmNvbnRyb2xzW2tleV0pKSB7XG4gICAgICAgICAgICAgICAgPHl1di1vYmplY3QtZm9ybS1lbGVtZW50IFtlbGVtZW50XT1cImdldEVsZW1lbnQoZ3JwLmNvbnRyb2xzW2tleV0pXCIgW3NpdHVhdGlvbl09XCJzaXR1YXRpb25cIj48L3l1di1vYmplY3QtZm9ybS1lbGVtZW50PlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8eXV2LW9iamVjdC1mb3JtLWdyb3VwIFtncm91cF09XCJnZXRDaGlsZENvbnRyb2woZ3JwLmNvbnRyb2xzW2tleV0pXCIgW25vR3JvdXBMYWJlbHNdPVwidHJ1ZVwiIFtzaXR1YXRpb25dPVwic2l0dWF0aW9uXCI+PC95dXYtb2JqZWN0LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICA8IS0tIGdyb3VwIC0tPlxuICAgICAgQGNhc2UgKCdncm91cCcpIHtcbiAgICAgICAgQGZvciAoa2V5IG9mIGdycC5jb250cm9scyB8IGtleXM7IHRyYWNrIGtleSkge1xuICAgICAgICAgIEBpZiAoZ2V0T2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyKGdycC5jb250cm9sc1trZXldKSkge1xuICAgICAgICAgICAgPHl1di1vYmplY3QtZm9ybS1lbGVtZW50IFtlbGVtZW50XT1cImdldEVsZW1lbnQoZ3JwLmNvbnRyb2xzW2tleV0pXCIgW3NpdHVhdGlvbl09XCJzaXR1YXRpb25cIj48L3l1di1vYmplY3QtZm9ybS1lbGVtZW50PlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHl1di1vYmplY3QtZm9ybS1ncm91cCBbZ3JvdXBdPVwiZ2V0Q2hpbGRDb250cm9sKGdycC5jb250cm9sc1trZXldKVwiIFtub0dyb3VwTGFiZWxzXT1cInRydWVcIiBbc2l0dWF0aW9uXT1cInNpdHVhdGlvblwiPjwveXV2LW9iamVjdC1mb3JtLWdyb3VwPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgPC9kaXY+XG59XG4iXX0=
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, input } from '@angular/core';
|
|
3
|
-
import { ObjectFormElementExtension } from '../../object-form-extension.interface';
|
|
4
|
-
import { YvcIconModule } from '@yuuvis/components/icon';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@yuuvis/components/icon";
|
|
7
|
-
export class FormScriptingElementExtensionComponent extends ObjectFormElementExtension {
|
|
8
|
-
constructor() {
|
|
9
|
-
super(...arguments);
|
|
10
|
-
this.ext = input();
|
|
11
|
-
this.defaultIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e8eaed"><path d="M160-120q-33 0-56.5-23.5T80-200v-560q0-33 23.5-56.5T160-840h560q33 0 56.5 23.5T800-760v80h80v80h-80v80h80v80h-80v80h80v80h-80v80q0 33-23.5 56.5T720-120H160Zm0-80h560v-560H160v560Zm80-80h200v-160H240v160Zm240-280h160v-120H480v120Zm-240 80h200v-200H240v200Zm240 200h160v-240H480v240ZM160-760v560-560Z"/></svg>';
|
|
12
|
-
}
|
|
13
|
-
run() {
|
|
14
|
-
this.ext()?.callback();
|
|
15
|
-
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormScriptingElementExtensionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FormScriptingElementExtensionComponent, isStandalone: true, selector: "yuv-form-scripting-element-extension", inputs: { ext: { classPropertyName: "ext", publicName: "ext", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "@let x = ext();\n@if (x) {\n @if (x.icon) {\n <button class=\"secondary\" (click)=\"run()\" [title]=\"x.label\">\n <yvc-icon [svg]=\"x.icon\"></yvc-icon>\n </button>\n } @else if (x.label) {\n <button class=\"secondary\" (click)=\"run()\">{{ x.label }}</button>\n } @else {\n <button class=\"secondary\" (click)=\"run()\">\n <yvc-icon [svg]=\"defaultIcon\"></yvc-icon>\n </button>\n }\n}\n", styles: [":host button{--icon-size: 18px;color:var(--text-color-caption);padding:2px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i1.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }] }); }
|
|
18
|
-
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormScriptingElementExtensionComponent, decorators: [{
|
|
20
|
-
type: Component,
|
|
21
|
-
args: [{ selector: 'yuv-form-scripting-element-extension', standalone: true, imports: [CommonModule, YvcIconModule], template: "@let x = ext();\n@if (x) {\n @if (x.icon) {\n <button class=\"secondary\" (click)=\"run()\" [title]=\"x.label\">\n <yvc-icon [svg]=\"x.icon\"></yvc-icon>\n </button>\n } @else if (x.label) {\n <button class=\"secondary\" (click)=\"run()\">{{ x.label }}</button>\n } @else {\n <button class=\"secondary\" (click)=\"run()\">\n <yvc-icon [svg]=\"defaultIcon\"></yvc-icon>\n </button>\n }\n}\n", styles: [":host button{--icon-size: 18px;color:var(--text-color-caption);padding:2px}\n"] }]
|
|
22
|
-
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY3JpcHRpbmctZWxlbWVudC1leHRlbnNpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9vYmplY3QtZm9ybS9zcmMvbGliL29iamVjdC1mb3JtLXNjcmlwdC9mb3JtLXNjcmlwdGluZy1lbGVtZW50LWV4dGVuc2lvbi9mb3JtLXNjcmlwdGluZy1lbGVtZW50LWV4dGVuc2lvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1mb3JtL3NyYy9saWIvb2JqZWN0LWZvcm0tc2NyaXB0L2Zvcm0tc2NyaXB0aW5nLWVsZW1lbnQtZXh0ZW5zaW9uL2Zvcm0tc2NyaXB0aW5nLWVsZW1lbnQtZXh0ZW5zaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQVN4RCxNQUFNLE9BQU8sc0NBQXVDLFNBQVEsMEJBQTBCO0lBUHRGOztRQVFFLFFBQUcsR0FBRyxLQUFLLEVBQWlDLENBQUM7UUFDN0MsZ0JBQVcsR0FDVCx5YUFBeWEsQ0FBQztLQUs3YTtJQUhDLEdBQUc7UUFDRCxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFDekIsQ0FBQzsrR0FQVSxzQ0FBc0M7bUdBQXRDLHNDQUFzQyxxUENibkQsb2FBY0Esc0lETFksWUFBWSw4QkFBRSxhQUFhOzs0RkFJMUIsc0NBQXNDO2tCQVBsRCxTQUFTOytCQUNFLHNDQUFzQyxjQUNwQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1TY3JpcHRpbmdFbGVtZW50RXh0ZW5zaW9uIH0gZnJvbSAnLi4vLi4vZm9ybS1zY3JpcHRpbmcuYXBpLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPYmplY3RGb3JtRWxlbWVudEV4dGVuc2lvbiB9IGZyb20gJy4uLy4uL29iamVjdC1mb3JtLWV4dGVuc2lvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgWXZjSWNvbk1vZHVsZSB9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9pY29uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneXV2LWZvcm0tc2NyaXB0aW5nLWVsZW1lbnQtZXh0ZW5zaW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgWXZjSWNvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLXNjcmlwdGluZy1lbGVtZW50LWV4dGVuc2lvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9mb3JtLXNjcmlwdGluZy1lbGVtZW50LWV4dGVuc2lvbi5jb21wb25lbnQuc2NzcycgXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1TY3JpcHRpbmdFbGVtZW50RXh0ZW5zaW9uQ29tcG9uZW50IGV4dGVuZHMgT2JqZWN0Rm9ybUVsZW1lbnRFeHRlbnNpb24ge1xuICBleHQgPSBpbnB1dDxGb3JtU2NyaXB0aW5nRWxlbWVudEV4dGVuc2lvbj4oKTtcbiAgZGVmYXVsdEljb24gPVxuICAgICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCIyNHB4XCIgdmlld0JveD1cIjAgLTk2MCA5NjAgOTYwXCIgd2lkdGg9XCIyNHB4XCIgZmlsbD1cIiNlOGVhZWRcIj48cGF0aCBkPVwiTTE2MC0xMjBxLTMzIDAtNTYuNS0yMy41VDgwLTIwMHYtNTYwcTAtMzMgMjMuNS01Ni41VDE2MC04NDBoNTYwcTMzIDAgNTYuNSAyMy41VDgwMC03NjB2ODBoODB2ODBoLTgwdjgwaDgwdjgwaC04MHY4MGg4MHY4MGgtODB2ODBxMCAzMy0yMy41IDU2LjVUNzIwLTEyMEgxNjBabTAtODBoNTYwdi01NjBIMTYwdjU2MFptODAtODBoMjAwdi0xNjBIMjQwdjE2MFptMjQwLTI4MGgxNjB2LTEyMEg0ODB2MTIwWm0tMjQwIDgwaDIwMHYtMjAwSDI0MHYyMDBabTI0MCAyMDBoMTYwdi0yNDBINDgwdjI0MFpNMTYwLTc2MHY1NjAtNTYwWlwiLz48L3N2Zz4nO1xuXG4gIHJ1bigpIHtcbiAgICB0aGlzLmV4dCgpPy5jYWxsYmFjaygpO1xuICB9XG59XG4iLCJAbGV0IHggPSBleHQoKTtcbkBpZiAoeCkge1xuICBAaWYgKHguaWNvbikge1xuICAgIDxidXR0b24gY2xhc3M9XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwicnVuKClcIiBbdGl0bGVdPVwieC5sYWJlbFwiPlxuICAgICAgPHl2Yy1pY29uIFtzdmddPVwieC5pY29uXCI+PC95dmMtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgfSBAZWxzZSBpZiAoeC5sYWJlbCkge1xuICAgIDxidXR0b24gY2xhc3M9XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwicnVuKClcIj57eyB4LmxhYmVsIH19PC9idXR0b24+XG4gIH0gQGVsc2Uge1xuICAgIDxidXR0b24gY2xhc3M9XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwicnVuKClcIj5cbiAgICAgIDx5dmMtaWNvbiBbc3ZnXT1cImRlZmF1bHRJY29uXCI+PC95dmMtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgfVxufVxuIl19
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { HttpHeaders } from '@angular/common/http';
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { BackendService, Logger } from '@yuuvis/client-core';
|
|
4
|
-
import { forkJoin as observableForkJoin } from 'rxjs';
|
|
5
|
-
import { map as _map } from 'rxjs/operators';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@yuuvis/client-core";
|
|
8
|
-
/**
|
|
9
|
-
* @ignore
|
|
10
|
-
*/
|
|
11
|
-
export class ObjectFormScriptService {
|
|
12
|
-
constructor(logger, backend) {
|
|
13
|
-
this.logger = logger;
|
|
14
|
-
this.backend = backend;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Run a form script.
|
|
18
|
-
* @param scope - the current scripting scope
|
|
19
|
-
* @param script - the script to be executed
|
|
20
|
-
* @param [scriptName] - the scripts name
|
|
21
|
-
*/
|
|
22
|
-
runFormScript(scope, script, scriptName) {
|
|
23
|
-
try {
|
|
24
|
-
// Define form script the function
|
|
25
|
-
const formScriptFunction = this.defineFunction('Formscript/' + scriptName, script);
|
|
26
|
-
// run the form script
|
|
27
|
-
const formScriptReturn = formScriptFunction(scope);
|
|
28
|
-
// Check if the form script returns something and may export global scripts
|
|
29
|
-
if (formScriptReturn) {
|
|
30
|
-
this.importGlobalScriptsAndCallInit(scope, formScriptReturn);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
catch (e) {
|
|
34
|
-
if (e instanceof SyntaxError) {
|
|
35
|
-
alert('Syntax error in Form-Script. See console log for details.');
|
|
36
|
-
}
|
|
37
|
-
this.logger.error('Got script error', e);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Define form script function, appending source url as comment.
|
|
42
|
-
* Enables debugging using browser debugging tools (Chrome+Firefox)
|
|
43
|
-
* @see: https://developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/Debug_eval_sources
|
|
44
|
-
*
|
|
45
|
-
* @param name - the name of the script
|
|
46
|
-
* @param script - script to be wrapped in a function
|
|
47
|
-
* @returns the function
|
|
48
|
-
*/
|
|
49
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
50
|
-
defineFunction(name, script) {
|
|
51
|
-
// Appending source url as comment. See https://developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/Debug_eval_sources
|
|
52
|
-
// Enables debugging using browser debugging tools (Chrome+Firefox)
|
|
53
|
-
// The line feed is needed, if the script has a comment in the last line
|
|
54
|
-
return new Function('scope', script + '\n;//# sourceURL=' + name + '.js');
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* If the script contains global script, this function will import and run them
|
|
58
|
-
* before running the actual script.
|
|
59
|
-
*
|
|
60
|
-
* @param scope - the current scripting scope
|
|
61
|
-
* @param formScriptReturn - the return value of the actual form script
|
|
62
|
-
*/
|
|
63
|
-
importGlobalScriptsAndCallInit(scope, formScriptReturn) {
|
|
64
|
-
if (!formScriptReturn.init) {
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
if (formScriptReturn.uses) {
|
|
68
|
-
// collect the global script exports promises
|
|
69
|
-
const exports = [];
|
|
70
|
-
const globals = [];
|
|
71
|
-
// collect Observables for fetching global scripts
|
|
72
|
-
for (const use of formScriptReturn.uses) {
|
|
73
|
-
globals.push(this.resolveGlobalScript(use, scope));
|
|
74
|
-
}
|
|
75
|
-
observableForkJoin(globals).subscribe((globalReturns) => {
|
|
76
|
-
for (const scriptReturn of globalReturns) {
|
|
77
|
-
exports.push(scriptReturn['exports']);
|
|
78
|
-
}
|
|
79
|
-
// Invoke init function on form script return with the
|
|
80
|
-
// collected exports using javascript apply magic
|
|
81
|
-
formScriptReturn.init.apply(this, exports);
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
// invoke init direct (no use of global scripts)
|
|
86
|
-
formScriptReturn.init();
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Fetch global scripts.
|
|
91
|
-
* @param name - the name of the global script
|
|
92
|
-
* @param scope - the current scripting scope
|
|
93
|
-
* @returns
|
|
94
|
-
*/
|
|
95
|
-
resolveGlobalScript(name, scope) {
|
|
96
|
-
const requestOptions = {
|
|
97
|
-
headers: new HttpHeaders({
|
|
98
|
-
Accept: 'text/plain'
|
|
99
|
-
}),
|
|
100
|
-
responseType: 'text'
|
|
101
|
-
};
|
|
102
|
-
return this.backend.get(`/script/${name}/script`, undefined, requestOptions).pipe(_map((res) => {
|
|
103
|
-
// define the global function ...
|
|
104
|
-
const globalScript = this.defineFunction('Global/' + name, res);
|
|
105
|
-
// ... and run it
|
|
106
|
-
return globalScript(scope);
|
|
107
|
-
}));
|
|
108
|
-
}
|
|
109
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFormScriptService, deps: [{ token: i1.Logger }, { token: i1.BackendService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
110
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFormScriptService }); }
|
|
111
|
-
}
|
|
112
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFormScriptService, decorators: [{
|
|
113
|
-
type: Injectable
|
|
114
|
-
}], ctorParameters: () => [{ type: i1.Logger }, { type: i1.BackendService }] });
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tc2NyaXB0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1mb3JtL3NyYy9saWIvb2JqZWN0LWZvcm0tc2NyaXB0L29iamVjdC1mb3JtLXNjcmlwdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFjLFFBQVEsSUFBSSxrQkFBa0IsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFJN0M7O0dBRUc7QUFFSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLFlBQW9CLE1BQWMsRUFBVSxPQUF1QjtRQUEvQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7SUFBSSxDQUFDO0lBRXhFOzs7OztPQUtHO0lBQ0ksYUFBYSxDQUFDLEtBQStCLEVBQUUsTUFBVyxFQUFFLFVBQW1CO1FBQ3BGLElBQUksQ0FBQztZQUNILGtDQUFrQztZQUNsQyxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxHQUFHLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNuRixzQkFBc0I7WUFDdEIsTUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuRCwyRUFBMkU7WUFDM0UsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsOEJBQThCLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFDL0QsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLFlBQVksV0FBVyxFQUFFLENBQUM7Z0JBQzdCLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1lBQ3JFLENBQUM7WUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsd0RBQXdEO0lBQ2hELGNBQWMsQ0FBQyxJQUFZLEVBQUUsTUFBVztRQUM5Qyx5SEFBeUg7UUFDekgsbUVBQW1FO1FBQ25FLHdFQUF3RTtRQUN4RSxPQUFPLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsbUJBQW1CLEdBQUcsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyw4QkFBOEIsQ0FBQyxLQUErQixFQUFFLGdCQUFxQjtRQUMzRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0IsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQzFCLDZDQUE2QztZQUM3QyxNQUFNLE9BQU8sR0FBVSxFQUFFLENBQUM7WUFDMUIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBRW5CLGtEQUFrRDtZQUNsRCxLQUFLLE1BQU0sR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN4QyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNyRCxDQUFDO1lBRUQsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7Z0JBQ3RELEtBQUssTUFBTSxZQUFZLElBQUksYUFBYSxFQUFFLENBQUM7b0JBQ3pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLENBQUM7Z0JBQ0Qsc0RBQXNEO2dCQUN0RCxpREFBaUQ7Z0JBQ2pELGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzdDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixnREFBZ0Q7WUFDaEQsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLG1CQUFtQixDQUFDLElBQVksRUFBRSxLQUErQjtRQUN2RSxNQUFNLGNBQWMsR0FBRztZQUNyQixPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUM7Z0JBQ3ZCLE1BQU0sRUFBRSxZQUFZO2FBQ3JCLENBQUM7WUFDRixZQUFZLEVBQUUsTUFBTTtTQUNyQixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQy9FLElBQUksQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ2hCLGlDQUFpQztZQUNqQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsR0FBRyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDaEUsaUJBQWlCO1lBQ2pCLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOytHQXRHVSx1QkFBdUI7bUhBQXZCLHVCQUF1Qjs7NEZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFja2VuZFNlcnZpY2UsIExvZ2dlciB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4gYXMgb2JzZXJ2YWJsZUZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgYXMgX21hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9iamVjdEZvcm1TY3JpcHRpbmdTY29wZSB9IGZyb20gJy4vb2JqZWN0LWZvcm0tc2NyaXB0aW5nLXNjb3BlJztcblxuXG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9iamVjdEZvcm1TY3JpcHRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2dnZXI6IExvZ2dlciwgcHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kU2VydmljZSkgeyB9XG5cbiAgLyoqXG4gICAqIFJ1biBhIGZvcm0gc2NyaXB0LlxuICAgKiBAcGFyYW0gc2NvcGUgLSB0aGUgY3VycmVudCBzY3JpcHRpbmcgc2NvcGVcbiAgICogQHBhcmFtIHNjcmlwdCAtIHRoZSBzY3JpcHQgdG8gYmUgZXhlY3V0ZWRcbiAgICogQHBhcmFtIFtzY3JpcHROYW1lXSAtIHRoZSBzY3JpcHRzIG5hbWVcbiAgICovXG4gIHB1YmxpYyBydW5Gb3JtU2NyaXB0KHNjb3BlOiBPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGUsIHNjcmlwdDogYW55LCBzY3JpcHROYW1lPzogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIERlZmluZSBmb3JtIHNjcmlwdCB0aGUgZnVuY3Rpb25cbiAgICAgIGNvbnN0IGZvcm1TY3JpcHRGdW5jdGlvbiA9IHRoaXMuZGVmaW5lRnVuY3Rpb24oJ0Zvcm1zY3JpcHQvJyArIHNjcmlwdE5hbWUsIHNjcmlwdCk7XG4gICAgICAvLyBydW4gdGhlIGZvcm0gc2NyaXB0XG4gICAgICBjb25zdCBmb3JtU2NyaXB0UmV0dXJuID0gZm9ybVNjcmlwdEZ1bmN0aW9uKHNjb3BlKTtcbiAgICAgIC8vIENoZWNrIGlmIHRoZSBmb3JtIHNjcmlwdCByZXR1cm5zIHNvbWV0aGluZyBhbmQgbWF5IGV4cG9ydCBnbG9iYWwgc2NyaXB0c1xuICAgICAgaWYgKGZvcm1TY3JpcHRSZXR1cm4pIHtcbiAgICAgICAgdGhpcy5pbXBvcnRHbG9iYWxTY3JpcHRzQW5kQ2FsbEluaXQoc2NvcGUsIGZvcm1TY3JpcHRSZXR1cm4pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpIHtcbiAgICAgICAgYWxlcnQoJ1N5bnRheCBlcnJvciBpbiBGb3JtLVNjcmlwdC4gU2VlIGNvbnNvbGUgbG9nIGZvciBkZXRhaWxzLicpO1xuICAgICAgfVxuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ0dvdCBzY3JpcHQgZXJyb3InLCBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIGZvcm0gc2NyaXB0IGZ1bmN0aW9uLCBhcHBlbmRpbmcgc291cmNlIHVybCBhcyBjb21tZW50LlxuICAgKiBFbmFibGVzIGRlYnVnZ2luZyB1c2luZyBicm93c2VyIGRlYnVnZ2luZyB0b29scyAoQ2hyb21lK0ZpcmVmb3gpXG4gICAqIEBzZWU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvVG9vbHMvRGVidWdnZXIvSG93X3RvL0RlYnVnX2V2YWxfc291cmNlc1xuICAgKlxuICAgKiBAcGFyYW0gbmFtZSAtIHRoZSBuYW1lIG9mIHRoZSBzY3JpcHRcbiAgICogQHBhcmFtIHNjcmlwdCAtIHNjcmlwdCB0byBiZSB3cmFwcGVkIGluIGEgZnVuY3Rpb25cbiAgICogQHJldHVybnMgdGhlIGZ1bmN0aW9uXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICBwcml2YXRlIGRlZmluZUZ1bmN0aW9uKG5hbWU6IHN0cmluZywgc2NyaXB0OiBhbnkpOiBGdW5jdGlvbiB7XG4gICAgLy8gQXBwZW5kaW5nIHNvdXJjZSB1cmwgYXMgY29tbWVudC4gU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvVG9vbHMvRGVidWdnZXIvSG93X3RvL0RlYnVnX2V2YWxfc291cmNlc1xuICAgIC8vIEVuYWJsZXMgZGVidWdnaW5nIHVzaW5nIGJyb3dzZXIgZGVidWdnaW5nIHRvb2xzIChDaHJvbWUrRmlyZWZveClcbiAgICAvLyBUaGUgbGluZSBmZWVkIGlzIG5lZWRlZCwgaWYgdGhlIHNjcmlwdCBoYXMgYSBjb21tZW50IGluIHRoZSBsYXN0IGxpbmVcbiAgICByZXR1cm4gbmV3IEZ1bmN0aW9uKCdzY29wZScsIHNjcmlwdCArICdcXG47Ly8jIHNvdXJjZVVSTD0nICsgbmFtZSArICcuanMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgc2NyaXB0IGNvbnRhaW5zIGdsb2JhbCBzY3JpcHQsIHRoaXMgZnVuY3Rpb24gd2lsbCBpbXBvcnQgYW5kIHJ1biB0aGVtXG4gICAqIGJlZm9yZSBydW5uaW5nIHRoZSBhY3R1YWwgc2NyaXB0LlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSB0aGUgY3VycmVudCBzY3JpcHRpbmcgc2NvcGVcbiAgICogQHBhcmFtIGZvcm1TY3JpcHRSZXR1cm4gLSB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBhY3R1YWwgZm9ybSBzY3JpcHRcbiAgICovXG4gIHByaXZhdGUgaW1wb3J0R2xvYmFsU2NyaXB0c0FuZENhbGxJbml0KHNjb3BlOiBPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGUsIGZvcm1TY3JpcHRSZXR1cm46IGFueSkge1xuICAgIGlmICghZm9ybVNjcmlwdFJldHVybi5pbml0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGZvcm1TY3JpcHRSZXR1cm4udXNlcykge1xuICAgICAgLy8gY29sbGVjdCB0aGUgZ2xvYmFsIHNjcmlwdCBleHBvcnRzIHByb21pc2VzXG4gICAgICBjb25zdCBleHBvcnRzOiBhbnlbXSA9IFtdO1xuICAgICAgY29uc3QgZ2xvYmFscyA9IFtdO1xuXG4gICAgICAvLyBjb2xsZWN0IE9ic2VydmFibGVzIGZvciBmZXRjaGluZyBnbG9iYWwgc2NyaXB0c1xuICAgICAgZm9yIChjb25zdCB1c2Ugb2YgZm9ybVNjcmlwdFJldHVybi51c2VzKSB7XG4gICAgICAgIGdsb2JhbHMucHVzaCh0aGlzLnJlc29sdmVHbG9iYWxTY3JpcHQodXNlLCBzY29wZSkpO1xuICAgICAgfVxuXG4gICAgICBvYnNlcnZhYmxlRm9ya0pvaW4oZ2xvYmFscykuc3Vic2NyaWJlKChnbG9iYWxSZXR1cm5zKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3Qgc2NyaXB0UmV0dXJuIG9mIGdsb2JhbFJldHVybnMpIHtcbiAgICAgICAgICBleHBvcnRzLnB1c2goc2NyaXB0UmV0dXJuWydleHBvcnRzJ10pO1xuICAgICAgICB9XG4gICAgICAgIC8vIEludm9rZSBpbml0IGZ1bmN0aW9uIG9uIGZvcm0gc2NyaXB0IHJldHVybiB3aXRoIHRoZVxuICAgICAgICAvLyBjb2xsZWN0ZWQgZXhwb3J0cyB1c2luZyBqYXZhc2NyaXB0IGFwcGx5IG1hZ2ljXG4gICAgICAgIGZvcm1TY3JpcHRSZXR1cm4uaW5pdC5hcHBseSh0aGlzLCBleHBvcnRzKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpbnZva2UgaW5pdCBkaXJlY3QgKG5vIHVzZSBvZiBnbG9iYWwgc2NyaXB0cylcbiAgICAgIGZvcm1TY3JpcHRSZXR1cm4uaW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCBnbG9iYWwgc2NyaXB0cy5cbiAgICogQHBhcmFtIG5hbWUgLSB0aGUgbmFtZSBvZiB0aGUgZ2xvYmFsIHNjcmlwdFxuICAgKiBAcGFyYW0gc2NvcGUgLSB0aGUgY3VycmVudCBzY3JpcHRpbmcgc2NvcGVcbiAgICogQHJldHVybnNcbiAgICovXG4gIHByaXZhdGUgcmVzb2x2ZUdsb2JhbFNjcmlwdChuYW1lOiBzdHJpbmcsIHNjb3BlOiBPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGUpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgQWNjZXB0OiAndGV4dC9wbGFpbidcbiAgICAgIH0pLFxuICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCdcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXQoYC9zY3JpcHQvJHtuYW1lfS9zY3JpcHRgLCB1bmRlZmluZWQsIHJlcXVlc3RPcHRpb25zKS5waXBlKFxuICAgICAgX21hcCgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgLy8gZGVmaW5lIHRoZSBnbG9iYWwgZnVuY3Rpb24gLi4uXG4gICAgICAgIGNvbnN0IGdsb2JhbFNjcmlwdCA9IHRoaXMuZGVmaW5lRnVuY3Rpb24oJ0dsb2JhbC8nICsgbmFtZSwgcmVzKTtcbiAgICAgICAgLy8gLi4uIGFuZCBydW4gaXRcbiAgICAgICAgcmV0dXJuIGdsb2JhbFNjcmlwdChzY29wZSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @ignore
|
|
3
|
-
* This class will be injected as scope into form scripts.
|
|
4
|
-
*/
|
|
5
|
-
export class ObjectFormScriptingScope {
|
|
6
|
-
/**
|
|
7
|
-
* Constructor
|
|
8
|
-
* @param situation - Current form model situation (could be CREATE, SEARCH or EDIT)
|
|
9
|
-
* @param onScriptingModelChange - callback function to be called when the scripting model changed
|
|
10
|
-
* Be aware to provide an instance method as callback for the scripting scope.
|
|
11
|
-
* @see: https://blog.johnnyreilly.com/2014/04/typescript-instance-methods.html
|
|
12
|
-
*
|
|
13
|
-
* @param api - Plugin API reference
|
|
14
|
-
* @param isTableRowScope - set this to true if the current scripting scope is created for a
|
|
15
|
-
* row editing form from a table element. It will then provide the right parameters for the scripting functions
|
|
16
|
-
*/
|
|
17
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
18
|
-
constructor(situation, onScriptingModelChange, api, isTableRowScope) {
|
|
19
|
-
this.situation = situation;
|
|
20
|
-
this.onScriptingModelChange = onScriptingModelChange;
|
|
21
|
-
this.api = api;
|
|
22
|
-
this.isTableRowScope = isTableRowScope;
|
|
23
|
-
// List of all form fields (elements)
|
|
24
|
-
this.model = {};
|
|
25
|
-
// all data values including invisible elements (READONLY)
|
|
26
|
-
this.data = {};
|
|
27
|
-
// actions passed by BPM forms
|
|
28
|
-
this.actions = {};
|
|
29
|
-
// additional objects provided by the object form
|
|
30
|
-
// used for example to pass dms objects attached to a work item
|
|
31
|
-
// to the script (READONLY)
|
|
32
|
-
// may contain: FormScriptDmsObject, FileEntry
|
|
33
|
-
this.objects = [];
|
|
34
|
-
this.context = { id: '', title: '', objectTypeId: '' };
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Sets the internal model and wraps every model element with an observer to be
|
|
38
|
-
* able to track their changes from within a form script
|
|
39
|
-
* @param model
|
|
40
|
-
*/
|
|
41
|
-
setModel(model) {
|
|
42
|
-
this.model = {};
|
|
43
|
-
for (const k of Object.keys(model)) {
|
|
44
|
-
this.model[k] = new ScopeElement(model[k], this.onScriptingModelChange);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Returns the observed model. Used for row editing forms of table elements that
|
|
49
|
-
* create their own scripting scope in context of their parent form.
|
|
50
|
-
* @returns the observed scripting scope model
|
|
51
|
-
*/
|
|
52
|
-
getModel() {
|
|
53
|
-
return this.model;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Called by the object form when the form model changes.
|
|
57
|
-
* @param change - object with key equals name of the element
|
|
58
|
-
* that changes and value of the new value
|
|
59
|
-
*/
|
|
60
|
-
modelChanged(change) {
|
|
61
|
-
// find the changed element in the scopes model
|
|
62
|
-
const propertyName = Object.keys(change)[0];
|
|
63
|
-
if (change[propertyName] === undefined) {
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
if (this.model[propertyName]) {
|
|
67
|
-
const el = this.model[propertyName];
|
|
68
|
-
el.update(change[propertyName], this.model);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* @ignore
|
|
74
|
-
*/
|
|
75
|
-
class ScopeElement {
|
|
76
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
77
|
-
constructor(element, onScriptingModelChange) {
|
|
78
|
-
this.element = element;
|
|
79
|
-
this.onScriptingModelChange = onScriptingModelChange;
|
|
80
|
-
if (this.element.value === undefined) {
|
|
81
|
-
this.element.value = null;
|
|
82
|
-
}
|
|
83
|
-
if (this.isProxyable(this.element.value)) {
|
|
84
|
-
this.element.value = this.createProxy(this.element.value);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
isProxyable(value, key) {
|
|
88
|
-
return ((typeof value === 'object' || Array.isArray(value)) &&
|
|
89
|
-
value !== null &&
|
|
90
|
-
!(value instanceof Date) &&
|
|
91
|
-
!value.isProxy &&
|
|
92
|
-
(key ? !key.includes('_meta') : true));
|
|
93
|
-
}
|
|
94
|
-
createProxy(value) {
|
|
95
|
-
const handler = {
|
|
96
|
-
set: (target, key, val) => {
|
|
97
|
-
const previousValue = structuredClone(this.element.value);
|
|
98
|
-
if (this.isProxyable(val, key)) {
|
|
99
|
-
target[key] = this.createProxy(val);
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
target[key] = val;
|
|
103
|
-
}
|
|
104
|
-
if (this.hasValueChanged(this.element.value, previousValue) && !key.includes('_meta')) {
|
|
105
|
-
this.onScriptingModelChange(this.element.name, { newValue: structuredClone(this.element.value), name: 'value' });
|
|
106
|
-
}
|
|
107
|
-
return true;
|
|
108
|
-
},
|
|
109
|
-
// This get trap is only used to find out, if an object is a proxy or not.
|
|
110
|
-
get: (target, key) => {
|
|
111
|
-
if (key === 'isProxy') {
|
|
112
|
-
return true;
|
|
113
|
-
}
|
|
114
|
-
return target[key];
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
|
-
Object.keys(value).forEach((key) => {
|
|
118
|
-
if (this.isProxyable(value[key], key)) {
|
|
119
|
-
value[key] = this.createProxy(value[key]);
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
return new Proxy(value, handler);
|
|
123
|
-
}
|
|
124
|
-
hasValueChanged(value1, value2) {
|
|
125
|
-
return JSON.stringify(value1) !== JSON.stringify(value2);
|
|
126
|
-
}
|
|
127
|
-
update(value, model) {
|
|
128
|
-
const newValue = structuredClone(value);
|
|
129
|
-
if (this.hasValueChanged(this.element.value, value)) {
|
|
130
|
-
if (this.isProxyable(value)) {
|
|
131
|
-
this.element.value = this.createProxy(newValue);
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
this.element.value = newValue;
|
|
135
|
-
}
|
|
136
|
-
if (this.element.onchange) {
|
|
137
|
-
this.element.onchange(this, model);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
set value(value) {
|
|
142
|
-
if (this.hasValueChanged(this.element.value, value)) {
|
|
143
|
-
if (this.isProxyable(value)) {
|
|
144
|
-
this.element.value = this.createProxy(value);
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
this.element.value = value;
|
|
148
|
-
}
|
|
149
|
-
this.onScriptingModelChange(this.element.name, { newValue: structuredClone(this.element.value), name: 'value' });
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
get value() {
|
|
153
|
-
return this.element.value;
|
|
154
|
-
}
|
|
155
|
-
set onchange(onchange) {
|
|
156
|
-
this.element.onchange = onchange;
|
|
157
|
-
this.onScriptingModelChange(this.element.name, { newValue: onchange, name: 'onchange' });
|
|
158
|
-
}
|
|
159
|
-
get onchange() {
|
|
160
|
-
return this.element.onchange;
|
|
161
|
-
}
|
|
162
|
-
set required(required) {
|
|
163
|
-
this.element.required = required;
|
|
164
|
-
this.onScriptingModelChange(this.element.name, { newValue: required, name: 'required' });
|
|
165
|
-
}
|
|
166
|
-
get required() {
|
|
167
|
-
return this.element.required;
|
|
168
|
-
}
|
|
169
|
-
set readonly(readonly) {
|
|
170
|
-
this.element.readonly = readonly;
|
|
171
|
-
this.onScriptingModelChange(this.element.name, { newValue: readonly, name: 'readonly' });
|
|
172
|
-
}
|
|
173
|
-
get readonly() {
|
|
174
|
-
return this.element.readonly;
|
|
175
|
-
}
|
|
176
|
-
set error(error) {
|
|
177
|
-
this.element.error = error;
|
|
178
|
-
this.onScriptingModelChange(this.element.name, { newValue: error, name: 'error' });
|
|
179
|
-
}
|
|
180
|
-
get error() {
|
|
181
|
-
return this.element.error;
|
|
182
|
-
}
|
|
183
|
-
set onrowedit(onrowedit) {
|
|
184
|
-
this.element.onrowedit = onrowedit;
|
|
185
|
-
this.onScriptingModelChange(this.element.name, { newValue: onrowedit, name: 'onrowedit' });
|
|
186
|
-
}
|
|
187
|
-
get onrowedit() {
|
|
188
|
-
return this.element.onrowedit;
|
|
189
|
-
}
|
|
190
|
-
setList(obj) {
|
|
191
|
-
if (this.element.setList) {
|
|
192
|
-
this.element.setList(obj);
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
applyFilter(obj) {
|
|
196
|
-
if (this.element.applyFilter) {
|
|
197
|
-
this.element.applyFilter(obj);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
setFilter(obj) {
|
|
201
|
-
if (this.element.setFilter) {
|
|
202
|
-
this.element.setFilter(obj);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
get name() {
|
|
206
|
-
return this.element.name;
|
|
207
|
-
}
|
|
208
|
-
get qname() {
|
|
209
|
-
return this.element.qname;
|
|
210
|
-
}
|
|
211
|
-
get label() {
|
|
212
|
-
return this.element.label;
|
|
213
|
-
}
|
|
214
|
-
get description() {
|
|
215
|
-
return this.element.description;
|
|
216
|
-
}
|
|
217
|
-
get type() {
|
|
218
|
-
return this.element.type;
|
|
219
|
-
}
|
|
220
|
-
get multiselect() {
|
|
221
|
-
return this.element.multiselect;
|
|
222
|
-
}
|
|
223
|
-
get codesystem() {
|
|
224
|
-
return this.element.codesystem;
|
|
225
|
-
}
|
|
226
|
-
get minlen() {
|
|
227
|
-
return this.element.minLength;
|
|
228
|
-
}
|
|
229
|
-
get maxlen() {
|
|
230
|
-
return this.element.maxLength;
|
|
231
|
-
}
|
|
232
|
-
get classifications() {
|
|
233
|
-
return this.element.classifications;
|
|
234
|
-
}
|
|
235
|
-
get scale() {
|
|
236
|
-
return this.element.scale;
|
|
237
|
-
}
|
|
238
|
-
get precision() {
|
|
239
|
-
return this.element.precision;
|
|
240
|
-
}
|
|
241
|
-
get withtime() {
|
|
242
|
-
return this.element.withtime;
|
|
243
|
-
}
|
|
244
|
-
get elements() {
|
|
245
|
-
return this.element.elements;
|
|
246
|
-
}
|
|
247
|
-
get aliases() {
|
|
248
|
-
return this.element.aliases;
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tc2NyaXB0aW5nLXNjb3BlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9vYmplY3QtZm9ybS9zcmMvbGliL29iamVjdC1mb3JtLXNjcmlwdC9vYmplY3QtZm9ybS1zY3JpcHRpbmctc2NvcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLHdCQUF3QjtJQW1CbkM7Ozs7Ozs7Ozs7T0FVRztJQUNILHdEQUF3RDtJQUN4RCxZQUFtQixTQUFpQixFQUFVLHNCQUFnQyxFQUFTLEdBQVEsRUFBVSxlQUF5QjtRQUEvRyxjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQVUsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUFVO1FBQVMsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUFVLG9CQUFlLEdBQWYsZUFBZSxDQUFVO1FBOUJsSSxxQ0FBcUM7UUFDOUIsVUFBSyxHQUFRLEVBQUUsQ0FBQztRQUV2QiwwREFBMEQ7UUFDbkQsU0FBSSxHQUFRLEVBQUUsQ0FBQztRQUt0Qiw4QkFBOEI7UUFDdkIsWUFBTyxHQUFRLEVBQUUsQ0FBQztRQUN6QixpREFBaUQ7UUFDakQsK0RBQStEO1FBQy9ELDJCQUEyQjtRQUMzQiw4Q0FBOEM7UUFDdkMsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUNwQixZQUFPLEdBQXdELEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsQ0FBQztJQWN1QixDQUFDO0lBRXRJOzs7O09BSUc7SUFDSSxRQUFRLENBQUMsS0FBVTtRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixLQUFLLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMs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QUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxRQUFRO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxRQUFRO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxRQUFRO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxLQUFLO1FBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FB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TztRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAaWdub3JlXG4gKiBUaGlzIGNsYXNzIHdpbGwgYmUgaW5qZWN0ZWQgYXMgc2NvcGUgaW50byBmb3JtIHNjcmlwdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGUge1xuICAvLyBMaXN0IG9mIGFsbCBmb3JtIGZpZWxkcyAoZWxlbWVudHMpXG4gIHB1YmxpYyBtb2RlbDogYW55ID0ge307XG5cbiAgLy8gYWxsIGRhdGEgdmFsdWVzIGluY2x1ZGluZyBpbnZpc2libGUgZWxlbWVudHMgKFJFQURPTkxZKVxuICBwdWJsaWMgZGF0YTogYW55ID0ge307XG5cbiAgLy8gVGhlIGlkIG9mIHRoZSBjdXJyZW50IERNUy1PYmplY3QgKFJFQURPTkxZKVxuICBwdWJsaWMgb2JqZWN0SWQ/OiBzdHJpbmc7XG5cbiAgLy8gYWN0aW9ucyBwYXNzZWQgYnkgQlBNIGZvcm1zXG4gIHB1YmxpYyBhY3Rpb25zOiBhbnkgPSB7fTtcbiAgLy8gYWRkaXRpb25hbCBvYmplY3RzIHByb3ZpZGVkIGJ5IHRoZSBvYmplY3QgZm9ybVxuICAvLyB1c2VkIGZvciBleGFtcGxlIHRvIHBhc3MgZG1zIG9iamVjdHMgYXR0YWNoZWQgdG8gYSB3b3JrIGl0ZW1cbiAgLy8gdG8gdGhlIHNjcmlwdCAoUkVBRE9OTFkpXG4gIC8vIG1heSBjb250YWluOiBGb3JtU2NyaXB0RG1zT2JqZWN0LCBGaWxlRW50cnlcbiAgcHVibGljIG9iamVjdHM6IGFueVtdID0gW107XG4gIHB1YmxpYyBjb250ZXh0OiB7IGlkOiBzdHJpbmc7IHRpdGxlOiBzdHJpbmc7IG9iamVjdFR5cGVJZDogc3RyaW5nIH0gPSB7IGlkOiAnJywgdGl0bGU6ICcnLCBvYmplY3RUeXBlSWQ6ICcnIH07XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBzaXR1YXRpb24gLSBDdXJyZW50IGZvcm0gbW9kZWwgc2l0dWF0aW9uIChjb3VsZCBiZSBDUkVBVEUsIFNFQVJDSCBvciBFRElUKVxuICAgKiBAcGFyYW0gb25TY3JpcHRpbmdNb2RlbENoYW5nZSAtIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBzY3JpcHRpbmcgbW9kZWwgY2hhbmdlZFxuICAgKiBCZSBhd2FyZSB0byBwcm92aWRlIGFuIGluc3RhbmNlIG1ldGhvZCBhcyBjYWxsYmFjayBmb3IgdGhlIHNjcmlwdGluZyBzY29wZS5cbiAgICogQHNlZTogaHR0cHM6Ly9ibG9nLmpvaG5ueXJlaWxseS5jb20vMjAxNC8wNC90eXBlc2NyaXB0LWluc3RhbmNlLW1ldGhvZHMuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gYXBpIC0gUGx1Z2luIEFQSSByZWZlcmVuY2VcbiAgICogQHBhcmFtIGlzVGFibGVSb3dTY29wZSAtIHNldCB0aGlzIHRvIHRydWUgaWYgdGhlIGN1cnJlbnQgc2NyaXB0aW5nIHNjb3BlIGlzIGNyZWF0ZWQgZm9yIGFcbiAgICogcm93IGVkaXRpbmcgZm9ybSBmcm9tIGEgdGFibGUgZWxlbWVudC4gSXQgd2lsbCB0aGVuIHByb3ZpZGUgdGhlIHJpZ2h0IHBhcmFtZXRlcnMgZm9yIHRoZSBzY3JpcHRpbmcgZnVuY3Rpb25zXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2l0dWF0aW9uOiBzdHJpbmcsIHByaXZhdGUgb25TY3JpcHRpbmdNb2RlbENoYW5nZTogRnVuY3Rpb24sIHB1YmxpYyBhcGk6IGFueSwgcHJpdmF0ZSBpc1RhYmxlUm93U2NvcGU/OiBib29sZWFuKSB7fVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBpbnRlcm5hbCBtb2RlbCBhbmQgd3JhcHMgZXZlcnkgbW9kZWwgZWxlbWVudCB3aXRoIGFuIG9ic2VydmVyIHRvIGJlXG4gICAqIGFibGUgdG8gdHJhY2sgdGhlaXIgY2hhbmdlcyBmcm9tIHdpdGhpbiBhIGZvcm0gc2NyaXB0XG4gICAqIEBwYXJhbSBtb2RlbFxuICAgKi9cbiAgcHVibGljIHNldE1vZGVsKG1vZGVsOiBhbnkpIHtcbiAgICB0aGlzLm1vZGVsID0ge307XG4gICAgZm9yIChjb25zdCBrIG9mIE9iamVjdC5rZXlzKG1vZGVsKSkge1xuICAgICAgdGhpcy5tb2RlbFtrXSA9IG5ldyBTY29wZUVsZW1lbnQobW9kZWxba10sIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG9ic2VydmVkIG1vZGVsLiBVc2VkIGZvciByb3cgZWRpdGluZyBmb3JtcyBvZiB0YWJsZSBlbGVtZW50cyB0aGF0XG4gICAqIGNyZWF0ZSB0aGVpciBvd24gc2NyaXB0aW5nIHNjb3BlIGluIGNvbnRleHQgb2YgdGhlaXIgcGFyZW50IGZvcm0uXG4gICAqIEByZXR1cm5zIHRoZSBvYnNlcnZlZCBzY3JpcHRpbmcgc2NvcGUgbW9kZWxcbiAgICovXG4gIHB1YmxpYyBnZXRNb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYnkgdGhlIG9iamVjdCBmb3JtIHdoZW4gdGhlIGZvcm0gbW9kZWwgY2hhbmdlcy5cbiAgICogQHBhcmFtIGNoYW5nZSAtIG9iamVjdCB3aXRoIGtleSBlcXVhbHMgbmFtZSBvZiB0aGUgZWxlbWVudFxuICAgKiB0aGF0IGNoYW5nZXMgYW5kIHZhbHVlIG9mIHRoZSBuZXcgdmFsdWVcbiAgICovXG4gIHB1YmxpYyBtb2RlbENoYW5nZWQoY2hhbmdlOiBhbnkpIHtcbiAgICAvLyBmaW5kIHRoZSBjaGFuZ2VkIGVsZW1lbnQgaW4gdGhlIHNjb3BlcyBtb2RlbFxuICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IE9iamVjdC5rZXlzKGNoYW5nZSlbMF07XG4gICAgaWYgKGNoYW5nZVtwcm9wZXJ0eU5hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tb2RlbFtwcm9wZXJ0eU5hbWVdKSB7XG4gICAgICBjb25zdCBlbCA9IHRoaXMubW9kZWxbcHJvcGVydHlOYW1lXTtcbiAgICAgIGVsLnVwZGF0ZShjaGFuZ2VbcHJvcGVydHlOYW1lXSwgdGhpcy5tb2RlbCk7XG4gICAgfVxuICB9XG59XG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuY2xhc3MgU2NvcGVFbGVtZW50IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBhbnksIHByaXZhdGUgb25TY3JpcHRpbmdNb2RlbENoYW5nZTogRnVuY3Rpb24pIHtcbiAgICBpZiAodGhpcy5lbGVtZW50LnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzUHJveHlhYmxlKHRoaXMuZWxlbWVudC52YWx1ZSkpIHtcbiAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IHRoaXMuY3JlYXRlUHJveHkodGhpcy5lbGVtZW50LnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzUHJveHlhYmxlKHZhbHVlOiBhbnksIGtleT86IHN0cmluZykge1xuICAgIHJldHVybiAoXG4gICAgICAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSkgJiZcbiAgICAgIHZhbHVlICE9PSBudWxsICYmXG4gICAgICAhKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkgJiZcbiAgICAgICF2YWx1ZS5pc1Byb3h5ICYmXG4gICAgICAoa2V5ID8gIWtleS5pbmNsdWRlcygnX21ldGEnKSA6IHRydWUpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUHJveHkodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGhhbmRsZXIgPSB7XG4gICAgICBzZXQ6ICh0YXJnZXQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBrZXk6IHN0cmluZywgdmFsOiB1bmtub3duKSA9PiB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5lbGVtZW50LnZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuaXNQcm94eWFibGUodmFsLCBrZXkpKSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSB0aGlzLmNyZWF0ZVByb3h5KHZhbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSB2YWw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaGFzVmFsdWVDaGFuZ2VkKHRoaXMuZWxlbWVudC52YWx1ZSwgcHJldmlvdXNWYWx1ZSkgJiYgIWtleS5pbmNsdWRlcygnX21ldGEnKSkge1xuICAgICAgICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwgeyBuZXdWYWx1ZTogc3RydWN0dXJlZENsb25lKHRoaXMuZWxlbWVudC52YWx1ZSksIG5hbWU6ICd2YWx1ZScgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9LFxuICAgICAgLy8gVGhpcyBnZXQgdHJhcCBpcyBvbmx5IHVzZWQgdG8gZmluZCBvdXQsIGlmIGFuIG9iamVjdCBpcyBhIHByb3h5IG9yIG5vdC5cbiAgICAgIGdldDogKHRhcmdldDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmIChrZXkgPT09ICdpc1Byb3h5Jykge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0YXJnZXRba2V5XTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgT2JqZWN0LmtleXModmFsdWUpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNQcm94eWFibGUodmFsdWVba2V5XSwga2V5KSkge1xuICAgICAgICB2YWx1ZVtrZXldID0gdGhpcy5jcmVhdGVQcm94eSh2YWx1ZVtrZXldKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbmV3IFByb3h5KHZhbHVlLCBoYW5kbGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzVmFsdWVDaGFuZ2VkKHZhbHVlMTogdW5rbm93biwgdmFsdWUyOiB1bmtub3duKSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlMSkgIT09IEpTT04uc3RyaW5naWZ5KHZhbHVlMik7XG4gIH1cblxuICB1cGRhdGUodmFsdWU6IHVua25vd24sIG1vZGVsOiBhbnkpIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IHN0cnVjdHVyZWRDbG9uZSh2YWx1ZSk7XG4gICAgaWYgKHRoaXMuaGFzVmFsdWVDaGFuZ2VkKHRoaXMuZWxlbWVudC52YWx1ZSwgdmFsdWUpKSB7XG4gICAgICBpZiAodGhpcy5pc1Byb3h5YWJsZSh2YWx1ZSkpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50LnZhbHVlID0gdGhpcy5jcmVhdGVQcm94eShuZXdWYWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVsZW1lbnQudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmVsZW1lbnQub25jaGFuZ2UpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50Lm9uY2hhbmdlKHRoaXMsIG1vZGVsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZXQgdmFsdWUodmFsdWUpIHtcbiAgICBpZiAodGhpcy5oYXNWYWx1ZUNoYW5nZWQodGhpcy5lbGVtZW50LnZhbHVlLCB2YWx1ZSkpIHtcbiAgICAgIGlmICh0aGlzLmlzUHJveHlhYmxlKHZhbHVlKSkge1xuICAgICAgICB0aGlzLmVsZW1lbnQudmFsdWUgPSB0aGlzLmNyZWF0ZVByb3h5KHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgICAgfVxuICAgICAgdGhpcy5vblNjcmlwdGluZ01vZGVsQ2hhbmdlKHRoaXMuZWxlbWVudC5uYW1lLCB7IG5ld1ZhbHVlOiBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5lbGVtZW50LnZhbHVlKSwgbmFtZTogJ3ZhbHVlJyB9KTtcbiAgICB9XG4gIH1cblxuICBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC52YWx1ZTtcbiAgfVxuXG4gIHNldCBvbmNoYW5nZShvbmNoYW5nZSkge1xuICAgIHRoaXMuZWxlbWVudC5vbmNoYW5nZSA9IG9uY2hhbmdlO1xuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwgeyBuZXdWYWx1ZTogb25jaGFuZ2UsIG5hbWU6ICdvbmNoYW5nZScgfSk7XG4gIH1cblxuICBnZXQgb25jaGFuZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5vbmNoYW5nZTtcbiAgfVxuXG4gIHNldCByZXF1aXJlZChyZXF1aXJlZCkge1xuICAgIHRoaXMuZWxlbWVudC5yZXF1aXJlZCA9IHJlcXVpcmVkO1xuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwgeyBuZXdWYWx1ZTogcmVxdWlyZWQsIG5hbWU6ICdyZXF1aXJlZCcgfSk7XG4gIH1cblxuICBnZXQgcmVxdWlyZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5yZXF1aXJlZDtcbiAgfVxuXG4gIHNldCByZWFkb25seShyZWFkb25seSkge1xuICAgIHRoaXMuZWxlbWVudC5yZWFkb25seSA9IHJlYWRvbmx5O1xuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwgeyBuZXdWYWx1ZTogcmVhZG9ubHksIG5hbWU6ICdyZWFkb25seScgfSk7XG4gIH1cblxuICBnZXQgcmVhZG9ubHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5yZWFkb25seTtcbiAgfVxuXG4gIHNldCBlcnJvcihlcnJvcikge1xuICAgIHRoaXMuZWxlbWVudC5lcnJvciA9IGVycm9yO1xuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwgeyBuZXdWYWx1ZTogZXJyb3IsIG5hbWU6ICdlcnJvcicgfSk7XG4gIH1cblxuICBnZXQgZXJyb3IoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5lcnJvcjtcbiAgfVxuXG4gIHNldCBvbnJvd2VkaXQob25yb3dlZGl0KSB7XG4gICAgdGhpcy5lbGVtZW50Lm9ucm93ZWRpdCA9IG9ucm93ZWRpdDtcbiAgICB0aGlzLm9uU2NyaXB0aW5nTW9kZWxDaGFuZ2UodGhpcy5lbGVtZW50Lm5hbWUsIHsgbmV3VmFsdWU6IG9ucm93ZWRpdCwgbmFtZTogJ29ucm93ZWRpdCcgfSk7XG4gIH1cblxuICBnZXQgb25yb3dlZGl0KCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQub25yb3dlZGl0O1xuICB9XG5cbiAgc2V0TGlzdChvYmo6IGFueSkge1xuICAgIGlmICh0aGlzLmVsZW1lbnQuc2V0TGlzdCkge1xuICAgICAgdGhpcy5lbGVtZW50LnNldExpc3Qob2JqKTtcbiAgICB9XG4gIH1cblxuICBhcHBseUZpbHRlcihvYmo6IGFueSkge1xuICAgIGlmICh0aGlzLmVsZW1lbnQuYXBwbHlGaWx0ZXIpIHtcbiAgICAgIHRoaXMuZWxlbWVudC5hcHBseUZpbHRlcihvYmopO1xuICAgIH1cbiAgfVxuXG4gIHNldEZpbHRlcihvYmo6IGFueSkge1xuICAgIGlmICh0aGlzLmVsZW1lbnQuc2V0RmlsdGVyKSB7XG4gICAgICB0aGlzLmVsZW1lbnQuc2V0RmlsdGVyKG9iaik7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYW1lO1xuICB9XG5cbiAgZ2V0IHFuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQucW5hbWU7XG4gIH1cblxuICBnZXQgbGFiZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5sYWJlbDtcbiAgfVxuXG4gIGdldCBkZXNjcmlwdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LmRlc2NyaXB0aW9uO1xuICB9XG5cbiAgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC50eXBlO1xuICB9XG5cbiAgZ2V0IG11bHRpc2VsZWN0KCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQubXVsdGlzZWxlY3Q7XG4gIH1cblxuICBnZXQgY29kZXN5c3RlbSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LmNvZGVzeXN0ZW07XG4gIH1cblxuICBnZXQgbWlubGVuKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQubWluTGVuZ3RoO1xuICB9XG5cbiAgZ2V0IG1heGxlbigpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm1heExlbmd0aDtcbiAgfVxuXG4gIGdldCBjbGFzc2lmaWNhdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5jbGFzc2lmaWNhdGlvbnM7XG4gIH1cblxuICBnZXQgc2NhbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5zY2FsZTtcbiAgfVxuXG4gIGdldCBwcmVjaXNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5wcmVjaXNpb247XG4gIH1cblxuICBnZXQgd2l0aHRpbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC53aXRodGltZTtcbiAgfVxuXG4gIGdldCBlbGVtZW50cygpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LmVsZW1lbnRzO1xuICB9XG5cbiAgZ2V0IGFsaWFzZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5hbGlhc2VzO1xuICB9XG59XG4iXX0=
|