@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 @@
|
|
|
1
|
+
{"version":3,"file":"yuuvis-client-framework-sequence-list.mjs","sources":["../../../../../libs/yuuvis/client-framework/sequence-list/src/lib/due-date-picker/due-date-picker.component.ts","../../../../../libs/yuuvis/client-framework/sequence-list/src/lib/due-date-picker/due-date-picker.component.html","../../../../../libs/yuuvis/client-framework/sequence-list/src/lib/sequence-list.component.ts","../../../../../libs/yuuvis/client-framework/sequence-list/src/lib/sequence-list.component.html","../../../../../libs/yuuvis/client-framework/sequence-list/src/lib/sequence-list-template-manage/sequence-list-template-manage.component.ts","../../../../../libs/yuuvis/client-framework/sequence-list/src/lib/sequence-list-template-manage/sequence-list-template-manage.component.html","../../../../../libs/yuuvis/client-framework/sequence-list/src/lib/sequence-list-templates/sequence-list-templates.component.ts","../../../../../libs/yuuvis/client-framework/sequence-list/src/lib/sequence-list-templates/sequence-list-templates.component.html","../../../../../libs/yuuvis/client-framework/sequence-list/src/yuuvis-client-framework-sequence-list.ts"],"sourcesContent":["import { Component, forwardRef, inject, input, OnInit, signal, TemplateRef, viewChild } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DatepickerCalendarOptions, DatepickerLabels, YvcDatepickerModule } from '@yuuvis/components/datepicker';\nimport { ICONS, YvcIconModule } from '@yuuvis/components/icon';\nimport { YvcOverlayRef, YvcOverlayService } from '@yuuvis/components/overlay';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { LocaleDatePipe, TranslateService } from '@yuuvis/client-core';\nimport { LangChangeEvent } from '@ngx-translate/core';\n\n@Component({\n selector: 'yuv-due-date-picker',\n standalone: true,\n imports: [CommonModule, YvcDatepickerModule, YvcIconModule, LocaleDatePipe],\n templateUrl: './due-date-picker.component.html',\n styleUrl: './due-date-picker.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DueDatePickerComponent),\n multi: true\n }\n ]\n})\nexport class DueDatePickerComponent implements ControlValueAccessor, OnInit {\n #overlay = inject(YvcOverlayService);\n private translate = inject(TranslateService);\n #oRef?: YvcOverlayRef;\n\n tplCalendar = viewChild.required<TemplateRef<any>>('tplCalendar');\n\n disabled = input<boolean>(false);\n\n value?: Date;\n calendarValue: Date | null = null;\n\n icons = {\n calendar: ICONS.calendar,\n clear: ICONS.clear\n };\n\n #labels?: DatepickerLabels;\n #locale = this.translate.currentLang;\n\n options = signal<DatepickerCalendarOptions>({\n withTime: true,\n // onlyFutureDates: true\n });\n\n #setOptions() {\n this.options.update((v) => {\n return {\n ...v,\n labels: {\n calendarApply: this.translate.instant('yuv.form.element.datetime.calendar.select'),\n calendarCancel: this.translate.instant('yuv.form.element.datetime.calendar.cancel'),\n shortcut: { today: this.translate.instant('yuv.form.element.datetime.calendar.today') }\n },\n locale: this.translate.currentLang\n };\n });\n }\n\n openCalendar() {\n if (!this.calendarValue) this.calendarValue = new Date();\n this.#oRef = this.#overlay.open(this.tplCalendar(), null, {\n focusHandled: true\n });\n }\n\n closeCalendar() {\n this.#oRef?.close();\n }\n\n onCalendarDateApply(date: Date) {\n this.calendarValue = date;\n this.value = this.calendarValue;\n this.propagateChange(this.value);\n this.closeCalendar();\n }\n\n clear() {\n this.value = undefined;\n this.propagateChange(this.value);\n }\n\n propagateChange = (_: any) => {};\n registerOnTouched(): void {}\n\n writeValue(value: Date | undefined): void {\n this.value = value;\n this.calendarValue = value || null;\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n ngOnInit(): void {\n this.#setOptions();\n this.translate.onLangChange.subscribe((e: LangChangeEvent) => {\n this.#setOptions();\n });\n }\n}\n","<button type=\"button\" class=\"calender secondary\" [disabled]=\"disabled()\" (click)=\"openCalendar()\">\n <yvc-icon [svg]=\"icons.calendar\"></yvc-icon>\n @if (value) {\n <span>{{ value | localeDate }}</span>\n }\n</button>\n@if (value) {\n <button type=\"button\" class=\"clear\" (click)=\"this.clear()\"><yvc-icon [svg]=\"icons.clear\"></yvc-icon></button>\n}\n<ng-template #tplCalendar>\n <yvc-datepicker-calendar\n [date]=\"calendarValue\"\n [options]=\"options()\"\n (cancel)=\"closeCalendar()\"\n (apply)=\"onCalendarDateApply($event)\"\n ></yvc-datepicker-calendar>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewChild, forwardRef, inject, input } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n ControlValueAccessor,\n FormArray,\n FormControl,\n FormGroup,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n NonNullableFormBuilder,\n ReactiveFormsModule,\n ValidationErrors,\n Validator,\n Validators\n} from '@angular/forms';\nimport { TranslateModule } from '@yuuvis/client-core';\nimport { FormInputComponent, OrganizationComponent, StringComponent } from '@yuuvis/client-framework/forms';\nimport { YUV_ICONS } from '@yuuvis/client-framework/icons';\nimport { ICONS, YvcIconModule } from '@yuuvis/components/icon';\nimport { DueDatePickerComponent } from './due-date-picker/due-date-picker.component';\nimport { SequenceItem } from './sequence-list.interface';\n\ntype SequenceFormItem = FormGroup<{\n title: FormControl<string>;\n nextAssignee: FormControl<string>;\n expiryDatetime: FormControl<any>;\n}>;\ntype SequenceForm = FormGroup<{\n items: FormArray<SequenceFormItem>;\n}>;\n\n/**\n * Task sequence list.\n */\n@Component({\n selector: 'yuv-sequence-list',\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n FormInputComponent,\n StringComponent,\n OrganizationComponent,\n DueDatePickerComponent,\n ReactiveFormsModule,\n YvcIconModule\n ],\n templateUrl: './sequence-list.component.html',\n styleUrl: './sequence-list.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SequenceListComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SequenceListComponent),\n multi: true\n }\n ],\n host: {\n tabindex: '0'\n }\n})\nexport class SequenceListComponent implements ControlValueAccessor, Validator {\n #fb = inject(NonNullableFormBuilder);\n\n @ViewChild(OrganizationComponent) orgComponent!: OrganizationComponent;\n\n /**\n * Maximum number of sequence items (defaults to 100).\n */\n maxLength = input<number>(100);\n maxLengthExceeded = false;\n\n icons = {\n delete: ICONS.clear,\n add: YUV_ICONS.add\n };\n\n // dynamic form for sequence items\n sequenceForm: SequenceForm = this.#fb.group({\n items: this.#fb.array<SequenceFormItem>([this.#generateSequenceItem()])\n });\n\n entries: SequenceItem[] = [];\n\n get formItemArray(): FormArray<SequenceFormItem> {\n return this.sequenceForm.controls.items as FormArray<SequenceFormItem>;\n }\n\n constructor() {\n this.sequenceForm.valueChanges.pipe(takeUntilDestroyed()).subscribe(() => {\n this.#propagate();\n });\n }\n\n #generateSequenceItem(sequenceItem?: SequenceItem): SequenceFormItem {\n return this.#fb.group({\n title: [sequenceItem?.title || '', Validators.required],\n nextAssignee: [sequenceItem?.nextAssignee.id || '', Validators.required],\n expiryDatetime: [sequenceItem?.expiryDatetime || undefined]\n });\n }\n\n addItem() {\n this.sequenceForm.controls.items.push(this.#generateSequenceItem());\n this.#updateState();\n }\n \n addItemAt(idx: number) {\n this.sequenceForm.controls.items.insert(idx, this.#generateSequenceItem());\n this.#updateState();\n }\n \n removeItem(idx: number) {\n this.sequenceForm.controls.items.removeAt(idx);\n this.#updateState();\n }\n\n #updateState() {\n const ml = this.maxLength();\n this.maxLengthExceeded = ml !== undefined && this.formItemArray.length >= ml;\n }\n\n propagateChange = (_: any) => {};\n registerOnTouched(): void {}\n\n #propagate() {\n const res: SequenceItem[] = [];\n (this.sequenceForm.value.items || []).forEach((item: any) => {\n const i: SequenceItem = {\n title: item.title,\n nextAssignee: item.nextAssignee\n };\n if (item.expiryDatetime) {\n i.expiryDatetime = item.expiryDatetime;\n }\n res.push(i);\n });\n\n this.propagateChange(res);\n }\n\n writeValue(value: SequenceItem[]): void {\n this.entries = value || [];\n this.entries.forEach((entry) => {\n this.formItemArray.push(this.#generateSequenceItem(entry));\n });\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n validate(): ValidationErrors | null {\n const ml = this.maxLength();\n const mlExceeded = ml !== undefined && this.formItemArray.length > ml;\n const valid = this.sequenceForm.valid && !mlExceeded; \n \n return !valid\n ? {\n sequencelist: { \n invalid: this.sequenceForm.invalid, \n maxLengthExceeded: mlExceeded\n }\n }\n : null;\n }\n}\n","<form [formGroup]=\"sequenceForm\">\n <section formArrayName=\"items\">\n @for (item of sequenceForm.controls.items.controls; track itemIndex; let itemIndex = $index) {\n <div class=\"item\" [formGroup]=\"item\">\n <button class=\"add before\" type=\"button\" [disabled]=\"maxLengthExceeded\" (click)=\"addItemAt($index)\"><yvc-icon [svg]=\"icons.add\"></yvc-icon></button>\n <span class=\"index\" [attr.data-index]=\"itemIndex + 1\"></span>\n\n <div class=\"item-form\">\n <button class=\"remove\" type=\"button\" (click)=\"removeItem($index)\"\n [disabled]=\"sequenceForm.controls.items.controls.length === 1\"><yvc-icon [svg]=\"icons.delete\"></yvc-icon></button>\n <input [placeholder]=\"'yuv.sequence-list.form.task' | translate\" [maxLength]=\"128\" formControlName=\"title\" />\n <yuv-organization\n [title]=\"'yuv.sequence-list.form.nextAssignee' | translate\"\n [withMetadata]=\"true\"\n formControlName=\"nextAssignee\"> </yuv-organization>\n \n <!-- <yuv-due-date-picker \n [title]=\"'yuv.sequence-list.form.expiryDatetime' | translate\"\n formControlName=\"expiryDatetime\"></yuv-due-date-picker> -->\n </div>\n @if ($last) {\n <button class=\"add after\" type=\"button\" \n [disabled]=\"maxLengthExceeded\"\n (click)=\"addItem()\"><yvc-icon [svg]=\"icons.add\"></yvc-icon></button>\n }\n </div>\n }\n </section>\n</form>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output, inject, input, output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, FormBuilder, FormGroup, FormsModule, ReactiveFormsModule, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\nimport { BackendService, PendingChangesService, Sort, TranslateModule, TranslateService, Utils } from '@yuuvis/client-core';\nimport { FormInputComponent, StringComponent, YuvFormsModule } from '@yuuvis/client-framework/forms';\nimport { YvcCommonModule } from '@yuuvis/components/common';\nimport { YvcOverlayModule, YvcOverlayService } from '@yuuvis/components/overlay';\nimport { of } from 'rxjs';\nimport { SequenceItem, SequenceListTemplate } from '../sequence-list.interface';\nimport { SequenceListComponent } from '../sequence-list.component';\n\n@Component({\n selector: 'yuv-sequence-list-template-manage',\n standalone: true,\n imports: [\n CommonModule,\n YvcOverlayModule,\n TranslateModule,\n FormInputComponent,\n StringComponent,\n FormsModule,\n CommonModule,\n SequenceListComponent,\n YuvFormsModule,\n ReactiveFormsModule,\n YvcCommonModule\n ],\n templateUrl: './sequence-list-template-manage.component.html',\n styleUrls: ['./sequence-list-template-manage.component.scss']\n})\nexport class SequenceListTemplateManageComponent implements OnInit {\n private backend = inject(BackendService);\n private overlay = inject(YvcOverlayService);\n private pendingChanges = inject(PendingChangesService);\n private fb = inject(FormBuilder);\n private translate = inject(TranslateService);\n\n private DEFAULT_TEMPLATE_STORAGE_SECTION = 'sequencelist';\n CURRENT_ENTRIES_ID = 'current';\n TEMPLATE_NAME_MAX_LENGTH = 128;\n disableSubmit = false;\n templates: SequenceListTemplate[] = [];\n filterTerm: string | null = null;\n pendingTaskId?: string;\n\n private _selectedTemplate?: SequenceListTemplate;\n set selectedTemplate(s: SequenceListTemplate | undefined) {\n if (!this.pendingChanges.check()) {\n this.pendingTaskId = undefined;\n this._selectedTemplate = s ? { ...s } : undefined;\n\n if (this._selectedTemplate)\n this.form.patchValue(\n {\n templateName: this._selectedTemplate.id === this.CURRENT_ENTRIES_ID ? '' : this._selectedTemplate.name,\n sequence: [...this._selectedTemplate.sequence]\n },\n { emitEvent: false }\n );\n this.form.markAsPristine();\n }\n }\n get selectedTemplate() {\n return this._selectedTemplate;\n }\n\n busy = false;\n form: FormGroup = this.fb.group({\n templateName: ['', [Validators.required, Validators.maxLength(this.TEMPLATE_NAME_MAX_LENGTH), this.forbiddenNameValidator()]],\n sequence: [[], Validators.required]\n });\n\n /**\n * Name of the section to store templates in user service (usersettings)\n */\n storageSection = input<string>(this.DEFAULT_TEMPLATE_STORAGE_SECTION);\n currentEntries = input<SequenceItem[]>([]);\n\n // emitted once a template has been selected\n templateSelect = output<SequenceItem[]>();\n cancel = output<void>();\n\n labels = {\n save: this.translate.instant('yuv.sequence-list.template.button.save'),\n saveNew: this.translate.instant('yuv.sequence-list.template.button.saveNew'),\n headline: this.translate.instant('yuv.sequence-list.template.headline'),\n headlineNew: this.translate.instant('yuv.sequence-list.template.headlineNew'),\n errors: {\n maxlength: this.translate.instant('yuv.object-form-element.error.maxlength', { maxLength: this.TEMPLATE_NAME_MAX_LENGTH }),\n forbiddenName: this.translate.instant('yuv.sequence-list.template.errors.forbiddenName')\n }\n };\n\n get formErrors() {\n const errors = this.form.get('templateName')?.errors;\n return errors ? Object.keys(errors).map((k) => (this.labels.errors as any)[k]) : [];\n }\n\n constructor() {\n this.form.statusChanges.pipe(takeUntilDestroyed()).subscribe((res) => {\n if (this.form.dirty && !this.pendingChanges.hasPendingTask(this.pendingTaskId || ' ')) {\n this.pendingTaskId = this.pendingChanges.startTask(this.translate.instant('yuv.sequence-list.template.pending-changes.alert'));\n }\n });\n }\n\n private forbiddenNameValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const forbidden = this.templates\n .filter((t) => t.id !== this.selectedTemplate!.id)\n .map((t) => t.name)\n .includes(control.value);\n return forbidden ? { forbiddenName: { value: control.value } } : null;\n };\n }\n\n selectCurrentEntries() {\n this.selectedTemplate = {\n id: this.CURRENT_ENTRIES_ID,\n name: this.translate.instant('yuv.sequence-list.template.headlineNew'),\n sequence: this.currentEntries() || []\n };\n }\n\n applyTemplate() {\n if (this.selectedTemplate) this.templateSelect.emit(this.selectedTemplate.sequence);\n }\n\n deleteTemplate() {\n this.overlay\n .confirm({\n message: this.translate.instant('yuv.sequence-list.template.remove.confirm.message', {\n template: this.selectedTemplate!.name\n })\n })\n .subscribe((confirmed: boolean) => {\n if (confirmed) {\n this.templates = this.templates.filter((t) => t.id !== this.selectedTemplate!.id);\n this.saveTemplates();\n }\n });\n }\n\n submit() {\n if (this.selectedTemplate) {\n let selectAfterSave: string | undefined;\n if (this.selectedTemplate.id === this.CURRENT_ENTRIES_ID) {\n // save current list as new template\n const id = Utils.uuid();\n this.templates.push({\n id,\n name: this.form.value.templateName,\n sequence: this.form.value.sequence\n });\n selectAfterSave = id;\n } else {\n // update existing template\n const i = this.templates.findIndex((e) => e.id === this.selectedTemplate!.id);\n if (i !== -1) {\n this.templates[i] = {\n id: this.selectedTemplate.id,\n name: this.form.value.templateName,\n sequence: this.form.value.sequence\n };\n selectAfterSave = this.selectedTemplate.id;\n }\n }\n this.saveTemplates(selectAfterSave);\n }\n }\n\n private saveTemplates(templateToBeSelectedAfterSave?: string) {\n this.busy = true;\n this.templates.sort(Utils.sortValues('name', Sort.ASC));\n return this.backend.post(`/users/settings/${this.storageSection}`, { templates: this.templates }).subscribe(\n (res) => {\n this.busy = false;\n this.form.markAsPristine();\n if (this.pendingTaskId) this.pendingChanges.finishTask(this.pendingTaskId);\n\n if (!templateToBeSelectedAfterSave) {\n this.selectedTemplate = undefined;\n } else if (templateToBeSelectedAfterSave !== this.selectedTemplate!.id) {\n this.selectedTemplate = this.templates.find((t) => templateToBeSelectedAfterSave === t.id);\n }\n },\n (err) => (this.busy = false)\n );\n }\n\n private loadTemplates() {\n this.backend.get(`/users/settings/${this.storageSection()}`).subscribe((res) => {\n this.templates = res ? res.templates || [] : [];\n this.templates.sort(Utils.sortValues('name', Sort.ASC));\n this.selectCurrentEntries();\n });\n }\n\n ngOnInit(): void {\n this.loadTemplates();\n }\n}\n","<div class=\"template-list\">\n <header>{{ 'yuv.sequence-list.template-list.headline' | translate }}</header>\n\n <!-- current entries -->\n <div class=\"currententries item\" (click)=\"selectCurrentEntries()\" [ngClass]=\"{ current: selectedTemplate?.id === CURRENT_ENTRIES_ID }\">\n {{ 'yuv.sequence-list.template.headlineNew' | translate }}\n </div>\n\n <div class=\"filter\">\n <yuv-form-input [label]=\"'yuv.sequence-list.form.filter' | translate\">\n <yuv-string [(ngModel)]=\"filterTerm\"> </yuv-string>\n </yuv-form-input>\n </div>\n\n <div class=\"templates\">\n @for (tpl of templates | filter: filterTerm : 'name'; track $index) {\n <div class=\"item\" (click)=\"selectedTemplate = tpl\" [ngClass]=\"{ current: selectedTemplate?.id === tpl.id }\">\n {{ tpl.name }}\n </div>\n }\n </div>\n</div>\n\n@if (selectedTemplate) {\n <form class=\"template\" [formGroup]=\"form\">\n <header>{{ selectedTemplate.id !== CURRENT_ENTRIES_ID ? labels.headline : labels.headlineNew }}</header>\n\n <yuv-form-input [label]=\"'yuv.sequence-list.form.templateName' | translate\" [required]=\"true\" [invalid]=\"!!formErrors.length\">\n <yuv-string [autofocus]=\"true\" [required]=\"true\" formControlName=\"templateName\"> </yuv-string>\n </yuv-form-input>\n @for (e of formErrors; track $index) {\n <div class=\"errors\">{{ e }}</div>\n }\n <yuv-sequence-list disable-duedate=\"true\" formControlName=\"sequence\"> </yuv-sequence-list>\n </form>\n}\n\n<div class=\"buttons\">\n <div class=\"left\">\n <button type=\"button\" class=\"secondary\" (click)=\"cancel.emit()\">{{ 'yuv.sequence-list.template.cancel' | translate }}</button>\n </div>\n\n @if (selectedTemplate) {\n <div class=\"right\">\n @if (selectedTemplate.id !== CURRENT_ENTRIES_ID) {\n <button class=\"secondary delete\" type=\"button\" (click)=\"deleteTemplate()\">\n {{ 'yuv.sequence-list.template.button.delete' | translate }}\n </button>\n\n <button class=\"primary apply\" type=\"button\" [disabled]=\"disableSubmit || form.invalid || form.dirty\" (click)=\"applyTemplate()\">\n {{ 'yuv.sequence-list.template.button.apply' | translate }}\n </button>\n }\n\n <!-- save -->\n <button\n class=\"{{ selectedTemplate.id !== CURRENT_ENTRIES_ID ? 'primary' : 'primary' }} save\"\n (click)=\"submit()\"\n type=\"button\"\n [disabled]=\"disableSubmit || form.invalid || form.pristine\"\n >\n {{ selectedTemplate.id !== CURRENT_ENTRIES_ID ? labels.save : labels.saveNew }}\n </button>\n </div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, inject, input, output, TemplateRef, viewChild, ViewChild } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormBuilder, FormGroup, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ReactiveFormsModule, ValidationErrors, Validator } from '@angular/forms';\nimport { PendingChangesService, TranslateModule } from '@yuuvis/client-core';\nimport { YvcOverlayRef, YvcOverlayService } from '@yuuvis/components/overlay';\nimport { SequenceListTemplateManageComponent } from '../sequence-list-template-manage/sequence-list-template-manage.component';\nimport { SequenceListComponent } from '../sequence-list.component';\nimport { SequenceItem } from '../sequence-list.interface';\n\n/**\n * Task sequence list including templates for sequence lists.\n * Templates are preconfigured lists of tasks and recipients.\n */\n@Component({\n selector: 'yuv-sequence-list-templates',\n standalone: true,\n imports: [CommonModule, FormsModule, ReactiveFormsModule, \n SequenceListComponent, SequenceListTemplateManageComponent, TranslateModule],\n templateUrl: './sequence-list-templates.component.html',\n styleUrls: ['./sequence-list-templates.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SequenceListTemplatesComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SequenceListTemplatesComponent),\n multi: true\n }\n ],\n host: {\n tabindex: '0'\n }\n})\nexport class SequenceListTemplatesComponent implements ControlValueAccessor, Validator {\n private fb = inject(FormBuilder);\n private pendingChanges = inject(PendingChangesService);\n private overlay = inject(YvcOverlayService);\n\n tplTemplateManager = viewChild<TemplateRef<any>>('tplTemplateManager');\n\n form: FormGroup = this.fb.group({\n sequence: [[]]\n });\n private _entries: SequenceItem[] = [];\n get entries() {\n return this._entries;\n }\n oRef?: YvcOverlayRef;\n\n title = input<string>();\n maxLength = input<number>(100);\n templateStorageSection = input.required<string>();\n itemEdit = output<boolean>();\n\n constructor() {\n this.form.valueChanges.pipe(takeUntilDestroyed()).subscribe((res) => {\n this.setEntries(res.sequence, false);\n this.propagate();\n });\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\n propagateChange = (_: any) => {};\n\n private setEntries(e: SequenceItem[], patch: boolean) {\n this._entries = e;\n if (patch)\n this.form.patchValue({\n sequence: e || []\n });\n }\n\n private propagate() {\n this.propagateChange(this.entries);\n }\n\n writeValue(value: SequenceItem[]): void {\n this.setEntries(value || [], true);\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\n registerOnTouched(fn: any): void {}\n\n // TEMPLATES\n openTemplateManager() {\n this.oRef = this.overlay.open(this.tplTemplateManager()!, {\n width: '55%',\n height: '70%'\n });\n this.oRef!.preventClose = () => this.pendingChanges.check();\n }\n\n templateManagerCancel() {\n if (this.oRef) this.oRef.close();\n }\n\n templateManagerSelect(entries: SequenceItem[]) {\n this.setEntries(entries, true);\n if (this.oRef) this.oRef.close();\n }\n\n validate(): ValidationErrors | null {\n return this.form.invalid\n ? {\n sequencelist: { invalid: true }\n }\n : null;\n }\n}\n","<form [formGroup]=\"form\">\n <yuv-sequence-list formControlName=\"sequence\" [maxLength]=\"maxLength()\">\n \n @if (!!templateStorageSection) {\n <button class=\"btn-templates secondary\" (click)=\"openTemplateManager()\">{{ 'yuv.sequence-list.button.templates' | translate }}</button>\n }\n </yuv-sequence-list>\n</form>\n\n<!-- template manager overlay -->\n<ng-template #tplTemplateManager>\n <yuv-sequence-list-template-manage\n (cancel)=\"oRef?.close()\"\n (templateSelect)=\"templateManagerSelect($event)\"\n [storageSection]=\"templateStorageSection() \"\n [currentEntries]=\"entries\"\n >\n </yuv-sequence-list-template-manage>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3"],"mappings":";;;;;;;;;;;;;;;;;;;MAuBa,sBAAsB,CAAA;AAdnC,IAAA,WAAA,GAAA;AAeE,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC7B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAG7C,QAAA,IAAA,CAAA,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAmB,aAAa,CAAC,CAAC;AAElE,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;QAGjC,IAAa,CAAA,aAAA,GAAgB,IAAI,CAAC;AAElC,QAAA,IAAA,CAAA,KAAK,GAAG;YACN,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC;AAGF,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;QAErC,IAAO,CAAA,OAAA,GAAG,MAAM,CAA4B;AAC1C,YAAA,QAAQ,EAAE,IAAI;;AAEf,SAAA,CAAC,CAAC;AAuCH,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAG,CAAC;AAkBlC,KAAA;AA/EC,IAAA,QAAQ,CAA6B;AAErC,IAAA,KAAK,CAAiB;AActB,IAAA,OAAO,CAAoB;AAC3B,IAAA,OAAO,CAA8B;IAOrC,WAAW,GAAA;QACT,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAI;YACxB,OAAO;AACL,gBAAA,GAAG,CAAC;AACJ,gBAAA,MAAM,EAAE;oBACN,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,2CAA2C,CAAC;oBAClF,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,2CAA2C,CAAC;AACnF,oBAAA,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,0CAA0C,CAAC,EAAE;AACxF,iBAAA;AACD,gBAAA,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW;aACnC,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;IAED,YAAY,GAAA;QACV,IAAI,CAAC,IAAI,CAAC,aAAa;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC;AACzD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE;AACxD,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA,CAAC,CAAC;KACJ;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;KACrB;AAED,IAAA,mBAAmB,CAAC,IAAU,EAAA;AAC5B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;AAChC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;AACvB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAClC;AAGD,IAAA,iBAAiB,MAAW;AAE5B,IAAA,UAAU,CAAC,KAAuB,EAAA;AAChC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,IAAI,IAAI,CAAC;KACpC;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC3B;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAkB,KAAI;YAC3D,IAAI,CAAC,WAAW,EAAE,CAAC;AACrB,SAAC,CAAC,CAAC;KACJ;+GA/EU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EARtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAsB,CAAC;AACrD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,ECrBH,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,wmBAiBA,kbDLY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,0HAAE,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAW/D,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAdlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EACnB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,cAAc,CAAC,EAGhE,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,4BAA4B,CAAC;AACrD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,wmBAAA,EAAA,MAAA,EAAA,CAAA,2XAAA,CAAA,EAAA,CAAA;;;AEWH;;AAEG;MAgCU,qBAAqB,CAAA;AAChC,IAAA,GAAG,CAAkC;AAsBrC,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAoC,CAAC;KACxE;AAED,IAAA,WAAA,GAAA;AA1BA,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAIrC;;AAEG;AACH,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,GAAG,CAAC,CAAC;QAC/B,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAE1B,QAAA,IAAA,CAAA,KAAK,GAAG;YACN,MAAM,EAAE,KAAK,CAAC,KAAK;YACnB,GAAG,EAAE,SAAS,CAAC,GAAG;SACnB,CAAC;;AAGF,QAAA,IAAA,CAAA,YAAY,GAAiB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1C,YAAA,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAmB,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;AACxE,SAAA,CAAC,CAAC;QAEH,IAAO,CAAA,OAAA,GAAmB,EAAE,CAAC;AAwC7B,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAG,CAAC;AAjC/B,QAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,MAAK;YACvE,IAAI,CAAC,UAAU,EAAE,CAAC;AACpB,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,qBAAqB,CAAC,YAA2B,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YACpB,KAAK,EAAE,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACvD,YAAA,YAAY,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACxE,YAAA,cAAc,EAAE,CAAC,YAAY,EAAE,cAAc,IAAI,SAAS,CAAC;AAC5D,SAAA,CAAC,CAAC;KACJ;IAED,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED,IAAA,SAAS,CAAC,GAAW,EAAA;AACnB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED,IAAA,UAAU,CAAC,GAAW,EAAA;QACpB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAED,YAAY,GAAA;AACV,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,EAAE,CAAC;KAC9E;AAGD,IAAA,iBAAiB,MAAW;IAE5B,UAAU,GAAA;QACR,MAAM,GAAG,GAAmB,EAAE,CAAC;AAC/B,QAAA,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,IAAS,KAAI;AAC1D,YAAA,MAAM,CAAC,GAAiB;gBACtB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC,CAAC;AACF,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,gBAAA,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;aACxC;AACD,YAAA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACd,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;KAC3B;AAED,IAAA,UAAU,CAAC,KAAqB,EAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7D,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC3B;IAED,QAAQ,GAAA;AACN,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AAC5B,QAAA,MAAM,UAAU,GAAG,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,EAAE,CAAC;QACtE,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC;AAErD,QAAA,OAAO,CAAC,KAAK;AACX,cAAE;AACE,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAG,IAAI,CAAC,YAAY,CAAC,OAAO;AACnC,oBAAA,iBAAiB,EAAE,UAAU;AAC9B,iBAAA;AACF,aAAA;cACD,IAAI,CAAC;KACV;+GAxGU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAhBrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,GAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;AACpD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;AACpD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAQU,qBAAqB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrElC,6/CA6BA,EAAA,MAAA,EAAA,CAAA,koJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDUI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAGf,qBAAqB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAErB,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAoBJ,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBA/BjC,SAAS;+BACE,mBAAmB,EAAA,UAAA,EACjB,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,eAAe;wBACf,kBAAkB;wBAClB,eAAe;wBACf,qBAAqB;wBACrB,sBAAsB;wBACtB,mBAAmB;wBACnB,aAAa;qBACd,EAGU,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC;AACpD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC;AACpD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EACK,IAAA,EAAA;AACJ,wBAAA,QAAQ,EAAE,GAAG;AACd,qBAAA,EAAA,QAAA,EAAA,6/CAAA,EAAA,MAAA,EAAA,CAAA,koJAAA,CAAA,EAAA,CAAA;wDAKiC,YAAY,EAAA,CAAA;sBAA7C,SAAS;uBAAC,qBAAqB,CAAA;;;MEtCrB,mCAAmC,CAAA;IAgB9C,IAAI,gBAAgB,CAAC,CAAmC,EAAA;QACtD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;AAC/B,YAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC;YAElD,IAAI,IAAI,CAAC,iBAAiB;AACxB,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAClB;oBACE,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE,KAAK,IAAI,CAAC,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI;oBACtG,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;AAC/C,iBAAA,EACD,EAAE,SAAS,EAAE,KAAK,EAAE,CACrB,CAAC;AACJ,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;SAC5B;KACF;AACD,IAAA,IAAI,gBAAgB,GAAA;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;KAC/B;AA6BD,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;AACrD,QAAA,OAAO,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,IAAI,CAAC,MAAM,CAAC,MAAc,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KACrF;AAED,IAAA,WAAA,GAAA;AAnEQ,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACjC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAC/C,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AACzB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAErC,IAAgC,CAAA,gCAAA,GAAG,cAAc,CAAC;QAC1D,IAAkB,CAAA,kBAAA,GAAG,SAAS,CAAC;QAC/B,IAAwB,CAAA,wBAAA,GAAG,GAAG,CAAC;QAC/B,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAS,CAAA,SAAA,GAA2B,EAAE,CAAC;QACvC,IAAU,CAAA,UAAA,GAAkB,IAAI,CAAC;QAwBjC,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;AACb,QAAA,IAAA,CAAA,IAAI,GAAc,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC9B,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;AAC7H,YAAA,QAAQ,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACpC,SAAA,CAAC,CAAC;AAEH;;AAEG;AACH,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK,CAAS,IAAI,CAAC,gCAAgC,CAAC,CAAC;AACtE,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK,CAAiB,EAAE,CAAC,CAAC;;QAG3C,IAAc,CAAA,cAAA,GAAG,MAAM,EAAkB,CAAC;QAC1C,IAAM,CAAA,MAAA,GAAG,MAAM,EAAQ,CAAC;AAExB,QAAA,IAAA,CAAA,MAAM,GAAG;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,wCAAwC,CAAC;YACtE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,2CAA2C,CAAC;YAC5E,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,qCAAqC,CAAC;YACvE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,wCAAwC,CAAC;AAC7E,YAAA,MAAM,EAAE;AACN,gBAAA,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,yCAAyC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAC1H,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,iDAAiD,CAAC;AACzF,aAAA;SACF,CAAC;AAQA,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;YACnE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,IAAI,GAAG,CAAC,EAAE;AACrF,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC,CAAC;aAChI;AACH,SAAC,CAAC,CAAC;KACJ;IAEO,sBAAsB,GAAA;QAC5B,OAAO,CAAC,OAAwB,KAA6B;AAC3D,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;AAC7B,iBAAA,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,gBAAiB,CAAC,EAAE,CAAC;iBACjD,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AAClB,iBAAA,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC3B,YAAA,OAAO,SAAS,GAAG,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC;AACxE,SAAC,CAAC;KACH;IAED,oBAAoB,GAAA;QAClB,IAAI,CAAC,gBAAgB,GAAG;YACtB,EAAE,EAAE,IAAI,CAAC,kBAAkB;YAC3B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,wCAAwC,CAAC;AACtE,YAAA,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE;SACtC,CAAC;KACH;IAED,aAAa,GAAA;QACX,IAAI,IAAI,CAAC,gBAAgB;YAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;KACrF;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,OAAO;AACT,aAAA,OAAO,CAAC;YACP,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,mDAAmD,EAAE;AACnF,gBAAA,QAAQ,EAAE,IAAI,CAAC,gBAAiB,CAAC,IAAI;aACtC,CAAC;SACH,CAAC;AACD,aAAA,SAAS,CAAC,CAAC,SAAkB,KAAI;YAChC,IAAI,SAAS,EAAE;gBACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,gBAAiB,CAAC,EAAE,CAAC,CAAC;gBAClF,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;AACH,SAAC,CAAC,CAAC;KACN;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,IAAI,eAAmC,CAAC;YACxC,IAAI,IAAI,CAAC,gBAAgB,CAAC,EAAE,KAAK,IAAI,CAAC,kBAAkB,EAAE;;AAExD,gBAAA,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;AACxB,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBAClB,EAAE;AACF,oBAAA,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY;AAClC,oBAAA,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ;AACnC,iBAAA,CAAC,CAAC;gBACH,eAAe,GAAG,EAAE,CAAC;aACtB;iBAAM;;gBAEL,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,gBAAiB,CAAC,EAAE,CAAC,CAAC;AAC9E,gBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AACZ,oBAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AAClB,wBAAA,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE;AAC5B,wBAAA,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY;AAClC,wBAAA,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ;qBACnC,CAAC;AACF,oBAAA,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;iBAC5C;aACF;AACD,YAAA,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;SACrC;KACF;AAEO,IAAA,aAAa,CAAC,6BAAsC,EAAA;AAC1D,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA,gBAAA,EAAmB,IAAI,CAAC,cAAc,CAAA,CAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CACzG,CAAC,GAAG,KAAI;AACN,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAClB,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,aAAa;gBAAE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAE3E,IAAI,CAAC,6BAA6B,EAAE;AAClC,gBAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;aACnC;iBAAM,IAAI,6BAA6B,KAAK,IAAI,CAAC,gBAAiB,CAAC,EAAE,EAAE;gBACtE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,6BAA6B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aAC5F;AACH,SAAC,EACD,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,CAC7B,CAAC;KACH;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA,gBAAA,EAAmB,IAAI,CAAC,cAAc,EAAE,CAAA,CAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;AAC7E,YAAA,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,GAAG,CAAC,SAAS,IAAI,EAAE,GAAG,EAAE,CAAC;AAChD,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC9B,SAAC,CAAC,CAAC;KACJ;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;+GA1KU,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAnC,mCAAmC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/BhD,umFAkEA,EDlDI,MAAA,EAAA,CAAA,4tEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,8HACZ,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,eAAe,EACf,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,uIAClB,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,WAAW,EAEX,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,qBAAqB,oFACrB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAKN,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAnB/C,SAAS;+BACE,mCAAmC,EAAA,UAAA,EACjC,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,gBAAgB;wBAChB,eAAe;wBACf,kBAAkB;wBAClB,eAAe;wBACf,WAAW;wBACX,YAAY;wBACZ,qBAAqB;wBACrB,cAAc;wBACd,mBAAmB;wBACnB,eAAe;AAChB,qBAAA,EAAA,QAAA,EAAA,umFAAA,EAAA,MAAA,EAAA,CAAA,4tEAAA,CAAA,EAAA,CAAA;;;AEjBH;;;AAGG;MAwBU,8BAA8B,CAAA;AAWzC,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;AAQD,IAAA,WAAA,GAAA;AApBQ,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AACzB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAC/C,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE5C,QAAA,IAAA,CAAA,kBAAkB,GAAG,SAAS,CAAmB,oBAAoB,CAAC,CAAC;AAEvE,QAAA,IAAA,CAAA,IAAI,GAAc,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC9B,QAAQ,EAAE,CAAC,EAAE,CAAC;AACf,SAAA,CAAC,CAAC;QACK,IAAQ,CAAA,QAAA,GAAmB,EAAE,CAAC;QAMtC,IAAK,CAAA,KAAA,GAAG,KAAK,EAAU,CAAC;AACxB,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,GAAG,CAAC,CAAC;AAC/B,QAAA,IAAA,CAAA,sBAAsB,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;QAClD,IAAQ,CAAA,QAAA,GAAG,MAAM,EAAW,CAAC;;AAS7B,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAG,CAAC;AAN/B,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;YAClE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,SAAS,EAAE,CAAC;AACnB,SAAC,CAAC,CAAC;KACJ;IAIO,UAAU,CAAC,CAAiB,EAAE,KAAc,EAAA;AAClD,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClB,QAAA,IAAI,KAAK;AACP,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;gBACnB,QAAQ,EAAE,CAAC,IAAI,EAAE;AAClB,aAAA,CAAC,CAAC;KACN;IAEO,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACpC;AAED,IAAA,UAAU,CAAC,KAAqB,EAAA;QAC9B,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;KACpC;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC3B;;IAGD,iBAAiB,CAAC,EAAO,EAAA,GAAU;;IAGnC,mBAAmB,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAG,EAAE;AACxD,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,MAAM,EAAE,KAAK;AACd,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,IAAK,CAAC,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;KAC7D;IAED,qBAAqB,GAAA;QACnB,IAAI,IAAI,CAAC,IAAI;AAAE,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;KAClC;AAED,IAAA,qBAAqB,CAAC,OAAuB,EAAA;AAC3C,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,IAAI;AAAE,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;KAClC;IAED,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO;AACtB,cAAE;AACE,gBAAA,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAChC,aAAA;cACD,IAAI,CAAC;KACV;+GA7EU,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,EAhB9B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,sBAAA,EAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,GAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,8BAA8B,CAAC;AAC7D,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,8BAA8B,CAAC;AAC7D,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChCH,grBAmBA,EAAA,MAAA,EAAA,CAAA,wCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDFY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtD,qBAAqB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,mCAAmC,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAmBlE,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAvB1C,SAAS;+BACE,6BAA6B,EAAA,UAAA,EAC3B,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB;AACtD,wBAAA,qBAAqB,EAAE,mCAAmC,EAAE,eAAe,CAAC,EAGnE,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,oCAAoC,CAAC;AAC7D,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,oCAAoC,CAAC;AAC7D,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EACK,IAAA,EAAA;AACJ,wBAAA,QAAQ,EAAE,GAAG;AACd,qBAAA,EAAA,QAAA,EAAA,grBAAA,EAAA,MAAA,EAAA,CAAA,wCAAA,CAAA,EAAA,CAAA;;;AEnCH;;AAEG;;;;"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, EventEmitter, Component, Input, Output } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
+
import * as i1 from '@angular/forms';
|
|
5
|
+
import { FormBuilder, ReactiveFormsModule } from '@angular/forms';
|
|
6
|
+
import { SearchService, SystemService, BaseObjectTypeField, Utils } from '@yuuvis/client-core';
|
|
7
|
+
import { IconService } from '@yuuvis/client-framework/icons';
|
|
8
|
+
import * as i2 from '@yuuvis/components/dropdown';
|
|
9
|
+
import { YvcDropdownModule } from '@yuuvis/components/dropdown';
|
|
10
|
+
import * as i3 from '@yuuvis/components/icon';
|
|
11
|
+
import { YvcIconModule } from '@yuuvis/components/icon';
|
|
12
|
+
import { debounceTime, tap } from 'rxjs';
|
|
13
|
+
|
|
14
|
+
class SimpleSearchComponent {
|
|
15
|
+
/**
|
|
16
|
+
* The search query
|
|
17
|
+
*/
|
|
18
|
+
set query(q) {
|
|
19
|
+
this._query = structuredClone(q) || {};
|
|
20
|
+
if (this._query.term) {
|
|
21
|
+
this.form.patchValue({ term: this._query.term });
|
|
22
|
+
// this.aggregate();
|
|
23
|
+
}
|
|
24
|
+
else
|
|
25
|
+
this.form.reset();
|
|
26
|
+
}
|
|
27
|
+
get query() {
|
|
28
|
+
return this._query;
|
|
29
|
+
}
|
|
30
|
+
constructor() {
|
|
31
|
+
this.fb = inject(FormBuilder);
|
|
32
|
+
this.searchService = inject(SearchService);
|
|
33
|
+
this.systemService = inject(SystemService);
|
|
34
|
+
this.iconsService = inject(IconService);
|
|
35
|
+
/**
|
|
36
|
+
* Targets selectable by dropdown (e.g. target object types to search for)
|
|
37
|
+
*/
|
|
38
|
+
this.targets = [];
|
|
39
|
+
this._query = {};
|
|
40
|
+
this.form = this.fb.group({
|
|
41
|
+
term: [''],
|
|
42
|
+
targets: []
|
|
43
|
+
});
|
|
44
|
+
this.icons = {
|
|
45
|
+
search: this.iconsService.getIcon('search') || ''
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Emitted once the user submits the search
|
|
49
|
+
*/
|
|
50
|
+
this.querySubmit = new EventEmitter();
|
|
51
|
+
/**
|
|
52
|
+
* Emitted once selected targets change
|
|
53
|
+
*/
|
|
54
|
+
this.targetSelectionChanged = new EventEmitter();
|
|
55
|
+
this.queryChange = new EventEmitter();
|
|
56
|
+
this.typeAggregation = new EventEmitter();
|
|
57
|
+
this.form.controls['targets'].valueChanges.pipe(takeUntilDestroyed()).subscribe((v) => {
|
|
58
|
+
this._query.types = v;
|
|
59
|
+
this.targetSelectionChanged.emit(v);
|
|
60
|
+
});
|
|
61
|
+
this.form.valueChanges
|
|
62
|
+
.pipe(debounceTime(500), takeUntilDestroyed(), tap((v) => {
|
|
63
|
+
this._query.term = v.term;
|
|
64
|
+
this.queryChange.emit(this._query);
|
|
65
|
+
if (this.typeAggregation.observed)
|
|
66
|
+
this.aggregate();
|
|
67
|
+
}))
|
|
68
|
+
.subscribe();
|
|
69
|
+
}
|
|
70
|
+
search() {
|
|
71
|
+
if (this.form.valid) {
|
|
72
|
+
this._query.term = this.form.value.term;
|
|
73
|
+
this.querySubmit.emit(this._query);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
aggregate(all) {
|
|
77
|
+
if (all || this._query.term) {
|
|
78
|
+
this.searchService.aggregate(structuredClone(this._query), [BaseObjectTypeField.OBJECT_TYPE_ID]).subscribe((res) => {
|
|
79
|
+
this._processAggregateResult(res);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
_processAggregateResult(res) {
|
|
84
|
+
if (res.aggregations && res.aggregations.length) {
|
|
85
|
+
this.typeAggregation.emit(res.aggregations[0].entries
|
|
86
|
+
.map((r) => ({ objectTypeId: r.key, label: this.systemService.getLocalizedLabel(r.key) || r.key, count: r.count }))
|
|
87
|
+
.sort(Utils.sortValues('label')));
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
this.typeAggregation.emit([]);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SimpleSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
94
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SimpleSearchComponent, isStandalone: true, selector: "yuv-simple-search", inputs: { targets: "targets", query: "query" }, outputs: { querySubmit: "querySubmit", targetSelectionChanged: "targetSelectionChanged", queryChange: "queryChange", typeAggregation: "typeAggregation" }, ngImport: i0, template: "<form [formGroup]=\"form\">\n @if (targets.length) {\n <yvc-dropdown formControlName=\"targets\" [multiple]=\"true\" [options]=\"targets\"></yvc-dropdown>\n }\n <input type=\"text\" formControlName=\"term\" />\n\n <!-- TODO: title should be i18n -->\n <button (click)=\"search()\" [disabled]=\"form.invalid\" title=\"Search\">\n <yvc-icon [svg]=\"icons.search\"></yvc-icon>\n </button>\n</form>\n", styles: [":host{--simple-search-icon-size: 18px;display:block;border:1px solid var(--panel-divider-color);background-color:var(--simple-search-background)}:host form{display:flex;flex-wrap:nowrap}:host form input{flex:1;border:0;padding:.25em .5em;color:var(--text-color-body);background-color:transparent}:host form button{flex:0 0 auto;padding:calc(var(--app-pane-padding) / 4);border-radius:2px}:host form button yvc-icon{--icon-size: var(--simple-search-icon-size)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: YvcDropdownModule }, { kind: "component", type: i2.Dropdown, selector: "yvc-dropdown", inputs: ["options", "filter", "disabled", "multiple", "disableClearButton"], outputs: ["onDropdownOptionsClose"] }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i3.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }] }); }
|
|
95
|
+
}
|
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SimpleSearchComponent, decorators: [{
|
|
97
|
+
type: Component,
|
|
98
|
+
args: [{ selector: 'yuv-simple-search', standalone: true, imports: [ReactiveFormsModule, YvcDropdownModule, YvcIconModule], template: "<form [formGroup]=\"form\">\n @if (targets.length) {\n <yvc-dropdown formControlName=\"targets\" [multiple]=\"true\" [options]=\"targets\"></yvc-dropdown>\n }\n <input type=\"text\" formControlName=\"term\" />\n\n <!-- TODO: title should be i18n -->\n <button (click)=\"search()\" [disabled]=\"form.invalid\" title=\"Search\">\n <yvc-icon [svg]=\"icons.search\"></yvc-icon>\n </button>\n</form>\n", styles: [":host{--simple-search-icon-size: 18px;display:block;border:1px solid var(--panel-divider-color);background-color:var(--simple-search-background)}:host form{display:flex;flex-wrap:nowrap}:host form input{flex:1;border:0;padding:.25em .5em;color:var(--text-color-body);background-color:transparent}:host form button{flex:0 0 auto;padding:calc(var(--app-pane-padding) / 4);border-radius:2px}:host form button yvc-icon{--icon-size: var(--simple-search-icon-size)}\n"] }]
|
|
99
|
+
}], ctorParameters: () => [], propDecorators: { targets: [{
|
|
100
|
+
type: Input
|
|
101
|
+
}], query: [{
|
|
102
|
+
type: Input
|
|
103
|
+
}], querySubmit: [{
|
|
104
|
+
type: Output
|
|
105
|
+
}], targetSelectionChanged: [{
|
|
106
|
+
type: Output
|
|
107
|
+
}], queryChange: [{
|
|
108
|
+
type: Output
|
|
109
|
+
}], typeAggregation: [{
|
|
110
|
+
type: Output
|
|
111
|
+
}] } });
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Generated bundle index. Do not edit.
|
|
115
|
+
*/
|
|
116
|
+
|
|
117
|
+
export { SimpleSearchComponent };
|
|
118
|
+
//# sourceMappingURL=yuuvis-client-framework-simple-search.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yuuvis-client-framework-simple-search.mjs","sources":["../../../../../libs/yuuvis/client-framework/simple-search/src/lib/simple-search/simple-search.component.ts","../../../../../libs/yuuvis/client-framework/simple-search/src/lib/simple-search/simple-search.component.html","../../../../../libs/yuuvis/client-framework/simple-search/src/yuuvis-client-framework-simple-search.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormBuilder, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { AggregateResult, BaseObjectTypeField, SearchQuery, SearchService, SystemService, Utils } from '@yuuvis/client-core';\nimport { IconService } from '@yuuvis/client-framework/icons';\nimport { YvcDropdownModule } from '@yuuvis/components/dropdown';\nimport { YvcIconModule } from '@yuuvis/components/icon';\nimport { debounceTime, tap } from 'rxjs';\nimport { SimpleSearchTarget } from './simple-search.interface';\n\nexport interface ObjectTypeAggregation {\n /**\n * id of a found object type\n */\n objectTypeId: string;\n /**\n * label of an object\n */\n label: string;\n /**\n * number of objects found\n */\n count: number;\n}\n\n@Component({\n selector: 'yuv-simple-search',\n standalone: true,\n imports: [ReactiveFormsModule, YvcDropdownModule, YvcIconModule],\n templateUrl: './simple-search.component.html',\n styleUrls: ['./simple-search.component.scss']\n})\nexport class SimpleSearchComponent {\n private fb = inject(FormBuilder);\n private searchService = inject(SearchService);\n private systemService = inject(SystemService);\n private iconsService = inject(IconService);\n\n /**\n * Targets selectable by dropdown (e.g. target object types to search for)\n */\n @Input() targets: SimpleSearchTarget[] = [];\n private _query: SearchQuery = {};\n /**\n * The search query\n */\n @Input() set query(q: SearchQuery | null) {\n this._query = structuredClone(q) || {};\n if (this._query.term) {\n this.form.patchValue({ term: this._query.term });\n // this.aggregate();\n } else this.form.reset();\n }\n get query() {\n return this._query;\n }\n\n form: FormGroup = this.fb.group({\n term: [''],\n targets: []\n });\n\n icons = {\n search: this.iconsService.getIcon('search') || ''\n };\n\n /**\n * Emitted once the user submits the search\n */\n @Output() querySubmit = new EventEmitter<SearchQuery>();\n /**\n * Emitted once selected targets change\n */\n @Output() targetSelectionChanged = new EventEmitter<(string | number)[]>();\n @Output() queryChange = new EventEmitter<SearchQuery>();\n @Output() typeAggregation = new EventEmitter<ObjectTypeAggregation[]>();\n\n constructor() {\n this.form.controls['targets'].valueChanges.pipe(takeUntilDestroyed()).subscribe((v) => {\n this._query.types = v;\n this.targetSelectionChanged.emit(v);\n });\n this.form.valueChanges\n .pipe(\n debounceTime(500),\n takeUntilDestroyed(),\n tap((v: any) => {\n this._query.term = v.term;\n this.queryChange.emit(this._query);\n if (this.typeAggregation.observed) this.aggregate();\n })\n )\n .subscribe();\n }\n\n search() {\n if (this.form.valid) {\n this._query.term = this.form.value.term;\n this.querySubmit.emit(this._query);\n }\n }\n\n aggregate(all?: boolean) {\n if (all || this._query.term) {\n this.searchService.aggregate(structuredClone(this._query), [BaseObjectTypeField.OBJECT_TYPE_ID]).subscribe((res: AggregateResult) => {\n this._processAggregateResult(res);\n });\n }\n }\n\n private _processAggregateResult(res: AggregateResult) {\n if (res.aggregations && res.aggregations.length) {\n this.typeAggregation.emit(\n res.aggregations[0].entries\n .map((r) => ({ objectTypeId: r.key, label: this.systemService.getLocalizedLabel(r.key) || r.key, count: r.count }))\n .sort(Utils.sortValues('label'))\n );\n } else {\n this.typeAggregation.emit([]);\n }\n }\n}\n","<form [formGroup]=\"form\">\n @if (targets.length) {\n <yvc-dropdown formControlName=\"targets\" [multiple]=\"true\" [options]=\"targets\"></yvc-dropdown>\n }\n <input type=\"text\" formControlName=\"term\" />\n\n <!-- TODO: title should be i18n -->\n <button (click)=\"search()\" [disabled]=\"form.invalid\" title=\"Search\">\n <yvc-icon [svg]=\"icons.search\"></yvc-icon>\n </button>\n</form>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|