@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,33 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input, signal } from '@angular/core';
|
|
2
|
+
import { YvcIconModule } from '@yuuvis/components/icon';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@yuuvis/components/icon";
|
|
5
|
+
export class MultiObjectSummaryComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.icon = signal('<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="#5f6368" viewBox="0 -960 960 960"><path d="m200-120-80-480h720l-80 480H200Zm67-80h426l51-320H216l51 320Zm133-160h160q17 0 28.5-11.5T600-400q0-17-11.5-28.5T560-440H400q-17 0-28.5 11.5T360-400q0 17 11.5 28.5T400-360ZM240-640q-17 0-28.5-11.5T200-680q0-17 11.5-28.5T240-720h480q17 0 28.5 11.5T760-680q0 17-11.5 28.5T720-640H240Zm80-120q-17 0-28.5-11.5T280-800q0-17 11.5-28.5T320-840h320q17 0 28.5 11.5T680-800q0 17-11.5 28.5T640-760H320Zm-53 560h426-426Z"/></svg>');
|
|
8
|
+
this.headline = input('this could be your headline');
|
|
9
|
+
}
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultiObjectSummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: MultiObjectSummaryComponent, isStandalone: true, selector: "yuv-multi-object-summary", inputs: { headline: { classPropertyName: "headline", publicName: "headline", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
12
|
+
<section class="slide">
|
|
13
|
+
<yvc-icon [svg]="icon()"></yvc-icon>
|
|
14
|
+
</section>
|
|
15
|
+
|
|
16
|
+
<section class="title">
|
|
17
|
+
<h1>{{ headline() }}</h1>
|
|
18
|
+
</section>
|
|
19
|
+
`, isInline: true, styles: ["section.title{padding:var(--app-pane-padding);display:flex;justify-content:space-between;align-items:center;gap:var(--app-pane-padding)}section.title h1{margin:0;padding:0;font-size:var(--font-title);font-weight:400;text-overflow:ellipsis;overflow:hidden}section.title .actions yvc-icon{--icon-size: 18px}section.title .actions button.quickAccess.isFavorite{color:var(--color-accent)}section.slide{display:flex;flex-flow:column;align-items:center;justify-content:center;border-block-end:1px solid var(--panel-divider-color);background-color:var(--panel-background-grey);position:relative;height:25%;overflow:hidden}section.slide .badge{position:absolute;inset-inline-end:calc(var(--app-pane-padding) / 2);inset-block-start:calc(var(--app-pane-padding) / 2);font-size:3rem;color:var(--text-color-hint)}section.slide yvc-icon{max-height:var(--max-slide-size);max-width:var(--max-slide-size);width:50%;height:50%;opacity:.3}section.slide img{object-fit:cover;object-position:top;opacity:0;transition:opacity .3s;margin:auto;max-height:100%;max-width:100%;outline:4px solid var(--panel-background);outline-offset:-4px;box-shadow:0 0 0 1px var(--panel-divider-color)}section.slide img:not(.loading){opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i1.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultiObjectSummaryComponent, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{ selector: 'yuv-multi-object-summary', standalone: true, imports: [YvcIconModule], template: `
|
|
24
|
+
<section class="slide">
|
|
25
|
+
<yvc-icon [svg]="icon()"></yvc-icon>
|
|
26
|
+
</section>
|
|
27
|
+
|
|
28
|
+
<section class="title">
|
|
29
|
+
<h1>{{ headline() }}</h1>
|
|
30
|
+
</section>
|
|
31
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["section.title{padding:var(--app-pane-padding);display:flex;justify-content:space-between;align-items:center;gap:var(--app-pane-padding)}section.title h1{margin:0;padding:0;font-size:var(--font-title);font-weight:400;text-overflow:ellipsis;overflow:hidden}section.title .actions yvc-icon{--icon-size: 18px}section.title .actions button.quickAccess.isFavorite{color:var(--color-accent)}section.slide{display:flex;flex-flow:column;align-items:center;justify-content:center;border-block-end:1px solid var(--panel-divider-color);background-color:var(--panel-background-grey);position:relative;height:25%;overflow:hidden}section.slide .badge{position:absolute;inset-inline-end:calc(var(--app-pane-padding) / 2);inset-block-start:calc(var(--app-pane-padding) / 2);font-size:3rem;color:var(--text-color-hint)}section.slide yvc-icon{max-height:var(--max-slide-size);max-width:var(--max-slide-size);width:50%;height:50%;opacity:.3}section.slide img{object-fit:cover;object-position:top;opacity:0;transition:opacity .3s;margin:auto;max-height:100%;max-width:100%;outline:4px solid var(--panel-background);outline-offset:-4px;box-shadow:0 0 0 1px var(--panel-divider-color)}section.slide img:not(.loading){opacity:1}\n"] }]
|
|
32
|
+
}] });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktb2JqZWN0LXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9vYmplY3Qtc3VtbWFyeS9zcmMvbGliL211bHRpLW9iamVjdC1zdW1tYXJ5L211bHRpLW9iamVjdC1zdW1tYXJ5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFrQnhELE1BQU0sT0FBTywyQkFBMkI7SUFoQnhDO1FBaUJFLFNBQUksR0FBRyxNQUFNLENBQ1gsa2hCQUFraEIsQ0FDbmhCLENBQUM7UUFFRixhQUFRLEdBQUcsS0FBSyxDQUFTLDZCQUE2QixDQUFDLENBQUM7S0FDekQ7K0dBTlksMkJBQTJCO21HQUEzQiwyQkFBMkIsaU9BWjVCOzs7Ozs7OztHQVFULCt2Q0FUUyxhQUFhOzs0RkFhWiwyQkFBMkI7a0JBaEJ2QyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1AsQ0FBQyxhQUFhLENBQUMsWUFDZDs7Ozs7Ozs7R0FRVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFl2Y0ljb25Nb2R1bGUgfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvaWNvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3l1di1tdWx0aS1vYmplY3Qtc3VtbWFyeScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtZdmNJY29uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8c2VjdGlvbiBjbGFzcz1cInNsaWRlXCI+XG4gICAgICA8eXZjLWljb24gW3N2Z109XCJpY29uKClcIj48L3l2Yy1pY29uPlxuICAgIDwvc2VjdGlvbj5cblxuICAgIDxzZWN0aW9uIGNsYXNzPVwidGl0bGVcIj5cbiAgICAgIDxoMT57eyBoZWFkbGluZSgpIH19PC9oMT5cbiAgICA8L3NlY3Rpb24+XG4gIGAsXG4gIHN0eWxlVXJsOiAnLi9tdWx0aS1vYmplY3Qtc3VtbWFyeS5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpT2JqZWN0U3VtbWFyeUNvbXBvbmVudCB7XG4gIGljb24gPSBzaWduYWwoXG4gICAgJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIGZpbGw9XCIjNWY2MzY4XCIgdmlld0JveD1cIjAgLTk2MCA5NjAgOTYwXCI+PHBhdGggZD1cIm0yMDAtMTIwLTgwLTQ4MGg3MjBsLTgwIDQ4MEgyMDBabTY3LTgwaDQyNmw1MS0zMjBIMjE2bDUxIDMyMFptMTMzLTE2MGgxNjBxMTcgMCAyOC41LTExLjVUNjAwLTQwMHEwLTE3LTExLjUtMjguNVQ1NjAtNDQwSDQwMHEtMTcgMC0yOC41IDExLjVUMzYwLTQwMHEwIDE3IDExLjUgMjguNVQ0MDAtMzYwWk0yNDAtNjQwcS0xNyAwLTI4LjUtMTEuNVQyMDAtNjgwcTAtMTcgMTEuNS0yOC41VDI0MC03MjBoNDgwcTE3IDAgMjguNSAxMS41VDc2MC02ODBxMCAxNy0xMS41IDI4LjVUNzIwLTY0MEgyNDBabTgwLTEyMHEtMTcgMC0yOC41LTExLjVUMjgwLTgwMHEwLTE3IDExLjUtMjguNVQzMjAtODQwaDMyMHExNyAwIDI4LjUgMTEuNVQ2ODAtODAwcTAgMTctMTEuNSAyOC41VDY0MC03NjBIMzIwWm0tNTMgNTYwaDQyNi00MjZaXCIvPjwvc3ZnPidcbiAgKTtcblxuICBoZWFkbGluZSA9IGlucHV0PHN0cmluZz4oJ3RoaXMgY291bGQgYmUgeW91ciBoZWFkbGluZScpO1xufVxuIl19
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { NgClass } from '@angular/common';
|
|
2
|
+
import { ChangeDetectorRef, Component, effect, inject, input, signal, untracked, viewChild } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { BaseObjectTypeField, ContentStreamField, DmsService, EventService, ObjectConfigService, Operator, SearchService, SystemService, TranslateModule, TranslateService, YuvEventType } from '@yuuvis/client-core';
|
|
5
|
+
import { BusyOverlayDirective } from '@yuuvis/client-framework/common';
|
|
6
|
+
import { YUV_ICONS } from '@yuuvis/client-framework/icons';
|
|
7
|
+
import { ObjectFlavorComponent } from '@yuuvis/client-framework/object-flavor';
|
|
8
|
+
import { RendererDirective } from '@yuuvis/client-framework/renderer';
|
|
9
|
+
import { YvcIconModule } from '@yuuvis/components/icon';
|
|
10
|
+
import { YvcOverflowMenuComponent } from '@yuuvis/components/overflow-menu';
|
|
11
|
+
import { YvcOverlayModule } from '@yuuvis/components/overlay';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "@yuuvis/client-framework/common";
|
|
14
|
+
import * as i2 from "@yuuvis/components/icon";
|
|
15
|
+
/**
|
|
16
|
+
* Component showing a summary of the given dms object.
|
|
17
|
+
*/
|
|
18
|
+
export class ObjectSummaryComponent {
|
|
19
|
+
#eventService;
|
|
20
|
+
#dmsService;
|
|
21
|
+
#systemService;
|
|
22
|
+
#objectConfigService;
|
|
23
|
+
#searchService;
|
|
24
|
+
#cd;
|
|
25
|
+
#oc;
|
|
26
|
+
#dmsObjectInputEffect;
|
|
27
|
+
#objectIdEffect;
|
|
28
|
+
constructor() {
|
|
29
|
+
this.#eventService = inject(EventService);
|
|
30
|
+
this.#dmsService = inject(DmsService);
|
|
31
|
+
this.translate = inject(TranslateService);
|
|
32
|
+
this.#systemService = inject(SystemService);
|
|
33
|
+
this.#objectConfigService = inject(ObjectConfigService);
|
|
34
|
+
this.#searchService = inject(SearchService);
|
|
35
|
+
this.#cd = inject(ChangeDetectorRef);
|
|
36
|
+
this.flavorCmp = viewChild(ObjectFlavorComponent);
|
|
37
|
+
this.slide = signal({
|
|
38
|
+
loading: false
|
|
39
|
+
});
|
|
40
|
+
this.busy = true;
|
|
41
|
+
this.headerData = signal(undefined);
|
|
42
|
+
this.baseData = [];
|
|
43
|
+
this.icons = {
|
|
44
|
+
folder: YUV_ICONS.folder
|
|
45
|
+
};
|
|
46
|
+
this.actions = input([]);
|
|
47
|
+
/**
|
|
48
|
+
* DmsObject to show the details for.
|
|
49
|
+
*/
|
|
50
|
+
this.dmsObject = signal(undefined);
|
|
51
|
+
this.dmsObjectInput = input(undefined, { alias: 'dmsObject' });
|
|
52
|
+
this.#dmsObjectInputEffect = effect(() => {
|
|
53
|
+
const dmsObject = this.dmsObjectInput();
|
|
54
|
+
const contentChanged = this.dmsObject()?.content?.contentStreamId !== dmsObject?.content?.contentStreamId;
|
|
55
|
+
untracked(() => {
|
|
56
|
+
this.dmsObject.set(dmsObject);
|
|
57
|
+
contentChanged && this.slide.update((slide) => ({ ...slide, uri: undefined, icon: undefined, iconSvg: undefined }));
|
|
58
|
+
if (dmsObject) {
|
|
59
|
+
this.#getHeaderData();
|
|
60
|
+
this.#getBaseData();
|
|
61
|
+
(contentChanged || dmsObject.isFolder) && this.#setupSlide();
|
|
62
|
+
this.folderInfo = undefined;
|
|
63
|
+
if (dmsObject.isFolder)
|
|
64
|
+
this.#fetchFolderInfo(dmsObject.id);
|
|
65
|
+
// if a flavor has been selected and a new object comes in, we'll check if
|
|
66
|
+
// the new object has the same flavor and update the flavor data
|
|
67
|
+
if (this.flavorData && dmsObject.sots.includes(this.flavorData.flavor.sot)) {
|
|
68
|
+
this.#getFlavorData(this.flavorData.flavor);
|
|
69
|
+
}
|
|
70
|
+
else
|
|
71
|
+
this.flavorData = undefined;
|
|
72
|
+
// this.retentionEndDate = this._dmsObject.data[RetentionField.RETENTION_END]
|
|
73
|
+
// ? new Date(this._dmsObject.data[RetentionField.RETENTION_END] as string)
|
|
74
|
+
// : undefined;
|
|
75
|
+
// const today = new Date();
|
|
76
|
+
// this.retentionEnded = this.retentionEndDate && today > this.retentionEndDate;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
this.flavorData = undefined;
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
/**
|
|
84
|
+
* ID of a DmsObject. The object will be fetched from the backend upfront.
|
|
85
|
+
*/
|
|
86
|
+
this.objectId = input(null);
|
|
87
|
+
this.#objectIdEffect = effect(() => {
|
|
88
|
+
const id = this.objectId();
|
|
89
|
+
untracked(() => {
|
|
90
|
+
id && this.#getDmsObject(id);
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
// virtual object type to be used for header data
|
|
94
|
+
this.configType = input();
|
|
95
|
+
this.#objectConfigService
|
|
96
|
+
.getObjectConfigs$(undefined, true)
|
|
97
|
+
.pipe(takeUntilDestroyed())
|
|
98
|
+
.subscribe((res) => {
|
|
99
|
+
this.#oc = res;
|
|
100
|
+
const dmsObject = this.dmsObject();
|
|
101
|
+
if (dmsObject)
|
|
102
|
+
this.#getHeaderData();
|
|
103
|
+
});
|
|
104
|
+
this.#eventService
|
|
105
|
+
.on(YuvEventType.DMS_OBJECT_UPDATED)
|
|
106
|
+
.pipe(takeUntilDestroyed())
|
|
107
|
+
.subscribe((e) => {
|
|
108
|
+
const o = e.data;
|
|
109
|
+
const dmsObject = this.dmsObject();
|
|
110
|
+
if (dmsObject?.id === o.id) {
|
|
111
|
+
this.dmsObject.set(o);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
#setupSlide() {
|
|
116
|
+
const dmsObject = this.dmsObject();
|
|
117
|
+
if (dmsObject) {
|
|
118
|
+
if (dmsObject.content) {
|
|
119
|
+
const slideUri = this.#dmsService.getSlideURI(dmsObject.id, dmsObject.content?.mimeType);
|
|
120
|
+
if (slideUri) {
|
|
121
|
+
this.slide.update((slide) => ({ ...slide, loading: true }));
|
|
122
|
+
const img = new Image();
|
|
123
|
+
img.onload = () => {
|
|
124
|
+
this.slide.update((slide) => ({
|
|
125
|
+
...slide,
|
|
126
|
+
orientation: img.width > img.height ? 'landscape' : 'portrait',
|
|
127
|
+
uri: `${slideUri}?${new Date().getTime()}`, // add Timestamp to force image reload
|
|
128
|
+
loading: false
|
|
129
|
+
}));
|
|
130
|
+
this.#cd.markForCheck();
|
|
131
|
+
};
|
|
132
|
+
img.onerror = () => {
|
|
133
|
+
const headerData = this.headerData();
|
|
134
|
+
this.slide.update((slide) => ({ ...slide, icon: headerData?.icon, loading: false }));
|
|
135
|
+
this.#cd.markForCheck();
|
|
136
|
+
};
|
|
137
|
+
img.src = slideUri;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
const headerData = this.headerData();
|
|
142
|
+
this.slide.update((slide) => ({ ...slide, icon: headerData?.icon }));
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
onFlavorClick(flavor) {
|
|
147
|
+
this.#getFlavorData(flavor);
|
|
148
|
+
}
|
|
149
|
+
#fetchFolderInfo(id) {
|
|
150
|
+
const q = {
|
|
151
|
+
fields: [`SUM(${ContentStreamField.LENGTH})`],
|
|
152
|
+
aggs: [BaseObjectTypeField.BASE_TYPE_ID],
|
|
153
|
+
filters: [{
|
|
154
|
+
f: BaseObjectTypeField.PARENT_ID,
|
|
155
|
+
o: Operator.EQUAL,
|
|
156
|
+
v1: id
|
|
157
|
+
}]
|
|
158
|
+
};
|
|
159
|
+
this.#searchService.aggregate(q, [BaseObjectTypeField.BASE_TYPE_ID]).subscribe((res) => {
|
|
160
|
+
const entries = res.aggregations[0].entries;
|
|
161
|
+
this.folderInfo = {
|
|
162
|
+
size: entries.reduce((s, v) => s + v.count, 0),
|
|
163
|
+
entries
|
|
164
|
+
};
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
#getDmsObject(id) {
|
|
168
|
+
this.busy = true;
|
|
169
|
+
this.#dmsService.getDmsObject(id).subscribe({
|
|
170
|
+
next: (dmsObject) => this.dmsObject.set(dmsObject),
|
|
171
|
+
error: () => {
|
|
172
|
+
this.dmsObject.set(undefined);
|
|
173
|
+
this.contextError = this.translate.instant('yuv.object-summary.load.error');
|
|
174
|
+
},
|
|
175
|
+
complete: () => {
|
|
176
|
+
this.busy = false;
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
#getObjectConfig(type, bucket) {
|
|
181
|
+
const dmsObject = this.dmsObject();
|
|
182
|
+
return dmsObject
|
|
183
|
+
? this.#objectConfigService.getResolvedObjectConfig(dmsObject.data, type || {
|
|
184
|
+
id: dmsObject.objectTypeId,
|
|
185
|
+
objectType: dmsObject.objectTypeId
|
|
186
|
+
}, bucket, true)
|
|
187
|
+
: undefined;
|
|
188
|
+
}
|
|
189
|
+
#getFlavorData(flavor) {
|
|
190
|
+
if (!flavor) {
|
|
191
|
+
this.flavorData = undefined;
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
const sot = this.#systemService.getSecondaryObjectType(flavor.sot, true);
|
|
195
|
+
const dmsObject = this.dmsObject();
|
|
196
|
+
if (dmsObject && sot) {
|
|
197
|
+
this.flavorData = {
|
|
198
|
+
flavor,
|
|
199
|
+
label: this.translate.instant(flavor.id),
|
|
200
|
+
properties: sot.fields.map((f) => ({
|
|
201
|
+
label: this.#systemService.getLocalizedLabel(f.id) || f.id,
|
|
202
|
+
value: {
|
|
203
|
+
propertyName: f.id,
|
|
204
|
+
value: dmsObject.data[f.id]
|
|
205
|
+
}
|
|
206
|
+
}))
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
else
|
|
210
|
+
this.flavorData = undefined;
|
|
211
|
+
}
|
|
212
|
+
#getHeaderData() {
|
|
213
|
+
const oc = this.#getObjectConfig(this.configType()?.type, this.configType()?.bucket);
|
|
214
|
+
const dmsObject = this.dmsObject();
|
|
215
|
+
if (oc && dmsObject) {
|
|
216
|
+
this.headerData.update((data) => ({
|
|
217
|
+
...data,
|
|
218
|
+
title: oc.title.value,
|
|
219
|
+
description: oc.description?.value,
|
|
220
|
+
icon: {
|
|
221
|
+
title: oc.title.value,
|
|
222
|
+
...(oc.icon ? { svg: oc.icon.value } : { src: this.#systemService.getObjectTypeIconUri(dmsObject.objectTypeId) })
|
|
223
|
+
}
|
|
224
|
+
}));
|
|
225
|
+
// this.headerData.icon =;
|
|
226
|
+
}
|
|
227
|
+
else
|
|
228
|
+
this.headerData.set(undefined);
|
|
229
|
+
}
|
|
230
|
+
#getBaseData() {
|
|
231
|
+
this.baseData = [];
|
|
232
|
+
const fields = [
|
|
233
|
+
BaseObjectTypeField.CREATION_DATE,
|
|
234
|
+
`${BaseObjectTypeField.CREATED_BY}_title`,
|
|
235
|
+
BaseObjectTypeField.MODIFICATION_DATE,
|
|
236
|
+
`${BaseObjectTypeField.MODIFIED_BY}_title`
|
|
237
|
+
];
|
|
238
|
+
const contentFields = [ContentStreamField.FILENAME, ContentStreamField.LENGTH, ContentStreamField.MIME_TYPE];
|
|
239
|
+
const dmsObject = this.dmsObject();
|
|
240
|
+
if (dmsObject) {
|
|
241
|
+
(dmsObject.content ? [...fields, ...contentFields] : fields).forEach((f) => {
|
|
242
|
+
this.baseData.push({
|
|
243
|
+
label: this.#systemService.getLocalizedLabel(f.replace('_title', '')) || f,
|
|
244
|
+
value: {
|
|
245
|
+
propertyName: f,
|
|
246
|
+
value: dmsObject.data[f]
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectSummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
253
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ObjectSummaryComponent, isStandalone: true, selector: "yuv-object-summary", inputs: { actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, dmsObjectInput: { classPropertyName: "dmsObjectInput", publicName: "dmsObject", isSignal: true, isRequired: false, transformFunction: null }, objectId: { classPropertyName: "objectId", publicName: "objectId", isSignal: true, isRequired: false, transformFunction: null }, configType: { classPropertyName: "configType", publicName: "configType", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "flavorCmp", first: true, predicate: ObjectFlavorComponent, descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.BusyOverlayDirective, inputs: ["yuvBusyOverlay", "busy"] }], ngImport: i0, template: "@let imageSlide = slide();\n<section class=\"slide\" [yuvBusyOverlay]=\"imageSlide.loading\">\n @if (imageSlide.uri || imageSlide.loading) {\n <img draggable=\"false\" [ngClass]=\"{ loading: imageSlide.loading }\" [attr.data-orientation]=\"imageSlide.orientation\" [src]=\"imageSlide.uri\" />\n } @else if (imageSlide.icon?.svg) {\n <yvc-icon draggable=\"false\" [svg]=\"imageSlide.icon?.svg!\"></yvc-icon>\n } @else if (imageSlide.icon?.src) {\n <yvc-icon draggable=\"false\" [svgSrc]=\"imageSlide.icon?.src!\"></yvc-icon>\n }\n @if (folderInfo) {\n <div class=\"badge\">{{ folderInfo.size }}</div>\n }\n</section>\n\n@let o = dmsObject();\n@if (o && !o.isFolder) {\n <yuv-object-flavor [dmsObject]=\"o\" (flavorClick)=\"onFlavorClick($event)\"></yuv-object-flavor>\n}\n\n<div class=\"content\">\n @let header = headerData();\n <section class=\"title\">\n <h1>{{ header?.title }}</h1>\n\n <div class=\"actions\">\n <yvc-overflow-menu [hideLabels]=\"true\" [menuItems]=\"actions()\"></yvc-overflow-menu>\n </div>\n </section>\n\n @if (flavorData) {\n <section class=\"flavor properties\">\n <!-- <h2>{{ flavorData.label }}</h2> -->\n @for (p of flavorData.properties; track $index) {\n <div class=\"row\">\n <div class=\"label\">{{ p.label }}</div>\n <div class=\"value\">\n <ng-container *yuvRenderer=\"p.value\"></ng-container>\n </div>\n </div>\n }\n </section>\n }\n\n <section class=\"properties\">\n @for (p of baseData; track $index) {\n <div class=\"row\">\n <div class=\"label\">{{ p.label }}</div>\n <div class=\"value\">\n <ng-container *yuvRenderer=\"p.value\"></ng-container>\n </div>\n </div>\n }\n </section>\n</div>\n", styles: ["section.title{padding:var(--app-pane-padding);display:flex;justify-content:space-between;align-items:center;gap:var(--app-pane-padding)}section.title h1{margin:0;padding:0;font-size:var(--font-title);font-weight:400;text-overflow:ellipsis;overflow:hidden}section.title .actions yvc-icon{--icon-size: 18px}section.title .actions button.quickAccess.isFavorite{color:var(--color-accent)}section.slide{display:flex;flex-flow:column;align-items:center;justify-content:center;border-block-end:1px solid var(--panel-divider-color);background-color:var(--panel-background-grey);position:relative;height:25%;overflow:hidden}section.slide .badge{position:absolute;inset-inline-end:calc(var(--app-pane-padding) / 2);inset-block-start:calc(var(--app-pane-padding) / 2);font-size:3rem;color:var(--text-color-hint)}section.slide yvc-icon{max-height:var(--max-slide-size);max-width:var(--max-slide-size);width:50%;height:50%;opacity:.3}section.slide img{object-fit:cover;object-position:top;opacity:0;transition:opacity .3s;margin:auto;max-height:100%;max-width:100%;outline:4px solid var(--panel-background);outline-offset:-4px;box-shadow:0 0 0 1px var(--panel-divider-color)}section.slide img:not(.loading){opacity:1}:host{--max-slide-size: 150px;display:flex;flex-flow:column;height:100%}:host section{padding:var(--app-pane-padding)}:host section h2{font-size:var(--font-subhead);font-weight:400}:host yuv-object-flavor{border-block-end:1px solid var(--panel-divider-color);min-height:30px}:host .content{flex:1;overflow-y:auto}:host section.properties .row{display:flex;flex-flow:row wrap;align-items:start;column-gap:1rem;margin-block-end:calc(var(--app-pane-padding) / 2)}:host section.properties .row .label{font-weight:700;font-size:var(--font-caption)}:host section.properties .row .value{word-break:break-all}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: BusyOverlayDirective, selector: "[yuvBusyOverlay]", inputs: ["yuvBusyOverlay"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: RendererDirective, selector: "[yuvRenderer]", inputs: ["yuvRenderer"] }, { kind: "component", type: ObjectFlavorComponent, selector: "yuv-object-flavor", inputs: ["dmsObject"], outputs: ["flavorClick"] }, { kind: "ngmodule", type: YvcOverlayModule }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i2.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "component", type: YvcOverflowMenuComponent, selector: "yvc-overflow-menu", inputs: ["overflowIcon", "groupLabels", "menuItems", "hideLabels"] }] }); }
|
|
254
|
+
}
|
|
255
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectSummaryComponent, decorators: [{
|
|
256
|
+
type: Component,
|
|
257
|
+
args: [{ selector: 'yuv-object-summary', standalone: true, imports: [
|
|
258
|
+
NgClass,
|
|
259
|
+
BusyOverlayDirective,
|
|
260
|
+
TranslateModule,
|
|
261
|
+
RendererDirective,
|
|
262
|
+
ObjectFlavorComponent,
|
|
263
|
+
YvcOverlayModule,
|
|
264
|
+
YvcIconModule,
|
|
265
|
+
YvcOverflowMenuComponent
|
|
266
|
+
], hostDirectives: [
|
|
267
|
+
{
|
|
268
|
+
directive: BusyOverlayDirective,
|
|
269
|
+
inputs: ['yuvBusyOverlay: busy']
|
|
270
|
+
}
|
|
271
|
+
], template: "@let imageSlide = slide();\n<section class=\"slide\" [yuvBusyOverlay]=\"imageSlide.loading\">\n @if (imageSlide.uri || imageSlide.loading) {\n <img draggable=\"false\" [ngClass]=\"{ loading: imageSlide.loading }\" [attr.data-orientation]=\"imageSlide.orientation\" [src]=\"imageSlide.uri\" />\n } @else if (imageSlide.icon?.svg) {\n <yvc-icon draggable=\"false\" [svg]=\"imageSlide.icon?.svg!\"></yvc-icon>\n } @else if (imageSlide.icon?.src) {\n <yvc-icon draggable=\"false\" [svgSrc]=\"imageSlide.icon?.src!\"></yvc-icon>\n }\n @if (folderInfo) {\n <div class=\"badge\">{{ folderInfo.size }}</div>\n }\n</section>\n\n@let o = dmsObject();\n@if (o && !o.isFolder) {\n <yuv-object-flavor [dmsObject]=\"o\" (flavorClick)=\"onFlavorClick($event)\"></yuv-object-flavor>\n}\n\n<div class=\"content\">\n @let header = headerData();\n <section class=\"title\">\n <h1>{{ header?.title }}</h1>\n\n <div class=\"actions\">\n <yvc-overflow-menu [hideLabels]=\"true\" [menuItems]=\"actions()\"></yvc-overflow-menu>\n </div>\n </section>\n\n @if (flavorData) {\n <section class=\"flavor properties\">\n <!-- <h2>{{ flavorData.label }}</h2> -->\n @for (p of flavorData.properties; track $index) {\n <div class=\"row\">\n <div class=\"label\">{{ p.label }}</div>\n <div class=\"value\">\n <ng-container *yuvRenderer=\"p.value\"></ng-container>\n </div>\n </div>\n }\n </section>\n }\n\n <section class=\"properties\">\n @for (p of baseData; track $index) {\n <div class=\"row\">\n <div class=\"label\">{{ p.label }}</div>\n <div class=\"value\">\n <ng-container *yuvRenderer=\"p.value\"></ng-container>\n </div>\n </div>\n }\n </section>\n</div>\n", styles: ["section.title{padding:var(--app-pane-padding);display:flex;justify-content:space-between;align-items:center;gap:var(--app-pane-padding)}section.title h1{margin:0;padding:0;font-size:var(--font-title);font-weight:400;text-overflow:ellipsis;overflow:hidden}section.title .actions yvc-icon{--icon-size: 18px}section.title .actions button.quickAccess.isFavorite{color:var(--color-accent)}section.slide{display:flex;flex-flow:column;align-items:center;justify-content:center;border-block-end:1px solid var(--panel-divider-color);background-color:var(--panel-background-grey);position:relative;height:25%;overflow:hidden}section.slide .badge{position:absolute;inset-inline-end:calc(var(--app-pane-padding) / 2);inset-block-start:calc(var(--app-pane-padding) / 2);font-size:3rem;color:var(--text-color-hint)}section.slide yvc-icon{max-height:var(--max-slide-size);max-width:var(--max-slide-size);width:50%;height:50%;opacity:.3}section.slide img{object-fit:cover;object-position:top;opacity:0;transition:opacity .3s;margin:auto;max-height:100%;max-width:100%;outline:4px solid var(--panel-background);outline-offset:-4px;box-shadow:0 0 0 1px var(--panel-divider-color)}section.slide img:not(.loading){opacity:1}:host{--max-slide-size: 150px;display:flex;flex-flow:column;height:100%}:host section{padding:var(--app-pane-padding)}:host section h2{font-size:var(--font-subhead);font-weight:400}:host yuv-object-flavor{border-block-end:1px solid var(--panel-divider-color);min-height:30px}:host .content{flex:1;overflow-y:auto}:host section.properties .row{display:flex;flex-flow:row wrap;align-items:start;column-gap:1rem;margin-block-end:calc(var(--app-pane-padding) / 2)}:host section.properties .row .label{font-weight:700;font-size:var(--font-caption)}:host section.properties .row .value{word-break:break-all}\n"] }]
|
|
272
|
+
}], ctorParameters: () => [] });
|
|
273
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9vYmplY3Qtc3VtbWFyeS9zcmMvbGliL29iamVjdC1zdW1tYXJ5L29iamVjdC1zdW1tYXJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LXN1bW1hcnkvc3JjL2xpYi9vYmplY3Qtc3VtbWFyeS9vYmplY3Qtc3VtbWFyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsbUJBQW1CLEVBRW5CLGtCQUFrQixFQUVsQixVQUFVLEVBQ1YsWUFBWSxFQUVaLG1CQUFtQixFQUNuQixRQUFRLEVBR1IsYUFBYSxFQUNiLGFBQWEsRUFDYixlQUFlLEVBQ2YsZ0JBQWdCLEVBR2hCLFlBQVksRUFDYixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQTBCLE1BQU0sbUNBQW1DLENBQUM7QUFFOUYsT0FBTyxFQUFFLGFBQWEs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d0JBQ2YsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO3FCQUN6QjtpQkFDRixDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOytHQS9SVSxzQkFBc0I7bUdBQXRCLHNCQUFzQix5cEJBU1gscUJBQXFCLDhKQ2xFN0Msa3dEQXNEQSx5MEREZkksT0FBTyxvRkFDUCxvQkFBb0Isd0ZBQ3BCLGVBQWUsK0JBQ2YsaUJBQWlCLG1GQUNqQixxQkFBcUIsOEdBQ3JCLGdCQUFnQiw4QkFDaEIsYUFBYSwrSEFDYix3QkFBd0I7OzRGQVdmLHNCQUFzQjtrQkF0QmxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLHdCQUF3QjtxQkFDekIsa0JBR2U7d0JBQ2Q7NEJBQ0UsU0FBUyxFQUFFLG9CQUFvQjs0QkFDL0IsTUFBTSxFQUFFLENBQUMsc0JBQXNCLENBQUM7eUJBQ2pDO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIHNpZ25hbCwgdW50cmFja2VkLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIEJhc2VPYmplY3RUeXBlRmllbGQsXG4gIENvbmZpZ1R5cGVPcHRpb24sXG4gIENvbnRlbnRTdHJlYW1GaWVsZCxcbiAgRG1zT2JqZWN0LFxuICBEbXNTZXJ2aWNlLFxuICBFdmVudFNlcnZpY2UsXG4gIE9iamVjdENvbmZpZ1JlY29yZCxcbiAgT2JqZWN0Q29uZmlnU2VydmljZSxcbiAgT3BlcmF0b3IsXG4gIFJlc29sdmVkT2JqZWN0Q29uZmlnLFxuICBTZWFyY2hRdWVyeSxcbiAgU2VhcmNoU2VydmljZSxcbiAgU3lzdGVtU2VydmljZSxcbiAgVHJhbnNsYXRlTW9kdWxlLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxuICBWaXJ0dWFsT2JqZWN0VHlwZSxcbiAgWXV2RXZlbnQsXG4gIFl1dkV2ZW50VHlwZVxufSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IEJ1c3lPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2NvbW1vbic7XG5pbXBvcnQgeyBZVVZfSUNPTlMgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvaWNvbnMnO1xuaW1wb3J0IHsgT2JqZWN0Rmxhdm9yQ29tcG9uZW50IH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1mbGF2b3InO1xuaW1wb3J0IHsgUmVuZGVyZXJEaXJlY3RpdmUsIFJlbmRlcmVyRGlyZWN0aXZlSW5wdXQgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvcmVuZGVyZXInO1xuaW1wb3J0IHsgT2JqZWN0Rmxhdm9yIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtc2hlbGwtY29yZSc7XG5pbXBvcnQgeyBZdmNJY29uTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgTWVudUl0ZW0sIFl2Y092ZXJmbG93TWVudUNvbXBvbmVudCB9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9vdmVyZmxvdy1tZW51JztcbmltcG9ydCB7IFl2Y092ZXJsYXlNb2R1bGUgfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvb3ZlcmxheSc7XG5cbi8qKlxuICogQ29tcG9uZW50IHNob3dpbmcgYSBzdW1tYXJ5IG9mIHRoZSBnaXZlbiBkbXMgb2JqZWN0LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtb2JqZWN0LXN1bW1hcnknLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgICBCdXN5T3ZlcmxheURpcmVjdGl2ZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgUmVuZGVyZXJEaXJlY3RpdmUsXG4gICAgT2JqZWN0Rmxhdm9yQ29tcG9uZW50LFxuICAgIFl2Y092ZXJsYXlNb2R1bGUsXG4gICAgWXZjSWNvbk1vZHVsZSxcbiAgICBZdmNPdmVyZmxvd01lbnVDb21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL29iamVjdC1zdW1tYXJ5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL29iamVjdC1zdW1tYXJ5LmNvbXBvbmVudC5zY3NzJyxcbiAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICB7XG4gICAgICBkaXJlY3RpdmU6IEJ1c3lPdmVybGF5RGlyZWN0aXZlLFxuICAgICAgaW5wdXRzOiBbJ3l1dkJ1c3lPdmVybGF5OiBidXN5J11cbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0U3VtbWFyeUNvbXBvbmVudCB7XG4gIHJlYWRvbmx5ICNldmVudFNlcnZpY2UgPSBpbmplY3QoRXZlbnRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2Rtc1NlcnZpY2UgPSBpbmplY3QoRG1zU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuICByZWFkb25seSAjc3lzdGVtU2VydmljZSA9IGluamVjdChTeXN0ZW1TZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI29iamVjdENvbmZpZ1NlcnZpY2UgPSBpbmplY3QoT2JqZWN0Q29uZmlnU2VydmljZSk7XG4gIHJlYWRvbmx5ICNzZWFyY2hTZXJ2aWNlID0gaW5qZWN0KFNlYXJjaFNlcnZpY2UpO1xuICByZWFkb25seSAjY2QgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIGZsYXZvckNtcCA9IHZpZXdDaGlsZChPYmplY3RGbGF2b3JDb21wb25lbnQpO1xuXG4gICNvYz86IE9iamVjdENvbmZpZ1JlY29yZDtcblxuICBzbGlkZSA9IHNpZ25hbDx7XG4gICAgaWNvbj86IHtcbiAgICAgIHNyYz86IHN0cmluZztcbiAgICAgIHN2Zz86IHN0cmluZztcbiAgICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIH07XG4gICAgdXJpPzogc3RyaW5nO1xuICAgIGxvYWRpbmc6IGJvb2xlYW47XG4gICAgb3JpZW50YXRpb24/OiAncG9ydHJhaXQnIHwgJ2xhbmRzY2FwZSc7XG4gIH0+KHtcbiAgICBsb2FkaW5nOiBmYWxzZVxuICB9KTtcbiAgYnVzeSA9IHRydWU7XG5cbiAgY29udGV4dEVycm9yPzogc3RyaW5nO1xuICBoZWFkZXJEYXRhID0gc2lnbmFsPFxuICAgIHwge1xuICAgICAgICBpY29uPzoge1xuICAgICAgICAgIHNyYz86IHN0cmluZztcbiAgICAgICAgICBzdmc/OiBzdHJpbmc7XG4gICAgICAgICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICAgIHRpdGxlPzogc3RyaW5nO1xuICAgICAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICAgIH1cbiAgICB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG5cbiAgYmFzZURhdGE6IHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHZhbHVlOiBSZW5kZXJlckRpcmVjdGl2ZUlucHV0O1xuICB9W10gPSBbXTtcblxuICBmbGF2b3JEYXRhPzoge1xuICAgIGZsYXZvcjogT2JqZWN0Rmxhdm9yO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgcHJvcGVydGllczoge1xuICAgICAgbGFiZWw6IHN0cmluZztcbiAgICAgIHZhbHVlOiBSZW5kZXJlckRpcmVjdGl2ZUlucHV0O1xuICAgIH1bXTtcbiAgfTtcblxuICBpY29ucyA9IHtcbiAgICBmb2xkZXI6IFlVVl9JQ09OUy5mb2xkZXJcbiAgfTtcblxuICBhY3Rpb25zID0gaW5wdXQ8TWVudUl0ZW1bXT4oW10pO1xuICBmb2xkZXJJbmZvPzoge1xuICAgIHNpemU6IG51bWJlcjtcbiAgICBlbnRyaWVzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIGNvdW50OiBudW1iZXI7XG4gICAgfVtdO1xuICB9O1xuXG4gIC8qKlxuICAgKiBEbXNPYmplY3QgdG8gc2hvdyB0aGUgZGV0YWlscyBmb3IuXG4gICAqL1xuXG4gIGRtc09iamVjdCA9IHNpZ25hbDxEbXNPYmplY3QgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgZG1zT2JqZWN0SW5wdXQgPSBpbnB1dDxEbXNPYmplY3QgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCwgeyBhbGlhczogJ2Rtc09iamVjdCcgfSk7XG4gICNkbXNPYmplY3RJbnB1dEVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZG1zT2JqZWN0ID0gdGhpcy5kbXNPYmplY3RJbnB1dCgpO1xuICAgIGNvbnN0IGNvbnRlbnRDaGFuZ2VkID0gdGhpcy5kbXNPYmplY3QoKT8uY29udGVudD8uY29udGVudFN0cmVhbUlkICE9PSBkbXNPYmplY3Q/LmNvbnRlbnQ/LmNvbnRlbnRTdHJlYW1JZDtcblxuICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICB0aGlzLmRtc09iamVjdC5zZXQoZG1zT2JqZWN0KTtcbiAgICAgIGNvbnRlbnRDaGFuZ2VkICYmIHRoaXMuc2xpZGUudXBkYXRlKChzbGlkZSkgPT4gKHsgLi4uc2xpZGUsIHVyaTogdW5kZWZpbmVkLCBpY29uOiB1bmRlZmluZWQsIGljb25Tdmc6IHVuZGVmaW5lZCB9KSk7XG4gICAgICBpZiAoZG1zT2JqZWN0KSB7XG4gICAgICAgIHRoaXMuI2dldEhlYWRlckRhdGEoKTtcbiAgICAgICAgdGhpcy4jZ2V0QmFzZURhdGEoKTtcbiAgICAgICAgKGNvbnRlbnRDaGFuZ2VkIHx8IGRtc09iamVjdC5pc0ZvbGRlcikgJiYgdGhpcy4jc2V0dXBTbGlkZSgpO1xuICAgICAgICB0aGlzLmZvbGRlckluZm8gPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKGRtc09iamVjdC5pc0ZvbGRlcikgdGhpcy4jZmV0Y2hGb2xkZXJJbmZvKGRtc09iamVjdC5pZCk7XG5cbiAgICAgICAgLy8gaWYgYSBmbGF2b3IgaGFzIGJlZW4gc2VsZWN0ZWQgYW5kIGEgbmV3IG9iamVjdCBjb21lcyBpbiwgd2UnbGwgY2hlY2sgaWZcbiAgICAgICAgLy8gdGhlIG5ldyBvYmplY3QgaGFzIHRoZSBzYW1lIGZsYXZvciBhbmQgdXBkYXRlIHRoZSBmbGF2b3IgZGF0YVxuICAgICAgICBpZiAodGhpcy5mbGF2b3JEYXRhICYmIGRtc09iamVjdC5zb3RzLmluY2x1ZGVzKHRoaXMuZmxhdm9yRGF0YS5mbGF2b3Iuc290KSkge1xuICAgICAgICAgIHRoaXMuI2dldEZsYXZvckRhdGEodGhpcy5mbGF2b3JEYXRhLmZsYXZvcik7XG4gICAgICAgIH0gZWxzZSB0aGlzLmZsYXZvckRhdGEgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgLy8gICB0aGlzLnJldGVudGlvbkVuZERhdGUgPSB0aGlzLl9kbXNPYmplY3QuZGF0YVtSZXRlbnRpb25GaWVsZC5SRVRFTlRJT05fRU5EXVxuICAgICAgICAvLyAgICAgPyBuZXcgRGF0ZSh0aGlzLl9kbXNPYmplY3QuZGF0YVtSZXRlbnRpb25GaWVsZC5SRVRFTlRJT05fRU5EXSBhcyBzdHJpbmcpXG4gICAgICAgIC8vICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgLy8gICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIC8vICAgdGhpcy5yZXRlbnRpb25FbmRlZCA9IHRoaXMucmV0ZW50aW9uRW5kRGF0ZSAmJiB0b2RheSA+IHRoaXMucmV0ZW50aW9uRW5kRGF0ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZmxhdm9yRGF0YSA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIElEIG9mIGEgRG1zT2JqZWN0LiBUaGUgb2JqZWN0IHdpbGwgYmUgZmV0Y2hlZCBmcm9tIHRoZSBiYWNrZW5kIHVwZnJvbnQuXG4gICAqL1xuICBvYmplY3RJZCA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw+KG51bGwpO1xuICAjb2JqZWN0SWRFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGlkID0gdGhpcy5vYmplY3RJZCgpO1xuICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICBpZCAmJiB0aGlzLiNnZXREbXNPYmplY3QoaWQpO1xuICAgIH0pO1xuICB9KTtcblxuICAvLyB2aXJ0dWFsIG9iamVjdCB0eXBlIHRvIGJlIHVzZWQgZm9yIGhlYWRlciBkYXRhXG4gIGNvbmZpZ1R5cGUgPSBpbnB1dDxDb25maWdUeXBlT3B0aW9uPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuI29iamVjdENvbmZpZ1NlcnZpY2VcbiAgICAgIC5nZXRPYmplY3RDb25maWdzJCh1bmRlZmluZWQsIHRydWUpXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlczogT2JqZWN0Q29uZmlnUmVjb3JkKSA9PiB7XG4gICAgICAgIHRoaXMuI29jID0gcmVzO1xuICAgICAgICBjb25zdCBkbXNPYmplY3QgPSB0aGlzLmRtc09iamVjdCgpO1xuICAgICAgICBpZiAoZG1zT2JqZWN0KSB0aGlzLiNnZXRIZWFkZXJEYXRhKCk7XG4gICAgICB9KTtcbiAgICB0aGlzLiNldmVudFNlcnZpY2VcbiAgICAgIC5vbihZdXZFdmVudFR5cGUuRE1TX09CSkVDVF9VUERBVEVEKVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKChlOiBZdXZFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBvID0gZS5kYXRhIGFzIERtc09iamVjdDtcbiAgICAgICAgY29uc3QgZG1zT2JqZWN0ID0gdGhpcy5kbXNPYmplY3QoKTtcbiAgICAgICAgaWYgKGRtc09iamVjdD8uaWQgPT09IG8uaWQpIHtcbiAgICAgICAgICB0aGlzLmRtc09iamVjdC5zZXQobyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgI3NldHVwU2xpZGUoKSB7XG4gICAgY29uc3QgZG1zT2JqZWN0ID0gdGhpcy5kbXNPYmplY3QoKTtcbiAgICBpZiAoZG1zT2JqZWN0KSB7XG4gICAgICBpZiAoZG1zT2JqZWN0LmNvbnRlbnQpIHtcbiAgICAgICAgY29uc3Qgc2xpZGVVcmkgPSB0aGlzLiNkbXNTZXJ2aWNlLmdldFNsaWRlVVJJKGRtc09iamVjdC5pZCwgZG1zT2JqZWN0LmNvbnRlbnQ/Lm1pbWVUeXBlKTtcbiAgICAgICAgaWYgKHNsaWRlVXJpKSB7XG4gICAgICAgICAgdGhpcy5zbGlkZS51cGRhdGUoKHNsaWRlKSA9PiAoeyAuLi5zbGlkZSwgbG9hZGluZzogdHJ1ZSB9KSk7XG4gICAgICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XG4gICAgICAgICAgaW1nLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2xpZGUudXBkYXRlKChzbGlkZSkgPT4gKHtcbiAgICAgICAgICAgICAgLi4uc2xpZGUsXG4gICAgICAgICAgICAgIG9yaWVudGF0aW9uOiBpbWcud2lkdGggPiBpbWcuaGVpZ2h0ID8gJ2xhbmRzY2FwZScgOiAncG9ydHJhaXQnLFxuICAgICAgICAgICAgICB1cmk6IGAke3NsaWRlVXJpfT8ke25ldyBEYXRlKCkuZ2V0VGltZSgpfWAsIC8vIGFkZCBUaW1lc3RhbXAgdG8gZm9yY2UgaW1hZ2UgcmVsb2FkXG4gICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB0aGlzLiNjZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICB9O1xuICAgICAgICAgIGltZy5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaGVhZGVyRGF0YSA9IHRoaXMuaGVhZGVyRGF0YSgpO1xuICAgICAgICAgICAgdGhpcy5zbGlkZS51cGRhdGUoKHNsaWRlKSA9PiAoeyAuLi5zbGlkZSwgaWNvbjogaGVhZGVyRGF0YT8uaWNvbiwgbG9hZGluZzogZmFsc2UgfSkpO1xuICAgICAgICAgICAgdGhpcy4jY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgfTtcbiAgICAgICAgICBpbWcuc3JjID0gc2xpZGVVcmk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGhlYWRlckRhdGEgPSB0aGlzLmhlYWRlckRhdGEoKTtcbiAgICAgICAgdGhpcy5zbGlkZS51cGRhdGUoKHNsaWRlKSA9PiAoeyAuLi5zbGlkZSwgaWNvbjogaGVhZGVyRGF0YT8uaWNvbiB9KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25GbGF2b3JDbGljayhmbGF2b3I6IE9iamVjdEZsYXZvcikge1xuICAgIHRoaXMuI2dldEZsYXZvckRhdGEoZmxhdm9yKTtcbiAgfVxuXG4gICNmZXRjaEZvbGRlckluZm8oaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHE6IFNlYXJjaFF1ZXJ5ID0ge1xuICAgICAgZmllbGRzOiBbYFNVTSgke0NvbnRlbnRTdHJlYW1GaWVsZC5MRU5HVEh9KWBdLFxuICAgICAgYWdnczogW0Jhc2VPYmplY3RUeXBlRmllbGQuQkFTRV9UWVBFX0lEXSxcbiAgICAgIGZpbHRlcnM6IFt7XG4gICAgICAgIGY6IEJhc2VPYmplY3RUeXBlRmllbGQuUEFSRU5UX0lELFxuICAgICAgICBvOiBPcGVyYXRvci5FUVVBTCxcbiAgICAgICAgdjE6IGlkXG4gICAgICB9XVxuICAgIH07XG4gICAgdGhpcy4jc2VhcmNoU2VydmljZS5hZ2dyZWdhdGUocSwgW0Jhc2VPYmplY3RUeXBlRmllbGQuQkFTRV9UWVBFX0lEXSkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIGNvbnN0IGVudHJpZXMgPSByZXMuYWdncmVnYXRpb25zWzBdLmVudHJpZXM7XG4gICAgICB0aGlzLmZvbGRlckluZm8gPSB7XG4gICAgICAgIHNpemU6IGVudHJpZXMucmVkdWNlKChzLCB2KSA9PiBzICsgdi5jb3VudCwgMCksXG4gICAgICAgIGVudHJpZXNcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICAjZ2V0RG1zT2JqZWN0KGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmJ1c3kgPSB0cnVlO1xuICAgIHRoaXMuI2Rtc1NlcnZpY2UuZ2V0RG1zT2JqZWN0KGlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGRtc09iamVjdCkgPT4gdGhpcy5kbXNPYmplY3Quc2V0KGRtc09iamVjdCksXG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICB0aGlzLmRtc09iamVjdC5zZXQodW5kZWZpbmVkKTtcbiAgICAgICAgdGhpcy5jb250ZXh0RXJyb3IgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYub2JqZWN0LXN1bW1hcnkubG9hZC5lcnJvcicpO1xuICAgICAgfSxcbiAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuYnVzeSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgI2dldE9iamVjdENvbmZpZyh0eXBlPzogVmlydHVhbE9iamVjdFR5cGUsIGJ1Y2tldD86IHN0cmluZyk6IFJlc29sdmVkT2JqZWN0Q29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBkbXNPYmplY3QgPSB0aGlzLmRtc09iamVjdCgpO1xuICAgIHJldHVybiBkbXNPYmplY3RcbiAgICAgID8gdGhpcy4jb2JqZWN0Q29uZmlnU2VydmljZS5nZXRSZXNvbHZlZE9iamVjdENvbmZpZyhcbiAgICAgICAgICBkbXNPYmplY3QuZGF0YSxcbiAgICAgICAgICB0eXBlIHx8IHtcbiAgICAgICAgICAgIGlkOiBkbXNPYmplY3Qub2JqZWN0VHlwZUlkLFxuICAgICAgICAgICAgb2JqZWN0VHlwZTogZG1zT2JqZWN0Lm9iamVjdFR5cGVJZFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYnVja2V0LFxuICAgICAgICAgIHRydWVcbiAgICAgICAgKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH1cblxuICAjZ2V0Rmxhdm9yRGF0YShmbGF2b3I6IE9iamVjdEZsYXZvcikge1xuICAgIGlmICghZmxhdm9yKSB7XG4gICAgICB0aGlzLmZsYXZvckRhdGEgPSB1bmRlZmluZWQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHNvdCA9IHRoaXMuI3N5c3RlbVNlcnZpY2UuZ2V0U2Vjb25kYXJ5T2JqZWN0VHlwZShmbGF2b3Iuc290LCB0cnVlKTtcbiAgICBjb25zdCBkbXNPYmplY3QgPSB0aGlzLmRtc09iamVjdCgpO1xuICAgIGlmIChkbXNPYmplY3QgJiYgc290KSB7XG4gICAgICB0aGlzLmZsYXZvckRhdGEgPSB7XG4gICAgICAgIGZsYXZvcixcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoZmxhdm9yLmlkKSxcbiAgICAgICAgcHJvcGVydGllczogc290LmZpZWxkcy5tYXAoKGYpID0+ICh7XG4gICAgICAgICAgbGFiZWw6IHRoaXMuI3N5c3RlbVNlcnZpY2UuZ2V0TG9jYWxpemVkTGFiZWwoZi5pZCkgfHwgZi5pZCxcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgcHJvcGVydHlOYW1lOiBmLmlkLFxuICAgICAgICAgICAgdmFsdWU6IGRtc09iamVjdC5kYXRhW2YuaWRdXG4gICAgICAgICAgfVxuICAgICAgICB9KSlcbiAgICAgIH07XG4gICAgfSBlbHNlIHRoaXMuZmxhdm9yRGF0YSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gICNnZXRIZWFkZXJEYXRhKCkge1xuICAgIGNvbnN0IG9jID0gdGhpcy4jZ2V0T2JqZWN0Q29uZmlnKHRoaXMuY29uZmlnVHlwZSgpPy50eXBlLCB0aGlzLmNvbmZpZ1R5cGUoKT8uYnVja2V0KTtcbiAgICBjb25zdCBkbXNPYmplY3QgPSB0aGlzLmRtc09iamVjdCgpO1xuICAgIGlmIChvYyAmJiBkbXNPYmplY3QpIHtcbiAgICAgIHRoaXMuaGVhZGVyRGF0YS51cGRhdGUoKGRhdGEpID0+ICh7XG4gICAgICAgIC4uLmRhdGEsXG4gICAgICAgIHRpdGxlOiBvYy50aXRsZS52YWx1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246IG9jLmRlc2NyaXB0aW9uPy52YWx1ZSxcbiAgICAgICAgaWNvbjoge1xuICAgICAgICAgIHRpdGxlOiBvYy50aXRsZS52YWx1ZSxcbiAgICAgICAgICAuLi4ob2MuaWNvbiA/IHsgc3ZnOiBvYy5pY29uLnZhbHVlIH0gOiB7IHNyYzogdGhpcy4jc3lzdGVtU2VydmljZS5nZXRPYmplY3RUeXBlSWNvblVyaShkbXNPYmplY3Qub2JqZWN0VHlwZUlkKSB9KVxuICAgICAgICB9XG4gICAgICB9KSk7XG5cbiAgICAgIC8vIHRoaXMuaGVhZGVyRGF0YS5pY29uID07XG4gICAgfSBlbHNlIHRoaXMuaGVhZGVyRGF0YS5zZXQodW5kZWZpbmVkKTtcbiAgfVxuXG4gICNnZXRCYXNlRGF0YSgpIHtcbiAgICB0aGlzLmJhc2VEYXRhID0gW107XG5cbiAgICBjb25zdCBmaWVsZHMgPSBbXG4gICAgICBCYXNlT2JqZWN0VHlwZUZpZWxkLkNSRUFUSU9OX0RBVEUsXG4gICAgICBgJHtCYXNlT2JqZWN0VHlwZUZpZWxkLkNSRUFURURfQll9X3RpdGxlYCxcbiAgICAgIEJhc2VPYmplY3RUeXBlRmllbGQuTU9ESUZJQ0FUSU9OX0RBVEUsXG4gICAgICBgJHtCYXNlT2JqZWN0VHlwZUZpZWxkLk1PRElGSUVEX0JZfV90aXRsZWBcbiAgICBdO1xuICAgIGNvbnN0IGNvbnRlbnRGaWVsZHMgPSBbQ29udGVudFN0cmVhbUZpZWxkLkZJTEVOQU1FLCBDb250ZW50U3RyZWFtRmllbGQuTEVOR1RILCBDb250ZW50U3RyZWFtRmllbGQuTUlNRV9UWVBFXTtcbiAgICBjb25zdCBkbXNPYmplY3QgPSB0aGlzLmRtc09iamVjdCgpO1xuICAgIGlmIChkbXNPYmplY3QpIHtcbiAgICAgIChkbXNPYmplY3QuY29udGVudCA/IFsuLi5maWVsZHMsIC4uLmNvbnRlbnRGaWVsZHNdIDogZmllbGRzKS5mb3JFYWNoKChmKSA9PiB7XG4gICAgICAgIHRoaXMuYmFzZURhdGEucHVzaCh7XG4gICAgICAgICAgbGFiZWw6IHRoaXMuI3N5c3RlbVNlcnZpY2UuZ2V0TG9jYWxpemVkTGFiZWwoZi5yZXBsYWNlKCdfdGl0bGUnLCAnJykpIHx8IGYsXG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIHByb3BlcnR5TmFtZTogZixcbiAgICAgICAgICAgIHZhbHVlOiBkbXNPYmplY3QuZGF0YVtmXVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIkBsZXQgaW1hZ2VTbGlkZSA9IHNsaWRlKCk7XG48c2VjdGlvbiBjbGFzcz1cInNsaWRlXCIgW3l1dkJ1c3lPdmVybGF5XT1cImltYWdlU2xpZGUubG9hZGluZ1wiPlxuICBAaWYgKGltYWdlU2xpZGUudXJpIHx8IGltYWdlU2xpZGUubG9hZGluZykge1xuICAgIDxpbWcgZHJhZ2dhYmxlPVwiZmFsc2VcIiBbbmdDbGFzc109XCJ7IGxvYWRpbmc6IGltYWdlU2xpZGUubG9hZGluZyB9XCIgW2F0dHIuZGF0YS1vcmllbnRhdGlvbl09XCJpbWFnZVNsaWRlLm9yaWVudGF0aW9uXCIgW3NyY109XCJpbWFnZVNsaWRlLnVyaVwiIC8+XG4gIH0gQGVsc2UgaWYgKGltYWdlU2xpZGUuaWNvbj8uc3ZnKSB7XG4gICAgPHl2Yy1pY29uIGRyYWdnYWJsZT1cImZhbHNlXCIgW3N2Z109XCJpbWFnZVNsaWRlLmljb24/LnN2ZyFcIj48L3l2Yy1pY29uPlxuICB9IEBlbHNlIGlmIChpbWFnZVNsaWRlLmljb24/LnNyYykge1xuICAgIDx5dmMtaWNvbiBkcmFnZ2FibGU9XCJmYWxzZVwiIFtzdmdTcmNdPVwiaW1hZ2VTbGlkZS5pY29uPy5zcmMhXCI+PC95dmMtaWNvbj5cbiAgfVxuICBAaWYgKGZvbGRlckluZm8pIHtcbiAgICA8ZGl2IGNsYXNzPVwiYmFkZ2VcIj57eyBmb2xkZXJJbmZvLnNpemUgfX08L2Rpdj5cbiAgfVxuPC9zZWN0aW9uPlxuXG5AbGV0IG8gPSBkbXNPYmplY3QoKTtcbkBpZiAobyAmJiAhby5pc0ZvbGRlcikge1xuICA8eXV2LW9iamVjdC1mbGF2b3IgW2Rtc09iamVjdF09XCJvXCIgKGZsYXZvckNsaWNrKT1cIm9uRmxhdm9yQ2xpY2soJGV2ZW50KVwiPjwveXV2LW9iamVjdC1mbGF2b3I+XG59XG5cbjxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gIEBsZXQgaGVhZGVyID0gaGVhZGVyRGF0YSgpO1xuICA8c2VjdGlvbiBjbGFzcz1cInRpdGxlXCI+XG4gICAgPGgxPnt7IGhlYWRlcj8udGl0bGUgfX08L2gxPlxuXG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgIDx5dmMtb3ZlcmZsb3ctbWVudSBbaGlkZUxhYmVsc109XCJ0cnVlXCIgW21lbnVJdGVtc109XCJhY3Rpb25zKClcIj48L3l2Yy1vdmVyZmxvdy1tZW51PlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG5cbiAgQGlmIChmbGF2b3JEYXRhKSB7XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJmbGF2b3IgcHJvcGVydGllc1wiPlxuICAgICAgPCEtLSA8aDI+e3sgZmxhdm9yRGF0YS5sYWJlbCB9fTwvaDI+IC0tPlxuICAgICAgQGZvciAocCBvZiBmbGF2b3JEYXRhLnByb3BlcnRpZXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+e3sgcC5sYWJlbCB9fTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqeXV2UmVuZGVyZXI9XCJwLnZhbHVlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvc2VjdGlvbj5cbiAgfVxuXG4gIDxzZWN0aW9uIGNsYXNzPVwicHJvcGVydGllc1wiPlxuICAgIEBmb3IgKHAgb2YgYmFzZURhdGE7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj57eyBwLmxhYmVsIH19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnl1dlJlbmRlcmVyPVwicC52YWx1ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, effect, inject, input, signal, untracked } from '@angular/core';
|
|
2
|
+
import { BaseObjectTypeField, ContentStreamField, SystemService, TranslateService } from '@yuuvis/client-core';
|
|
3
|
+
import { RendererDirective } from '@yuuvis/client-framework/renderer';
|
|
4
|
+
import { ShellService } from '@yuuvis/client-shell-core';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class ObjectSummaryDataComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.#shell = inject(ShellService);
|
|
9
|
+
this.#systemService = inject(SystemService);
|
|
10
|
+
this.translate = inject(TranslateService);
|
|
11
|
+
this.dmsObject = input.required();
|
|
12
|
+
this.baseData = signal([]);
|
|
13
|
+
this.flavorData = signal([]);
|
|
14
|
+
this.#dmsObjectEffect = effect(() => {
|
|
15
|
+
const dmsObject = this.dmsObject();
|
|
16
|
+
if (dmsObject) {
|
|
17
|
+
untracked(() => {
|
|
18
|
+
this.#getBaseData();
|
|
19
|
+
this.#getAppliedFlavors(dmsObject);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
#shell;
|
|
25
|
+
#systemService;
|
|
26
|
+
#dmsObjectEffect;
|
|
27
|
+
#getBaseData() {
|
|
28
|
+
this.baseData.set([]);
|
|
29
|
+
const fields = [
|
|
30
|
+
BaseObjectTypeField.CREATION_DATE,
|
|
31
|
+
`${BaseObjectTypeField.CREATED_BY}_title`,
|
|
32
|
+
BaseObjectTypeField.MODIFICATION_DATE,
|
|
33
|
+
`${BaseObjectTypeField.MODIFIED_BY}_title`
|
|
34
|
+
];
|
|
35
|
+
const contentFields = [ContentStreamField.FILENAME, ContentStreamField.LENGTH, ContentStreamField.MIME_TYPE];
|
|
36
|
+
const dmsObject = this.dmsObject();
|
|
37
|
+
if (dmsObject) {
|
|
38
|
+
(dmsObject.content ? [...fields, ...contentFields] : fields).forEach((f) => {
|
|
39
|
+
this.baseData.update((data) => [
|
|
40
|
+
...data,
|
|
41
|
+
{
|
|
42
|
+
label: this.#systemService.getLocalizedLabel(f.replace('_title', '')) || f,
|
|
43
|
+
value: {
|
|
44
|
+
propertyName: f,
|
|
45
|
+
value: dmsObject.data[f]
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
]);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
console.log('baseData', this.baseData());
|
|
52
|
+
}
|
|
53
|
+
#getAppliedFlavors(dmsObject) {
|
|
54
|
+
this.flavorData.set([]);
|
|
55
|
+
const appliedFlavors = this.#shell.getAppliedObjectFlavors(dmsObject).applied;
|
|
56
|
+
for (const flavor of appliedFlavors) {
|
|
57
|
+
this.flavorData.update((data) => [
|
|
58
|
+
...data,
|
|
59
|
+
{
|
|
60
|
+
flavor,
|
|
61
|
+
label: this.translate.instant(flavor.id),
|
|
62
|
+
properties: this.#systemService.getSecondaryObjectType(flavor.sot, true)?.fields.map((f) => ({
|
|
63
|
+
label: this.#systemService.getLocalizedLabel(f.id) || f.id,
|
|
64
|
+
value: {
|
|
65
|
+
propertyName: f.id,
|
|
66
|
+
value: dmsObject.data[f.id]
|
|
67
|
+
}
|
|
68
|
+
}))
|
|
69
|
+
}
|
|
70
|
+
]);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectSummaryDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
74
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ObjectSummaryDataComponent, isStandalone: true, selector: "yuv-object-summary-data", inputs: { dmsObject: { classPropertyName: "dmsObject", publicName: "dmsObject", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@let flavors = flavorData();\n\n<div class=\"content\">\n @if (flavors.length > 0) {\n <section class=\"flavor properties\">\n @for (flavor of flavors; track $index) {\n <div class=\"flavour-groups\">\n <h2>{{ flavor.label }}</h2>\n @for (property of flavor.properties; track $index) {\n <div class=\"row\">\n <div class=\"label\">{{ property.label }}</div>\n <div class=\"value\">\n <ng-container *yuvRenderer=\"property.value\"></ng-container>\n </div>\n </div>\n }\n </div>\n }\n </section>\n }\n\n @let base = baseData();\n @if (base) {\n <section class=\"base properties\">\n <h2>BASE</h2>\n @for (p of base; track $index) {\n <div class=\"row\">\n <div class=\"label\">{{ p.label }}</div>\n <div class=\"value\">\n <ng-container *yuvRenderer=\"p.value\"></ng-container>\n </div>\n </div>\n }\n </section>\n }\n</div>\n", styles: ["section.title{padding:var(--app-pane-padding);display:flex;justify-content:space-between;align-items:center;gap:var(--app-pane-padding)}section.title h1{margin:0;padding:0;font-size:var(--font-title);font-weight:400;text-overflow:ellipsis;overflow:hidden}section.title .actions yvc-icon{--icon-size: 18px}section.title .actions button.quickAccess.isFavorite{color:var(--color-accent)}section.slide{display:flex;flex-flow:column;align-items:center;justify-content:center;border-block-end:1px solid var(--panel-divider-color);background-color:var(--panel-background-grey);position:relative;height:25%;overflow:hidden}section.slide .badge{position:absolute;inset-inline-end:calc(var(--app-pane-padding) / 2);inset-block-start:calc(var(--app-pane-padding) / 2);font-size:3rem;color:var(--text-color-hint)}section.slide yvc-icon{max-height:var(--max-slide-size);max-width:var(--max-slide-size);width:50%;height:50%;opacity:.3}section.slide img{object-fit:cover;object-position:top;opacity:0;transition:opacity .3s;margin:auto;max-height:100%;max-width:100%;outline:4px solid var(--panel-background);outline-offset:-4px;box-shadow:0 0 0 1px var(--panel-divider-color)}section.slide img:not(.loading){opacity:1}:host{--max-slide-size: 150px;display:flex;flex-flow:column;height:100%}:host section h2{font-size:var(--font-title);font-weight:var(--font-weight-normal);margin:0;margin-bottom:var(--app-pane-padding);padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding);border-bottom:1px solid var(--panel-divider-color)}:host .content{padding-top:var(--app-pane-padding);flex:1;overflow-y:auto;width:100%;display:flex;flex-flow:column;align-items:center}:host .content>*:not(:first-child){margin:var(--app-pane-padding) 0}:host section.properties{gap:1rem;border:1px solid var(--panel-divider-color);width:80%;background-color:var(--panel-background-lightgrey)}:host section.properties .flavour-groups{display:flex;flex-flow:column}:host section.properties .row{display:flex;flex-flow:row wrap;align-items:start;column-gap:1rem;margin-block-end:calc(var(--app-pane-padding) / 2);padding:0 var(--app-pane-padding)}:host section.properties .row .label{font-weight:700;font-size:var(--font-caption)}:host section.properties .row .value{word-break:break-all}:host section.flavor.properties>*:not(:first-child){padding:var(--app-pane-padding) 0}:host section.flavor.properties>*:not(:first-child) h2{border-top:1px solid var(--panel-divider-color)}\n"], dependencies: [{ kind: "directive", type: RendererDirective, selector: "[yuvRenderer]", inputs: ["yuvRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
75
|
+
}
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectSummaryDataComponent, decorators: [{
|
|
77
|
+
type: Component,
|
|
78
|
+
args: [{ selector: 'yuv-object-summary-data', standalone: true, imports: [RendererDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "@let flavors = flavorData();\n\n<div class=\"content\">\n @if (flavors.length > 0) {\n <section class=\"flavor properties\">\n @for (flavor of flavors; track $index) {\n <div class=\"flavour-groups\">\n <h2>{{ flavor.label }}</h2>\n @for (property of flavor.properties; track $index) {\n <div class=\"row\">\n <div class=\"label\">{{ property.label }}</div>\n <div class=\"value\">\n <ng-container *yuvRenderer=\"property.value\"></ng-container>\n </div>\n </div>\n }\n </div>\n }\n </section>\n }\n\n @let base = baseData();\n @if (base) {\n <section class=\"base properties\">\n <h2>BASE</h2>\n @for (p of base; track $index) {\n <div class=\"row\">\n <div class=\"label\">{{ p.label }}</div>\n <div class=\"value\">\n <ng-container *yuvRenderer=\"p.value\"></ng-container>\n </div>\n </div>\n }\n </section>\n }\n</div>\n", styles: ["section.title{padding:var(--app-pane-padding);display:flex;justify-content:space-between;align-items:center;gap:var(--app-pane-padding)}section.title h1{margin:0;padding:0;font-size:var(--font-title);font-weight:400;text-overflow:ellipsis;overflow:hidden}section.title .actions yvc-icon{--icon-size: 18px}section.title .actions button.quickAccess.isFavorite{color:var(--color-accent)}section.slide{display:flex;flex-flow:column;align-items:center;justify-content:center;border-block-end:1px solid var(--panel-divider-color);background-color:var(--panel-background-grey);position:relative;height:25%;overflow:hidden}section.slide .badge{position:absolute;inset-inline-end:calc(var(--app-pane-padding) / 2);inset-block-start:calc(var(--app-pane-padding) / 2);font-size:3rem;color:var(--text-color-hint)}section.slide yvc-icon{max-height:var(--max-slide-size);max-width:var(--max-slide-size);width:50%;height:50%;opacity:.3}section.slide img{object-fit:cover;object-position:top;opacity:0;transition:opacity .3s;margin:auto;max-height:100%;max-width:100%;outline:4px solid var(--panel-background);outline-offset:-4px;box-shadow:0 0 0 1px var(--panel-divider-color)}section.slide img:not(.loading){opacity:1}:host{--max-slide-size: 150px;display:flex;flex-flow:column;height:100%}:host section h2{font-size:var(--font-title);font-weight:var(--font-weight-normal);margin:0;margin-bottom:var(--app-pane-padding);padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding);border-bottom:1px solid var(--panel-divider-color)}:host .content{padding-top:var(--app-pane-padding);flex:1;overflow-y:auto;width:100%;display:flex;flex-flow:column;align-items:center}:host .content>*:not(:first-child){margin:var(--app-pane-padding) 0}:host section.properties{gap:1rem;border:1px solid var(--panel-divider-color);width:80%;background-color:var(--panel-background-lightgrey)}:host section.properties .flavour-groups{display:flex;flex-flow:column}:host section.properties .row{display:flex;flex-flow:row wrap;align-items:start;column-gap:1rem;margin-block-end:calc(var(--app-pane-padding) / 2);padding:0 var(--app-pane-padding)}:host section.properties .row .label{font-weight:700;font-size:var(--font-caption)}:host section.properties .row .value{word-break:break-all}:host section.flavor.properties>*:not(:first-child){padding:var(--app-pane-padding) 0}:host section.flavor.properties>*:not(:first-child) h2{border-top:1px solid var(--panel-divider-color)}\n"] }]
|
|
79
|
+
}] });
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXN1bW1hcnktZGF0YS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1zdW1tYXJ5L3NyYy9saWIvb2JqZWN0LXN1bW1hcnktZGF0YS9vYmplY3Qtc3VtbWFyeS1kYXRhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LXN1bW1hcnkvc3JjL2xpYi9vYmplY3Qtc3VtbWFyeS1kYXRhL29iamVjdC1zdW1tYXJ5LWRhdGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBYSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBVXpELE1BQU0sT0FBTywwQkFBMEI7SUFSdkM7UUFTVyxXQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzlCLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZDLGNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUU5QyxjQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBYSxDQUFDO1FBRXhDLGFBQVEsR0FBRyxNQUFNLENBQVEsRUFBRSxDQUFDLENBQUM7UUFDN0IsZUFBVSxHQUFHLE1BQU0sQ0FB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RUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7d0JBQzFELEtBQUssRUFBRTs0QkFDTCxZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUU7NEJBQ2xCLEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7eUJBQzVCO3FCQUNGLENBQUMsQ0FBQztpQkFDSjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOytHQW5FVSwwQkFBMEI7bUdBQTFCLDBCQUEwQixrT0NidkMsNmdDQW9DQSwwOEVENUJZLGlCQUFpQjs7NEZBS2hCLDBCQUEwQjtrQkFSdEMsU0FBUzsrQkFDRSx5QkFBeUIsY0FDdkIsSUFBSSxXQUNQLENBQUMsaUJBQWlCLENBQUMsbUJBR1gsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VPYmplY3RUeXBlRmllbGQsIENvbnRlbnRTdHJlYW1GaWVsZCwgRG1zT2JqZWN0LCBTeXN0ZW1TZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBSZW5kZXJlckRpcmVjdGl2ZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9yZW5kZXJlcic7XG5pbXBvcnQgeyBTaGVsbFNlcnZpY2UgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1zaGVsbC1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneXV2LW9iamVjdC1zdW1tYXJ5LWRhdGEnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbUmVuZGVyZXJEaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LXN1bW1hcnktZGF0YS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vYmplY3Qtc3VtbWFyeS1kYXRhLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0U3VtbWFyeURhdGFDb21wb25lbnQge1xuICByZWFkb25seSAjc2hlbGwgPSBpbmplY3QoU2hlbGxTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI3N5c3RlbVNlcnZpY2UgPSBpbmplY3QoU3lzdGVtU2VydmljZSk7XG4gIHJlYWRvbmx5IHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcblxuICBkbXNPYmplY3QgPSBpbnB1dC5yZXF1aXJlZDxEbXNPYmplY3Q+KCk7XG5cbiAgYmFzZURhdGEgPSBzaWduYWw8YW55W10+KFtdKTtcbiAgZmxhdm9yRGF0YSA9IHNpZ25hbDxhbnlbXT4oW10pO1xuXG4gICNkbXNPYmplY3RFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGRtc09iamVjdCA9IHRoaXMuZG1zT2JqZWN0KCk7XG4gICAgaWYgKGRtc09iamVjdCkge1xuICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgdGhpcy4jZ2V0QmFzZURhdGEoKTtcbiAgICAgICAgdGhpcy4jZ2V0QXBwbGllZEZsYXZvcnMoZG1zT2JqZWN0KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG5cbiAgI2dldEJhc2VEYXRhKCkge1xuICAgIHRoaXMuYmFzZURhdGEuc2V0KFtdKTtcblxuICAgIGNvbnN0IGZpZWxkcyA9IFtcbiAgICAgIEJhc2VPYmplY3RUeXBlRmllbGQuQ1JFQVRJT05fREFURSxcbiAgICAgIGAke0Jhc2VPYmplY3RUeXBlRmllbGQuQ1JFQVRFRF9CWX1fdGl0bGVgLFxuICAgICAgQmFzZU9iamVjdFR5cGVGaWVsZC5NT0RJRklDQVRJT05fREFURSxcbiAgICAgIGAke0Jhc2VPYmplY3RUeXBlRmllbGQuTU9ESUZJRURfQll9X3RpdGxlYFxuICAgIF07XG4gICAgY29uc3QgY29udGVudEZpZWxkcyA9IFtDb250ZW50U3RyZWFtRmllbGQuRklMRU5BTUUsIENvbnRlbnRTdHJlYW1GaWVsZC5MRU5HVEgsIENvbnRlbnRTdHJlYW1GaWVsZC5NSU1FX1RZUEVdO1xuICAgIGNvbnN0IGRtc09iamVjdCA9IHRoaXMuZG1zT2JqZWN0KCk7XG4gICAgaWYgKGRtc09iamVjdCkge1xuICAgICAgKGRtc09iamVjdC5jb250ZW50ID8gWy4uLmZpZWxkcywgLi4uY29udGVudEZpZWxkc10gOiBmaWVsZHMpLmZvckVhY2goKGYpID0+IHtcbiAgICAgICAgdGhpcy5iYXNlRGF0YS51cGRhdGUoKGRhdGEpID0+IFtcbiAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLiNzeXN0ZW1TZXJ2aWNlLmdldExvY2FsaXplZExhYmVsKGYucmVwbGFjZSgnX3RpdGxlJywgJycpKSB8fCBmLFxuICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgcHJvcGVydHlOYW1lOiBmLFxuICAgICAgICAgICAgICB2YWx1ZTogZG1zT2JqZWN0LmRhdGFbZl1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF0pO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKCdiYXNlRGF0YScsIHRoaXMuYmFzZURhdGEoKSk7XG4gIH1cblxuICAjZ2V0QXBwbGllZEZsYXZvcnMoZG1zT2JqZWN0OiBEbXNPYmplY3QpIHtcbiAgICB0aGlzLmZsYXZvckRhdGEuc2V0KFtdKTtcbiAgICBjb25zdCBhcHBsaWVkRmxhdm9ycyA9IHRoaXMuI3NoZWxsLmdldEFwcGxpZWRPYmplY3RGbGF2b3JzKGRtc09iamVjdCkuYXBwbGllZDtcbiAgICBmb3IgKGNvbnN0IGZsYXZvciBvZiBhcHBsaWVkRmxhdm9ycykge1xuICAgICAgdGhpcy5mbGF2b3JEYXRhLnVwZGF0ZSgoZGF0YSkgPT4gW1xuICAgICAgICAuLi5kYXRhLFxuICAgICAgICB7XG4gICAgICAgICAgZmxhdm9yLFxuICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGZsYXZvci5pZCksXG4gICAgICAgICAgcHJvcGVydGllczogdGhpcy4jc3lzdGVtU2VydmljZS5nZXRTZWNvbmRhcnlPYmplY3RUeXBlKGZsYXZvci5zb3QsIHRydWUpPy5maWVsZHMubWFwKChmKSA9PiAoe1xuICAgICAgICAgICAgbGFiZWw6IHRoaXMuI3N5c3RlbVNlcnZpY2UuZ2V0TG9jYWxpemVkTGFiZWwoZi5pZCkgfHwgZi5pZCxcbiAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgIHByb3BlcnR5TmFtZTogZi5pZCxcbiAgICAgICAgICAgICAgdmFsdWU6IGRtc09iamVjdC5kYXRhW2YuaWRdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkpXG4gICAgICAgIH1cbiAgICAgIF0pO1xuICAgIH1cbiAgfVxufVxuIiwiQGxldCBmbGF2b3JzID0gZmxhdm9yRGF0YSgpO1xuXG48ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICBAaWYgKGZsYXZvcnMubGVuZ3RoID4gMCkge1xuICAgIDxzZWN0aW9uIGNsYXNzPVwiZmxhdm9yIHByb3BlcnRpZXNcIj5cbiAgICAgIEBmb3IgKGZsYXZvciBvZiBmbGF2b3JzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsYXZvdXItZ3JvdXBzXCI+XG4gICAgICAgICAgPGgyPnt7IGZsYXZvci5sYWJlbCB9fTwvaDI+XG4gICAgICAgICAgQGZvciAocHJvcGVydHkgb2YgZmxhdm9yLnByb3BlcnRpZXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj57eyBwcm9wZXJ0eS5sYWJlbCB9fTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICp5dXZSZW5kZXJlcj1cInByb3BlcnR5LnZhbHVlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L3NlY3Rpb24+XG4gIH1cblxuICBAbGV0IGJhc2UgPSBiYXNlRGF0YSgpO1xuICBAaWYgKGJhc2UpIHtcbiAgICA8c2VjdGlvbiBjbGFzcz1cImJhc2UgcHJvcGVydGllc1wiPlxuICAgICAgPGgyPkJBU0U8L2gyPlxuICAgICAgQGZvciAocCBvZiBiYXNlOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPnt7IHAubGFiZWwgfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnl1dlJlbmRlcmVyPVwicC52YWx1ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L3NlY3Rpb24+XG4gIH1cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ObjectSummaryModule {
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectSummaryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ObjectSummaryModule, imports: [CommonModule] }); }
|
|
7
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectSummaryModule, imports: [CommonModule] }); }
|
|
8
|
+
}
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectSummaryModule, decorators: [{
|
|
10
|
+
type: NgModule,
|
|
11
|
+
args: [{
|
|
12
|
+
imports: [CommonModule]
|
|
13
|
+
}]
|
|
14
|
+
}] });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXN1bW1hcnkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9vYmplY3Qtc3VtbWFyeS9zcmMvbGliL29iamVjdC1zdW1tYXJ5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFLL0MsTUFBTSxPQUFPLG1CQUFtQjsrR0FBbkIsbUJBQW1CO2dIQUFuQixtQkFBbUIsWUFGcEIsWUFBWTtnSEFFWCxtQkFBbUIsWUFGcEIsWUFBWTs7NEZBRVgsbUJBQW1CO2tCQUgvQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0U3VtbWFyeU1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXV1dmlzLWNsaWVudC1mcmFtZXdvcmstb2JqZWN0LXN1bW1hcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL29iamVjdC1zdW1tYXJ5L3NyYy95dXV2aXMtY2xpZW50LWZyYW1ld29yay1vYmplY3Qtc3VtbWFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './lib/pagination.component';
|
|
2
|
+
export * from './lib/pagination.interface';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3BhZ2luYXRpb24vc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3BhZ2luYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhZ2luYXRpb24uaW50ZXJmYWNlJztcbiJdfQ==
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Component, effect, inject, input, output } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { YvcIconModule } from '@yuuvis/components/icon';
|
|
4
|
+
import { YUV_ICONS } from '@yuuvis/client-framework/icons';
|
|
5
|
+
import { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@yuuvis/components/icon";
|
|
8
|
+
import * as i2 from "@angular/forms";
|
|
9
|
+
export class PaginationComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.#fb = inject(FormBuilder);
|
|
12
|
+
this.pagination = input.required();
|
|
13
|
+
this.#paginationEffect = effect(() => {
|
|
14
|
+
const pageCtrl = this.pagingForm.get('page');
|
|
15
|
+
if (pageCtrl) {
|
|
16
|
+
pageCtrl.setValue(`${this.pagination().page}`);
|
|
17
|
+
pageCtrl.setValidators([Validators.required, Validators.pattern('[0-9]+'), Validators.min(1), Validators.max(this.pagination().pages)]);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
this.pageChange = output();
|
|
21
|
+
this.pagingForm = this.#fb.group({ page: [''] });
|
|
22
|
+
this.icons = {
|
|
23
|
+
arrowNext: YUV_ICONS.arrowNext,
|
|
24
|
+
arrowLast: YUV_ICONS.arrowLast
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
#fb;
|
|
28
|
+
#paginationEffect;
|
|
29
|
+
onPagingFormSubmit() {
|
|
30
|
+
if (this.pagingForm.valid && this.pagingForm.value.page) {
|
|
31
|
+
this.pageChange.emit(parseInt(this.pagingForm.value.page));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
onInputBlur() {
|
|
35
|
+
if (this.pagingForm.invalid) {
|
|
36
|
+
this.pagingForm.patchValue({
|
|
37
|
+
page: `${this.pagination().page}`
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
42
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: PaginationComponent, isStandalone: true, selector: "yuv-pagination", inputs: { pagination: { classPropertyName: "pagination", publicName: "pagination", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { pageChange: "pageChange" }, ngImport: i0, template: "<div class=\"total\">{{ pagination().total }}</div>\n<div class=\"controls\">\n <button [disabled]=\"pagination().page === 1\" (click)=\"pageChange.emit(1)\">\n <yvc-icon class=\"first\" [svg]=\"icons.arrowLast\"></yvc-icon>\n </button>\n <button [disabled]=\"pagination().page <= 1\" (click)=\"pageChange.emit(pagination().page - 1)\">\n <yvc-icon class=\"prev\" [svg]=\"icons.arrowNext\"></yvc-icon>\n </button>\n\n <form (ngSubmit)=\"onPagingFormSubmit()\" [formGroup]=\"pagingForm\">\n <input (blur)=\"onInputBlur()\" type=\"number\" formControlName=\"page\" />\n <div>{{ pagination().pages }}</div>\n </form>\n\n <button [disabled]=\"pagination().page >= pagination().pages\" (click)=\"pageChange.emit(pagination().page + 1)\">\n <yvc-icon class=\"next\" [svg]=\"icons.arrowNext\"></yvc-icon>\n </button>\n <button [disabled]=\"pagination().page === pagination().pages\" (click)=\"pageChange.emit(pagination().pages)\">\n <yvc-icon class=\"last\" [svg]=\"icons.arrowLast\"></yvc-icon>\n </button>\n</div>\n", styles: [":host{--_paging-button-size: var(--paging-button-size, 18px);--_paging-margin: var(--paging-margin, calc(var(--app-pane-padding) / 2));--_paging-padding: var(--paging-padding, calc(var(--app-pane-padding) / 4));--_paging-border: var(--paging-border-radius, 4px);--_paging-background: var(--paging-background, var(--panel-background));display:flex;justify-content:space-between;align-items:center;padding:var(--_paging-padding);background-color:var(--_paging-background);border-radius:var(--_paging-border-radius)}:host .controls{display:flex;justify-content:space-between;align-items:center}:host .total{font-size:var(--font-caption);color:var(--text-color-caption);padding-inline:.25em;line-height:1em}:host button{padding:0;display:flex;--icon-size: var(--_paging-button-size)}:host button .first,:host button .prev{transform:rotate(180deg)}:host form{display:flex;border:1px solid var(--panel-divider-color);margin:0 4px;align-items:baseline}:host form>*{font-size:var(--font-caption);color:var(--text-color-caption);padding-inline:.25em}:host form>div{-webkit-user-select:none;user-select:none}:host form input{width:3em;line-height:1em;text-align:right;border:0;background-color:transparent;border-inline-end:1px solid var(--panel-divider-color)}:host form input.ng-invalid{color:var(--color-error)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i1.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
43
|
+
}
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
45
|
+
type: Component,
|
|
46
|
+
args: [{ selector: 'yuv-pagination', standalone: true, imports: [CommonModule, YvcIconModule, ReactiveFormsModule], template: "<div class=\"total\">{{ pagination().total }}</div>\n<div class=\"controls\">\n <button [disabled]=\"pagination().page === 1\" (click)=\"pageChange.emit(1)\">\n <yvc-icon class=\"first\" [svg]=\"icons.arrowLast\"></yvc-icon>\n </button>\n <button [disabled]=\"pagination().page <= 1\" (click)=\"pageChange.emit(pagination().page - 1)\">\n <yvc-icon class=\"prev\" [svg]=\"icons.arrowNext\"></yvc-icon>\n </button>\n\n <form (ngSubmit)=\"onPagingFormSubmit()\" [formGroup]=\"pagingForm\">\n <input (blur)=\"onInputBlur()\" type=\"number\" formControlName=\"page\" />\n <div>{{ pagination().pages }}</div>\n </form>\n\n <button [disabled]=\"pagination().page >= pagination().pages\" (click)=\"pageChange.emit(pagination().page + 1)\">\n <yvc-icon class=\"next\" [svg]=\"icons.arrowNext\"></yvc-icon>\n </button>\n <button [disabled]=\"pagination().page === pagination().pages\" (click)=\"pageChange.emit(pagination().pages)\">\n <yvc-icon class=\"last\" [svg]=\"icons.arrowLast\"></yvc-icon>\n </button>\n</div>\n", styles: [":host{--_paging-button-size: var(--paging-button-size, 18px);--_paging-margin: var(--paging-margin, calc(var(--app-pane-padding) / 2));--_paging-padding: var(--paging-padding, calc(var(--app-pane-padding) / 4));--_paging-border: var(--paging-border-radius, 4px);--_paging-background: var(--paging-background, var(--panel-background));display:flex;justify-content:space-between;align-items:center;padding:var(--_paging-padding);background-color:var(--_paging-background);border-radius:var(--_paging-border-radius)}:host .controls{display:flex;justify-content:space-between;align-items:center}:host .total{font-size:var(--font-caption);color:var(--text-color-caption);padding-inline:.25em;line-height:1em}:host button{padding:0;display:flex;--icon-size: var(--_paging-button-size)}:host button .first,:host button .prev{transform:rotate(180deg)}:host form{display:flex;border:1px solid var(--panel-divider-color);margin:0 4px;align-items:baseline}:host form>*{font-size:var(--font-caption);color:var(--text-color-caption);padding-inline:.25em}:host form>div{-webkit-user-select:none;user-select:none}:host form input{width:3em;line-height:1em;text-align:right;border:0;background-color:transparent;border-inline-end:1px solid var(--panel-divider-color)}:host form input.ng-invalid{color:var(--color-error)}\n"] }]
|
|
47
|
+
}] });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3BhZ2luYXRpb24vc3JjL2xpYi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvcGFnaW5hdGlvbi9zcmMvbGliL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVM5RSxNQUFNLE9BQU8sbUJBQW1CO0lBUGhDO1FBUUUsUUFBRyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxQixlQUFVLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBYyxDQUFDO1FBQzFDLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDOUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0MsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQy9DLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUksQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsZUFBVSxHQUFHLE1BQU0sRUFBVSxDQUFDO1FBQzlCLGVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuQyxVQUFLLEdBQUc7WUFDZixTQUFTLEVBQUUsU0FBUyxDQUFDLFNBQVM7WUFDOUIsU0FBUyxFQUFFLFNBQVMsQ0FBQyxTQUFTO1NBQy9CLENBQUM7S0FlSDtJQTlCQyxHQUFHLENBQXVCO0lBRTFCLGlCQUFpQixDQU1kO0lBU0gsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0QsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO2dCQUN6QixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxFQUFFO2FBQ2xDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOytHQTlCVSxtQkFBbUI7bUdBQW5CLG1CQUFtQixtUUNkaEMsaWhDQXFCQSxtMUNEWFksWUFBWSw4QkFBRSxhQUFhLDhIQUFFLG1CQUFtQjs7NEZBSS9DLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBhZ2luYXRpb24gfSBmcm9tICcuL3BhZ2luYXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFl2Y0ljb25Nb2R1bGUgfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBZVVZfSUNPTlMgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvaWNvbnMnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3l1di1wYWdpbmF0aW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgWXZjSWNvbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQge1xuICAjZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xuICBwYWdpbmF0aW9uID0gaW5wdXQucmVxdWlyZWQ8UGFnaW5hdGlvbj4oKTtcbiAgI3BhZ2luYXRpb25FZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHBhZ2VDdHJsID0gdGhpcy5wYWdpbmdGb3JtLmdldCgncGFnZScpO1xuICAgIGlmIChwYWdlQ3RybCkge1xuICAgICAgcGFnZUN0cmwuc2V0VmFsdWUoYCR7dGhpcy5wYWdpbmF0aW9uKCkucGFnZX1gKTtcbiAgICAgIHBhZ2VDdHJsLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybignWzAtOV0rJyksIFZhbGlkYXRvcnMubWluKDEpLCBWYWxpZGF0b3JzLm1heCh0aGlzLnBhZ2luYXRpb24oKS5wYWdlcyldKTtcbiAgICB9XG4gIH0pO1xuXG4gIHBhZ2VDaGFuZ2UgPSBvdXRwdXQ8bnVtYmVyPigpO1xuICBwYWdpbmdGb3JtID0gdGhpcy4jZmIuZ3JvdXAoeyBwYWdlOiBbJyddIH0pO1xuICByZWFkb25seSBpY29ucyA9IHtcbiAgICBhcnJvd05leHQ6IFlVVl9JQ09OUy5hcnJvd05leHQsXG4gICAgYXJyb3dMYXN0OiBZVVZfSUNPTlMuYXJyb3dMYXN0XG4gIH07XG5cbiAgb25QYWdpbmdGb3JtU3VibWl0KCkge1xuICAgIGlmICh0aGlzLnBhZ2luZ0Zvcm0udmFsaWQgJiYgdGhpcy5wYWdpbmdGb3JtLnZhbHVlLnBhZ2UpIHtcbiAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHBhcnNlSW50KHRoaXMucGFnaW5nRm9ybS52YWx1ZS5wYWdlKSk7XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dEJsdXIoKSB7XG4gICAgaWYgKHRoaXMucGFnaW5nRm9ybS5pbnZhbGlkKSB7XG4gICAgICB0aGlzLnBhZ2luZ0Zvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgIHBhZ2U6IGAke3RoaXMucGFnaW5hdGlvbigpLnBhZ2V9YFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidG90YWxcIj57eyBwYWdpbmF0aW9uKCkudG90YWwgfX08L2Rpdj5cbjxkaXYgY2xhc3M9XCJjb250cm9sc1wiPlxuICA8YnV0dG9uIFtkaXNhYmxlZF09XCJwYWdpbmF0aW9uKCkucGFnZSA9PT0gMVwiIChjbGljayk9XCJwYWdlQ2hhbmdlLmVtaXQoMSlcIj5cbiAgICA8eXZjLWljb24gY2xhc3M9XCJmaXJzdFwiIFtzdmddPVwiaWNvbnMuYXJyb3dMYXN0XCI+PC95dmMtaWNvbj5cbiAgPC9idXR0b24+XG4gIDxidXR0b24gW2Rpc2FibGVkXT1cInBhZ2luYXRpb24oKS5wYWdlIDw9IDFcIiAoY2xpY2spPVwicGFnZUNoYW5nZS5lbWl0KHBhZ2luYXRpb24oKS5wYWdlIC0gMSlcIj5cbiAgICA8eXZjLWljb24gY2xhc3M9XCJwcmV2XCIgW3N2Z109XCJpY29ucy5hcnJvd05leHRcIj48L3l2Yy1pY29uPlxuICA8L2J1dHRvbj5cblxuICA8Zm9ybSAobmdTdWJtaXQpPVwib25QYWdpbmdGb3JtU3VibWl0KClcIiBbZm9ybUdyb3VwXT1cInBhZ2luZ0Zvcm1cIj5cbiAgICA8aW5wdXQgKGJsdXIpPVwib25JbnB1dEJsdXIoKVwiIHR5cGU9XCJudW1iZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJwYWdlXCIgLz5cbiAgICA8ZGl2Pnt7IHBhZ2luYXRpb24oKS5wYWdlcyB9fTwvZGl2PlxuICA8L2Zvcm0+XG5cbiAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwicGFnaW5hdGlvbigpLnBhZ2UgPj0gcGFnaW5hdGlvbigpLnBhZ2VzXCIgKGNsaWNrKT1cInBhZ2VDaGFuZ2UuZW1pdChwYWdpbmF0aW9uKCkucGFnZSArIDEpXCI+XG4gICAgPHl2Yy1pY29uIGNsYXNzPVwibmV4dFwiIFtzdmddPVwiaWNvbnMuYXJyb3dOZXh0XCI+PC95dmMtaWNvbj5cbiAgPC9idXR0b24+XG4gIDxidXR0b24gW2Rpc2FibGVkXT1cInBhZ2luYXRpb24oKS5wYWdlID09PSBwYWdpbmF0aW9uKCkucGFnZXNcIiAoY2xpY2spPVwicGFnZUNoYW5nZS5lbWl0KHBhZ2luYXRpb24oKS5wYWdlcylcIj5cbiAgICA8eXZjLWljb24gY2xhc3M9XCJsYXN0XCIgW3N2Z109XCJpY29ucy5hcnJvd0xhc3RcIj48L3l2Yy1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3BhZ2luYXRpb24vc3JjL2xpYi9wYWdpbmF0aW9uLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRpb24ge1xuICB0b3RhbDogbnVtYmVyO1xuICBwYWdlczogbnVtYmVyO1xuICBwYWdlOiBudW1iZXI7XG59XG4iXX0=
|