@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,111 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, inject } from '@angular/core';
|
|
2
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { FormBuilder, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { BaseObjectTypeField, SearchService, SystemService, Utils } from '@yuuvis/client-core';
|
|
5
|
+
import { IconService } from '@yuuvis/client-framework/icons';
|
|
6
|
+
import { YvcDropdownModule } from '@yuuvis/components/dropdown';
|
|
7
|
+
import { YvcIconModule } from '@yuuvis/components/icon';
|
|
8
|
+
import { debounceTime, tap } from 'rxjs';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/forms";
|
|
11
|
+
import * as i2 from "@yuuvis/components/dropdown";
|
|
12
|
+
import * as i3 from "@yuuvis/components/icon";
|
|
13
|
+
export class SimpleSearchComponent {
|
|
14
|
+
/**
|
|
15
|
+
* The search query
|
|
16
|
+
*/
|
|
17
|
+
set query(q) {
|
|
18
|
+
this._query = structuredClone(q) || {};
|
|
19
|
+
if (this._query.term) {
|
|
20
|
+
this.form.patchValue({ term: this._query.term });
|
|
21
|
+
// this.aggregate();
|
|
22
|
+
}
|
|
23
|
+
else
|
|
24
|
+
this.form.reset();
|
|
25
|
+
}
|
|
26
|
+
get query() {
|
|
27
|
+
return this._query;
|
|
28
|
+
}
|
|
29
|
+
constructor() {
|
|
30
|
+
this.fb = inject(FormBuilder);
|
|
31
|
+
this.searchService = inject(SearchService);
|
|
32
|
+
this.systemService = inject(SystemService);
|
|
33
|
+
this.iconsService = inject(IconService);
|
|
34
|
+
/**
|
|
35
|
+
* Targets selectable by dropdown (e.g. target object types to search for)
|
|
36
|
+
*/
|
|
37
|
+
this.targets = [];
|
|
38
|
+
this._query = {};
|
|
39
|
+
this.form = this.fb.group({
|
|
40
|
+
term: [''],
|
|
41
|
+
targets: []
|
|
42
|
+
});
|
|
43
|
+
this.icons = {
|
|
44
|
+
search: this.iconsService.getIcon('search') || ''
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Emitted once the user submits the search
|
|
48
|
+
*/
|
|
49
|
+
this.querySubmit = new EventEmitter();
|
|
50
|
+
/**
|
|
51
|
+
* Emitted once selected targets change
|
|
52
|
+
*/
|
|
53
|
+
this.targetSelectionChanged = new EventEmitter();
|
|
54
|
+
this.queryChange = new EventEmitter();
|
|
55
|
+
this.typeAggregation = new EventEmitter();
|
|
56
|
+
this.form.controls['targets'].valueChanges.pipe(takeUntilDestroyed()).subscribe((v) => {
|
|
57
|
+
this._query.types = v;
|
|
58
|
+
this.targetSelectionChanged.emit(v);
|
|
59
|
+
});
|
|
60
|
+
this.form.valueChanges
|
|
61
|
+
.pipe(debounceTime(500), takeUntilDestroyed(), tap((v) => {
|
|
62
|
+
this._query.term = v.term;
|
|
63
|
+
this.queryChange.emit(this._query);
|
|
64
|
+
if (this.typeAggregation.observed)
|
|
65
|
+
this.aggregate();
|
|
66
|
+
}))
|
|
67
|
+
.subscribe();
|
|
68
|
+
}
|
|
69
|
+
search() {
|
|
70
|
+
if (this.form.valid) {
|
|
71
|
+
this._query.term = this.form.value.term;
|
|
72
|
+
this.querySubmit.emit(this._query);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
aggregate(all) {
|
|
76
|
+
if (all || this._query.term) {
|
|
77
|
+
this.searchService.aggregate(structuredClone(this._query), [BaseObjectTypeField.OBJECT_TYPE_ID]).subscribe((res) => {
|
|
78
|
+
this._processAggregateResult(res);
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
_processAggregateResult(res) {
|
|
83
|
+
if (res.aggregations && res.aggregations.length) {
|
|
84
|
+
this.typeAggregation.emit(res.aggregations[0].entries
|
|
85
|
+
.map((r) => ({ objectTypeId: r.key, label: this.systemService.getLocalizedLabel(r.key) || r.key, count: r.count }))
|
|
86
|
+
.sort(Utils.sortValues('label')));
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
this.typeAggregation.emit([]);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SimpleSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
93
|
+
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"] }] }); }
|
|
94
|
+
}
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SimpleSearchComponent, decorators: [{
|
|
96
|
+
type: Component,
|
|
97
|
+
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"] }]
|
|
98
|
+
}], ctorParameters: () => [], propDecorators: { targets: [{
|
|
99
|
+
type: Input
|
|
100
|
+
}], query: [{
|
|
101
|
+
type: Input
|
|
102
|
+
}], querySubmit: [{
|
|
103
|
+
type: Output
|
|
104
|
+
}], targetSelectionChanged: [{
|
|
105
|
+
type: Output
|
|
106
|
+
}], queryChange: [{
|
|
107
|
+
type: Output
|
|
108
|
+
}], typeAggregation: [{
|
|
109
|
+
type: Output
|
|
110
|
+
}] } });
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3NpbXBsZS1zZWFyY2gvc3JjL2xpYi9zaW1wbGUtc2VhcmNoL3NpbXBsZS1zZWFyY2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9zaW1wbGUtc2VhcmNoL3NyYy9saWIvc2ltcGxlLXNlYXJjaC9zaW1wbGUtc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQWEsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQW1CLG1CQUFtQixFQUFlLGFBQWEsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0gsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUF5QnpDLE1BQU0sT0FBTyxxQkFBcUI7SUFXaEM7O09BRUc7SUFDSCxJQUFhLEtBQUssQ0FBQyxDQUFxQjtRQUN0QyxJQUFJLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENB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Qzt3REFhdkQsT0FBTztzQkFBZixLQUFLO2dCQUtPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBdUJJLFdBQVc7c0JBQXBCLE1BQU07Z0JBSUcsc0JBQXNCO3NCQUEvQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBZ2dyZWdhdGVSZXN1bHQsIEJhc2VPYmplY3RUeXBlRmllbGQsIFNlYXJjaFF1ZXJ5LCBTZWFyY2hTZXJ2aWNlLCBTeXN0ZW1TZXJ2aWNlLCBVdGlscyB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgSWNvblNlcnZpY2UgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvaWNvbnMnO1xuaW1wb3J0IHsgWXZjRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgWXZjSWNvbk1vZHVsZSB9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTaW1wbGVTZWFyY2hUYXJnZXQgfSBmcm9tICcuL3NpbXBsZS1zZWFyY2guaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBPYmplY3RUeXBlQWdncmVnYXRpb24ge1xuICAvKipcbiAgICogaWQgb2YgYSBmb3VuZCBvYmplY3QgdHlwZVxuICAgKi9cbiAgb2JqZWN0VHlwZUlkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBsYWJlbCBvZiBhbiBvYmplY3RcbiAgICovXG4gIGxhYmVsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBudW1iZXIgb2Ygb2JqZWN0cyBmb3VuZFxuICAgKi9cbiAgY291bnQ6IG51bWJlcjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneXV2LXNpbXBsZS1zZWFyY2gnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgWXZjRHJvcGRvd25Nb2R1bGUsIFl2Y0ljb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2ltcGxlLXNlYXJjaC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NpbXBsZS1zZWFyY2guY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTaW1wbGVTZWFyY2hDb21wb25lbnQge1xuICBwcml2YXRlIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcbiAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlID0gaW5qZWN0KFNlYXJjaFNlcnZpY2UpO1xuICBwcml2YXRlIHN5c3RlbVNlcnZpY2UgPSBpbmplY3QoU3lzdGVtU2VydmljZSk7XG4gIHByaXZhdGUgaWNvbnNTZXJ2aWNlID0gaW5qZWN0KEljb25TZXJ2aWNlKTtcblxuICAvKipcbiAgICogVGFyZ2V0cyBzZWxlY3RhYmxlIGJ5IGRyb3Bkb3duIChlLmcuIHRhcmdldCBvYmplY3QgdHlwZXMgdG8gc2VhcmNoIGZvcilcbiAgICovXG4gIEBJbnB1dCgpIHRhcmdldHM6IFNpbXBsZVNlYXJjaFRhcmdldFtdID0gW107XG4gIHByaXZhdGUgX3F1ZXJ5OiBTZWFyY2hRdWVyeSA9IHt9O1xuICAvKipcbiAgICogVGhlIHNlYXJjaCBxdWVyeVxuICAgKi9cbiAgQElucHV0KCkgc2V0IHF1ZXJ5KHE6IFNlYXJjaFF1ZXJ5IHwgbnVsbCkge1xuICAgIHRoaXMuX3F1ZXJ5ID0gc3RydWN0dXJlZENsb25lKHEpIHx8IHt9O1xuICAgIGlmICh0aGlzLl9xdWVyeS50ZXJtKSB7XG4gICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IHRlcm06IHRoaXMuX3F1ZXJ5LnRlcm0gfSk7XG4gICAgICAvLyB0aGlzLmFnZ3JlZ2F0ZSgpO1xuICAgIH0gZWxzZSB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgfVxuICBnZXQgcXVlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5O1xuICB9XG5cbiAgZm9ybTogRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgdGVybTogWycnXSxcbiAgICB0YXJnZXRzOiBbXVxuICB9KTtcblxuICBpY29ucyA9IHtcbiAgICBzZWFyY2g6IHRoaXMuaWNvbnNTZXJ2aWNlLmdldEljb24oJ3NlYXJjaCcpIHx8ICcnXG4gIH07XG5cbiAgLyoqXG4gICAqIEVtaXR0ZWQgb25jZSB0aGUgdXNlciBzdWJtaXRzIHRoZSBzZWFyY2hcbiAgICovXG4gIEBPdXRwdXQoKSBxdWVyeVN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoUXVlcnk+KCk7XG4gIC8qKlxuICAgKiBFbWl0dGVkIG9uY2Ugc2VsZWN0ZWQgdGFyZ2V0cyBjaGFuZ2VcbiAgICovXG4gIEBPdXRwdXQoKSB0YXJnZXRTZWxlY3Rpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjwoc3RyaW5nIHwgbnVtYmVyKVtdPigpO1xuICBAT3V0cHV0KCkgcXVlcnlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNlYXJjaFF1ZXJ5PigpO1xuICBAT3V0cHV0KCkgdHlwZUFnZ3JlZ2F0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxPYmplY3RUeXBlQWdncmVnYXRpb25bXT4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmZvcm0uY29udHJvbHNbJ3RhcmdldHMnXS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCh2KSA9PiB7XG4gICAgICB0aGlzLl9xdWVyeS50eXBlcyA9IHY7XG4gICAgICB0aGlzLnRhcmdldFNlbGVjdGlvbkNoYW5nZWQuZW1pdCh2KTtcbiAgICB9KTtcbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDUwMCksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgICB0YXAoKHY6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuX3F1ZXJ5LnRlcm0gPSB2LnRlcm07XG4gICAgICAgICAgdGhpcy5xdWVyeUNoYW5nZS5lbWl0KHRoaXMuX3F1ZXJ5KTtcbiAgICAgICAgICBpZiAodGhpcy50eXBlQWdncmVnYXRpb24ub2JzZXJ2ZWQpIHRoaXMuYWdncmVnYXRlKCk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBzZWFyY2goKSB7XG4gICAgaWYgKHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5fcXVlcnkudGVybSA9IHRoaXMuZm9ybS52YWx1ZS50ZXJtO1xuICAgICAgdGhpcy5xdWVyeVN1Ym1pdC5lbWl0KHRoaXMuX3F1ZXJ5KTtcbiAgICB9XG4gIH1cblxuICBhZ2dyZWdhdGUoYWxsPzogYm9vbGVhbikge1xuICAgIGlmIChhbGwgfHwgdGhpcy5fcXVlcnkudGVybSkge1xuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmFnZ3JlZ2F0ZShzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5fcXVlcnkpLCBbQmFzZU9iamVjdFR5cGVGaWVsZC5PQkpFQ1RfVFlQRV9JRF0pLnN1YnNjcmliZSgocmVzOiBBZ2dyZWdhdGVSZXN1bHQpID0+IHtcbiAgICAgICAgdGhpcy5fcHJvY2Vzc0FnZ3JlZ2F0ZVJlc3VsdChyZXMpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcHJvY2Vzc0FnZ3JlZ2F0ZVJlc3VsdChyZXM6IEFnZ3JlZ2F0ZVJlc3VsdCkge1xuICAgIGlmIChyZXMuYWdncmVnYXRpb25zICYmIHJlcy5hZ2dyZWdhdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnR5cGVBZ2dyZWdhdGlvbi5lbWl0KFxuICAgICAgICByZXMuYWdncmVnYXRpb25zWzBdLmVudHJpZXNcbiAgICAgICAgICAubWFwKChyKSA9PiAoeyBvYmplY3RUeXBlSWQ6IHIua2V5LCBsYWJlbDogdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldExvY2FsaXplZExhYmVsKHIua2V5KSB8fCByLmtleSwgY291bnQ6IHIuY291bnQgfSkpXG4gICAgICAgICAgLnNvcnQoVXRpbHMuc29ydFZhbHVlcygnbGFiZWwnKSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudHlwZUFnZ3JlZ2F0aW9uLmVtaXQoW10pO1xuICAgIH1cbiAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gIEBpZiAodGFyZ2V0cy5sZW5ndGgpIHtcbiAgICA8eXZjLWRyb3Bkb3duIGZvcm1Db250cm9sTmFtZT1cInRhcmdldHNcIiBbbXVsdGlwbGVdPVwidHJ1ZVwiIFtvcHRpb25zXT1cInRhcmdldHNcIj48L3l2Yy1kcm9wZG93bj5cbiAgfVxuICA8aW5wdXQgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJ0ZXJtXCIgLz5cblxuICA8IS0tIFRPRE86IHRpdGxlIHNob3VsZCBiZSBpMThuIC0tPlxuICA8YnV0dG9uIChjbGljayk9XCJzZWFyY2goKVwiIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWRcIiB0aXRsZT1cIlNlYXJjaFwiPlxuICAgIDx5dmMtaWNvbiBbc3ZnXT1cImljb25zLnNlYXJjaFwiPjwveXZjLWljb24+XG4gIDwvYnV0dG9uPlxuPC9mb3JtPlxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXNlYXJjaC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3NpbXBsZS1zZWFyY2gvc3JjL2xpYi9zaW1wbGUtc2VhcmNoL3NpbXBsZS1zZWFyY2guaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNpbXBsZVNlYXJjaFRhcmdldCB7XG4gICAgdmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbiAgICBsYWJlbDogc3RyaW5nO1xufSJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXV1dmlzLWNsaWVudC1mcmFtZXdvcmstc2ltcGxlLXNlYXJjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvc2ltcGxlLXNlYXJjaC9zcmMveXV1dmlzLWNsaWVudC1mcmFtZXdvcmstc2ltcGxlLXNlYXJjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './lib/tile-list/tile-list.interface';
|
|
2
|
+
export * from './lib/tile-list/tile-list.component';
|
|
3
|
+
export * from './lib/tile/tile.component';
|
|
4
|
+
export * from './lib/tile-config/tile-config.component';
|
|
5
|
+
export * from './lib/tile-config/property-select/property-select.component';
|
|
6
|
+
export * from './lib/tile-config/tile-config-trigger/tile-config-trigger.component';
|
|
7
|
+
export * from './lib/tile-config/action-select/action-select.component';
|
|
8
|
+
export * from './lib/tile-extension/tile-extension.service';
|
|
9
|
+
export * from './lib/tile-extension/directive/tile-extension.directive';
|
|
10
|
+
export * from './lib/tile-extension/extensions/email.extension';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3RpbGUtbGlzdC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsMkJBQTJCLENBQUM7QUFFMUMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyx5REFBeUQsQ0FBQztBQUV4RSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyxpREFBaUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3RpbGUtbGlzdC90aWxlLWxpc3QuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RpbGUtbGlzdC90aWxlLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RpbGUvdGlsZS5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi90aWxlLWNvbmZpZy90aWxlLWNvbmZpZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGlsZS1jb25maWcvcHJvcGVydHktc2VsZWN0L3Byb3BlcnR5LXNlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGlsZS1jb25maWcvdGlsZS1jb25maWctdHJpZ2dlci90aWxlLWNvbmZpZy10cmlnZ2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90aWxlLWNvbmZpZy9hY3Rpb24tc2VsZWN0L2FjdGlvbi1zZWxlY3QuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGlsZS1leHRlbnNpb24vdGlsZS1leHRlbnNpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90aWxlLWV4dGVuc2lvbi9kaXJlY3RpdmUvdGlsZS1leHRlbnNpb24uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RpbGUtZXh0ZW5zaW9uL2V4dGVuc2lvbnMvZW1haWwuZXh0ZW5zaW9uJztcblxuIl19
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Component, ElementRef, computed, inject, input } from '@angular/core';
|
|
2
|
+
import { DmsService } from '@yuuvis/client-core';
|
|
3
|
+
import { ActionsService } from '@yuuvis/client-framework/actions';
|
|
4
|
+
import { RendererDirective } from '@yuuvis/client-framework/renderer';
|
|
5
|
+
import { YvcIconModule } from '@yuuvis/components/icon';
|
|
6
|
+
import { switchMap } from 'rxjs';
|
|
7
|
+
import { TileExtensionDirective } from '../tile-extension/directive/tile-extension.directive';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@yuuvis/components/icon";
|
|
10
|
+
export class TileComponent {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.elRef = inject(ElementRef);
|
|
13
|
+
this.dmsService = inject(DmsService);
|
|
14
|
+
this.actionService = inject(ActionsService);
|
|
15
|
+
this.tile = input.required();
|
|
16
|
+
this.actionContext = input();
|
|
17
|
+
this.actions = computed(() => {
|
|
18
|
+
const actionsList = [];
|
|
19
|
+
if (this.tile().actions?.length) {
|
|
20
|
+
this.tile().actions?.forEach((a) => {
|
|
21
|
+
const aa = this.actionService.getActionById(a.id, this.actionContext());
|
|
22
|
+
if (aa)
|
|
23
|
+
actionsList.push(aa);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
return actionsList;
|
|
27
|
+
});
|
|
28
|
+
this.rendererInputs = computed(() => {
|
|
29
|
+
return {
|
|
30
|
+
icon: this.tile().icon,
|
|
31
|
+
title: this.tile().title,
|
|
32
|
+
description: this.tile().description,
|
|
33
|
+
meta: this.tile().meta,
|
|
34
|
+
aside: this.tile().aside
|
|
35
|
+
};
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
executeAction(a, evt) {
|
|
39
|
+
evt.preventDefault();
|
|
40
|
+
evt.stopPropagation();
|
|
41
|
+
this.dmsService
|
|
42
|
+
.getDmsObject(this.tile().id)
|
|
43
|
+
.pipe(switchMap((o) => a.run([o])))
|
|
44
|
+
.subscribe();
|
|
45
|
+
}
|
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TileComponent, isStandalone: true, selector: "yuv-tile", inputs: { tile: { classPropertyName: "tile", publicName: "tile", isSignal: true, isRequired: true, transformFunction: null }, actionContext: { classPropertyName: "actionContext", publicName: "actionContext", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div data-slot=\"icon\">\n <ng-container *yuvRenderer=\"rendererInputs().icon\"></ng-container>\n</div>\n\n<div class=\"slots\">\n <div data-slot=\"title\">\n <ng-container *yuvRenderer=\"rendererInputs().title\"></ng-container>\n </div>\n \n <div data-slot=\"actions\">\n @for (a of actions(); track a.id) {\n <button [title]=\"a.label\" (click)=\"executeAction(a, $event)\"><yvc-icon [svg]=\"a.icon\"></yvc-icon></button>\n }\n </div>\n \n <div data-slot=\"description\">\n <ng-container *yuvRenderer=\"rendererInputs().description\"></ng-container>\n </div>\n \n <div data-slot=\"aside\">\n <ng-container *yuvRenderer=\"rendererInputs().aside\"></ng-container>\n </div>\n \n <div data-slot=\"meta\">\n <ng-container *yuvRenderer=\"rendererInputs().meta\"></ng-container>\n </div>\n \n <div data-slot=\"badges\">{{ tile().badges }}</div>\n \n <div class=\"extension\">\n <ng-container *yuvTileExtension=\"{ typeId: tile().objectTypeId, data: tile().instanceData }\"></ng-container>\n </div>\n</div>\n", styles: [":host{--_tile-background: var(--tile-background, transparent);--_tile-icon-fill: var(--tile-icon-fill, currentColor);--_tile-padding: var(--tile-padding, var(--app-pane-padding));--_tile-action-icon-size: var(--tile-action-icon-size);--_tile-icon-size: var(--tile-icon-size);--_transition-duration: var(--transition-duration, .1s);display:flex;align-items:center;background-color:var(--_tile-background);padding:var(--_tile-padding);transition:background-color var(--_transition-duration)}:host .slots{display:grid;grid-template-rows:repeat(4,auto);grid-template-columns:1fr repeat(2,auto);grid-template-areas:\"title title actions\" \"description aside aside\" \"meta meta badges\" \"ext ext ext\";flex:1}:host [data-slot]{align-items:center;-webkit-user-select:none;user-select:none;display:grid}:host [data-slot=icon]{--icon-renderer-icon-size: var(--_tile-icon-size);color:var(--_tile-icon-fill);width:3rem;grid-area:icon;display:flex;align-items:center;justify-content:center}:host [data-slot=title]{font-weight:700;grid-area:title}:host [data-slot=description]{grid-area:description}:host [data-slot=meta]{grid-area:meta}:host [data-slot=aside]{flex:0 0 auto;grid-area:aside}:host [data-slot=actions]{opacity:0;transition:opacity var(--_transition-duration);pointer-events:none}:host:hover [data-slot=actions]{opacity:1;pointer-events:all}:host [data-slot=actions]{grid-area:actions;flex:0 0 auto;display:flex;align-items:start}:host [data-slot=actions] button{padding:0;gap:2px}:host [data-slot=actions] button yvc-icon{--icon-size: var(--_tile-action-icon-size)}:host [data-slot=badges]{grid-area:badges;justify-self:end;flex:0 0 auto}:host .extension{grid-area:ext}\n"], dependencies: [{ kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i1.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "directive", type: RendererDirective, selector: "[yuvRenderer]", inputs: ["yuvRenderer"] }, { kind: "directive", type: TileExtensionDirective, selector: "[yuvTileExtension]", inputs: ["yuvTileExtension"] }] }); }
|
|
48
|
+
}
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TileComponent, decorators: [{
|
|
50
|
+
type: Component,
|
|
51
|
+
args: [{ selector: 'yuv-tile', standalone: true, imports: [YvcIconModule, RendererDirective, TileExtensionDirective], template: "<div data-slot=\"icon\">\n <ng-container *yuvRenderer=\"rendererInputs().icon\"></ng-container>\n</div>\n\n<div class=\"slots\">\n <div data-slot=\"title\">\n <ng-container *yuvRenderer=\"rendererInputs().title\"></ng-container>\n </div>\n \n <div data-slot=\"actions\">\n @for (a of actions(); track a.id) {\n <button [title]=\"a.label\" (click)=\"executeAction(a, $event)\"><yvc-icon [svg]=\"a.icon\"></yvc-icon></button>\n }\n </div>\n \n <div data-slot=\"description\">\n <ng-container *yuvRenderer=\"rendererInputs().description\"></ng-container>\n </div>\n \n <div data-slot=\"aside\">\n <ng-container *yuvRenderer=\"rendererInputs().aside\"></ng-container>\n </div>\n \n <div data-slot=\"meta\">\n <ng-container *yuvRenderer=\"rendererInputs().meta\"></ng-container>\n </div>\n \n <div data-slot=\"badges\">{{ tile().badges }}</div>\n \n <div class=\"extension\">\n <ng-container *yuvTileExtension=\"{ typeId: tile().objectTypeId, data: tile().instanceData }\"></ng-container>\n </div>\n</div>\n", styles: [":host{--_tile-background: var(--tile-background, transparent);--_tile-icon-fill: var(--tile-icon-fill, currentColor);--_tile-padding: var(--tile-padding, var(--app-pane-padding));--_tile-action-icon-size: var(--tile-action-icon-size);--_tile-icon-size: var(--tile-icon-size);--_transition-duration: var(--transition-duration, .1s);display:flex;align-items:center;background-color:var(--_tile-background);padding:var(--_tile-padding);transition:background-color var(--_transition-duration)}:host .slots{display:grid;grid-template-rows:repeat(4,auto);grid-template-columns:1fr repeat(2,auto);grid-template-areas:\"title title actions\" \"description aside aside\" \"meta meta badges\" \"ext ext ext\";flex:1}:host [data-slot]{align-items:center;-webkit-user-select:none;user-select:none;display:grid}:host [data-slot=icon]{--icon-renderer-icon-size: var(--_tile-icon-size);color:var(--_tile-icon-fill);width:3rem;grid-area:icon;display:flex;align-items:center;justify-content:center}:host [data-slot=title]{font-weight:700;grid-area:title}:host [data-slot=description]{grid-area:description}:host [data-slot=meta]{grid-area:meta}:host [data-slot=aside]{flex:0 0 auto;grid-area:aside}:host [data-slot=actions]{opacity:0;transition:opacity var(--_transition-duration);pointer-events:none}:host:hover [data-slot=actions]{opacity:1;pointer-events:all}:host [data-slot=actions]{grid-area:actions;flex:0 0 auto;display:flex;align-items:start}:host [data-slot=actions] button{padding:0;gap:2px}:host [data-slot=actions] button yvc-icon{--icon-size: var(--_tile-action-icon-size)}:host [data-slot=badges]{grid-area:badges;justify-self:end;flex:0 0 auto}:host .extension{grid-area:ext}\n"] }]
|
|
52
|
+
}] });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3RpbGUtbGlzdC9zcmMvbGliL3RpbGUvdGlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3RpbGUtbGlzdC9zcmMvbGliL3RpbGUvdGlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWEsVUFBVSxFQUFzQixNQUFNLHFCQUFxQixDQUFDO0FBQ2hGLE9BQU8sRUFBeUIsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0RBQXNELENBQUM7OztBQVU5RixNQUFNLE9BQU8sYUFBYTtJQVAxQjtRQVFFLFVBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUUvQyxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBWSxDQUFDO1FBQ2xDLGtCQUFhLEdBQUcsS0FBSyxFQUFpQixDQUFDO1FBRXZDLFlBQU8sR0FBRyxRQUFRLENBQVcsR0FBRyxFQUFFO1lBQ2hDLE1BQU0sV0FBVyxHQUFhLEVBQUUsQ0FBQztZQUNqQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBcUIsRUFBRSxFQUFFO29CQUNyRCxNQUFNLEVBQUUsR0FBdUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztvQkFDNUYsSUFBSSxFQUFFO3dCQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsbUJBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzdCLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJO2dCQUN0QixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUs7Z0JBQ3hCLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVztnQkFDcEMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJO2dCQUN0QixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUs7YUFDekIsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0tBV0o7SUFUQyxhQUFhLENBQUMsQ0FBUyxFQUFFLEdBQVU7UUFDakMsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV0QixJQUFJLENBQUMsVUFBVTthQUNaLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO2FBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDN0MsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQzsrR0FwQ1UsYUFBYTttR0FBYixhQUFhLG9WQ2hCMUIsMGhDQWlDQSxxc0REckJZLGFBQWEsK0hBQUUsaUJBQWlCLG1GQUFFLHNCQUFzQjs7NEZBSXZELGFBQWE7a0JBUHpCLFNBQVM7K0JBQ0UsVUFBVSxjQUNSLElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERtc09iamVjdCwgRG1zU2VydmljZSwgT2JqZWN0Q29uZmlnQWN0aW9uIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBBY3Rpb24sIEFjdGlvbkNvbnRleHQsIEFjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2FjdGlvbnMnO1xuaW1wb3J0IHsgUmVuZGVyZXJEaXJlY3RpdmUgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvcmVuZGVyZXInO1xuaW1wb3J0IHsgWXZjSWNvbk1vZHVsZSB9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGlsZUV4dGVuc2lvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL3RpbGUtZXh0ZW5zaW9uL2RpcmVjdGl2ZS90aWxlLWV4dGVuc2lvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGlsZURhdGEgfSBmcm9tICcuLi90aWxlLWxpc3QvdGlsZS1saXN0LmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3l1di10aWxlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1l2Y0ljb25Nb2R1bGUsIFJlbmRlcmVyRGlyZWN0aXZlLCBUaWxlRXh0ZW5zaW9uRGlyZWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGlsZS5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgVGlsZUNvbXBvbmVudCB7XG4gIGVsUmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIGRtc1NlcnZpY2UgPSBpbmplY3QoRG1zU2VydmljZSk7XG4gIHByaXZhdGUgYWN0aW9uU2VydmljZSA9IGluamVjdChBY3Rpb25zU2VydmljZSk7XG5cbiAgdGlsZSA9IGlucHV0LnJlcXVpcmVkPFRpbGVEYXRhPigpO1xuICBhY3Rpb25Db250ZXh0ID0gaW5wdXQ8QWN0aW9uQ29udGV4dD4oKTtcblxuICBhY3Rpb25zID0gY29tcHV0ZWQ8QWN0aW9uW10+KCgpID0+IHtcbiAgICBjb25zdCBhY3Rpb25zTGlzdDogQWN0aW9uW10gPSBbXTtcbiAgICBpZiAodGhpcy50aWxlKCkuYWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLnRpbGUoKS5hY3Rpb25zPy5mb3JFYWNoKChhOiBPYmplY3RDb25maWdBY3Rpb24pID0+IHtcbiAgICAgICAgY29uc3QgYWE6IEFjdGlvbiB8IHVuZGVmaW5lZCA9IHRoaXMuYWN0aW9uU2VydmljZS5nZXRBY3Rpb25CeUlkKGEuaWQsIHRoaXMuYWN0aW9uQ29udGV4dCgpKTtcbiAgICAgICAgaWYgKGFhKSBhY3Rpb25zTGlzdC5wdXNoKGFhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gYWN0aW9uc0xpc3Q7XG4gIH0pO1xuICByZW5kZXJlcklucHV0cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaWNvbjogdGhpcy50aWxlKCkuaWNvbixcbiAgICAgIHRpdGxlOiB0aGlzLnRpbGUoKS50aXRsZSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLnRpbGUoKS5kZXNjcmlwdGlvbixcbiAgICAgIG1ldGE6IHRoaXMudGlsZSgpLm1ldGEsXG4gICAgICBhc2lkZTogdGhpcy50aWxlKCkuYXNpZGVcbiAgICB9O1xuICB9KTtcblxuICBleGVjdXRlQWN0aW9uKGE6IEFjdGlvbiwgZXZ0OiBFdmVudCkge1xuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIHRoaXMuZG1zU2VydmljZVxuICAgICAgLmdldERtc09iamVjdCh0aGlzLnRpbGUoKS5pZClcbiAgICAgIC5waXBlKHN3aXRjaE1hcCgobzogRG1zT2JqZWN0KSA9PiBhLnJ1bihbb10pKSlcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGRpdiBkYXRhLXNsb3Q9XCJpY29uXCI+XG4gIDxuZy1jb250YWluZXIgKnl1dlJlbmRlcmVyPVwicmVuZGVyZXJJbnB1dHMoKS5pY29uXCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cInNsb3RzXCI+XG4gIDxkaXYgZGF0YS1zbG90PVwidGl0bGVcIj5cbiAgICA8bmctY29udGFpbmVyICp5dXZSZW5kZXJlcj1cInJlbmRlcmVySW5wdXRzKCkudGl0bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIFxuICA8ZGl2IGRhdGEtc2xvdD1cImFjdGlvbnNcIj5cbiAgICBAZm9yIChhIG9mIGFjdGlvbnMoKTsgdHJhY2sgYS5pZCkge1xuICAgICAgPGJ1dHRvbiBbdGl0bGVdPVwiYS5sYWJlbFwiIChjbGljayk9XCJleGVjdXRlQWN0aW9uKGEsICRldmVudClcIj48eXZjLWljb24gW3N2Z109XCJhLmljb25cIj48L3l2Yy1pY29uPjwvYnV0dG9uPlxuICAgIH1cbiAgPC9kaXY+XG4gIFxuICA8ZGl2IGRhdGEtc2xvdD1cImRlc2NyaXB0aW9uXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqeXV2UmVuZGVyZXI9XCJyZW5kZXJlcklucHV0cygpLmRlc2NyaXB0aW9uXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICBcbiAgPGRpdiBkYXRhLXNsb3Q9XCJhc2lkZVwiPlxuICAgIDxuZy1jb250YWluZXIgKnl1dlJlbmRlcmVyPVwicmVuZGVyZXJJbnB1dHMoKS5hc2lkZVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgXG4gIDxkaXYgZGF0YS1zbG90PVwibWV0YVwiPlxuICAgIDxuZy1jb250YWluZXIgKnl1dlJlbmRlcmVyPVwicmVuZGVyZXJJbnB1dHMoKS5tZXRhXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICBcbiAgPGRpdiBkYXRhLXNsb3Q9XCJiYWRnZXNcIj57eyB0aWxlKCkuYmFkZ2VzIH19PC9kaXY+XG4gIFxuICA8ZGl2IGNsYXNzPVwiZXh0ZW5zaW9uXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqeXV2VGlsZUV4dGVuc2lvbj1cInsgdHlwZUlkOiB0aWxlKCkub2JqZWN0VHlwZUlkLCBkYXRhOiB0aWxlKCkuaW5zdGFuY2VEYXRhIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { NgClass } from '@angular/common';
|
|
2
|
+
import { Component, computed, inject, input, output } from '@angular/core';
|
|
3
|
+
import { ActionsService } from '@yuuvis/client-framework/actions';
|
|
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 ActionSelectComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.actionService = inject(ActionsService);
|
|
10
|
+
this.objectType = input.required();
|
|
11
|
+
this.actions = computed(() => (this.objectType() ? this.actionService.getActionsForType(this.objectType().id) : []));
|
|
12
|
+
this.selectedActionIds = input([]);
|
|
13
|
+
this.actionSelect = output();
|
|
14
|
+
}
|
|
15
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ActionSelectComponent, isStandalone: true, selector: "yuv-tile-action-select", inputs: { objectType: { classPropertyName: "objectType", publicName: "objectType", isSignal: true, isRequired: true, transformFunction: null }, selectedActionIds: { classPropertyName: "selectedActionIds", publicName: "selectedActionIds", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionSelect: "actionSelect" }, ngImport: i0, template: "<div class=\"actions\">\n @for (a of actions(); track a.id) {\n <button [ngClass]=\"{ selected: selectedActionIds().includes(a.id) }\" (click)=\"actionSelect.emit(a)\">\n <yvc-icon [svg]=\"a.icon!\"></yvc-icon>{{ a.label }}\n </button>\n }\n</div>\n", styles: [":host .actions button{width:100%;border:1px solid var(--panel-divider-color);border-radius:0;margin-block-end:1px}:host .actions button.selected{background-color:var(--color-accent);color:var(--color-accent-tone)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i1.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }] }); }
|
|
17
|
+
}
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionSelectComponent, decorators: [{
|
|
19
|
+
type: Component,
|
|
20
|
+
args: [{ selector: 'yuv-tile-action-select', standalone: true, imports: [NgClass, YvcIconModule], template: "<div class=\"actions\">\n @for (a of actions(); track a.id) {\n <button [ngClass]=\"{ selected: selectedActionIds().includes(a.id) }\" (click)=\"actionSelect.emit(a)\">\n <yvc-icon [svg]=\"a.icon!\"></yvc-icon>{{ a.label }}\n </button>\n }\n</div>\n", styles: [":host .actions button{width:100%;border:1px solid var(--panel-divider-color);border-radius:0;margin-block-end:1px}:host .actions button.selected{background-color:var(--color-accent);color:var(--color-accent-tone)}\n"] }]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3RpbGUtbGlzdC9zcmMvbGliL3RpbGUtY29uZmlnL2FjdGlvbi1zZWxlY3QvYWN0aW9uLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3RpbGUtbGlzdC9zcmMvbGliL3RpbGUtY29uZmlnL2FjdGlvbi1zZWxlY3QvYWN0aW9uLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkYsT0FBTyxFQUFVLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBU3hELE1BQU0sT0FBTyxxQkFBcUI7SUFQbEM7UUFRVSxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUUvQyxlQUFVLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBcUIsQ0FBQztRQUNqRCxZQUFPLEdBQXFCLFFBQVEsQ0FBVyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFNUksc0JBQWlCLEdBQUcsS0FBSyxDQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLGlCQUFZLEdBQUcsTUFBTSxFQUFVLENBQUM7S0FDakM7K0dBUlkscUJBQXFCO21HQUFyQixxQkFBcUIsMmFDYmxDLHdRQU9BLGlSREVZLE9BQU8sbUZBQUUsYUFBYTs7NEZBSXJCLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDRSx3QkFBd0IsY0FDdEIsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBTaWduYWwsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZpcnR1YWxPYmplY3RUeXBlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBBY3Rpb24sIEFjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2FjdGlvbnMnO1xuaW1wb3J0IHsgWXZjSWNvbk1vZHVsZSB9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9pY29uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneXV2LXRpbGUtYWN0aW9uLXNlbGVjdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBZdmNJY29uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYWN0aW9uLXNlbGVjdC5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uU2VsZWN0Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBhY3Rpb25TZXJ2aWNlID0gaW5qZWN0KEFjdGlvbnNTZXJ2aWNlKTtcblxuICBvYmplY3RUeXBlID0gaW5wdXQucmVxdWlyZWQ8VmlydHVhbE9iamVjdFR5cGU+KCk7XG4gIGFjdGlvbnM6IFNpZ25hbDxBY3Rpb25bXT4gPSBjb21wdXRlZDxBY3Rpb25bXT4oKCkgPT4gKHRoaXMub2JqZWN0VHlwZSgpID8gdGhpcy5hY3Rpb25TZXJ2aWNlLmdldEFjdGlvbnNGb3JUeXBlKHRoaXMub2JqZWN0VHlwZSgpLmlkKSA6IFtdKSk7XG5cbiAgc2VsZWN0ZWRBY3Rpb25JZHMgPSBpbnB1dDxzdHJpbmdbXT4oW10pO1xuICBhY3Rpb25TZWxlY3QgPSBvdXRwdXQ8QWN0aW9uPigpO1xufVxuIiwiPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgQGZvciAoYSBvZiBhY3Rpb25zKCk7IHRyYWNrIGEuaWQpIHtcbiAgICA8YnV0dG9uIFtuZ0NsYXNzXT1cInsgc2VsZWN0ZWQ6IHNlbGVjdGVkQWN0aW9uSWRzKCkuaW5jbHVkZXMoYS5pZCkgfVwiIChjbGljayk9XCJhY3Rpb25TZWxlY3QuZW1pdChhKVwiPlxuICAgICAgPHl2Yy1pY29uIFtzdmddPVwiYS5pY29uIVwiPjwveXZjLWljb24+e3sgYS5sYWJlbCB9fVxuICAgIDwvYnV0dG9uPlxuICB9XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, input, output } from '@angular/core';
|
|
3
|
+
import { TranslateModule } from '@yuuvis/client-core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@yuuvis/client-core";
|
|
6
|
+
export class IconSelectComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.objectType = input();
|
|
9
|
+
this.iconSelect = output();
|
|
10
|
+
}
|
|
11
|
+
async createIcon(inputEl) {
|
|
12
|
+
const file = inputEl.files ? inputEl.files[0] : undefined;
|
|
13
|
+
if (file) {
|
|
14
|
+
const text = await file.text();
|
|
15
|
+
this.#emit(text);
|
|
16
|
+
}
|
|
17
|
+
else
|
|
18
|
+
this.#emit(null);
|
|
19
|
+
}
|
|
20
|
+
reset() {
|
|
21
|
+
this.#emit(null);
|
|
22
|
+
}
|
|
23
|
+
#emit(data) {
|
|
24
|
+
this.iconSelect.emit(data);
|
|
25
|
+
}
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IconSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: IconSelectComponent, isStandalone: true, selector: "yuv-icon-select", inputs: { objectType: { classPropertyName: "objectType", publicName: "objectType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { iconSelect: "iconSelect" }, ngImport: i0, template: "<input style=\"display: none\" #fileInput type=\"file\" accept=\".svg\" (change)=\"createIcon(fileInput)\" />\n\n<button class=\"primary\" (click)=\"fileInput.click()\">{{ 'yuv.tile-config.icon-select.pick' | translate }}</button>\n<button class=\"secondary\" (click)=\"reset()\">{{ 'yuv.tile-config.icon-select.reset' | translate }}</button>\n", styles: [":host{display:flex;gap:var(--app-pane-padding)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
|
|
28
|
+
}
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IconSelectComponent, decorators: [{
|
|
30
|
+
type: Component,
|
|
31
|
+
args: [{ selector: 'yuv-icon-select', standalone: true, imports: [CommonModule, TranslateModule], template: "<input style=\"display: none\" #fileInput type=\"file\" accept=\".svg\" (change)=\"createIcon(fileInput)\" />\n\n<button class=\"primary\" (click)=\"fileInput.click()\">{{ 'yuv.tile-config.icon-select.pick' | translate }}</button>\n<button class=\"secondary\" (click)=\"reset()\">{{ 'yuv.tile-config.icon-select.reset' | translate }}</button>\n", styles: [":host{display:flex;gap:var(--app-pane-padding)}\n"] }]
|
|
32
|
+
}] });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay90aWxlLWxpc3Qvc3JjL2xpYi90aWxlLWNvbmZpZy9pY29uLXNlbGVjdC9pY29uLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3RpbGUtbGlzdC9zcmMvbGliL3RpbGUtY29uZmlnL2ljb24tc2VsZWN0L2ljb24tc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBcUIsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBU3pFLE1BQU0sT0FBTyxtQkFBbUI7SUFQaEM7UUFRRSxlQUFVLEdBQUcsS0FBSyxFQUFxQixDQUFDO1FBQ3hDLGVBQVUsR0FBRyxNQUFNLEVBQWlCLENBQUM7S0FpQnRDO0lBZkMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUF5QjtRQUN4QyxNQUFNLElBQUksR0FBcUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzVFLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25CLENBQUM7O1lBQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFtQjtRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDOytHQWxCVSxtQkFBbUI7bUdBQW5CLG1CQUFtQixxUUNYaEMsMFZBSUEsMEdER1ksWUFBWSw4QkFBRSxlQUFlOzs0RkFJNUIsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFZpcnR1YWxPYmplY3RUeXBlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3l1di1pY29uLXNlbGVjdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9pY29uLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9pY29uLXNlbGVjdC5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgSWNvblNlbGVjdENvbXBvbmVudCB7XG4gIG9iamVjdFR5cGUgPSBpbnB1dDxWaXJ0dWFsT2JqZWN0VHlwZT4oKTtcbiAgaWNvblNlbGVjdCA9IG91dHB1dDxzdHJpbmcgfCBudWxsPigpO1xuXG4gIGFzeW5jIGNyZWF0ZUljb24oaW5wdXRFbDogSFRNTElucHV0RWxlbWVudCkge1xuICAgIGNvbnN0IGZpbGU6IEZpbGUgfCB1bmRlZmluZWQgPSBpbnB1dEVsLmZpbGVzID8gaW5wdXRFbC5maWxlc1swXSA6IHVuZGVmaW5lZDtcbiAgICBpZiAoZmlsZSkge1xuICAgICAgY29uc3QgdGV4dCA9IGF3YWl0IGZpbGUudGV4dCgpO1xuICAgICAgdGhpcy4jZW1pdCh0ZXh0KTtcbiAgICB9IGVsc2UgdGhpcy4jZW1pdChudWxsKTtcbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIHRoaXMuI2VtaXQobnVsbCk7XG4gIH1cblxuICAjZW1pdChkYXRhOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgdGhpcy5pY29uU2VsZWN0LmVtaXQoZGF0YSk7XG4gIH1cbn1cbiIsIjxpbnB1dCBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiAjZmlsZUlucHV0IHR5cGU9XCJmaWxlXCIgYWNjZXB0PVwiLnN2Z1wiIChjaGFuZ2UpPVwiY3JlYXRlSWNvbihmaWxlSW5wdXQpXCIgLz5cblxuPGJ1dHRvbiBjbGFzcz1cInByaW1hcnlcIiAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIj57eyAneXV2LnRpbGUtY29uZmlnLmljb24tc2VsZWN0LnBpY2snIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XG48YnV0dG9uIGNsYXNzPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cInJlc2V0KClcIj57eyAneXV2LnRpbGUtY29uZmlnLmljb24tc2VsZWN0LnJlc2V0JyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuIl19
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { NgClass } from '@angular/common';
|
|
2
|
+
import { Component, computed, effect, inject, input, output, signal, untracked } from '@angular/core';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { BaseObjectTypeField, ContentStreamField, Sort, SystemService, TranslateModule, Utils } from '@yuuvis/client-core';
|
|
5
|
+
import { ICONS, YvcIconModule } from '@yuuvis/components/icon';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@yuuvis/components/icon";
|
|
8
|
+
export class PropertySelectComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.system = inject(SystemService);
|
|
11
|
+
// fields that should not be available to be placed in the slots
|
|
12
|
+
this.#excludeFields = [
|
|
13
|
+
BaseObjectTypeField.PARENT_ID,
|
|
14
|
+
BaseObjectTypeField.PARENT_OBJECT_TYPE_ID,
|
|
15
|
+
BaseObjectTypeField.OBJECT_ID,
|
|
16
|
+
BaseObjectTypeField.OBJECT_TYPE_ID,
|
|
17
|
+
BaseObjectTypeField.BASE_TYPE_ID,
|
|
18
|
+
BaseObjectTypeField.PARENT_VERSION_NUMBER,
|
|
19
|
+
BaseObjectTypeField.SECONDARY_OBJECT_TYPE_IDS,
|
|
20
|
+
BaseObjectTypeField.TAGS,
|
|
21
|
+
BaseObjectTypeField.TENANT,
|
|
22
|
+
BaseObjectTypeField.TRACE_ID,
|
|
23
|
+
ContentStreamField.REPOSITORY_ID,
|
|
24
|
+
ContentStreamField.DIGEST,
|
|
25
|
+
ContentStreamField.ARCHIVE_PATH,
|
|
26
|
+
ContentStreamField.ID,
|
|
27
|
+
ContentStreamField.RANGE
|
|
28
|
+
];
|
|
29
|
+
this.objectTypeFields = [];
|
|
30
|
+
this.clearIcon = ICONS.clear;
|
|
31
|
+
this.query = signal(null);
|
|
32
|
+
this.objectType = input();
|
|
33
|
+
this.filteredObjectTypeFields = computed(() => {
|
|
34
|
+
return this.query() !== null
|
|
35
|
+
? this.objectTypeFields.filter((otf) => otf.label.toLowerCase().indexOf(this.query()?.toLocaleLowerCase() || '') !== -1)
|
|
36
|
+
: this.getObjectTypeFields(this.objectType());
|
|
37
|
+
});
|
|
38
|
+
this.objectTypesEffect = effect(() => {
|
|
39
|
+
untracked(() => this.getObjectTypeFields(this.objectType()));
|
|
40
|
+
});
|
|
41
|
+
this.selectedProperty = input();
|
|
42
|
+
this.propertySelect = output();
|
|
43
|
+
}
|
|
44
|
+
// fields that should not be available to be placed in the slots
|
|
45
|
+
#excludeFields;
|
|
46
|
+
selectProperty(field) {
|
|
47
|
+
this.propertySelect.emit(field);
|
|
48
|
+
}
|
|
49
|
+
removeProperty(evt) {
|
|
50
|
+
evt.stopPropagation();
|
|
51
|
+
this.propertySelect.emit(undefined);
|
|
52
|
+
}
|
|
53
|
+
getObjectTypeFields(type) {
|
|
54
|
+
if (!type)
|
|
55
|
+
return [];
|
|
56
|
+
// load properties
|
|
57
|
+
const otf = [];
|
|
58
|
+
if (type.sots && type.sots.length > 0) {
|
|
59
|
+
type.sots.forEach((s) => {
|
|
60
|
+
const sot = this.system.getSecondaryObjectType(s);
|
|
61
|
+
if (sot)
|
|
62
|
+
sot.fields.forEach((of) => otf.push({
|
|
63
|
+
id: of.id,
|
|
64
|
+
label: this._getLabel(of)
|
|
65
|
+
}));
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
let objectTypeProperties = [];
|
|
69
|
+
if (type.objectType) {
|
|
70
|
+
const ot = this.system.getObjectType(type.objectType);
|
|
71
|
+
objectTypeProperties = (ot?.fields || []).map((otf) => ({ ...otf, label: this._getLabel(otf), baseProperty: true }));
|
|
72
|
+
}
|
|
73
|
+
this.objectTypeFields = [...objectTypeProperties, ...otf]
|
|
74
|
+
.filter((f) => f.id && !this.#excludeFields.includes(f.id))
|
|
75
|
+
// sort alphanummeric by label
|
|
76
|
+
.sort(Utils.sortValues('label', Sort.ASC))
|
|
77
|
+
// put base properties at the end
|
|
78
|
+
.sort(Utils.sortValues('baseProperty', Sort.ASC));
|
|
79
|
+
return this.objectTypeFields;
|
|
80
|
+
}
|
|
81
|
+
_getLabel(otf) {
|
|
82
|
+
return this.system.getLocalizedLabel(otf.id) || otf.id;
|
|
83
|
+
}
|
|
84
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PropertySelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
85
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PropertySelectComponent, isStandalone: true, selector: "yuv-tile-property-select", inputs: { objectType: { classPropertyName: "objectType", publicName: "objectType", isSignal: true, isRequired: false, transformFunction: null }, selectedProperty: { classPropertyName: "selectedProperty", publicName: "selectedProperty", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { propertySelect: "propertySelect" }, ngImport: i0, template: "<!-- TODO: enable once filtering of properties makes sense -->\n<!-- <form class=\"filter\">\n <div class=\"filter-input\">\n <input type=\"text\" [placeholder]=\"'yuv.tile-config.property-select.filter.placeholder' | translate\" name=\"query\" [(ngModel)]=\"query\" />\n @if (query()) {\n <button class=\"icn\" (click)=\"query.set(null)\">\n <yvc-icon [svg]=\"clearIcon\"></yvc-icon>\n </button>\n }\n </div>\n</form> -->\n\n<ul class=\"properties\">\n @for (p of filteredObjectTypeFields(); track $index) {\n <li [ngClass]=\"{ baseProperty: p.baseProperty, selected: p.id === selectedProperty()?.propertyName }\" (click)=\"selectProperty(p)\">\n <div class=\"label\">{{ p.label }}</div>\n <button (click)=\"removeProperty($event)\"><yvc-icon [svg]=\"clearIcon\"></yvc-icon>\n </button>\n </li>\n }\n</ul>\n", styles: [":host{display:flex;flex-flow:column;max-height:100%}:host .filter{flex:0 0 auto}:host .filter .filter-input{background-color:var(--panel-background);border:1px solid var(--panel-divider-color);display:flex;padding:.25em;align-items:center}:host .filter .filter-input input{background-color:transparent;border:0;outline:0;flex:1;color:var(--text-color-body)}:host .filter .filter-input button{width:1.5em;height:1.5em;border-radius:50%;padding:0}:host ul.properties{list-style:none;margin:0;padding:0;flex:1;column-count:3;column-width:30ch;column-rule:1px dotted var(--text-color-hint);column-gap:2em;margin-block-start:var(--app-pane-padding)}:host ul.properties li{border:1px solid var(--panel-divider-color);border-radius:0;margin-block-end:1px;display:flex;align-items:center;justify-content:space-between;cursor:default}:host ul.properties li:hover{background-color:var(--item-focus-background-color)}:host ul.properties li.baseProperty{font-style:italic}:host ul.properties li.selected{background-color:var(--color-accent);color:var(--color-accent-tone)}:host ul.properties li:not(.selected) button{display:none}:host ul.properties li .label{padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding)}:host ul.properties li button{--icon-size: 18px;color:currentColor;padding:0 calc(var(--app-pane-padding) / 2);align-self:stretch}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i1.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }] }); }
|
|
86
|
+
}
|
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PropertySelectComponent, decorators: [{
|
|
88
|
+
type: Component,
|
|
89
|
+
args: [{ selector: 'yuv-tile-property-select', standalone: true, imports: [NgClass, FormsModule, TranslateModule, YvcIconModule], template: "<!-- TODO: enable once filtering of properties makes sense -->\n<!-- <form class=\"filter\">\n <div class=\"filter-input\">\n <input type=\"text\" [placeholder]=\"'yuv.tile-config.property-select.filter.placeholder' | translate\" name=\"query\" [(ngModel)]=\"query\" />\n @if (query()) {\n <button class=\"icn\" (click)=\"query.set(null)\">\n <yvc-icon [svg]=\"clearIcon\"></yvc-icon>\n </button>\n }\n </div>\n</form> -->\n\n<ul class=\"properties\">\n @for (p of filteredObjectTypeFields(); track $index) {\n <li [ngClass]=\"{ baseProperty: p.baseProperty, selected: p.id === selectedProperty()?.propertyName }\" (click)=\"selectProperty(p)\">\n <div class=\"label\">{{ p.label }}</div>\n <button (click)=\"removeProperty($event)\"><yvc-icon [svg]=\"clearIcon\"></yvc-icon>\n </button>\n </li>\n }\n</ul>\n", styles: [":host{display:flex;flex-flow:column;max-height:100%}:host .filter{flex:0 0 auto}:host .filter .filter-input{background-color:var(--panel-background);border:1px solid var(--panel-divider-color);display:flex;padding:.25em;align-items:center}:host .filter .filter-input input{background-color:transparent;border:0;outline:0;flex:1;color:var(--text-color-body)}:host .filter .filter-input button{width:1.5em;height:1.5em;border-radius:50%;padding:0}:host ul.properties{list-style:none;margin:0;padding:0;flex:1;column-count:3;column-width:30ch;column-rule:1px dotted var(--text-color-hint);column-gap:2em;margin-block-start:var(--app-pane-padding)}:host ul.properties li{border:1px solid var(--panel-divider-color);border-radius:0;margin-block-end:1px;display:flex;align-items:center;justify-content:space-between;cursor:default}:host ul.properties li:hover{background-color:var(--item-focus-background-color)}:host ul.properties li.baseProperty{font-style:italic}:host ul.properties li.selected{background-color:var(--color-accent);color:var(--color-accent-tone)}:host ul.properties li:not(.selected) button{display:none}:host ul.properties li .label{padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding)}:host ul.properties li button{--icon-size: 18px;color:currentColor;padding:0 calc(var(--app-pane-padding) / 2);align-self:stretch}\n"] }]
|
|
90
|
+
}] });
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvdGlsZS1saXN0L3NyYy9saWIvdGlsZS1jb25maWcvcHJvcGVydHktc2VsZWN0L3Byb3BlcnR5LXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3RpbGUtbGlzdC9zcmMvbGliL3RpbGUtY29uZmlnL3Byb3BlcnR5LXNlbGVjdC9wcm9wZXJ0eS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUlsQixJQUFJLEVBQ0osYUFBYSxFQUNiLGVBQWUsRUFDZixLQUFLLEVBRU4sTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFXL0QsTUFBTSxPQUFPLHVCQUF1QjtJQVBwQztRQVFVLFdBQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFdkMsZ0VBQWdFO1FBQ3ZELG1CQUFjLEdBQWE7WUFDbEMsbUJBQW1CLENBQUMsU0FBUztZQUM3QixtQkFBbUIsQ0FBQyxxQkFBcUI7WUFDekMsbUJBQW1CLENBQUMsU0FBUztZQUM3QixtQkFB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RkFBRSxXQUFXLDhCQUFFLGVBQWUsOEJBQUUsYUFBYTs7NEZBSW5ELHVCQUF1QjtrQkFQbkMsU0FBUzsrQkFDRSwwQkFBMEIsY0FDeEIsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgQmFzZU9iamVjdFR5cGVGaWVsZCxcbiAgQ29udGVudFN0cmVhbUZpZWxkLFxuICBPYmplY3RDb25maWdQcm9wZXJ0eSxcbiAgT2JqZWN0VHlwZUZpZWxkLFxuICBTZWNvbmRhcnlPYmplY3RUeXBlLFxuICBTb3J0LFxuICBTeXN0ZW1TZXJ2aWNlLFxuICBUcmFuc2xhdGVNb2R1bGUsXG4gIFV0aWxzLFxuICBWaXJ0dWFsT2JqZWN0VHlwZVxufSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IElDT05TLCBZdmNJY29uTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2ljb24nO1xuXG50eXBlIFR5cGVQcm9wZXJ0eSA9IHsgbGFiZWw6IHN0cmluZzsgYmFzZVByb3BlcnR5PzogYm9vbGVhbiB9ICYgUGFydGlhbDxPYmplY3RUeXBlRmllbGQ+O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtdGlsZS1wcm9wZXJ0eS1zZWxlY3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdDbGFzcywgRm9ybXNNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgWXZjSWNvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9wZXJ0eS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvcGVydHktc2VsZWN0LmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eVNlbGVjdENvbXBvbmVudCB7XG4gIHByaXZhdGUgc3lzdGVtID0gaW5qZWN0KFN5c3RlbVNlcnZpY2UpO1xuXG4gIC8vIGZpZWxkcyB0aGF0IHNob3VsZCBub3QgYmUgYXZhaWxhYmxlIHRvIGJlIHBsYWNlZCBpbiB0aGUgc2xvdHNcbiAgcmVhZG9ubHkgI2V4Y2x1ZGVGaWVsZHM6IHN0cmluZ1tdID0gW1xuICAgIEJhc2VPYmplY3RUeXBlRmllbGQuUEFSRU5UX0lELFxuICAgIEJhc2VPYmplY3RUeXBlRmllbGQuUEFSRU5UX09CSkVDVF9UWVBFX0lELFxuICAgIEJhc2VPYmplY3RUeXBlRmllbGQuT0JKRUNUX0lELFxuICAgIEJhc2VPYmplY3RUeXBlRmllbGQuT0JKRUNUX1RZUEVfSUQsXG4gICAgQmFzZU9iamVjdFR5cGVGaWVsZC5CQVNFX1RZUEVfSUQsXG4gICAgQmFzZU9iamVjdFR5cGVGaWVsZC5QQVJFTlRfVkVSU0lPTl9OVU1CRVIsXG4gICAgQmFzZU9iamVjdFR5cGVGaWVsZC5TRUNPTkRBUllfT0JKRUNUX1RZUEVfSURTLFxuICAgIEJhc2VPYmplY3RUeXBlRmllbGQuVEFHUyxcbiAgICBCYXNlT2JqZWN0VHlwZUZpZWxkLlRFTkFOVCxcbiAgICBCYXNlT2JqZWN0VHlwZUZpZWxkLlRSQUNFX0lELFxuICAgIENvbnRlbnRTdHJlYW1GaWVsZC5SRVBPU0lUT1JZX0lELFxuICAgIENvbnRlbnRTdHJlYW1GaWVsZC5ESUdFU1QsXG4gICAgQ29udGVudFN0cmVhbUZpZWxkLkFSQ0hJVkVfUEFUSCxcbiAgICBDb250ZW50U3RyZWFtRmllbGQuSUQsXG4gICAgQ29udGVudFN0cmVhbUZpZWxkLlJBTkdFXG4gIF07XG5cbiAgb2JqZWN0VHlwZUZpZWxkczogVHlwZVByb3BlcnR5W10gPSBbXTtcblxuICBjbGVhckljb24gPSBJQ09OUy5jbGVhcjtcblxuICBxdWVyeSA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBvYmplY3RUeXBlID0gaW5wdXQ8VmlydHVhbE9iamVjdFR5cGU+KCk7XG4gIGZpbHRlcmVkT2JqZWN0VHlwZUZpZWxkcyA9IGNvbXB1dGVkPFR5cGVQcm9wZXJ0eVtdPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucXVlcnkoKSAhPT0gbnVsbFxuICAgICAgPyB0aGlzLm9iamVjdFR5cGVGaWVsZHMuZmlsdGVyKChvdGYpID0+IG90Zi5sYWJlbC50b0xvd2VyQ2FzZSgpLmluZGV4T2YodGhpcy5xdWVyeSgpPy50b0xvY2FsZUxvd2VyQ2FzZSgpIHx8ICcnKSAhPT0gLTEpXG4gICAgICA6IHRoaXMuZ2V0T2JqZWN0VHlwZUZpZWxkcyh0aGlzLm9iamVjdFR5cGUoKSk7XG4gIH0pO1xuXG4gIG9iamVjdFR5cGVzRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICB1bnRyYWNrZWQoKCkgPT4gdGhpcy5nZXRPYmplY3RUeXBlRmllbGRzKHRoaXMub2JqZWN0VHlwZSgpKSk7XG4gIH0pO1xuXG4gIHNlbGVjdGVkUHJvcGVydHkgPSBpbnB1dDxPYmplY3RDb25maWdQcm9wZXJ0eT4oKTtcblxuICBwcm9wZXJ0eVNlbGVjdCA9IG91dHB1dDxUeXBlUHJvcGVydHkgfCB1bmRlZmluZWQ+KCk7XG5cbiAgc2VsZWN0UHJvcGVydHkoZmllbGQ6IFR5cGVQcm9wZXJ0eSkge1xuICAgIHRoaXMucHJvcGVydHlTZWxlY3QuZW1pdChmaWVsZCk7XG4gIH1cblxuICByZW1vdmVQcm9wZXJ0eShldnQ6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KSB7XG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIFxuICAgIHRoaXMucHJvcGVydHlTZWxlY3QuZW1pdCh1bmRlZmluZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPYmplY3RUeXBlRmllbGRzKHR5cGU/OiBWaXJ0dWFsT2JqZWN0VHlwZSkge1xuICAgIGlmICghdHlwZSkgcmV0dXJuIFtdO1xuICAgIC8vIGxvYWQgcHJvcGVydGllc1xuICAgIGNvbnN0IG90ZjogVHlwZVByb3BlcnR5W10gPSBbXTtcbiAgICBpZiAodHlwZS5zb3RzICYmIHR5cGUuc290cy5sZW5ndGggPiAwKSB7XG4gICAgICB0eXBlLnNvdHMuZm9yRWFjaCgoczogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHNvdDogU2Vjb25kYXJ5T2JqZWN0VHlwZSB8IHVuZGVmaW5lZCA9IHRoaXMuc3lzdGVtLmdldFNlY29uZGFyeU9iamVjdFR5cGUocyk7XG4gICAgICAgIGlmIChzb3QpXG4gICAgICAgICAgc290LmZpZWxkcy5mb3JFYWNoKChvZikgPT5cbiAgICAgICAgICAgIG90Zi5wdXNoKHtcbiAgICAgICAgICAgICAgaWQ6IG9mLmlkLFxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5fZ2V0TGFiZWwob2YpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBsZXQgb2JqZWN0VHlwZVByb3BlcnRpZXM6IFR5cGVQcm9wZXJ0eVtdID0gW107XG4gICAgaWYgKHR5cGUub2JqZWN0VHlwZSkge1xuICAgICAgY29uc3Qgb3QgPSB0aGlzLnN5c3RlbS5nZXRPYmplY3RUeXBlKHR5cGUub2JqZWN0VHlwZSk7XG4gICAgICBvYmplY3RUeXBlUHJvcGVydGllcyA9IChvdD8uZmllbGRzIHx8IFtdKS5tYXAoKG90ZikgPT4gKHsgLi4ub3RmLCBsYWJlbDogdGhpcy5fZ2V0TGFiZWwob3RmKSwgYmFzZVByb3BlcnR5OiB0cnVlIH0pKTtcbiAgICB9XG5cbiAgICB0aGlzLm9iamVjdFR5cGVGaWVsZHMgPSBbLi4ub2JqZWN0VHlwZVByb3BlcnRpZXMsIC4uLm90Zl1cbiAgICAgIC5maWx0ZXIoKGYpID0+IGYuaWQgJiYgIXRoaXMuI2V4Y2x1ZGVGaWVsZHMuaW5jbHVkZXMoZi5pZCkpXG4gICAgICAvLyBzb3J0IGFscGhhbnVtbWVyaWMgYnkgbGFiZWxcbiAgICAgIC5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ2xhYmVsJywgU29ydC5BU0MpKVxuICAgICAgLy8gcHV0IGJhc2UgcHJvcGVydGllcyBhdCB0aGUgZW5kXG4gICAgICAuc29ydChVdGlscy5zb3J0VmFsdWVzKCdiYXNlUHJvcGVydHknLCBTb3J0LkFTQykpO1xuICAgIHJldHVybiB0aGlzLm9iamVjdFR5cGVGaWVsZHM7XG4gIH1cblxuICBwcml2YXRlIF9nZXRMYWJlbChvdGY6IE9iamVjdFR5cGVGaWVsZCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc3lzdGVtLmdldExvY2FsaXplZExhYmVsKG90Zi5pZCkgfHwgb3RmLmlkO1xuICB9XG59XG4iLCI8IS0tIFRPRE86IGVuYWJsZSBvbmNlIGZpbHRlcmluZyBvZiBwcm9wZXJ0aWVzIG1ha2VzIHNlbnNlIC0tPlxuPCEtLSA8Zm9ybSBjbGFzcz1cImZpbHRlclwiPlxuICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWlucHV0XCI+XG4gICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW3BsYWNlaG9sZGVyXT1cIid5dXYudGlsZS1jb25maWcucHJvcGVydHktc2VsZWN0LmZpbHRlci5wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcIiBuYW1lPVwicXVlcnlcIiBbKG5nTW9kZWwpXT1cInF1ZXJ5XCIgLz5cbiAgICBAaWYgKHF1ZXJ5KCkpIHtcbiAgICAgIDxidXR0b24gY2xhc3M9XCJpY25cIiAoY2xpY2spPVwicXVlcnkuc2V0KG51bGwpXCI+XG4gICAgICAgIDx5dmMtaWNvbiBbc3ZnXT1cImNsZWFySWNvblwiPjwveXZjLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICB9XG4gIDwvZGl2PlxuPC9mb3JtPiAtLT5cblxuPHVsIGNsYXNzPVwicHJvcGVydGllc1wiPlxuICBAZm9yIChwIG9mIGZpbHRlcmVkT2JqZWN0VHlwZUZpZWxkcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICA8bGkgW25nQ2xhc3NdPVwieyBiYXNlUHJvcGVydHk6IHAuYmFzZVByb3BlcnR5LCBzZWxlY3RlZDogcC5pZCA9PT0gc2VsZWN0ZWRQcm9wZXJ0eSgpPy5wcm9wZXJ0eU5hbWUgfVwiIChjbGljayk9XCJzZWxlY3RQcm9wZXJ0eShwKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+e3sgcC5sYWJlbCB9fTwvZGl2PlxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwicmVtb3ZlUHJvcGVydHkoJGV2ZW50KVwiPjx5dmMtaWNvbiBbc3ZnXT1cImNsZWFySWNvblwiPjwveXZjLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2xpPlxuICB9XG48L3VsPlxuIl19
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Component, ElementRef, computed, inject, input, output } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { SystemService } from '@yuuvis/client-core';
|
|
4
|
+
import { YvcIconModule } from '@yuuvis/components/icon';
|
|
5
|
+
import { ActionsService } from '@yuuvis/client-framework/actions';
|
|
6
|
+
import { ObjectTypeIconComponent } from '@yuuvis/client-framework/icons';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@yuuvis/components/icon";
|
|
9
|
+
/**
|
|
10
|
+
* Component for setting up a tile config
|
|
11
|
+
*/
|
|
12
|
+
export class TileConfigTileComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.actionService = inject(ActionsService);
|
|
15
|
+
this.elRef = inject(ElementRef);
|
|
16
|
+
this.#system = inject(SystemService);
|
|
17
|
+
this.disableIconSlot = input();
|
|
18
|
+
this.disableBadgesSlot = input();
|
|
19
|
+
this.objectConfigInput = input.required({ alias: 'objectConfig' });
|
|
20
|
+
this.objectConfig = computed(() => {
|
|
21
|
+
const oc = this.objectConfigInput();
|
|
22
|
+
if (oc) {
|
|
23
|
+
[oc.title, oc.description, oc.meta, oc.aside].forEach((field) => {
|
|
24
|
+
if (field) {
|
|
25
|
+
const label = this.#system.getLocalizedLabel(field.propertyName);
|
|
26
|
+
field.label = label || field.label || field.propertyName;
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return oc;
|
|
31
|
+
});
|
|
32
|
+
this.actions = computed(() => {
|
|
33
|
+
const actionsList = [];
|
|
34
|
+
const ocActions = this.objectConfig();
|
|
35
|
+
if (ocActions.actions?.length) {
|
|
36
|
+
ocActions.actions?.forEach((a) => {
|
|
37
|
+
const aa = this.actionService.getActionById(a.id);
|
|
38
|
+
if (aa)
|
|
39
|
+
actionsList.push(aa);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return actionsList;
|
|
43
|
+
});
|
|
44
|
+
this.slotSelect = output();
|
|
45
|
+
}
|
|
46
|
+
#system;
|
|
47
|
+
selectSlot(slot) {
|
|
48
|
+
if (this.disableIconSlot() && slot === 'icon')
|
|
49
|
+
return;
|
|
50
|
+
this.slotSelect.emit(slot);
|
|
51
|
+
// set active state
|
|
52
|
+
this.elRef.nativeElement.querySelectorAll('[data-slot]').forEach((e) => {
|
|
53
|
+
if (e.getAttribute('data-slot') === slot)
|
|
54
|
+
e.classList.add('active');
|
|
55
|
+
else
|
|
56
|
+
e.classList.remove('active');
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TileConfigTileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
60
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TileConfigTileComponent, isStandalone: true, selector: "yuv-tile-config-tile", inputs: { disableIconSlot: { classPropertyName: "disableIconSlot", publicName: "disableIconSlot", isSignal: true, isRequired: false, transformFunction: null }, disableBadgesSlot: { classPropertyName: "disableBadgesSlot", publicName: "disableBadgesSlot", isSignal: true, isRequired: false, transformFunction: null }, objectConfigInput: { classPropertyName: "objectConfigInput", publicName: "objectConfig", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { slotSelect: "slotSelect" }, ngImport: i0, template: "@let oc = objectConfig();\n\n<div data-slot=\"icon\" [attr.disabled]=\"disableIconSlot()\" (click)=\"selectSlot('icon')\">\n @if (oc.icon) {\n <yvc-icon [svg]=\"oc.icon.svg\"></yvc-icon>\n } @else {\n <yuv-object-type-icon [objectTypeId]=\"oc.objectTypeId\"></yuv-object-type-icon>\n }\n</div>\n<div data-slot=\"title\" (click)=\"selectSlot('title')\">{{ oc.title?.label }}</div>\n<div data-slot=\"actions\" (click)=\"selectSlot('actions')\">\n @for (a of actions(); track a.id) {\n <button [title]=\"a.label\"><yvc-icon [svg]=\"a.icon\"></yvc-icon></button>\n }\n</div>\n<div data-slot=\"description\" (click)=\"selectSlot('description')\">{{ oc.description?.label }}</div>\n<div data-slot=\"aside\" (click)=\"selectSlot('aside')\">{{ oc.aside?.label }}</div>\n<div data-slot=\"meta\" (click)=\"selectSlot('meta')\">{{ oc.meta?.label }}</div>\n@if (!disableBadgesSlot()) {\n <div data-slot=\"badges\" (click)=\"selectSlot('badges')\">\n <!-- {{ tile().badges }} -->\n {{ oc.badges }}\n </div>\n}\n", styles: [":host{--tile-item-gap: .5em;--tile-background: transparent;--tile-icon-fill: currentColor;display:grid;grid-template-rows:auto auto auto auto;grid-template-columns:3rem 1fr auto;grid-template-areas:\"icon title title actions\" \"icon description aside aside\" \"icon meta meta badges\";gap:var(--tile-item-gap);padding:var(--app-pane-padding);background-color:var(--tile-background)}:host:hover [data-slot=actions]{opacity:1}:host [data-slot=icon]{grid-area:icon;display:flex;align-items:center;justify-content:center}:host [data-slot=title]{grid-area:title;font-weight:700}:host [data-slot=description]{grid-area:description}:host [data-slot=meta]{grid-area:meta}:host [data-slot=aside]{flex:0 0 auto;grid-area:aside}:host [data-slot=actions]{flex:0 0 auto;display:flex;justify-self:end;grid-area:actions}:host [data-slot=actions] button{padding:0;gap:2px}:host [data-slot=badges]{grid-area:badges;justify-self:end;flex:0 0 auto}:host :where([data-slot=badges],[data-slot=actions],[data-slot=aside],[data-slot=icon],[data-slot=title],[data-slot=description],[data-slot=meta]){display:flex;align-items:center;background-color:var(--panel-background-grey);padding:.25em .5em;box-sizing:border-box;min-height:1.7em;border-radius:.25em}:host :where([data-slot=badges],[data-slot=actions],[data-slot=aside],[data-slot=icon],[data-slot=title],[data-slot=description],[data-slot=meta]):not([disabled]){cursor:pointer}:host :where([data-slot=badges],[data-slot=actions],[data-slot=aside],[data-slot=icon],[data-slot=title],[data-slot=description],[data-slot=meta]):not([disabled]).active,:host :where([data-slot=badges],[data-slot=actions],[data-slot=aside],[data-slot=icon],[data-slot=title],[data-slot=description],[data-slot=meta]):not([disabled]):hover{background-color:var(--color-accent);color:var(--color-accent-tone)}:host :where([data-slot=badges],[data-slot=actions]){min-width:3em}:host :where([data-slot=badges],[data-slot=actions]) button{pointer-events:none;color:currentColor}:host [data-slot=aside]{min-width:4em}:host [data-slot=icon]{height:3em;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i1.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: ObjectTypeIconComponent, selector: "yuv-object-type-icon", inputs: ["objectTypeId"] }] }); }
|
|
61
|
+
}
|
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TileConfigTileComponent, decorators: [{
|
|
63
|
+
type: Component,
|
|
64
|
+
args: [{ selector: 'yuv-tile-config-tile', standalone: true, imports: [YvcIconModule, CommonModule, ObjectTypeIconComponent], template: "@let oc = objectConfig();\n\n<div data-slot=\"icon\" [attr.disabled]=\"disableIconSlot()\" (click)=\"selectSlot('icon')\">\n @if (oc.icon) {\n <yvc-icon [svg]=\"oc.icon.svg\"></yvc-icon>\n } @else {\n <yuv-object-type-icon [objectTypeId]=\"oc.objectTypeId\"></yuv-object-type-icon>\n }\n</div>\n<div data-slot=\"title\" (click)=\"selectSlot('title')\">{{ oc.title?.label }}</div>\n<div data-slot=\"actions\" (click)=\"selectSlot('actions')\">\n @for (a of actions(); track a.id) {\n <button [title]=\"a.label\"><yvc-icon [svg]=\"a.icon\"></yvc-icon></button>\n }\n</div>\n<div data-slot=\"description\" (click)=\"selectSlot('description')\">{{ oc.description?.label }}</div>\n<div data-slot=\"aside\" (click)=\"selectSlot('aside')\">{{ oc.aside?.label }}</div>\n<div data-slot=\"meta\" (click)=\"selectSlot('meta')\">{{ oc.meta?.label }}</div>\n@if (!disableBadgesSlot()) {\n <div data-slot=\"badges\" (click)=\"selectSlot('badges')\">\n <!-- {{ tile().badges }} -->\n {{ oc.badges }}\n </div>\n}\n", styles: [":host{--tile-item-gap: .5em;--tile-background: transparent;--tile-icon-fill: currentColor;display:grid;grid-template-rows:auto auto auto auto;grid-template-columns:3rem 1fr auto;grid-template-areas:\"icon title title actions\" \"icon description aside aside\" \"icon meta meta badges\";gap:var(--tile-item-gap);padding:var(--app-pane-padding);background-color:var(--tile-background)}:host:hover [data-slot=actions]{opacity:1}:host [data-slot=icon]{grid-area:icon;display:flex;align-items:center;justify-content:center}:host [data-slot=title]{grid-area:title;font-weight:700}:host [data-slot=description]{grid-area:description}:host [data-slot=meta]{grid-area:meta}:host [data-slot=aside]{flex:0 0 auto;grid-area:aside}:host [data-slot=actions]{flex:0 0 auto;display:flex;justify-self:end;grid-area:actions}:host [data-slot=actions] button{padding:0;gap:2px}:host [data-slot=badges]{grid-area:badges;justify-self:end;flex:0 0 auto}:host :where([data-slot=badges],[data-slot=actions],[data-slot=aside],[data-slot=icon],[data-slot=title],[data-slot=description],[data-slot=meta]){display:flex;align-items:center;background-color:var(--panel-background-grey);padding:.25em .5em;box-sizing:border-box;min-height:1.7em;border-radius:.25em}:host :where([data-slot=badges],[data-slot=actions],[data-slot=aside],[data-slot=icon],[data-slot=title],[data-slot=description],[data-slot=meta]):not([disabled]){cursor:pointer}:host :where([data-slot=badges],[data-slot=actions],[data-slot=aside],[data-slot=icon],[data-slot=title],[data-slot=description],[data-slot=meta]):not([disabled]).active,:host :where([data-slot=badges],[data-slot=actions],[data-slot=aside],[data-slot=icon],[data-slot=title],[data-slot=description],[data-slot=meta]):not([disabled]):hover{background-color:var(--color-accent);color:var(--color-accent-tone)}:host :where([data-slot=badges],[data-slot=actions]){min-width:3em}:host :where([data-slot=badges],[data-slot=actions]) button{pointer-events:none;color:currentColor}:host [data-slot=aside]{min-width:4em}:host [data-slot=icon]{height:3em;width:100%}\n"] }]
|
|
65
|
+
}] });
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1jb25maWctdGlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3RpbGUtbGlzdC9zcmMvbGliL3RpbGUtY29uZmlnL3RpbGUtY29uZmlnLXRpbGUvdGlsZS1jb25maWctdGlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3RpbGUtbGlzdC9zcmMvbGliL3RpbGUtY29uZmlnL3RpbGUtY29uZmlnLXRpbGUvdGlsZS1jb25maWctdGlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBMEQsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBVSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBRXpFOztHQUVHO0FBUUgsTUFBTSxPQUFPLHVCQUF1QjtJQVBwQztRQVFtQixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2QyxVQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVDLFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFaEMsb0JBQWUsR0FBRyxLQUFLLEVBQVcsQ0FBQztRQUNuQyxzQkFBaUIsR0FBRyxLQUFLLEVBQVcsQ0FBQztRQUVyQyxzQkFBaUIsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFlLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDNUUsaUJBQVksR0FBRyxRQUFRLENBQWUsR0FBRyxFQUFFO1lBQ3pDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BDLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ1AsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBdUMsRUFBRSxFQUFFO29CQUNoRyxJQUFJLEtBQUssRUFBRSxDQUFDO3dCQUNWLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUNqRSxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUM7b0JBQzNELENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1lBQ0QsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUMsQ0FBQztRQUVILFlBQU8sR0FBRyxRQUFRLENBQVcsR0FBRyxFQUFFO1lBQ2hDLE1BQU0sV0FBVyxHQUFhLEVBQUUsQ0FBQztZQUNqQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEMsSUFBSSxTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUM5QixTQUFTLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQXFCLEVBQUUsRUFBRTtvQkFDbkQsTUFBTSxFQUFFLEdBQXVCLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDdEUsSUFBSSxFQUFFO3dCQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBRUgsZUFBVSxHQUFHLE1BQU0sRUFBVSxDQUFDO0tBWS9CO0lBM0NDLE9BQU8sQ0FBeUI7SUFpQ2hDLFVBQVUsQ0FBQyxJQUFZO1FBQ3JCLElBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLElBQUksS0FBSyxNQUFNO1lBQUUsT0FBTztRQUNyRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUzQixtQkFBbUI7UUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUE2QixDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3RGLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJO2dCQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDOztnQkFDL0QsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQTdDVSx1QkFBdUI7bUdBQXZCLHVCQUF1Qiwya0JDakJwQyw4L0JBd0JBLDhrRURYWSxhQUFhLDhIQUFFLFlBQVksK0JBQUUsdUJBQXVCOzs0RkFJbkQsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1AsQ0FBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgT2JqZWN0Q29uZmlnLCBPYmplY3RDb25maWdBY3Rpb24sIE9iamVjdENvbmZpZ1Byb3BlcnR5LCBTeXN0ZW1TZXJ2aWNlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBZdmNJY29uTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgQWN0aW9uLCBBY3Rpb25zU2VydmljZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9hY3Rpb25zJztcbmltcG9ydCB7IE9iamVjdFR5cGVJY29uQ29tcG9uZW50IH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2ljb25zJztcblxuLyoqXG4gKiBDb21wb25lbnQgZm9yIHNldHRpbmcgdXAgYSB0aWxlIGNvbmZpZ1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtdGlsZS1jb25maWctdGlsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtZdmNJY29uTW9kdWxlLCBDb21tb25Nb2R1bGUsIE9iamVjdFR5cGVJY29uQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbGUtY29uZmlnLXRpbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGlsZS1jb25maWctdGlsZS5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgVGlsZUNvbmZpZ1RpbGVDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvblNlcnZpY2UgPSBpbmplY3QoQWN0aW9uc1NlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVsUmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAjc3lzdGVtID0gaW5qZWN0KFN5c3RlbVNlcnZpY2UpO1xuXG4gIGRpc2FibGVJY29uU2xvdCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIGRpc2FibGVCYWRnZXNTbG90ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcblxuICBvYmplY3RDb25maWdJbnB1dCA9IGlucHV0LnJlcXVpcmVkPE9iamVjdENvbmZpZz4oeyBhbGlhczogJ29iamVjdENvbmZpZycgfSk7XG4gIG9iamVjdENvbmZpZyA9IGNvbXB1dGVkPE9iamVjdENvbmZpZz4oKCkgPT4ge1xuICAgIGNvbnN0IG9jID0gdGhpcy5vYmplY3RDb25maWdJbnB1dCgpO1xuICAgIGlmIChvYykge1xuICAgICAgW29jLnRpdGxlLCBvYy5kZXNjcmlwdGlvbiwgb2MubWV0YSwgb2MuYXNpZGVdLmZvckVhY2goKGZpZWxkOiBPYmplY3RDb25maWdQcm9wZXJ0eSB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgICBpZiAoZmllbGQpIHtcbiAgICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuI3N5c3RlbS5nZXRMb2NhbGl6ZWRMYWJlbChmaWVsZC5wcm9wZXJ0eU5hbWUpO1xuICAgICAgICAgIGZpZWxkLmxhYmVsID0gbGFiZWwgfHwgZmllbGQubGFiZWwgfHwgZmllbGQucHJvcGVydHlOYW1lO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG9jO1xuICB9KTtcblxuICBhY3Rpb25zID0gY29tcHV0ZWQ8QWN0aW9uW10+KCgpID0+IHtcbiAgICBjb25zdCBhY3Rpb25zTGlzdDogQWN0aW9uW10gPSBbXTtcbiAgICBjb25zdCBvY0FjdGlvbnMgPSB0aGlzLm9iamVjdENvbmZpZygpO1xuICAgIGlmIChvY0FjdGlvbnMuYWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICBvY0FjdGlvbnMuYWN0aW9ucz8uZm9yRWFjaCgoYTogT2JqZWN0Q29uZmlnQWN0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGFhOiBBY3Rpb24gfCB1bmRlZmluZWQgPSB0aGlzLmFjdGlvblNlcnZpY2UuZ2V0QWN0aW9uQnlJZChhLmlkKTtcbiAgICAgICAgaWYgKGFhKSBhY3Rpb25zTGlzdC5wdXNoKGFhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gYWN0aW9uc0xpc3Q7XG4gIH0pO1xuXG4gIHNsb3RTZWxlY3QgPSBvdXRwdXQ8c3RyaW5nPigpO1xuXG4gIHNlbGVjdFNsb3Qoc2xvdDogc3RyaW5nKSB7XG4gICAgaWYodGhpcy5kaXNhYmxlSWNvblNsb3QoKSAmJiBzbG90ID09PSAnaWNvbicpIHJldHVybjtcbiAgICB0aGlzLnNsb3RTZWxlY3QuZW1pdChzbG90KTtcblxuICAgIC8vIHNldCBhY3RpdmUgc3RhdGVcbiAgICAodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1zbG90XScpLmZvckVhY2goKGUpID0+IHtcbiAgICAgIGlmIChlLmdldEF0dHJpYnV0ZSgnZGF0YS1zbG90JykgPT09IHNsb3QpIGUuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7XG4gICAgICBlbHNlIGUuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIkBsZXQgb2MgPSBvYmplY3RDb25maWcoKTtcblxuPGRpdiBkYXRhLXNsb3Q9XCJpY29uXCIgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZUljb25TbG90KClcIiAoY2xpY2spPVwic2VsZWN0U2xvdCgnaWNvbicpXCI+XG4gIEBpZiAob2MuaWNvbikge1xuICAgIDx5dmMtaWNvbiBbc3ZnXT1cIm9jLmljb24uc3ZnXCI+PC95dmMtaWNvbj5cbiAgfSBAZWxzZSB7XG4gICAgPHl1di1vYmplY3QtdHlwZS1pY29uIFtvYmplY3RUeXBlSWRdPVwib2Mub2JqZWN0VHlwZUlkXCI+PC95dXYtb2JqZWN0LXR5cGUtaWNvbj5cbiAgfVxuPC9kaXY+XG48ZGl2IGRhdGEtc2xvdD1cInRpdGxlXCIgKGNsaWNrKT1cInNlbGVjdFNsb3QoJ3RpdGxlJylcIj57eyBvYy50aXRsZT8ubGFiZWwgfX08L2Rpdj5cbjxkaXYgZGF0YS1zbG90PVwiYWN0aW9uc1wiIChjbGljayk9XCJzZWxlY3RTbG90KCdhY3Rpb25zJylcIj5cbiAgQGZvciAoYSBvZiBhY3Rpb25zKCk7IHRyYWNrIGEuaWQpIHtcbiAgICA8YnV0dG9uIFt0aXRsZV09XCJhLmxhYmVsXCI+PHl2Yy1pY29uIFtzdmddPVwiYS5pY29uXCI+PC95dmMtaWNvbj48L2J1dHRvbj5cbiAgfVxuPC9kaXY+XG48ZGl2IGRhdGEtc2xvdD1cImRlc2NyaXB0aW9uXCIgKGNsaWNrKT1cInNlbGVjdFNsb3QoJ2Rlc2NyaXB0aW9uJylcIj57eyBvYy5kZXNjcmlwdGlvbj8ubGFiZWwgfX08L2Rpdj5cbjxkaXYgZGF0YS1zbG90PVwiYXNpZGVcIiAoY2xpY2spPVwic2VsZWN0U2xvdCgnYXNpZGUnKVwiPnt7IG9jLmFzaWRlPy5sYWJlbCB9fTwvZGl2PlxuPGRpdiBkYXRhLXNsb3Q9XCJtZXRhXCIgKGNsaWNrKT1cInNlbGVjdFNsb3QoJ21ldGEnKVwiPnt7IG9jLm1ldGE/LmxhYmVsIH19PC9kaXY+XG5AaWYgKCFkaXNhYmxlQmFkZ2VzU2xvdCgpKSB7XG4gIDxkaXYgZGF0YS1zbG90PVwiYmFkZ2VzXCIgKGNsaWNrKT1cInNlbGVjdFNsb3QoJ2JhZGdlcycpXCI+XG4gICAgPCEtLSB7eyB0aWxlKCkuYmFkZ2VzIH19IC0tPlxuICAgIHt7IG9jLmJhZGdlcyB9fVxuICA8L2Rpdj5cbn1cbiJdfQ==
|
package/esm2022/tile-list/lib/tile-config/tile-config-trigger/tile-config-trigger.component.mjs
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, inject, input, viewChild } from '@angular/core';
|
|
3
|
+
import { YUV_ICONS } from '@yuuvis/client-framework/icons';
|
|
4
|
+
import { YvcIconModule } from '@yuuvis/components/icon';
|
|
5
|
+
import { YvcOverlayService } from '@yuuvis/components/overlay';
|
|
6
|
+
import { TileConfigComponent } from '../tile-config.component';
|
|
7
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@yuuvis/components/icon";
|
|
10
|
+
import * as i2 from "@yuuvis/client-core";
|
|
11
|
+
export class TileConfigTriggerComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.overlayService = inject(YvcOverlayService);
|
|
14
|
+
this.tplTileConfig = viewChild.required('tplTileConfig');
|
|
15
|
+
this.icon = input(YUV_ICONS.settings);
|
|
16
|
+
this.bucket = input();
|
|
17
|
+
this.bucketLabel = input();
|
|
18
|
+
this.options = input(undefined);
|
|
19
|
+
}
|
|
20
|
+
openTileConfigOverlay() {
|
|
21
|
+
const popoverConfig = {
|
|
22
|
+
height: '80%',
|
|
23
|
+
width: '80%'
|
|
24
|
+
// maxWidth: '400px',
|
|
25
|
+
// data: {
|
|
26
|
+
// bucket: this.bucket
|
|
27
|
+
// }
|
|
28
|
+
};
|
|
29
|
+
this._oRef = this.overlayService.open(this.tplTileConfig(), null, popoverConfig);
|
|
30
|
+
}
|
|
31
|
+
onObjectConfigSave() {
|
|
32
|
+
if (this._oRef)
|
|
33
|
+
this._oRef.close();
|
|
34
|
+
}
|
|
35
|
+
onObjectConfigCancel() {
|
|
36
|
+
if (this._oRef)
|
|
37
|
+
this._oRef.close();
|
|
38
|
+
}
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TileConfigTriggerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.13", type: TileConfigTriggerComponent, isStandalone: true, selector: "yuv-tile-config-trigger", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, bucket: { classPropertyName: "bucket", publicName: "bucket", isSignal: true, isRequired: false, transformFunction: null }, bucketLabel: { classPropertyName: "bucketLabel", publicName: "bucketLabel", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "tplTileConfig", first: true, predicate: ["tplTileConfig"], descendants: true, isSignal: true }], ngImport: i0, template: "<button class=\"settings icon\" (click)=\"openTileConfigOverlay()\"\ntitle=\"{{ 'yuv.tile-config.trigger.tooltip' | translate }}\"\n><yvc-icon [svg]=\"icon()\"></yvc-icon></button>\n\n<ng-template #tplTileConfig>\n <yuv-tile-config\n (save)=\"onObjectConfigSave()\"\n (cancel)=\"onObjectConfigCancel()\"\n [bucket]=\"bucket() || undefined\"\n [bucketLabel]=\"bucketLabel()\"\n [configTypes]=\"options()?.configTypes\"\n [configFlavors]=\"options()?.configFlavors || []\"\n ></yuv-tile-config>\n</ng-template>\n", styles: [":host button{padding:var(--button-padding)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: TileConfigComponent, selector: "yuv-tile-config", inputs: ["bucket", "bucketLabel", "configTypes", "configFlavors"], outputs: ["save", "cancel"] }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i1.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
|
|
41
|
+
}
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TileConfigTriggerComponent, decorators: [{
|
|
43
|
+
type: Component,
|
|
44
|
+
args: [{ selector: 'yuv-tile-config-trigger', standalone: true, imports: [CommonModule, TileConfigComponent, YvcIconModule, TranslateModule], template: "<button class=\"settings icon\" (click)=\"openTileConfigOverlay()\"\ntitle=\"{{ 'yuv.tile-config.trigger.tooltip' | translate }}\"\n><yvc-icon [svg]=\"icon()\"></yvc-icon></button>\n\n<ng-template #tplTileConfig>\n <yuv-tile-config\n (save)=\"onObjectConfigSave()\"\n (cancel)=\"onObjectConfigCancel()\"\n [bucket]=\"bucket() || undefined\"\n [bucketLabel]=\"bucketLabel()\"\n [configTypes]=\"options()?.configTypes\"\n [configFlavors]=\"options()?.configFlavors || []\"\n ></yuv-tile-config>\n</ng-template>\n", styles: [":host button{padding:var(--button-padding)}\n"] }]
|
|
45
|
+
}] });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1jb25maWctdHJpZ2dlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3RpbGUtbGlzdC9zcmMvbGliL3RpbGUtY29uZmlnL3RpbGUtY29uZmlnLXRyaWdnZXIvdGlsZS1jb25maWctdHJpZ2dlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3RpbGUtbGlzdC9zcmMvbGliL3RpbGUtY29uZmlnL3RpbGUtY29uZmlnLXRyaWdnZXIvdGlsZS1jb25maWctdHJpZ2dlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBZSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBbUMsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFTdEQsTUFBTSxPQUFPLDBCQUEwQjtJQVB2QztRQVFVLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFbkQsa0JBQWEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFtQixlQUFlLENBQUMsQ0FBQztRQUl0RSxTQUFJLEdBQUcsS0FBSyxDQUFTLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QyxXQUFNLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDekIsZ0JBQVcsR0FBRyxLQUFLLEVBQXNCLENBQUM7UUFDMUMsWUFBTyxHQUFHLEtBQUssQ0FBb0MsU0FBUyxDQUFDLENBQUM7S0F1Qi9EO0lBcEJDLHFCQUFxQjtRQUNuQixNQUFNLGFBQWEsR0FBcUI7WUFDdEMsTUFBTSxFQUFFLEtBQUs7WUFDYixLQUFLLEVBQUUsS0FBSztZQUNaLHFCQUFxQjtZQUNyQixVQUFVO1lBQ1Ysd0JBQXdCO1lBQ3hCLElBQUk7U0FDTCxDQUFDO1FBRUYsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQyxDQUFDOytHQWhDVSwwQkFBMEI7bUdBQTFCLDBCQUEwQix1dEJDaEJ2QyxvaEJBY0Esc0dERlksWUFBWSwrQkFBRSxtQkFBbUIsMkpBQUUsYUFBYSw4SEFBRSxlQUFlOzs0RkFJaEUsMEJBQTBCO2tCQVB0QyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIFRlbXBsYXRlUmVmLCBpbmplY3QsIGlucHV0LCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFlVVl9JQ09OUyB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9pY29ucyc7XG5pbXBvcnQgeyBZdmNJY29uTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgWXZjT3ZlcmxheUNvbmZpZywgWXZjT3ZlcmxheVJlZiwgWXZjT3ZlcmxheVNlcnZpY2UgfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvb3ZlcmxheSc7XG5pbXBvcnQgeyBUaWxlQ29uZmlnQ29tcG9uZW50IH0gZnJvbSAnLi4vdGlsZS1jb25maWcuY29tcG9uZW50JztcbmltcG9ydCB7IFRpbGVMaXN0Q29uZmlnT3B0aW9ucyB9IGZyb20gJy4uLy4uL3RpbGUtbGlzdC90aWxlLWxpc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtdGlsZS1jb25maWctdHJpZ2dlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRpbGVDb25maWdDb21wb25lbnQsIFl2Y0ljb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi90aWxlLWNvbmZpZy10cmlnZ2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RpbGUtY29uZmlnLXRyaWdnZXIuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIFRpbGVDb25maWdUcmlnZ2VyQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBvdmVybGF5U2VydmljZSA9IGluamVjdChZdmNPdmVybGF5U2VydmljZSk7XG5cbiAgdHBsVGlsZUNvbmZpZyA9IHZpZXdDaGlsZC5yZXF1aXJlZDxUZW1wbGF0ZVJlZjxhbnk+PigndHBsVGlsZUNvbmZpZycpO1xuXG4gIHByaXZhdGUgX29SZWY/OiBZdmNPdmVybGF5UmVmO1xuXG4gIGljb24gPSBpbnB1dDxzdHJpbmc+KFlVVl9JQ09OUy5zZXR0aW5ncyk7XG4gIGJ1Y2tldCA9IGlucHV0PHN0cmluZz4oKTtcbiAgYnVja2V0TGFiZWwgPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KCk7XG4gIG9wdGlvbnMgPSBpbnB1dDxUaWxlTGlzdENvbmZpZ09wdGlvbnMgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cblxuICBvcGVuVGlsZUNvbmZpZ092ZXJsYXkoKSB7XG4gICAgY29uc3QgcG9wb3ZlckNvbmZpZzogWXZjT3ZlcmxheUNvbmZpZyA9IHtcbiAgICAgIGhlaWdodDogJzgwJScsXG4gICAgICB3aWR0aDogJzgwJSdcbiAgICAgIC8vIG1heFdpZHRoOiAnNDAwcHgnLFxuICAgICAgLy8gZGF0YToge1xuICAgICAgLy8gICBidWNrZXQ6IHRoaXMuYnVja2V0XG4gICAgICAvLyB9XG4gICAgfTtcblxuICAgIHRoaXMuX29SZWYgPSB0aGlzLm92ZXJsYXlTZXJ2aWNlLm9wZW4odGhpcy50cGxUaWxlQ29uZmlnKCksIG51bGwsIHBvcG92ZXJDb25maWcpO1xuICB9XG5cbiAgb25PYmplY3RDb25maWdTYXZlKCkge1xuICAgIGlmICh0aGlzLl9vUmVmKSB0aGlzLl9vUmVmLmNsb3NlKCk7XG4gIH1cbiAgXG4gIG9uT2JqZWN0Q29uZmlnQ2FuY2VsKCkge1xuICAgIGlmICh0aGlzLl9vUmVmKSB0aGlzLl9vUmVmLmNsb3NlKCk7XG4gIH1cbn1cbiIsIjxidXR0b24gY2xhc3M9XCJzZXR0aW5ncyBpY29uXCIgKGNsaWNrKT1cIm9wZW5UaWxlQ29uZmlnT3ZlcmxheSgpXCJcbnRpdGxlPVwie3sgJ3l1di50aWxlLWNvbmZpZy50cmlnZ2VyLnRvb2x0aXAnIHwgdHJhbnNsYXRlIH19XCJcbj48eXZjLWljb24gW3N2Z109XCJpY29uKClcIj48L3l2Yy1pY29uPjwvYnV0dG9uPlxuXG48bmctdGVtcGxhdGUgI3RwbFRpbGVDb25maWc+XG4gIDx5dXYtdGlsZS1jb25maWdcbiAgICAoc2F2ZSk9XCJvbk9iamVjdENvbmZpZ1NhdmUoKVwiXG4gICAgKGNhbmNlbCk9XCJvbk9iamVjdENvbmZpZ0NhbmNlbCgpXCJcbiAgICBbYnVja2V0XT1cImJ1Y2tldCgpIHx8IHVuZGVmaW5lZFwiXG4gICAgW2J1Y2tldExhYmVsXT1cImJ1Y2tldExhYmVsKClcIlxuICAgIFtjb25maWdUeXBlc109XCJvcHRpb25zKCk/LmNvbmZpZ1R5cGVzXCJcbiAgICBbY29uZmlnRmxhdm9yc109XCJvcHRpb25zKCk/LmNvbmZpZ0ZsYXZvcnMgfHwgW11cIlxuICA+PC95dXYtdGlsZS1jb25maWc+XG48L25nLXRlbXBsYXRlPlxuIl19
|