@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,89 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, ContentChild, ElementRef, HostBinding, Input, TemplateRef, ViewChild } from '@angular/core';
|
|
3
|
+
import { RouterModule } from '@angular/router';
|
|
4
|
+
import { YvcIconModule } from '@yuuvis/components/icon';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "@yuuvis/components/icon";
|
|
8
|
+
import * as i3 from "@angular/router";
|
|
9
|
+
/**
|
|
10
|
+
* Application bar for yuuvis Momentum apps.
|
|
11
|
+
*
|
|
12
|
+
* Adding a `#appBarSideNav` template to the components body will show a menu icon
|
|
13
|
+
* that opens its content in a sidenav element.
|
|
14
|
+
*
|
|
15
|
+
* Adding a `#appBarActions` template to the component will add its content to
|
|
16
|
+
* the actions section (at the end of the app bar).
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* <yuv-app-bar title="MyMomentumApp">
|
|
20
|
+
* <ng-template #appBarSideNav>
|
|
21
|
+
* ... content supposed to end up in a sidenav ...
|
|
22
|
+
* </ng-template>
|
|
23
|
+
* <ng-template #appBarPrimaryActions>
|
|
24
|
+
* ... content supposed to end up in the app bars primary actions section ...
|
|
25
|
+
* </ng-template>
|
|
26
|
+
* <ng-template #appBarActions>
|
|
27
|
+
* ... content supposed to end up in the app bars actions section ...
|
|
28
|
+
* </ng-template>
|
|
29
|
+
* </yuv-app-bar>
|
|
30
|
+
*/
|
|
31
|
+
export class AppBarComponent {
|
|
32
|
+
constructor() {
|
|
33
|
+
this.dialogElement = null;
|
|
34
|
+
this.appBarSideNav = null;
|
|
35
|
+
this.appBarActions = null;
|
|
36
|
+
this.appBarPrimaryActions = null;
|
|
37
|
+
/**
|
|
38
|
+
* Menu icon SVG. By default this will be the hamburger menu icon
|
|
39
|
+
*/
|
|
40
|
+
this.menuIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M140.001-254.616v-59.999h679.998v59.999H140.001Zm0-195.385v-59.998h679.998v59.998H140.001Zm0-195.384v-59.999h679.998v59.999H140.001Z"/></svg>';
|
|
41
|
+
/**
|
|
42
|
+
* Where to route to, when the title is clicked. Defaults to '/'
|
|
43
|
+
*/
|
|
44
|
+
this.appTitleRoute = './';
|
|
45
|
+
this.sidenavVisible = false;
|
|
46
|
+
}
|
|
47
|
+
toggleSideNav() {
|
|
48
|
+
const dialogEl = this.dialogElement.nativeElement;
|
|
49
|
+
if (!dialogEl.hasAttribute('open'))
|
|
50
|
+
dialogEl.showModal();
|
|
51
|
+
else
|
|
52
|
+
dialogEl.close();
|
|
53
|
+
// this.dialogElement!.nativeElement.showModal()
|
|
54
|
+
// this.sidenavVisible = !this.sidenavVisible
|
|
55
|
+
}
|
|
56
|
+
onDialogClick(e) {
|
|
57
|
+
if (e.target.nodeName === 'DIALOG') {
|
|
58
|
+
this.dialogElement?.nativeElement.close();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: AppBarComponent, isStandalone: true, selector: "yuv-app-bar", inputs: { menuIcon: "menuIcon", appTitle: "appTitle", appTitleRoute: "appTitleRoute" }, host: { properties: { "class.has-menu": "this.appBarSideNav" } }, queries: [{ propertyName: "appBarSideNav", first: true, predicate: ["appBarSideNav"], descendants: true, read: TemplateRef }, { propertyName: "appBarActions", first: true, predicate: ["appBarActions"], descendants: true, read: TemplateRef }, { propertyName: "appBarPrimaryActions", first: true, predicate: ["appBarPrimaryActions"], descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "dialogElement", first: true, predicate: ["dialogEl"], descendants: true, read: ElementRef }], ngImport: i0, template: "@if (!!appBarSideNav) {\n <button class=\"menuIcon\" (click)=\"toggleSideNav()\">\n <yvc-icon [svg]=\"menuIcon\"></yvc-icon>\n </button>\n} @else {\n <a class=\"app-title\" [routerLink]=\"appTitleRoute\">\n <yvc-icon [svg]=\"menuIcon\"></yvc-icon>\n </a>\n}\n<a class=\"app-title\" [routerLink]=\"appTitleRoute\">{{ appTitle }}</a>\n\n<div class=\"primary-actions\">\n <ng-container *ngTemplateOutlet=\"appBarPrimaryActions\"></ng-container>\n</div>\n<div class=\"actions\">\n <ng-container *ngTemplateOutlet=\"appBarActions\"></ng-container>\n</div>\n\n<dialog #dialogEl (click)=\"onDialogClick($event)\">\n <section>\n <ng-container *ngTemplateOutlet=\"appBarSideNav\"></ng-container>\n </section>\n</dialog>\n", styles: [":host{--app-bar-icon-size: 24px;--app-bar-button-padding: calc(var(--app-pane-padding) * .75);--app-bar-sidenav-margin-start: 0;display:flex;gap:var(--app-pane-padding);align-items:center;background-color:var(--panel-background)}:host:not(.has-menu){min-height:calc(var(--app-bar-icon-size) + var(--app-bar-button-padding) * 2);padding-inline-start:var(--app-pane-padding)}:host:not(.has-menu) .menuIcon{display:none}:host:not(.has-menu) .sidenav{display:none}:host .menuIcon{border:0;padding:var(--app-bar-button-padding);flex:0 0 auto}:host .menuIcon yvc-icon{--icon-size: var(--app-bar-icon-size)}:host a.app-title{display:flex;align-items:center;justify-content:center;color:var(--text-color-body);text-decoration:none;flex:0 0 auto;border-radius:2px}:host a.app-title:active,:host a.app-title:focus-visible{outline:1px solid var(--text-color-hint);outline-offset:.25em}:host .primary-actions{flex:0;display:flex;margin-inline:var(--app-pane-padding)}:host .actions{flex:1;display:flex;margin-inline-end:var(--app-pane-padding);justify-content:flex-end}:host dialog{max-height:100%;width:max-content;height:100%;inset-inline-start:var(--app-bar-sidenav-margin-start);margin:0;padding:0;box-sizing:border-box;outline:0;border:0}:host dialog::backdrop{background-color:var(--main-background);opacity:.8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}:host dialog>section{height:100%;overflow-y:auto;background-color:var(--main-background);color:var(--text-color-body);border-inline-end:1px solid var(--panel-divider-color)}:host dialog[open]{animation:dialogAppear .2s ease-in-out}@keyframes dialogAppear{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i2.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
|
|
63
|
+
}
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppBarComponent, decorators: [{
|
|
65
|
+
type: Component,
|
|
66
|
+
args: [{ selector: 'yuv-app-bar', standalone: true, imports: [CommonModule, YvcIconModule, RouterModule], template: "@if (!!appBarSideNav) {\n <button class=\"menuIcon\" (click)=\"toggleSideNav()\">\n <yvc-icon [svg]=\"menuIcon\"></yvc-icon>\n </button>\n} @else {\n <a class=\"app-title\" [routerLink]=\"appTitleRoute\">\n <yvc-icon [svg]=\"menuIcon\"></yvc-icon>\n </a>\n}\n<a class=\"app-title\" [routerLink]=\"appTitleRoute\">{{ appTitle }}</a>\n\n<div class=\"primary-actions\">\n <ng-container *ngTemplateOutlet=\"appBarPrimaryActions\"></ng-container>\n</div>\n<div class=\"actions\">\n <ng-container *ngTemplateOutlet=\"appBarActions\"></ng-container>\n</div>\n\n<dialog #dialogEl (click)=\"onDialogClick($event)\">\n <section>\n <ng-container *ngTemplateOutlet=\"appBarSideNav\"></ng-container>\n </section>\n</dialog>\n", styles: [":host{--app-bar-icon-size: 24px;--app-bar-button-padding: calc(var(--app-pane-padding) * .75);--app-bar-sidenav-margin-start: 0;display:flex;gap:var(--app-pane-padding);align-items:center;background-color:var(--panel-background)}:host:not(.has-menu){min-height:calc(var(--app-bar-icon-size) + var(--app-bar-button-padding) * 2);padding-inline-start:var(--app-pane-padding)}:host:not(.has-menu) .menuIcon{display:none}:host:not(.has-menu) .sidenav{display:none}:host .menuIcon{border:0;padding:var(--app-bar-button-padding);flex:0 0 auto}:host .menuIcon yvc-icon{--icon-size: var(--app-bar-icon-size)}:host a.app-title{display:flex;align-items:center;justify-content:center;color:var(--text-color-body);text-decoration:none;flex:0 0 auto;border-radius:2px}:host a.app-title:active,:host a.app-title:focus-visible{outline:1px solid var(--text-color-hint);outline-offset:.25em}:host .primary-actions{flex:0;display:flex;margin-inline:var(--app-pane-padding)}:host .actions{flex:1;display:flex;margin-inline-end:var(--app-pane-padding);justify-content:flex-end}:host dialog{max-height:100%;width:max-content;height:100%;inset-inline-start:var(--app-bar-sidenav-margin-start);margin:0;padding:0;box-sizing:border-box;outline:0;border:0}:host dialog::backdrop{background-color:var(--main-background);opacity:.8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}:host dialog>section{height:100%;overflow-y:auto;background-color:var(--main-background);color:var(--text-color-body);border-inline-end:1px solid var(--panel-divider-color)}:host dialog[open]{animation:dialogAppear .2s ease-in-out}@keyframes dialogAppear{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}\n"] }]
|
|
67
|
+
}], propDecorators: { dialogElement: [{
|
|
68
|
+
type: ViewChild,
|
|
69
|
+
args: ['dialogEl', { read: ElementRef }]
|
|
70
|
+
}], appBarSideNav: [{
|
|
71
|
+
type: HostBinding,
|
|
72
|
+
args: ['class.has-menu']
|
|
73
|
+
}, {
|
|
74
|
+
type: ContentChild,
|
|
75
|
+
args: ['appBarSideNav', { read: TemplateRef }]
|
|
76
|
+
}], appBarActions: [{
|
|
77
|
+
type: ContentChild,
|
|
78
|
+
args: ['appBarActions', { read: TemplateRef }]
|
|
79
|
+
}], appBarPrimaryActions: [{
|
|
80
|
+
type: ContentChild,
|
|
81
|
+
args: ['appBarPrimaryActions', { read: TemplateRef }]
|
|
82
|
+
}], menuIcon: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}], appTitle: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], appTitleRoute: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}] } });
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2FwcC1iYXIvc3JjL2xpYi9hcHAtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvYXBwLWJhci9zcmMvbGliL2FwcC1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7QUFFeEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQVFILE1BQU0sT0FBTyxlQUFlO0lBUDVCO1FBUStDLGtCQUFhLEdBQXlDLElBQUksQ0FBQztRQUd4RyxrQkFBYSxHQUE0QixJQUFJLENBQUM7UUFDUSxrQkFBYSxHQUE0QixJQUFJLENBQUM7UUFDdkMseUJBQW9CLEdBQTRCLElBQUksQ0FBQztRQUVsSDs7V0FFRztRQUNNLGFBQVEsR0FDZixnUEFBZ1AsQ0FBQztRQUtuUDs7V0FFRztRQUNNLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBRXZDLG1CQUFjLEdBQUcsS0FBSyxDQUFDO0tBZ0J4QjtJQWRDLGFBQWE7UUFDWCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYyxDQUFDLGFBQWEsQ0FBQztRQUNuRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7WUFBRSxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7O1lBQ3BELFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUV0QixnREFBZ0Q7UUFDaEQsNkNBQTZDO0lBQy9DLENBQUM7SUFFRCxhQUFhLENBQUMsQ0FBYTtRQUN6QixJQUFLLENBQUMsQ0FBQyxNQUFzQixDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNwRCxJQUFJLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM1QyxDQUFDO0lBQ0gsQ0FBQzsrR0FyQ1UsZUFBZTttR0FBZixlQUFlLHdUQUdhLFdBQVcseUdBRVgsV0FBVyx1SEFDSixXQUFXLG1IQUwxQixVQUFVLDZCQ25DM0MsMnRCQXVCQSw0dERET1ksWUFBWSxxTUFBRSxhQUFhLDhIQUFFLFlBQVk7OzRGQUl4QyxlQUFlO2tCQVAzQixTQUFTOytCQUNFLGFBQWEsY0FDWCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQzs4QkFLUCxhQUFhO3NCQUF6RCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBRzNDLGFBQWE7c0JBRlosV0FBVzt1QkFBQyxnQkFBZ0I7O3NCQUM1QixZQUFZO3VCQUFDLGVBQWUsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBRUUsYUFBYTtzQkFBbEUsWUFBWTt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUNTLG9CQUFvQjtzQkFBaEYsWUFBWTt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBS2xELFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBZdmNJY29uTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2ljb24nO1xuXG4vKipcbiAqIEFwcGxpY2F0aW9uIGJhciBmb3IgeXV1dmlzIE1vbWVudHVtIGFwcHMuXG4gKlxuICogQWRkaW5nIGEgYCNhcHBCYXJTaWRlTmF2YCB0ZW1wbGF0ZSB0byB0aGUgY29tcG9uZW50cyBib2R5IHdpbGwgc2hvdyBhIG1lbnUgaWNvblxuICogdGhhdCBvcGVucyBpdHMgY29udGVudCBpbiBhIHNpZGVuYXYgZWxlbWVudC5cbiAqXG4gKiBBZGRpbmcgYSBgI2FwcEJhckFjdGlvbnNgIHRlbXBsYXRlIHRvIHRoZSBjb21wb25lbnQgd2lsbCBhZGQgaXRzIGNvbnRlbnQgdG9cbiAqIHRoZSBhY3Rpb25zIHNlY3Rpb24gKGF0IHRoZSBlbmQgb2YgdGhlIGFwcCBiYXIpLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8eXV2LWFwcC1iYXIgdGl0bGU9XCJNeU1vbWVudHVtQXBwXCI+XG4gKiAgIDxuZy10ZW1wbGF0ZSAjYXBwQmFyU2lkZU5hdj5cbiAqICAgICAuLi4gY29udGVudCBzdXBwb3NlZCB0byBlbmQgdXAgaW4gYSBzaWRlbmF2IC4uLlxuICogICA8L25nLXRlbXBsYXRlPlxuICogICA8bmctdGVtcGxhdGUgI2FwcEJhclByaW1hcnlBY3Rpb25zPlxuICogICAgIC4uLiBjb250ZW50IHN1cHBvc2VkIHRvIGVuZCB1cCBpbiB0aGUgYXBwIGJhcnMgcHJpbWFyeSBhY3Rpb25zIHNlY3Rpb24gLi4uXG4gKiAgIDwvbmctdGVtcGxhdGU+XG4gKiAgIDxuZy10ZW1wbGF0ZSAjYXBwQmFyQWN0aW9ucz5cbiAqICAgICAuLi4gY29udGVudCBzdXBwb3NlZCB0byBlbmQgdXAgaW4gdGhlIGFwcCBiYXJzIGFjdGlvbnMgc2VjdGlvbiAuLi5cbiAqICAgPC9uZy10ZW1wbGF0ZT5cbiAqIDwveXV2LWFwcC1iYXI+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3l1di1hcHAtYmFyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgWXZjSWNvbk1vZHVsZSwgUm91dGVyTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcC1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hcHAtYmFyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQXBwQmFyQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgnZGlhbG9nRWwnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgZGlhbG9nRWxlbWVudDogRWxlbWVudFJlZjxIVE1MRGlhbG9nRWxlbWVudD4gfCBudWxsID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5oYXMtbWVudScpXG4gIEBDb250ZW50Q2hpbGQoJ2FwcEJhclNpZGVOYXYnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIGFwcEJhclNpZGVOYXY6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcbiAgQENvbnRlbnRDaGlsZCgnYXBwQmFyQWN0aW9ucycsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgYXBwQmFyQWN0aW9uczogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuICBAQ29udGVudENoaWxkKCdhcHBCYXJQcmltYXJ5QWN0aW9ucycsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgYXBwQmFyUHJpbWFyeUFjdGlvbnM6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogTWVudSBpY29uIFNWRy4gQnkgZGVmYXVsdCB0aGlzIHdpbGwgYmUgdGhlIGhhbWJ1cmdlciBtZW51IGljb25cbiAgICovXG4gIEBJbnB1dCgpIG1lbnVJY29uID1cbiAgICAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAtOTYwIDk2MCA5NjBcIiB3aWR0aD1cIjI0XCI+PHBhdGggZD1cIk0xNDAuMDAxLTI1NC42MTZ2LTU5Ljk5OWg2NzkuOTk4djU5Ljk5OUgxNDAuMDAxWm0wLTE5NS4zODV2LTU5Ljk5OGg2NzkuOTk4djU5Ljk5OEgxNDAuMDAxWm0wLTE5NS4zODR2LTU5Ljk5OWg2NzkuOTk4djU5Ljk5OUgxNDAuMDAxWlwiLz48L3N2Zz4nO1xuICAvKipcbiAgICogQXBwIHRpdGxlIHZpc2libGUgaW4gdGhlIGFwcCBiZXNpZGUgdGhlIG1lbnVcbiAgICovXG4gIEBJbnB1dCgpIGFwcFRpdGxlPzogc3RyaW5nO1xuICAvKipcbiAgICogV2hlcmUgdG8gcm91dGUgdG8sIHdoZW4gdGhlIHRpdGxlIGlzIGNsaWNrZWQuIERlZmF1bHRzIHRvICcvJ1xuICAgKi9cbiAgQElucHV0KCkgYXBwVGl0bGVSb3V0ZT86IHN0cmluZyA9ICcuLyc7XG5cbiAgc2lkZW5hdlZpc2libGUgPSBmYWxzZTtcblxuICB0b2dnbGVTaWRlTmF2KCkge1xuICAgIGNvbnN0IGRpYWxvZ0VsID0gdGhpcy5kaWFsb2dFbGVtZW50IS5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghZGlhbG9nRWwuaGFzQXR0cmlidXRlKCdvcGVuJykpIGRpYWxvZ0VsLnNob3dNb2RhbCgpO1xuICAgIGVsc2UgZGlhbG9nRWwuY2xvc2UoKTtcblxuICAgIC8vIHRoaXMuZGlhbG9nRWxlbWVudCEubmF0aXZlRWxlbWVudC5zaG93TW9kYWwoKVxuICAgIC8vIHRoaXMuc2lkZW5hdlZpc2libGUgPSAhdGhpcy5zaWRlbmF2VmlzaWJsZVxuICB9XG5cbiAgb25EaWFsb2dDbGljayhlOiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKChlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkubm9kZU5hbWUgPT09ICdESUFMT0cnKSB7XG4gICAgICB0aGlzLmRpYWxvZ0VsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQuY2xvc2UoKTtcbiAgICB9XG4gIH1cbn1cbiIsIkBpZiAoISFhcHBCYXJTaWRlTmF2KSB7XG4gIDxidXR0b24gY2xhc3M9XCJtZW51SWNvblwiIChjbGljayk9XCJ0b2dnbGVTaWRlTmF2KClcIj5cbiAgICA8eXZjLWljb24gW3N2Z109XCJtZW51SWNvblwiPjwveXZjLWljb24+XG4gIDwvYnV0dG9uPlxufSBAZWxzZSB7XG4gIDxhIGNsYXNzPVwiYXBwLXRpdGxlXCIgW3JvdXRlckxpbmtdPVwiYXBwVGl0bGVSb3V0ZVwiPlxuICAgIDx5dmMtaWNvbiBbc3ZnXT1cIm1lbnVJY29uXCI+PC95dmMtaWNvbj5cbiAgPC9hPlxufVxuPGEgY2xhc3M9XCJhcHAtdGl0bGVcIiBbcm91dGVyTGlua109XCJhcHBUaXRsZVJvdXRlXCI+e3sgYXBwVGl0bGUgfX08L2E+XG5cbjxkaXYgY2xhc3M9XCJwcmltYXJ5LWFjdGlvbnNcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFwcEJhclByaW1hcnlBY3Rpb25zXCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhcHBCYXJBY3Rpb25zXCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPGRpYWxvZyAjZGlhbG9nRWwgKGNsaWNrKT1cIm9uRGlhbG9nQ2xpY2soJGV2ZW50KVwiPlxuICA8c2VjdGlvbj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYXBwQmFyU2lkZU5hdlwiPjwvbmctY29udGFpbmVyPlxuICA8L3NlY3Rpb24+XG48L2RpYWxvZz5cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXV1dmlzLWNsaWVudC1mcmFtZXdvcmstYXBwLWJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvYXBwLWJhci9zcmMveXV1dmlzLWNsaWVudC1mcmFtZXdvcmstYXBwLWJhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './lib/clipboard.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2NsaXBib2FyZC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2NsaXBib2FyZC5jb21wb25lbnQnO1xuIl19
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Component, DestroyRef, inject, input, output } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ClipboardService, TranslateModule, TranslateService } from '@yuuvis/client-core';
|
|
4
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
|
+
import { YvcIconModule } from '@yuuvis/components/icon';
|
|
6
|
+
import { marker } from '@colsen1991/ngx-translate-extract-marker';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@yuuvis/client-core";
|
|
9
|
+
marker('yuv.clipboard.text.copy.single');
|
|
10
|
+
marker('yuv.clipboard.text.copy.multiple');
|
|
11
|
+
marker('yuv.clipboard.text.cut.single');
|
|
12
|
+
marker('yuv.clipboard.text.cut.multiple');
|
|
13
|
+
export class ClipboardComponent {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.#clipboard = inject(ClipboardService);
|
|
16
|
+
this.#destroyRef = inject(DestroyRef);
|
|
17
|
+
this.translate = inject(TranslateService);
|
|
18
|
+
this.enablePaste = input(false);
|
|
19
|
+
this.bucket = input();
|
|
20
|
+
this.paste = output();
|
|
21
|
+
}
|
|
22
|
+
#clipboard;
|
|
23
|
+
#destroyRef;
|
|
24
|
+
clearClipboard() {
|
|
25
|
+
this.#clipboard.clear(this.bucket());
|
|
26
|
+
}
|
|
27
|
+
ngOnInit() {
|
|
28
|
+
this.#clipboard
|
|
29
|
+
.clipboard$(this.bucket())
|
|
30
|
+
.pipe(takeUntilDestroyed(this.#destroyRef))
|
|
31
|
+
.subscribe((cd) => {
|
|
32
|
+
this.clipboardData = cd;
|
|
33
|
+
if (cd?.mode && cd.objects?.length) {
|
|
34
|
+
const key = `yuv.clipboard.text.${cd?.mode}.${cd.objects.length === 1 ? 'single' : 'multiple'}`;
|
|
35
|
+
this.label = this.translate.instant(key, { count: cd?.objects.length });
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClipboardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ClipboardComponent, isStandalone: true, selector: "yuv-clipboard", inputs: { enablePaste: { classPropertyName: "enablePaste", publicName: "enablePaste", isSignal: true, isRequired: false, transformFunction: null }, bucket: { classPropertyName: "bucket", publicName: "bucket", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { paste: "paste" }, host: { properties: { "attr.inert": "(clipboardData?.objects?.length > 0) ? null : true" } }, ngImport: i0, template: "@if (clipboardData?.objects?.length) {\n <div class=\"clipboard\">\n <span>{{ label }}</span>\n <button (click)=\"clearClipboard()\">{{ 'yuv.clipboard.button.cancel' | translate }}</button>\n @if (enablePaste()) {\n <button class=\"primary\" (click)=\"paste.emit()\">{{ 'yuv.clipboard.button.paste' | translate }}</button>\n }\n </div>\n}\n", styles: [":host{--_clipboard-background-color: var(--clipboard-background-color, var(--color-warning));--_clipboard-border-radius: var(--clipboard-border-radius, .25rem);display:flex;justify-content:stretch}:host .clipboard{display:flex;align-items:center;flex:1;line-height:1em;background-color:var(--_clipboard-background-color);border-radius:var(--_clipboard-border-radius);padding:.2rem .3rem;gap:.5rem;color:var(--text-color-body)}:host .clipboard span{flex:1;padding-inline:.5rem}:host .clipboard button{padding:.25rem .5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: YvcIconModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
|
|
41
|
+
}
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClipboardComponent, decorators: [{
|
|
43
|
+
type: Component,
|
|
44
|
+
args: [{ selector: 'yuv-clipboard', standalone: true, imports: [CommonModule, YvcIconModule, TranslateModule], host: {
|
|
45
|
+
'[attr.inert]': '(clipboardData?.objects?.length > 0) ? null : true'
|
|
46
|
+
}, template: "@if (clipboardData?.objects?.length) {\n <div class=\"clipboard\">\n <span>{{ label }}</span>\n <button (click)=\"clearClipboard()\">{{ 'yuv.clipboard.button.cancel' | translate }}</button>\n @if (enablePaste()) {\n <button class=\"primary\" (click)=\"paste.emit()\">{{ 'yuv.clipboard.button.paste' | translate }}</button>\n }\n </div>\n}\n", styles: [":host{--_clipboard-background-color: var(--clipboard-background-color, var(--color-warning));--_clipboard-border-radius: var(--clipboard-border-radius, .25rem);display:flex;justify-content:stretch}:host .clipboard{display:flex;align-items:center;flex:1;line-height:1em;background-color:var(--_clipboard-background-color);border-radius:var(--_clipboard-border-radius);padding:.2rem .3rem;gap:.5rem;color:var(--text-color-body)}:host .clipboard span{flex:1;padding-inline:.5rem}:host .clipboard button{padding:.25rem .5rem}\n"] }]
|
|
47
|
+
}] });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvY2xpcGJvYXJkL3NyYy9saWIvY2xpcGJvYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvY2xpcGJvYXJkL3NyYy9saWIvY2xpcGJvYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQWlCLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBUyxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMENBQTBDLENBQUM7OztBQUVsRSxNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztBQUN6QyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQztBQUMzQyxNQUFNLENBQUMsK0JBQStCLENBQUMsQ0FBQztBQUN4QyxNQUFNLENBQUMsaUNBQWlDLENBQUMsQ0FBQztBQVkxQyxNQUFNLE9BQU8sa0JBQWtCO0lBVi9CO1FBV0UsZUFBVSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3RDLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pDLGNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUtyQyxnQkFBVyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVwQyxXQUFNLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDekIsVUFBSyxHQUFHLE1BQU0sRUFBRSxDQUFDO0tBa0JsQjtJQTVCQyxVQUFVLENBQTRCO0lBQ3RDLFdBQVcsQ0FBc0I7SUFXakMsY0FBYztRQUNaLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVU7YUFDWixVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ3pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDMUMsU0FBUyxDQUFDLENBQUMsRUFBNkIsRUFBRSxFQUFFO1lBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUNuQyxNQUFNLEdBQUcsR0FBRyxzQkFBc0IsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2hHLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUMxRSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQTVCVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixxZEN2Qi9CLHlXQVNBLG9rQkRPWSxZQUFZLDhCQUFFLGFBQWEsOEJBQUUsZUFBZTs7NEZBTzNDLGtCQUFrQjtrQkFWOUIsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsUUFHakQ7d0JBQ0osY0FBYyxFQUFFLG9EQUFvRDtxQkFDckUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIERlc3Ryb3lSZWYsIGluamVjdCwgaW5wdXQsIE9uSW5pdCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2xpcGJvYXJkRGF0YSwgQ2xpcGJvYXJkU2VydmljZSwgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBBQ1RJT05fSUNPTiB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9hY3Rpb25zJztcbmltcG9ydCB7IElDT05TLCBZdmNJY29uTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGNvbHNlbjE5OTEvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcic7XG5cbm1hcmtlcigneXV2LmNsaXBib2FyZC50ZXh0LmNvcHkuc2luZ2xlJyk7XG5tYXJrZXIoJ3l1di5jbGlwYm9hcmQudGV4dC5jb3B5Lm11bHRpcGxlJyk7XG5tYXJrZXIoJ3l1di5jbGlwYm9hcmQudGV4dC5jdXQuc2luZ2xlJyk7XG5tYXJrZXIoJ3l1di5jbGlwYm9hcmQudGV4dC5jdXQubXVsdGlwbGUnKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneXV2LWNsaXBib2FyZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFl2Y0ljb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jbGlwYm9hcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY2xpcGJvYXJkLmNvbXBvbmVudC5zY3NzJyxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5pbmVydF0nOiAnKGNsaXBib2FyZERhdGE/Lm9iamVjdHM/Lmxlbmd0aCA+IDApID8gbnVsbCA6IHRydWUnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgQ2xpcGJvYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgI2NsaXBib2FyZCA9IGluamVjdChDbGlwYm9hcmRTZXJ2aWNlKTtcbiAgI2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcblxuICBjbGlwYm9hcmREYXRhPzogQ2xpcGJvYXJkRGF0YTtcblxuICBsYWJlbD86IHN0cmluZztcbiAgZW5hYmxlUGFzdGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgYnVja2V0ID0gaW5wdXQ8c3RyaW5nPigpO1xuICBwYXN0ZSA9IG91dHB1dCgpO1xuXG4gIGNsZWFyQ2xpcGJvYXJkKCkge1xuICAgIHRoaXMuI2NsaXBib2FyZC5jbGVhcih0aGlzLmJ1Y2tldCgpKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuI2NsaXBib2FyZFxuICAgICAgLmNsaXBib2FyZCQodGhpcy5idWNrZXQoKSlcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNkOiBDbGlwYm9hcmREYXRhIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgICAgIHRoaXMuY2xpcGJvYXJkRGF0YSA9IGNkO1xuICAgICAgICBpZiAoY2Q/Lm1vZGUgJiYgY2Qub2JqZWN0cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3Qga2V5ID0gYHl1di5jbGlwYm9hcmQudGV4dC4ke2NkPy5tb2RlfS4ke2NkLm9iamVjdHMubGVuZ3RoID09PSAxID8gJ3NpbmdsZScgOiAnbXVsdGlwbGUnfWA7XG4gICAgICAgICAgdGhpcy5sYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoa2V5LCB7IGNvdW50OiBjZD8ub2JqZWN0cy5sZW5ndGggfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG59XG4iLCJAaWYgKGNsaXBib2FyZERhdGE/Lm9iamVjdHM/Lmxlbmd0aCkge1xuICA8ZGl2IGNsYXNzPVwiY2xpcGJvYXJkXCI+XG4gICAgPHNwYW4+e3sgbGFiZWwgfX08L3NwYW4+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xlYXJDbGlwYm9hcmQoKVwiPnt7ICd5dXYuY2xpcGJvYXJkLmJ1dHRvbi5jYW5jZWwnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XG4gICAgQGlmIChlbmFibGVQYXN0ZSgpKSB7XG4gICAgICA8YnV0dG9uIGNsYXNzPVwicHJpbWFyeVwiIChjbGljayk9XCJwYXN0ZS5lbWl0KClcIj57eyAneXV2LmNsaXBib2FyZC5idXR0b24ucGFzdGUnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XG4gICAgfVxuICA8L2Rpdj5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXV1dmlzLWNsaWVudC1mcmFtZXdvcmstY2xpcGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9jbGlwYm9hcmQvc3JjL3l1dXZpcy1jbGllbnQtZnJhbWV3b3JrLWNsaXBib2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './lib/directives';
|
|
2
|
+
export * from './lib/components/token-input/token-input.component';
|
|
3
|
+
export * from './lib/components/token-input/token-input.interface';
|
|
4
|
+
export * from './lib/components/focus-indicator/focus-indicator.component';
|
|
5
|
+
export * from './lib/directives/noop-value-accessor.directive';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2NvbW1vbi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLGdEQUFnRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rva2VuLWlucHV0L3Rva2VuLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rva2VuLWlucHV0L3Rva2VuLWlucHV0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZvY3VzLWluZGljYXRvci9mb2N1cy1pbmRpY2F0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvbm9vcC12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmUnO1xuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Component, ElementRef, inject } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { filter, fromEvent } from 'rxjs';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class FocusIndicatorComponent {
|
|
7
|
+
#elRef = inject(ElementRef);
|
|
8
|
+
constructor() {
|
|
9
|
+
fromEvent(document, 'keyup')
|
|
10
|
+
.pipe(takeUntilDestroyed(), filter((e) => e.code === 'Tab'))
|
|
11
|
+
.subscribe(() => this.#position());
|
|
12
|
+
fromEvent(document, 'focusout')
|
|
13
|
+
.pipe(takeUntilDestroyed())
|
|
14
|
+
.subscribe(() => {
|
|
15
|
+
const fi = this.#elRef.nativeElement;
|
|
16
|
+
fi.classList.remove('visible');
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
#position() {
|
|
20
|
+
setTimeout(() => {
|
|
21
|
+
const focusedElement = document.activeElement;
|
|
22
|
+
const fi = this.#elRef.nativeElement;
|
|
23
|
+
if (fi && focusedElement && focusedElement.matches(':focus-visible')) {
|
|
24
|
+
fi.classList.add('visible');
|
|
25
|
+
const { left, top, width, height } = focusedElement.getBoundingClientRect();
|
|
26
|
+
fi.style.translate = ` ${Math.round(left)}px ${Math.round(top)}px`;
|
|
27
|
+
fi.style.width = `${Math.round(width)}px`;
|
|
28
|
+
fi.style.height = `${Math.round(height)}px`;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FocusIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FocusIndicatorComponent, isStandalone: true, selector: "yuv-focus-indicator", host: { attributes: { "inert": "true" } }, ngImport: i0, template: '', isInline: true, styles: [":host{--outline-color: rgba(var(--color-accent-rgb), .4);--outline-width: 2px;--outline-offset: 1px;--border-radius: var(--outline-width);display:block;position:absolute;inset-inline-start:0;inset-block-start:0;opacity:0;outline:var(--outline-width) solid var(--outline-color);outline-offset:var(--outline-offset);border-radius:var(--border-radius);transition:all .15s ease}:host.visible{opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
34
|
+
}
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FocusIndicatorComponent, decorators: [{
|
|
36
|
+
type: Component,
|
|
37
|
+
args: [{ selector: 'yuv-focus-indicator', standalone: true, imports: [CommonModule], template: '', host: {
|
|
38
|
+
inert: 'true'
|
|
39
|
+
}, styles: [":host{--outline-color: rgba(var(--color-accent-rgb), .4);--outline-width: 2px;--outline-offset: 1px;--border-radius: var(--outline-width);display:block;position:absolute;inset-inline-start:0;inset-block-start:0;opacity:0;outline:var(--outline-width) solid var(--outline-color);outline-offset:var(--outline-offset);border-radius:var(--border-radius);transition:all .15s ease}:host.visible{opacity:1}\n"] }]
|
|
40
|
+
}], ctorParameters: () => [] });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtaW5kaWNhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvY29tbW9uL3NyYy9saWIvY29tcG9uZW50cy9mb2N1cy1pbmRpY2F0b3IvZm9jdXMtaW5kaWNhdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFPLE1BQU0sTUFBTSxDQUFDOztBQVk5QyxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLE1BQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFNUI7UUFDRSxTQUFTLENBQWdCLFFBQVEsRUFBRSxPQUFPLENBQUM7YUFDeEMsSUFBSSxDQUNILGtCQUFrQixFQUFFLEVBQ3BCLE1BQU0sQ0FBQyxDQUFDLENBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQy9DO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRXJDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDO2FBQzVCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2FBQzFCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQTRCLENBQUM7WUFDcEQsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsU0FBUztRQUNQLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDO1lBQzlDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBNEIsQ0FBQztZQUVwRCxJQUFJLEVBQUUsSUFBSSxjQUFjLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JFLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUM1QixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsY0FBYyxDQUFDLHFCQUFxQixFQUFFLENBQUM7Z0JBQzVFLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0JBQ25FLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUMxQyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztZQUM5QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQWhDVSx1QkFBdUI7bUdBQXZCLHVCQUF1QiwwSEFOeEIsRUFBRSx5ZEFERixZQUFZOzs0RkFPWCx1QkFBdUI7a0JBVm5DLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiLEVBQUUsUUFFTjt3QkFDSixLQUFLLEVBQUUsTUFBTTtxQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgZmlsdGVyLCBmcm9tRXZlbnQsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtZm9jdXMtaW5kaWNhdG9yJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlOiAnJyxcbiAgc3R5bGVVcmw6ICcuL2ZvY3VzLWluZGljYXRvci5jb21wb25lbnQuc2NzcycsXG4gIGhvc3Q6IHtcbiAgICBpbmVydDogJ3RydWUnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgRm9jdXNJbmRpY2F0b3JDb21wb25lbnQge1xuICAjZWxSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KGRvY3VtZW50LCAna2V5dXAnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgICBmaWx0ZXIoKGU6IEtleWJvYXJkRXZlbnQpID0+IGUuY29kZSA9PT0gJ1RhYicpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuI3Bvc2l0aW9uKCkpO1xuXG4gICAgZnJvbUV2ZW50KGRvY3VtZW50LCAnZm9jdXNvdXQnKVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgZmkgPSB0aGlzLiNlbFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBmaS5jbGFzc0xpc3QucmVtb3ZlKCd2aXNpYmxlJyk7XG4gICAgICB9KTtcbiAgfVxuXG4gICNwb3NpdGlvbigpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IGZvY3VzZWRFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICAgIGNvbnN0IGZpID0gdGhpcy4jZWxSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgaWYgKGZpICYmIGZvY3VzZWRFbGVtZW50ICYmIGZvY3VzZWRFbGVtZW50Lm1hdGNoZXMoJzpmb2N1cy12aXNpYmxlJykpIHtcbiAgICAgICAgZmkuY2xhc3NMaXN0LmFkZCgndmlzaWJsZScpO1xuICAgICAgICBjb25zdCB7IGxlZnQsIHRvcCwgd2lkdGgsIGhlaWdodCB9ID0gZm9jdXNlZEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGZpLnN0eWxlLnRyYW5zbGF0ZSA9IGAgJHtNYXRoLnJvdW5kKGxlZnQpfXB4ICR7TWF0aC5yb3VuZCh0b3ApfXB4YDtcbiAgICAgICAgZmkuc3R5bGUud2lkdGggPSBgJHtNYXRoLnJvdW5kKHdpZHRoKX1weGA7XG4gICAgICAgIGZpLnN0eWxlLmhlaWdodCA9IGAke01hdGgucm91bmQoaGVpZ2h0KX1weGA7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|