@yuuvis/client-framework 0.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -0
- package/actions/README.md +3 -0
- package/actions/index.d.ts +6 -0
- package/actions/lib/actions/copy-action/copy-action.d.ts +17 -0
- package/actions/lib/actions/cut-action/cut-action.d.ts +17 -0
- package/actions/lib/actions/delete-action/delete/delete.component.d.ts +22 -0
- package/actions/lib/actions/delete-action/delete-action.d.ts +17 -0
- package/actions/lib/actions/download-action/download-action.d.ts +17 -0
- package/actions/lib/actions.icon.d.ts +7 -0
- package/actions/lib/actions.interface.d.ts +86 -0
- package/actions/lib/actions.module.d.ts +8 -0
- package/actions/lib/actions.service.d.ts +38 -0
- package/actions/lib/components/contextmenu/contextmenu.component.d.ts +11 -0
- package/app-bar/README.md +3 -0
- package/app-bar/index.d.ts +1 -0
- package/app-bar/lib/app-bar.component.d.ts +47 -0
- package/clipboard/README.md +3 -0
- package/clipboard/index.d.ts +1 -0
- package/clipboard/lib/clipboard.component.d.ts +16 -0
- package/common/README.md +3 -0
- package/common/index.d.ts +5 -0
- package/common/lib/components/focus-indicator/focus-indicator.component.d.ts +7 -0
- package/common/lib/components/token-input/token-input.component.d.ts +55 -0
- package/common/lib/components/token-input/token-input.interface.d.ts +8 -0
- package/common/lib/directives/busy-overlay.directive.d.ts +25 -0
- package/common/lib/directives/click-double.directive.d.ts +17 -0
- package/common/lib/directives/container-size.directive.d.ts +30 -0
- package/common/lib/directives/drag-select.directive.d.ts +21 -0
- package/common/lib/directives/file-drop-zone/file-drop-zone.directive.d.ts +18 -0
- package/common/lib/directives/file-drop-zone/file-drop-zone.interface.d.ts +5 -0
- package/common/lib/directives/focus-within.directive.d.ts +36 -0
- package/common/lib/directives/index.d.ts +8 -0
- package/common/lib/directives/light-dismiss.directive.d.ts +19 -0
- package/common/lib/directives/longpress.directive.d.ts +13 -0
- package/common/lib/directives/noop-value-accessor.directive.d.ts +10 -0
- package/esm2022/actions/index.mjs +7 -0
- package/esm2022/actions/lib/actions/copy-action/copy-action.mjs +31 -0
- package/esm2022/actions/lib/actions/cut-action/cut-action.mjs +30 -0
- package/esm2022/actions/lib/actions/delete-action/delete/delete.component.mjs +67 -0
- package/esm2022/actions/lib/actions/delete-action/delete-action.mjs +44 -0
- package/esm2022/actions/lib/actions/download-action/download-action.mjs +33 -0
- package/esm2022/actions/lib/actions.icon.mjs +8 -0
- package/esm2022/actions/lib/actions.interface.mjs +19 -0
- package/esm2022/actions/lib/actions.module.mjs +16 -0
- package/esm2022/actions/lib/actions.service.mjs +89 -0
- package/esm2022/actions/lib/components/contextmenu/contextmenu.component.mjs +27 -0
- package/esm2022/actions/yuuvis-client-framework-actions.mjs +5 -0
- package/esm2022/app-bar/index.mjs +2 -0
- package/esm2022/app-bar/lib/app-bar.component.mjs +89 -0
- package/esm2022/app-bar/yuuvis-client-framework-app-bar.mjs +5 -0
- package/esm2022/clipboard/index.mjs +2 -0
- package/esm2022/clipboard/lib/clipboard.component.mjs +48 -0
- package/esm2022/clipboard/yuuvis-client-framework-clipboard.mjs +5 -0
- package/esm2022/common/index.mjs +6 -0
- package/esm2022/common/lib/components/focus-indicator/focus-indicator.component.mjs +41 -0
- package/esm2022/common/lib/components/token-input/token-input.component.mjs +324 -0
- package/esm2022/common/lib/components/token-input/token-input.interface.mjs +2 -0
- package/esm2022/common/lib/directives/busy-overlay.directive.mjs +88 -0
- package/esm2022/common/lib/directives/click-double.directive.mjs +61 -0
- package/esm2022/common/lib/directives/container-size.directive.mjs +56 -0
- package/esm2022/common/lib/directives/drag-select.directive.mjs +114 -0
- package/esm2022/common/lib/directives/file-drop-zone/file-drop-zone.directive.mjs +153 -0
- package/esm2022/common/lib/directives/file-drop-zone/file-drop-zone.interface.mjs +2 -0
- package/esm2022/common/lib/directives/focus-within.directive.mjs +81 -0
- package/esm2022/common/lib/directives/index.mjs +9 -0
- package/esm2022/common/lib/directives/light-dismiss.directive.mjs +44 -0
- package/esm2022/common/lib/directives/longpress.directive.mjs +36 -0
- package/esm2022/common/lib/directives/noop-value-accessor.directive.mjs +42 -0
- package/esm2022/common/yuuvis-client-framework-common.mjs +5 -0
- package/esm2022/forms/index.mjs +19 -0
- package/esm2022/forms/lib/elements/catalog/catalog.component.mjs +118 -0
- package/esm2022/forms/lib/elements/datetime/datetime.component.mjs +82 -0
- package/esm2022/forms/lib/elements/datetime-range/datetime-range.component.mjs +166 -0
- package/esm2022/forms/lib/elements/number/number.component.mjs +195 -0
- package/esm2022/forms/lib/elements/number-range/number-range.component.mjs +176 -0
- package/esm2022/forms/lib/elements/organization/organization.component.mjs +268 -0
- package/esm2022/forms/lib/elements/string/string.component.mjs +254 -0
- package/esm2022/forms/lib/form-input/form-input.component.mjs +88 -0
- package/esm2022/forms/lib/forms.module.mjs +58 -0
- package/esm2022/forms/yuuvis-client-framework-forms.mjs +5 -0
- package/esm2022/icons/index.mjs +4 -0
- package/esm2022/icons/lib/icon.service.mjs +59 -0
- package/esm2022/icons/lib/icons.mjs +31 -0
- package/esm2022/icons/lib/object-type-icon/object-type-icon.component.mjs +29 -0
- package/esm2022/icons/yuuvis-client-framework-icons.mjs +5 -0
- package/esm2022/index.mjs +2 -0
- package/esm2022/lib/yuuvis-client-framework.module.mjs +15 -0
- package/esm2022/list/index.mjs +3 -0
- package/esm2022/list/lib/list-item.directive.mjs +72 -0
- package/esm2022/list/lib/list.component.mjs +133 -0
- package/esm2022/list/yuuvis-client-framework-list.mjs +5 -0
- package/esm2022/metadata-form/index.mjs +4 -0
- package/esm2022/metadata-form/lib/metadata-default-templates/metadata-default-templates.component.mjs +31 -0
- package/esm2022/metadata-form/lib/metadata-form-element-registry.service.mjs +99 -0
- package/esm2022/metadata-form/lib/metadata-form-field/metadata-form-field.component.mjs +126 -0
- package/esm2022/metadata-form/lib/object-metadata-element-template.directive.mjs +52 -0
- package/esm2022/metadata-form/yuuvis-client-framework-metadata-form.mjs +5 -0
- package/esm2022/object-details/index.mjs +7 -0
- package/esm2022/object-details/lib/object-audit/object-audit.component.mjs +195 -0
- package/esm2022/object-details/lib/object-details-shell/object-details-shell.component.mjs +127 -0
- package/esm2022/object-details/lib/object-details.component.mjs +61 -0
- package/esm2022/object-details/lib/object-metadata/form-section-group.pipe.mjs +17 -0
- package/esm2022/object-details/lib/object-metadata/object-metadata.component.mjs +201 -0
- package/esm2022/object-details/lib/object-metadata/object-metadata.interface.mjs +2 -0
- package/esm2022/object-details/yuuvis-client-framework-object-details.mjs +5 -0
- package/esm2022/object-flavor/index.mjs +6 -0
- package/esm2022/object-flavor/lib/abstract-apply-create-flavor/abstract-apply-create-flavor.component.mjs +25 -0
- package/esm2022/object-flavor/lib/abstract-apply-object-flavor/abstract-apply-object-flavor.component.mjs +21 -0
- package/esm2022/object-flavor/lib/flavor-chip/flavor-chip.component.mjs +35 -0
- package/esm2022/object-flavor/lib/object-flavor/object-flavor.component.mjs +93 -0
- package/esm2022/object-flavor/lib/object-flavor-picker/object-flavor-picker.component.mjs +43 -0
- package/esm2022/object-flavor/yuuvis-client-framework-object-flavor.mjs +5 -0
- package/esm2022/object-form/index.mjs +5 -0
- package/esm2022/object-form/lib/form-scripting.api.interface.mjs +2 -0
- package/esm2022/object-form/lib/form-scripting.service.mjs +160 -0
- package/esm2022/object-form/lib/object-form-element/object-form-element.component.mjs +87 -0
- package/esm2022/object-form/lib/object-form-extension.interface.mjs +36 -0
- package/esm2022/object-form/lib/object-form-group/object-form-group.component.mjs +85 -0
- package/esm2022/object-form/lib/object-form-script/form-scripting-element-extension/form-scripting-element-extension.component.mjs +23 -0
- package/esm2022/object-form/lib/object-form-script/object-form-script.service.mjs +115 -0
- package/esm2022/object-form/lib/object-form-script/object-form-scripting-scope.mjs +251 -0
- package/esm2022/object-form/lib/object-form-translate.service.mjs +73 -0
- package/esm2022/object-form/lib/object-form.component.mjs +627 -0
- package/esm2022/object-form/lib/object-form.interface.mjs +9 -0
- package/esm2022/object-form/lib/object-form.model.mjs +20 -0
- package/esm2022/object-form/lib/object-form.service.mjs +127 -0
- package/esm2022/object-form/lib/object-form.utils.mjs +55 -0
- package/esm2022/object-form/lib/object-form.validation.mjs +48 -0
- package/esm2022/object-form/yuuvis-client-framework-object-form.mjs +5 -0
- package/esm2022/object-preview/index.mjs +3 -0
- package/esm2022/object-preview/lib/components/index.mjs +3 -0
- package/esm2022/object-preview/lib/components/object-email-preview/object-email-preview.component.mjs +45 -0
- package/esm2022/object-preview/lib/components/object-preview/object-preview.component.mjs +78 -0
- package/esm2022/object-preview/lib/services/object-preview.service.mjs +92 -0
- package/esm2022/object-preview/yuuvis-client-framework-object-preview.mjs +5 -0
- package/esm2022/object-summary/index.mjs +5 -0
- package/esm2022/object-summary/lib/multi-object-summary/multi-object-summary.component.mjs +33 -0
- package/esm2022/object-summary/lib/object-summary/object-summary.component.mjs +273 -0
- package/esm2022/object-summary/lib/object-summary-data/object-summary-data.component.mjs +80 -0
- package/esm2022/object-summary/lib/object-summary.module.mjs +15 -0
- package/esm2022/object-summary/yuuvis-client-framework-object-summary.mjs +5 -0
- package/esm2022/pagination/index.mjs +3 -0
- package/esm2022/pagination/lib/pagination.component.mjs +48 -0
- package/esm2022/pagination/lib/pagination.interface.mjs +2 -0
- package/esm2022/pagination/yuuvis-client-framework-pagination.mjs +5 -0
- package/esm2022/panel/index.mjs +2 -0
- package/esm2022/panel/lib/panel.component.mjs +20 -0
- package/esm2022/panel/yuuvis-client-framework-panel.mjs +5 -0
- package/esm2022/renderer/index.mjs +11 -0
- package/esm2022/renderer/lib/property-renderer/abstract.renderer.mjs +29 -0
- package/esm2022/renderer/lib/property-renderer/datetime.renderer.mjs +13 -0
- package/esm2022/renderer/lib/property-renderer/decimal.renderer.component.mjs +12 -0
- package/esm2022/renderer/lib/property-renderer/filesize.renderer.component.mjs +28 -0
- package/esm2022/renderer/lib/property-renderer/icon.renderer.component.mjs +23 -0
- package/esm2022/renderer/lib/property-renderer/integer.renderer.component.mjs +12 -0
- package/esm2022/renderer/lib/property-renderer/organization.renderer.mjs +19 -0
- package/esm2022/renderer/lib/property-renderer/string.renderer.component.mjs +12 -0
- package/esm2022/renderer/lib/property-renderer/unknown.renderer.mjs +12 -0
- package/esm2022/renderer/lib/renderer.directive.mjs +51 -0
- package/esm2022/renderer/lib/services/renderer/renderer.interface.mjs +2 -0
- package/esm2022/renderer/lib/services/renderer/renderer.service.mjs +84 -0
- package/esm2022/renderer/yuuvis-client-framework-renderer.mjs +5 -0
- package/esm2022/sequence-list/index.mjs +6 -0
- package/esm2022/sequence-list/lib/due-date-picker/due-date-picker.component.mjs +99 -0
- package/esm2022/sequence-list/lib/sequence-list-template-manage/sequence-list-template-manage.component.mjs +183 -0
- package/esm2022/sequence-list/lib/sequence-list-templates/sequence-list-templates.component.mjs +114 -0
- package/esm2022/sequence-list/lib/sequence-list.component.mjs +146 -0
- package/esm2022/sequence-list/lib/sequence-list.interface.mjs +2 -0
- package/esm2022/sequence-list/yuuvis-client-framework-sequence-list.mjs +5 -0
- package/esm2022/simple-search/index.mjs +3 -0
- package/esm2022/simple-search/lib/simple-search/simple-search.component.mjs +111 -0
- package/esm2022/simple-search/lib/simple-search/simple-search.interface.mjs +2 -0
- package/esm2022/simple-search/yuuvis-client-framework-simple-search.mjs +5 -0
- package/esm2022/tile-list/index.mjs +11 -0
- package/esm2022/tile-list/lib/tile/tile.component.mjs +53 -0
- package/esm2022/tile-list/lib/tile-config/action-select/action-select.component.mjs +22 -0
- package/esm2022/tile-list/lib/tile-config/icon-select/icon-select.component.mjs +33 -0
- package/esm2022/tile-list/lib/tile-config/property-select/property-select.component.mjs +91 -0
- package/esm2022/tile-list/lib/tile-config/tile-config-tile/tile-config-tile.component.mjs +66 -0
- package/esm2022/tile-list/lib/tile-config/tile-config-trigger/tile-config-trigger.component.mjs +46 -0
- package/esm2022/tile-list/lib/tile-config/tile-config.component.mjs +156 -0
- package/esm2022/tile-list/lib/tile-extension/directive/tile-extension.directive.mjs +37 -0
- package/esm2022/tile-list/lib/tile-extension/extensions/email.extension.mjs +42 -0
- package/esm2022/tile-list/lib/tile-extension/tile-extension.service.mjs +35 -0
- package/esm2022/tile-list/lib/tile-list/tile-list.component.mjs +510 -0
- package/esm2022/tile-list/lib/tile-list/tile-list.interface.mjs +2 -0
- package/esm2022/tile-list/yuuvis-client-framework-tile-list.mjs +5 -0
- package/esm2022/token-search/index.mjs +3 -0
- package/esm2022/token-search/token-search.component.mjs +78 -0
- package/esm2022/token-search/token-search.interface.mjs +2 -0
- package/esm2022/token-search/yuuvis-client-framework-token-search.mjs +5 -0
- package/esm2022/tree/index.mjs +3 -0
- package/esm2022/tree/lib/tree-node/tree-node.component.mjs +65 -0
- package/esm2022/tree/lib/tree.component.mjs +148 -0
- package/esm2022/tree/lib/tree.interface.mjs +2 -0
- package/esm2022/tree/lib/tree.service.mjs +95 -0
- package/esm2022/tree/yuuvis-client-framework-tree.mjs +5 -0
- package/esm2022/upload-progress/index.mjs +2 -0
- package/esm2022/upload-progress/lib/upload-progress/upload-progress-overlay/upload-progress-overlay.component.mjs +49 -0
- package/esm2022/upload-progress/lib/upload-progress/upload-progress.component.mjs +37 -0
- package/esm2022/upload-progress/yuuvis-client-framework-upload-progress.mjs +5 -0
- package/esm2022/user-avatar/index.mjs +3 -0
- package/esm2022/user-avatar/lib/user-avatar.component.mjs +69 -0
- package/esm2022/user-avatar/lib/user-avatar.module.mjs +24 -0
- package/esm2022/user-avatar/yuuvis-client-framework-user-avatar.mjs +5 -0
- package/esm2022/yuuvis-client-framework.mjs +5 -0
- package/fesm2022/yuuvis-client-framework-actions.mjs +333 -0
- package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-app-bar.mjs +96 -0
- package/fesm2022/yuuvis-client-framework-app-bar.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-clipboard.mjs +55 -0
- package/fesm2022/yuuvis-client-framework-clipboard.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-common.mjs +1020 -0
- package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-forms.mjs +1355 -0
- package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-icons.mjs +123 -0
- package/fesm2022/yuuvis-client-framework-icons.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-list.mjs +209 -0
- package/fesm2022/yuuvis-client-framework-list.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs +302 -0
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-object-details.mjs +583 -0
- package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs +200 -0
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-object-form.mjs +1664 -0
- package/fesm2022/yuuvis-client-framework-object-form.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-object-preview.mjs +213 -0
- package/fesm2022/yuuvis-client-framework-object-preview.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-object-summary.mjs +397 -0
- package/fesm2022/yuuvis-client-framework-object-summary.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-pagination.mjs +55 -0
- package/fesm2022/yuuvis-client-framework-pagination.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-panel.mjs +27 -0
- package/fesm2022/yuuvis-client-framework-panel.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-renderer.mjs +262 -0
- package/fesm2022/yuuvis-client-framework-renderer.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-sequence-list.mjs +519 -0
- package/fesm2022/yuuvis-client-framework-sequence-list.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-simple-search.mjs +118 -0
- package/fesm2022/yuuvis-client-framework-simple-search.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-tile-list.mjs +1036 -0
- package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-token-search.mjs +85 -0
- package/fesm2022/yuuvis-client-framework-token-search.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-tree.mjs +307 -0
- package/fesm2022/yuuvis-client-framework-tree.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-upload-progress.mjs +84 -0
- package/fesm2022/yuuvis-client-framework-upload-progress.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-user-avatar.mjs +96 -0
- package/fesm2022/yuuvis-client-framework-user-avatar.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework.mjs +22 -0
- package/fesm2022/yuuvis-client-framework.mjs.map +1 -0
- package/forms/README.md +3 -0
- package/forms/index.d.ts +9 -0
- package/forms/lib/elements/catalog/catalog.component.d.ts +68 -0
- package/forms/lib/elements/datetime/datetime.component.d.ts +32 -0
- package/forms/lib/elements/datetime-range/datetime-range.component.d.ts +51 -0
- package/forms/lib/elements/number/number.component.d.ts +77 -0
- package/forms/lib/elements/number-range/number-range.component.d.ts +66 -0
- package/forms/lib/elements/organization/organization.component.d.ts +93 -0
- package/forms/lib/elements/string/string.component.d.ts +104 -0
- package/forms/lib/form-input/form-input.component.d.ts +48 -0
- package/forms/lib/forms.module.d.ts +16 -0
- package/icons/README.md +5 -0
- package/icons/index.d.ts +3 -0
- package/icons/lib/icon.service.d.ts +38 -0
- package/icons/lib/icons.d.ts +1 -0
- package/icons/lib/object-type-icon/object-type-icon.component.d.ts +11 -0
- package/index.d.ts +1 -0
- package/lib/yuuvis-client-framework.module.d.ts +7 -0
- package/list/README.md +3 -0
- package/list/index.d.ts +2 -0
- package/list/lib/list-item.directive.d.ts +15 -0
- package/list/lib/list.component.d.ts +36 -0
- package/metadata-form/README.md +21 -0
- package/metadata-form/index.d.ts +3 -0
- package/metadata-form/lib/metadata-default-templates/metadata-default-templates.component.d.ts +5 -0
- package/metadata-form/lib/metadata-form-element-registry.service.d.ts +47 -0
- package/metadata-form/lib/metadata-form-field/metadata-form-field.component.d.ts +31 -0
- package/metadata-form/lib/object-metadata-element-template.directive.d.ts +27 -0
- package/object-details/README.md +28 -0
- package/object-details/index.d.ts +6 -0
- package/object-details/lib/object-audit/object-audit.component.d.ts +59 -0
- package/object-details/lib/object-details-shell/object-details-shell.component.d.ts +51 -0
- package/object-details/lib/object-details.component.d.ts +36 -0
- package/object-details/lib/object-metadata/form-section-group.pipe.d.ts +8 -0
- package/object-details/lib/object-metadata/object-metadata.component.d.ts +48 -0
- package/object-details/lib/object-metadata/object-metadata.interface.d.ts +26 -0
- package/object-flavor/README.md +3 -0
- package/object-flavor/index.d.ts +5 -0
- package/object-flavor/lib/abstract-apply-create-flavor/abstract-apply-create-flavor.component.d.ts +12 -0
- package/object-flavor/lib/abstract-apply-object-flavor/abstract-apply-object-flavor.component.d.ts +12 -0
- package/object-flavor/lib/flavor-chip/flavor-chip.component.d.ts +17 -0
- package/object-flavor/lib/object-flavor/object-flavor.component.d.ts +26 -0
- package/object-flavor/lib/object-flavor-picker/object-flavor-picker.component.d.ts +10 -0
- package/object-form/README.md +3 -0
- package/object-form/index.d.ts +4 -0
- package/object-form/lib/form-scripting.api.interface.d.ts +131 -0
- package/object-form/lib/form-scripting.service.d.ts +30 -0
- package/object-form/lib/object-form-element/object-form-element.component.d.ts +22 -0
- package/object-form/lib/object-form-extension.interface.d.ts +22 -0
- package/object-form/lib/object-form-group/object-form-group.component.d.ts +22 -0
- package/object-form/lib/object-form-script/form-scripting-element-extension/form-scripting-element-extension.component.d.ts +10 -0
- package/object-form/lib/object-form-script/object-form-script.service.d.ts +45 -0
- package/object-form/lib/object-form-script/object-form-scripting-scope.d.ts +50 -0
- package/object-form/lib/object-form-translate.service.d.ts +15 -0
- package/object-form/lib/object-form.component.d.ts +60 -0
- package/object-form/lib/object-form.interface.d.ts +113 -0
- package/object-form/lib/object-form.model.d.ts +18 -0
- package/object-form/lib/object-form.service.d.ts +39 -0
- package/object-form/lib/object-form.utils.d.ts +20 -0
- package/object-form/lib/object-form.validation.d.ts +21 -0
- package/object-preview/README.md +3 -0
- package/object-preview/index.d.ts +2 -0
- package/object-preview/lib/components/index.d.ts +2 -0
- package/object-preview/lib/components/object-email-preview/object-email-preview.component.d.ts +16 -0
- package/object-preview/lib/components/object-preview/object-preview.component.d.ts +13 -0
- package/object-preview/lib/services/object-preview.service.d.ts +37 -0
- package/object-summary/README.md +3 -0
- package/object-summary/index.d.ts +4 -0
- package/object-summary/lib/multi-object-summary/multi-object-summary.component.d.ts +7 -0
- package/object-summary/lib/object-summary/object-summary.component.d.ts +73 -0
- package/object-summary/lib/object-summary-data/object-summary-data.component.d.ts +11 -0
- package/object-summary/lib/object-summary.module.d.ts +7 -0
- package/package.json +173 -0
- package/pagination/README.md +3 -0
- package/pagination/index.d.ts +2 -0
- package/pagination/lib/pagination.component.d.ts +18 -0
- package/pagination/lib/pagination.interface.d.ts +5 -0
- package/panel/README.md +3 -0
- package/panel/index.d.ts +1 -0
- package/panel/lib/panel.component.d.ts +12 -0
- package/renderer/README.md +5 -0
- package/renderer/index.d.ts +10 -0
- package/renderer/lib/property-renderer/abstract.renderer.d.ts +14 -0
- package/renderer/lib/property-renderer/datetime.renderer.d.ts +6 -0
- package/renderer/lib/property-renderer/decimal.renderer.component.d.ts +6 -0
- package/renderer/lib/property-renderer/filesize.renderer.component.d.ts +7 -0
- package/renderer/lib/property-renderer/icon.renderer.component.d.ts +6 -0
- package/renderer/lib/property-renderer/integer.renderer.component.d.ts +6 -0
- package/renderer/lib/property-renderer/organization.renderer.d.ts +7 -0
- package/renderer/lib/property-renderer/string.renderer.component.d.ts +6 -0
- package/renderer/lib/property-renderer/unknown.renderer.d.ts +6 -0
- package/renderer/lib/renderer.directive.d.ts +17 -0
- package/renderer/lib/services/renderer/renderer.interface.d.ts +8 -0
- package/renderer/lib/services/renderer/renderer.service.d.ts +35 -0
- package/sequence-list/README.md +3 -0
- package/sequence-list/index.d.ts +5 -0
- package/sequence-list/lib/due-date-picker/due-date-picker.component.d.ts +28 -0
- package/sequence-list/lib/sequence-list-template-manage/sequence-list-template-manage.component.d.ts +52 -0
- package/sequence-list/lib/sequence-list-templates/sequence-list-templates.component.d.ts +36 -0
- package/sequence-list/lib/sequence-list.component.d.ts +43 -0
- package/sequence-list/lib/sequence-list.interface.d.ts +16 -0
- package/simple-search/README.md +3 -0
- package/simple-search/index.d.ts +2 -0
- package/simple-search/lib/simple-search/simple-search.component.d.ts +55 -0
- package/simple-search/lib/simple-search/simple-search.interface.d.ts +4 -0
- package/styles/client-framework.scss +27 -0
- package/tile-list/README.md +3 -0
- package/tile-list/index.d.ts +10 -0
- package/tile-list/lib/tile/tile.component.d.ts +22 -0
- package/tile-list/lib/tile-config/action-select/action-select.component.d.ts +13 -0
- package/tile-list/lib/tile-config/icon-select/icon-select.component.d.ts +11 -0
- package/tile-list/lib/tile-config/property-select/property-select.component.d.ts +25 -0
- package/tile-list/lib/tile-config/tile-config-tile/tile-config-tile.component.d.ts +20 -0
- package/tile-list/lib/tile-config/tile-config-trigger/tile-config-trigger.component.d.ts +17 -0
- package/tile-list/lib/tile-config/tile-config.component.d.ts +47 -0
- package/tile-list/lib/tile-extension/directive/tile-extension.directive.d.ts +11 -0
- package/tile-list/lib/tile-extension/extensions/email.extension.d.ts +10 -0
- package/tile-list/lib/tile-extension/tile-extension.service.d.ts +16 -0
- package/tile-list/lib/tile-list/tile-list.component.d.ts +116 -0
- package/tile-list/lib/tile-list/tile-list.interface.d.ts +18 -0
- package/token-search/README.md +3 -0
- package/token-search/index.d.ts +2 -0
- package/token-search/token-search.component.d.ts +22 -0
- package/token-search/token-search.interface.d.ts +4 -0
- package/tree/README.md +3 -0
- package/tree/index.d.ts +2 -0
- package/tree/lib/tree-node/tree-node.component.d.ts +21 -0
- package/tree/lib/tree.component.d.ts +53 -0
- package/tree/lib/tree.interface.d.ts +11 -0
- package/tree/lib/tree.service.d.ts +35 -0
- package/upload-progress/README.md +3 -0
- package/upload-progress/index.d.ts +1 -0
- package/upload-progress/lib/upload-progress/upload-progress-overlay/upload-progress-overlay.component.d.ts +17 -0
- package/upload-progress/lib/upload-progress/upload-progress.component.d.ts +16 -0
- package/user-avatar/README.md +3 -0
- package/user-avatar/index.d.ts +2 -0
- package/user-avatar/lib/user-avatar.component.d.ts +44 -0
- package/user-avatar/lib/user-avatar.module.d.ts +8 -0
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { inject, Injectable, NgZone, signal } from '@angular/core';
|
|
2
|
+
import { Router } from '@angular/router';
|
|
3
|
+
import { ApiBase, AppCacheService, BackendService, DmsObject, DmsService, EventService, NotificationService, Operator, SearchService, SystemService, TranslateService, UserService, Utils, YuvEventType } from '@yuuvis/client-core';
|
|
4
|
+
import { firstValueFrom, map } from 'rxjs';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class FormScriptingApiService {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.#ngZone = inject(NgZone);
|
|
9
|
+
this.#router = inject(Router);
|
|
10
|
+
this.#eventService = inject(EventService);
|
|
11
|
+
this.#userService = inject(UserService);
|
|
12
|
+
this.#dmsService = inject(DmsService);
|
|
13
|
+
this.#systemService = inject(SystemService);
|
|
14
|
+
this.#searchService = inject(SearchService);
|
|
15
|
+
this.#backend = inject(BackendService);
|
|
16
|
+
this.#translate = inject(TranslateService);
|
|
17
|
+
this.#notifications = inject(NotificationService);
|
|
18
|
+
this.#appCache = inject(AppCacheService);
|
|
19
|
+
this.#activeFormComponents = new Map();
|
|
20
|
+
this.elementExtensions = signal({});
|
|
21
|
+
}
|
|
22
|
+
#ngZone;
|
|
23
|
+
#router;
|
|
24
|
+
#eventService;
|
|
25
|
+
#userService;
|
|
26
|
+
#dmsService;
|
|
27
|
+
#systemService;
|
|
28
|
+
#searchService;
|
|
29
|
+
#backend;
|
|
30
|
+
#translate;
|
|
31
|
+
#notifications;
|
|
32
|
+
#appCache;
|
|
33
|
+
static { this.EVENT_MODEL_CHANGED = 'yuv.event.object-form.model.changed'; }
|
|
34
|
+
#activeFormComponents;
|
|
35
|
+
get api() {
|
|
36
|
+
return this.getApi();
|
|
37
|
+
}
|
|
38
|
+
registerActiveForm(component) {
|
|
39
|
+
const id = component.formOptions()?.formModel?.name || component?.id;
|
|
40
|
+
return id && this.#activeFormComponents.set(id, component);
|
|
41
|
+
}
|
|
42
|
+
unregisterActiveForm(component) {
|
|
43
|
+
const id = component.formOptions()?.formModel?.name || component?.id;
|
|
44
|
+
return id && this.#activeFormComponents.delete(id);
|
|
45
|
+
}
|
|
46
|
+
getApi() {
|
|
47
|
+
const formId = this.formId;
|
|
48
|
+
return {
|
|
49
|
+
elementExtensions: {
|
|
50
|
+
register: (extensions) => {
|
|
51
|
+
extensions.forEach((ext) => {
|
|
52
|
+
if (ext.id)
|
|
53
|
+
this.elementExtensions.set({ ...this.elementExtensions(), [ext.id]: ext });
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
events: {
|
|
58
|
+
yuuvisEventType: YuvEventType,
|
|
59
|
+
on: (type) => this.#ngZone.run(() => this.#eventService.on(type)),
|
|
60
|
+
trigger: (type, data) => this.#ngZone.run(() => this.#eventService.trigger(type, data))
|
|
61
|
+
},
|
|
62
|
+
session: {
|
|
63
|
+
getUser: () => this.getCurrentUser(),
|
|
64
|
+
user: {
|
|
65
|
+
get: () => this.getCurrentUser(),
|
|
66
|
+
hasRole: (role) => this.getCurrentUser().authorities?.includes(role) || false
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
http: {
|
|
70
|
+
get: (uri, base, options) => this.get(uri, base, options),
|
|
71
|
+
post: (uri, data, base, options) => this.post(uri, data, base, options),
|
|
72
|
+
del: (uri, base, options) => this.del(uri, base, options),
|
|
73
|
+
put: (uri, data, base, options) => this.put(uri, data, base, options)
|
|
74
|
+
},
|
|
75
|
+
form: {
|
|
76
|
+
activeForms: this.#activeFormComponents,
|
|
77
|
+
getValue: (formControlName) => Array.from(this.#activeFormComponents.values()).reduce((prev, cur) => ({ ...prev, ...(cur.formData || {}) }), {})[formControlName],
|
|
78
|
+
setValue: (formControlName, newValue) => this.api.form.modelChange(formControlName, { name: 'value', newValue }),
|
|
79
|
+
modelChange: (formControlName, change) => this.#ngZone.run(() => this.#eventService.trigger(FormScriptingApiService.EVENT_MODEL_CHANGED, {
|
|
80
|
+
formId,
|
|
81
|
+
formControlName,
|
|
82
|
+
change
|
|
83
|
+
}))
|
|
84
|
+
},
|
|
85
|
+
storage: {
|
|
86
|
+
getItem: (key) => firstValueFrom(this.#appCache.getItem(key)),
|
|
87
|
+
setItem: (key, value) => firstValueFrom(this.#appCache.setItem(key, value))
|
|
88
|
+
},
|
|
89
|
+
notifier: {
|
|
90
|
+
success: (text, title) => this.#notifications.success(title, text),
|
|
91
|
+
error: (text, title) => this.#notifications.error(title, text),
|
|
92
|
+
info: (text, title) => this.#notifications.info(title, text),
|
|
93
|
+
warning: (text, title) => this.#notifications.warning(title, text)
|
|
94
|
+
},
|
|
95
|
+
util: {
|
|
96
|
+
translate: (key, data) => this.#translate.instant(key, data)
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
get(uri, base, options) {
|
|
101
|
+
return firstValueFrom(this.#backend.get(uri, base || ApiBase.none, options || { observe: 'response' }).pipe(map((res) => {
|
|
102
|
+
return options ? res : { status: res.status, data: res.body };
|
|
103
|
+
})));
|
|
104
|
+
}
|
|
105
|
+
put(uri, data, base, options) {
|
|
106
|
+
return firstValueFrom(this.#backend.put(uri, data, base || ApiBase.none, options));
|
|
107
|
+
}
|
|
108
|
+
post(uri, data, base, options) {
|
|
109
|
+
return firstValueFrom(this.#backend.post(uri, data, base || ApiBase.none, options));
|
|
110
|
+
}
|
|
111
|
+
del(uri, base, options) {
|
|
112
|
+
return firstValueFrom(this.#backend.delete(uri, base || ApiBase.none, options));
|
|
113
|
+
}
|
|
114
|
+
getCurrentUser() {
|
|
115
|
+
return this.#userService.getCurrentUser();
|
|
116
|
+
}
|
|
117
|
+
getDmsObject(id, version) {
|
|
118
|
+
return firstValueFrom(this.#dmsService.getDmsObject(id, version))
|
|
119
|
+
.then((response) => {
|
|
120
|
+
return Promise.resolve(response);
|
|
121
|
+
})
|
|
122
|
+
.catch(this.#handleError);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* fetches dms objects from the server that match the given params
|
|
126
|
+
*
|
|
127
|
+
* @param fields - the fields to match. example: {name: 'max', plz: '47111}
|
|
128
|
+
* @param type - the target object type
|
|
129
|
+
*/
|
|
130
|
+
getResult(fields, type) {
|
|
131
|
+
const searchQuery = {
|
|
132
|
+
filters: Object.keys(fields).map((f) => ({
|
|
133
|
+
f,
|
|
134
|
+
o: Operator.EQUAL,
|
|
135
|
+
v1: fields[f]
|
|
136
|
+
}))
|
|
137
|
+
};
|
|
138
|
+
if (type)
|
|
139
|
+
searchQuery.types = [type];
|
|
140
|
+
return firstValueFrom(this.#searchService.search(searchQuery))
|
|
141
|
+
.then((res) => {
|
|
142
|
+
return Promise.resolve(res.items.map((resItem) => {
|
|
143
|
+
new DmsObject(resItem);
|
|
144
|
+
}));
|
|
145
|
+
})
|
|
146
|
+
.catch(this.#handleError);
|
|
147
|
+
}
|
|
148
|
+
encodeFileName(filename) {
|
|
149
|
+
return Utils.encodeFileName(filename);
|
|
150
|
+
}
|
|
151
|
+
#handleError(error) {
|
|
152
|
+
return Promise.reject(error.message || error);
|
|
153
|
+
}
|
|
154
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormScriptingApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
155
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormScriptingApiService }); }
|
|
156
|
+
}
|
|
157
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormScriptingApiService, decorators: [{
|
|
158
|
+
type: Injectable
|
|
159
|
+
}] });
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY3JpcHRpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vc3JjL2xpYi9mb3JtLXNjcmlwdGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFDTCxPQUFPLEVBQ1AsZUFBZSxFQUNmLGNBQWMsRUFDZCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFFWixtQkFBbUIsRUFDbkIsUUFBUSxFQUlSLGFBQWEsRUFDYixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxLQUFLLEVBQ0wsWUFBWSxFQUViLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSzNDLE1BQU0sT0FBTyx1QkFBdUI7SUFEcEM7UUFFRSxZQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pCLFlBQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsa0JBQWEsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDckMsaUJBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakMsbUJBQWMsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkMsbUJBQWMsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FB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QWMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDM0QsSUFBSSxDQUFDLENBQUMsR0FBaUIsRUFBRSxFQUFFO1lBQzFCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FDcEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUF5QixFQUFFLEVBQUU7Z0JBQzFDLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxjQUFjLENBQUMsUUFBZ0I7UUFDN0IsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBVTtRQUNyQixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDOytHQS9KVSx1QkFBdUI7bUhBQXZCLHVCQUF1Qjs7NEZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgTmdab25lLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBBcGlCYXNlLFxuICBBcHBDYWNoZVNlcnZpY2UsXG4gIEJhY2tlbmRTZXJ2aWNlLFxuICBEbXNPYmplY3QsXG4gIERtc1NlcnZpY2UsXG4gIEV2ZW50U2VydmljZSxcbiAgSHR0cE9wdGlvbnMsXG4gIE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gIE9wZXJhdG9yLFxuICBTZWFyY2hRdWVyeSxcbiAgU2VhcmNoUmVzdWx0LFxuICBTZWFyY2hSZXN1bHRJdGVtLFxuICBTZWFyY2hTZXJ2aWNlLFxuICBTeXN0ZW1TZXJ2aWNlLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxuICBVc2VyU2VydmljZSxcbiAgVXRpbHMsXG4gIFl1dkV2ZW50VHlwZSxcbiAgWXV2VXNlclxufSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvcm1TY3JpcHRpbmdBUEksIEZvcm1TY3JpcHRpbmdFbGVtZW50RXh0ZW5zaW9uIH0gZnJvbSAnLi9mb3JtLXNjcmlwdGluZy5hcGkuaW50ZXJmYWNlJztcbmltcG9ydCB7IE9iamVjdEZvcm1Db21wb25lbnQgfSBmcm9tICcuL29iamVjdC1mb3JtLmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGb3JtU2NyaXB0aW5nQXBpU2VydmljZSB7XG4gICNuZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgI3JvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICAjZXZlbnRTZXJ2aWNlID0gaW5qZWN0KEV2ZW50U2VydmljZSk7XG4gICN1c2VyU2VydmljZSA9IGluamVjdChVc2VyU2VydmljZSk7XG4gICNkbXNTZXJ2aWNlID0gaW5qZWN0KERtc1NlcnZpY2UpO1xuICAjc3lzdGVtU2VydmljZSA9IGluamVjdChTeXN0ZW1TZXJ2aWNlKTtcbiAgI3NlYXJjaFNlcnZpY2UgPSBpbmplY3QoU2VhcmNoU2VydmljZSk7XG4gICNiYWNrZW5kID0gaW5qZWN0KEJhY2tlbmRTZXJ2aWNlKTtcbiAgI3RyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgI25vdGlmaWNhdGlvbnMgPSBpbmplY3QoTm90aWZpY2F0aW9uU2VydmljZSk7XG4gICNhcHBDYWNoZSA9IGluamVjdChBcHBDYWNoZVNlcnZpY2UpO1xuXG4gIHN0YXRpYyBFVkVOVF9NT0RFTF9DSEFOR0VEID0gJ3l1di5ldmVudC5vYmplY3QtZm9ybS5tb2RlbC5jaGFuZ2VkJztcbiAgI2FjdGl2ZUZvcm1Db21wb25lbnRzID0gbmV3IE1hcDxzdHJpbmcsIE9iamVjdEZvcm1Db21wb25lbnQ+KCk7XG4gIGVsZW1lbnRFeHRlbnNpb25zID0gc2lnbmFsPFJlY29yZDxzdHJpbmcsIEZvcm1TY3JpcHRpbmdFbGVtZW50RXh0ZW5zaW9uPj4oe30pO1xuICBmb3JtSWQ/OiBzdHJpbmc7XG5cbiAgZ2V0IGFwaSgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBcGkoKTtcbiAgfVxuXG4gIHJlZ2lzdGVyQWN0aXZlRm9ybShjb21wb25lbnQ6IE9iamVjdEZvcm1Db21wb25lbnQpIHtcbiAgICBjb25zdCBpZCA9IGNvbXBvbmVudC5mb3JtT3B0aW9ucygpPy5mb3JtTW9kZWw/Lm5hbWUgfHwgY29tcG9uZW50Py5pZDtcbiAgICByZXR1cm4gaWQgJiYgdGhpcy4jYWN0aXZlRm9ybUNvbXBvbmVudHMuc2V0KGlkLCBjb21wb25lbnQpO1xuICB9XG5cbiAgdW5yZWdpc3RlckFjdGl2ZUZvcm0oY29tcG9uZW50OiBPYmplY3RGb3JtQ29tcG9uZW50KSB7XG4gICAgY29uc3QgaWQgPSBjb21wb25lbnQuZm9ybU9wdGlvbnMoKT8uZm9ybU1vZGVsPy5uYW1lIHx8IGNvbXBvbmVudD8uaWQ7XG4gICAgcmV0dXJuIGlkICYmIHRoaXMuI2FjdGl2ZUZvcm1Db21wb25lbnRzLmRlbGV0ZShpZCk7XG4gIH1cblxuICBnZXRBcGkoKTogRm9ybVNjcmlwdGluZ0FQSSB7XG4gICAgY29uc3QgZm9ybUlkID0gdGhpcy5mb3JtSWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVsZW1lbnRFeHRlbnNpb25zOiB7XG4gICAgICAgIHJlZ2lzdGVyOiAoZXh0ZW5zaW9uczogRm9ybVNjcmlwdGluZ0VsZW1lbnRFeHRlbnNpb25bXSkgPT4ge1xuICAgICAgICAgIGV4dGVuc2lvbnMuZm9yRWFjaCgoZXh0KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXh0LmlkKSB0aGlzLmVsZW1lbnRFeHRlbnNpb25zLnNldCh7IC4uLnRoaXMuZWxlbWVudEV4dGVuc2lvbnMoKSwgW2V4dC5pZF06IGV4dCB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGV2ZW50czoge1xuICAgICAgICB5dXV2aXNFdmVudFR5cGU6IFl1dkV2ZW50VHlwZSxcbiAgICAgICAgb246ICh0eXBlOiBzdHJpbmcpID0+IHRoaXMuI25nWm9uZS5ydW4oKCkgPT4gdGhpcy4jZXZlbnRTZXJ2aWNlLm9uKHR5cGUpKSxcbiAgICAgICAgdHJpZ2dlcjogKHR5cGU6IHN0cmluZywgZGF0YT86IGFueSkgPT4gdGhpcy4jbmdab25lLnJ1bigoKSA9PiB0aGlzLiNldmVudFNlcnZpY2UudHJpZ2dlcih0eXBlLCBkYXRhKSlcbiAgICAgIH0sXG4gICAgICBzZXNzaW9uOiB7XG4gICAgICAgIGdldFVzZXI6ICgpID0+IHRoaXMuZ2V0Q3VycmVudFVzZXIoKSxcbiAgICAgICAgdXNlcjoge1xuICAgICAgICAgIGdldDogKCkgPT4gdGhpcy5nZXRDdXJyZW50VXNlcigpLFxuICAgICAgICAgIGhhc1JvbGU6IChyb2xlOiBzdHJpbmcpID0+IHRoaXMuZ2V0Q3VycmVudFVzZXIoKS5hdXRob3JpdGllcz8uaW5jbHVkZXMocm9sZSkgfHwgZmFsc2VcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGh0dHA6IHtcbiAgICAgICAgZ2V0OiAodXJpLCBiYXNlLCBvcHRpb25zKSA9PiB0aGlzLmdldCh1cmksIGJhc2UsIG9wdGlvbnMpLFxuICAgICAgICBwb3N0OiAodXJpLCBkYXRhLCBiYXNlLCBvcHRpb25zKSA9PiB0aGlzLnBvc3QodXJpLCBkYXRhLCBiYXNlLCBvcHRpb25zKSxcbiAgICAgICAgZGVsOiAodXJpLCBiYXNlLCBvcHRpb25zKSA9PiB0aGlzLmRlbCh1cmksIGJhc2UsIG9wdGlvbnMpLFxuICAgICAgICBwdXQ6ICh1cmksIGRhdGEsIGJhc2UsIG9wdGlvbnMpID0+IHRoaXMucHV0KHVyaSwgZGF0YSwgYmFzZSwgb3B0aW9ucylcbiAgICAgIH0sXG4gICAgICBmb3JtOiB7XG4gICAgICAgIGFjdGl2ZUZvcm1zOiB0aGlzLiNhY3RpdmVGb3JtQ29tcG9uZW50cyxcbiAgICAgICAgZ2V0VmFsdWU6IChmb3JtQ29udHJvbE5hbWUpID0+XG4gICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLiNhY3RpdmVGb3JtQ29tcG9uZW50cy52YWx1ZXMoKSkucmVkdWNlKFxuICAgICAgICAgICAgKHByZXY6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBjdXI6IE9iamVjdEZvcm1Db21wb25lbnQpID0+ICh7IC4uLnByZXYsIC4uLihjdXIuZm9ybURhdGEgfHwge30pIH0pLFxuICAgICAgICAgICAge31cbiAgICAgICAgICApW2Zvcm1Db250cm9sTmFtZV0sXG4gICAgICAgIHNldFZhbHVlOiAoZm9ybUNvbnRyb2xOYW1lLCBuZXdWYWx1ZSkgPT4gdGhpcy5hcGkuZm9ybS5tb2RlbENoYW5nZShmb3JtQ29udHJvbE5hbWUsIHsgbmFtZTogJ3ZhbHVlJywgbmV3VmFsdWUgfSksXG4gICAgICAgIG1vZGVsQ2hhbmdlOiAoZm9ybUNvbnRyb2xOYW1lLCBjaGFuZ2UpID0+XG4gICAgICAgICAgdGhpcy4jbmdab25lLnJ1bigoKSA9PlxuICAgICAgICAgICAgdGhpcy4jZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRm9ybVNjcmlwdGluZ0FwaVNlcnZpY2UuRVZFTlRfTU9ERUxfQ0hBTkdFRCwge1xuICAgICAgICAgICAgICBmb3JtSWQsXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZSxcbiAgICAgICAgICAgICAgY2hhbmdlXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgIH0sXG4gICAgICBzdG9yYWdlOiB7XG4gICAgICAgIGdldEl0ZW06IChrZXkpID0+IGZpcnN0VmFsdWVGcm9tKHRoaXMuI2FwcENhY2hlLmdldEl0ZW0oa2V5KSksXG4gICAgICAgIHNldEl0ZW06IChrZXksIHZhbHVlKSA9PiBmaXJzdFZhbHVlRnJvbSh0aGlzLiNhcHBDYWNoZS5zZXRJdGVtKGtleSwgdmFsdWUpKVxuICAgICAgfSxcbiAgICAgIG5vdGlmaWVyOiB7XG4gICAgICAgIHN1Y2Nlc3M6ICh0ZXh0LCB0aXRsZSkgPT4gdGhpcy4jbm90aWZpY2F0aW9ucy5zdWNjZXNzKHRpdGxlLCB0ZXh0KSxcbiAgICAgICAgZXJyb3I6ICh0ZXh0LCB0aXRsZSkgPT4gdGhpcy4jbm90aWZpY2F0aW9ucy5lcnJvcih0aXRsZSwgdGV4dCksXG4gICAgICAgIGluZm86ICh0ZXh0LCB0aXRsZSkgPT4gdGhpcy4jbm90aWZpY2F0aW9ucy5pbmZvKHRpdGxlLCB0ZXh0KSxcbiAgICAgICAgd2FybmluZzogKHRleHQsIHRpdGxlKSA9PiB0aGlzLiNub3RpZmljYXRpb25zLndhcm5pbmcodGl0bGUsIHRleHQpXG4gICAgICB9LFxuICAgICAgdXRpbDoge1xuICAgICAgICB0cmFuc2xhdGU6IChrZXksIGRhdGEpID0+IHRoaXMuI3RyYW5zbGF0ZS5pbnN0YW50KGtleSwgZGF0YSlcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgZ2V0KHVyaTogc3RyaW5nLCBiYXNlPzogc3RyaW5nLCBvcHRpb25zPzogSHR0cE9wdGlvbnMpIHtcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLiNiYWNrZW5kLmdldCh1cmksIGJhc2UgfHwgQXBpQmFzZS5ub25lLCBvcHRpb25zIHx8IHsgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyB9KS5waXBlKFxuICAgICAgICBtYXAoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG9wdGlvbnMgPyByZXMgOiB7IHN0YXR1czogcmVzLnN0YXR1cywgZGF0YTogcmVzLmJvZHkgfTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHV0KHVyaTogc3RyaW5nLCBkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgYmFzZT86IHN0cmluZywgb3B0aW9ucz86IEh0dHBPcHRpb25zKSB7XG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuI2JhY2tlbmQucHV0KHVyaSwgZGF0YSwgYmFzZSB8fCBBcGlCYXNlLm5vbmUsIG9wdGlvbnMpKTtcbiAgfVxuXG4gIHBvc3QodXJpOiBzdHJpbmcsIGRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBiYXNlPzogc3RyaW5nLCBvcHRpb25zPzogSHR0cE9wdGlvbnMpIHtcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy4jYmFja2VuZC5wb3N0KHVyaSwgZGF0YSwgYmFzZSB8fCBBcGlCYXNlLm5vbmUsIG9wdGlvbnMpKTtcbiAgfVxuXG4gIGRlbCh1cmk6IHN0cmluZywgYmFzZT86IHN0cmluZywgb3B0aW9ucz86IEh0dHBPcHRpb25zKSB7XG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuI2JhY2tlbmQuZGVsZXRlKHVyaSwgYmFzZSB8fCBBcGlCYXNlLm5vbmUsIG9wdGlvbnMpKTtcbiAgfVxuXG4gIGdldEN1cnJlbnRVc2VyKCk6IFl1dlVzZXIge1xuICAgIHJldHVybiB0aGlzLiN1c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpO1xuICB9XG5cbiAgZ2V0RG1zT2JqZWN0KGlkOiBzdHJpbmcsIHZlcnNpb246IG51bWJlcik6IFByb21pc2U8RG1zT2JqZWN0PiB7XG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuI2Rtc1NlcnZpY2UuZ2V0RG1zT2JqZWN0KGlkLCB2ZXJzaW9uKSlcbiAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2godGhpcy4jaGFuZGxlRXJyb3IpO1xuICB9XG5cbiAgLyoqXG4gICAqIGZldGNoZXMgZG1zIG9iamVjdHMgZnJvbSB0aGUgc2VydmVyIHRoYXQgbWF0Y2ggdGhlIGdpdmVuIHBhcmFtc1xuICAgKlxuICAgKiBAcGFyYW0gZmllbGRzIC0gdGhlIGZpZWxkcyB0byBtYXRjaC4gZXhhbXBsZToge25hbWU6ICdtYXgnLCBwbHo6ICc0NzExMX1cbiAgICogQHBhcmFtIHR5cGUgLSB0aGUgdGFyZ2V0IG9iamVjdCB0eXBlXG4gICAqL1xuICBnZXRSZXN1bHQoZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgdHlwZT86IHN0cmluZyk6IFByb21pc2U8RG1zT2JqZWN0W10+IHtcbiAgICBjb25zdCBzZWFyY2hRdWVyeTogU2VhcmNoUXVlcnkgPSB7XG4gICAgICBmaWx0ZXJzOiBPYmplY3Qua2V5cyhmaWVsZHMpLm1hcCgoZikgPT4gKHtcbiAgICAgICAgZixcbiAgICAgICAgbzogT3BlcmF0b3IuRVFVQUwsXG4gICAgICAgIHYxOiBmaWVsZHNbZl1cbiAgICAgIH0pKVxuICAgIH07XG4gICAgaWYgKHR5cGUpIHNlYXJjaFF1ZXJ5LnR5cGVzID0gW3R5cGVdO1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLiNzZWFyY2hTZXJ2aWNlLnNlYXJjaChzZWFyY2hRdWVyeSkpXG4gICAgICAudGhlbigocmVzOiBTZWFyY2hSZXN1bHQpID0+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShcbiAgICAgICAgICByZXMuaXRlbXMubWFwKChyZXNJdGVtOiBTZWFyY2hSZXN1bHRJdGVtKSA9PiB7XG4gICAgICAgICAgICBuZXcgRG1zT2JqZWN0KHJlc0l0ZW0pO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKHRoaXMuI2hhbmRsZUVycm9yKTtcbiAgfVxuXG4gIGVuY29kZUZpbGVOYW1lKGZpbGVuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gVXRpbHMuZW5jb2RlRmlsZU5hbWUoZmlsZW5hbWUpO1xuICB9XG5cbiAgI2hhbmRsZUVycm9yKGVycm9yOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvci5tZXNzYWdlIHx8IGVycm9yKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { CommonModule, NgComponentOutlet } from '@angular/common';
|
|
2
|
+
import { Component, computed, DestroyRef, effect, inject, input, signal, untracked, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import { Classification, Situation } from '@yuuvis/client-core';
|
|
6
|
+
import { MetadataFormFieldComponent } from '@yuuvis/client-framework/metadata-form';
|
|
7
|
+
import { ObjectFormTranslateService } from '../object-form-translate.service';
|
|
8
|
+
import { ObjectFormService } from '../object-form.service';
|
|
9
|
+
import { FormScriptingApiService } from '../form-scripting.service';
|
|
10
|
+
import { FormScriptingElementExtensionComponent } from '../object-form-script/form-scripting-element-extension/form-scripting-element-extension.component';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@angular/common";
|
|
13
|
+
import * as i2 from "@angular/forms";
|
|
14
|
+
export class ObjectFormElementComponent {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.#destroyRef = inject(DestroyRef);
|
|
17
|
+
this.#formTranslateService = inject(ObjectFormTranslateService);
|
|
18
|
+
this.#objectFormService = inject(ObjectFormService);
|
|
19
|
+
this.#scriptingApi = inject(FormScriptingApiService);
|
|
20
|
+
this.createForm = signal(false);
|
|
21
|
+
this.extensionComponents = [];
|
|
22
|
+
this.#scriptingExtensions = this.#scriptingApi.elementExtensions;
|
|
23
|
+
this.scriptingExtensions = computed(() => Object.values(this.#scriptingExtensions()).filter((ext) => ext.propertyName === this.formControlName));
|
|
24
|
+
this.scriptExtensionCmp = FormScriptingElementExtensionComponent;
|
|
25
|
+
this.situation = input();
|
|
26
|
+
this.element = input();
|
|
27
|
+
this.#elementEffect = effect(() => {
|
|
28
|
+
const element = this.element();
|
|
29
|
+
untracked(() => {
|
|
30
|
+
this.createForm.set(true);
|
|
31
|
+
element && this.#setElement(this.element());
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
#destroyRef;
|
|
36
|
+
#formTranslateService;
|
|
37
|
+
#objectFormService;
|
|
38
|
+
#scriptingApi;
|
|
39
|
+
#scriptingExtensions;
|
|
40
|
+
#elementEffect;
|
|
41
|
+
get extensionComponentInput() {
|
|
42
|
+
const xti = {
|
|
43
|
+
formControlName: this.formControlName || ''
|
|
44
|
+
};
|
|
45
|
+
return xti;
|
|
46
|
+
}
|
|
47
|
+
#setElement(el) {
|
|
48
|
+
if (el && el._eoFormControlWrapper) {
|
|
49
|
+
this.formControlName = el._eoFormControlWrapper.controlName;
|
|
50
|
+
this.formElementRef = el.controls[this.formControlName];
|
|
51
|
+
this.formElementRef._eoFormElement = this.#setGrouping(this.formElementRef?._eoFormElement);
|
|
52
|
+
this.formElementRef?.valueChanges.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe(() => this.#setupErrors());
|
|
53
|
+
this.extensionComponents = this.#objectFormService.getElementExtensions(this.formControlName);
|
|
54
|
+
this.createForm.set(false);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* formating rules...
|
|
59
|
+
* https://wiki.optimal-systems.de/display/PM/Status+yuuvis+Momentum+-+Flex+client
|
|
60
|
+
*/
|
|
61
|
+
#setGrouping(formElement) {
|
|
62
|
+
return { ...formElement, grouping: !!formElement?.classifications?.includes(Classification.NUMBER_DIGIT) };
|
|
63
|
+
}
|
|
64
|
+
onDataMetaChange(data) {
|
|
65
|
+
this.formElementRef._eoFormElement.dataMeta = data;
|
|
66
|
+
}
|
|
67
|
+
#setupErrors() {
|
|
68
|
+
this.errors = undefined;
|
|
69
|
+
if ((this.situation() !== Situation.SEARCH && this.situation() !== Situation.CREATE && this.formElementRef.errors) ||
|
|
70
|
+
((this.situation() === Situation.SEARCH || this.situation() === Situation.CREATE) &&
|
|
71
|
+
this.formElementRef.errors &&
|
|
72
|
+
(this.formElementRef.dirty || this.formElementRef.touched))) {
|
|
73
|
+
this.errors = Object.keys(this.formElementRef.errors).map((key) => {
|
|
74
|
+
return key === 'eoformScript'
|
|
75
|
+
? this.formElementRef._eoFormElement.error.msg
|
|
76
|
+
: this.#formTranslateService.getErrorLabel(key, this.formElementRef.errors[key].params);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFormElementComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
81
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ObjectFormElementComponent, isStandalone: true, selector: "yuv-object-form-element", inputs: { situation: { classPropertyName: "situation", publicName: "situation", isSignal: true, isRequired: false, transformFunction: null }, element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "yuv-object-form-element" }, ngImport: i0, template: "@let el = element();\n\n@if (!createForm()) {\n @if (el && formElementRef) {\n <div class=\"form-element input\" [formGroup]=\"el\">\n <yuv-metadata-form-field\n [field]=\"formElementRef._eoFormElement\"\n [formControlName]=\"el._eoFormControlWrapper!.controlName\"\n [situation]=\"situation()\"\n ></yuv-metadata-form-field>\n\n <div class=\"ext\">\n @for (cmp of extensionComponents; track $index) {\n <ng-container *ngComponentOutlet=\"cmp; inputs: { input: extensionComponentInput }\"></ng-container>\n }\n @for (scmp of scriptingExtensions(); track $index) {\n <ng-container *ngComponentOutlet=\"scriptExtensionCmp; inputs: { ext: scmp }\"></ng-container>\n }\n </div>\n </div>\n }\n}\n", styles: [":host{flex:1 1 auto}.yuv-object-form-element .form-element{box-sizing:border-box;display:flex;flex-flow:row nowrap}.yuv-object-form-element .form-element .ext{display:flex;flex-flow:row nowrap;gap:2px;align-items:center}.yuv-object-form-element .form-element yuv-metadata-form-field{width:100%}.yuv-object-form-element .form-element .form-field{padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}.yuv-object-form-element .form-element .form-field .description{border:0;font-size:var(--font-hint);color:var(--text-color-caption);font-style:italic;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 8) 0 calc(var(--app-pane-padding) / 8)}.yuv-object-form-element .form-element .form-field .err-msg{font-size:var(--font-hint);color:var(--color-error);padding:calc(var(--app-pane-padding) / 4) 0;border:0}.yuv-object-form-element .form-element .form-field .table{flex-flow:column;align-items:flex-start;border:1px solid var(--panel-divider-color)}.yuv-object-form-element .form-element .form-field .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.yuv-object-form-element .form-element .form-field .table.invalid{border:1px solid var(--color-error)}.yuv-object-form-element .form-element .form-field.inlineError .err-msg{display:none}.yuv-object-form-element .form-element.ng-dirty:not(.ng-invalid)>.form-field:not(.focused)::ng-deep .fe-wrapper>label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "component", type: MetadataFormFieldComponent, selector: "yuv-metadata-form-field", inputs: ["field", "situation"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
82
|
+
}
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectFormElementComponent, decorators: [{
|
|
84
|
+
type: Component,
|
|
85
|
+
args: [{ selector: 'yuv-object-form-element', standalone: true, imports: [CommonModule, MetadataFormFieldComponent, NgComponentOutlet, ReactiveFormsModule], encapsulation: ViewEncapsulation.None, host: { class: 'yuv-object-form-element' }, template: "@let el = element();\n\n@if (!createForm()) {\n @if (el && formElementRef) {\n <div class=\"form-element input\" [formGroup]=\"el\">\n <yuv-metadata-form-field\n [field]=\"formElementRef._eoFormElement\"\n [formControlName]=\"el._eoFormControlWrapper!.controlName\"\n [situation]=\"situation()\"\n ></yuv-metadata-form-field>\n\n <div class=\"ext\">\n @for (cmp of extensionComponents; track $index) {\n <ng-container *ngComponentOutlet=\"cmp; inputs: { input: extensionComponentInput }\"></ng-container>\n }\n @for (scmp of scriptingExtensions(); track $index) {\n <ng-container *ngComponentOutlet=\"scriptExtensionCmp; inputs: { ext: scmp }\"></ng-container>\n }\n </div>\n </div>\n }\n}\n", styles: [":host{flex:1 1 auto}.yuv-object-form-element .form-element{box-sizing:border-box;display:flex;flex-flow:row nowrap}.yuv-object-form-element .form-element .ext{display:flex;flex-flow:row nowrap;gap:2px;align-items:center}.yuv-object-form-element .form-element yuv-metadata-form-field{width:100%}.yuv-object-form-element .form-element .form-field{padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}.yuv-object-form-element .form-element .form-field .description{border:0;font-size:var(--font-hint);color:var(--text-color-caption);font-style:italic;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 8) 0 calc(var(--app-pane-padding) / 8)}.yuv-object-form-element .form-element .form-field .err-msg{font-size:var(--font-hint);color:var(--color-error);padding:calc(var(--app-pane-padding) / 4) 0;border:0}.yuv-object-form-element .form-element .form-field .table{flex-flow:column;align-items:flex-start;border:1px solid var(--panel-divider-color)}.yuv-object-form-element .form-element .form-field .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.yuv-object-form-element .form-element .form-field .table.invalid{border:1px solid var(--color-error)}.yuv-object-form-element .form-element .form-field.inlineError .err-msg{display:none}.yuv-object-form-element .form-element.ng-dirty:not(.ng-invalid)>.form-field:not(.focused)::ng-deep .fe-wrapper>label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)!important}\n"] }]
|
|
86
|
+
}] });
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1mb3JtL3NyYy9saWIvb2JqZWN0LWZvcm0tZWxlbWVudC9vYmplY3QtZm9ybS1lbGVtZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vc3JjL2xpYi9vYmplY3QtZm9ybS1lbGVtZW50L29iamVjdC1mb3JtLWVsZW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQVEsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25JLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDcEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sbUdB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LENBQUM7SUFDSCxDQUFDOytHQTNFVSwwQkFBMEI7bUdBQTFCLDBCQUEwQixzWkN2QnZDLG94QkFzQkEsbWhERExZLFlBQVksdVNBQUUsMEJBQTBCLG1HQUFxQixtQkFBbUI7OzRGQU0vRSwwQkFBMEI7a0JBVHRDLFNBQVM7K0JBQ0UseUJBQXlCLGNBQ3ZCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSwwQkFBMEIsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsQ0FBQyxpQkFHNUUsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFFLEtBQUssRUFBRSx5QkFBeUIsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdDb21wb25lbnRPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgRGVzdHJveVJlZiwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBzaWduYWwsIFR5cGUsIHVudHJhY2tlZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDbGFzc2lmaWNhdGlvbiwgU2l0dWF0aW9uIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBNZXRhZGF0YUZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9tZXRhZGF0YS1mb3JtJztcbmltcG9ydCB7IE9iamVjdEZvcm1UcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vb2JqZWN0LWZvcm0tdHJhbnNsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyIH0gZnJvbSAnLi4vb2JqZWN0LWZvcm0uaW50ZXJmYWNlJztcbmltcG9ydCB7IE9iamVjdEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vb2JqZWN0LWZvcm0uc2VydmljZSc7XG5pbXBvcnQgeyBJT2JqZWN0Rm9ybUVsZW1lbnRFeHRlbnNpb25Db21wb25lbnRJbnB1dCwgT2JqZWN0Rm9ybUVsZW1lbnRFeHRlbnNpb24gfSBmcm9tICcuLi9vYmplY3QtZm9ybS1leHRlbnNpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IEZvcm1TY3JpcHRpbmdBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vZm9ybS1zY3JpcHRpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtU2NyaXB0aW5nRWxlbWVudEV4dGVuc2lvbkNvbXBvbmVudCB9IGZyb20gJy4uL29iamVjdC1mb3JtLXNjcmlwdC9mb3JtLXNjcmlwdGluZy1lbGVtZW50LWV4dGVuc2lvbi9mb3JtLXNjcmlwdGluZy1lbGVtZW50LWV4dGVuc2lvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybVNjcmlwdGluZ0VsZW1lbnRFeHRlbnNpb24gfSBmcm9tICcuLi9mb3JtLXNjcmlwdGluZy5hcGkuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneXV2LW9iamVjdC1mb3JtLWVsZW1lbnQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNZXRhZGF0YUZvcm1GaWVsZENvbXBvbmVudCwgTmdDb21wb25lbnRPdXRsZXQsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LWZvcm0tZWxlbWVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29iamVjdC1mb3JtLWVsZW1lbnQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDogeyBjbGFzczogJ3l1di1vYmplY3QtZm9ybS1lbGVtZW50JyB9XG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdEZvcm1FbGVtZW50Q29tcG9uZW50IHtcbiAgI2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICNmb3JtVHJhbnNsYXRlU2VydmljZSA9IGluamVjdChPYmplY3RGb3JtVHJhbnNsYXRlU2VydmljZSk7XG4gICNvYmplY3RGb3JtU2VydmljZSA9IGluamVjdChPYmplY3RGb3JtU2VydmljZSk7XG4gICNzY3JpcHRpbmdBcGkgPSBpbmplY3QoRm9ybVNjcmlwdGluZ0FwaVNlcnZpY2UpO1xuXG4gIGNyZWF0ZUZvcm0gPSBzaWduYWwoZmFsc2UpO1xuXG4gIGZvcm1Db250cm9sTmFtZT86IHN0cmluZztcbiAgZm9ybUVsZW1lbnRSZWY6IGFueTtcbiAgZXJyb3JzPzogc3RyaW5nW107XG4gIGV4dGVuc2lvbkNvbXBvbmVudHM6IFR5cGU8T2JqZWN0Rm9ybUVsZW1lbnRFeHRlbnNpb24+W10gPSBbXTtcbiAgI3NjcmlwdGluZ0V4dGVuc2lvbnMgPSB0aGlzLiNzY3JpcHRpbmdBcGkuZWxlbWVudEV4dGVuc2lvbnM7XG4gIHNjcmlwdGluZ0V4dGVuc2lvbnMgPSBjb21wdXRlZCgoKSA9PlxuICAgIE9iamVjdC52YWx1ZXModGhpcy4jc2NyaXB0aW5nRXh0ZW5zaW9ucygpKS5maWx0ZXIoKGV4dDogRm9ybVNjcmlwdGluZ0VsZW1lbnRFeHRlbnNpb24pID0+IGV4dC5wcm9wZXJ0eU5hbWUgPT09IHRoaXMuZm9ybUNvbnRyb2xOYW1lKVxuICApO1xuXG4gIHNjcmlwdEV4dGVuc2lvbkNtcCA9IEZvcm1TY3JpcHRpbmdFbGVtZW50RXh0ZW5zaW9uQ29tcG9uZW50O1xuICBzaXR1YXRpb24gPSBpbnB1dDxzdHJpbmc+KCk7XG5cbiAgZWxlbWVudCA9IGlucHV0PE9iamVjdEZvcm1Db250cm9sV3JhcHBlcj4oKTtcbiAgI2VsZW1lbnRFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnQoKTtcblxuICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICB0aGlzLmNyZWF0ZUZvcm0uc2V0KHRydWUpO1xuICAgICAgZWxlbWVudCAmJiB0aGlzLiNzZXRFbGVtZW50KHRoaXMuZWxlbWVudCgpKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZ2V0IGV4dGVuc2lvbkNvbXBvbmVudElucHV0KCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICBjb25zdCB4dGk6IElPYmplY3RGb3JtRWxlbWVudEV4dGVuc2lvbkNvbXBvbmVudElucHV0ID0ge1xuICAgICAgZm9ybUNvbnRyb2xOYW1lOiB0aGlzLmZvcm1Db250cm9sTmFtZSB8fCAnJ1xuICAgIH07XG4gICAgcmV0dXJuIHh0aSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICB9XG5cbiAgI3NldEVsZW1lbnQoZWw6IE9iamVjdEZvcm1Db250cm9sV3JhcHBlciB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChlbCAmJiBlbC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIpIHtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2xOYW1lID0gZWwuX2VvRm9ybUNvbnRyb2xXcmFwcGVyLmNvbnRyb2xOYW1lO1xuICAgICAgdGhpcy5mb3JtRWxlbWVudFJlZiA9IGVsLmNvbnRyb2xzW3RoaXMuZm9ybUNvbnRyb2xOYW1lXTtcbiAgICAgIHRoaXMuZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQgPSB0aGlzLiNzZXRHcm91cGluZyh0aGlzLmZvcm1FbGVtZW50UmVmPy5fZW9Gb3JtRWxlbWVudCk7XG4gICAgICB0aGlzLmZvcm1FbGVtZW50UmVmPy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB0aGlzLiNzZXR1cEVycm9ycygpKTtcbiAgICAgIHRoaXMuZXh0ZW5zaW9uQ29tcG9uZW50cyA9IHRoaXMuI29iamVjdEZvcm1TZXJ2aWNlLmdldEVsZW1lbnRFeHRlbnNpb25zKHRoaXMuZm9ybUNvbnRyb2xOYW1lKTtcblxuICAgICAgdGhpcy5jcmVhdGVGb3JtLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGZvcm1hdGluZyBydWxlcy4uLlxuICAgKiBodHRwczovL3dpa2kub3B0aW1hbC1zeXN0ZW1zLmRlL2Rpc3BsYXkvUE0vU3RhdHVzK3l1dXZpcytNb21lbnR1bSstK0ZsZXgrY2xpZW50XG4gICAqL1xuICAjc2V0R3JvdXBpbmcoZm9ybUVsZW1lbnQ6IGFueSkge1xuICAgIHJldHVybiB7IC4uLmZvcm1FbGVtZW50LCBncm91cGluZzogISFmb3JtRWxlbWVudD8uY2xhc3NpZmljYXRpb25zPy5pbmNsdWRlcyhDbGFzc2lmaWNhdGlvbi5OVU1CRVJfRElHSVQpIH07XG4gIH1cblxuICBvbkRhdGFNZXRhQ2hhbmdlKGRhdGE6IGFueSkge1xuICAgIHRoaXMuZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuZGF0YU1ldGEgPSBkYXRhO1xuICB9XG5cbiAgI3NldHVwRXJyb3JzKCkge1xuICAgIHRoaXMuZXJyb3JzID0gdW5kZWZpbmVkO1xuICAgIGlmIChcbiAgICAgICh0aGlzLnNpdHVhdGlvbigpICE9PSBTaXR1YXRpb24uU0VBUkNIICYmIHRoaXMuc2l0dWF0aW9uKCkgIT09IFNpdHVhdGlvbi5DUkVBVEUgJiYgdGhpcy5mb3JtRWxlbWVudFJlZi5lcnJvcnMpIHx8XG4gICAgICAoKHRoaXMuc2l0dWF0aW9uKCkgPT09IFNpdHVhdGlvbi5TRUFSQ0ggfHwgdGhpcy5zaXR1YXRpb24oKSA9PT0gU2l0dWF0aW9uLkNSRUFURSkgJiZcbiAgICAgICAgdGhpcy5mb3JtRWxlbWVudFJlZi5lcnJvcnMgJiZcbiAgICAgICAgKHRoaXMuZm9ybUVsZW1lbnRSZWYuZGlydHkgfHwgdGhpcy5mb3JtRWxlbWVudFJlZi50b3VjaGVkKSlcbiAgICApIHtcbiAgICAgIHRoaXMuZXJyb3JzID0gT2JqZWN0LmtleXModGhpcy5mb3JtRWxlbWVudFJlZi5lcnJvcnMpLm1hcCgoa2V5KSA9PiB7XG4gICAgICAgIHJldHVybiBrZXkgPT09ICdlb2Zvcm1TY3JpcHQnXG4gICAgICAgICAgPyB0aGlzLmZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmVycm9yLm1zZ1xuICAgICAgICAgIDogdGhpcy4jZm9ybVRyYW5zbGF0ZVNlcnZpY2UuZ2V0RXJyb3JMYWJlbChrZXksIHRoaXMuZm9ybUVsZW1lbnRSZWYuZXJyb3JzW2tleV0ucGFyYW1zKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiQGxldCBlbCA9IGVsZW1lbnQoKTtcblxuQGlmICghY3JlYXRlRm9ybSgpKSB7XG4gIEBpZiAoZWwgJiYgZm9ybUVsZW1lbnRSZWYpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1lbGVtZW50IGlucHV0XCIgW2Zvcm1Hcm91cF09XCJlbFwiPlxuICAgICAgPHl1di1tZXRhZGF0YS1mb3JtLWZpZWxkXG4gICAgICAgIFtmaWVsZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudFwiXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZWwuX2VvRm9ybUNvbnRyb2xXcmFwcGVyIS5jb250cm9sTmFtZVwiXG4gICAgICAgIFtzaXR1YXRpb25dPVwic2l0dWF0aW9uKClcIlxuICAgICAgPjwveXV2LW1ldGFkYXRhLWZvcm0tZmllbGQ+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJleHRcIj5cbiAgICAgICAgQGZvciAoY21wIG9mIGV4dGVuc2lvbkNvbXBvbmVudHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwiY21wOyBpbnB1dHM6IHsgaW5wdXQ6IGV4dGVuc2lvbkNvbXBvbmVudElucHV0IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuICAgICAgICBAZm9yIChzY21wIG9mIHNjcmlwdGluZ0V4dGVuc2lvbnMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJzY3JpcHRFeHRlbnNpb25DbXA7IGlucHV0czogeyBleHQ6IHNjbXAgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,36 @@
|
|
|
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==
|
|
@@ -0,0 +1,85 @@
|
|
|
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=
|
|
@@ -0,0 +1,23 @@
|
|
|
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
|