@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,114 @@
|
|
|
1
|
+
import { computed, contentChildren, Directive, ElementRef, HostListener, inject, input, output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class DragSelectDirective {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.#selectStartX = 0;
|
|
6
|
+
this.#selectStartY = 0;
|
|
7
|
+
this.#selection = [];
|
|
8
|
+
this.items = contentChildren(DragSelectItemDirective);
|
|
9
|
+
this.#selectables = computed(() => this.items().map((item) => item.el));
|
|
10
|
+
this.yuvDragSelect = input();
|
|
11
|
+
this.dragSelectChange = output();
|
|
12
|
+
this.dragSelect = output();
|
|
13
|
+
this.#onPointerUp = () => {
|
|
14
|
+
removeEventListener('pointermove', this.#resize);
|
|
15
|
+
removeEventListener('pointerup', this.#onPointerUp);
|
|
16
|
+
if (this.#selection.length)
|
|
17
|
+
this.dragSelect.emit(this.#selection);
|
|
18
|
+
if (this.#selector)
|
|
19
|
+
this.#selector.remove();
|
|
20
|
+
};
|
|
21
|
+
this.#resize = (event) => {
|
|
22
|
+
if (!this.#selector)
|
|
23
|
+
return;
|
|
24
|
+
const diffX = event.pageX - this.#selectStartX;
|
|
25
|
+
const diffY = event.pageY - this.#selectStartY;
|
|
26
|
+
this.#selector.style.left = diffX < 0 ? this.#selectStartX + diffX + 'px' : this.#selectStartX + 'px';
|
|
27
|
+
this.#selector.style.top = diffY < 0 ? this.#selectStartY + diffY + 'px' : this.#selectStartY + 'px';
|
|
28
|
+
this.#selector.style.height = Math.abs(diffY) + 'px';
|
|
29
|
+
this.#selector.style.width = Math.abs(diffX) + 'px';
|
|
30
|
+
this.#selector.style.border = `1px solid ${this.yuvDragSelect()?.selectorColor || 'var(--color-accent'}`;
|
|
31
|
+
this.#checkSelected();
|
|
32
|
+
};
|
|
33
|
+
this.#checkSelected = () => {
|
|
34
|
+
if (!this.#selector)
|
|
35
|
+
return;
|
|
36
|
+
const select = this.#selector.getBoundingClientRect();
|
|
37
|
+
const { x, y, height, width } = select;
|
|
38
|
+
if (!height || !width)
|
|
39
|
+
return;
|
|
40
|
+
const currSelectionLength = this.#selection.length;
|
|
41
|
+
this.#selectables().forEach((selectable, idx) => {
|
|
42
|
+
const r1 = { x: x + window.scrollX, y: y + window.scrollY, height, width };
|
|
43
|
+
const r2 = selectable.getBoundingClientRect();
|
|
44
|
+
this.#selection = this.#selection.filter((s) => s !== idx);
|
|
45
|
+
if (this.#checkRectIntersection(r1, r2)) {
|
|
46
|
+
this.#selection.push(idx);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
if (currSelectionLength !== this.#selection.length) {
|
|
50
|
+
this.dragSelectChange.emit(this.#selection);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
this.#checkRectIntersection = (r1, r2) => {
|
|
54
|
+
return !(r1.x + r1.width < r2.x || r2.x + r2.width < r1.x || r1.y + r1.height < r2.y || r2.y + r2.height < r1.y);
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
#selector;
|
|
58
|
+
#selectStartX;
|
|
59
|
+
#selectStartY;
|
|
60
|
+
#selection;
|
|
61
|
+
onPointerDown(event) {
|
|
62
|
+
if (this.yuvDragSelect()?.disabled)
|
|
63
|
+
return;
|
|
64
|
+
event.preventDefault();
|
|
65
|
+
this.#selectStartX = event.pageX;
|
|
66
|
+
this.#selectStartY = event.pageY;
|
|
67
|
+
const div = document.createElement('div');
|
|
68
|
+
div.style.position = 'absolute';
|
|
69
|
+
div.style.width = '0';
|
|
70
|
+
div.style.height = '0';
|
|
71
|
+
div.style.left = this.#selectStartX + 'px';
|
|
72
|
+
div.style.top = this.#selectStartY + 'px';
|
|
73
|
+
div.classList.add('drag-select');
|
|
74
|
+
this.#selector = div;
|
|
75
|
+
document.body.append(this.#selector);
|
|
76
|
+
this.#selection = [];
|
|
77
|
+
addEventListener('pointermove', this.#resize);
|
|
78
|
+
addEventListener('pointerup', this.#onPointerUp);
|
|
79
|
+
}
|
|
80
|
+
#selectables;
|
|
81
|
+
#onPointerUp;
|
|
82
|
+
#resize;
|
|
83
|
+
#checkSelected;
|
|
84
|
+
#checkRectIntersection;
|
|
85
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DragSelectDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
86
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.13", type: DragSelectDirective, isStandalone: true, selector: "[yuvDragSelect]", inputs: { yuvDragSelect: { classPropertyName: "yuvDragSelect", publicName: "yuvDragSelect", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dragSelectChange: "dragSelectChange", dragSelect: "dragSelect" }, host: { listeners: { "pointerdown": "onPointerDown($event)" } }, queries: [{ propertyName: "items", predicate: DragSelectItemDirective, isSignal: true }], ngImport: i0 }); }
|
|
87
|
+
}
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DragSelectDirective, decorators: [{
|
|
89
|
+
type: Directive,
|
|
90
|
+
args: [{
|
|
91
|
+
selector: '[yuvDragSelect]',
|
|
92
|
+
standalone: true
|
|
93
|
+
}]
|
|
94
|
+
}], propDecorators: { onPointerDown: [{
|
|
95
|
+
type: HostListener,
|
|
96
|
+
args: ['pointerdown', ['$event']]
|
|
97
|
+
}] } });
|
|
98
|
+
export class DragSelectItemDirective {
|
|
99
|
+
constructor() {
|
|
100
|
+
this.#elRef = inject(ElementRef);
|
|
101
|
+
this.el = this.#elRef.nativeElement;
|
|
102
|
+
}
|
|
103
|
+
#elRef;
|
|
104
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DragSelectItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
105
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DragSelectItemDirective, isStandalone: true, selector: "[yuvDragSelectItem]", ngImport: i0 }); }
|
|
106
|
+
}
|
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DragSelectItemDirective, decorators: [{
|
|
108
|
+
type: Directive,
|
|
109
|
+
args: [{
|
|
110
|
+
selector: '[yuvDragSelectItem]',
|
|
111
|
+
standalone: true
|
|
112
|
+
}]
|
|
113
|
+
}] });
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1zZWxlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9jb21tb24vc3JjL2xpYi9kaXJlY3RpdmVzL2RyYWctc2VsZWN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFrQnRILE1BQU0sT0FBTyxtQkFBbUI7SUFKaEM7UUFNRSxrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUVsQixlQUFVLEdBQWEsRUFBRSxDQUFDO1FBdUIxQixVQUFLLEdBQUcsZUFBZSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDakQsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFbkUsa0JBQWEsR0FBRyxLQUFLLEVBQXFCLENBQUM7UUFDM0MscUJBQWdCLEdBQUcsTUFBTSxFQUFZLENBQUM7UUFDdEMsZUFBVSxHQUFHLE1BQU0sRUFBWSxDQUFDO1FBRWhDLGlCQUFZLEdBQUcsR0FBRyxFQUFFO1lBQ2xCLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakQsbUJBQW1CLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNwRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTTtnQkFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FB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VCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgY29udGVudENoaWxkcmVuLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmludGVyZmFjZSBTZWxlY3RhYmxlUmVjdCB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEcmFnU2VsZWN0T3B0aW9ucyB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgc2VsZWN0b3JDb2xvcj86IHN0cmluZztcbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3l1dkRyYWdTZWxlY3RdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEcmFnU2VsZWN0RGlyZWN0aXZlIHtcbiAgI3NlbGVjdG9yPzogSFRNTERpdkVsZW1lbnQ7XG4gICNzZWxlY3RTdGFydFggPSAwO1xuICAjc2VsZWN0U3RhcnRZID0gMDtcblxuICAjc2VsZWN0aW9uOiBudW1iZXJbXSA9IFtdO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgWyckZXZlbnQnXSkgb25Qb2ludGVyRG93bihldmVudDogUG9pbnRlckV2ZW50KSB7XG4gICAgaWYgKHRoaXMueXV2RHJhZ1NlbGVjdCgpPy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy4jc2VsZWN0U3RhcnRYID0gZXZlbnQucGFnZVg7XG4gICAgdGhpcy4jc2VsZWN0U3RhcnRZID0gZXZlbnQucGFnZVk7XG5cbiAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBkaXYuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIGRpdi5zdHlsZS53aWR0aCA9ICcwJztcbiAgICBkaXYuc3R5bGUuaGVpZ2h0ID0gJzAnO1xuICAgIGRpdi5zdHlsZS5sZWZ0ID0gdGhpcy4jc2VsZWN0U3RhcnRYICsgJ3B4JztcbiAgICBkaXYuc3R5bGUudG9wID0gdGhpcy4jc2VsZWN0U3RhcnRZICsgJ3B4JztcbiAgICBkaXYuY2xhc3NMaXN0LmFkZCgnZHJhZy1zZWxlY3QnKTtcbiAgICB0aGlzLiNzZWxlY3RvciA9IGRpdjtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZCh0aGlzLiNzZWxlY3Rvcik7XG5cbiAgICB0aGlzLiNzZWxlY3Rpb24gPSBbXTtcbiAgICBhZGRFdmVudExpc3RlbmVyKCdwb2ludGVybW92ZScsIHRoaXMuI3Jlc2l6ZSk7XG4gICAgYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgdGhpcy4jb25Qb2ludGVyVXApO1xuICB9XG5cbiAgaXRlbXMgPSBjb250ZW50Q2hpbGRyZW4oRHJhZ1NlbGVjdEl0ZW1EaXJlY3RpdmUpO1xuICAjc2VsZWN0YWJsZXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLml0ZW1zKCkubWFwKChpdGVtKSA9PiBpdGVtLmVsKSk7XG5cbiAgeXV2RHJhZ1NlbGVjdCA9IGlucHV0PERyYWdTZWxlY3RPcHRpb25zPigpO1xuICBkcmFnU2VsZWN0Q2hhbmdlID0gb3V0cHV0PG51bWJlcltdPigpO1xuICBkcmFnU2VsZWN0ID0gb3V0cHV0PG51bWJlcltdPigpO1xuXG4gICNvblBvaW50ZXJVcCA9ICgpID0+IHtcbiAgICByZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVybW92ZScsIHRoaXMuI3Jlc2l6ZSk7XG4gICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgdGhpcy4jb25Qb2ludGVyVXApO1xuICAgIGlmICh0aGlzLiNzZWxlY3Rpb24ubGVuZ3RoKSB0aGlzLmRyYWdTZWxlY3QuZW1pdCh0aGlzLiNzZWxlY3Rpb24pO1xuICAgIGlmICh0aGlzLiNzZWxlY3RvcikgdGhpcy4jc2VsZWN0b3IucmVtb3ZlKCk7XG4gIH07XG5cbiAgI3Jlc2l6ZSA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgaWYgKCF0aGlzLiNzZWxlY3RvcikgcmV0dXJuO1xuICAgIGNvbnN0IGRpZmZYID0gZXZlbnQucGFnZVggLSB0aGlzLiNzZWxlY3RTdGFydFg7XG4gICAgY29uc3QgZGlmZlkgPSBldmVudC5wYWdlWSAtIHRoaXMuI3NlbGVjdFN0YXJ0WTtcbiAgICB0aGlzLiNzZWxlY3Rvci5zdHlsZS5sZWZ0ID0gZGlmZlggPCAwID8gdGhpcy4jc2VsZWN0U3RhcnRYICsgZGlmZlggKyAncHgnIDogdGhpcy4jc2VsZWN0U3RhcnRYICsgJ3B4JztcbiAgICB0aGlzLiNzZWxlY3Rvci5zdHlsZS50b3AgPSBkaWZmWSA8IDAgPyB0aGlzLiNzZWxlY3RTdGFydFkgKyBkaWZmWSArICdweCcgOiB0aGlzLiNzZWxlY3RTdGFydFkgKyAncHgnO1xuICAgIHRoaXMuI3NlbGVjdG9yLnN0eWxlLmhlaWdodCA9IE1hdGguYWJzKGRpZmZZKSArICdweCc7XG4gICAgdGhpcy4jc2VsZWN0b3Iuc3R5bGUud2lkdGggPSBNYXRoLmFicyhkaWZmWCkgKyAncHgnO1xuXG4gICAgdGhpcy4jc2VsZWN0b3Iuc3R5bGUuYm9yZGVyID0gYDFweCBzb2xpZCAke3RoaXMueXV2RHJhZ1NlbGVjdCgpPy5zZWxlY3RvckNvbG9yIHx8ICd2YXIoLS1jb2xvci1hY2NlbnQnfWA7XG4gICAgdGhpcy4jY2hlY2tTZWxlY3RlZCgpO1xuICB9O1xuXG4gICNjaGVja1NlbGVjdGVkID0gKCkgPT4ge1xuICAgIGlmICghdGhpcy4jc2VsZWN0b3IpIHJldHVybjtcbiAgICBjb25zdCBzZWxlY3QgPSB0aGlzLiNzZWxlY3Rvci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB7IHgsIHksIGhlaWdodCwgd2lkdGggfSA9IHNlbGVjdDtcbiAgICBpZiAoIWhlaWdodCB8fCAhd2lkdGgpIHJldHVybjtcblxuICAgIGNvbnN0IGN1cnJTZWxlY3Rpb25MZW5ndGggPSB0aGlzLiNzZWxlY3Rpb24ubGVuZ3RoO1xuICAgIHRoaXMuI3NlbGVjdGFibGVzKCkuZm9yRWFjaCgoc2VsZWN0YWJsZSwgaWR4KSA9PiB7XG4gICAgICBjb25zdCByMTogU2VsZWN0YWJsZVJlY3QgPSB7IHg6IHggKyB3aW5kb3cuc2Nyb2xsWCwgeTogeSArIHdpbmRvdy5zY3JvbGxZLCBoZWlnaHQsIHdpZHRoIH07XG4gICAgICBjb25zdCByMjogU2VsZWN0YWJsZVJlY3QgPSBzZWxlY3RhYmxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgdGhpcy4jc2VsZWN0aW9uID0gdGhpcy4jc2VsZWN0aW9uLmZpbHRlcigocykgPT4gcyAhPT0gaWR4KTtcbiAgICAgIGlmICh0aGlzLiNjaGVja1JlY3RJbnRlcnNlY3Rpb24ocjEsIHIyKSkge1xuICAgICAgICB0aGlzLiNzZWxlY3Rpb24ucHVzaChpZHgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGN1cnJTZWxlY3Rpb25MZW5ndGggIT09IHRoaXMuI3NlbGVjdGlvbi5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZHJhZ1NlbGVjdENoYW5nZS5lbWl0KHRoaXMuI3NlbGVjdGlvbik7XG4gICAgfVxuICB9O1xuXG4gICNjaGVja1JlY3RJbnRlcnNlY3Rpb24gPSAocjE6IFNlbGVjdGFibGVSZWN0LCByMjogU2VsZWN0YWJsZVJlY3QpID0+IHtcbiAgICByZXR1cm4gIShyMS54ICsgcjEud2lkdGggPCByMi54IHx8IHIyLnggKyByMi53aWR0aCA8IHIxLnggfHwgcjEueSArIHIxLmhlaWdodCA8IHIyLnkgfHwgcjIueSArIHIyLmhlaWdodCA8IHIxLnkpO1xuICB9O1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbeXV2RHJhZ1NlbGVjdEl0ZW1dJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEcmFnU2VsZWN0SXRlbURpcmVjdGl2ZSB7XG4gICNlbFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgZWwgPSB0aGlzLiNlbFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xufVxuIl19
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { Directive, ElementRef, HostListener, inject, input, output } from '@angular/core';
|
|
2
|
+
import { Utils } from '@yuuvis/client-core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class FileDropZoneDirective {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.#elRef = inject(ElementRef);
|
|
7
|
+
this.#fileOver = false;
|
|
8
|
+
this.#defaultDragOverCoverStyles = {
|
|
9
|
+
outline: '2px dashed var(--color-accent)',
|
|
10
|
+
display: 'flex',
|
|
11
|
+
transition: 'background-color .3s ease-in-out',
|
|
12
|
+
'z-index': '500',
|
|
13
|
+
'align-items': 'center',
|
|
14
|
+
'justify-content': 'center',
|
|
15
|
+
'outline-offset': '-2px',
|
|
16
|
+
'background-color': 'rgba(var(--color-accent-rgb), .5)'
|
|
17
|
+
};
|
|
18
|
+
this.#defaultDragOverCoverLabelStyles = {
|
|
19
|
+
outline: '1px solid var(--color-accent)',
|
|
20
|
+
padding: 'var(--app-pane-padding, 16px)',
|
|
21
|
+
'background-color': 'rgba(var(--color-accent-rgb), .9)',
|
|
22
|
+
color: 'var(--color-accent-tone)'
|
|
23
|
+
};
|
|
24
|
+
this.yuvFileDropZone = input();
|
|
25
|
+
this.fileDropDisabled = input(false);
|
|
26
|
+
this.fileDrop = output();
|
|
27
|
+
this.fileDropOver = output();
|
|
28
|
+
}
|
|
29
|
+
#elRef;
|
|
30
|
+
#coverElement;
|
|
31
|
+
#fileOver;
|
|
32
|
+
set fileOver(fo) {
|
|
33
|
+
if (fo !== this.#fileOver) {
|
|
34
|
+
this.#fileOver = fo;
|
|
35
|
+
this.fileDropOver.emit(fo);
|
|
36
|
+
this.#toggleCover();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
get fileOver() {
|
|
40
|
+
return this.#fileOver;
|
|
41
|
+
}
|
|
42
|
+
#defaultDragOverCoverStyles;
|
|
43
|
+
#defaultDragOverCoverLabelStyles;
|
|
44
|
+
onDrop(event) {
|
|
45
|
+
if (this.fileDropDisabled())
|
|
46
|
+
return;
|
|
47
|
+
event.preventDefault();
|
|
48
|
+
event.stopPropagation();
|
|
49
|
+
this.fileOver = false;
|
|
50
|
+
const dataTransfer = event.dataTransfer;
|
|
51
|
+
if (dataTransfer) {
|
|
52
|
+
if (dataTransfer?.items) {
|
|
53
|
+
const files = [];
|
|
54
|
+
for (let i = 0; i < dataTransfer.items.length; i++) {
|
|
55
|
+
// If dropped items aren't files, reject them
|
|
56
|
+
if (dataTransfer.items[i].kind === 'file') {
|
|
57
|
+
const file = dataTransfer.items[i].getAsFile();
|
|
58
|
+
if (file)
|
|
59
|
+
files.push(file);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
dataTransfer.items.clear();
|
|
63
|
+
this.fileDrop.emit(files);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
const files = dataTransfer.files;
|
|
67
|
+
dataTransfer.clearData();
|
|
68
|
+
this.fileDrop.emit(Array.from(files));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
onDragOver(event) {
|
|
73
|
+
if (this.fileDropDisabled())
|
|
74
|
+
return;
|
|
75
|
+
event.stopPropagation();
|
|
76
|
+
event.preventDefault();
|
|
77
|
+
this.fileOver = true;
|
|
78
|
+
}
|
|
79
|
+
onDragLeave(event) {
|
|
80
|
+
if (this.fileDropDisabled())
|
|
81
|
+
return;
|
|
82
|
+
if (event.target.getAttribute('id') === this.#coverElement?.getAttribute('id')) {
|
|
83
|
+
this.fileOver = false;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
onBodyDragOver(event) {
|
|
87
|
+
event.preventDefault();
|
|
88
|
+
event.stopPropagation();
|
|
89
|
+
}
|
|
90
|
+
onBodyDrop(event) {
|
|
91
|
+
event.preventDefault();
|
|
92
|
+
}
|
|
93
|
+
#toggleCover() {
|
|
94
|
+
const el = this.#elRef.nativeElement;
|
|
95
|
+
if (this.#coverElement) {
|
|
96
|
+
el.style.position = 'initial';
|
|
97
|
+
this.#coverElement.remove();
|
|
98
|
+
this.#coverElement = undefined;
|
|
99
|
+
}
|
|
100
|
+
if (this.#fileOver) {
|
|
101
|
+
el.style.position = 'relative';
|
|
102
|
+
this.#coverElement = this.#createCoverElement();
|
|
103
|
+
el.append(this.#coverElement);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
#createCoverElement() {
|
|
107
|
+
const coverElement = document.createElement('div');
|
|
108
|
+
coverElement.setAttribute('id', Utils.uuid());
|
|
109
|
+
coverElement.style.position = 'absolute';
|
|
110
|
+
coverElement.style.inset = '0';
|
|
111
|
+
const styles = this.yuvFileDropZone()?.coverStyles || this.#defaultDragOverCoverStyles;
|
|
112
|
+
Object.keys(styles).forEach((k) => {
|
|
113
|
+
coverElement.style[k] = styles[k];
|
|
114
|
+
});
|
|
115
|
+
const label = this.yuvFileDropZone()?.label;
|
|
116
|
+
if (label) {
|
|
117
|
+
const coverLabelElement = document.createElement('div');
|
|
118
|
+
coverLabelElement.innerText = label;
|
|
119
|
+
const labelStyles = this.yuvFileDropZone()?.coverLabelStyles || this.#defaultDragOverCoverLabelStyles;
|
|
120
|
+
Object.keys(labelStyles).forEach((k) => {
|
|
121
|
+
coverLabelElement.style[k] = labelStyles[k];
|
|
122
|
+
});
|
|
123
|
+
coverLabelElement.style.pointerEvents = 'none';
|
|
124
|
+
coverElement.append(coverLabelElement);
|
|
125
|
+
}
|
|
126
|
+
return coverElement;
|
|
127
|
+
}
|
|
128
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileDropZoneDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
129
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: FileDropZoneDirective, isStandalone: true, selector: "[yuvFileDropZone]", inputs: { yuvFileDropZone: { classPropertyName: "yuvFileDropZone", publicName: "yuvFileDropZone", isSignal: true, isRequired: false, transformFunction: null }, fileDropDisabled: { classPropertyName: "fileDropDisabled", publicName: "fileDropDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileDrop: "fileDrop", fileDropOver: "fileDropOver" }, host: { listeners: { "drop": "onDrop($event)", "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "body:dragover": "onBodyDragOver($event)", "body:drop": "onBodyDrop($event)" } }, ngImport: i0 }); }
|
|
130
|
+
}
|
|
131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileDropZoneDirective, decorators: [{
|
|
132
|
+
type: Directive,
|
|
133
|
+
args: [{
|
|
134
|
+
selector: '[yuvFileDropZone]',
|
|
135
|
+
standalone: true
|
|
136
|
+
}]
|
|
137
|
+
}], propDecorators: { onDrop: [{
|
|
138
|
+
type: HostListener,
|
|
139
|
+
args: ['drop', ['$event']]
|
|
140
|
+
}], onDragOver: [{
|
|
141
|
+
type: HostListener,
|
|
142
|
+
args: ['dragover', ['$event']]
|
|
143
|
+
}], onDragLeave: [{
|
|
144
|
+
type: HostListener,
|
|
145
|
+
args: ['dragleave', ['$event']]
|
|
146
|
+
}], onBodyDragOver: [{
|
|
147
|
+
type: HostListener,
|
|
148
|
+
args: ['body:dragover', ['$event']]
|
|
149
|
+
}], onBodyDrop: [{
|
|
150
|
+
type: HostListener,
|
|
151
|
+
args: ['body:drop', ['$event']]
|
|
152
|
+
}] } });
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLXpvbmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9jb21tb24vc3JjL2xpYi9kaXJlY3RpdmVzL2ZpbGUtZHJvcC16b25lL2ZpbGUtZHJvcC16b25lLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQU81QyxNQUFNLE9BQU8scUJBQXFCO0lBSmxDO1FBS0UsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUk1QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBWWxCLGdDQUEyQixHQUEyQjtZQUNwRCxPQUFPLEVBQUUsZ0NBQWdDO1lBQ3pDLE9BQU8sRUFBRSxNQUFNO1lBQ2YsVUFBVSxFQUFFLGtDQUFrQztZQUM5QyxTQUFTLEVBQUUsS0FBSztZQUNoQixhQUFhLEVBQUUsUUFBUTtZQUN2QixpQkFBaUIsRUFBRSxRQUFRO1lBQzNCLGdCQUFnQixFQUFFLE1BQU07WUFDeEIsa0JBQWtCLEVBQUUsbUNBQW1DO1NBQ3hELENBQUM7UUFFRixxQ0FBZ0MsR0FBMkI7WUFDekQsT0FBTyxFQUFFLCtCQUErQjtZQUV4QyxPQUFPLEVBQUUsK0JBQStCO1lBQ3hDLGtCQUFrQixFQUFFLG1DQUFtQztZQUN2RCxLQUFLLEVBQUUsMEJBQTBCO1NBQ2xDLENBQUM7UUFFRixvQkFBZSxHQUFHLEtBQUssRUFBdUIsQ0FBQztRQUMvQyxxQkFBZ0IsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFekMsYUFBUSxHQUFHLE1BQU0sRUFBVSxDQUFDO1FBQzVC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QkFTckMsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNekMsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBpbmplY3QsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBGaWxlRHJvcFpvbmVPcHRpb25zIH0gZnJvbSAnLi9maWxlLWRyb3Atem9uZS5pbnRlcmZhY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbeXV2RmlsZURyb3Bab25lXScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRmlsZURyb3Bab25lRGlyZWN0aXZlIHtcbiAgI2VsUmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gICNjb3ZlckVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcblxuICAjZmlsZU92ZXIgPSBmYWxzZTtcbiAgc2V0IGZpbGVPdmVyKGZvOiBib29sZWFuKSB7XG4gICAgaWYgKGZvICE9PSB0aGlzLiNmaWxlT3Zlcikge1xuICAgICAgdGhpcy4jZmlsZU92ZXIgPSBmbztcbiAgICAgIHRoaXMuZmlsZURyb3BPdmVyLmVtaXQoZm8pO1xuICAgICAgdGhpcy4jdG9nZ2xlQ292ZXIoKTtcbiAgICB9XG4gIH1cbiAgZ2V0IGZpbGVPdmVyKCkge1xuICAgIHJldHVybiB0aGlzLiNmaWxlT3ZlcjtcbiAgfVxuXG4gICNkZWZhdWx0RHJhZ092ZXJDb3ZlclN0eWxlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBvdXRsaW5lOiAnMnB4IGRhc2hlZCB2YXIoLS1jb2xvci1hY2NlbnQpJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgdHJhbnNpdGlvbjogJ2JhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0JyxcbiAgICAnei1pbmRleCc6ICc1MDAnLFxuICAgICdhbGlnbi1pdGVtcyc6ICdjZW50ZXInLFxuICAgICdqdXN0aWZ5LWNvbnRlbnQnOiAnY2VudGVyJyxcbiAgICAnb3V0bGluZS1vZmZzZXQnOiAnLTJweCcsXG4gICAgJ2JhY2tncm91bmQtY29sb3InOiAncmdiYSh2YXIoLS1jb2xvci1hY2NlbnQtcmdiKSwgLjUpJ1xuICB9O1xuXG4gICNkZWZhdWx0RHJhZ092ZXJDb3ZlckxhYmVsU3R5bGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIG91dGxpbmU6ICcxcHggc29saWQgdmFyKC0tY29sb3ItYWNjZW50KScsXG5cbiAgICBwYWRkaW5nOiAndmFyKC0tYXBwLXBhbmUtcGFkZGluZywgMTZweCknLFxuICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogJ3JnYmEodmFyKC0tY29sb3ItYWNjZW50LXJnYiksIC45KScsXG4gICAgY29sb3I6ICd2YXIoLS1jb2xvci1hY2NlbnQtdG9uZSknXG4gIH07XG5cbiAgeXV2RmlsZURyb3Bab25lID0gaW5wdXQ8RmlsZURyb3Bab25lT3B0aW9ucz4oKTtcbiAgZmlsZURyb3BEaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBmaWxlRHJvcCA9IG91dHB1dDxGaWxlW10+KCk7XG4gIGZpbGVEcm9wT3ZlciA9IG91dHB1dDxib29sZWFuPigpO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxuICBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgIGlmICh0aGlzLmZpbGVEcm9wRGlzYWJsZWQoKSkgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5maWxlT3ZlciA9IGZhbHNlO1xuXG4gICAgY29uc3QgZGF0YVRyYW5zZmVyOiBEYXRhVHJhbnNmZXIgfCBudWxsID0gZXZlbnQuZGF0YVRyYW5zZmVyO1xuXG4gICAgaWYgKGRhdGFUcmFuc2Zlcikge1xuICAgICAgaWYgKGRhdGFUcmFuc2Zlcj8uaXRlbXMpIHtcbiAgICAgICAgY29uc3QgZmlsZXM6IEZpbGVbXSA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGFUcmFuc2Zlci5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIC8vIElmIGRyb3BwZWQgaXRlbXMgYXJlbid0IGZpbGVzLCByZWplY3QgdGhlbVxuICAgICAgICAgIGlmIChkYXRhVHJhbnNmZXIuaXRlbXNbaV0ua2luZCA9PT0gJ2ZpbGUnKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlID0gZGF0YVRyYW5zZmVyLml0ZW1zW2ldLmdldEFzRmlsZSgpO1xuICAgICAgICAgICAgaWYgKGZpbGUpIGZpbGVzLnB1c2goZmlsZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGRhdGFUcmFuc2Zlci5pdGVtcy5jbGVhcigpO1xuICAgICAgICB0aGlzLmZpbGVEcm9wLmVtaXQoZmlsZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZmlsZXMgPSBkYXRhVHJhbnNmZXIuZmlsZXM7XG4gICAgICAgIGRhdGFUcmFuc2Zlci5jbGVhckRhdGEoKTtcbiAgICAgICAgdGhpcy5maWxlRHJvcC5lbWl0KEFycmF5LmZyb20oZmlsZXMpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnb3ZlcicsIFsnJGV2ZW50J10pXG4gIG9uRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgIGlmICh0aGlzLmZpbGVEcm9wRGlzYWJsZWQoKSkgcmV0dXJuO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5maWxlT3ZlciA9IHRydWU7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnbGVhdmUnLCBbJyRldmVudCddKVxuICBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgaWYgKHRoaXMuZmlsZURyb3BEaXNhYmxlZCgpKSByZXR1cm47XG4gICAgaWYgKChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmdldEF0dHJpYnV0ZSgnaWQnKSA9PT0gdGhpcy4jY292ZXJFbGVtZW50Py5nZXRBdHRyaWJ1dGUoJ2lkJykpIHtcbiAgICAgIHRoaXMuZmlsZU92ZXIgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdib2R5OmRyYWdvdmVyJywgWyckZXZlbnQnXSlcbiAgb25Cb2R5RHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cbiAgQEhvc3RMaXN0ZW5lcignYm9keTpkcm9wJywgWyckZXZlbnQnXSlcbiAgb25Cb2R5RHJvcChldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gICN0b2dnbGVDb3ZlcigpIHtcbiAgICBjb25zdCBlbDogSFRNTEVsZW1lbnQgPSB0aGlzLiNlbFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgaWYgKHRoaXMuI2NvdmVyRWxlbWVudCkge1xuICAgICAgZWwuc3R5bGUucG9zaXRpb24gPSAnaW5pdGlhbCc7XG4gICAgICB0aGlzLiNjb3ZlckVsZW1lbnQucmVtb3ZlKCk7XG4gICAgICB0aGlzLiNjb3ZlckVsZW1lbnQgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICh0aGlzLiNmaWxlT3Zlcikge1xuICAgICAgZWwuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xuICAgICAgdGhpcy4jY292ZXJFbGVtZW50ID0gdGhpcy4jY3JlYXRlQ292ZXJFbGVtZW50KCk7XG4gICAgICBlbC5hcHBlbmQodGhpcy4jY292ZXJFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICAjY3JlYXRlQ292ZXJFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICBjb25zdCBjb3ZlckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBjb3ZlckVsZW1lbnQuc2V0QXR0cmlidXRlKCdpZCcsIFV0aWxzLnV1aWQoKSk7XG4gICAgY292ZXJFbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICBjb3ZlckVsZW1lbnQuc3R5bGUuaW5zZXQgPSAnMCc7XG4gICAgY29uc3Qgc3R5bGVzID0gdGhpcy55dXZGaWxlRHJvcFpvbmUoKT8uY292ZXJTdHlsZXMgfHwgdGhpcy4jZGVmYXVsdERyYWdPdmVyQ292ZXJTdHlsZXM7XG4gICAgT2JqZWN0LmtleXMoc3R5bGVzKS5mb3JFYWNoKChrOiBzdHJpbmcpID0+IHtcbiAgICAgIChjb3ZlckVsZW1lbnQuc3R5bGUgYXMgYW55KVtrXSA9IHN0eWxlc1trXTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGxhYmVsID0gdGhpcy55dXZGaWxlRHJvcFpvbmUoKT8ubGFiZWw7XG4gICAgaWYgKGxhYmVsKSB7XG4gICAgICBjb25zdCBjb3ZlckxhYmVsRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgY292ZXJMYWJlbEVsZW1lbnQuaW5uZXJUZXh0ID0gbGFiZWw7XG4gICAgICBjb25zdCBsYWJlbFN0eWxlcyA9IHRoaXMueXV2RmlsZURyb3Bab25lKCk/LmNvdmVyTGFiZWxTdHlsZXMgfHwgdGhpcy4jZGVmYXVsdERyYWdPdmVyQ292ZXJMYWJlbFN0eWxlcztcbiAgICAgIE9iamVjdC5rZXlzKGxhYmVsU3R5bGVzKS5mb3JFYWNoKChrOiBzdHJpbmcpID0+IHtcbiAgICAgICAgKGNvdmVyTGFiZWxFbGVtZW50LnN0eWxlIGFzIGFueSlba10gPSBsYWJlbFN0eWxlc1trXTtcbiAgICAgIH0pO1xuICAgICAgY292ZXJMYWJlbEVsZW1lbnQuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJztcbiAgICAgIGNvdmVyRWxlbWVudC5hcHBlbmQoY292ZXJMYWJlbEVsZW1lbnQpO1xuICAgIH1cbiAgICByZXR1cm4gY292ZXJFbGVtZW50O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLXpvbmUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9jb21tb24vc3JjL2xpYi9kaXJlY3RpdmVzL2ZpbGUtZHJvcC16b25lL2ZpbGUtZHJvcC16b25lLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBGaWxlRHJvcFpvbmVPcHRpb25zIHtcbiAgICAvLyBjc3MgY2xhc3MgdG8gYmUgYWRkZWQgd2hlbiBhIGZpbGUgaXMgZHJhZ2dlbmQgb3ZlciB0aGUgaG9zdCBjb21wb25lbnRcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICAvLyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGUgZmlsZU92ZXIgY292ZXIgZWxlbWVudFxuICAgIGNvdmVyU3R5bGVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICAvLyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGUgbGFiZWwgZWxlbWVudCBvbiB0aGUgZmlsZU92ZXIgY292ZXIgZWxlbWVudFxuICAgIC8vIG9ubHkgYXBwbGllcyBpZiBhIGxhYmVsIGhhcyBiZWVuIHByb3ZpZGVkXG4gICAgY292ZXJMYWJlbFN0eWxlcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59Il19
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Directive, ElementRef, EventEmitter, HostBinding, HostListener, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Directive keeping track of the focus beeing within a component. Once the component or
|
|
5
|
+
* any of its child components gain focus, a class of `focusWithin` will be set on the
|
|
6
|
+
* host component in order to allow styling it while beeing focused. Furthermore you can
|
|
7
|
+
* register callbacks once the component gets or looses focus.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* // just set the css class
|
|
11
|
+
* <some-component yuvFocusWithin></some-component>
|
|
12
|
+
* // set the css class and listen to focus changes
|
|
13
|
+
* <some-component (yuvFocusWithin)="onFocusEnter()" (yuvFocusWithinBlur)="onFocusLeave()"></some-component>
|
|
14
|
+
*/
|
|
15
|
+
export class FocusWithinDirective {
|
|
16
|
+
onFocusIn(evt) {
|
|
17
|
+
const hadFocusWithin = this.hasFocusWithin;
|
|
18
|
+
this.hasFocusWithin = this.matchesFocusWithin();
|
|
19
|
+
if (!hadFocusWithin && this.hasFocusWithin) {
|
|
20
|
+
this.yuvFocusWithin.emit();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
onFocusOut(evt) {
|
|
24
|
+
const hadFocusWithin = this.hasFocusWithin;
|
|
25
|
+
this.hasFocusWithin = this.matchesFocusWithin();
|
|
26
|
+
if (hadFocusWithin && !this.hasFocusWithin) {
|
|
27
|
+
this.yuvFocusWithinBlur.emit();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @ignore
|
|
32
|
+
*/
|
|
33
|
+
constructor(elRef) {
|
|
34
|
+
this.elRef = elRef;
|
|
35
|
+
this.eventCount = 0;
|
|
36
|
+
this.hasFocusWithin = false;
|
|
37
|
+
/**
|
|
38
|
+
* Emitted once the component or any of its child components gains focus.
|
|
39
|
+
*/
|
|
40
|
+
this.yuvFocusWithin = new EventEmitter();
|
|
41
|
+
/**
|
|
42
|
+
* Emitted once the component (incl. any of its child components) looses focus.
|
|
43
|
+
*/
|
|
44
|
+
this.yuvFocusWithinBlur = new EventEmitter();
|
|
45
|
+
}
|
|
46
|
+
// Determine if the given node matches the given selector.
|
|
47
|
+
// @see: https://www.bennadel.com/blog/3476-checking-to-see-if-an-element-has-a-css-pseudo-class-in-javascript.htm
|
|
48
|
+
matchesFocusWithin() {
|
|
49
|
+
const node = this.elRef.nativeElement;
|
|
50
|
+
var nativeMatches = node.matches || node.msMatchesSelector;
|
|
51
|
+
try {
|
|
52
|
+
return nativeMatches.call(node, ':focus-within');
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FocusWithinDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
59
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FocusWithinDirective, isStandalone: true, selector: "[yuvFocusWithin]", outputs: { yuvFocusWithin: "yuvFocusWithin", yuvFocusWithinBlur: "yuvFocusWithinBlur" }, host: { listeners: { "focusin": "onFocusIn($event)", "focusout": "onFocusOut($event)" }, properties: { "class.focusWithin": "this.hasFocusWithin" } }, ngImport: i0 }); }
|
|
60
|
+
}
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FocusWithinDirective, decorators: [{
|
|
62
|
+
type: Directive,
|
|
63
|
+
args: [{
|
|
64
|
+
selector: '[yuvFocusWithin]',
|
|
65
|
+
standalone: true
|
|
66
|
+
}]
|
|
67
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { hasFocusWithin: [{
|
|
68
|
+
type: HostBinding,
|
|
69
|
+
args: ['class.focusWithin']
|
|
70
|
+
}], onFocusIn: [{
|
|
71
|
+
type: HostListener,
|
|
72
|
+
args: ['focusin', ['$event']]
|
|
73
|
+
}], onFocusOut: [{
|
|
74
|
+
type: HostListener,
|
|
75
|
+
args: ['focusout', ['$event']]
|
|
76
|
+
}], yuvFocusWithin: [{
|
|
77
|
+
type: Output
|
|
78
|
+
}], yuvFocusWithinBlur: [{
|
|
79
|
+
type: Output
|
|
80
|
+
}] } });
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtd2l0aGluLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvY29tbW9uL3NyYy9saWIvZGlyZWN0aXZlcy9mb2N1cy13aXRoaW4uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFDdkc7Ozs7Ozs7Ozs7O0dBV0c7QUFLSCxNQUFNLE9BQU8sb0JBQW9CO0lBR00sU0FBUyxDQUFDLEdBQWU7UUFDNUQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMzQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFDcUMsVUFBVSxDQUFDLEdBQWU7UUFDOUQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMzQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ2hELElBQUksY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQVdEOztPQUVHO0lBRUgsWUFBb0IsS0FBaUI7UUFBakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQTlCN0IsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNXLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBZ0J6RDs7V0FFRztRQUNPLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5Qzs7V0FFRztRQUNPLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFNVCxDQUFDO0lBRTFDLDBEQUEwRDtJQUMxRCxrSEFBa0g7SUFDMUcsa0JBQWtCO1FBQ3hCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO1FBQ3RDLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQzNELElBQUksQ0FBQztZQUNILE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDOytHQTNDVSxvQkFBb0I7bUdBQXBCLG9CQUFvQjs7NEZBQXBCLG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7K0VBR21DLGNBQWM7c0JBQS9DLFdBQVc7dUJBQUMsbUJBQW1CO2dCQUNLLFNBQVM7c0JBQTdDLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU9HLFVBQVU7c0JBQS9DLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVcxQixjQUFjO3NCQUF2QixNQUFNO2dCQUlHLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbi8qKlxuICogRGlyZWN0aXZlIGtlZXBpbmcgdHJhY2sgb2YgdGhlIGZvY3VzIGJlZWluZyB3aXRoaW4gYSBjb21wb25lbnQuIE9uY2UgdGhlIGNvbXBvbmVudCBvclxuICogYW55IG9mIGl0cyBjaGlsZCBjb21wb25lbnRzIGdhaW4gZm9jdXMsIGEgY2xhc3Mgb2YgYGZvY3VzV2l0aGluYCB3aWxsIGJlIHNldCBvbiB0aGVcbiAqIGhvc3QgY29tcG9uZW50IGluIG9yZGVyIHRvIGFsbG93IHN0eWxpbmcgaXQgd2hpbGUgYmVlaW5nIGZvY3VzZWQuIEZ1cnRoZXJtb3JlIHlvdSBjYW5cbiAqIHJlZ2lzdGVyIGNhbGxiYWNrcyBvbmNlIHRoZSBjb21wb25lbnQgZ2V0cyBvciBsb29zZXMgZm9jdXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIGp1c3Qgc2V0IHRoZSBjc3MgY2xhc3NcbiAqIDxzb21lLWNvbXBvbmVudCB5dXZGb2N1c1dpdGhpbj48L3NvbWUtY29tcG9uZW50PlxuICogLy8gc2V0IHRoZSBjc3MgY2xhc3MgYW5kIGxpc3RlbiB0byBmb2N1cyBjaGFuZ2VzXG4gKiA8c29tZS1jb21wb25lbnQgKHl1dkZvY3VzV2l0aGluKT1cIm9uRm9jdXNFbnRlcigpXCIgKHl1dkZvY3VzV2l0aGluQmx1cik9XCJvbkZvY3VzTGVhdmUoKVwiPjwvc29tZS1jb21wb25lbnQ+XG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t5dXZGb2N1c1dpdGhpbl0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEZvY3VzV2l0aGluRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSBldmVudENvdW50ID0gMDtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mb2N1c1dpdGhpbicpIGhhc0ZvY3VzV2l0aGluID0gZmFsc2U7XG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzaW4nLCBbJyRldmVudCddKSBvbkZvY3VzSW4oZXZ0OiBGb2N1c0V2ZW50KSB7XG4gICAgY29uc3QgaGFkRm9jdXNXaXRoaW4gPSB0aGlzLmhhc0ZvY3VzV2l0aGluO1xuICAgIHRoaXMuaGFzRm9jdXNXaXRoaW4gPSB0aGlzLm1hdGNoZXNGb2N1c1dpdGhpbigpO1xuICAgIGlmICghaGFkRm9jdXNXaXRoaW4gJiYgdGhpcy5oYXNGb2N1c1dpdGhpbikge1xuICAgICAgdGhpcy55dXZGb2N1c1dpdGhpbi5lbWl0KCk7XG4gICAgfVxuICB9XG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWyckZXZlbnQnXSkgb25Gb2N1c091dChldnQ6IEZvY3VzRXZlbnQpIHtcbiAgICBjb25zdCBoYWRGb2N1c1dpdGhpbiA9IHRoaXMuaGFzRm9jdXNXaXRoaW47XG4gICAgdGhpcy5oYXNGb2N1c1dpdGhpbiA9IHRoaXMubWF0Y2hlc0ZvY3VzV2l0aGluKCk7XG4gICAgaWYgKGhhZEZvY3VzV2l0aGluICYmICF0aGlzLmhhc0ZvY3VzV2l0aGluKSB7XG4gICAgICB0aGlzLnl1dkZvY3VzV2l0aGluQmx1ci5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVtaXR0ZWQgb25jZSB0aGUgY29tcG9uZW50IG9yIGFueSBvZiBpdHMgY2hpbGQgY29tcG9uZW50cyBnYWlucyBmb2N1cy5cbiAgICovXG4gIEBPdXRwdXQoKSB5dXZGb2N1c1dpdGhpbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgb25jZSB0aGUgY29tcG9uZW50IChpbmNsLiBhbnkgb2YgaXRzIGNoaWxkIGNvbXBvbmVudHMpIGxvb3NlcyBmb2N1cy5cbiAgICovXG4gIEBPdXRwdXQoKSB5dXZGb2N1c1dpdGhpbkJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZikgeyB9XG5cbiAgLy8gRGV0ZXJtaW5lIGlmIHRoZSBnaXZlbiBub2RlIG1hdGNoZXMgdGhlIGdpdmVuIHNlbGVjdG9yLlxuICAvLyBAc2VlOiBodHRwczovL3d3dy5iZW5uYWRlbC5jb20vYmxvZy8zNDc2LWNoZWNraW5nLXRvLXNlZS1pZi1hbi1lbGVtZW50LWhhcy1hLWNzcy1wc2V1ZG8tY2xhc3MtaW4tamF2YXNjcmlwdC5odG1cbiAgcHJpdmF0ZSBtYXRjaGVzRm9jdXNXaXRoaW4oKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudDtcbiAgICB2YXIgbmF0aXZlTWF0Y2hlcyA9IG5vZGUubWF0Y2hlcyB8fCBub2RlLm1zTWF0Y2hlc1NlbGVjdG9yO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbmF0aXZlTWF0Y2hlcy5jYWxsKG5vZGUsICc6Zm9jdXMtd2l0aGluJyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './busy-overlay.directive';
|
|
2
|
+
export * from './focus-within.directive';
|
|
3
|
+
export * from './file-drop-zone/file-drop-zone.directive';
|
|
4
|
+
export * from './click-double.directive';
|
|
5
|
+
export * from './light-dismiss.directive';
|
|
6
|
+
export * from './container-size.directive';
|
|
7
|
+
export * from './longpress.directive';
|
|
8
|
+
export * from './drag-select.directive';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2NvbW1vbi9zcmMvbGliL2RpcmVjdGl2ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9idXN5LW92ZXJsYXkuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9jdXMtd2l0aGluLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtZHJvcC16b25lL2ZpbGUtZHJvcC16b25lLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2NsaWNrLWRvdWJsZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWdodC1kaXNtaXNzLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRhaW5lci1zaXplLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xvbmdwcmVzcy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kcmFnLXNlbGVjdC5kaXJlY3RpdmUnO1xuIl19
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Directive, ElementRef, HostListener, inject, output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Directive for applying light dismiss actions. Adding this directive will trigger
|
|
5
|
+
* the given function when the user clicks outside the component or hits escape.
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* <div class="notifications" (yuvLightDismiss)="close()">
|
|
9
|
+
* ...
|
|
10
|
+
* </div>
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export class LightDismissDirective {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.elRef = inject(ElementRef);
|
|
16
|
+
this.yuvLightDismiss = output();
|
|
17
|
+
}
|
|
18
|
+
onKeydownHandler(event) {
|
|
19
|
+
if (!event.defaultPrevented) {
|
|
20
|
+
this.yuvLightDismiss.emit();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
onMousedown(event) {
|
|
24
|
+
if (!this.elRef.nativeElement.contains(event.target)) {
|
|
25
|
+
this.yuvLightDismiss.emit();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LightDismissDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
29
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: LightDismissDirective, isStandalone: true, selector: "[yuvLightDismiss]", outputs: { yuvLightDismiss: "yuvLightDismiss" }, host: { listeners: { "document:keydown.escape": "onKeydownHandler($event)", "document:mousedown": "onMousedown($event)" } }, ngImport: i0 }); }
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LightDismissDirective, decorators: [{
|
|
32
|
+
type: Directive,
|
|
33
|
+
args: [{
|
|
34
|
+
selector: '[yuvLightDismiss]',
|
|
35
|
+
standalone: true
|
|
36
|
+
}]
|
|
37
|
+
}], propDecorators: { onKeydownHandler: [{
|
|
38
|
+
type: HostListener,
|
|
39
|
+
args: ['document:keydown.escape', ['$event']]
|
|
40
|
+
}], onMousedown: [{
|
|
41
|
+
type: HostListener,
|
|
42
|
+
args: ['document:mousedown', ['$event']]
|
|
43
|
+
}] } });
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHQtZGlzbWlzcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2NvbW1vbi9zcmMvbGliL2RpcmVjdGl2ZXMvbGlnaHQtZGlzbWlzcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRXBGOzs7Ozs7Ozs7R0FTRztBQUtILE1BQU0sT0FBTyxxQkFBcUI7SUFKbEM7UUFLVSxVQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBZ0JuQyxvQkFBZSxHQUFHLE1BQU0sRUFBRSxDQUFDO0tBQzVCO0lBZEMsZ0JBQWdCLENBQUMsS0FBb0I7UUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFHRCxXQUFXLENBQUMsS0FBaUI7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDOytHQWZVLHFCQUFxQjttR0FBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFLQyxnQkFBZ0I7c0JBRGYsWUFBWTt1QkFBQyx5QkFBeUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRbkQsV0FBVztzQkFEVixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogRGlyZWN0aXZlIGZvciBhcHBseWluZyBsaWdodCBkaXNtaXNzIGFjdGlvbnMuIEFkZGluZyB0aGlzIGRpcmVjdGl2ZSB3aWxsIHRyaWdnZXJcbiAqIHRoZSBnaXZlbiBmdW5jdGlvbiB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvdXRzaWRlIHRoZSBjb21wb25lbnQgb3IgaGl0cyBlc2NhcGUuXG4gKlxuICogYGBgdHNcbiAqIDxkaXYgY2xhc3M9XCJub3RpZmljYXRpb25zXCIgKHl1dkxpZ2h0RGlzbWlzcyk9XCJjbG9zZSgpXCI+XG4gKiAgIC4uLlxuICogPC9kaXY+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3l1dkxpZ2h0RGlzbWlzc10nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIExpZ2h0RGlzbWlzc0RpcmVjdGl2ZSB7XG4gIHByaXZhdGUgZWxSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnLCBbJyRldmVudCddKVxuICBvbktleWRvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICB0aGlzLnl1dkxpZ2h0RGlzbWlzcy5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6bW91c2Vkb3duJywgWyckZXZlbnQnXSlcbiAgb25Nb3VzZWRvd24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICB0aGlzLnl1dkxpZ2h0RGlzbWlzcy5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgeXV2TGlnaHREaXNtaXNzID0gb3V0cHV0KCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Directive, ElementRef, inject, input, output } from '@angular/core';
|
|
2
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { fromEvent, merge, of, timer } from 'rxjs';
|
|
4
|
+
import { filter, map, switchMap } from 'rxjs/operators';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class LongPressDirective {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.elRef = inject(ElementRef);
|
|
9
|
+
this.threshold = 500;
|
|
10
|
+
this.yuvLongPress = input({
|
|
11
|
+
enabled: false
|
|
12
|
+
});
|
|
13
|
+
this.longpress = output();
|
|
14
|
+
const mousedown = fromEvent(this.elRef.nativeElement, 'mousedown').pipe(takeUntilDestroyed(), filter((event) => event.button == 0), // Only allow left button (Primary button)
|
|
15
|
+
map(() => true) // turn on threshold counter
|
|
16
|
+
);
|
|
17
|
+
const touchstart = fromEvent(this.elRef.nativeElement, 'touchstart').pipe(takeUntilDestroyed(), map(() => true));
|
|
18
|
+
const touchEnd = fromEvent(this.elRef.nativeElement, 'touchend').pipe(takeUntilDestroyed(), map(() => false));
|
|
19
|
+
const mouseup = fromEvent(window, 'mouseup').pipe(takeUntilDestroyed(), filter((event) => event.button == 0), // Only allow left button (Primary button)
|
|
20
|
+
map(() => false) // reset threshold counter
|
|
21
|
+
);
|
|
22
|
+
merge(mousedown, mouseup, touchstart, touchEnd)
|
|
23
|
+
.pipe(takeUntilDestroyed(), switchMap((state) => (state ? timer(this.threshold, 100) : of(null))), filter((value) => !!value))
|
|
24
|
+
.subscribe(() => this.longpress.emit());
|
|
25
|
+
}
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LongPressDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
27
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: LongPressDirective, isStandalone: true, selector: "[yuvLongPress]", inputs: { yuvLongPress: { classPropertyName: "yuvLongPress", publicName: "yuvLongPress", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { longpress: "longpress" }, ngImport: i0 }); }
|
|
28
|
+
}
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LongPressDirective, decorators: [{
|
|
30
|
+
type: Directive,
|
|
31
|
+
args: [{
|
|
32
|
+
selector: '[yuvLongPress]',
|
|
33
|
+
standalone: true
|
|
34
|
+
}]
|
|
35
|
+
}], ctorParameters: () => [] });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9uZ3ByZXNzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvY29tbW9uL3NyYy9saWIvZGlyZWN0aXZlcy9sb25ncHJlc3MuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBTXhELE1BQU0sT0FBTyxrQkFBa0I7SUFVN0I7UUFUUSxVQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRW5DLGNBQVMsR0FBRyxHQUFHLENBQUM7UUFFaEIsaUJBQVksR0FBRyxLQUFLLENBQTRCO1lBQzlDLE9BQU8sRUFBRSxLQUFLO1NBQ2YsQ0FBQyxDQUFDO1FBQ0gsY0FBUyxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBR25CLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBYSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQ2pGLGtCQUFrQixFQUFFLEVBQ3BCLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFBRSwwQ0FBMEM7UUFDaEYsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLDRCQUE0QjtTQUM3QyxDQUFDO1FBQ0YsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FDdkUsa0JBQWtCLEVBQUUsRUFDcEIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUNoQixDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDbkUsa0JBQWtCLEVBQUUsRUFDcEIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUNqQixDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFhLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQzNELGtCQUFrQixFQUFFLEVBQ3BCLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFBRSwwQ0FBMEM7UUFDaEYsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLDBCQUEwQjtTQUM1QyxDQUFDO1FBQ0YsS0FBSyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQzthQUM1QyxJQUFJLENBQ0gsa0JBQWtCLEVBQUUsRUFDcEIsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ3JFLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUMzQjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQzsrR0FwQ1Usa0JBQWtCO21HQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UsIG9mLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3l1dkxvbmdQcmVzc10nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIExvbmdQcmVzc0RpcmVjdGl2ZSB7XG4gIHByaXZhdGUgZWxSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgdGhyZXNob2xkID0gNTAwO1xuXG4gIHl1dkxvbmdQcmVzcyA9IGlucHV0PExvbmdQcmVzc0RpcmVjdGl2ZU9wdGlvbnM+KHtcbiAgICBlbmFibGVkOiBmYWxzZVxuICB9KTtcbiAgbG9uZ3ByZXNzID0gb3V0cHV0KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgbW91c2Vkb3duID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlZG93bicpLnBpcGUoXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50LmJ1dHRvbiA9PSAwKSwgLy8gT25seSBhbGxvdyBsZWZ0IGJ1dHRvbiAoUHJpbWFyeSBidXR0b24pXG4gICAgICBtYXAoKCkgPT4gdHJ1ZSkgLy8gdHVybiBvbiB0aHJlc2hvbGQgY291bnRlclxuICAgICk7XG4gICAgY29uc3QgdG91Y2hzdGFydCA9IGZyb21FdmVudCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsICd0b3VjaHN0YXJ0JykucGlwZShcbiAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgbWFwKCgpID0+IHRydWUpXG4gICAgKTtcbiAgICBjb25zdCB0b3VjaEVuZCA9IGZyb21FdmVudCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsICd0b3VjaGVuZCcpLnBpcGUoXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIG1hcCgoKSA9PiBmYWxzZSlcbiAgICApO1xuICAgIGNvbnN0IG1vdXNldXAgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4od2luZG93LCAnbW91c2V1cCcpLnBpcGUoXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50LmJ1dHRvbiA9PSAwKSwgLy8gT25seSBhbGxvdyBsZWZ0IGJ1dHRvbiAoUHJpbWFyeSBidXR0b24pXG4gICAgICBtYXAoKCkgPT4gZmFsc2UpIC8vIHJlc2V0IHRocmVzaG9sZCBjb3VudGVyXG4gICAgKTtcbiAgICBtZXJnZShtb3VzZWRvd24sIG1vdXNldXAsIHRvdWNoc3RhcnQsIHRvdWNoRW5kKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgICBzd2l0Y2hNYXAoKHN0YXRlKSA9PiAoc3RhdGUgPyB0aW1lcih0aGlzLnRocmVzaG9sZCwgMTAwKSA6IG9mKG51bGwpKSksXG4gICAgICAgIGZpbHRlcigodmFsdWUpID0+ICEhdmFsdWUpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMubG9uZ3ByZXNzLmVtaXQoKSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb25nUHJlc3NEaXJlY3RpdmVPcHRpb25zIHtcbiAgZW5hYmxlZDogYm9vbGVhbjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
3
|
+
import { Directive, forwardRef, inject } from '@angular/core';
|
|
4
|
+
import { FormControlDirective, FormControlName, NG_VALUE_ACCESSOR, NgControl, NgModel } from '@angular/forms';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
// @see: https://netbasal.com/forwarding-form-controls-to-custom-control-components-in-angular-701e8406cc55
|
|
7
|
+
export class NoopValueAccessorDirective {
|
|
8
|
+
writeValue(obj) { }
|
|
9
|
+
registerOnChange(fn) { }
|
|
10
|
+
registerOnTouched(fn) { }
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NoopValueAccessorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
12
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: NoopValueAccessorDirective, isStandalone: true, providers: [
|
|
13
|
+
{
|
|
14
|
+
provide: NG_VALUE_ACCESSOR,
|
|
15
|
+
multi: true,
|
|
16
|
+
useExisting: forwardRef(() => NoopValueAccessorDirective),
|
|
17
|
+
},
|
|
18
|
+
], ngImport: i0 }); }
|
|
19
|
+
}
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NoopValueAccessorDirective, decorators: [{
|
|
21
|
+
type: Directive,
|
|
22
|
+
args: [{
|
|
23
|
+
standalone: true,
|
|
24
|
+
providers: [
|
|
25
|
+
{
|
|
26
|
+
provide: NG_VALUE_ACCESSOR,
|
|
27
|
+
multi: true,
|
|
28
|
+
useExisting: forwardRef(() => NoopValueAccessorDirective),
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
}]
|
|
32
|
+
}] });
|
|
33
|
+
export function injectNgControl() {
|
|
34
|
+
const ngControl = inject(NgControl, { self: true, optional: true });
|
|
35
|
+
if (!ngControl)
|
|
36
|
+
throw new Error('...');
|
|
37
|
+
if (ngControl instanceof FormControlDirective || ngControl instanceof FormControlName || ngControl instanceof NgModel) {
|
|
38
|
+
return ngControl;
|
|
39
|
+
}
|
|
40
|
+
throw new Error('...');
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9vcC12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2NvbW1vbi9zcmMvbGliL2RpcmVjdGl2ZXMvbm9vcC12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0RBQXNEO0FBQ3RELHlEQUF5RDtBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUF3QixvQkFBb0IsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUVwSSwyR0FBMkc7QUFXM0csTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxVQUFVLENBQUMsR0FBUSxJQUFTLENBQUM7SUFDN0IsZ0JBQWdCLENBQUMsRUFBTyxJQUFTLENBQUM7SUFDbEMsaUJBQWlCLENBQUMsRUFBTyxJQUFTLENBQUM7K0dBSHhCLDBCQUEwQjttR0FBMUIsMEJBQTBCLGlDQVIxQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUM7YUFDMUQ7U0FDRjs7NEZBRVUsMEJBQTBCO2tCQVZ0QyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMkJBQTJCLENBQUM7eUJBQzFEO3FCQUNGO2lCQUNGOztBQU9ELE1BQU0sVUFBVSxlQUFlO0lBQzdCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRXBFLElBQUksQ0FBQyxTQUFTO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV2QyxJQUFJLFNBQVMsWUFBWSxvQkFBb0IsSUFBSSxTQUFTLFlBQVksZUFBZSxJQUFJLFNBQVMsWUFBWSxPQUFPLEVBQUUsQ0FBQztRQUN0SCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb24gKi9cbmltcG9ydCB7IERpcmVjdGl2ZSwgZm9yd2FyZFJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2xEaXJlY3RpdmUsIEZvcm1Db250cm9sTmFtZSwgTkdfVkFMVUVfQUNDRVNTT1IsIE5nQ29udHJvbCwgTmdNb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLy8gQHNlZTogaHR0cHM6Ly9uZXRiYXNhbC5jb20vZm9yd2FyZGluZy1mb3JtLWNvbnRyb2xzLXRvLWN1c3RvbS1jb250cm9sLWNvbXBvbmVudHMtaW4tYW5ndWxhci03MDFlODQwNmNjNTVcbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTm9vcFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUpLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE5vb3BWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7fVxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHt9XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHt9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3ROZ0NvbnRyb2woKSB7XG4gIGNvbnN0IG5nQ29udHJvbCA9IGluamVjdChOZ0NvbnRyb2wsIHsgc2VsZjogdHJ1ZSwgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgaWYgKCFuZ0NvbnRyb2wpIHRocm93IG5ldyBFcnJvcignLi4uJyk7XG5cbiAgaWYgKG5nQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sRGlyZWN0aXZlIHx8IG5nQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sTmFtZSB8fCBuZ0NvbnRyb2wgaW5zdGFuY2VvZiBOZ01vZGVsKSB7XG4gICAgcmV0dXJuIG5nQ29udHJvbDtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcignLi4uJyk7XG59XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXV1dmlzLWNsaWVudC1mcmFtZXdvcmstY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9jb21tb24vc3JjL3l1dXZpcy1jbGllbnQtZnJhbWV3b3JrLWNvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export { CatalogComponent } from './lib/elements/catalog/catalog.component';
|
|
2
|
+
// export { CheckboxComponent } from './lib/elements/checkbox/checkbox.component';
|
|
3
|
+
export { DatetimeRangeComponent } from './lib/elements/datetime-range/datetime-range.component';
|
|
4
|
+
// export { DatepickerComponent } from './lib/elements/datetime/datepicker/datepicker.component';
|
|
5
|
+
export { DatetimeComponent } from './lib/elements/datetime/datetime.component';
|
|
6
|
+
// export { YearRangeDirective } from './lib/elements/datetime/year-range/year-range.directive';
|
|
7
|
+
// export { DynamicCatalogManagementComponent } from './lib/elements/dynamic-catalog/dynamic-catalog-management/dynamic-catalog-management.component';
|
|
8
|
+
// export { DynamicCatalogComponent } from './lib/elements/dynamic-catalog/dynamic-catalog.component';
|
|
9
|
+
export { NumberRangeComponent } from './lib/elements/number-range/number-range.component';
|
|
10
|
+
export { NumberComponent } from './lib/elements/number/number.component';
|
|
11
|
+
// export { OrganizationSetComponent } from './lib/elements/organization-set/organization-set.component';
|
|
12
|
+
export { OrganizationComponent } from './lib/elements/organization/organization.component';
|
|
13
|
+
// export { ReferenceItemComponent } from './lib/elements/reference/reference-item/reference-item.component';
|
|
14
|
+
// export { ReferenceComponent } from './lib/elements/reference/reference.component';
|
|
15
|
+
// export * from './lib/elements/reference/reference.interface';
|
|
16
|
+
export { StringComponent } from './lib/elements/string/string.component';
|
|
17
|
+
export { FormInputComponent } from './lib/form-input/form-input.component';
|
|
18
|
+
export * from './lib/forms.module';
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2Zvcm1zL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxrRkFBa0Y7QUFDbEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDaEcsaUdBQWlHO0FBQ2pHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQy9FLGdHQUFnRztBQUNoRyxzSkFBc0o7QUFDdEosc0dBQXNHO0FBQ3RHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSx5R0FBeUc7QUFDekcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDM0YsNkdBQTZHO0FBQzdHLHFGQUFxRjtBQUNyRixnRUFBZ0U7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRTNFLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDYXRhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvZWxlbWVudHMvY2F0YWxvZy9jYXRhbG9nLmNvbXBvbmVudCc7XG4vLyBleHBvcnQgeyBDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vbGliL2VsZW1lbnRzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5leHBvcnQgeyBEYXRldGltZVJhbmdlQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvZWxlbWVudHMvZGF0ZXRpbWUtcmFuZ2UvZGF0ZXRpbWUtcmFuZ2UuY29tcG9uZW50Jztcbi8vIGV4cG9ydCB7IERhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2xpYi9lbGVtZW50cy9kYXRldGltZS9kYXRlcGlja2VyL2RhdGVwaWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IERhdGV0aW1lQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvZWxlbWVudHMvZGF0ZXRpbWUvZGF0ZXRpbWUuY29tcG9uZW50Jztcbi8vIGV4cG9ydCB7IFllYXJSYW5nZURpcmVjdGl2ZSB9IGZyb20gJy4vbGliL2VsZW1lbnRzL2RhdGV0aW1lL3llYXItcmFuZ2UveWVhci1yYW5nZS5kaXJlY3RpdmUnO1xuLy8gZXhwb3J0IHsgRHluYW1pY0NhdGFsb2dNYW5hZ2VtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9saWIvZWxlbWVudHMvZHluYW1pYy1jYXRhbG9nL2R5bmFtaWMtY2F0YWxvZy1tYW5hZ2VtZW50L2R5bmFtaWMtY2F0YWxvZy1tYW5hZ2VtZW50LmNvbXBvbmVudCc7XG4vLyBleHBvcnQgeyBEeW5hbWljQ2F0YWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vbGliL2VsZW1lbnRzL2R5bmFtaWMtY2F0YWxvZy9keW5hbWljLWNhdGFsb2cuY29tcG9uZW50JztcbmV4cG9ydCB7IE51bWJlclJhbmdlQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvZWxlbWVudHMvbnVtYmVyLXJhbmdlL251bWJlci1yYW5nZS5jb21wb25lbnQnO1xuZXhwb3J0IHsgTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvZWxlbWVudHMvbnVtYmVyL251bWJlci5jb21wb25lbnQnO1xuLy8gZXhwb3J0IHsgT3JnYW5pemF0aW9uU2V0Q29tcG9uZW50IH0gZnJvbSAnLi9saWIvZWxlbWVudHMvb3JnYW5pemF0aW9uLXNldC9vcmdhbml6YXRpb24tc2V0LmNvbXBvbmVudCc7XG5leHBvcnQgeyBPcmdhbml6YXRpb25Db21wb25lbnQgfSBmcm9tICcuL2xpYi9lbGVtZW50cy9vcmdhbml6YXRpb24vb3JnYW5pemF0aW9uLmNvbXBvbmVudCc7XG4vLyBleHBvcnQgeyBSZWZlcmVuY2VJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvZWxlbWVudHMvcmVmZXJlbmNlL3JlZmVyZW5jZS1pdGVtL3JlZmVyZW5jZS1pdGVtLmNvbXBvbmVudCc7XG4vLyBleHBvcnQgeyBSZWZlcmVuY2VDb21wb25lbnQgfSBmcm9tICcuL2xpYi9lbGVtZW50cy9yZWZlcmVuY2UvcmVmZXJlbmNlLmNvbXBvbmVudCc7XG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi9lbGVtZW50cy9yZWZlcmVuY2UvcmVmZXJlbmNlLmludGVyZmFjZSc7XG5leHBvcnQgeyBTdHJpbmdDb21wb25lbnQgfSBmcm9tICcuL2xpYi9lbGVtZW50cy9zdHJpbmcvc3RyaW5nLmNvbXBvbmVudCc7XG5leHBvcnQgeyBGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2xpYi9mb3JtLWlucHV0L2Zvcm0taW5wdXQuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybXMubW9kdWxlJztcbiJdfQ==
|