@yuuvis/client-framework 2.0.0-beta.0 → 2.0.0-beta.3
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/actions/lib/actions/delete-action/delete/delete.component.d.ts +3 -3
- package/actions/lib/actions/delete-action/delete-action.d.ts +1 -1
- package/actions/lib/actions.service.d.ts +7 -3
- package/actions/lib/components/contextmenu/contextmenu.component.d.ts +3 -1
- package/autocomplete/README.md +3 -0
- package/autocomplete/index.d.ts +3 -0
- package/autocomplete/lib/autocomplete.component.d.ts +72 -0
- package/autocomplete/lib/autocomplete.interface.d.ts +4 -0
- package/autocomplete/lib/autocomplete.module.d.ts +7 -0
- package/common/index.d.ts +4 -4
- package/common/lib/common.module.d.ts +19 -0
- package/common/lib/common.utils.d.ts +2 -0
- package/common/lib/components/confirm/confirm.component.d.ts +7 -0
- package/common/lib/components/confirm/confirm.interface.d.ts +7 -0
- package/common/lib/components/confirm/confirm.service.d.ts +9 -0
- package/common/lib/components/dialog/dialog.component.d.ts +6 -0
- package/common/lib/components/dialog/dialog.options.d.ts +7 -0
- package/common/lib/components/index.d.ts +5 -0
- package/common/lib/directives/autofocus-child.directive.d.ts +13 -0
- package/common/lib/directives/autofocus-delayed.directive.d.ts +18 -0
- package/common/lib/directives/drag-scroll.directive.d.ts +20 -0
- package/common/lib/directives/index.d.ts +8 -4
- package/common/lib/directives/noop-value-accessor.directive.d.ts +2 -2
- package/common/lib/mat-form-field.abstract.d.ts +41 -0
- package/common/lib/services/index.d.ts +1 -1
- package/common/lib/services/layout-settings/layout-settings.service.d.ts +18 -0
- package/datepicker/README.md +3 -0
- package/datepicker/index.d.ts +5 -0
- package/datepicker/lib/calendar/calendar.component.d.ts +72 -0
- package/datepicker/lib/date-input/date-input-element/date-input-element.component.d.ts +43 -0
- package/datepicker/lib/date-input/date-input-hour-element/date-input-hour-element.component.d.ts +11 -0
- package/datepicker/lib/date-input/date-input.component.d.ts +61 -0
- package/datepicker/lib/datepicker-calendar/datepicker-calendar-trigger.component.d.ts +7 -0
- package/datepicker/lib/datepicker-calendar/datepicker-calendar.component.d.ts +12 -0
- package/datepicker/lib/datepicker.component.d.ts +80 -0
- package/datepicker/lib/datepicker.interface.d.ts +34 -0
- package/datepicker/lib/datepicker.module.d.ts +9 -0
- package/datepicker/lib/datepicker.service.d.ts +46 -0
- package/datepicker/lib/datepicker.utils.d.ts +23 -0
- package/datepicker/lib/time-input/time-input.component.d.ts +36 -0
- package/datepicker/lib/time-input/time-input.interface.d.ts +6 -0
- package/fesm2022/yuuvis-client-framework-actions.mjs +147 -105
- package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-app-bar.mjs +7 -8
- package/fesm2022/yuuvis-client-framework-app-bar.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-autocomplete.mjs +210 -0
- package/fesm2022/yuuvis-client-framework-autocomplete.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-clipboard.mjs +9 -9
- package/fesm2022/yuuvis-client-framework-clipboard.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-common.mjs +853 -780
- package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-datepicker.mjs +1688 -0
- package/fesm2022/yuuvis-client-framework-datepicker.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-forms.mjs +945 -1157
- package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-icons.mjs +85 -12
- package/fesm2022/yuuvis-client-framework-icons.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-list.mjs +81 -45
- package/fesm2022/yuuvis-client-framework-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-master-details.mjs +112 -0
- package/fesm2022/yuuvis-client-framework-master-details.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs +60 -0
- package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs +125 -100
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-details.mjs +49 -59
- package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs +188 -77
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-form.mjs +99 -184
- package/fesm2022/yuuvis-client-framework-object-form.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-preview.mjs +11 -11
- package/fesm2022/yuuvis-client-framework-object-preview.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-summary.mjs +46 -42
- package/fesm2022/yuuvis-client-framework-object-summary.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-overflow-menu.mjs +126 -0
- package/fesm2022/yuuvis-client-framework-overflow-menu.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-pagination.mjs +7 -9
- package/fesm2022/yuuvis-client-framework-pagination.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-panel.mjs +8 -7
- package/fesm2022/yuuvis-client-framework-panel.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-popout.mjs +212 -0
- package/fesm2022/yuuvis-client-framework-popout.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-renderer.mjs +99 -72
- package/fesm2022/yuuvis-client-framework-renderer.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-sequence-list.mjs +29 -112
- package/fesm2022/yuuvis-client-framework-sequence-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-simple-search.mjs +40 -21
- package/fesm2022/yuuvis-client-framework-simple-search.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-split-view.mjs +188 -0
- package/fesm2022/yuuvis-client-framework-split-view.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-tile-list.mjs +100 -93
- package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-tree.mjs +15 -15
- package/fesm2022/yuuvis-client-framework-tree.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-upload-progress.mjs +16 -21
- package/fesm2022/yuuvis-client-framework-upload-progress.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework.mjs +4 -4
- package/fesm2022/yuuvis-client-framework.mjs.map +1 -1
- package/forms/index.d.ts +7 -1
- package/forms/lib/elements/catalog/catalog.component.d.ts +17 -56
- package/forms/lib/elements/data-grid/edit-table-data/edit-data.component.d.ts +5 -4
- package/forms/lib/elements/datetime/datetime.component.d.ts +19 -10
- package/forms/lib/elements/datetime-range/datetime-range.component.d.ts +12 -27
- package/forms/lib/elements/index.d.ts +0 -1
- package/forms/lib/elements/number/number.component.d.ts +21 -30
- package/forms/lib/elements/number-range/number-range.component.d.ts +12 -7
- package/forms/lib/elements/organization/organization.component.d.ts +23 -51
- package/forms/lib/elements/range-select-date/range-select-date.component.d.ts +12 -7
- package/forms/lib/elements/range-select-filesize/range-select-filesize.component.d.ts +12 -7
- package/forms/lib/elements/string/string.component.d.ts +15 -20
- package/forms/lib/forms.module.d.ts +8 -11
- package/icons/index.d.ts +1 -0
- package/icons/lib/icon.component.d.ts +20 -0
- package/lib/assets/i18n/de.json +7 -23
- package/lib/assets/i18n/en.json +10 -26
- package/list/index.d.ts +1 -0
- package/list/lib/list-item.directive.d.ts +5 -4
- package/list/lib/list.component.d.ts +6 -3
- package/list/lib/list.module.d.ts +8 -0
- package/master-details/README.md +3 -0
- package/master-details/index.d.ts +2 -0
- package/master-details/lib/master-details.component.d.ts +58 -0
- package/master-details/lib/master-details.interface.d.ts +7 -0
- package/master-details/lib/master-details.module.d.ts +7 -0
- package/metadata-form/index.d.ts +4 -1
- package/metadata-form/lib/metadata-form-field/metadata-form-field.component.d.ts +4 -17
- package/metadata-form/lib/metadata-form-field/metadata-form-field.interface.d.ts +11 -0
- package/metadata-form/lib/object-metadata-element-error.directive.d.ts +13 -0
- package/metadata-form/lib/object-metadata-element-label.directive.d.ts +10 -0
- package/metadata-form/lib/object-metadata-element-template.directive.d.ts +3 -3
- package/metadata-form-defaults/README.md +3 -0
- package/metadata-form-defaults/index.d.ts +2 -0
- package/metadata-form-defaults/lib/metadata-form-defaults.module.d.ts +7 -0
- package/object-details/lib/object-audit/object-audit.component.d.ts +3 -9
- package/object-details/lib/object-details.component.d.ts +0 -2
- package/object-details/lib/object-metadata/object-metadata.component.d.ts +4 -3
- package/object-details/lib/retention-badge/retention-badge.component.d.ts +0 -3
- package/object-flavor/index.d.ts +1 -0
- package/object-flavor/lib/abstract-apply-create-flavor/abstract-apply-create-flavor.component.d.ts +1 -2
- package/object-flavor/lib/abstract-apply-object-flavor/abstract-apply-object-flavor.component.d.ts +3 -2
- package/object-flavor/lib/default-apply-flavor/default-apply-flavor.component.d.ts +19 -0
- package/object-flavor/lib/flavor-chip/flavor-chip.component.d.ts +1 -1
- package/object-flavor/lib/object-flavor/object-flavor.component.d.ts +3 -6
- package/object-flavor/lib/object-flavor-picker/object-flavor-picker.component.d.ts +0 -1
- package/object-form/index.d.ts +1 -1
- package/object-form/lib/object-form-element/object-form-element.component.d.ts +2 -2
- package/object-form/lib/object-form-group/object-form-group.component.d.ts +1 -3
- package/object-form/lib/object-form.component.d.ts +2 -2
- package/object-form/lib/object-form.interface.d.ts +0 -44
- package/object-form/lib/object-form.module.d.ts +7 -0
- package/object-form/lib/object-form.service.d.ts +1 -2
- package/object-form/lib/object-form.utils.d.ts +1 -1
- package/object-summary/lib/object-summary/object-summary.component.d.ts +13 -15
- package/overflow-menu/README.md +3 -0
- package/overflow-menu/index.d.ts +3 -0
- package/overflow-menu/lib/overflow-menu.component.d.ts +31 -0
- package/overflow-menu/lib/overflow-menu.interface.d.ts +9 -0
- package/overflow-menu/lib/overflow-menu.module.d.ts +7 -0
- package/package.json +43 -69
- package/popout/README.md +3 -0
- package/popout/index.d.ts +3 -0
- package/popout/lib/popout.component.d.ts +58 -0
- package/popout/lib/popout.interface.d.ts +17 -0
- package/popout/lib/popout.module.d.ts +7 -0
- package/renderer/lib/property-renderer/abstract.renderer.d.ts +4 -4
- package/renderer/lib/property-renderer/icon.renderer.component.d.ts +2 -0
- package/renderer/lib/renderer.directive.d.ts +4 -3
- package/sequence-list/index.d.ts +0 -1
- package/sequence-list/lib/sequence-list.component.d.ts +0 -4
- package/simple-search/index.d.ts +0 -1
- package/simple-search/lib/simple-search/simple-search.component.d.ts +6 -10
- package/split-view/README.md +3 -0
- package/split-view/index.d.ts +4 -0
- package/split-view/lib/split-area.directive.d.ts +16 -0
- package/split-view/lib/split-view.component.d.ts +76 -0
- package/split-view/lib/split-view.interface.d.ts +10 -0
- package/split-view/lib/split-view.module.d.ts +8 -0
- package/styles/client-framework.scss +21 -67
- package/tile-list/lib/tile/tile.component.d.ts +1 -2
- package/tile-list/lib/tile-config/property-select/property-select.component.d.ts +0 -1
- package/tile-list/lib/tile-config/tile-config-trigger/tile-config-trigger.component.d.ts +1 -2
- package/tile-list/lib/tile-config/tile-config.component.d.ts +0 -3
- package/tile-list/lib/tile-list/tile-list.component.d.ts +5 -5
- package/upload-progress/lib/upload-progress/upload-progress-overlay/upload-progress-overlay.component.d.ts +0 -5
- package/upload-progress/lib/upload-progress/upload-progress.component.d.ts +0 -4
- package/common/lib/components/focus-indicator/focus-indicator.component.d.ts +0 -7
- package/common/lib/components/token-input/token-input.component.d.ts +0 -55
- package/common/lib/components/token-input/token-input.interface.d.ts +0 -8
- package/common/lib/services/error-messages/error-messages.service.d.ts +0 -7
- package/esm2022/actions/index.mjs +0 -7
- package/esm2022/actions/lib/actions/copy-action/copy-action.mjs +0 -31
- package/esm2022/actions/lib/actions/cut-action/cut-action.mjs +0 -30
- package/esm2022/actions/lib/actions/delete-action/delete/delete.component.mjs +0 -67
- package/esm2022/actions/lib/actions/delete-action/delete-action.mjs +0 -38
- package/esm2022/actions/lib/actions/download-action/download-action.mjs +0 -33
- package/esm2022/actions/lib/actions.icon.mjs +0 -8
- package/esm2022/actions/lib/actions.interface.mjs +0 -19
- package/esm2022/actions/lib/actions.module.mjs +0 -16
- package/esm2022/actions/lib/actions.service.mjs +0 -89
- package/esm2022/actions/lib/components/contextmenu/contextmenu.component.mjs +0 -27
- package/esm2022/actions/yuuvis-client-framework-actions.mjs +0 -5
- package/esm2022/app-bar/index.mjs +0 -2
- package/esm2022/app-bar/lib/app-bar.component.mjs +0 -89
- package/esm2022/app-bar/yuuvis-client-framework-app-bar.mjs +0 -5
- package/esm2022/clipboard/index.mjs +0 -2
- package/esm2022/clipboard/lib/clipboard.component.mjs +0 -48
- package/esm2022/clipboard/yuuvis-client-framework-clipboard.mjs +0 -5
- package/esm2022/common/index.mjs +0 -7
- package/esm2022/common/lib/components/focus-indicator/focus-indicator.component.mjs +0 -41
- package/esm2022/common/lib/components/token-input/token-input.component.mjs +0 -324
- package/esm2022/common/lib/components/token-input/token-input.interface.mjs +0 -2
- package/esm2022/common/lib/directives/busy-overlay.directive.mjs +0 -88
- package/esm2022/common/lib/directives/click-double.directive.mjs +0 -61
- package/esm2022/common/lib/directives/container-size.directive.mjs +0 -56
- package/esm2022/common/lib/directives/drag-select.directive.mjs +0 -114
- package/esm2022/common/lib/directives/file-drop-zone/file-drop-zone.directive.mjs +0 -153
- package/esm2022/common/lib/directives/file-drop-zone/file-drop-zone.interface.mjs +0 -2
- package/esm2022/common/lib/directives/focus-within.directive.mjs +0 -81
- package/esm2022/common/lib/directives/index.mjs +0 -9
- package/esm2022/common/lib/directives/light-dismiss.directive.mjs +0 -44
- package/esm2022/common/lib/directives/longpress.directive.mjs +0 -36
- package/esm2022/common/lib/directives/noop-value-accessor.directive.mjs +0 -42
- package/esm2022/common/lib/services/error-messages/error-messages.service.mjs +0 -68
- package/esm2022/common/lib/services/index.mjs +0 -2
- package/esm2022/common/yuuvis-client-framework-common.mjs +0 -5
- package/esm2022/forms/index.mjs +0 -24
- package/esm2022/forms/lib/elements/catalog/catalog.component.mjs +0 -118
- package/esm2022/forms/lib/elements/data-grid/data-grid/data-grid.component.mjs +0 -172
- package/esm2022/forms/lib/elements/data-grid/edit-table-data/edit-data.component.mjs +0 -95
- package/esm2022/forms/lib/elements/data-grid/model/data-grid.interface.mjs +0 -9
- package/esm2022/forms/lib/elements/datetime/datetime.component.mjs +0 -82
- package/esm2022/forms/lib/elements/datetime-range/datetime-range.component.mjs +0 -166
- package/esm2022/forms/lib/elements/index.mjs +0 -11
- package/esm2022/forms/lib/elements/number/number.component.mjs +0 -195
- package/esm2022/forms/lib/elements/number-range/number-range.component.mjs +0 -176
- package/esm2022/forms/lib/elements/organization/organization.component.mjs +0 -286
- package/esm2022/forms/lib/elements/range-select-date/date-range-picker/date-range-picker.component.mjs +0 -38
- package/esm2022/forms/lib/elements/range-select-date/range-select-date.component.mjs +0 -181
- package/esm2022/forms/lib/elements/range-select-date/range-select-date.interface.mjs +0 -2
- package/esm2022/forms/lib/elements/range-select-filesize/range-select-filesize.component.mjs +0 -98
- package/esm2022/forms/lib/elements/range-select-filesize/range-select-filesize.interface.mjs +0 -2
- package/esm2022/forms/lib/elements/string/string.component.mjs +0 -261
- package/esm2022/forms/lib/form-input/form-input.component.mjs +0 -88
- package/esm2022/forms/lib/forms.module.mjs +0 -58
- package/esm2022/forms/yuuvis-client-framework-forms.mjs +0 -5
- package/esm2022/icons/index.mjs +0 -4
- package/esm2022/icons/lib/icon.service.mjs +0 -59
- package/esm2022/icons/lib/icons.mjs +0 -32
- package/esm2022/icons/lib/object-type-icon/object-type-icon.component.mjs +0 -29
- package/esm2022/icons/yuuvis-client-framework-icons.mjs +0 -5
- package/esm2022/index.mjs +0 -2
- package/esm2022/lib/yuuvis-client-framework.module.mjs +0 -15
- package/esm2022/list/index.mjs +0 -3
- package/esm2022/list/lib/list-item.directive.mjs +0 -72
- package/esm2022/list/lib/list.component.mjs +0 -135
- package/esm2022/list/yuuvis-client-framework-list.mjs +0 -5
- package/esm2022/metadata-form/index.mjs +0 -4
- package/esm2022/metadata-form/lib/metadata-default-templates/metadata-default-templates.component.mjs +0 -32
- package/esm2022/metadata-form/lib/metadata-form-element-registry.service.mjs +0 -99
- package/esm2022/metadata-form/lib/metadata-form-field/metadata-form-field.component.mjs +0 -83
- package/esm2022/metadata-form/lib/object-metadata-element-template.directive.mjs +0 -52
- package/esm2022/metadata-form/yuuvis-client-framework-metadata-form.mjs +0 -5
- package/esm2022/object-details/index.mjs +0 -8
- package/esm2022/object-details/lib/object-audit/object-audit.component.mjs +0 -195
- package/esm2022/object-details/lib/object-details-shell/object-details-shell.component.mjs +0 -127
- package/esm2022/object-details/lib/object-details.component.mjs +0 -61
- package/esm2022/object-details/lib/object-metadata/form-section-group.pipe.mjs +0 -17
- package/esm2022/object-details/lib/object-metadata/object-metadata.component.mjs +0 -202
- package/esm2022/object-details/lib/object-metadata/object-metadata.interface.mjs +0 -2
- package/esm2022/object-details/lib/retention-badge/retention-badge.component.mjs +0 -27
- package/esm2022/object-details/yuuvis-client-framework-object-details.mjs +0 -5
- package/esm2022/object-flavor/index.mjs +0 -6
- package/esm2022/object-flavor/lib/abstract-apply-create-flavor/abstract-apply-create-flavor.component.mjs +0 -25
- package/esm2022/object-flavor/lib/abstract-apply-object-flavor/abstract-apply-object-flavor.component.mjs +0 -21
- package/esm2022/object-flavor/lib/flavor-chip/flavor-chip.component.mjs +0 -35
- package/esm2022/object-flavor/lib/object-flavor/object-flavor.component.mjs +0 -93
- package/esm2022/object-flavor/lib/object-flavor-picker/object-flavor-picker.component.mjs +0 -43
- package/esm2022/object-flavor/yuuvis-client-framework-object-flavor.mjs +0 -5
- package/esm2022/object-form/index.mjs +0 -5
- package/esm2022/object-form/lib/form-scripting.api.interface.mjs +0 -2
- package/esm2022/object-form/lib/form-scripting.service.mjs +0 -160
- package/esm2022/object-form/lib/object-form-element/object-form-element.component.mjs +0 -87
- package/esm2022/object-form/lib/object-form-extension.interface.mjs +0 -36
- package/esm2022/object-form/lib/object-form-group/object-form-group.component.mjs +0 -85
- package/esm2022/object-form/lib/object-form-script/form-scripting-element-extension/form-scripting-element-extension.component.mjs +0 -23
- package/esm2022/object-form/lib/object-form-script/object-form-script.service.mjs +0 -115
- package/esm2022/object-form/lib/object-form-script/object-form-scripting-scope.mjs +0 -251
- package/esm2022/object-form/lib/object-form-translate.service.mjs +0 -73
- package/esm2022/object-form/lib/object-form.component.mjs +0 -628
- package/esm2022/object-form/lib/object-form.interface.mjs +0 -9
- package/esm2022/object-form/lib/object-form.model.mjs +0 -20
- package/esm2022/object-form/lib/object-form.service.mjs +0 -130
- package/esm2022/object-form/lib/object-form.utils.mjs +0 -55
- package/esm2022/object-form/lib/object-form.validation.mjs +0 -48
- package/esm2022/object-form/yuuvis-client-framework-object-form.mjs +0 -5
- package/esm2022/object-preview/index.mjs +0 -3
- package/esm2022/object-preview/lib/components/index.mjs +0 -3
- package/esm2022/object-preview/lib/components/object-email-preview/object-email-preview.component.mjs +0 -45
- package/esm2022/object-preview/lib/components/object-preview/object-preview.component.mjs +0 -78
- package/esm2022/object-preview/lib/services/object-preview.service.mjs +0 -119
- package/esm2022/object-preview/yuuvis-client-framework-object-preview.mjs +0 -5
- package/esm2022/object-summary/index.mjs +0 -5
- package/esm2022/object-summary/lib/multi-object-summary/multi-object-summary.component.mjs +0 -33
- package/esm2022/object-summary/lib/object-summary/object-summary.component.mjs +0 -275
- package/esm2022/object-summary/lib/object-summary-data/object-summary-data.component.mjs +0 -80
- package/esm2022/object-summary/lib/object-summary.module.mjs +0 -15
- package/esm2022/object-summary/yuuvis-client-framework-object-summary.mjs +0 -5
- package/esm2022/pagination/index.mjs +0 -3
- package/esm2022/pagination/lib/pagination.component.mjs +0 -46
- package/esm2022/pagination/lib/pagination.interface.mjs +0 -2
- package/esm2022/pagination/yuuvis-client-framework-pagination.mjs +0 -5
- package/esm2022/panel/index.mjs +0 -2
- package/esm2022/panel/lib/panel.component.mjs +0 -20
- package/esm2022/panel/yuuvis-client-framework-panel.mjs +0 -5
- package/esm2022/renderer/index.mjs +0 -11
- package/esm2022/renderer/lib/property-renderer/abstract.renderer.mjs +0 -29
- package/esm2022/renderer/lib/property-renderer/datetime.renderer.mjs +0 -13
- package/esm2022/renderer/lib/property-renderer/decimal.renderer.component.mjs +0 -12
- package/esm2022/renderer/lib/property-renderer/filesize.renderer.component.mjs +0 -28
- package/esm2022/renderer/lib/property-renderer/icon.renderer.component.mjs +0 -23
- package/esm2022/renderer/lib/property-renderer/integer.renderer.component.mjs +0 -12
- package/esm2022/renderer/lib/property-renderer/organization.renderer.mjs +0 -19
- package/esm2022/renderer/lib/property-renderer/string.renderer.component.mjs +0 -12
- package/esm2022/renderer/lib/property-renderer/unknown.renderer.mjs +0 -12
- package/esm2022/renderer/lib/renderer.directive.mjs +0 -51
- package/esm2022/renderer/lib/services/renderer/renderer.interface.mjs +0 -2
- package/esm2022/renderer/lib/services/renderer/renderer.service.mjs +0 -84
- package/esm2022/renderer/yuuvis-client-framework-renderer.mjs +0 -5
- package/esm2022/sequence-list/index.mjs +0 -4
- package/esm2022/sequence-list/lib/due-date-picker/due-date-picker.component.mjs +0 -99
- package/esm2022/sequence-list/lib/sequence-list.component.mjs +0 -141
- package/esm2022/sequence-list/lib/sequence-list.interface.mjs +0 -2
- package/esm2022/sequence-list/yuuvis-client-framework-sequence-list.mjs +0 -5
- package/esm2022/simple-search/index.mjs +0 -3
- package/esm2022/simple-search/lib/simple-search/simple-search.component.mjs +0 -111
- package/esm2022/simple-search/lib/simple-search/simple-search.interface.mjs +0 -2
- package/esm2022/simple-search/yuuvis-client-framework-simple-search.mjs +0 -5
- package/esm2022/tile-list/index.mjs +0 -11
- package/esm2022/tile-list/lib/tile/tile.component.mjs +0 -53
- package/esm2022/tile-list/lib/tile-config/action-select/action-select.component.mjs +0 -25
- package/esm2022/tile-list/lib/tile-config/icon-select/icon-select.component.mjs +0 -33
- package/esm2022/tile-list/lib/tile-config/property-select/property-select.component.mjs +0 -91
- package/esm2022/tile-list/lib/tile-config/tile-config-tile/tile-config-tile.component.mjs +0 -66
- package/esm2022/tile-list/lib/tile-config/tile-config-trigger/tile-config-trigger.component.mjs +0 -46
- package/esm2022/tile-list/lib/tile-config/tile-config.component.mjs +0 -156
- package/esm2022/tile-list/lib/tile-extension/directive/tile-extension.directive.mjs +0 -37
- package/esm2022/tile-list/lib/tile-extension/extensions/email.extension.mjs +0 -42
- package/esm2022/tile-list/lib/tile-extension/tile-extension.service.mjs +0 -35
- package/esm2022/tile-list/lib/tile-list/tile-list.component.mjs +0 -510
- package/esm2022/tile-list/lib/tile-list/tile-list.interface.mjs +0 -2
- package/esm2022/tile-list/yuuvis-client-framework-tile-list.mjs +0 -5
- package/esm2022/token-search/index.mjs +0 -3
- package/esm2022/token-search/token-search.component.mjs +0 -78
- package/esm2022/token-search/token-search.interface.mjs +0 -2
- package/esm2022/token-search/yuuvis-client-framework-token-search.mjs +0 -5
- package/esm2022/tree/index.mjs +0 -3
- package/esm2022/tree/lib/tree-node/tree-node.component.mjs +0 -65
- package/esm2022/tree/lib/tree.component.mjs +0 -148
- package/esm2022/tree/lib/tree.interface.mjs +0 -2
- package/esm2022/tree/lib/tree.service.mjs +0 -95
- package/esm2022/tree/yuuvis-client-framework-tree.mjs +0 -5
- package/esm2022/upload-progress/index.mjs +0 -2
- package/esm2022/upload-progress/lib/upload-progress/upload-progress-overlay/upload-progress-overlay.component.mjs +0 -49
- package/esm2022/upload-progress/lib/upload-progress/upload-progress.component.mjs +0 -37
- package/esm2022/upload-progress/yuuvis-client-framework-upload-progress.mjs +0 -5
- package/esm2022/user-avatar/index.mjs +0 -3
- package/esm2022/user-avatar/lib/user-avatar.component.mjs +0 -69
- package/esm2022/user-avatar/lib/user-avatar.module.mjs +0 -24
- package/esm2022/user-avatar/yuuvis-client-framework-user-avatar.mjs +0 -5
- package/esm2022/yuuvis-client-framework.mjs +0 -5
- package/fesm2022/yuuvis-client-framework-token-search.mjs +0 -85
- package/fesm2022/yuuvis-client-framework-token-search.mjs.map +0 -1
- package/fesm2022/yuuvis-client-framework-user-avatar.mjs +0 -96
- package/fesm2022/yuuvis-client-framework-user-avatar.mjs.map +0 -1
- package/forms/lib/form-input/form-input.component.d.ts +0 -48
- package/object-form/lib/object-form-translate.service.d.ts +0 -15
- package/object-form/lib/object-form.model.d.ts +0 -18
- package/sequence-list/lib/due-date-picker/due-date-picker.component.d.ts +0 -28
- package/simple-search/lib/simple-search/simple-search.interface.d.ts +0 -4
- package/token-search/README.md +0 -3
- package/token-search/index.d.ts +0 -2
- package/token-search/token-search.component.d.ts +0 -22
- package/token-search/token-search.interface.d.ts +0 -4
- package/user-avatar/README.md +0 -3
- package/user-avatar/index.d.ts +0 -2
- package/user-avatar/lib/user-avatar.component.d.ts +0 -44
- package/user-avatar/lib/user-avatar.module.d.ts +0 -8
- /package/{metadata-form → metadata-form-defaults}/lib/metadata-default-templates/metadata-default-templates.component.d.ts +0 -0
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, Renderer2, ChangeDetectorRef, viewChild, input, output, HostListener, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/common';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import * as i2 from '@angular/material/button';
|
|
6
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
7
|
+
import * as i3 from '@angular/material/icon';
|
|
8
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
9
|
+
import * as i4 from '@angular/material/tooltip';
|
|
10
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
11
|
+
|
|
12
|
+
var PopoutTriggerPosition;
|
|
13
|
+
(function (PopoutTriggerPosition) {
|
|
14
|
+
PopoutTriggerPosition["TOP_LEFT"] = "tl";
|
|
15
|
+
PopoutTriggerPosition["TOP_RIGHT"] = "tr";
|
|
16
|
+
PopoutTriggerPosition["BOTTOM_LEFT"] = "bl";
|
|
17
|
+
PopoutTriggerPosition["BOTTOM_RIGHT"] = "br";
|
|
18
|
+
})(PopoutTriggerPosition || (PopoutTriggerPosition = {}));
|
|
19
|
+
|
|
20
|
+
// based upon: https://github.com/GIimmer/angular-opinionated-popout-window
|
|
21
|
+
/**
|
|
22
|
+
* Component that enables the wrapped content to be 'popped out' as new window.
|
|
23
|
+
* It will place a button (icon) to trigger popout on top of the wrapped content. You
|
|
24
|
+
* can place this trigger element setting the 'triggerPosition' input.
|
|
25
|
+
*
|
|
26
|
+
* Providing a 'popoutWindowConfig' will also enable you to influence the appearance of
|
|
27
|
+
* the spawned window.
|
|
28
|
+
*
|
|
29
|
+
*/
|
|
30
|
+
class PopoutComponent {
|
|
31
|
+
constructor() {
|
|
32
|
+
this.#renderer2 = inject(Renderer2);
|
|
33
|
+
this.#cd = inject(ChangeDetectorRef);
|
|
34
|
+
this.innerWrapper = viewChild.required('innerWrapper');
|
|
35
|
+
this.popoutWrapper = viewChild.required('popoutWrapper');
|
|
36
|
+
/**
|
|
37
|
+
* Where the popout trigger should be located on the component
|
|
38
|
+
*/
|
|
39
|
+
this.triggerPosition = input(PopoutTriggerPosition.TOP_RIGHT);
|
|
40
|
+
/**
|
|
41
|
+
* Icon to be redered inside the trigger
|
|
42
|
+
*/
|
|
43
|
+
this.triggerIcon = input('open_in_new');
|
|
44
|
+
/**
|
|
45
|
+
* Tooltip text for the trigger button
|
|
46
|
+
*/
|
|
47
|
+
this.triggerTooltip = input();
|
|
48
|
+
/**
|
|
49
|
+
* configuration of the popped out window
|
|
50
|
+
*/
|
|
51
|
+
this.popoutWindowConfig = input();
|
|
52
|
+
/**
|
|
53
|
+
* Whether or not to disable the undock feature
|
|
54
|
+
*/
|
|
55
|
+
this.disabled = input();
|
|
56
|
+
/**
|
|
57
|
+
* Emitted when the child component is popped out
|
|
58
|
+
*/
|
|
59
|
+
this.popOut = output();
|
|
60
|
+
/**
|
|
61
|
+
* Emitted when the child component is popped in again
|
|
62
|
+
*/
|
|
63
|
+
this.popIn = output();
|
|
64
|
+
}
|
|
65
|
+
#renderer2;
|
|
66
|
+
#cd;
|
|
67
|
+
beforeunloadHandler() {
|
|
68
|
+
this._close();
|
|
69
|
+
}
|
|
70
|
+
#popoutWindow;
|
|
71
|
+
#observer;
|
|
72
|
+
get isPoppedOut() {
|
|
73
|
+
return !!this.#popoutWindow;
|
|
74
|
+
}
|
|
75
|
+
pop(e) {
|
|
76
|
+
if (this.isPoppedOut)
|
|
77
|
+
this._popIn();
|
|
78
|
+
else
|
|
79
|
+
this._popOut(e);
|
|
80
|
+
}
|
|
81
|
+
_popIn() {
|
|
82
|
+
this.#renderer2.appendChild(this.popoutWrapper().nativeElement, this.innerWrapper().nativeElement);
|
|
83
|
+
this._close();
|
|
84
|
+
this.#cd.detectChanges();
|
|
85
|
+
}
|
|
86
|
+
_popOut(event) {
|
|
87
|
+
if (!this.#popoutWindow) {
|
|
88
|
+
this.#popoutWindow = this._createPopoutWindow(event);
|
|
89
|
+
if (!this.#popoutWindow) {
|
|
90
|
+
// The window wasn't allowed to open
|
|
91
|
+
// This is likely caused by built-in popup blockers.
|
|
92
|
+
alert('Could not open new window. This is likely caused by built-in popup blockers.');
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
this._cloneStylesToPopoutWindow();
|
|
96
|
+
this._observeFutureStyleChanges();
|
|
97
|
+
this.#renderer2.appendChild(this.#popoutWindow.document.body, this.innerWrapper().nativeElement);
|
|
98
|
+
this.#popoutWindow.addEventListener('unload', () => this._popIn());
|
|
99
|
+
this.#cd.detectChanges();
|
|
100
|
+
this.popOut.emit(true);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
this.#popoutWindow.focus();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
_createPopoutWindow(mouseEvent) {
|
|
107
|
+
const elmRect = this.innerWrapper().nativeElement.getBoundingClientRect();
|
|
108
|
+
const [winLeft, winTop] = this._getWindowPositioning(elmRect, mouseEvent);
|
|
109
|
+
const pwc = this.popoutWindowConfig();
|
|
110
|
+
const winWidth = pwc?.size?.width ? pwc.size.width : elmRect.width;
|
|
111
|
+
const winHeight = pwc?.size?.height ? pwc.size.height : elmRect.height + 1;
|
|
112
|
+
const win = window.open('', `popoutWindow${Date.now()}`, ` popup,
|
|
113
|
+
width=${winWidth},
|
|
114
|
+
height=${winHeight},
|
|
115
|
+
left=${winLeft},
|
|
116
|
+
top=${winTop}`);
|
|
117
|
+
if (win) {
|
|
118
|
+
win.document.title = this.popoutWindowConfig()?.title || window.document.title;
|
|
119
|
+
win.document.body.style.margin = '0';
|
|
120
|
+
}
|
|
121
|
+
return win;
|
|
122
|
+
}
|
|
123
|
+
_getWindowPositioning(elmRect, mouseEvent) {
|
|
124
|
+
let winTop, winLeft;
|
|
125
|
+
const pwc = this.popoutWindowConfig()?.position;
|
|
126
|
+
if (pwc) {
|
|
127
|
+
winTop = pwc.blockStart || winTop;
|
|
128
|
+
winLeft = pwc.inlineStart || winLeft;
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
const navHeight = window.outerHeight - window.innerHeight;
|
|
132
|
+
const navWidth = (window.outerWidth - window.innerWidth) / 2;
|
|
133
|
+
winTop = window.screenY + navHeight + elmRect.top - 60;
|
|
134
|
+
winLeft = window.screenX + navWidth + elmRect.left;
|
|
135
|
+
// Position window titleBar under mouse
|
|
136
|
+
if (mouseEvent) {
|
|
137
|
+
winTop = mouseEvent.clientY + navHeight - 7;
|
|
138
|
+
winLeft += 120;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return [winLeft, winTop];
|
|
142
|
+
}
|
|
143
|
+
_close() {
|
|
144
|
+
if (this.#popoutWindow) {
|
|
145
|
+
this.#popoutWindow.close();
|
|
146
|
+
this.#popoutWindow = null;
|
|
147
|
+
this.popIn.emit(true);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
_cloneStylesToPopoutWindow() {
|
|
151
|
+
if (window.navigator.userAgent.indexOf('Firefox') === -1) {
|
|
152
|
+
document.fonts.forEach((node) => {
|
|
153
|
+
this.#popoutWindow.document.fonts.add(node);
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
document.head.querySelectorAll('link[rel="stylesheet"]').forEach((node) => {
|
|
157
|
+
this.#popoutWindow.document.head.insertAdjacentHTML('beforeend', `<link rel="stylesheet" type="${node.type}" href="${node.href}">`);
|
|
158
|
+
});
|
|
159
|
+
document.head.querySelectorAll('style').forEach((node) => {
|
|
160
|
+
this.#popoutWindow.document.head.appendChild(node.cloneNode(true));
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
_observeFutureStyleChanges() {
|
|
164
|
+
const headEle = document.querySelector('head');
|
|
165
|
+
this.#observer?.disconnect();
|
|
166
|
+
this.#observer = new MutationObserver((mutations) => {
|
|
167
|
+
mutations.forEach((mutation) => {
|
|
168
|
+
mutation.addedNodes.forEach((node) => {
|
|
169
|
+
if (node.nodeName === 'STYLE') {
|
|
170
|
+
this.#popoutWindow.document.head.appendChild(node.cloneNode(true));
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
this.#observer.observe(headEle, { childList: true });
|
|
176
|
+
}
|
|
177
|
+
ngOnDestroy() {
|
|
178
|
+
this.#observer?.disconnect();
|
|
179
|
+
this._close();
|
|
180
|
+
}
|
|
181
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: PopoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
182
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.1", type: PopoutComponent, isStandalone: true, selector: "yuv-popout", inputs: { triggerPosition: { classPropertyName: "triggerPosition", publicName: "triggerPosition", isSignal: true, isRequired: false, transformFunction: null }, triggerIcon: { classPropertyName: "triggerIcon", publicName: "triggerIcon", isSignal: true, isRequired: false, transformFunction: null }, triggerTooltip: { classPropertyName: "triggerTooltip", publicName: "triggerTooltip", isSignal: true, isRequired: false, transformFunction: null }, popoutWindowConfig: { classPropertyName: "popoutWindowConfig", publicName: "popoutWindowConfig", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { popOut: "popOut", popIn: "popIn" }, host: { attributes: { "attr.data-pos": "triggerPosition()" }, listeners: { "window:beforeunload": "beforeunloadHandler()" } }, viewQueries: [{ propertyName: "innerWrapper", first: true, predicate: ["innerWrapper"], descendants: true, isSignal: true }, { propertyName: "popoutWrapper", first: true, predicate: ["popoutWrapper"], descendants: true, isSignal: true }], ngImport: i0, template: "<div #popoutWrapper class=\"popoutWrapper\" [ngClass]=\"{disabled: disabled()}\" \n[attr.data-pos]=\"triggerPosition()\">\n <button mat-icon-button type=\"button\" class=\"trigger\" (click)=\"pop($event)\" \n [matTooltip]=\"triggerTooltip()\"\n [ngClass]=\"{poppedOut: isPoppedOut}\">\n <mat-icon>{{triggerIcon()}}</mat-icon>\n </button>\n <div #innerWrapper class=\"innerWrapper\">\n <ng-content></ng-content>\n </div>\n </div>", styles: ["div.popoutWrapper{--trigger-size: 20px;--trigger-margin-block: var(--ymt-spacing-xs);--trigger-margin-inline: var(--ymt-spacing-xs);--trigger-color: white;--trigger-background-color: black;position:relative;min-height:calc(var(--trigger-size) + var(--trigger-margin-block))}div.popoutWrapper[data-pos=tr]>button.trigger{inset-block-end:unset;inset-block-start:var(--trigger-margin-block);inset-inline-start:unset;inset-inline-end:var(--trigger-margin-inline)}div.popoutWrapper[data-pos=tl]>button.trigger{inset-block-end:unset;inset-block-start:var(--trigger-margin-block);inset-inline-end:unset;inset-inline-start:var(--trigger-margin-inline)}div.popoutWrapper[data-pos=bl]>button.trigger{inset-block-start:unset;inset-block-end:var(--trigger-margin-block);inset-inline-end:unset;inset-inline-start:var(--trigger-margin-inline)}div.popoutWrapper[data-pos=br]>button.trigger{inset-block-start:unset;inset-block-end:var(--trigger-margin-block);inset-inline-start:unset;inset-inline-end:var(--trigger-margin-inline)}div.popoutWrapper.disabled>button.trigger{display:none;pointer-events:none}div.popoutWrapper>button.trigger{width:var(--trigger-size);height:var(--trigger-size);padding:0;background-color:var(--trigger-background-color);color:var(--trigger-color);position:absolute}div.popoutWrapper>button.trigger.poppedOut{transform:rotate(180deg)}div.popoutWrapper div.innerWrapper{flex:1;overflow:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
183
|
+
}
|
|
184
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: PopoutComponent, decorators: [{
|
|
185
|
+
type: Component,
|
|
186
|
+
args: [{ selector: 'yuv-popout', imports: [CommonModule, MatButtonModule, MatIconModule, MatTooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
187
|
+
['attr.data-pos']: 'triggerPosition()'
|
|
188
|
+
}, template: "<div #popoutWrapper class=\"popoutWrapper\" [ngClass]=\"{disabled: disabled()}\" \n[attr.data-pos]=\"triggerPosition()\">\n <button mat-icon-button type=\"button\" class=\"trigger\" (click)=\"pop($event)\" \n [matTooltip]=\"triggerTooltip()\"\n [ngClass]=\"{poppedOut: isPoppedOut}\">\n <mat-icon>{{triggerIcon()}}</mat-icon>\n </button>\n <div #innerWrapper class=\"innerWrapper\">\n <ng-content></ng-content>\n </div>\n </div>", styles: ["div.popoutWrapper{--trigger-size: 20px;--trigger-margin-block: var(--ymt-spacing-xs);--trigger-margin-inline: var(--ymt-spacing-xs);--trigger-color: white;--trigger-background-color: black;position:relative;min-height:calc(var(--trigger-size) + var(--trigger-margin-block))}div.popoutWrapper[data-pos=tr]>button.trigger{inset-block-end:unset;inset-block-start:var(--trigger-margin-block);inset-inline-start:unset;inset-inline-end:var(--trigger-margin-inline)}div.popoutWrapper[data-pos=tl]>button.trigger{inset-block-end:unset;inset-block-start:var(--trigger-margin-block);inset-inline-end:unset;inset-inline-start:var(--trigger-margin-inline)}div.popoutWrapper[data-pos=bl]>button.trigger{inset-block-start:unset;inset-block-end:var(--trigger-margin-block);inset-inline-end:unset;inset-inline-start:var(--trigger-margin-inline)}div.popoutWrapper[data-pos=br]>button.trigger{inset-block-start:unset;inset-block-end:var(--trigger-margin-block);inset-inline-start:unset;inset-inline-end:var(--trigger-margin-inline)}div.popoutWrapper.disabled>button.trigger{display:none;pointer-events:none}div.popoutWrapper>button.trigger{width:var(--trigger-size);height:var(--trigger-size);padding:0;background-color:var(--trigger-background-color);color:var(--trigger-color);position:absolute}div.popoutWrapper>button.trigger.poppedOut{transform:rotate(180deg)}div.popoutWrapper div.innerWrapper{flex:1;overflow:auto}\n"] }]
|
|
189
|
+
}], propDecorators: { beforeunloadHandler: [{
|
|
190
|
+
type: HostListener,
|
|
191
|
+
args: ['window:beforeunload']
|
|
192
|
+
}] } });
|
|
193
|
+
|
|
194
|
+
class YuvPopoutModule {
|
|
195
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: YuvPopoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
196
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: YuvPopoutModule, imports: [PopoutComponent], exports: [PopoutComponent] }); }
|
|
197
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: YuvPopoutModule, imports: [PopoutComponent] }); }
|
|
198
|
+
}
|
|
199
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: YuvPopoutModule, decorators: [{
|
|
200
|
+
type: NgModule,
|
|
201
|
+
args: [{
|
|
202
|
+
imports: [PopoutComponent],
|
|
203
|
+
exports: [PopoutComponent]
|
|
204
|
+
}]
|
|
205
|
+
}] });
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Generated bundle index. Do not edit.
|
|
209
|
+
*/
|
|
210
|
+
|
|
211
|
+
export { PopoutComponent, PopoutTriggerPosition, YuvPopoutModule };
|
|
212
|
+
//# sourceMappingURL=yuuvis-client-framework-popout.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yuuvis-client-framework-popout.mjs","sources":["../../../../../libs/yuuvis/client-framework/popout/src/lib/popout.interface.ts","../../../../../libs/yuuvis/client-framework/popout/src/lib/popout.component.ts","../../../../../libs/yuuvis/client-framework/popout/src/lib/popout.component.html","../../../../../libs/yuuvis/client-framework/popout/src/lib/popout.module.ts","../../../../../libs/yuuvis/client-framework/popout/src/yuuvis-client-framework-popout.ts"],"sourcesContent":["export enum PopoutTriggerPosition {\n TOP_LEFT = 'tl',\n TOP_RIGHT = 'tr',\n BOTTOM_LEFT = 'bl',\n BOTTOM_RIGHT = 'br',\n}\n\nexport interface PopoutWindowConfig {\n // title of the window opened by popout\n title?: string;\n position?: {\n // 'top' position in px\n blockStart?: number;\n // 'left' position in px\n inlineStart?: number;\n };\n // set the size of the poped out window\n // If no size is set the window will resize to\n // the size of the rendered content (if measurable)\n size?: {\n // width in px\n width?: number;\n // height in px\n height?: number;\n };\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostListener, inject, input, OnDestroy, output, Renderer2, viewChild } from '@angular/core';\nimport { PopoutTriggerPosition, PopoutWindowConfig } from './popout.interface';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n// based upon: https://github.com/GIimmer/angular-opinionated-popout-window\n\n/**\n * Component that enables the wrapped content to be 'popped out' as new window.\n * It will place a button (icon) to trigger popout on top of the wrapped content. You\n * can place this trigger element setting the 'triggerPosition' input.\n *\n * Providing a 'popoutWindowConfig' will also enable you to influence the appearance of\n * the spawned window.\n *\n */\n@Component({\n selector: 'yuv-popout',\n imports: [CommonModule, MatButtonModule, MatIconModule, MatTooltipModule],\n templateUrl: './popout.component.html',\n styleUrl: './popout.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n ['attr.data-pos']: 'triggerPosition()'\n }\n})\nexport class PopoutComponent implements OnDestroy {\n #renderer2 = inject(Renderer2);\n #cd = inject(ChangeDetectorRef);\n\n @HostListener('window:beforeunload') beforeunloadHandler(): void {\n this._close();\n }\n\n innerWrapper = viewChild.required<ElementRef>('innerWrapper');\n popoutWrapper = viewChild.required<ElementRef>('popoutWrapper');\n\n /**\n * Where the popout trigger should be located on the component\n */\n triggerPosition = input<PopoutTriggerPosition>(PopoutTriggerPosition.TOP_RIGHT);\n /**\n * Icon to be redered inside the trigger\n */\n triggerIcon = input<string>('open_in_new');\n /**\n * Tooltip text for the trigger button\n */\n triggerTooltip = input<string>();\n\n /**\n * configuration of the popped out window\n */\n popoutWindowConfig = input<PopoutWindowConfig>();\n /**\n * Whether or not to disable the undock feature\n */\n disabled = input<boolean>();\n\n /**\n * Emitted when the child component is popped out\n */\n popOut = output<boolean>();\n /**\n * Emitted when the child component is popped in again\n */\n popIn = output<boolean>();\n\n #popoutWindow?: Window | null;\n #observer?: MutationObserver;\n\n\n\n get isPoppedOut() {\n return !!this.#popoutWindow;\n }\n\n pop(e: MouseEvent) {\n if (this.isPoppedOut) this._popIn();\n else this._popOut(e);\n }\n\n private _popIn(): void {\n this.#renderer2.appendChild(this.popoutWrapper().nativeElement, this.innerWrapper().nativeElement);\n this._close();\n this.#cd.detectChanges();\n }\n\n private _popOut(event?: MouseEvent): void {\n if (!this.#popoutWindow) {\n this.#popoutWindow = this._createPopoutWindow(event);\n\n if (!this.#popoutWindow) {\n // The window wasn't allowed to open\n // This is likely caused by built-in popup blockers.\n alert('Could not open new window. This is likely caused by built-in popup blockers.');\n return;\n }\n this._cloneStylesToPopoutWindow();\n this._observeFutureStyleChanges();\n\n this.#renderer2.appendChild(this.#popoutWindow.document.body, this.innerWrapper().nativeElement);\n this.#popoutWindow.addEventListener('unload', () => this._popIn());\n this.#cd.detectChanges();\n this.popOut.emit(true);\n } else {\n this.#popoutWindow.focus();\n }\n }\n\n private _createPopoutWindow(mouseEvent?: MouseEvent): Window | null {\n const elmRect = this.innerWrapper().nativeElement.getBoundingClientRect();\n const [winLeft, winTop] = this._getWindowPositioning(elmRect, mouseEvent);\n const pwc = this.popoutWindowConfig();\n const winWidth = pwc?.size?.width ? pwc.size.width : elmRect.width;\n const winHeight = pwc?.size?.height ? pwc.size.height : elmRect.height + 1;\n\n const win = window.open(\n '',\n `popoutWindow${Date.now()}`,\n ` popup,\n width=${winWidth},\n height=${winHeight},\n left=${winLeft},\n top=${winTop}`\n );\n if (win) {\n win.document.title = this.popoutWindowConfig()?.title || window.document.title;\n win.document.body.style.margin = '0';\n }\n return win;\n }\n\n private _getWindowPositioning(elmRect: DOMRect, mouseEvent?: MouseEvent) {\n let winTop, winLeft;\n\n const pwc = this.popoutWindowConfig()?.position;\n if (pwc) {\n winTop = pwc.blockStart || winTop;\n winLeft = pwc.inlineStart || winLeft;\n } else {\n const navHeight = window.outerHeight - window.innerHeight;\n const navWidth = (window.outerWidth - window.innerWidth) / 2;\n\n winTop = window.screenY + navHeight + elmRect.top - 60;\n winLeft = window.screenX + navWidth + elmRect.left;\n\n // Position window titleBar under mouse\n if (mouseEvent) {\n winTop = mouseEvent.clientY + navHeight - 7;\n winLeft += 120;\n }\n }\n return [winLeft, winTop];\n }\n\n private _close(): void {\n if (this.#popoutWindow) {\n this.#popoutWindow.close();\n this.#popoutWindow = null;\n this.popIn.emit(true);\n }\n }\n\n private _cloneStylesToPopoutWindow() {\n if (window.navigator.userAgent.indexOf('Firefox') === -1) {\n document.fonts.forEach((node) => {\n (this.#popoutWindow!.document as any).fonts.add(node);\n });\n }\n document.head.querySelectorAll('link[rel=\"stylesheet\"]').forEach((node) => {\n this.#popoutWindow!.document.head.insertAdjacentHTML(\n 'beforeend',\n `<link rel=\"stylesheet\" type=\"${(node as HTMLLinkElement).type}\" href=\"${(node as HTMLLinkElement).href}\">`\n );\n });\n document.head.querySelectorAll('style').forEach((node) => {\n this.#popoutWindow!.document.head.appendChild(node.cloneNode(true));\n });\n }\n\n private _observeFutureStyleChanges() {\n const headEle = document.querySelector('head');\n this.#observer?.disconnect();\n this.#observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n mutation.addedNodes.forEach((node) => {\n if (node.nodeName === 'STYLE') {\n this.#popoutWindow!.document.head.appendChild(node.cloneNode(true));\n }\n });\n });\n });\n this.#observer.observe(headEle!, { childList: true });\n }\n\n ngOnDestroy(): void {\n this.#observer?.disconnect();\n this._close();\n }\n}\n","<div #popoutWrapper class=\"popoutWrapper\" [ngClass]=\"{disabled: disabled()}\" \n[attr.data-pos]=\"triggerPosition()\">\n <button mat-icon-button type=\"button\" class=\"trigger\" (click)=\"pop($event)\" \n [matTooltip]=\"triggerTooltip()\"\n [ngClass]=\"{poppedOut: isPoppedOut}\">\n <mat-icon>{{triggerIcon()}}</mat-icon>\n </button>\n <div #innerWrapper class=\"innerWrapper\">\n <ng-content></ng-content>\n </div>\n </div>","import { NgModule } from '@angular/core';\nimport { PopoutComponent } from './popout.component';\n\n@NgModule({\n imports: [PopoutComponent],\n exports: [PopoutComponent]\n})\nexport class YuvPopoutModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;IAAY;AAAZ,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,IAAe;AACf,IAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,IAAgB;AAChB,IAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,IAAkB;AAClB,IAAA,qBAAA,CAAA,cAAA,CAAA,GAAA,IAAmB;AACrB,CAAC,EALW,qBAAqB,KAArB,qBAAqB,GAKhC,EAAA,CAAA,CAAA;;ACED;AAEA;;;;;;;;AAQG;MAWU,eAAe,CAAA;AAV5B,IAAA,WAAA,GAAA;AAWE,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC;AAC9B,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAM/B,QAAA,IAAA,CAAA,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAa,cAAc,CAAC;AAC7D,QAAA,IAAA,CAAA,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAa,eAAe,CAAC;AAE/D;;AAEG;AACH,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAwB,qBAAqB,CAAC,SAAS,CAAC;AAC/E;;AAEG;AACH,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,aAAa,CAAC;AAC1C;;AAEG;QACH,IAAc,CAAA,cAAA,GAAG,KAAK,EAAU;AAEhC;;AAEG;QACH,IAAkB,CAAA,kBAAA,GAAG,KAAK,EAAsB;AAChD;;AAEG;QACH,IAAQ,CAAA,QAAA,GAAG,KAAK,EAAW;AAE3B;;AAEG;QACH,IAAM,CAAA,MAAA,GAAG,MAAM,EAAW;AAC1B;;AAEG;QACH,IAAK,CAAA,KAAA,GAAG,MAAM,EAAW;AAsI1B;AA7KC,IAAA,UAAU;AACV,IAAA,GAAG;IAEkC,mBAAmB,GAAA;QACtD,IAAI,CAAC,MAAM,EAAE;;AAqCf,IAAA,aAAa;AACb,IAAA,SAAS;AAIT,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa;;AAG7B,IAAA,GAAG,CAAC,CAAa,EAAA;QACf,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,MAAM,EAAE;;AAC9B,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;;IAGd,MAAM,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC;QAClG,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;;AAGlB,IAAA,OAAO,CAAC,KAAkB,EAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAEpD,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;;;gBAGvB,KAAK,CAAC,8EAA8E,CAAC;gBACrF;;YAEF,IAAI,CAAC,0BAA0B,EAAE;YACjC,IAAI,CAAC,0BAA0B,EAAE;YAEjC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC;AAChG,YAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;AAClE,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;AACxB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;;aACjB;AACL,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;;;AAItB,IAAA,mBAAmB,CAAC,UAAuB,EAAA;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE;AACzE,QAAA,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC;AACzE,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,EAAE;QACrC,MAAM,QAAQ,GAAG,GAAG,EAAE,IAAI,EAAE,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK;QAClE,MAAM,SAAS,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;AAE1E,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CACrB,EAAE,EACF,CAAA,YAAA,EAAe,IAAI,CAAC,GAAG,EAAE,EAAE,EAC3B,CAAA;gBACU,QAAQ,CAAA;iBACP,SAAS,CAAA;eACX,OAAO,CAAA;cACR,MAAM,CAAA,CAAE,CACjB;QACD,IAAI,GAAG,EAAE;AACP,YAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,EAAE,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK;YAC9E,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG;;AAEtC,QAAA,OAAO,GAAG;;IAGJ,qBAAqB,CAAC,OAAgB,EAAE,UAAuB,EAAA;QACrE,IAAI,MAAM,EAAE,OAAO;QAEnB,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,EAAE,EAAE,QAAQ;QAC/C,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,GAAG,CAAC,UAAU,IAAI,MAAM;AACjC,YAAA,OAAO,GAAG,GAAG,CAAC,WAAW,IAAI,OAAO;;aAC/B;YACL,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW;AACzD,YAAA,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC;AAE5D,YAAA,MAAM,GAAG,MAAM,CAAC,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG,GAAG,EAAE;YACtD,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI;;YAGlD,IAAI,UAAU,EAAE;gBACd,MAAM,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,GAAG,CAAC;gBAC3C,OAAO,IAAI,GAAG;;;AAGlB,QAAA,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;;IAGlB,MAAM,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAC1B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;;IAIjB,0BAA0B,GAAA;AAChC,QAAA,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;YACxD,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBAC7B,IAAI,CAAC,aAAc,CAAC,QAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACvD,aAAC,CAAC;;AAEJ,QAAA,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACxE,IAAI,CAAC,aAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAClD,WAAW,EACX,CAAiC,6BAAA,EAAA,IAAwB,CAAC,IAAI,CAAA,QAAA,EAAY,IAAwB,CAAC,IAAI,CAAI,EAAA,CAAA,CAC5G;AACH,SAAC,CAAC;AACF,QAAA,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACvD,YAAA,IAAI,CAAC,aAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACrE,SAAC,CAAC;;IAGI,0BAA0B,GAAA;QAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAC9C,QAAA,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,CAAC,SAAS,KAAI;AAClD,YAAA,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;gBAC7B,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACnC,oBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;AAC7B,wBAAA,IAAI,CAAC,aAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;AAEvE,iBAAC,CAAC;AACJ,aAAC,CAAC;AACJ,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;IAGvD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE;QAC5B,IAAI,CAAC,MAAM,EAAE;;8GA5KJ,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,EAAA,SAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5B5B,2cAUQ,EDUI,MAAA,EAAA,CAAA,+3CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,4HAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAQ7D,eAAe,EAAA,UAAA,EAAA,CAAA;kBAV3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EACb,OAAA,EAAA,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,CAAC,EAAA,eAAA,EAGxD,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;wBACJ,CAAC,eAAe,GAAG;AACpB,qBAAA,EAAA,QAAA,EAAA,2cAAA,EAAA,MAAA,EAAA,CAAA,+3CAAA,CAAA,EAAA;8BAMoC,mBAAmB,EAAA,CAAA;sBAAvD,YAAY;uBAAC,qBAAqB;;;MEzBxB,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAf,eAAe,EAAA,OAAA,EAAA,CAHhB,eAAe,CAAA,EAAA,OAAA,EAAA,CACf,eAAe,CAAA,EAAA,CAAA,CAAA;AAEd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAHhB,eAAe,CAAA,EAAA,CAAA,CAAA;;2FAGd,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,eAAe,CAAC;oBAC1B,OAAO,EAAE,CAAC,eAAe;AAC1B,iBAAA;;;ACND;;AAEG;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, input, Component, computed, signal, Injectable, ViewContainerRef, Injector, runInInjectionContext, Directive
|
|
2
|
+
import { inject, input, Component, computed, effect, signal, Injectable, ViewContainerRef, Injector, runInInjectionContext, Directive } from '@angular/core';
|
|
3
3
|
import { SystemService, LocaleDatePipe, FileSizePipe, InternalFieldType, ContentStreamField } from '@yuuvis/client-core';
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
4
|
+
import { MatIconRegistry, MatIcon } from '@angular/material/icon';
|
|
5
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
6
6
|
import { ObjectTypeIconComponent } from '@yuuvis/client-framework/icons';
|
|
7
7
|
|
|
8
8
|
/**
|
|
@@ -19,10 +19,10 @@ class AbstractRendererComponent {
|
|
|
19
19
|
getProperty() {
|
|
20
20
|
return this.#system.system?.allFields[this.propertyName()];
|
|
21
21
|
}
|
|
22
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
23
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AbstractRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.1", type: AbstractRendererComponent, isStandalone: true, selector: "yuv-abstract-renderer", inputs: { propertyName: { classPropertyName: "propertyName", publicName: "propertyName", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: '', isInline: true }); }
|
|
24
24
|
}
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AbstractRendererComponent, decorators: [{
|
|
26
26
|
type: Component,
|
|
27
27
|
args: [{
|
|
28
28
|
selector: 'yuv-abstract-renderer',
|
|
@@ -32,19 +32,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
32
32
|
}] });
|
|
33
33
|
|
|
34
34
|
class DateTimeRendererComponent extends AbstractRendererComponent {
|
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
36
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: DateTimeRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
36
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.1", type: DateTimeRendererComponent, isStandalone: true, selector: "yuv-datetime-renderer", usesInheritance: true, ngImport: i0, template: '{{(value() || undefined) | localeDate}}', isInline: true, styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"], dependencies: [{ kind: "pipe", type: LocaleDatePipe, name: "localeDate" }] }); }
|
|
37
37
|
}
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: DateTimeRendererComponent, decorators: [{
|
|
39
39
|
type: Component,
|
|
40
40
|
args: [{ selector: 'yuv-datetime-renderer', standalone: true, imports: [LocaleDatePipe], template: '{{(value() || undefined) | localeDate}}', styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"] }]
|
|
41
41
|
}] });
|
|
42
42
|
|
|
43
43
|
class DecimalRendererComponent extends AbstractRendererComponent {
|
|
44
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
45
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
44
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: DecimalRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.1", type: DecimalRendererComponent, isStandalone: true, selector: "yuv-decimal-renderer", usesInheritance: true, ngImport: i0, template: '{{value()}}', isInline: true, styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"] }); }
|
|
46
46
|
}
|
|
47
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: DecimalRendererComponent, decorators: [{
|
|
48
48
|
type: Component,
|
|
49
49
|
args: [{ selector: 'yuv-decimal-renderer', standalone: true, template: '{{value()}}', styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"] }]
|
|
50
50
|
}] });
|
|
@@ -65,36 +65,63 @@ class FileSizeRendererComponent extends AbstractRendererComponent {
|
|
|
65
65
|
return n;
|
|
66
66
|
});
|
|
67
67
|
}
|
|
68
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
69
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
68
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: FileSizeRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
69
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.1", type: FileSizeRendererComponent, isStandalone: true, selector: "yuv-string-renderer", usesInheritance: true, ngImport: i0, template: '{{parsedValue() | fileSize}}', isInline: true, styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"], dependencies: [{ kind: "pipe", type: FileSizePipe, name: "fileSize" }] }); }
|
|
70
70
|
}
|
|
71
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: FileSizeRendererComponent, decorators: [{
|
|
72
72
|
type: Component,
|
|
73
73
|
args: [{ selector: 'yuv-string-renderer', imports: [FileSizePipe], standalone: true, template: '{{parsedValue() | fileSize}}', styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"] }]
|
|
74
74
|
}] });
|
|
75
75
|
|
|
76
76
|
class IconRendererComponent extends AbstractRendererComponent {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
77
|
+
constructor() {
|
|
78
|
+
super(...arguments);
|
|
79
|
+
this.#iconRegistry = inject(MatIconRegistry);
|
|
80
|
+
this.#sanitizer = inject(DomSanitizer);
|
|
81
|
+
this.customId = crypto.randomUUID();
|
|
82
|
+
this.#registerIconsEffect = effect(async () => {
|
|
83
|
+
const meta = this.meta();
|
|
84
|
+
this.propertyName() === 'custom' &&
|
|
85
|
+
!(meta && meta['isFontIcon']) &&
|
|
86
|
+
this.#iconRegistry.addSvgIconLiteral(this.customId, this.#sanitizer.bypassSecurityTrustHtml(this.value()));
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
#iconRegistry;
|
|
90
|
+
#sanitizer;
|
|
91
|
+
#registerIconsEffect;
|
|
92
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: IconRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
93
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: IconRendererComponent, isStandalone: true, selector: "yuv-icon-renderer", usesInheritance: true, ngImport: i0, template: ` @let icon = value();
|
|
94
|
+
@if (propertyName() !== 'custom') {
|
|
95
|
+
<yuv-object-type-icon [objectTypeId]="icon || ''"></yuv-object-type-icon>
|
|
96
|
+
} @else if (icon !== null) {
|
|
97
|
+
@let metaData = meta();
|
|
98
|
+
@if (metaData && metaData['isFontIcon']) {
|
|
99
|
+
<mat-icon>{{ icon }}</mat-icon>
|
|
100
|
+
} @else {
|
|
101
|
+
<mat-icon [svgIcon]="customId"></mat-icon>
|
|
102
|
+
}
|
|
103
|
+
}`, isInline: true, styles: [":host{display:flex;align-items:center;justify-content:center;padding:var(--tile-slot-padding)}:host yuv-icon,:host yuv-object-type-icon{--icon-size: var(--icon-renderer-icon-size);width:var(--icon-size);height:var(--icon-size)}\n"], dependencies: [{ kind: "component", type: ObjectTypeIconComponent, selector: "yuv-object-type-icon", inputs: ["objectTypeId"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
83
104
|
}
|
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: IconRendererComponent, decorators: [{
|
|
85
106
|
type: Component,
|
|
86
|
-
args: [{ selector: 'yuv-icon-renderer', standalone: true, imports: [
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
107
|
+
args: [{ selector: 'yuv-icon-renderer', standalone: true, imports: [ObjectTypeIconComponent, MatIcon], template: ` @let icon = value();
|
|
108
|
+
@if (propertyName() !== 'custom') {
|
|
109
|
+
<yuv-object-type-icon [objectTypeId]="icon || ''"></yuv-object-type-icon>
|
|
110
|
+
} @else if (icon !== null) {
|
|
111
|
+
@let metaData = meta();
|
|
112
|
+
@if (metaData && metaData['isFontIcon']) {
|
|
113
|
+
<mat-icon>{{ icon }}</mat-icon>
|
|
114
|
+
} @else {
|
|
115
|
+
<mat-icon [svgIcon]="customId"></mat-icon>
|
|
116
|
+
}
|
|
117
|
+
}`, styles: [":host{display:flex;align-items:center;justify-content:center;padding:var(--tile-slot-padding)}:host yuv-icon,:host yuv-object-type-icon{--icon-size: var(--icon-renderer-icon-size);width:var(--icon-size);height:var(--icon-size)}\n"] }]
|
|
91
118
|
}] });
|
|
92
119
|
|
|
93
120
|
class IntegerRendererComponent extends AbstractRendererComponent {
|
|
94
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
95
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
121
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: IntegerRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
122
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.1", type: IntegerRendererComponent, isStandalone: true, selector: "yuv-integer-renderer", usesInheritance: true, ngImport: i0, template: '{{value()}}', isInline: true, styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"] }); }
|
|
96
123
|
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: IntegerRendererComponent, decorators: [{
|
|
98
125
|
type: Component,
|
|
99
126
|
args: [{ selector: 'yuv-integer-renderer', standalone: true, template: '{{value()}}', styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"] }]
|
|
100
127
|
}] });
|
|
@@ -107,28 +134,28 @@ class OrganizationRendererComponent extends AbstractRendererComponent {
|
|
|
107
134
|
return (m ? m['title'] : this.value() || '');
|
|
108
135
|
});
|
|
109
136
|
}
|
|
110
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
111
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
137
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: OrganizationRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
138
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.1", type: OrganizationRendererComponent, isStandalone: true, selector: "yuv-organization-renderer", usesInheritance: true, ngImport: i0, template: '{{resolvedValue()}}', isInline: true, styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"] }); }
|
|
112
139
|
}
|
|
113
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
140
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: OrganizationRendererComponent, decorators: [{
|
|
114
141
|
type: Component,
|
|
115
142
|
args: [{ selector: 'yuv-organization-renderer', imports: [], standalone: true, template: '{{resolvedValue()}}', styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"] }]
|
|
116
143
|
}] });
|
|
117
144
|
|
|
118
145
|
class StringRendererComponent extends AbstractRendererComponent {
|
|
119
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
120
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
146
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: StringRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
147
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.1", type: StringRendererComponent, isStandalone: true, selector: "yuv-string-renderer", usesInheritance: true, ngImport: i0, template: '{{value()}}', isInline: true, styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"] }); }
|
|
121
148
|
}
|
|
122
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: StringRendererComponent, decorators: [{
|
|
123
150
|
type: Component,
|
|
124
151
|
args: [{ selector: 'yuv-string-renderer', standalone: true, template: '{{value()}}', styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"] }]
|
|
125
152
|
}] });
|
|
126
153
|
|
|
127
154
|
class UnknownRendererComponent extends AbstractRendererComponent {
|
|
128
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
129
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
155
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: UnknownRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
156
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.1", type: UnknownRendererComponent, isStandalone: true, selector: "yuv-unknown-renderer", usesInheritance: true, ngImport: i0, template: '{{value()}}', isInline: true, styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"] }); }
|
|
130
157
|
}
|
|
131
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
158
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: UnknownRendererComponent, decorators: [{
|
|
132
159
|
type: Component,
|
|
133
160
|
args: [{ selector: 'yuv-unknown-renderer', standalone: true, imports: [], template: '{{value()}}', styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"] }]
|
|
134
161
|
}] });
|
|
@@ -165,7 +192,7 @@ class RendererService {
|
|
|
165
192
|
if (!r) {
|
|
166
193
|
// not special renderer found so we'll try to get one for the internal type
|
|
167
194
|
// of the given property
|
|
168
|
-
const srf = this.system.system.allFields[propertyName];
|
|
195
|
+
const srf = this.system.system && this.system.system.allFields[propertyName];
|
|
169
196
|
if (srf) {
|
|
170
197
|
r = this.getRendererByType(this.system.getInternalFormElementType(srf.propertyType, srf.classifications));
|
|
171
198
|
}
|
|
@@ -192,14 +219,13 @@ class RendererService {
|
|
|
192
219
|
// Generate the unique key for a renderer
|
|
193
220
|
_getKey(propertyName, typeName) {
|
|
194
221
|
const k = [propertyName];
|
|
195
|
-
|
|
196
|
-
k.push(typeName);
|
|
222
|
+
typeName && k.push(typeName);
|
|
197
223
|
return k.join('-');
|
|
198
224
|
}
|
|
199
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
200
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
225
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: RendererService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
226
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: RendererService, providedIn: 'root' }); }
|
|
201
227
|
}
|
|
202
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
228
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: RendererService, decorators: [{
|
|
203
229
|
type: Injectable,
|
|
204
230
|
args: [{
|
|
205
231
|
providedIn: 'root'
|
|
@@ -214,45 +240,46 @@ class RendererDirective {
|
|
|
214
240
|
this.rendererService = inject(RendererService);
|
|
215
241
|
this.containerRef = inject(ViewContainerRef);
|
|
216
242
|
this.injector = inject(Injector);
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
this.
|
|
221
|
-
|
|
222
|
-
if (
|
|
243
|
+
this.yuvRenderer = input(undefined);
|
|
244
|
+
this.#yuvRendererEffect = effect(() => {
|
|
245
|
+
const i = this.yuvRenderer();
|
|
246
|
+
if (i && !this._alreadyRendered(i)) {
|
|
247
|
+
this._rendererInput = i;
|
|
248
|
+
if (i) {
|
|
249
|
+
if (this.component)
|
|
250
|
+
this.containerRef.clear();
|
|
251
|
+
const cmp = i.rendererType
|
|
252
|
+
? this.rendererService.getRendererByType(i.rendererType)
|
|
253
|
+
: this.rendererService.getRenderer(i.propertyName);
|
|
254
|
+
this.component = this.containerRef.createComponent(cmp);
|
|
255
|
+
// pass inputs to the renderer. As they are signals they need an injection context
|
|
256
|
+
runInInjectionContext(this.injector, () => {
|
|
257
|
+
this.component.setInput('propertyName', i.propertyName);
|
|
258
|
+
this.component.setInput('value', i.value);
|
|
259
|
+
if (i.meta)
|
|
260
|
+
this.component.setInput('meta', i.meta);
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
223
264
|
this.containerRef.clear();
|
|
224
|
-
|
|
225
|
-
? this.rendererService.getRendererByType(i.rendererType)
|
|
226
|
-
: this.rendererService.getRenderer(i.propertyName);
|
|
227
|
-
this.component = this.containerRef.createComponent(cmp);
|
|
228
|
-
// pass inputs to the renderer. As they are signals they need an injection context
|
|
229
|
-
runInInjectionContext(this.injector, () => {
|
|
230
|
-
this.component.setInput('propertyName', i.propertyName);
|
|
231
|
-
this.component.setInput('value', i.value);
|
|
232
|
-
if (i.meta)
|
|
233
|
-
this.component.setInput('meta', i.meta);
|
|
234
|
-
});
|
|
235
|
-
}
|
|
236
|
-
else {
|
|
237
|
-
this.containerRef.clear();
|
|
265
|
+
}
|
|
238
266
|
}
|
|
239
|
-
}
|
|
267
|
+
});
|
|
240
268
|
}
|
|
269
|
+
#yuvRendererEffect;
|
|
241
270
|
_alreadyRendered(i) {
|
|
242
271
|
return !!this._rendererInput && JSON.stringify(this._rendererInput) === JSON.stringify(i);
|
|
243
272
|
}
|
|
244
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
245
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
273
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: RendererDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
274
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.1", type: RendererDirective, isStandalone: true, selector: "[yuvRenderer]", inputs: { yuvRenderer: { classPropertyName: "yuvRenderer", publicName: "yuvRenderer", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
246
275
|
}
|
|
247
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
276
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: RendererDirective, decorators: [{
|
|
248
277
|
type: Directive,
|
|
249
278
|
args: [{
|
|
250
279
|
selector: '[yuvRenderer]',
|
|
251
280
|
standalone: true
|
|
252
281
|
}]
|
|
253
|
-
}]
|
|
254
|
-
type: Input
|
|
255
|
-
}] } });
|
|
282
|
+
}] });
|
|
256
283
|
|
|
257
284
|
/**
|
|
258
285
|
* Generated bundle index. Do not edit.
|