@deenruv/admin-ui 1.0.0
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/LICENSE +23 -0
- package/catalog/catalog.module.d.ts +43 -0
- package/catalog/catalog.routes.d.ts +4 -0
- package/catalog/components/apply-facet-dialog/apply-facet-dialog.component.d.ts +16 -0
- package/catalog/components/asset-detail/asset-detail.component.d.ts +28 -0
- package/catalog/components/asset-list/asset-list.component.d.ts +23 -0
- package/catalog/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.d.ts +35 -0
- package/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.d.ts +40 -0
- package/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.graphql.d.ts +4 -0
- package/catalog/components/collection-contents/collection-contents.component.d.ts +39 -0
- package/catalog/components/collection-data-table/collection-data-table.component.d.ts +80 -0
- package/catalog/components/collection-detail/collection-detail.component.d.ts +71 -0
- package/catalog/components/collection-list/collection-breadcrumb.pipe.d.ts +11 -0
- package/catalog/components/collection-list/collection-list-bulk-actions.d.ts +8 -0
- package/catalog/components/collection-list/collection-list.component.d.ts +25 -0
- package/catalog/components/collection-tree/array-to-tree.d.ts +19 -0
- package/catalog/components/collection-tree/collection-tree-node.component.d.ts +44 -0
- package/catalog/components/collection-tree/collection-tree.component.d.ts +22 -0
- package/catalog/components/collection-tree/collection-tree.service.d.ts +33 -0
- package/catalog/components/collection-tree/collection-tree.types.d.ts +7 -0
- package/catalog/components/confirm-variant-deletion-dialog/confirm-variant-deletion-dialog.component.d.ts +10 -0
- package/catalog/components/create-facet-value-dialog/create-facet-value-dialog.component.d.ts +19 -0
- package/catalog/components/create-product-option-group-dialog/create-product-option-group-dialog.component.d.ts +18 -0
- package/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.d.ts +27 -0
- package/catalog/components/facet-detail/facet-detail.component.d.ts +76 -0
- package/catalog/components/facet-list/facet-list-bulk-actions.d.ts +7 -0
- package/catalog/components/facet-list/facet-list.component.d.ts +19 -0
- package/catalog/components/generate-product-variants/generate-product-variants.component.d.ts +65 -0
- package/catalog/components/move-collections-dialog/move-collections-dialog.component.d.ts +23 -0
- package/catalog/components/option-value-input/option-value-input.component.d.ts +48 -0
- package/catalog/components/product-detail/product-detail.component.d.ts +75 -0
- package/catalog/components/product-list/product-list-bulk-actions.d.ts +7 -0
- package/catalog/components/product-list/product-list.component.d.ts +18 -0
- package/catalog/components/product-list/product-list.graphql.d.ts +1 -0
- package/catalog/components/product-options-editor/product-options-editor.component.d.ts +47 -0
- package/catalog/components/product-variant-detail/product-variant-detail.component.d.ts +79 -0
- package/catalog/components/product-variant-detail/product-variant-detail.graphql.d.ts +3 -0
- package/catalog/components/product-variant-list/product-variant-list-bulk-actions.d.ts +6 -0
- package/catalog/components/product-variant-list/product-variant-list.component.d.ts +14 -0
- package/catalog/components/product-variant-list/product-variant-list.graphql.d.ts +1 -0
- package/catalog/components/product-variant-quick-jump/product-variant-quick-jump.component.d.ts +18 -0
- package/catalog/components/product-variants-editor/product-variants-editor.component.d.ts +88 -0
- package/catalog/components/product-variants-table/product-variants-table.component.d.ts +55 -0
- package/catalog/components/update-product-option-dialog/update-product-option-dialog.component.d.ts +25 -0
- package/catalog/components/variant-price-detail/variant-price-detail.component.d.ts +20 -0
- package/catalog/components/variant-price-strategy-detail/variant-price-strategy-detail.component.d.ts +10 -0
- package/catalog/index.d.ts +5 -0
- package/catalog/providers/product-detail/product-detail.service.d.ts +286 -0
- package/catalog/providers/product-detail/replace-last.d.ts +6 -0
- package/catalog/providers/routing/product-variants-resolver.d.ts +8 -0
- package/catalog/public_api.d.ts +48 -0
- package/core/app.component.d.ts +19 -0
- package/core/app.component.module.d.ts +9 -0
- package/core/app.config.d.ts +3 -0
- package/core/common/base-detail.component.d.ts +146 -0
- package/core/common/base-entity-resolver.d.ts +45 -0
- package/core/common/base-list.component.d.ts +138 -0
- package/core/common/component-registry-types.d.ts +65 -0
- package/core/common/deactivate-aware.d.ts +8 -0
- package/core/common/detail-breadcrumb.d.ts +12 -0
- package/core/common/generated-types.d.ts +20279 -0
- package/core/common/introspection-result-wrapper.d.ts +1 -0
- package/core/common/introspection-result.d.ts +7 -0
- package/core/common/single-search-selection-model.d.ts +16 -0
- package/core/common/title-setter.d.ts +4 -0
- package/core/common/utilities/bulk-action-utils.d.ts +49 -0
- package/core/common/utilities/configurable-operation-utils.d.ts +48 -0
- package/core/common/utilities/create-updated-translatable.d.ts +25 -0
- package/core/common/utilities/custom-field-default-value.d.ts +6 -0
- package/core/common/utilities/find-translation.d.ts +14 -0
- package/core/common/utilities/get-default-ui-language.d.ts +3 -0
- package/core/common/utilities/interpolate-description.d.ts +7 -0
- package/core/common/utilities/selection-manager.d.ts +30 -0
- package/core/common/utilities/string-to-color.d.ts +4 -0
- package/core/common/version.d.ts +1 -0
- package/core/components/alerts/alerts.component.d.ts +11 -0
- package/core/components/app-shell/app-shell.component.d.ts +41 -0
- package/core/components/base-nav/base-nav.component.d.ts +30 -0
- package/core/components/breadcrumb/breadcrumb.component.d.ts +27 -0
- package/core/components/channel-switcher/channel-switcher.component.d.ts +21 -0
- package/core/components/main-nav/main-nav.component.d.ts +22 -0
- package/core/components/notification/notification.component.d.ts +37 -0
- package/core/components/overlay-host/overlay-host.component.d.ts +12 -0
- package/core/components/settings-nav/settings-nav.component.d.ts +11 -0
- package/core/components/theme-switcher/theme-switcher.component.d.ts +16 -0
- package/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.d.ts +30 -0
- package/core/components/user-menu/user-menu.component.d.ts +12 -0
- package/core/core.module.d.ts +39 -0
- package/core/data/check-jobs-link.d.ts +19 -0
- package/core/data/client-state/client-defaults.d.ts +32 -0
- package/core/data/client-state/client-resolvers.d.ts +12 -0
- package/core/data/data.module.d.ts +17 -0
- package/core/data/definitions/administrator-definitions.d.ts +14 -0
- package/core/data/definitions/auth-definitions.d.ts +4 -0
- package/core/data/definitions/client-definitions.d.ts +17 -0
- package/core/data/definitions/collection-definitions.d.ts +13 -0
- package/core/data/definitions/customer-definitions.d.ts +23 -0
- package/core/data/definitions/facet-definitions.d.ts +13 -0
- package/core/data/definitions/order-definitions.d.ts +39 -0
- package/core/data/definitions/product-definitions.d.ts +49 -0
- package/core/data/definitions/promotion-definitions.d.ts +6 -0
- package/core/data/definitions/settings-definitions.d.ts +69 -0
- package/core/data/definitions/shared-definitions.d.ts +3 -0
- package/core/data/definitions/shipping-definitions.d.ts +8 -0
- package/core/data/omit-typename-link.d.ts +11 -0
- package/core/data/providers/administrator-data.service.d.ts +19 -0
- package/core/data/providers/auth-data.service.d.ts +9 -0
- package/core/data/providers/base-data.service.d.ts +26 -0
- package/core/data/providers/client-data.service.d.ts +26 -0
- package/core/data/providers/collection-data.service.d.ts +25 -0
- package/core/data/providers/customer-data.service.d.ts +36 -0
- package/core/data/providers/data.service.d.ts +86 -0
- package/core/data/providers/facet-data.service.d.ts +19 -0
- package/core/data/providers/fetch-adapter.d.ts +14 -0
- package/core/data/providers/interceptor.d.ts +49 -0
- package/core/data/providers/order-data.service.d.ts +48 -0
- package/core/data/providers/product-data.service.d.ts +86 -0
- package/core/data/providers/promotion-data.service.d.ts +11 -0
- package/core/data/providers/settings-data.service.d.ts +74 -0
- package/core/data/providers/shipping-method-data.service.d.ts +17 -0
- package/core/data/query-result.d.ts +43 -0
- package/core/data/server-config.d.ts +39 -0
- package/core/data/utils/add-custom-fields.d.ts +7 -0
- package/core/data/utils/get-server-location.d.ts +4 -0
- package/core/data/utils/is-entity-create-or-update-mutation.d.ts +6 -0
- package/core/data/utils/remove-readonly-custom-fields.d.ts +17 -0
- package/core/data/utils/transform-relation-custom-field-inputs.d.ts +8 -0
- package/core/extension/add-action-bar-dropdown-menu-item.d.ts +25 -0
- package/core/extension/add-action-bar-item.d.ts +21 -0
- package/core/extension/add-nav-menu-item.d.ts +56 -0
- package/core/extension/components/angular-route.component.d.ts +26 -0
- package/core/extension/components/route.component.d.ts +20 -0
- package/core/extension/providers/page-metadata.service.d.ts +9 -0
- package/core/extension/register-alert.d.ts +11 -0
- package/core/extension/register-bulk-action.d.ts +49 -0
- package/core/extension/register-custom-detail-component.d.ts +55 -0
- package/core/extension/register-dashboard-widget.d.ts +17 -0
- package/core/extension/register-data-table-component.d.ts +45 -0
- package/core/extension/register-form-input-component.d.ts +51 -0
- package/core/extension/register-history-entry-component.d.ts +66 -0
- package/core/extension/register-page-tab.d.ts +23 -0
- package/core/extension/register-route-component.d.ts +109 -0
- package/core/extension/types.d.ts +11 -0
- package/core/index.d.ts +5 -0
- package/core/providers/alerts/alerts.service.d.ts +150 -0
- package/core/providers/auth/auth.service.d.ts +40 -0
- package/core/providers/breadcrumb/breadcrumb.service.d.ts +39 -0
- package/core/providers/bulk-action-registry/bulk-action-registry.service.d.ts +9 -0
- package/core/providers/bulk-action-registry/bulk-action-types.d.ts +149 -0
- package/core/providers/channel/channel.service.d.ts +16 -0
- package/core/providers/component-registry/component-registry.service.d.ts +13 -0
- package/core/providers/currency/currency.service.d.ts +10 -0
- package/core/providers/custom-detail-component/custom-detail-component-types.d.ts +26 -0
- package/core/providers/custom-detail-component/custom-detail-component.service.d.ts +9 -0
- package/core/providers/custom-field-component/custom-field-component.service.d.ts +25 -0
- package/core/providers/custom-history-entry-component/history-entry-component-types.d.ts +81 -0
- package/core/providers/custom-history-entry-component/history-entry-component.service.d.ts +10 -0
- package/core/providers/dashboard-widget/dashboard-widget-types.d.ts +56 -0
- package/core/providers/dashboard-widget/dashboard-widget.service.d.ts +24 -0
- package/core/providers/data-table/data-table-filter-collection.d.ts +48 -0
- package/core/providers/data-table/data-table-filter.d.ts +108 -0
- package/core/providers/data-table/data-table-sort-collection.d.ts +24 -0
- package/core/providers/data-table/data-table-sort.d.ts +14 -0
- package/core/providers/guard/auth.guard.d.ts +17 -0
- package/core/providers/health-check/health-check.service.d.ts +40 -0
- package/core/providers/i18n/custom-http-loader.d.ts +21 -0
- package/core/providers/i18n/custom-message-format-compiler.d.ts +15 -0
- package/core/providers/i18n/i18n.service.d.ts +39 -0
- package/core/providers/job-queue/job-queue.service.d.ts +22 -0
- package/core/providers/local-storage/local-storage.service.d.ts +66 -0
- package/core/providers/localization/localization.service.d.ts +21 -0
- package/core/providers/modal/modal.service.d.ts +67 -0
- package/core/providers/modal/modal.types.d.ts +69 -0
- package/core/providers/nav-builder/nav-builder-types.d.ts +279 -0
- package/core/providers/nav-builder/nav-builder.service.d.ts +64 -0
- package/core/providers/notification/notification.service.d.ts +105 -0
- package/core/providers/overlay-host/overlay-host.service.d.ts +25 -0
- package/core/providers/page/page.service.d.ts +61 -0
- package/core/providers/permissions/permissions.service.d.ts +26 -0
- package/core/public_api.d.ts +313 -0
- package/core/shared/components/action-bar/action-bar.component.d.ts +17 -0
- package/core/shared/components/action-bar-dropdown-menu/action-bar-dropdown-menu.component.d.ts +15 -0
- package/core/shared/components/action-bar-items/action-bar-base.component.d.ts +29 -0
- package/core/shared/components/action-bar-items/action-bar-items.component.d.ts +11 -0
- package/core/shared/components/address-form/address-form.component.d.ts +10 -0
- package/core/shared/components/affixed-input/affixed-input.component.d.ts +10 -0
- package/core/shared/components/affixed-input/percentage-suffix-input.component.d.ts +22 -0
- package/core/shared/components/asset-file-input/asset-file-input.component.d.ts +39 -0
- package/core/shared/components/asset-gallery/asset-gallery.component.d.ts +97 -0
- package/core/shared/components/asset-gallery/asset-gallery.types.d.ts +3 -0
- package/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.d.ts +60 -0
- package/core/shared/components/asset-preview/asset-preview.component.d.ts +61 -0
- package/core/shared/components/asset-preview-dialog/asset-preview-dialog.component.d.ts +22 -0
- package/core/shared/components/asset-preview-links/asset-preview-links.component.d.ts +8 -0
- package/core/shared/components/asset-search-input/asset-search-input.component.d.ts +26 -0
- package/core/shared/components/assets/assets.component.d.ts +36 -0
- package/core/shared/components/assign-to-channel-dialog/assign-to-channel-dialog.component.d.ts +28 -0
- package/core/shared/components/bulk-action-menu/bulk-action-menu.component.d.ts +34 -0
- package/core/shared/components/card/card.component.d.ts +13 -0
- package/core/shared/components/channel-assignment-control/channel-assignment-control.component.d.ts +32 -0
- package/core/shared/components/channel-badge/channel-badge.component.d.ts +7 -0
- package/core/shared/components/chart/chart.component.d.ts +28 -0
- package/core/shared/components/chart/tooltip-plugin.d.ts +21 -0
- package/core/shared/components/chip/chip.component.d.ts +38 -0
- package/core/shared/components/configurable-input/configurable-input.component.d.ts +43 -0
- package/core/shared/components/currency-code-selector/currency-code-selector.component.d.ts +21 -0
- package/core/shared/components/currency-input/currency-input.component.d.ts +53 -0
- package/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.d.ts +20 -0
- package/core/shared/components/custom-field-control/custom-field-control.component.d.ts +31 -0
- package/core/shared/components/customer-label/customer-label.component.d.ts +7 -0
- package/core/shared/components/data-table/data-table-column.component.d.ts +11 -0
- package/core/shared/components/data-table/data-table.component.d.ts +107 -0
- package/core/shared/components/data-table-2/data-table-column.component.d.ts +25 -0
- package/core/shared/components/data-table-2/data-table-custom-component.service.d.ts +52 -0
- package/core/shared/components/data-table-2/data-table-custom-field-column.component.d.ts +18 -0
- package/core/shared/components/data-table-2/data-table-search.component.d.ts +10 -0
- package/core/shared/components/data-table-2/data-table2.component.d.ts +134 -0
- package/core/shared/components/data-table-column-picker/data-table-column-picker.component.d.ts +19 -0
- package/core/shared/components/data-table-filter-label/data-table-filter-label.component.d.ts +11 -0
- package/core/shared/components/data-table-filter-presets/add-filter-preset-button.component.d.ts +25 -0
- package/core/shared/components/data-table-filter-presets/data-table-filter-presets.component.d.ts +30 -0
- package/core/shared/components/data-table-filter-presets/filter-preset.service.d.ts +34 -0
- package/core/shared/components/data-table-filter-presets/rename-filter-preset-dialog.component.d.ts +9 -0
- package/core/shared/components/data-table-filters/custom-filter-component.directive.d.ts +8 -0
- package/core/shared/components/data-table-filters/data-table-filters.component.d.ts +30 -0
- package/core/shared/components/datetime-picker/constants.d.ts +5 -0
- package/core/shared/components/datetime-picker/datetime-picker.component.d.ts +100 -0
- package/core/shared/components/datetime-picker/datetime-picker.service.d.ts +37 -0
- package/core/shared/components/datetime-picker/types.d.ts +11 -0
- package/core/shared/components/dropdown/dropdown-item.directive.d.ts +9 -0
- package/core/shared/components/dropdown/dropdown-menu.component.d.ts +42 -0
- package/core/shared/components/dropdown/dropdown-trigger.directive.d.ts +11 -0
- package/core/shared/components/dropdown/dropdown.component.d.ts +39 -0
- package/core/shared/components/duplicate-entity-dialog/duplicate-entity-dialog.component.d.ts +33 -0
- package/core/shared/components/duplicate-entity-dialog/duplicate-entity-dialog.graphql.d.ts +2 -0
- package/core/shared/components/edit-note-dialog/edit-note-dialog.component.d.ts +18 -0
- package/core/shared/components/empty-placeholder/empty-placeholder.component.d.ts +6 -0
- package/core/shared/components/entity-info/entity-info.component.d.ts +11 -0
- package/core/shared/components/extension-host/extension-host-config.d.ts +9 -0
- package/core/shared/components/extension-host/extension-host.component.d.ts +28 -0
- package/core/shared/components/extension-host/extension-host.service.d.ts +23 -0
- package/core/shared/components/extension-host/host-external-frame.d.ts +28 -0
- package/core/shared/components/facet-value-chip/facet-value-chip.component.d.ts +11 -0
- package/core/shared/components/facet-value-selector/facet-value-selector.component.d.ts +49 -0
- package/core/shared/components/focal-point-control/focal-point-control.component.d.ts +24 -0
- package/core/shared/components/form-field/form-field-control.directive.d.ts +15 -0
- package/core/shared/components/form-field/form-field.component.d.ts +32 -0
- package/core/shared/components/form-item/form-item.component.d.ts +11 -0
- package/core/shared/components/formatted-address/formatted-address.component.d.ts +13 -0
- package/core/shared/components/help-tooltip/help-tooltip.component.d.ts +7 -0
- package/core/shared/components/history-entry-detail/history-entry-detail.component.d.ts +5 -0
- package/core/shared/components/items-per-page-controls/items-per-page-controls.component.d.ts +11 -0
- package/core/shared/components/labeled-data/labeled-data.component.d.ts +6 -0
- package/core/shared/components/language-code-selector/language-code-selector.component.d.ts +20 -0
- package/core/shared/components/language-selector/language-selector.component.d.ts +11 -0
- package/core/shared/components/localized-text/localized-text.component.d.ts +13 -0
- package/core/shared/components/manage-tags-dialog/manage-tags-dialog.component.d.ts +24 -0
- package/core/shared/components/modal-dialog/dialog-buttons.directive.d.ts +14 -0
- package/core/shared/components/modal-dialog/dialog-component-outlet.component.d.ts +14 -0
- package/core/shared/components/modal-dialog/dialog-title.directive.d.ts +14 -0
- package/core/shared/components/modal-dialog/modal-dialog.component.d.ts +44 -0
- package/core/shared/components/object-tree/object-tree.component.d.ts +32 -0
- package/core/shared/components/order-state-label/order-state-label.component.d.ts +17 -0
- package/core/shared/components/page/page.component.d.ts +21 -0
- package/core/shared/components/page-block/page-block.component.d.ts +5 -0
- package/core/shared/components/page-body/page-body.component.d.ts +5 -0
- package/core/shared/components/page-detail-layout/page-detail-layout.component.d.ts +5 -0
- package/core/shared/components/page-detail-layout/page-detail-sidebar.component.d.ts +5 -0
- package/core/shared/components/page-entity-info/page-entity-info.component.d.ts +10 -0
- package/core/shared/components/page-header/page-header.component.d.ts +5 -0
- package/core/shared/components/page-header-description/page-header-description.component.d.ts +5 -0
- package/core/shared/components/page-header-tabs/page-header-tabs.component.d.ts +14 -0
- package/core/shared/components/page-title/page-title.component.d.ts +16 -0
- package/core/shared/components/pagination-controls/pagination-controls.component.d.ts +11 -0
- package/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.d.ts +38 -0
- package/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.graphql.d.ts +1 -0
- package/core/shared/components/product-search-input/product-search-input.component.d.ts +28 -0
- package/core/shared/components/product-variant-selector/product-variant-selector.component.d.ts +58 -0
- package/core/shared/components/radio-card/radio-card-fieldset.component.d.ts +24 -0
- package/core/shared/components/radio-card/radio-card.component.d.ts +22 -0
- package/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.d.ts +21 -0
- package/core/shared/components/rich-text-editor/link-dialog/link-dialog.component.d.ts +19 -0
- package/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.d.ts +31 -0
- package/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.d.ts +34 -0
- package/core/shared/components/rich-text-editor/prosemirror/custom-nodes.d.ts +5 -0
- package/core/shared/components/rich-text-editor/prosemirror/inputrules.d.ts +8 -0
- package/core/shared/components/rich-text-editor/prosemirror/keymap.d.ts +3 -0
- package/core/shared/components/rich-text-editor/prosemirror/menu/links.d.ts +4 -0
- package/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.d.ts +16 -0
- package/core/shared/components/rich-text-editor/prosemirror/menu/menu-plugin.d.ts +9 -0
- package/core/shared/components/rich-text-editor/prosemirror/menu/menu.d.ts +3 -0
- package/core/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.d.ts +14 -0
- package/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.d.ts +7 -0
- package/core/shared/components/rich-text-editor/prosemirror/plugins/link-select-plugin.d.ts +5 -0
- package/core/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.d.ts +7 -0
- package/core/shared/components/rich-text-editor/prosemirror/plugins/tables-plugin.d.ts +13 -0
- package/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.d.ts +34 -0
- package/core/shared/components/rich-text-editor/prosemirror/types.d.ts +9 -0
- package/core/shared/components/rich-text-editor/prosemirror/utils.d.ts +9 -0
- package/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.d.ts +21 -0
- package/core/shared/components/rich-text-editor/rich-text-editor.component.d.ts +42 -0
- package/core/shared/components/select-toggle/select-toggle.component.d.ts +15 -0
- package/core/shared/components/simple-dialog/simple-dialog.component.d.ts +14 -0
- package/core/shared/components/split-view/split-view.component.d.ts +23 -0
- package/core/shared/components/split-view/split-view.directive.d.ts +13 -0
- package/core/shared/components/status-badge/status-badge.component.d.ts +6 -0
- package/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.d.ts +25 -0
- package/core/shared/components/table-row-action/table-row-action.component.d.ts +12 -0
- package/core/shared/components/tag-selector/tag-selector.component.d.ts +24 -0
- package/core/shared/components/timeline-entry/timeline-entry.component.d.ts +19 -0
- package/core/shared/components/title-input/title-input.component.d.ts +6 -0
- package/core/shared/components/ui-extension-point/ui-extension-point.component.d.ts +27 -0
- package/core/shared/components/zone-selector/zone-selector.component.d.ts +51 -0
- package/core/shared/directives/disabled.directive.d.ts +14 -0
- package/core/shared/directives/if-default-channel-active.directive.d.ts +16 -0
- package/core/shared/directives/if-directive-base.d.ts +27 -0
- package/core/shared/directives/if-multichannel.directive.d.ts +28 -0
- package/core/shared/directives/if-permissions.directive.d.ts +37 -0
- package/core/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.d.ts +19 -0
- package/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.d.ts +30 -0
- package/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.d.ts +22 -0
- package/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.d.ts +23 -0
- package/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.d.ts +28 -0
- package/core/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.d.ts +25 -0
- package/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.d.ts +33 -0
- package/core/shared/dynamic-form-inputs/date-form-input/date-form-input.component.d.ts +22 -0
- package/core/shared/dynamic-form-inputs/default-form-inputs.d.ts +19 -0
- package/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.d.ts +58 -0
- package/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.d.ts +23 -0
- package/core/shared/dynamic-form-inputs/number-form-input/number-form-input.component.d.ts +24 -0
- package/core/shared/dynamic-form-inputs/password-form-input/password-form-input.component.d.ts +19 -0
- package/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.d.ts +25 -0
- package/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.d.ts +34 -0
- package/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.d.ts +23 -0
- package/core/shared/dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component.d.ts +25 -0
- package/core/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.d.ts +18 -0
- package/core/shared/dynamic-form-inputs/relation-form-input/product/relation-product-input.component.d.ts +26 -0
- package/core/shared/dynamic-form-inputs/relation-form-input/product-variant/relation-product-variant-input.component.d.ts +26 -0
- package/core/shared/dynamic-form-inputs/relation-form-input/relation-card/relation-card.component.d.ts +23 -0
- package/core/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.d.ts +22 -0
- package/core/shared/dynamic-form-inputs/relation-form-input/relation-selector-dialog/relation-selector-dialog.component.d.ts +10 -0
- package/core/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.d.ts +19 -0
- package/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.d.ts +30 -0
- package/core/shared/dynamic-form-inputs/text-form-input/text-form-input.component.d.ts +21 -0
- package/core/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.d.ts +20 -0
- package/core/shared/pipes/asset-preview.pipe.d.ts +22 -0
- package/core/shared/pipes/channel-label.pipe.d.ts +7 -0
- package/core/shared/pipes/custom-field-description.pipe.d.ts +11 -0
- package/core/shared/pipes/custom-field-label.pipe.d.ts +13 -0
- package/core/shared/pipes/duration.pipe.d.ts +22 -0
- package/core/shared/pipes/file-size.pipe.d.ts +18 -0
- package/core/shared/pipes/has-permission.pipe.d.ts +27 -0
- package/core/shared/pipes/locale-base.pipe.d.ts +21 -0
- package/core/shared/pipes/locale-currency-name.pipe.d.ts +21 -0
- package/core/shared/pipes/locale-currency.pipe.d.ts +25 -0
- package/core/shared/pipes/locale-date.pipe.d.ts +23 -0
- package/core/shared/pipes/locale-language-name.pipe.d.ts +21 -0
- package/core/shared/pipes/locale-region-name.pipe.d.ts +21 -0
- package/core/shared/pipes/sentence-case.pipe.d.ts +10 -0
- package/core/shared/pipes/sort.pipe.d.ts +12 -0
- package/core/shared/pipes/state-i18n-token.pipe.d.ts +9 -0
- package/core/shared/pipes/string-to-color.pipe.d.ts +7 -0
- package/core/shared/pipes/time-ago.pipe.d.ts +21 -0
- package/core/shared/providers/routing/can-deactivate-detail-guard.d.ts +11 -0
- package/core/shared/shared.module.d.ts +168 -0
- package/core/validators/unicode-pattern.validator.d.ts +2 -0
- package/customer/components/add-customer-to-group-dialog/add-customer-to-group-dialog.component.d.ts +22 -0
- package/customer/components/address-card/address-card.component.d.ts +28 -0
- package/customer/components/address-detail-dialog/address-detail-dialog.component.d.ts +17 -0
- package/customer/components/customer-detail/customer-detail.component.d.ts +70 -0
- package/customer/components/customer-group-detail/customer-group-detail.component.d.ts +26 -0
- package/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.d.ts +24 -0
- package/customer/components/customer-group-list/customer-group-list-bulk-actions.d.ts +1 -0
- package/customer/components/customer-group-list/customer-group-list.component.d.ts +29 -0
- package/customer/components/customer-group-member-list/customer-group-member-list-bulk-actions.d.ts +3 -0
- package/customer/components/customer-group-member-list/customer-group-member-list.component.d.ts +39 -0
- package/customer/components/customer-history/customer-history-entry-host.component.d.ts +18 -0
- package/customer/components/customer-history/customer-history.component.d.ts +51 -0
- package/customer/components/customer-list/customer-list-bulk-actions.d.ts +1 -0
- package/customer/components/customer-list/customer-list.component.d.ts +12 -0
- package/customer/components/customer-status-label/customer-status-label.component.d.ts +7 -0
- package/customer/components/select-customer-group-dialog/select-customer-group-dialog.component.d.ts +16 -0
- package/customer/customer.module.d.ts +24 -0
- package/customer/customer.routes.d.ts +4 -0
- package/customer/index.d.ts +5 -0
- package/customer/public_api.d.ts +18 -0
- package/dashboard/components/dashboard/dashboard.component.d.ts +34 -0
- package/dashboard/components/dashboard-widget/dashboard-widget.component.d.ts +13 -0
- package/dashboard/dashboard.module.d.ts +13 -0
- package/dashboard/dashboard.routes.d.ts +2 -0
- package/dashboard/default-widgets.d.ts +5 -0
- package/dashboard/index.d.ts +5 -0
- package/dashboard/public_api.d.ts +10 -0
- package/dashboard/widgets/latest-orders-widget/latest-orders-widget.component.d.ts +18 -0
- package/dashboard/widgets/order-chart-widget/order-chart-widget.component.d.ts +17 -0
- package/dashboard/widgets/order-summary-widget/order-summary-widget.component.d.ts +32 -0
- package/dashboard/widgets/test-widget/test-widget.component.d.ts +10 -0
- package/dashboard/widgets/welcome-widget/welcome-widget.component.d.ts +22 -0
- package/esm2022/catalog/catalog.module.mjs +331 -0
- package/esm2022/catalog/catalog.routes.mjs +144 -0
- package/esm2022/catalog/components/apply-facet-dialog/apply-facet-dialog.component.mjs +30 -0
- package/esm2022/catalog/components/asset-detail/asset-detail.component.mjs +77 -0
- package/esm2022/catalog/components/asset-list/asset-list.component.mjs +120 -0
- package/esm2022/catalog/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.mjs +102 -0
- package/esm2022/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.mjs +83 -0
- package/esm2022/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.graphql.mjs +69 -0
- package/esm2022/catalog/components/collection-contents/collection-contents.component.mjs +124 -0
- package/esm2022/catalog/components/collection-data-table/collection-data-table.component.mjs +95 -0
- package/esm2022/catalog/components/collection-detail/collection-detail.component.mjs +263 -0
- package/esm2022/catalog/components/collection-list/collection-breadcrumb.pipe.mjs +19 -0
- package/esm2022/catalog/components/collection-list/collection-list-bulk-actions.mjs +97 -0
- package/esm2022/catalog/components/collection-list/collection-list.component.mjs +157 -0
- package/esm2022/catalog/components/collection-tree/array-to-tree.mjs +56 -0
- package/esm2022/catalog/components/collection-tree/collection-tree-node.component.mjs +125 -0
- package/esm2022/catalog/components/collection-tree/collection-tree.component.mjs +49 -0
- package/esm2022/catalog/components/collection-tree/collection-tree.service.mjs +68 -0
- package/esm2022/catalog/components/collection-tree/collection-tree.types.mjs +2 -0
- package/esm2022/catalog/components/confirm-variant-deletion-dialog/confirm-variant-deletion-dialog.component.mjs +23 -0
- package/esm2022/catalog/components/create-facet-value-dialog/create-facet-value-dialog.component.mjs +44 -0
- package/esm2022/catalog/components/create-product-option-group-dialog/create-product-option-group-dialog.component.mjs +44 -0
- package/esm2022/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.mjs +80 -0
- package/esm2022/catalog/components/facet-detail/facet-detail.component.mjs +338 -0
- package/esm2022/catalog/components/facet-list/facet-list-bulk-actions.mjs +148 -0
- package/esm2022/catalog/components/facet-list/facet-list.component.mjs +91 -0
- package/esm2022/catalog/components/generate-product-variants/generate-product-variants.component.mjs +133 -0
- package/esm2022/catalog/components/move-collections-dialog/move-collections-dialog.component.mjs +100 -0
- package/esm2022/catalog/components/option-value-input/option-value-input.component.mjs +156 -0
- package/esm2022/catalog/components/product-detail/product-detail.component.mjs +321 -0
- package/esm2022/catalog/components/product-list/product-list-bulk-actions.mjs +144 -0
- package/esm2022/catalog/components/product-list/product-list.component.mjs +159 -0
- package/esm2022/catalog/components/product-list/product-list.graphql.mjs +37 -0
- package/esm2022/catalog/components/product-options-editor/product-options-editor.component.mjs +207 -0
- package/esm2022/catalog/components/product-variant-detail/product-variant-detail.component.mjs +266 -0
- package/esm2022/catalog/components/product-variant-detail/product-variant-detail.graphql.mjs +129 -0
- package/esm2022/catalog/components/product-variant-list/product-variant-list-bulk-actions.mjs +123 -0
- package/esm2022/catalog/components/product-variant-list/product-variant-list.component.mjs +118 -0
- package/esm2022/catalog/components/product-variant-list/product-variant-list.graphql.mjs +51 -0
- package/esm2022/catalog/components/product-variant-quick-jump/product-variant-quick-jump.component.mjs +53 -0
- package/esm2022/catalog/components/product-variants-editor/product-variants-editor.component.mjs +292 -0
- package/esm2022/catalog/components/product-variants-table/product-variants-table.component.mjs +72 -0
- package/esm2022/catalog/components/update-product-option-dialog/update-product-option-dialog.component.mjs +64 -0
- package/esm2022/catalog/components/variant-price-detail/variant-price-detail.component.mjs +59 -0
- package/esm2022/catalog/components/variant-price-strategy-detail/variant-price-strategy-detail.component.mjs +33 -0
- package/esm2022/catalog/deenruv-admin-ui-catalog.mjs +5 -0
- package/esm2022/catalog/providers/product-detail/product-detail.service.mjs +236 -0
- package/esm2022/catalog/providers/product-detail/replace-last.mjs +18 -0
- package/esm2022/catalog/providers/routing/product-variants-resolver.mjs +28 -0
- package/esm2022/catalog/public_api.mjs +50 -0
- package/esm2022/core/app.component.mjs +94 -0
- package/esm2022/core/app.component.module.mjs +19 -0
- package/esm2022/core/app.config.mjs +11 -0
- package/esm2022/core/common/base-detail.component.mjs +208 -0
- package/esm2022/core/common/base-entity-resolver.mjs +60 -0
- package/esm2022/core/common/base-list.component.mjs +186 -0
- package/esm2022/core/common/component-registry-types.mjs +2 -0
- package/esm2022/core/common/deactivate-aware.mjs +2 -0
- package/esm2022/core/common/detail-breadcrumb.mjs +26 -0
- package/esm2022/core/common/generated-types.mjs +1371 -0
- package/esm2022/core/common/introspection-result-wrapper.mjs +3 -0
- package/esm2022/core/common/introspection-result.mjs +329 -0
- package/esm2022/core/common/single-search-selection-model.mjs +51 -0
- package/esm2022/core/common/title-setter.mjs +14 -0
- package/esm2022/core/common/utilities/bulk-action-utils.mjs +271 -0
- package/esm2022/core/common/utilities/configurable-operation-utils.mjs +116 -0
- package/esm2022/core/common/utilities/create-updated-translatable.mjs +58 -0
- package/esm2022/core/common/utilities/custom-field-default-value.mjs +28 -0
- package/esm2022/core/common/utilities/find-translation.mjs +9 -0
- package/esm2022/core/common/utilities/get-default-ui-language.mjs +12 -0
- package/esm2022/core/common/utilities/interpolate-description.mjs +27 -0
- package/esm2022/core/common/utilities/selection-manager.mjs +96 -0
- package/esm2022/core/common/utilities/string-to-color.mjs +36 -0
- package/esm2022/core/common/version.mjs +3 -0
- package/esm2022/core/components/alerts/alerts.component.mjs +26 -0
- package/esm2022/core/components/app-shell/app-shell.component.mjs +104 -0
- package/esm2022/core/components/base-nav/base-nav.component.mjs +298 -0
- package/esm2022/core/components/breadcrumb/breadcrumb.component.mjs +33 -0
- package/esm2022/core/components/channel-switcher/channel-switcher.component.mjs +50 -0
- package/esm2022/core/components/main-nav/main-nav.component.mjs +62 -0
- package/esm2022/core/components/notification/notification.component.mjs +85 -0
- package/esm2022/core/components/overlay-host/overlay-host.component.mjs +22 -0
- package/esm2022/core/components/settings-nav/settings-nav.component.mjs +27 -0
- package/esm2022/core/components/theme-switcher/theme-switcher.component.mjs +39 -0
- package/esm2022/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.mjs +75 -0
- package/esm2022/core/components/user-menu/user-menu.component.mjs +37 -0
- package/esm2022/core/core.module.mjs +165 -0
- package/esm2022/core/data/check-jobs-link.mjs +32 -0
- package/esm2022/core/data/client-state/client-defaults.mjs +33 -0
- package/esm2022/core/data/client-state/client-resolvers.mjs +136 -0
- package/esm2022/core/data/data.module.mjs +135 -0
- package/esm2022/core/data/definitions/administrator-definitions.mjs +135 -0
- package/esm2022/core/data/definitions/auth-definitions.mjs +40 -0
- package/esm2022/core/data/definitions/client-definitions.mjs +137 -0
- package/esm2022/core/data/definitions/collection-definitions.mjs +184 -0
- package/esm2022/core/data/definitions/customer-definitions.mjs +261 -0
- package/esm2022/core/data/definitions/facet-definitions.mjs +155 -0
- package/esm2022/core/data/definitions/order-definitions.mjs +594 -0
- package/esm2022/core/data/definitions/product-definitions.mjs +828 -0
- package/esm2022/core/data/definitions/promotion-definitions.mjs +76 -0
- package/esm2022/core/data/definitions/settings-definitions.mjs +735 -0
- package/esm2022/core/data/definitions/shared-definitions.mjs +33 -0
- package/esm2022/core/data/definitions/shipping-definitions.mjs +98 -0
- package/esm2022/core/data/omit-typename-link.mjs +20 -0
- package/esm2022/core/data/providers/administrator-data.service.mjs +53 -0
- package/esm2022/core/data/providers/auth-data.service.mjs +20 -0
- package/esm2022/core/data/providers/base-data.service.mjs +66 -0
- package/esm2022/core/data/providers/client-data.service.mjs +82 -0
- package/esm2022/core/data/providers/collection-data.service.mjs +84 -0
- package/esm2022/core/data/providers/customer-data.service.mjs +125 -0
- package/esm2022/core/data/providers/data.service.mjs +90 -0
- package/esm2022/core/data/providers/facet-data.service.mjs +63 -0
- package/esm2022/core/data/providers/fetch-adapter.mjs +34 -0
- package/esm2022/core/data/providers/interceptor.mjs +162 -0
- package/esm2022/core/data/providers/order-data.service.mjs +135 -0
- package/esm2022/core/data/providers/product-data.service.mjs +257 -0
- package/esm2022/core/data/providers/promotion-data.service.mjs +50 -0
- package/esm2022/core/data/providers/settings-data.service.mjs +246 -0
- package/esm2022/core/data/providers/shipping-method-data.service.mjs +58 -0
- package/esm2022/core/data/query-result.mjs +77 -0
- package/esm2022/core/data/server-config.mjs +78 -0
- package/esm2022/core/data/utils/add-custom-fields.mjs +84 -0
- package/esm2022/core/data/utils/get-server-location.mjs +17 -0
- package/esm2022/core/data/utils/is-entity-create-or-update-mutation.mjs +45 -0
- package/esm2022/core/data/utils/remove-readonly-custom-fields.mjs +30 -0
- package/esm2022/core/data/utils/transform-relation-custom-field-inputs.mjs +46 -0
- package/esm2022/core/deenruv-admin-ui-core.mjs +5 -0
- package/esm2022/core/extension/add-action-bar-dropdown-menu-item.mjs +35 -0
- package/esm2022/core/extension/add-action-bar-item.mjs +31 -0
- package/esm2022/core/extension/add-nav-menu-item.mjs +75 -0
- package/esm2022/core/extension/components/angular-route.component.mjs +67 -0
- package/esm2022/core/extension/components/route.component.mjs +80 -0
- package/esm2022/core/extension/providers/page-metadata.service.mjs +20 -0
- package/esm2022/core/extension/register-alert.mjs +22 -0
- package/esm2022/core/extension/register-bulk-action.mjs +59 -0
- package/esm2022/core/extension/register-custom-detail-component.mjs +65 -0
- package/esm2022/core/extension/register-dashboard-widget.mjs +36 -0
- package/esm2022/core/extension/register-data-table-component.mjs +51 -0
- package/esm2022/core/extension/register-form-input-component.mjs +61 -0
- package/esm2022/core/extension/register-history-entry-component.mjs +76 -0
- package/esm2022/core/extension/register-page-tab.mjs +36 -0
- package/esm2022/core/extension/register-route-component.mjs +95 -0
- package/esm2022/core/extension/types.mjs +2 -0
- package/esm2022/core/providers/alerts/alerts.service.mjs +114 -0
- package/esm2022/core/providers/auth/auth.service.mjs +124 -0
- package/esm2022/core/providers/breadcrumb/breadcrumb.service.mjs +109 -0
- package/esm2022/core/providers/bulk-action-registry/bulk-action-registry.service.mjs +28 -0
- package/esm2022/core/providers/bulk-action-registry/bulk-action-types.mjs +2 -0
- package/esm2022/core/providers/channel/channel.service.mjs +39 -0
- package/esm2022/core/providers/component-registry/component-registry.service.mjs +25 -0
- package/esm2022/core/providers/currency/currency.service.mjs +21 -0
- package/esm2022/core/providers/custom-detail-component/custom-detail-component-types.mjs +2 -0
- package/esm2022/core/providers/custom-detail-component/custom-detail-component.service.mjs +27 -0
- package/esm2022/core/providers/custom-field-component/custom-field-component.service.mjs +38 -0
- package/esm2022/core/providers/custom-history-entry-component/history-entry-component-types.mjs +2 -0
- package/esm2022/core/providers/custom-history-entry-component/history-entry-component.service.mjs +22 -0
- package/esm2022/core/providers/dashboard-widget/dashboard-widget-types.mjs +2 -0
- package/esm2022/core/providers/dashboard-widget/dashboard-widget.service.mjs +91 -0
- package/esm2022/core/providers/data-table/data-table-filter-collection.mjs +295 -0
- package/esm2022/core/providers/data-table/data-table-filter.mjs +114 -0
- package/esm2022/core/providers/data-table/data-table-sort-collection.mjs +115 -0
- package/esm2022/core/providers/data-table/data-table-sort.mjs +34 -0
- package/esm2022/core/providers/guard/auth.guard.mjs +38 -0
- package/esm2022/core/providers/health-check/health-check.service.mjs +34 -0
- package/esm2022/core/providers/i18n/custom-http-loader.mjs +39 -0
- package/esm2022/core/providers/i18n/custom-message-format-compiler.mjs +31 -0
- package/esm2022/core/providers/i18n/i18n.service.mjs +78 -0
- package/esm2022/core/providers/job-queue/job-queue.service.mjs +91 -0
- package/esm2022/core/providers/local-storage/local-storage.service.mjs +97 -0
- package/esm2022/core/providers/localization/localization.service.mjs +31 -0
- package/esm2022/core/providers/modal/modal.service.mjs +96 -0
- package/esm2022/core/providers/modal/modal.types.mjs +2 -0
- package/esm2022/core/providers/nav-builder/nav-builder-types.mjs +2 -0
- package/esm2022/core/providers/nav-builder/nav-builder.service.mjs +174 -0
- package/esm2022/core/providers/notification/notification.service.mjs +157 -0
- package/esm2022/core/providers/overlay-host/overlay-host.service.mjs +48 -0
- package/esm2022/core/providers/page/page.service.mjs +63 -0
- package/esm2022/core/providers/permissions/permissions.service.mjs +46 -0
- package/esm2022/core/public_api.mjs +315 -0
- package/esm2022/core/shared/components/action-bar/action-bar.component.mjs +54 -0
- package/esm2022/core/shared/components/action-bar-dropdown-menu/action-bar-dropdown-menu.component.mjs +69 -0
- package/esm2022/core/shared/components/action-bar-items/action-bar-base.component.mjs +72 -0
- package/esm2022/core/shared/components/action-bar-items/action-bar-items.component.mjs +50 -0
- package/esm2022/core/shared/components/address-form/address-form.component.mjs +24 -0
- package/esm2022/core/shared/components/affixed-input/affixed-input.component.mjs +19 -0
- package/esm2022/core/shared/components/affixed-input/percentage-suffix-input.component.mjs +86 -0
- package/esm2022/core/shared/components/asset-file-input/asset-file-input.component.mjs +97 -0
- package/esm2022/core/shared/components/asset-gallery/asset-gallery.component.mjs +96 -0
- package/esm2022/core/shared/components/asset-gallery/asset-gallery.types.mjs +2 -0
- package/esm2022/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.mjs +144 -0
- package/esm2022/core/shared/components/asset-preview/asset-preview.component.mjs +229 -0
- package/esm2022/core/shared/components/asset-preview-dialog/asset-preview-dialog.component.mjs +49 -0
- package/esm2022/core/shared/components/asset-preview-links/asset-preview-links.component.mjs +25 -0
- package/esm2022/core/shared/components/asset-search-input/asset-search-input.component.mjs +102 -0
- package/esm2022/core/shared/components/assets/assets.component.mjs +109 -0
- package/esm2022/core/shared/components/assign-to-channel-dialog/assign-to-channel-dialog.component.mjs +56 -0
- package/esm2022/core/shared/components/bulk-action-menu/bulk-action-menu.component.mjs +100 -0
- package/esm2022/core/shared/components/card/card.component.mjs +32 -0
- package/esm2022/core/shared/components/channel-assignment-control/channel-assignment-control.component.mjs +116 -0
- package/esm2022/core/shared/components/channel-badge/channel-badge.component.mjs +19 -0
- package/esm2022/core/shared/components/chart/chart.component.mjs +100 -0
- package/esm2022/core/shared/components/chart/tooltip-plugin.mjs +143 -0
- package/esm2022/core/shared/components/chip/chip.component.mjs +47 -0
- package/esm2022/core/shared/components/configurable-input/configurable-input.component.mjs +161 -0
- package/esm2022/core/shared/components/currency-code-selector/currency-code-selector.component.mjs +64 -0
- package/esm2022/core/shared/components/currency-input/currency-input.component.mjs +155 -0
- package/esm2022/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.mjs +44 -0
- package/esm2022/core/shared/components/custom-field-control/custom-field-control.component.mjs +88 -0
- package/esm2022/core/shared/components/customer-label/customer-label.component.mjs +17 -0
- package/esm2022/core/shared/components/data-table/data-table-column.component.mjs +29 -0
- package/esm2022/core/shared/components/data-table/data-table.component.mjs +177 -0
- package/esm2022/core/shared/components/data-table-2/data-table-column.component.mjs +64 -0
- package/esm2022/core/shared/components/data-table-2/data-table-custom-component.service.mjs +26 -0
- package/esm2022/core/shared/components/data-table-2/data-table-custom-field-column.component.mjs +52 -0
- package/esm2022/core/shared/components/data-table-2/data-table-search.component.mjs +21 -0
- package/esm2022/core/shared/components/data-table-2/data-table2.component.mjs +308 -0
- package/esm2022/core/shared/components/data-table-column-picker/data-table-column-picker.component.mjs +44 -0
- package/esm2022/core/shared/components/data-table-filter-label/data-table-filter-label.component.mjs +32 -0
- package/esm2022/core/shared/components/data-table-filter-presets/add-filter-preset-button.component.mjs +69 -0
- package/esm2022/core/shared/components/data-table-filter-presets/data-table-filter-presets.component.mjs +80 -0
- package/esm2022/core/shared/components/data-table-filter-presets/filter-preset.service.mjs +79 -0
- package/esm2022/core/shared/components/data-table-filter-presets/rename-filter-preset-dialog.component.mjs +20 -0
- package/esm2022/core/shared/components/data-table-filters/custom-filter-component.directive.mjs +16 -0
- package/esm2022/core/shared/components/data-table-filters/data-table-filters.component.mjs +220 -0
- package/esm2022/core/shared/components/datetime-picker/constants.mjs +20 -0
- package/esm2022/core/shared/components/datetime-picker/datetime-picker.component.mjs +226 -0
- package/esm2022/core/shared/components/datetime-picker/datetime-picker.service.mjs +201 -0
- package/esm2022/core/shared/components/datetime-picker/types.mjs +2 -0
- package/esm2022/core/shared/components/dropdown/dropdown-item.directive.mjs +28 -0
- package/esm2022/core/shared/components/dropdown/dropdown-menu.component.mjs +202 -0
- package/esm2022/core/shared/components/dropdown/dropdown-trigger.directive.mjs +25 -0
- package/esm2022/core/shared/components/dropdown/dropdown.component.mjs +58 -0
- package/esm2022/core/shared/components/duplicate-entity-dialog/duplicate-entity-dialog.component.mjs +111 -0
- package/esm2022/core/shared/components/duplicate-entity-dialog/duplicate-entity-dialog.graphql.mjs +38 -0
- package/esm2022/core/shared/components/edit-note-dialog/edit-note-dialog.component.mjs +32 -0
- package/esm2022/core/shared/components/empty-placeholder/empty-placeholder.component.mjs +16 -0
- package/esm2022/core/shared/components/entity-info/entity-info.component.mjs +26 -0
- package/esm2022/core/shared/components/extension-host/extension-host-config.mjs +7 -0
- package/esm2022/core/shared/components/extension-host/extension-host.component.mjs +81 -0
- package/esm2022/core/shared/components/extension-host/extension-host.service.mjs +99 -0
- package/esm2022/core/shared/components/extension-host/host-external-frame.mjs +41 -0
- package/esm2022/core/shared/components/facet-value-chip/facet-value-chip.component.mjs +26 -0
- package/esm2022/core/shared/components/facet-value-selector/facet-value-selector.component.mjs +150 -0
- package/esm2022/core/shared/components/focal-point-control/focal-point-control.component.mjs +71 -0
- package/esm2022/core/shared/components/form-field/form-field-control.directive.mjs +37 -0
- package/esm2022/core/shared/components/form-field/form-field.component.mjs +73 -0
- package/esm2022/core/shared/components/form-item/form-item.component.mjs +21 -0
- package/esm2022/core/shared/components/formatted-address/formatted-address.component.mjs +38 -0
- package/esm2022/core/shared/components/help-tooltip/help-tooltip.component.mjs +16 -0
- package/esm2022/core/shared/components/history-entry-detail/history-entry-detail.component.mjs +16 -0
- package/esm2022/core/shared/components/items-per-page-controls/items-per-page-controls.component.mjs +28 -0
- package/esm2022/core/shared/components/labeled-data/labeled-data.component.mjs +13 -0
- package/esm2022/core/shared/components/language-code-selector/language-code-selector.component.mjs +72 -0
- package/esm2022/core/shared/components/language-selector/language-selector.component.mjs +30 -0
- package/esm2022/core/shared/components/localized-text/localized-text.component.mjs +24 -0
- package/esm2022/core/shared/components/manage-tags-dialog/manage-tags-dialog.component.mjs +61 -0
- package/esm2022/core/shared/components/modal-dialog/dialog-buttons.directive.mjs +23 -0
- package/esm2022/core/shared/components/modal-dialog/dialog-component-outlet.component.mjs +29 -0
- package/esm2022/core/shared/components/modal-dialog/dialog-title.directive.mjs +23 -0
- package/esm2022/core/shared/components/modal-dialog/modal-dialog.component.mjs +69 -0
- package/esm2022/core/shared/components/object-tree/object-tree.component.mjs +56 -0
- package/esm2022/core/shared/components/order-state-label/order-state-label.component.mjs +47 -0
- package/esm2022/core/shared/components/page/page.component.mjs +38 -0
- package/esm2022/core/shared/components/page-block/page-block.component.mjs +11 -0
- package/esm2022/core/shared/components/page-body/page-body.component.mjs +11 -0
- package/esm2022/core/shared/components/page-detail-layout/page-detail-layout.component.mjs +11 -0
- package/esm2022/core/shared/components/page-detail-layout/page-detail-sidebar.component.mjs +15 -0
- package/esm2022/core/shared/components/page-entity-info/page-entity-info.component.mjs +16 -0
- package/esm2022/core/shared/components/page-header/page-header.component.mjs +11 -0
- package/esm2022/core/shared/components/page-header-description/page-header-description.component.mjs +11 -0
- package/esm2022/core/shared/components/page-header-tabs/page-header-tabs.component.mjs +26 -0
- package/esm2022/core/shared/components/page-title/page-title.component.mjs +40 -0
- package/esm2022/core/shared/components/pagination-controls/pagination-controls.component.mjs +26 -0
- package/esm2022/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.mjs +138 -0
- package/esm2022/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.graphql.mjs +44 -0
- package/esm2022/core/shared/components/product-search-input/product-search-input.component.mjs +104 -0
- package/esm2022/core/shared/components/product-variant-selector/product-variant-selector.component.mjs +62 -0
- package/esm2022/core/shared/components/radio-card/radio-card-fieldset.component.mjs +54 -0
- package/esm2022/core/shared/components/radio-card/radio-card.component.mjs +53 -0
- package/esm2022/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.mjs +37 -0
- package/esm2022/core/shared/components/rich-text-editor/link-dialog/link-dialog.component.mjs +35 -0
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.mjs +136 -0
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.mjs +44 -0
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/custom-nodes.mjs +97 -0
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/inputrules.mjs +61 -0
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/keymap.mjs +118 -0
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/menu/links.mjs +69 -0
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.mjs +41 -0
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/menu/menu-plugin.mjs +12 -0
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/menu/menu.mjs +247 -0
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.mjs +16 -0
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.mjs +98 -0
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/plugins/link-select-plugin.mjs +22 -0
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.mjs +96 -0
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/plugins/tables-plugin.mjs +164 -0
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.mjs +155 -0
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/types.mjs +2 -0
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/utils.mjs +26 -0
- package/esm2022/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.mjs +59 -0
- package/esm2022/core/shared/components/rich-text-editor/rich-text-editor.component.mjs +106 -0
- package/esm2022/core/shared/components/select-toggle/select-toggle.component.mjs +35 -0
- package/esm2022/core/shared/components/simple-dialog/simple-dialog.component.mjs +24 -0
- package/esm2022/core/shared/components/split-view/split-view.component.mjs +62 -0
- package/esm2022/core/shared/components/split-view/split-view.directive.mjs +28 -0
- package/esm2022/core/shared/components/status-badge/status-badge.component.mjs +16 -0
- package/esm2022/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.mjs +70 -0
- package/esm2022/core/shared/components/table-row-action/table-row-action.component.mjs +28 -0
- package/esm2022/core/shared/components/tag-selector/tag-selector.component.mjs +60 -0
- package/esm2022/core/shared/components/timeline-entry/timeline-entry.component.mjs +54 -0
- package/esm2022/core/shared/components/title-input/title-input.component.mjs +21 -0
- package/esm2022/core/shared/components/ui-extension-point/ui-extension-point.component.mjs +142 -0
- package/esm2022/core/shared/components/zone-selector/zone-selector.component.mjs +99 -0
- package/esm2022/core/shared/directives/disabled.directive.mjs +41 -0
- package/esm2022/core/shared/directives/if-default-channel-active.directive.mjs +37 -0
- package/esm2022/core/shared/directives/if-directive-base.mjs +73 -0
- package/esm2022/core/shared/directives/if-multichannel.directive.mjs +43 -0
- package/esm2022/core/shared/directives/if-permissions.directive.mjs +66 -0
- package/esm2022/core/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.mjs +23 -0
- package/esm2022/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.mjs +62 -0
- package/esm2022/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.mjs +59 -0
- package/esm2022/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.mjs +85 -0
- package/esm2022/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.mjs +45 -0
- package/esm2022/core/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.mjs +32 -0
- package/esm2022/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.mjs +47 -0
- package/esm2022/core/shared/dynamic-form-inputs/date-form-input/date-form-input.component.mjs +32 -0
- package/esm2022/core/shared/dynamic-form-inputs/default-form-inputs.mjs +44 -0
- package/esm2022/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.mjs +271 -0
- package/esm2022/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.mjs +34 -0
- package/esm2022/core/shared/dynamic-form-inputs/number-form-input/number-form-input.component.mjs +39 -0
- package/esm2022/core/shared/dynamic-form-inputs/password-form-input/password-form-input.component.mjs +21 -0
- package/esm2022/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.mjs +49 -0
- package/esm2022/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.mjs +66 -0
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.mjs +84 -0
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component.mjs +66 -0
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.mjs +54 -0
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/product/relation-product-input.component.mjs +87 -0
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/product-variant/relation-product-variant-input.component.mjs +87 -0
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/relation-card/relation-card.component.mjs +60 -0
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.mjs +29 -0
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/relation-selector-dialog/relation-selector-dialog.component.mjs +14 -0
- package/esm2022/core/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.mjs +21 -0
- package/esm2022/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.mjs +40 -0
- package/esm2022/core/shared/dynamic-form-inputs/text-form-input/text-form-input.component.mjs +28 -0
- package/esm2022/core/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.mjs +24 -0
- package/esm2022/core/shared/pipes/asset-preview.pipe.mjs +42 -0
- package/esm2022/core/shared/pipes/channel-label.pipe.mjs +23 -0
- package/esm2022/core/shared/pipes/custom-field-description.pipe.mjs +30 -0
- package/esm2022/core/shared/pipes/custom-field-label.pipe.mjs +39 -0
- package/esm2022/core/shared/pipes/duration.pipe.mjs +49 -0
- package/esm2022/core/shared/pipes/file-size.pipe.mjs +47 -0
- package/esm2022/core/shared/pipes/has-permission.pipe.mjs +54 -0
- package/esm2022/core/shared/pipes/locale-base.pipe.mjs +55 -0
- package/esm2022/core/shared/pipes/locale-currency-name.pipe.mjs +60 -0
- package/esm2022/core/shared/pipes/locale-currency.pipe.mjs +56 -0
- package/esm2022/core/shared/pipes/locale-date.pipe.mjs +90 -0
- package/esm2022/core/shared/pipes/locale-language-name.pipe.mjs +51 -0
- package/esm2022/core/shared/pipes/locale-region-name.pipe.mjs +51 -0
- package/esm2022/core/shared/pipes/sentence-case.pipe.mjs +30 -0
- package/esm2022/core/shared/pipes/sort.pipe.mjs +34 -0
- package/esm2022/core/shared/pipes/state-i18n-token.pipe.mjs +54 -0
- package/esm2022/core/shared/pipes/string-to-color.pipe.mjs +18 -0
- package/esm2022/core/shared/pipes/time-ago.pipe.mjs +52 -0
- package/esm2022/core/shared/providers/routing/can-deactivate-detail-guard.mjs +33 -0
- package/esm2022/core/shared/shared.module.mjs +707 -0
- package/esm2022/core/validators/unicode-pattern.validator.mjs +8 -0
- package/esm2022/customer/components/add-customer-to-group-dialog/add-customer-to-group-dialog.component.mjs +39 -0
- package/esm2022/customer/components/address-card/address-card.component.mjs +97 -0
- package/esm2022/customer/components/address-detail-dialog/address-detail-dialog.component.mjs +28 -0
- package/esm2022/customer/components/customer-detail/customer-detail.component.mjs +441 -0
- package/esm2022/customer/components/customer-group-detail/customer-group-detail.component.mjs +90 -0
- package/esm2022/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.mjs +46 -0
- package/esm2022/customer/components/customer-group-list/customer-group-list-bulk-actions.mjs +9 -0
- package/esm2022/customer/components/customer-group-list/customer-group-list.component.mjs +148 -0
- package/esm2022/customer/components/customer-group-member-list/customer-group-member-list-bulk-actions.mjs +27 -0
- package/esm2022/customer/components/customer-group-member-list/customer-group-member-list.component.mjs +91 -0
- package/esm2022/customer/components/customer-history/customer-history-entry-host.component.mjs +62 -0
- package/esm2022/customer/components/customer-history/customer-history.component.mjs +89 -0
- package/esm2022/customer/components/customer-list/customer-list-bulk-actions.mjs +9 -0
- package/esm2022/customer/components/customer-list/customer-list.component.mjs +108 -0
- package/esm2022/customer/components/customer-status-label/customer-status-label.component.mjs +17 -0
- package/esm2022/customer/components/select-customer-group-dialog/select-customer-group-dialog.component.mjs +31 -0
- package/esm2022/customer/customer.module.mjs +146 -0
- package/esm2022/customer/customer.routes.mjs +50 -0
- package/esm2022/customer/deenruv-admin-ui-customer.mjs +5 -0
- package/esm2022/customer/public_api.mjs +20 -0
- package/esm2022/dashboard/components/dashboard/dashboard.component.mjs +124 -0
- package/esm2022/dashboard/components/dashboard-widget/dashboard-widget.component.mjs +32 -0
- package/esm2022/dashboard/dashboard.module.mjs +34 -0
- package/esm2022/dashboard/dashboard.routes.mjs +9 -0
- package/esm2022/dashboard/deenruv-admin-ui-dashboard.mjs +5 -0
- package/esm2022/dashboard/default-widgets.mjs +31 -0
- package/esm2022/dashboard/public_api.mjs +12 -0
- package/esm2022/dashboard/widgets/latest-orders-widget/latest-orders-widget.component.mjs +73 -0
- package/esm2022/dashboard/widgets/order-chart-widget/order-chart-widget.component.mjs +66 -0
- package/esm2022/dashboard/widgets/order-summary-widget/order-summary-widget.component.mjs +68 -0
- package/esm2022/dashboard/widgets/test-widget/test-widget.component.mjs +22 -0
- package/esm2022/dashboard/widgets/welcome-widget/welcome-widget.component.mjs +39 -0
- package/esm2022/deenruv-admin-ui.mjs +5 -0
- package/esm2022/login/components/login/login.component.mjs +97 -0
- package/esm2022/login/deenruv-admin-ui-login.mjs +5 -0
- package/esm2022/login/login.module.mjs +21 -0
- package/esm2022/login/login.routes.mjs +11 -0
- package/esm2022/login/providers/login.guard.mjs +31 -0
- package/esm2022/login/public_api.mjs +6 -0
- package/esm2022/marketing/components/promotion-detail/promotion-detail.component.mjs +269 -0
- package/esm2022/marketing/components/promotion-list/promotion-list-bulk-actions.mjs +78 -0
- package/esm2022/marketing/components/promotion-list/promotion-list.component.mjs +128 -0
- package/esm2022/marketing/deenruv-admin-ui-marketing.mjs +5 -0
- package/esm2022/marketing/marketing.module.mjs +75 -0
- package/esm2022/marketing/marketing.routes.mjs +32 -0
- package/esm2022/marketing/public_api.mjs +7 -0
- package/esm2022/order/common/get-refundable-payments.mjs +19 -0
- package/esm2022/order/common/modify-order-types.mjs +2 -0
- package/esm2022/order/components/add-manual-payment-dialog/add-manual-payment-dialog.component.mjs +61 -0
- package/esm2022/order/components/cancel-order-dialog/cancel-order-dialog.component.mjs +80 -0
- package/esm2022/order/components/coupon-code-selector/coupon-code-selector.component.mjs +62 -0
- package/esm2022/order/components/draft-order-detail/draft-order-detail.component.mjs +183 -0
- package/esm2022/order/components/draft-order-variant-selector/draft-order-variant-selector.component.mjs +59 -0
- package/esm2022/order/components/fulfill-order-dialog/fulfill-order-dialog.component.mjs +79 -0
- package/esm2022/order/components/fulfillment-card/fulfillment-card.component.mjs +48 -0
- package/esm2022/order/components/fulfillment-detail/fulfillment-detail.component.mjs +50 -0
- package/esm2022/order/components/fulfillment-state-label/fulfillment-state-label.component.mjs +28 -0
- package/esm2022/order/components/line-fulfillment/line-fulfillment.component.mjs +62 -0
- package/esm2022/order/components/line-refunds/line-refunds.component.mjs +28 -0
- package/esm2022/order/components/modification-detail/modification-detail.component.mjs +71 -0
- package/esm2022/order/components/order-custom-fields-card/order-custom-fields-card.component.mjs +64 -0
- package/esm2022/order/components/order-data-table/order-data-table.component.mjs +59 -0
- package/esm2022/order/components/order-data-table/order-total-column.component.mjs +20 -0
- package/esm2022/order/components/order-detail/order-detail.component.mjs +602 -0
- package/esm2022/order/components/order-editor/order-editor.component.mjs +485 -0
- package/esm2022/order/components/order-edits-preview-dialog/order-edits-preview-dialog.component.mjs +93 -0
- package/esm2022/order/components/order-history/order-history-entry-host.component.mjs +62 -0
- package/esm2022/order/components/order-history/order-history.component.mjs +184 -0
- package/esm2022/order/components/order-list/order-list.component.mjs +154 -0
- package/esm2022/order/components/order-modification-summary/order-modification-summary.component.mjs +76 -0
- package/esm2022/order/components/order-payment-card/order-payment-card.component.mjs +43 -0
- package/esm2022/order/components/order-process-graph/constants.mjs +2 -0
- package/esm2022/order/components/order-process-graph/order-process-edge.component.mjs +45 -0
- package/esm2022/order/components/order-process-graph/order-process-graph.component.mjs +96 -0
- package/esm2022/order/components/order-process-graph/order-process-node.component.mjs +53 -0
- package/esm2022/order/components/order-process-graph/types.mjs +2 -0
- package/esm2022/order/components/order-process-graph-dialog/order-process-graph-dialog.component.mjs +21 -0
- package/esm2022/order/components/order-state-select-dialog/order-state-select-dialog.component.mjs +28 -0
- package/esm2022/order/components/order-table/order-table.component.mjs +96 -0
- package/esm2022/order/components/payment-detail/payment-detail.component.mjs +18 -0
- package/esm2022/order/components/payment-for-refund-selector/payment-for-refund-selector.component.mjs +24 -0
- package/esm2022/order/components/payment-state-label/payment-state-label.component.mjs +28 -0
- package/esm2022/order/components/refund-detail/refund-detail.component.mjs +18 -0
- package/esm2022/order/components/refund-order-dialog/refund-order-dialog.component.mjs +173 -0
- package/esm2022/order/components/refund-state-label/refund-state-label.component.mjs +27 -0
- package/esm2022/order/components/select-address-dialog/select-address-dialog.component.mjs +89 -0
- package/esm2022/order/components/select-address-dialog/select-address-dialog.graphql.mjs +14 -0
- package/esm2022/order/components/select-customer-dialog/select-customer-dialog.component.mjs +65 -0
- package/esm2022/order/components/select-shipping-method-dialog/select-shipping-method-dialog.component.mjs +30 -0
- package/esm2022/order/components/seller-orders-card/seller-orders-card.component.mjs +39 -0
- package/esm2022/order/components/seller-orders-card/seller-orders-card.graphql.mjs +25 -0
- package/esm2022/order/components/settle-refund-dialog/settle-refund-dialog.component.mjs +24 -0
- package/esm2022/order/components/simple-item-list/simple-item-list.component.mjs +15 -0
- package/esm2022/order/deenruv-admin-ui-order.mjs +5 -0
- package/esm2022/order/order.module.mjs +244 -0
- package/esm2022/order/order.routes.mjs +56 -0
- package/esm2022/order/providers/order-transition.service.mjs +112 -0
- package/esm2022/order/providers/routing/order.guard.mjs +57 -0
- package/esm2022/order/public_api.mjs +53 -0
- package/esm2022/public_api.mjs +5 -0
- package/esm2022/react/components/react-custom-column.component.mjs +25 -0
- package/esm2022/react/components/react-custom-detail.component.mjs +23 -0
- package/esm2022/react/components/react-form-input.component.mjs +24 -0
- package/esm2022/react/components/react-route.component.mjs +26 -0
- package/esm2022/react/deenruv-admin-ui-react.mjs +5 -0
- package/esm2022/react/directives/react-component-host.directive.mjs +54 -0
- package/esm2022/react/public_api.mjs +27 -0
- package/esm2022/react/react-components/ActionBar.mjs +26 -0
- package/esm2022/react/react-components/Card.mjs +28 -0
- package/esm2022/react/react-components/CdsIcon.mjs +30 -0
- package/esm2022/react/react-components/FormField.mjs +28 -0
- package/esm2022/react/react-components/Link.mjs +30 -0
- package/esm2022/react/react-components/PageBlock.mjs +24 -0
- package/esm2022/react/react-components/PageDetailLayout.mjs +26 -0
- package/esm2022/react/react-components/RichTextEditor.mjs +73 -0
- package/esm2022/react/react-hooks/use-detail-component-data.mjs +48 -0
- package/esm2022/react/react-hooks/use-form-control.mjs +66 -0
- package/esm2022/react/react-hooks/use-injector.mjs +33 -0
- package/esm2022/react/react-hooks/use-page-metadata.mjs +41 -0
- package/esm2022/react/react-hooks/use-query.mjs +198 -0
- package/esm2022/react/react-hooks/use-rich-text-editor.mjs +50 -0
- package/esm2022/react/react-hooks/use-route-params.mjs +39 -0
- package/esm2022/react/register-react-custom-detail-component.mjs +33 -0
- package/esm2022/react/register-react-data-table-component.mjs +64 -0
- package/esm2022/react/register-react-form-input-component.mjs +27 -0
- package/esm2022/react/register-react-route-component.mjs +25 -0
- package/esm2022/react/types.mjs +2 -0
- package/esm2022/settings/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.mjs +57 -0
- package/esm2022/settings/components/admin-detail/admin-detail.component.mjs +205 -0
- package/esm2022/settings/components/administrator-list/administrator-list-bulk-actions.mjs +9 -0
- package/esm2022/settings/components/administrator-list/administrator-list.component.mjs +120 -0
- package/esm2022/settings/components/channel-detail/channel-detail.component.mjs +202 -0
- package/esm2022/settings/components/channel-list/channel-list-bulk-actions.mjs +16 -0
- package/esm2022/settings/components/channel-list/channel-list.component.mjs +81 -0
- package/esm2022/settings/components/country-detail/country-detail.component.mjs +126 -0
- package/esm2022/settings/components/country-list/country-list-bulk-actions.mjs +10 -0
- package/esm2022/settings/components/country-list/country-list.component.mjs +91 -0
- package/esm2022/settings/components/global-settings/global-settings.component.mjs +102 -0
- package/esm2022/settings/components/payment-method-detail/payment-method-detail.component.mjs +206 -0
- package/esm2022/settings/components/payment-method-list/payment-method-list-bulk-actions.mjs +56 -0
- package/esm2022/settings/components/payment-method-list/payment-method-list.component.mjs +99 -0
- package/esm2022/settings/components/permission-grid/permission-grid.component.mjs +81 -0
- package/esm2022/settings/components/profile/profile.component.mjs +96 -0
- package/esm2022/settings/components/role-detail/role-detail.component.mjs +119 -0
- package/esm2022/settings/components/role-list/role-list-bulk-actions.mjs +9 -0
- package/esm2022/settings/components/role-list/role-list.component.mjs +82 -0
- package/esm2022/settings/components/seller-detail/seller-detail.component.mjs +119 -0
- package/esm2022/settings/components/seller-list/seller-list-bulk-actions.mjs +9 -0
- package/esm2022/settings/components/seller-list/seller-list.component.mjs +75 -0
- package/esm2022/settings/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.mjs +30 -0
- package/esm2022/settings/components/shipping-method-detail/shipping-method-detail.component.mjs +256 -0
- package/esm2022/settings/components/shipping-method-list/shipping-method-list-bulk-actions.mjs +54 -0
- package/esm2022/settings/components/shipping-method-list/shipping-method-list.component.mjs +99 -0
- package/esm2022/settings/components/shipping-method-test-result/shipping-method-test-result.component.mjs +30 -0
- package/esm2022/settings/components/stock-location-detail/stock-location-detail.component.mjs +137 -0
- package/esm2022/settings/components/stock-location-list/stock-location-list-bulk-actions.mjs +68 -0
- package/esm2022/settings/components/stock-location-list/stock-location-list.component.mjs +87 -0
- package/esm2022/settings/components/tax-category-detail/tax-category-detail.component.mjs +114 -0
- package/esm2022/settings/components/tax-category-list/tax-category-list-bulk-actions.mjs +10 -0
- package/esm2022/settings/components/tax-category-list/tax-category-list.component.mjs +69 -0
- package/esm2022/settings/components/tax-rate-detail/tax-rate-detail.component.mjs +137 -0
- package/esm2022/settings/components/tax-rate-list/tax-rate-list-bulk-actions.mjs +10 -0
- package/esm2022/settings/components/tax-rate-list/tax-rate-list.component.mjs +83 -0
- package/esm2022/settings/components/test-address-form/test-address-form.component.mjs +48 -0
- package/esm2022/settings/components/test-order-builder/test-order-builder.component.mjs +71 -0
- package/esm2022/settings/components/test-shipping-methods/test-shipping-methods.component.mjs +52 -0
- package/esm2022/settings/components/zone-detail/zone-detail.component.mjs +117 -0
- package/esm2022/settings/components/zone-list/zone-list-bulk-actions.mjs +10 -0
- package/esm2022/settings/components/zone-list/zone-list.component.mjs +143 -0
- package/esm2022/settings/components/zone-member-list/zone-member-controls.directive.mjs +16 -0
- package/esm2022/settings/components/zone-member-list/zone-member-list-bulk-actions.mjs +26 -0
- package/esm2022/settings/components/zone-member-list/zone-member-list-header.directive.mjs +16 -0
- package/esm2022/settings/components/zone-member-list/zone-member-list.component.mjs +95 -0
- package/esm2022/settings/deenruv-admin-ui-settings.mjs +5 -0
- package/esm2022/settings/providers/routing/profile-resolver.mjs +30 -0
- package/esm2022/settings/public_api.mjs +51 -0
- package/esm2022/settings/settings.module.mjs +467 -0
- package/esm2022/settings/settings.routes.mjs +232 -0
- package/esm2022/system/components/health-check/health-check.component.mjs +18 -0
- package/esm2022/system/components/job-list/job-list.component.mjs +72 -0
- package/esm2022/system/components/job-state-label/job-state-label.component.mjs +46 -0
- package/esm2022/system/deenruv-admin-ui-system.mjs +5 -0
- package/esm2022/system/public_api.mjs +7 -0
- package/esm2022/system/system.module.mjs +22 -0
- package/esm2022/system/system.routes.mjs +20 -0
- package/fesm2022/deenruv-admin-ui-catalog.mjs +5171 -0
- package/fesm2022/deenruv-admin-ui-catalog.mjs.map +1 -0
- package/fesm2022/deenruv-admin-ui-core.mjs +22758 -0
- package/fesm2022/deenruv-admin-ui-core.mjs.map +1 -0
- package/fesm2022/deenruv-admin-ui-customer.mjs +1400 -0
- package/fesm2022/deenruv-admin-ui-customer.mjs.map +1 -0
- package/fesm2022/deenruv-admin-ui-dashboard.mjs +454 -0
- package/fesm2022/deenruv-admin-ui-dashboard.mjs.map +1 -0
- package/fesm2022/deenruv-admin-ui-login.mjs +157 -0
- package/fesm2022/deenruv-admin-ui-login.mjs.map +1 -0
- package/fesm2022/deenruv-admin-ui-marketing.mjs +566 -0
- package/fesm2022/deenruv-admin-ui-marketing.mjs.map +1 -0
- package/fesm2022/deenruv-admin-ui-order.mjs +3664 -0
- package/fesm2022/deenruv-admin-ui-order.mjs.map +1 -0
- package/fesm2022/deenruv-admin-ui-react.mjs +999 -0
- package/fesm2022/deenruv-admin-ui-react.mjs.map +1 -0
- package/fesm2022/deenruv-admin-ui-settings.mjs +4067 -0
- package/fesm2022/deenruv-admin-ui-settings.mjs.map +1 -0
- package/fesm2022/deenruv-admin-ui-system.mjs +164 -0
- package/fesm2022/deenruv-admin-ui-system.mjs.map +1 -0
- package/fesm2022/deenruv-admin-ui.mjs +11 -0
- package/fesm2022/deenruv-admin-ui.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/login/components/login/login.component.d.ts +37 -0
- package/login/index.d.ts +5 -0
- package/login/login.module.d.ts +9 -0
- package/login/login.routes.d.ts +2 -0
- package/login/providers/login.guard.d.ts +15 -0
- package/login/public_api.d.ts +4 -0
- package/marketing/components/promotion-detail/promotion-detail.component.d.ts +70 -0
- package/marketing/components/promotion-list/promotion-list-bulk-actions.d.ts +6 -0
- package/marketing/components/promotion-list/promotion-list.component.d.ts +13 -0
- package/marketing/index.d.ts +5 -0
- package/marketing/marketing.module.d.ts +14 -0
- package/marketing/marketing.routes.d.ts +4 -0
- package/marketing/public_api.d.ts +5 -0
- package/order/common/get-refundable-payments.d.ts +9 -0
- package/order/common/modify-order-types.d.ts +29 -0
- package/order/components/add-manual-payment-dialog/add-manual-payment-dialog.component.d.ts +19 -0
- package/order/components/cancel-order-dialog/cancel-order-dialog.component.d.ts +24 -0
- package/order/components/coupon-code-selector/coupon-code-selector.component.d.ts +22 -0
- package/order/components/draft-order-detail/draft-order-detail.component.d.ts +51 -0
- package/order/components/draft-order-variant-selector/draft-order-variant-selector.component.d.ts +24 -0
- package/order/components/fulfill-order-dialog/fulfill-order-dialog.component.d.ts +28 -0
- package/order/components/fulfillment-card/fulfillment-card.component.d.ts +12 -0
- package/order/components/fulfillment-detail/fulfillment-detail.component.d.ts +23 -0
- package/order/components/fulfillment-state-label/fulfillment-state-label.component.d.ts +7 -0
- package/order/components/line-fulfillment/line-fulfillment.component.d.ts +26 -0
- package/order/components/line-refunds/line-refunds.component.d.ts +9 -0
- package/order/components/modification-detail/modification-detail.component.d.ts +34 -0
- package/order/components/order-custom-fields-card/order-custom-fields-card.component.d.ts +21 -0
- package/order/components/order-data-table/order-data-table.component.d.ts +15 -0
- package/order/components/order-data-table/order-total-column.component.d.ts +7 -0
- package/order/components/order-detail/order-detail.component.d.ts +68 -0
- package/order/components/order-editor/order-editor.component.d.ts +99 -0
- package/order/components/order-edits-preview-dialog/order-edits-preview-dialog.component.d.ts +51 -0
- package/order/components/order-history/order-history-entry-host.component.d.ts +18 -0
- package/order/components/order-history/order-history.component.d.ts +92 -0
- package/order/components/order-list/order-list.component.d.ts +21 -0
- package/order/components/order-modification-summary/order-modification-summary.component.d.ts +19 -0
- package/order/components/order-payment-card/order-payment-card.component.d.ts +67 -0
- package/order/components/order-process-graph/constants.d.ts +1 -0
- package/order/components/order-process-graph/order-process-edge.component.d.ts +21 -0
- package/order/components/order-process-graph/order-process-graph.component.d.ts +32 -0
- package/order/components/order-process-graph/order-process-node.component.d.ts +26 -0
- package/order/components/order-process-graph/types.d.ts +4 -0
- package/order/components/order-process-graph-dialog/order-process-graph-dialog.component.d.ts +13 -0
- package/order/components/order-state-select-dialog/order-state-select-dialog.component.d.ts +13 -0
- package/order/components/order-table/order-table.component.d.ts +43 -0
- package/order/components/payment-detail/payment-detail.component.d.ts +8 -0
- package/order/components/payment-for-refund-selector/payment-for-refund-selector.component.d.ts +14 -0
- package/order/components/payment-state-label/payment-state-label.component.d.ts +7 -0
- package/order/components/refund-detail/refund-detail.component.d.ts +8 -0
- package/order/components/refund-order-dialog/refund-order-dialog.component.d.ts +46 -0
- package/order/components/refund-state-label/refund-state-label.component.d.ts +7 -0
- package/order/components/select-address-dialog/select-address-dialog.component.d.ts +27 -0
- package/order/components/select-address-dialog/select-address-dialog.graphql.d.ts +1 -0
- package/order/components/select-customer-dialog/select-customer-dialog.component.d.ts +32 -0
- package/order/components/select-shipping-method-dialog/select-shipping-method-dialog.component.d.ts +18 -0
- package/order/components/seller-orders-card/seller-orders-card.component.d.ts +24 -0
- package/order/components/seller-orders-card/seller-orders-card.graphql.d.ts +1 -0
- package/order/components/settle-refund-dialog/settle-refund-dialog.component.d.ts +11 -0
- package/order/components/simple-item-list/simple-item-list.component.d.ts +9 -0
- package/order/index.d.ts +5 -0
- package/order/order.module.d.ts +52 -0
- package/order/order.routes.d.ts +3 -0
- package/order/providers/order-transition.service.d.ts +32 -0
- package/order/providers/routing/order.guard.d.ts +13 -0
- package/order/public_api.d.ts +51 -0
- package/package.json +133 -0
- package/public_api.d.ts +4 -0
- package/react/components/react-custom-column.component.d.ts +17 -0
- package/react/components/react-custom-detail.component.d.ts +24 -0
- package/react/components/react-form-input.component.d.ts +20 -0
- package/react/components/react-route.component.d.ts +10 -0
- package/react/directives/react-component-host.directive.d.ts +23 -0
- package/react/index.d.ts +5 -0
- package/react/public_api.d.ts +25 -0
- package/react/react-components/ActionBar.d.ts +23 -0
- package/react/react-components/Card.d.ts +24 -0
- package/react/react-components/CdsIcon.d.ts +45 -0
- package/react/react-components/FormField.d.ts +27 -0
- package/react/react-components/Link.d.ts +22 -0
- package/react/react-components/PageBlock.d.ts +21 -0
- package/react/react-components/PageDetailLayout.d.ts +23 -0
- package/react/react-components/RichTextEditor.d.ts +62 -0
- package/react/react-hooks/use-detail-component-data.d.ts +32 -0
- package/react/react-hooks/use-form-control.d.ts +29 -0
- package/react/react-hooks/use-injector.d.ts +24 -0
- package/react/react-hooks/use-page-metadata.d.ts +30 -0
- package/react/react-hooks/use-query.d.ts +163 -0
- package/react/react-hooks/use-rich-text-editor.d.ts +37 -0
- package/react/react-hooks/use-route-params.d.ts +22 -0
- package/react/register-react-custom-detail-component.d.ts +38 -0
- package/react/register-react-data-table-component.d.ts +83 -0
- package/react/register-react-form-input-component.d.ts +9 -0
- package/react/register-react-route-component.d.ts +32 -0
- package/react/types.d.ts +17 -0
- package/settings/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.d.ts +20 -0
- package/settings/components/admin-detail/admin-detail.component.d.ts +64 -0
- package/settings/components/administrator-list/administrator-list-bulk-actions.d.ts +1 -0
- package/settings/components/administrator-list/administrator-list.component.d.ts +29 -0
- package/settings/components/channel-detail/channel-detail.component.d.ts +46 -0
- package/settings/components/channel-list/channel-list-bulk-actions.d.ts +1 -0
- package/settings/components/channel-list/channel-list.component.d.ts +13 -0
- package/settings/components/country-detail/country-detail.component.d.ts +29 -0
- package/settings/components/country-list/country-list-bulk-actions.d.ts +1 -0
- package/settings/components/country-list/country-list.component.d.ts +11 -0
- package/settings/components/global-settings/global-settings.component.d.ts +29 -0
- package/settings/components/payment-method-detail/payment-method-detail.component.d.ts +64 -0
- package/settings/components/payment-method-list/payment-method-list-bulk-actions.d.ts +3 -0
- package/settings/components/payment-method-list/payment-method-list.component.d.ts +11 -0
- package/settings/components/permission-grid/permission-grid.component.d.ts +28 -0
- package/settings/components/profile/profile.component.d.ts +28 -0
- package/settings/components/role-detail/role-detail.component.d.ts +31 -0
- package/settings/components/role-list/role-list-bulk-actions.d.ts +1 -0
- package/settings/components/role-list/role-list.component.d.ts +17 -0
- package/settings/components/seller-detail/seller-detail.component.d.ts +31 -0
- package/settings/components/seller-list/seller-list-bulk-actions.d.ts +1 -0
- package/settings/components/seller-list/seller-list.component.d.ts +11 -0
- package/settings/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.d.ts +12 -0
- package/settings/components/shipping-method-detail/shipping-method-detail.component.d.ts +76 -0
- package/settings/components/shipping-method-list/shipping-method-list-bulk-actions.d.ts +3 -0
- package/settings/components/shipping-method-list/shipping-method-list.component.d.ts +12 -0
- package/settings/components/shipping-method-test-result/shipping-method-test-result.component.d.ts +12 -0
- package/settings/components/stock-location-detail/stock-location-detail.component.d.ts +32 -0
- package/settings/components/stock-location-list/stock-location-list-bulk-actions.d.ts +3 -0
- package/settings/components/stock-location-list/stock-location-list.component.d.ts +12 -0
- package/settings/components/tax-category-detail/tax-category-detail.component.d.ts +32 -0
- package/settings/components/tax-category-list/tax-category-list-bulk-actions.d.ts +1 -0
- package/settings/components/tax-category-list/tax-category-list.component.d.ts +11 -0
- package/settings/components/tax-rate-detail/tax-rate-detail.component.d.ts +39 -0
- package/settings/components/tax-rate-list/tax-rate-list-bulk-actions.d.ts +1 -0
- package/settings/components/tax-rate-list/tax-rate-list.component.d.ts +11 -0
- package/settings/components/test-address-form/test-address-form.component.d.ts +25 -0
- package/settings/components/test-order-builder/test-order-builder.component.d.ts +31 -0
- package/settings/components/test-shipping-methods/test-shipping-methods.component.d.ts +23 -0
- package/settings/components/zone-detail/zone-detail.component.d.ts +31 -0
- package/settings/components/zone-list/zone-list-bulk-actions.d.ts +1 -0
- package/settings/components/zone-list/zone-list.component.d.ts +26 -0
- package/settings/components/zone-member-list/zone-member-controls.directive.d.ts +8 -0
- package/settings/components/zone-member-list/zone-member-list-bulk-actions.d.ts +3 -0
- package/settings/components/zone-member-list/zone-member-list-header.directive.d.ts +8 -0
- package/settings/components/zone-member-list/zone-member-list.component.d.ts +40 -0
- package/settings/index.d.ts +5 -0
- package/settings/providers/routing/profile-resolver.d.ts +8 -0
- package/settings/public_api.d.ts +49 -0
- package/settings/settings.module.d.ts +45 -0
- package/settings/settings.routes.d.ts +3 -0
- package/static/assets/.gitkeep +0 -0
- package/static/assets/logo-login.webp +0 -0
- package/static/assets/logo-top.webp +0 -0
- package/static/deenruv-ui-config.json +290 -0
- package/static/favicon.ico +0 -0
- package/static/fonts/fonts.scss +253 -0
- package/static/fonts/inter-cyrillic-ext.woff2 +0 -0
- package/static/fonts/inter-cyrillic.woff2 +0 -0
- package/static/fonts/inter-greek-ext.woff2 +0 -0
- package/static/fonts/inter-greek.woff2 +0 -0
- package/static/fonts/inter-latin-ext.woff2 +0 -0
- package/static/fonts/inter-latin.woff2 +0 -0
- package/static/fonts/inter-vietnamese.woff2 +0 -0
- package/static/i18n-messages/ar.json +814 -0
- package/static/i18n-messages/cs.json +814 -0
- package/static/i18n-messages/de.json +814 -0
- package/static/i18n-messages/en.json +814 -0
- package/static/i18n-messages/es.json +814 -0
- package/static/i18n-messages/fa.json +814 -0
- package/static/i18n-messages/fr.json +814 -0
- package/static/i18n-messages/he.json +814 -0
- package/static/i18n-messages/hr.json +814 -0
- package/static/i18n-messages/it.json +814 -0
- package/static/i18n-messages/nb.json +812 -0
- package/static/i18n-messages/ne.json +814 -0
- package/static/i18n-messages/pl.json +814 -0
- package/static/i18n-messages/pt_BR.json +814 -0
- package/static/i18n-messages/pt_PT.json +814 -0
- package/static/i18n-messages/ru.json +814 -0
- package/static/i18n-messages/sv.json +807 -0
- package/static/i18n-messages/uk.json +814 -0
- package/static/i18n-messages/zh_Hans.json +814 -0
- package/static/i18n-messages/zh_Hant.json +814 -0
- package/static/index.html +14 -0
- package/static/polyfills.ts +66 -0
- package/static/styles/_mixins.scss +60 -0
- package/static/styles/_variables.scss +11 -0
- package/static/styles/component/prosemirror.scss +511 -0
- package/static/styles/global/_buttons.scss +147 -0
- package/static/styles/global/_clarity.scss +140 -0
- package/static/styles/global/_forms.scss +187 -0
- package/static/styles/global/_global.scss +41 -0
- package/static/styles/global/_overrides.scss +165 -0
- package/static/styles/global/_sass-overrides.scss +8 -0
- package/static/styles/global/_utilities.scss +155 -0
- package/static/styles/rtl.scss +143 -0
- package/static/styles/styles.scss +19 -0
- package/static/styles/theme/dark.scss +591 -0
- package/static/styles/theme/default.scss +254 -0
- package/static/styles/ui-extension-theme.scss +13 -0
- package/static/theme.min.css +1 -0
- package/system/components/health-check/health-check.component.d.ts +8 -0
- package/system/components/job-list/job-list.component.d.ts +19 -0
- package/system/components/job-state-label/job-state-label.component.d.ts +9 -0
- package/system/index.d.ts +5 -0
- package/system/public_api.d.ts +5 -0
- package/system/system.module.d.ts +11 -0
- package/system/system.routes.d.ts +2 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtZ2FsbGVyeS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL2NvbXBvbmVudHMvYXNzZXQtZ2FsbGVyeS9hc3NldC1nYWxsZXJ5LnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJdGVtT2YgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vYmFzZS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHZXRBc3NldExpc3RRdWVyeSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBBc3NldExpa2UgPSBJdGVtT2Y8R2V0QXNzZXRMaXN0UXVlcnksICdhc3NldHMnPjtcbiJdfQ==
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ViewChild, } from '@angular/core';
|
|
2
|
+
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
|
3
|
+
import { BehaviorSubject, Subject } from 'rxjs';
|
|
4
|
+
import { debounceTime, delay, finalize, map, take as rxjsTake, takeUntil, tap } from 'rxjs/operators';
|
|
5
|
+
import { LogicalOperator, SortOrder, } from '../../../common/generated-types';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../../data/providers/data.service";
|
|
8
|
+
import * as i2 from "../../../providers/notification/notification.service";
|
|
9
|
+
import * as i3 from "../asset-search-input/asset-search-input.component";
|
|
10
|
+
import * as i4 from "../items-per-page-controls/items-per-page-controls.component";
|
|
11
|
+
import * as i5 from "../pagination-controls/pagination-controls.component";
|
|
12
|
+
import * as i6 from "../modal-dialog/dialog-buttons.directive";
|
|
13
|
+
import * as i7 from "../modal-dialog/dialog-title.directive";
|
|
14
|
+
import * as i8 from "../asset-file-input/asset-file-input.component";
|
|
15
|
+
import * as i9 from "../asset-gallery/asset-gallery.component";
|
|
16
|
+
import * as i10 from "@angular/common";
|
|
17
|
+
import * as i11 from "ngx-pagination";
|
|
18
|
+
import * as i12 from "@ngx-translate/core";
|
|
19
|
+
/**
|
|
20
|
+
* @description
|
|
21
|
+
* A dialog which allows the creation and selection of assets.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* selectAssets() {
|
|
26
|
+
* this.modalService
|
|
27
|
+
* .fromComponent(AssetPickerDialogComponent, {
|
|
28
|
+
* size: 'xl',
|
|
29
|
+
* })
|
|
30
|
+
* .subscribe(result => {
|
|
31
|
+
* if (result && result.length) {
|
|
32
|
+
* // ...
|
|
33
|
+
* }
|
|
34
|
+
* });
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @docsCategory components
|
|
39
|
+
*/
|
|
40
|
+
export class AssetPickerDialogComponent {
|
|
41
|
+
constructor(dataService, notificationService) {
|
|
42
|
+
this.dataService = dataService;
|
|
43
|
+
this.notificationService = notificationService;
|
|
44
|
+
this.paginationConfig = {
|
|
45
|
+
currentPage: 1,
|
|
46
|
+
itemsPerPage: 25,
|
|
47
|
+
totalItems: 1,
|
|
48
|
+
};
|
|
49
|
+
this.multiSelect = true;
|
|
50
|
+
this.initialTags = [];
|
|
51
|
+
this.selection = [];
|
|
52
|
+
this.searchTerm$ = new BehaviorSubject(undefined);
|
|
53
|
+
this.filterByTags$ = new BehaviorSubject(undefined);
|
|
54
|
+
this.uploading = false;
|
|
55
|
+
this.destroy$ = new Subject();
|
|
56
|
+
}
|
|
57
|
+
ngOnInit() {
|
|
58
|
+
this.listQuery = this.dataService.product.getAssetList(this.paginationConfig.itemsPerPage, 0);
|
|
59
|
+
this.allTags$ = this.dataService.product.getTagList().mapSingle(data => data.tags.items);
|
|
60
|
+
this.assets$ = this.listQuery.stream$.pipe(tap(result => (this.paginationConfig.totalItems = result.assets.totalItems)), map(result => result.assets.items));
|
|
61
|
+
this.searchTerm$.pipe(debounceTime(250), takeUntil(this.destroy$)).subscribe(() => {
|
|
62
|
+
this.fetchPage(this.paginationConfig.currentPage, this.paginationConfig.itemsPerPage);
|
|
63
|
+
});
|
|
64
|
+
this.filterByTags$.pipe(debounceTime(100), takeUntil(this.destroy$)).subscribe(() => {
|
|
65
|
+
this.fetchPage(this.paginationConfig.currentPage, this.paginationConfig.itemsPerPage);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
ngAfterViewInit() {
|
|
69
|
+
if (0 < this.initialTags.length) {
|
|
70
|
+
this.allTags$
|
|
71
|
+
.pipe(rxjsTake(1), map(allTags => allTags.filter(tag => this.initialTags.includes(tag.value))), tap(tags => this.filterByTags$.next(tags)), delay(1))
|
|
72
|
+
.subscribe(tags => this.assetSearchInputComponent.setTags(tags));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
ngOnDestroy() {
|
|
76
|
+
this.destroy$.next();
|
|
77
|
+
this.destroy$.complete();
|
|
78
|
+
}
|
|
79
|
+
pageChange(page) {
|
|
80
|
+
this.paginationConfig.currentPage = page;
|
|
81
|
+
this.fetchPage(this.paginationConfig.currentPage, this.paginationConfig.itemsPerPage);
|
|
82
|
+
}
|
|
83
|
+
itemsPerPageChange(itemsPerPage) {
|
|
84
|
+
this.paginationConfig.itemsPerPage = itemsPerPage;
|
|
85
|
+
this.fetchPage(this.paginationConfig.currentPage, this.paginationConfig.itemsPerPage);
|
|
86
|
+
}
|
|
87
|
+
cancel() {
|
|
88
|
+
this.resolveWith();
|
|
89
|
+
}
|
|
90
|
+
select() {
|
|
91
|
+
this.resolveWith(this.selection);
|
|
92
|
+
}
|
|
93
|
+
createAssets(files) {
|
|
94
|
+
if (files.length) {
|
|
95
|
+
this.uploading = true;
|
|
96
|
+
this.dataService.product
|
|
97
|
+
.createAssets(files)
|
|
98
|
+
.pipe(finalize(() => (this.uploading = false)))
|
|
99
|
+
.subscribe(res => {
|
|
100
|
+
this.fetchPage(this.paginationConfig.currentPage, this.paginationConfig.itemsPerPage);
|
|
101
|
+
this.notificationService.success(_('asset.notify-create-assets-success'), {
|
|
102
|
+
count: files.length,
|
|
103
|
+
});
|
|
104
|
+
const assets = res.createAssets.filter(a => a.__typename === 'Asset');
|
|
105
|
+
this.assetGalleryComponent.selectMultiple(assets);
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
fetchPage(currentPage, itemsPerPage) {
|
|
110
|
+
const take = +itemsPerPage;
|
|
111
|
+
const skip = (currentPage - 1) * +itemsPerPage;
|
|
112
|
+
const searchTerm = this.searchTerm$.value;
|
|
113
|
+
const tags = this.filterByTags$.value?.map(t => t.value);
|
|
114
|
+
this.listQuery.ref.refetch({
|
|
115
|
+
options: {
|
|
116
|
+
skip,
|
|
117
|
+
take,
|
|
118
|
+
filter: {
|
|
119
|
+
name: {
|
|
120
|
+
contains: searchTerm,
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
sort: {
|
|
124
|
+
createdAt: SortOrder.DESC,
|
|
125
|
+
},
|
|
126
|
+
tags,
|
|
127
|
+
tagsOperator: LogicalOperator.AND,
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AssetPickerDialogComponent, deps: [{ token: i1.DataService }, { token: i2.NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
132
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AssetPickerDialogComponent, selector: "vdr-asset-picker-dialog", viewQueries: [{ propertyName: "assetSearchInputComponent", first: true, predicate: ["assetSearchInputComponent"], descendants: true }, { propertyName: "assetGalleryComponent", first: true, predicate: ["assetGalleryComponent"], descendants: true }], ngImport: i0, template: "<ng-template vdrDialogTitle>\n <div class=\"title-row\">\n <span>{{ 'asset.select-assets' | translate }}</span>\n <div class=\"flex-spacer\"></div>\n <vdr-asset-file-input\n class=\"ml3\"\n (selectFiles)=\"createAssets($event)\"\n [uploading]=\"uploading\"\n dropZoneTarget=\".modal-content\"\n ></vdr-asset-file-input>\n </div>\n</ng-template>\n<vdr-asset-search-input\n class=\"mb-2\"\n [tags]=\"allTags$ | async\"\n (searchTermChange)=\"searchTerm$.next($event)\"\n (tagsChange)=\"filterByTags$.next($event)\"\n #assetSearchInputComponent\n></vdr-asset-search-input>\n<vdr-asset-gallery\n [assets]=\"(assets$ | async)! | paginate: paginationConfig\"\n [multiSelect]=\"multiSelect\"\n (selectionChange)=\"selection = $event\"\n (editAssetClick)=\"cancel()\"\n #assetGalleryComponent\n></vdr-asset-gallery>\n\n<div class=\"paging-controls\">\n <vdr-items-per-page-controls\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\n (itemsPerPageChange)=\"itemsPerPageChange($event)\"\n ></vdr-items-per-page-controls>\n\n <vdr-pagination-controls\n [currentPage]=\"paginationConfig.currentPage\"\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\n [totalItems]=\"paginationConfig.totalItems\"\n (pageChange)=\"pageChange($event)\"\n ></vdr-pagination-controls>\n</div>\n\n<ng-template vdrDialogButtons>\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\n <button type=\"submit\" (click)=\"select()\" class=\"btn btn-primary\" [disabled]=\"selection.length === 0\">\n {{ 'asset.add-asset-with-count' | translate: { count: selection.length } }}\n </button>\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column;overflow-y:auto}.title-row{display:flex;align-items:center;justify-content:space-between}vdr-asset-gallery{flex:1}.paging-controls{padding-top:6px;margin-top:12px;margin-bottom:12px;border-top:1px solid var(--color-component-border-100);display:flex;justify-content:space-between;flex-shrink:0}\n"], dependencies: [{ kind: "component", type: i3.AssetSearchInputComponent, selector: "vdr-asset-search-input", inputs: ["tags"], outputs: ["searchTermChange", "tagsChange"] }, { kind: "component", type: i4.ItemsPerPageControlsComponent, selector: "vdr-items-per-page-controls", inputs: ["itemsPerPage"], outputs: ["itemsPerPageChange"] }, { kind: "component", type: i5.PaginationControlsComponent, selector: "vdr-pagination-controls", inputs: ["id", "currentPage", "itemsPerPage", "totalItems"], outputs: ["pageChange"] }, { kind: "directive", type: i6.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: i7.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "component", type: i8.AssetFileInputComponent, selector: "vdr-asset-file-input", inputs: ["dropZoneTarget", "uploading"], outputs: ["selectFiles"] }, { kind: "component", type: i9.AssetGalleryComponent, selector: "vdr-asset-gallery", inputs: ["assets", "multiSelect", "canDelete"], outputs: ["selectionChange", "deleteAssets", "editAssetClick"] }, { kind: "pipe", type: i10.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.PaginatePipe, name: "paginate" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
133
|
+
}
|
|
134
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AssetPickerDialogComponent, decorators: [{
|
|
135
|
+
type: Component,
|
|
136
|
+
args: [{ selector: 'vdr-asset-picker-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\n <div class=\"title-row\">\n <span>{{ 'asset.select-assets' | translate }}</span>\n <div class=\"flex-spacer\"></div>\n <vdr-asset-file-input\n class=\"ml3\"\n (selectFiles)=\"createAssets($event)\"\n [uploading]=\"uploading\"\n dropZoneTarget=\".modal-content\"\n ></vdr-asset-file-input>\n </div>\n</ng-template>\n<vdr-asset-search-input\n class=\"mb-2\"\n [tags]=\"allTags$ | async\"\n (searchTermChange)=\"searchTerm$.next($event)\"\n (tagsChange)=\"filterByTags$.next($event)\"\n #assetSearchInputComponent\n></vdr-asset-search-input>\n<vdr-asset-gallery\n [assets]=\"(assets$ | async)! | paginate: paginationConfig\"\n [multiSelect]=\"multiSelect\"\n (selectionChange)=\"selection = $event\"\n (editAssetClick)=\"cancel()\"\n #assetGalleryComponent\n></vdr-asset-gallery>\n\n<div class=\"paging-controls\">\n <vdr-items-per-page-controls\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\n (itemsPerPageChange)=\"itemsPerPageChange($event)\"\n ></vdr-items-per-page-controls>\n\n <vdr-pagination-controls\n [currentPage]=\"paginationConfig.currentPage\"\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\n [totalItems]=\"paginationConfig.totalItems\"\n (pageChange)=\"pageChange($event)\"\n ></vdr-pagination-controls>\n</div>\n\n<ng-template vdrDialogButtons>\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\n <button type=\"submit\" (click)=\"select()\" class=\"btn btn-primary\" [disabled]=\"selection.length === 0\">\n {{ 'asset.add-asset-with-count' | translate: { count: selection.length } }}\n </button>\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column;overflow-y:auto}.title-row{display:flex;align-items:center;justify-content:space-between}vdr-asset-gallery{flex:1}.paging-controls{padding-top:6px;margin-top:12px;margin-bottom:12px;border-top:1px solid var(--color-component-border-100);display:flex;justify-content:space-between;flex-shrink:0}\n"] }]
|
|
137
|
+
}], ctorParameters: () => [{ type: i1.DataService }, { type: i2.NotificationService }], propDecorators: { assetSearchInputComponent: [{
|
|
138
|
+
type: ViewChild,
|
|
139
|
+
args: ['assetSearchInputComponent']
|
|
140
|
+
}], assetGalleryComponent: [{
|
|
141
|
+
type: ViewChild,
|
|
142
|
+
args: ['assetGalleryComponent']
|
|
143
|
+
}] } });
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcGlja2VyLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LXBpY2tlci1kaWFsb2cvYXNzZXQtcGlja2VyLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LXBpY2tlci1kaWFsb2cvYXNzZXQtcGlja2VyLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFHVCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRHLE9BQU8sRUFLSCxlQUFlLEVBQ2YsU0FBUyxHQUVaLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBU3pDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQU9ILE1BQU0sT0FBTywwQkFBMEI7SUF3Qm5DLFlBQW9CLFdBQXdCLEVBQVUsbUJBQXdDO1FBQTFFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQXJCOUYscUJBQWdCLEdBQXVCO1lBQ25DLFdBQVcsRUFBRSxDQUFDO1lBQ2QsWUFBWSxFQUFFLEVBQUU7WUFDaEIsVUFBVSxFQUFFLENBQUM7U0FDaEIs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QU50QyxTQUFTOytCQUNJLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTTtrSEFXdkMseUJBQXlCO3NCQURoQyxTQUFTO3VCQUFDLDJCQUEyQjtnQkFHOUIscUJBQXFCO3NCQUQ1QixTQUFTO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkluc3RhbmNlIH0gZnJvbSAnbmd4LXBhZ2luYXRpb24nO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRlbGF5LCBmaW5hbGl6ZSwgbWFwLCB0YWtlIGFzIHJ4anNUYWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBBc3NldCxcbiAgICBDcmVhdGVBc3NldHNNdXRhdGlvbixcbiAgICBHZXRBc3NldExpc3RRdWVyeSxcbiAgICBHZXRBc3NldExpc3RRdWVyeVZhcmlhYmxlcyxcbiAgICBMb2dpY2FsT3BlcmF0b3IsXG4gICAgU29ydE9yZGVyLFxuICAgIFRhZ0ZyYWdtZW50LFxufSBmcm9tICcuLi8uLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS9wcm92aWRlcnMvZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IFF1ZXJ5UmVzdWx0IH0gZnJvbSAnLi4vLi4vLi4vZGF0YS9xdWVyeS1yZXN1bHQnO1xuaW1wb3J0IHsgRGlhbG9nIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL21vZGFsL21vZGFsLnR5cGVzJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFzc2V0R2FsbGVyeUNvbXBvbmVudCB9IGZyb20gJy4uL2Fzc2V0LWdhbGxlcnkvYXNzZXQtZ2FsbGVyeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXNzZXRMaWtlIH0gZnJvbSAnLi4vYXNzZXQtZ2FsbGVyeS9hc3NldC1nYWxsZXJ5LnR5cGVzJztcbmltcG9ydCB7IEFzc2V0U2VhcmNoSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9hc3NldC1zZWFyY2gtaW5wdXQvYXNzZXQtc2VhcmNoLWlucHV0LmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBBIGRpYWxvZyB3aGljaCBhbGxvd3MgdGhlIGNyZWF0aW9uIGFuZCBzZWxlY3Rpb24gb2YgYXNzZXRzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogc2VsZWN0QXNzZXRzKCkge1xuICogICB0aGlzLm1vZGFsU2VydmljZVxuICogICAgIC5mcm9tQ29tcG9uZW50KEFzc2V0UGlja2VyRGlhbG9nQ29tcG9uZW50LCB7XG4gKiAgICAgICAgIHNpemU6ICd4bCcsXG4gKiAgICAgfSlcbiAqICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gKiAgICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0Lmxlbmd0aCkge1xuICogICAgICAgICAgICAgLy8gLi4uXG4gKiAgICAgICAgIH1cbiAqICAgICB9KTtcbiAqIH1cbiAqIGBgYFxuICpcbiAqIEBkb2NzQ2F0ZWdvcnkgY29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Zkci1hc3NldC1waWNrZXItZGlhbG9nJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXNzZXQtcGlja2VyLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYXNzZXQtcGlja2VyLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBc3NldFBpY2tlckRpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBEaWFsb2c8QXNzZXRbXT4ge1xuICAgIGFzc2V0cyQ6IE9ic2VydmFibGU8QXNzZXRMaWtlW10+O1xuICAgIGFsbFRhZ3MkOiBPYnNlcnZhYmxlPFRhZ0ZyYWdtZW50W10+O1xuICAgIHBhZ2luYXRpb25Db25maWc6IFBhZ2luYXRpb25JbnN0YW5jZSA9IHtcbiAgICAgICAgY3VycmVudFBhZ2U6IDEsXG4gICAgICAgIGl0ZW1zUGVyUGFnZTogMjUsXG4gICAgICAgIHRvdGFsSXRlbXM6IDEsXG4gICAgfTtcbiAgICBAVmlld0NoaWxkKCdhc3NldFNlYXJjaElucHV0Q29tcG9uZW50JylcbiAgICBwcml2YXRlIGFzc2V0U2VhcmNoSW5wdXRDb21wb25lbnQ6IEFzc2V0U2VhcmNoSW5wdXRDb21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZCgnYXNzZXRHYWxsZXJ5Q29tcG9uZW50JylcbiAgICBwcml2YXRlIGFzc2V0R2FsbGVyeUNvbXBvbmVudDogQXNzZXRHYWxsZXJ5Q29tcG9uZW50O1xuXG4gICAgbXVsdGlTZWxlY3QgPSB0cnVlO1xuICAgIGluaXRpYWxUYWdzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgcmVzb2x2ZVdpdGg6IChyZXN1bHQ/OiBBc3NldFtdKSA9PiB2b2lkO1xuICAgIHNlbGVjdGlvbjogQXNzZXRbXSA9IFtdO1xuICAgIHNlYXJjaFRlcm0kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gICAgZmlsdGVyQnlUYWdzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFnRnJhZ21lbnRbXSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgICB1cGxvYWRpbmcgPSBmYWxzZTtcbiAgICBwcml2YXRlIGxpc3RRdWVyeTogUXVlcnlSZXN1bHQ8R2V0QXNzZXRMaXN0UXVlcnksIEdldEFzc2V0TGlzdFF1ZXJ5VmFyaWFibGVzPjtcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLCBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5saXN0UXVlcnkgPSB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3QuZ2V0QXNzZXRMaXN0KHRoaXMucGFnaW5hdGlvbkNvbmZpZy5pdGVtc1BlclBhZ2UsIDApO1xuICAgICAgICB0aGlzLmFsbFRhZ3MkID0gdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0LmdldFRhZ0xpc3QoKS5tYXBTaW5nbGUoZGF0YSA9PiBkYXRhLnRhZ3MuaXRlbXMpO1xuICAgICAgICB0aGlzLmFzc2V0cyQgPSB0aGlzLmxpc3RRdWVyeS5zdHJlYW0kLnBpcGUoXG4gICAgICAgICAgICB0YXAocmVzdWx0ID0+ICh0aGlzLnBhZ2luYXRpb25Db25maWcudG90YWxJdGVtcyA9IHJlc3VsdC5hc3NldHMudG90YWxJdGVtcykpLFxuICAgICAgICAgICAgbWFwKHJlc3VsdCA9PiByZXN1bHQuYXNzZXRzLml0ZW1zKSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZWFyY2hUZXJtJC5waXBlKGRlYm91bmNlVGltZSgyNTApLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZldGNoUGFnZSh0aGlzLnBhZ2luYXRpb25Db25maWcuY3VycmVudFBhZ2UsIHRoaXMucGFnaW5hdGlvbkNvbmZpZy5pdGVtc1BlclBhZ2UpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5maWx0ZXJCeVRhZ3MkLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmV0Y2hQYWdlKHRoaXMucGFnaW5hdGlvbkNvbmZpZy5jdXJyZW50UGFnZSwgdGhpcy5wYWdpbmF0aW9uQ29uZmlnLml0ZW1zUGVyUGFnZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKDAgPCB0aGlzLmluaXRpYWxUYWdzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5hbGxUYWdzJFxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICByeGpzVGFrZSgxKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKGFsbFRhZ3MgPT4gYWxsVGFncy5maWx0ZXIodGFnID0+IHRoaXMuaW5pdGlhbFRhZ3MuaW5jbHVkZXModGFnLnZhbHVlKSkpLFxuICAgICAgICAgICAgICAgICAgICB0YXAodGFncyA9PiB0aGlzLmZpbHRlckJ5VGFncyQubmV4dCh0YWdzKSksXG4gICAgICAgICAgICAgICAgICAgIGRlbGF5KDEpLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHRhZ3MgPT4gdGhpcy5hc3NldFNlYXJjaElucHV0Q29tcG9uZW50LnNldFRhZ3ModGFncykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcGFnZUNoYW5nZShwYWdlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uQ29uZmlnLmN1cnJlbnRQYWdlID0gcGFnZTtcbiAgICAgICAgdGhpcy5mZXRjaFBhZ2UodGhpcy5wYWdpbmF0aW9uQ29uZmlnLmN1cnJlbnRQYWdlLCB0aGlzLnBhZ2luYXRpb25Db25maWcuaXRlbXNQZXJQYWdlKTtcbiAgICB9XG5cbiAgICBpdGVtc1BlclBhZ2VDaGFuZ2UoaXRlbXNQZXJQYWdlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uQ29uZmlnLml0ZW1zUGVyUGFnZSA9IGl0ZW1zUGVyUGFnZTtcbiAgICAgICAgdGhpcy5mZXRjaFBhZ2UodGhpcy5wYWdpbmF0aW9uQ29uZmlnLmN1cnJlbnRQYWdlLCB0aGlzLnBhZ2luYXRpb25Db25maWcuaXRlbXNQZXJQYWdlKTtcbiAgICB9XG5cbiAgICBjYW5jZWwoKSB7XG4gICAgICAgIHRoaXMucmVzb2x2ZVdpdGgoKTtcbiAgICB9XG5cbiAgICBzZWxlY3QoKSB7XG4gICAgICAgIHRoaXMucmVzb2x2ZVdpdGgodGhpcy5zZWxlY3Rpb24pO1xuICAgIH1cblxuICAgIGNyZWF0ZUFzc2V0cyhmaWxlczogRmlsZVtdKSB7XG4gICAgICAgIGlmIChmaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2UucHJvZHVjdFxuICAgICAgICAgICAgICAgIC5jcmVhdGVBc3NldHMoZmlsZXMpXG4gICAgICAgICAgICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gKHRoaXMudXBsb2FkaW5nID0gZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2hQYWdlKHRoaXMucGFnaW5hdGlvbkNvbmZpZy5jdXJyZW50UGFnZSwgdGhpcy5wYWdpbmF0aW9uQ29uZmlnLml0ZW1zUGVyUGFnZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2Fzc2V0Lm5vdGlmeS1jcmVhdGUtYXNzZXRzLXN1Y2Nlc3MnKSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY291bnQ6IGZpbGVzLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFzc2V0cyA9IHJlcy5jcmVhdGVBc3NldHMuZmlsdGVyKGEgPT4gYS5fX3R5cGVuYW1lID09PSAnQXNzZXQnKSBhcyBBc3NldExpa2VbXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hc3NldEdhbGxlcnlDb21wb25lbnQuc2VsZWN0TXVsdGlwbGUoYXNzZXRzKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZmV0Y2hQYWdlKGN1cnJlbnRQYWdlOiBudW1iZXIsIGl0ZW1zUGVyUGFnZTogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHRha2UgPSAraXRlbXNQZXJQYWdlO1xuICAgICAgICBjb25zdCBza2lwID0gKGN1cnJlbnRQYWdlIC0gMSkgKiAraXRlbXNQZXJQYWdlO1xuICAgICAgICBjb25zdCBzZWFyY2hUZXJtID0gdGhpcy5zZWFyY2hUZXJtJC52YWx1ZTtcbiAgICAgICAgY29uc3QgdGFncyA9IHRoaXMuZmlsdGVyQnlUYWdzJC52YWx1ZT8ubWFwKHQgPT4gdC52YWx1ZSk7XG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5LnJlZi5yZWZldGNoKHtcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBza2lwLFxuICAgICAgICAgICAgICAgIHRha2UsXG4gICAgICAgICAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBzZWFyY2hUZXJtLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc29ydDoge1xuICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6IFNvcnRPcmRlci5ERVNDLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdGFncyxcbiAgICAgICAgICAgICAgICB0YWdzT3BlcmF0b3I6IExvZ2ljYWxPcGVyYXRvci5BTkQsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgdmRyRGlhbG9nVGl0bGU+XG4gICAgPGRpdiBjbGFzcz1cInRpdGxlLXJvd1wiPlxuICAgICAgICA8c3Bhbj57eyAnYXNzZXQuc2VsZWN0LWFzc2V0cycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNwYWNlclwiPjwvZGl2PlxuICAgICAgICA8dmRyLWFzc2V0LWZpbGUtaW5wdXRcbiAgICAgICAgICAgIGNsYXNzPVwibWwzXCJcbiAgICAgICAgICAgIChzZWxlY3RGaWxlcyk9XCJjcmVhdGVBc3NldHMoJGV2ZW50KVwiXG4gICAgICAgICAgICBbdXBsb2FkaW5nXT1cInVwbG9hZGluZ1wiXG4gICAgICAgICAgICBkcm9wWm9uZVRhcmdldD1cIi5tb2RhbC1jb250ZW50XCJcbiAgICAgICAgPjwvdmRyLWFzc2V0LWZpbGUtaW5wdXQ+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPHZkci1hc3NldC1zZWFyY2gtaW5wdXRcbiAgICBjbGFzcz1cIm1iLTJcIlxuICAgIFt0YWdzXT1cImFsbFRhZ3MkIHwgYXN5bmNcIlxuICAgIChzZWFyY2hUZXJtQ2hhbmdlKT1cInNlYXJjaFRlcm0kLm5leHQoJGV2ZW50KVwiXG4gICAgKHRhZ3NDaGFuZ2UpPVwiZmlsdGVyQnlUYWdzJC5uZXh0KCRldmVudClcIlxuICAgICNhc3NldFNlYXJjaElucHV0Q29tcG9uZW50XG4+PC92ZHItYXNzZXQtc2VhcmNoLWlucHV0PlxuPHZkci1hc3NldC1nYWxsZXJ5XG4gICAgW2Fzc2V0c109XCIoYXNzZXRzJCB8IGFzeW5jKSEgfCBwYWdpbmF0ZTogcGFnaW5hdGlvbkNvbmZpZ1wiXG4gICAgW211bHRpU2VsZWN0XT1cIm11bHRpU2VsZWN0XCJcbiAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdGlvbiA9ICRldmVudFwiXG4gICAgKGVkaXRBc3NldENsaWNrKT1cImNhbmNlbCgpXCJcbiAgICAjYXNzZXRHYWxsZXJ5Q29tcG9uZW50XG4+PC92ZHItYXNzZXQtZ2FsbGVyeT5cblxuPGRpdiBjbGFzcz1cInBhZ2luZy1jb250cm9sc1wiPlxuICAgIDx2ZHItaXRlbXMtcGVyLXBhZ2UtY29udHJvbHNcbiAgICAgICAgW2l0ZW1zUGVyUGFnZV09XCJwYWdpbmF0aW9uQ29uZmlnLml0ZW1zUGVyUGFnZVwiXG4gICAgICAgIChpdGVtc1BlclBhZ2VDaGFuZ2UpPVwiaXRlbXNQZXJQYWdlQ2hhbmdlKCRldmVudClcIlxuICAgID48L3Zkci1pdGVtcy1wZXItcGFnZS1jb250cm9scz5cblxuICAgIDx2ZHItcGFnaW5hdGlvbi1jb250cm9sc1xuICAgICAgICBbY3VycmVudFBhZ2VdPVwicGFnaW5hdGlvbkNvbmZpZy5jdXJyZW50UGFnZVwiXG4gICAgICAgIFtpdGVtc1BlclBhZ2VdPVwicGFnaW5hdGlvbkNvbmZpZy5pdGVtc1BlclBhZ2VcIlxuICAgICAgICBbdG90YWxJdGVtc109XCJwYWdpbmF0aW9uQ29uZmlnLnRvdGFsSXRlbXNcIlxuICAgICAgICAocGFnZUNoYW5nZSk9XCJwYWdlQ2hhbmdlKCRldmVudClcIlxuICAgID48L3Zkci1wYWdpbmF0aW9uLWNvbnRyb2xzPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSB2ZHJEaWFsb2dCdXR0b25zPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+e3sgJ2NvbW1vbi5jYW5jZWwnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XG4gICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cInNlbGVjdCgpXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiBbZGlzYWJsZWRdPVwic2VsZWN0aW9uLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICB7eyAnYXNzZXQuYWRkLWFzc2V0LXdpdGgtY291bnQnIHwgdHJhbnNsYXRlOiB7IGNvdW50OiBzZWxlY3Rpb24ubGVuZ3RoIH0gfX1cbiAgICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
2
|
+
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
|
3
|
+
import { fromEvent } from 'rxjs';
|
|
4
|
+
import { debounceTime } from 'rxjs/operators';
|
|
5
|
+
import { ManageTagsDialogComponent } from '../manage-tags-dialog/manage-tags-dialog.component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/forms";
|
|
8
|
+
import * as i2 from "../../../data/providers/data.service";
|
|
9
|
+
import * as i3 from "../../../providers/notification/notification.service";
|
|
10
|
+
import * as i4 from "../../../providers/modal/modal.service";
|
|
11
|
+
import * as i5 from "@clr/angular";
|
|
12
|
+
import * as i6 from "@angular/common";
|
|
13
|
+
import * as i7 from "@angular/router";
|
|
14
|
+
import * as i8 from "../chip/chip.component";
|
|
15
|
+
import * as i9 from "../form-field/form-field.component";
|
|
16
|
+
import * as i10 from "../form-field/form-field-control.directive";
|
|
17
|
+
import * as i11 from "../labeled-data/labeled-data.component";
|
|
18
|
+
import * as i12 from "../focal-point-control/focal-point-control.component";
|
|
19
|
+
import * as i13 from "../tag-selector/tag-selector.component";
|
|
20
|
+
import * as i14 from "../tabbed-custom-fields/tabbed-custom-fields.component";
|
|
21
|
+
import * as i15 from "../asset-preview-links/asset-preview-links.component";
|
|
22
|
+
import * as i16 from "../page-entity-info/page-entity-info.component";
|
|
23
|
+
import * as i17 from "../page-detail-layout/page-detail-layout.component";
|
|
24
|
+
import * as i18 from "../page-detail-layout/page-detail-sidebar.component";
|
|
25
|
+
import * as i19 from "../card/card.component";
|
|
26
|
+
import * as i20 from "@ngx-translate/core";
|
|
27
|
+
import * as i21 from "../../pipes/file-size.pipe";
|
|
28
|
+
import * as i22 from "../../pipes/has-permission.pipe";
|
|
29
|
+
import * as i23 from "../../pipes/asset-preview.pipe";
|
|
30
|
+
export class AssetPreviewComponent {
|
|
31
|
+
constructor(formBuilder, dataService, notificationService, changeDetector, modalService) {
|
|
32
|
+
this.formBuilder = formBuilder;
|
|
33
|
+
this.dataService = dataService;
|
|
34
|
+
this.notificationService = notificationService;
|
|
35
|
+
this.changeDetector = changeDetector;
|
|
36
|
+
this.modalService = modalService;
|
|
37
|
+
this.editable = false;
|
|
38
|
+
this.customFields = [];
|
|
39
|
+
this.assetChange = new EventEmitter();
|
|
40
|
+
this.editClick = new EventEmitter();
|
|
41
|
+
this.form = this.formBuilder.group({
|
|
42
|
+
name: '',
|
|
43
|
+
tags: [[]],
|
|
44
|
+
});
|
|
45
|
+
this.size = 'medium';
|
|
46
|
+
this.width = 0;
|
|
47
|
+
this.height = 0;
|
|
48
|
+
this.centered = true;
|
|
49
|
+
this.settingFocalPoint = false;
|
|
50
|
+
this.previewAssetIndex = 0;
|
|
51
|
+
this.disableNextButton = false;
|
|
52
|
+
this.disablePreviousButton = false;
|
|
53
|
+
this.showSlideButtons = false;
|
|
54
|
+
}
|
|
55
|
+
get fpx() {
|
|
56
|
+
return this.asset.focalPoint ? this.asset.focalPoint.x : null;
|
|
57
|
+
}
|
|
58
|
+
get fpy() {
|
|
59
|
+
return this.asset.focalPoint ? this.asset.focalPoint.y : null;
|
|
60
|
+
}
|
|
61
|
+
ngOnInit() {
|
|
62
|
+
const { focalPoint } = this.asset;
|
|
63
|
+
if (this.assets?.length) {
|
|
64
|
+
this.showSlideButtons = true;
|
|
65
|
+
this.previewAssetIndex = this.assets.findIndex(asset => asset.id === this.asset.id) || 0;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
this.showSlideButtons = false;
|
|
69
|
+
this.updateButtonAccessibility();
|
|
70
|
+
}
|
|
71
|
+
this.updateButtonAccessibility();
|
|
72
|
+
this.form.get('name')?.setValue(this.asset.name);
|
|
73
|
+
this.form.get('tags')?.setValue(this.asset.tags?.map(t => t.value));
|
|
74
|
+
this.subscription = this.form.valueChanges.subscribe(value => {
|
|
75
|
+
this.assetChange.emit({
|
|
76
|
+
id: this.asset.id,
|
|
77
|
+
name: value.name,
|
|
78
|
+
tags: value.tags,
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
this.subscription.add(fromEvent(window, 'resize')
|
|
82
|
+
.pipe(debounceTime(50))
|
|
83
|
+
.subscribe(() => {
|
|
84
|
+
this.updateDimensions();
|
|
85
|
+
this.changeDetector.markForCheck();
|
|
86
|
+
}));
|
|
87
|
+
}
|
|
88
|
+
ngOnDestroy() {
|
|
89
|
+
if (this.subscription) {
|
|
90
|
+
this.subscription.unsubscribe();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
getSourceFileName() {
|
|
94
|
+
const parts = this.asset.source.split(/[\\\/]/g);
|
|
95
|
+
return parts[parts.length - 1];
|
|
96
|
+
}
|
|
97
|
+
onImageLoad() {
|
|
98
|
+
this.updateDimensions();
|
|
99
|
+
this.changeDetector.markForCheck();
|
|
100
|
+
}
|
|
101
|
+
updateDimensions() {
|
|
102
|
+
const img = this.imageElementRef.nativeElement;
|
|
103
|
+
const container = this.previewDivRef.nativeElement;
|
|
104
|
+
const imgWidth = img.naturalWidth;
|
|
105
|
+
const imgHeight = img.naturalHeight;
|
|
106
|
+
const containerWidth = container.offsetWidth;
|
|
107
|
+
const containerHeight = container.offsetHeight;
|
|
108
|
+
const constrainToContainer = this.settingFocalPoint;
|
|
109
|
+
if (constrainToContainer) {
|
|
110
|
+
const controlsMarginPx = 48 * 2;
|
|
111
|
+
const availableHeight = containerHeight - controlsMarginPx;
|
|
112
|
+
const availableWidth = containerWidth;
|
|
113
|
+
const hRatio = imgHeight / availableHeight;
|
|
114
|
+
const wRatio = imgWidth / availableWidth;
|
|
115
|
+
const imageExceedsAvailableDimensions = 1 < hRatio || 1 < wRatio;
|
|
116
|
+
if (imageExceedsAvailableDimensions) {
|
|
117
|
+
const factor = hRatio < wRatio ? wRatio : hRatio;
|
|
118
|
+
this.width = Math.round(imgWidth / factor);
|
|
119
|
+
this.height = Math.round(imgHeight / factor);
|
|
120
|
+
this.centered = true;
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
this.width = imgWidth;
|
|
125
|
+
this.height = imgHeight;
|
|
126
|
+
this.centered = imgWidth <= containerWidth && imgHeight <= containerHeight;
|
|
127
|
+
}
|
|
128
|
+
setFocalPointStart() {
|
|
129
|
+
this.sizePriorToSettingFocalPoint = this.size;
|
|
130
|
+
this.size = 'medium';
|
|
131
|
+
this.settingFocalPoint = true;
|
|
132
|
+
this.lastFocalPoint = this.asset.focalPoint || { x: 0.5, y: 0.5 };
|
|
133
|
+
this.updateDimensions();
|
|
134
|
+
}
|
|
135
|
+
removeFocalPoint() {
|
|
136
|
+
this.dataService.product
|
|
137
|
+
.updateAsset({
|
|
138
|
+
id: this.asset.id,
|
|
139
|
+
focalPoint: null,
|
|
140
|
+
})
|
|
141
|
+
.subscribe(() => {
|
|
142
|
+
this.notificationService.success(_('asset.update-focal-point-success'));
|
|
143
|
+
this.asset = { ...this.asset, focalPoint: null };
|
|
144
|
+
this.changeDetector.markForCheck();
|
|
145
|
+
}, () => this.notificationService.error(_('asset.update-focal-point-error')));
|
|
146
|
+
}
|
|
147
|
+
onFocalPointChange(point) {
|
|
148
|
+
this.lastFocalPoint = point;
|
|
149
|
+
}
|
|
150
|
+
setFocalPointCancel() {
|
|
151
|
+
this.settingFocalPoint = false;
|
|
152
|
+
this.lastFocalPoint = undefined;
|
|
153
|
+
this.size = this.sizePriorToSettingFocalPoint;
|
|
154
|
+
}
|
|
155
|
+
setFocalPointEnd() {
|
|
156
|
+
this.settingFocalPoint = false;
|
|
157
|
+
this.size = this.sizePriorToSettingFocalPoint;
|
|
158
|
+
if (this.lastFocalPoint) {
|
|
159
|
+
const { x, y } = this.lastFocalPoint;
|
|
160
|
+
this.lastFocalPoint = undefined;
|
|
161
|
+
this.dataService.product
|
|
162
|
+
.updateAsset({
|
|
163
|
+
id: this.asset.id,
|
|
164
|
+
focalPoint: { x, y },
|
|
165
|
+
})
|
|
166
|
+
.subscribe(() => {
|
|
167
|
+
this.notificationService.success(_('asset.update-focal-point-success'));
|
|
168
|
+
this.asset = { ...this.asset, focalPoint: { x, y } };
|
|
169
|
+
this.changeDetector.markForCheck();
|
|
170
|
+
}, () => this.notificationService.error(_('asset.update-focal-point-error')));
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
manageTags() {
|
|
174
|
+
this.modalService
|
|
175
|
+
.fromComponent(ManageTagsDialogComponent, {
|
|
176
|
+
size: 'sm',
|
|
177
|
+
})
|
|
178
|
+
.subscribe(result => {
|
|
179
|
+
if (result) {
|
|
180
|
+
this.notificationService.success(_('common.notify-updated-tags-success'));
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
nextImage() {
|
|
185
|
+
this.previewAssetIndex = this.previewAssetIndex + 1;
|
|
186
|
+
if (Array.isArray(this.assets)) {
|
|
187
|
+
this.asset = this.assets[this.previewAssetIndex];
|
|
188
|
+
this.updateButtonAccessibility();
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
previousImage() {
|
|
192
|
+
this.previewAssetIndex = this.previewAssetIndex - 1;
|
|
193
|
+
if (Array.isArray(this.assets)) {
|
|
194
|
+
this.asset = this.assets[this.previewAssetIndex];
|
|
195
|
+
this.updateButtonAccessibility();
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
updateButtonAccessibility() {
|
|
199
|
+
this.disableNextButton = this.assets?.[this.previewAssetIndex + 1]?.id ? false : true;
|
|
200
|
+
this.disablePreviousButton = this.assets?.[this.previewAssetIndex - 1]?.id ? false : true;
|
|
201
|
+
}
|
|
202
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AssetPreviewComponent, deps: [{ token: i1.FormBuilder }, { token: i2.DataService }, { token: i3.NotificationService }, { token: i0.ChangeDetectorRef }, { token: i4.ModalService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
203
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AssetPreviewComponent, selector: "vdr-asset-preview", inputs: { asset: "asset", assets: "assets", editable: "editable", customFields: "customFields", customFieldsForm: "customFieldsForm" }, outputs: { assetChange: "assetChange", editClick: "editClick" }, viewQueries: [{ propertyName: "imageElementRef", first: true, predicate: ["imageElement"], descendants: true, static: true }, { propertyName: "previewDivRef", first: true, predicate: ["previewDiv"], descendants: true, static: true }], ngImport: i0, template: "<vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card>\n <div *ngIf=\"!editable\" class=\"mb-2\">\n <a\n class=\"button-ghost\"\n [routerLink]=\"['/catalog', 'assets', asset.id]\"\n (click)=\"editClick.emit()\"\n >\n <clr-icon shape=\"edit\"></clr-icon>\n {{ 'common.edit' | translate }}\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </div>\n <vdr-form-field *ngIf=\"editable\" [label]=\"'common.name' | translate\" class=\"mb-2\">\n <input\n type=\"text\"\n [formControl]=\"form.get('name')\"\n [readonly]=\"!(['UpdateCatalog', 'UpdateAsset'] | hasPermission) || settingFocalPoint\"\n />\n </vdr-form-field>\n <vdr-labeled-data [label]=\"'common.name' | translate\" *ngIf=\"!editable\">\n <span class=\"elide\">\n {{ asset.name }}\n </span>\n </vdr-labeled-data>\n <vdr-labeled-data [label]=\"'asset.source-file' | translate\">\n <a [href]=\"asset.source\" [title]=\"asset.source\" target=\"_blank\" class=\"elide source-link\">{{\n getSourceFileName()\n }}</a>\n </vdr-labeled-data>\n\n <vdr-labeled-data [label]=\"'asset.original-asset-size' | translate\">\n {{ asset.fileSize | filesize }}\n </vdr-labeled-data>\n\n <vdr-labeled-data [label]=\"'asset.dimensions' | translate\">\n {{ asset.width }} x {{ asset.height }}\n </vdr-labeled-data>\n\n <vdr-labeled-data [label]=\"'asset.focal-point' | translate\">\n <span *ngIf=\"fpx\"\n ><clr-icon shape=\"crosshairs\"></clr-icon> x: {{ fpx | number : '1.2-2' }}, y:\n {{ fpy | number : '1.2-2' }}</span\n >\n <span *ngIf=\"!fpx\">{{ 'common.not-set' | translate }}</span>\n <div class=\"flex mt-1\">\n <button\n class=\"button-small mr-1\"\n [disabled]=\"settingFocalPoint\"\n (click)=\"setFocalPointStart()\"\n >\n <ng-container *ngIf=\"!fpx\">{{ 'asset.set-focal-point' | translate }}</ng-container>\n <ng-container *ngIf=\"fpx\">{{ 'asset.update-focal-point' | translate }}</ng-container>\n </button>\n <button\n class=\"button-small\"\n [disabled]=\"settingFocalPoint\"\n *ngIf=\"!!fpx\"\n (click)=\"removeFocalPoint()\"\n >\n {{ 'asset.unset-focal-point' | translate }}\n </button>\n </div>\n </vdr-labeled-data>\n <vdr-labeled-data [label]=\"'common.tags' | translate\">\n <ng-container *ngIf=\"editable\">\n <vdr-tag-selector [formControl]=\"form.get('tags')\"></vdr-tag-selector>\n <button class=\"button-small mt-1\" (click)=\"manageTags()\">\n <clr-icon shape=\"tags\"></clr-icon>\n {{ 'common.manage-tags' | translate }}\n </button>\n </ng-container>\n <div *ngIf=\"!editable\">\n <vdr-chip *ngFor=\"let tag of asset.tags\" [colorFrom]=\"tag.value\">\n <clr-icon shape=\"tag\" class=\"mr2\"></clr-icon>\n {{ tag.value }}</vdr-chip\n >\n </div>\n </vdr-labeled-data>\n </vdr-card>\n <vdr-card *ngIf=\"customFields.length\" [title]=\"'common.custom-fields' | translate\">\n <vdr-tabbed-custom-fields\n entityName=\"Asset\"\n [compact]=\"true\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"customFieldsForm\"\n [readonly]=\"!(['UpdateCatalog', 'UpdateAsset'] | hasPermission)\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n <vdr-card [title]=\"'asset.preview' | translate\">\n <vdr-form-field>\n <select name=\"options\" [(ngModel)]=\"size\" [disabled]=\"settingFocalPoint\">\n <option value=\"tiny\">tiny</option>\n <option value=\"thumb\">thumb</option>\n <option value=\"small\">small</option>\n <option value=\"medium\">medium</option>\n <option value=\"large\">large</option>\n <option value=\"\">full size</option>\n </select>\n </vdr-form-field>\n <div class=\"asset-detail\">{{ width }} x {{ height }}</div>\n <vdr-asset-preview-links [asset]=\"asset\"></vdr-asset-preview-links>\n </vdr-card>\n <vdr-card>\n <vdr-page-entity-info *ngIf=\"asset as entity\" [entity]=\"entity\"></vdr-page-entity-info>\n </vdr-card>\n </vdr-page-detail-sidebar>\n <div class=\"carousel-container\">\n <button *ngIf=\"showSlideButtons\" (click)=\"previousImage()\" class=\"carousel-button\" [class.disabled]=\"disablePreviousButton\">\n <clr-icon shape=\"caret left\" class=\"color-weight-800\"></clr-icon>\n </button>\n <div class=\"preview-image\" #previewDiv [class.centered]=\"centered\">\n <div class=\"image-wrapper\">\n <vdr-focal-point-control\n [width]=\"width\"\n [height]=\"height\"\n [fpx]=\"fpx\"\n [fpy]=\"fpy\"\n [editable]=\"settingFocalPoint\"\n (focalPointChange)=\"onFocalPointChange($event)\"\n >\n <img\n class=\"asset-image\"\n [src]=\"asset | assetPreview : size\"\n [ngClass]=\"size\"\n #imageElement\n (load)=\"onImageLoad()\"\n />\n </vdr-focal-point-control>\n <div class=\"focal-point-info\" *ngIf=\"settingFocalPoint\">\n <button class=\"icon-button\" (click)=\"setFocalPointCancel()\">\n <clr-icon shape=\"times\"></clr-icon>\n </button>\n <button\n class=\"btn btn-primary btn-sm\"\n (click)=\"setFocalPointEnd()\"\n [disabled]=\"!lastFocalPoint\"\n >\n <clr-icon shape=\"crosshairs\"></clr-icon>\n {{ 'asset.set-focal-point' | translate }}\n </button>\n </div>\n </div>\n </div>\n <button *ngIf=\"showSlideButtons\" (click)=\"nextImage()\" class=\"carousel-button\" [class.disabled]=\"disableNextButton\">\n <clr-icon shape=\"caret right\" class=\"color-weight-800\"></clr-icon>\n </button>\n </div>\n</vdr-page-detail-layout>\n", styles: [":host{height:100%}.preview-image{width:100%;max-width:750px;height:100%;min-height:60vh;overflow:auto;text-align:center;box-shadow:inset 0 0 5px #0000001a;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACuoAAArqAVDM774AAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAK0lEQVQ4T2P4jwP8xgFGNSADqDwGIF0DlMYAUH0YYFQDMoDKYwASNfz/DwB/JvcficphowAAAABJRU5ErkJggg==);margin-top:var(--space-unit);flex:1}.preview-image.centered{display:flex;align-items:center;justify-content:center}.preview-image vdr-focal-point-control{position:relative;box-shadow:0 0 10px -3px #00000026}.preview-image .image-wrapper{position:relative}.preview-image .asset-image{width:100%}.preview-image .asset-image.tiny{max-width:50px;max-height:50px}.preview-image .asset-image.thumb{max-width:150px;max-height:150px}.preview-image .asset-image.small{max-width:300px;max-height:300px}.preview-image .asset-image.medium{max-width:500px;max-height:500px}.preview-image .asset-image.large{max-width:800px;max-height:800px}.preview-image .focal-point-info{position:absolute;display:flex;right:0}.controls{display:flex;flex-direction:column;margin-inline-start:12px;min-width:15vw;max-width:25vw;transition:opacity .3s}.controls.fade{opacity:.5}.controls .name-input{margin-bottom:24px}.controls ::ng-deep .clr-control-container{width:100%}.controls ::ng-deep .clr-control-container .clr-input{width:100%}.controls .elide{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:block}.controls .source-link{direction:rtl}.controls .preview-select{display:flex;align-items:center}.controls .preview-select clr-select-container{margin-inline-end:12px}.carousel-container{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.carousel-container button.carousel-button{cursor:pointer;width:30px;height:30px;border:none;border-radius:50%;text-align:center;background-color:var(--color-grey-300)}.carousel-container button.carousel-button:hover{background-color:var(--color-grey-400)}.carousel-container .disabled{pointer-events:none;opacity:.4}\n"], dependencies: [{ kind: "directive", type: i5.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i8.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { kind: "component", type: i9.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"], outputs: ["readOnlyToggleChange"] }, { kind: "directive", type: i10.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "component", type: i11.LabeledDataComponent, selector: "vdr-labeled-data", inputs: ["label"] }, { kind: "component", type: i12.FocalPointControlComponent, selector: "vdr-focal-point-control", inputs: ["visible", "editable", "width", "height", "fpx", "fpy"], outputs: ["focalPointChange"] }, { kind: "component", type: i13.TagSelectorComponent, selector: "vdr-tag-selector", inputs: ["placeholder"] }, { kind: "component", type: i14.TabbedCustomFieldsComponent, selector: "vdr-tabbed-custom-fields", inputs: ["entityName", "customFields", "customFieldsFormGroup", "readonly", "compact", "showLabel"] }, { kind: "component", type: i15.AssetPreviewLinksComponent, selector: "vdr-asset-preview-links", inputs: ["asset"] }, { kind: "component", type: i16.PageEntityInfoComponent, selector: "vdr-page-entity-info", inputs: ["entity"] }, { kind: "component", type: i17.PageDetailLayoutComponent, selector: "vdr-page-detail-layout" }, { kind: "component", type: i18.PageDetailSidebarComponent, selector: "vdr-page-detail-sidebar" }, { kind: "component", type: i19.CardComponent, selector: "vdr-card", inputs: ["title", "paddingX"] }, { kind: "pipe", type: i6.DecimalPipe, name: "number" }, { kind: "pipe", type: i20.TranslatePipe, name: "translate" }, { kind: "pipe", type: i21.FileSizePipe, name: "filesize" }, { kind: "pipe", type: i22.HasPermissionPipe, name: "hasPermission" }, { kind: "pipe", type: i23.AssetPreviewPipe, name: "assetPreview" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
204
|
+
}
|
|
205
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AssetPreviewComponent, decorators: [{
|
|
206
|
+
type: Component,
|
|
207
|
+
args: [{ selector: 'vdr-asset-preview', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card>\n <div *ngIf=\"!editable\" class=\"mb-2\">\n <a\n class=\"button-ghost\"\n [routerLink]=\"['/catalog', 'assets', asset.id]\"\n (click)=\"editClick.emit()\"\n >\n <clr-icon shape=\"edit\"></clr-icon>\n {{ 'common.edit' | translate }}\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </div>\n <vdr-form-field *ngIf=\"editable\" [label]=\"'common.name' | translate\" class=\"mb-2\">\n <input\n type=\"text\"\n [formControl]=\"form.get('name')\"\n [readonly]=\"!(['UpdateCatalog', 'UpdateAsset'] | hasPermission) || settingFocalPoint\"\n />\n </vdr-form-field>\n <vdr-labeled-data [label]=\"'common.name' | translate\" *ngIf=\"!editable\">\n <span class=\"elide\">\n {{ asset.name }}\n </span>\n </vdr-labeled-data>\n <vdr-labeled-data [label]=\"'asset.source-file' | translate\">\n <a [href]=\"asset.source\" [title]=\"asset.source\" target=\"_blank\" class=\"elide source-link\">{{\n getSourceFileName()\n }}</a>\n </vdr-labeled-data>\n\n <vdr-labeled-data [label]=\"'asset.original-asset-size' | translate\">\n {{ asset.fileSize | filesize }}\n </vdr-labeled-data>\n\n <vdr-labeled-data [label]=\"'asset.dimensions' | translate\">\n {{ asset.width }} x {{ asset.height }}\n </vdr-labeled-data>\n\n <vdr-labeled-data [label]=\"'asset.focal-point' | translate\">\n <span *ngIf=\"fpx\"\n ><clr-icon shape=\"crosshairs\"></clr-icon> x: {{ fpx | number : '1.2-2' }}, y:\n {{ fpy | number : '1.2-2' }}</span\n >\n <span *ngIf=\"!fpx\">{{ 'common.not-set' | translate }}</span>\n <div class=\"flex mt-1\">\n <button\n class=\"button-small mr-1\"\n [disabled]=\"settingFocalPoint\"\n (click)=\"setFocalPointStart()\"\n >\n <ng-container *ngIf=\"!fpx\">{{ 'asset.set-focal-point' | translate }}</ng-container>\n <ng-container *ngIf=\"fpx\">{{ 'asset.update-focal-point' | translate }}</ng-container>\n </button>\n <button\n class=\"button-small\"\n [disabled]=\"settingFocalPoint\"\n *ngIf=\"!!fpx\"\n (click)=\"removeFocalPoint()\"\n >\n {{ 'asset.unset-focal-point' | translate }}\n </button>\n </div>\n </vdr-labeled-data>\n <vdr-labeled-data [label]=\"'common.tags' | translate\">\n <ng-container *ngIf=\"editable\">\n <vdr-tag-selector [formControl]=\"form.get('tags')\"></vdr-tag-selector>\n <button class=\"button-small mt-1\" (click)=\"manageTags()\">\n <clr-icon shape=\"tags\"></clr-icon>\n {{ 'common.manage-tags' | translate }}\n </button>\n </ng-container>\n <div *ngIf=\"!editable\">\n <vdr-chip *ngFor=\"let tag of asset.tags\" [colorFrom]=\"tag.value\">\n <clr-icon shape=\"tag\" class=\"mr2\"></clr-icon>\n {{ tag.value }}</vdr-chip\n >\n </div>\n </vdr-labeled-data>\n </vdr-card>\n <vdr-card *ngIf=\"customFields.length\" [title]=\"'common.custom-fields' | translate\">\n <vdr-tabbed-custom-fields\n entityName=\"Asset\"\n [compact]=\"true\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"customFieldsForm\"\n [readonly]=\"!(['UpdateCatalog', 'UpdateAsset'] | hasPermission)\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n <vdr-card [title]=\"'asset.preview' | translate\">\n <vdr-form-field>\n <select name=\"options\" [(ngModel)]=\"size\" [disabled]=\"settingFocalPoint\">\n <option value=\"tiny\">tiny</option>\n <option value=\"thumb\">thumb</option>\n <option value=\"small\">small</option>\n <option value=\"medium\">medium</option>\n <option value=\"large\">large</option>\n <option value=\"\">full size</option>\n </select>\n </vdr-form-field>\n <div class=\"asset-detail\">{{ width }} x {{ height }}</div>\n <vdr-asset-preview-links [asset]=\"asset\"></vdr-asset-preview-links>\n </vdr-card>\n <vdr-card>\n <vdr-page-entity-info *ngIf=\"asset as entity\" [entity]=\"entity\"></vdr-page-entity-info>\n </vdr-card>\n </vdr-page-detail-sidebar>\n <div class=\"carousel-container\">\n <button *ngIf=\"showSlideButtons\" (click)=\"previousImage()\" class=\"carousel-button\" [class.disabled]=\"disablePreviousButton\">\n <clr-icon shape=\"caret left\" class=\"color-weight-800\"></clr-icon>\n </button>\n <div class=\"preview-image\" #previewDiv [class.centered]=\"centered\">\n <div class=\"image-wrapper\">\n <vdr-focal-point-control\n [width]=\"width\"\n [height]=\"height\"\n [fpx]=\"fpx\"\n [fpy]=\"fpy\"\n [editable]=\"settingFocalPoint\"\n (focalPointChange)=\"onFocalPointChange($event)\"\n >\n <img\n class=\"asset-image\"\n [src]=\"asset | assetPreview : size\"\n [ngClass]=\"size\"\n #imageElement\n (load)=\"onImageLoad()\"\n />\n </vdr-focal-point-control>\n <div class=\"focal-point-info\" *ngIf=\"settingFocalPoint\">\n <button class=\"icon-button\" (click)=\"setFocalPointCancel()\">\n <clr-icon shape=\"times\"></clr-icon>\n </button>\n <button\n class=\"btn btn-primary btn-sm\"\n (click)=\"setFocalPointEnd()\"\n [disabled]=\"!lastFocalPoint\"\n >\n <clr-icon shape=\"crosshairs\"></clr-icon>\n {{ 'asset.set-focal-point' | translate }}\n </button>\n </div>\n </div>\n </div>\n <button *ngIf=\"showSlideButtons\" (click)=\"nextImage()\" class=\"carousel-button\" [class.disabled]=\"disableNextButton\">\n <clr-icon shape=\"caret right\" class=\"color-weight-800\"></clr-icon>\n </button>\n </div>\n</vdr-page-detail-layout>\n", styles: [":host{height:100%}.preview-image{width:100%;max-width:750px;height:100%;min-height:60vh;overflow:auto;text-align:center;box-shadow:inset 0 0 5px #0000001a;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACuoAAArqAVDM774AAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAK0lEQVQ4T2P4jwP8xgFGNSADqDwGIF0DlMYAUH0YYFQDMoDKYwASNfz/DwB/JvcficphowAAAABJRU5ErkJggg==);margin-top:var(--space-unit);flex:1}.preview-image.centered{display:flex;align-items:center;justify-content:center}.preview-image vdr-focal-point-control{position:relative;box-shadow:0 0 10px -3px #00000026}.preview-image .image-wrapper{position:relative}.preview-image .asset-image{width:100%}.preview-image .asset-image.tiny{max-width:50px;max-height:50px}.preview-image .asset-image.thumb{max-width:150px;max-height:150px}.preview-image .asset-image.small{max-width:300px;max-height:300px}.preview-image .asset-image.medium{max-width:500px;max-height:500px}.preview-image .asset-image.large{max-width:800px;max-height:800px}.preview-image .focal-point-info{position:absolute;display:flex;right:0}.controls{display:flex;flex-direction:column;margin-inline-start:12px;min-width:15vw;max-width:25vw;transition:opacity .3s}.controls.fade{opacity:.5}.controls .name-input{margin-bottom:24px}.controls ::ng-deep .clr-control-container{width:100%}.controls ::ng-deep .clr-control-container .clr-input{width:100%}.controls .elide{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:block}.controls .source-link{direction:rtl}.controls .preview-select{display:flex;align-items:center}.controls .preview-select clr-select-container{margin-inline-end:12px}.carousel-container{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.carousel-container button.carousel-button{cursor:pointer;width:30px;height:30px;border:none;border-radius:50%;text-align:center;background-color:var(--color-grey-300)}.carousel-container button.carousel-button:hover{background-color:var(--color-grey-400)}.carousel-container .disabled{pointer-events:none;opacity:.4}\n"] }]
|
|
208
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.DataService }, { type: i3.NotificationService }, { type: i0.ChangeDetectorRef }, { type: i4.ModalService }], propDecorators: { asset: [{
|
|
209
|
+
type: Input
|
|
210
|
+
}], assets: [{
|
|
211
|
+
type: Input
|
|
212
|
+
}], editable: [{
|
|
213
|
+
type: Input
|
|
214
|
+
}], customFields: [{
|
|
215
|
+
type: Input
|
|
216
|
+
}], customFieldsForm: [{
|
|
217
|
+
type: Input
|
|
218
|
+
}], assetChange: [{
|
|
219
|
+
type: Output
|
|
220
|
+
}], editClick: [{
|
|
221
|
+
type: Output
|
|
222
|
+
}], imageElementRef: [{
|
|
223
|
+
type: ViewChild,
|
|
224
|
+
args: ['imageElement', { static: true }]
|
|
225
|
+
}], previewDivRef: [{
|
|
226
|
+
type: ViewChild,
|
|
227
|
+
args: ['previewDiv', { static: true }]
|
|
228
|
+
}] } });
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LXByZXZpZXcvYXNzZXQtcHJldmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LXByZXZpZXcvYXNzZXQtcHJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFROUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVL0YsTUFBTSxPQUFPLHFCQUFxQjtJQTZCOUIsWUFDWSxXQUF3QixFQUN4QixXQUF3QixFQUN4QixtQkFBd0MsRUFDeEMsY0FBaUMsRUFDakMsWUFBMEI7UUFKMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsaUJBQVksR0FBWixZQUFZLENBQWM7UUEvQjdCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsaUJBQVksR0FBd0IsRUFBRSxDQUFDO1FBRXRDLGdCQUFXLEdBQUcsSUFB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QU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFpQjhDLGVBQWU7c0JBQW5FLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDUSxhQUFhO3NCQUEvRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEN1c3RvbUZpZWxkQ29uZmlnLCBVcGRhdGVBc3NldElucHV0IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RhdGEvcHJvdmlkZXJzL2RhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvbW9kYWwvbW9kYWwuc2VydmljZSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBBc3NldExpa2UgfSBmcm9tICcuLi9hc3NldC1nYWxsZXJ5L2Fzc2V0LWdhbGxlcnkudHlwZXMnO1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi9mb2NhbC1wb2ludC1jb250cm9sL2ZvY2FsLXBvaW50LWNvbnRyb2wuY29tcG9uZW50JztcbmltcG9ydCB7IE1hbmFnZVRhZ3NEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9tYW5hZ2UtdGFncy1kaWFsb2cvbWFuYWdlLXRhZ3MtZGlhbG9nLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIFByZXZpZXdQcmVzZXQgPSAndGlueScgfCAndGh1bWInIHwgJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8ICcnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Zkci1hc3NldC1wcmV2aWV3JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXNzZXQtcHJldmlldy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYXNzZXQtcHJldmlldy5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBc3NldFByZXZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgYXNzZXQ6IEFzc2V0TGlrZTtcbiAgICBASW5wdXQoKSBhc3NldHM/OiBBc3NldExpa2VbXTtcbiAgICBASW5wdXQoKSBlZGl0YWJsZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGN1c3RvbUZpZWxkczogQ3VzdG9tRmllbGRDb25maWdbXSA9IFtdO1xuICAgIEBJbnB1dCgpIGN1c3RvbUZpZWxkc0Zvcm06IFVudHlwZWRGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XG4gICAgQE91dHB1dCgpIGFzc2V0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxPbWl0PFVwZGF0ZUFzc2V0SW5wdXQsICdmb2NhbFBvaW50Jz4+KCk7XG4gICAgQE91dHB1dCgpIGVkaXRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgbmFtZTogJycsXG4gICAgICAgIHRhZ3M6IFtbXSBhcyBzdHJpbmdbXV0sXG4gICAgfSk7XG5cbiAgICBzaXplOiBQcmV2aWV3UHJlc2V0ID0gJ21lZGl1bSc7XG4gICAgd2lkdGggPSAwO1xuICAgIGhlaWdodCA9IDA7XG4gICAgY2VudGVyZWQgPSB0cnVlO1xuICAgIHNldHRpbmdGb2NhbFBvaW50ID0gZmFsc2U7XG4gICAgbGFzdEZvY2FsUG9pbnQ/OiBQb2ludDtcbiAgICBwcmV2aWV3QXNzZXRJbmRleCA9IDA7XG4gICAgZGlzYWJsZU5leHRCdXR0b24gPSBmYWxzZTtcbiAgICBkaXNhYmxlUHJldmlvdXNCdXR0b24gPSBmYWxzZTtcbiAgICBzaG93U2xpZGVCdXR0b25zID0gZmFsc2U7XG4gICAgQFZpZXdDaGlsZCgnaW1hZ2VFbGVtZW50JywgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSBpbWFnZUVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEltYWdlRWxlbWVudD47XG4gICAgQFZpZXdDaGlsZCgncHJldmlld0RpdicsIHsgc3RhdGljOiB0cnVlIH0pIHByaXZhdGUgcHJldmlld0RpdlJlZjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIHNpemVQcmlvclRvU2V0dGluZ0ZvY2FsUG9pbnQ6IFByZXZpZXdQcmVzZXQ7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxuICAgICkgeyB9XG5cbiAgICBnZXQgZnB4KCk6IG51bWJlciB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5hc3NldC5mb2NhbFBvaW50ID8gdGhpcy5hc3NldC5mb2NhbFBvaW50LnggOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBmcHkoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmFzc2V0LmZvY2FsUG9pbnQgPyB0aGlzLmFzc2V0LmZvY2FsUG9pbnQueSA6IG51bGw7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IHsgZm9jYWxQb2ludCB9ID0gdGhpcy5hc3NldDtcbiAgICAgICAgaWYgKHRoaXMuYXNzZXRzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd1NsaWRlQnV0dG9ucyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnByZXZpZXdBc3NldEluZGV4ID0gdGhpcy5hc3NldHMuZmluZEluZGV4KGFzc2V0ID0+IGFzc2V0LmlkID09PSB0aGlzLmFzc2V0LmlkKSB8fCAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zaG93U2xpZGVCdXR0b25zID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUJ1dHRvbkFjY2Vzc2liaWxpdHkoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUJ1dHRvbkFjY2Vzc2liaWxpdHkoKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnbmFtZScpPy5zZXRWYWx1ZSh0aGlzLmFzc2V0Lm5hbWUpO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCd0YWdzJyk/LnNldFZhbHVlKHRoaXMuYXNzZXQudGFncz8ubWFwKHQgPT4gdC52YWx1ZSkpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgIHRoaXMuYXNzZXRDaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICAgICAgaWQ6IHRoaXMuYXNzZXQuaWQsXG4gICAgICAgICAgICAgICAgbmFtZTogdmFsdWUubmFtZSxcbiAgICAgICAgICAgICAgICB0YWdzOiB2YWx1ZS50YWdzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKVxuICAgICAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSg1MCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlRGltZW5zaW9ucygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRTb3VyY2VGaWxlTmFtZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBwYXJ0cyA9IHRoaXMuYXNzZXQuc291cmNlLnNwbGl0KC9bXFxcXFxcL10vZyk7XG4gICAgICAgIHJldHVybiBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXTtcbiAgICB9XG5cbiAgICBvbkltYWdlTG9hZCgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVEaW1lbnNpb25zKCk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlRGltZW5zaW9ucygpIHtcbiAgICAgICAgY29uc3QgaW1nID0gdGhpcy5pbWFnZUVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5wcmV2aWV3RGl2UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGltZ1dpZHRoID0gaW1nLm5hdHVyYWxXaWR0aDtcbiAgICAgICAgY29uc3QgaW1nSGVpZ2h0ID0gaW1nLm5hdHVyYWxIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gY29udGFpbmVyLm9mZnNldFdpZHRoO1xuICAgICAgICBjb25zdCBjb250YWluZXJIZWlnaHQgPSBjb250YWluZXIub2Zmc2V0SGVpZ2h0O1xuXG4gICAgICAgIGNvbnN0IGNvbnN0cmFpblRvQ29udGFpbmVyID0gdGhpcy5zZXR0aW5nRm9jYWxQb2ludDtcbiAgICAgICAgaWYgKGNvbnN0cmFpblRvQ29udGFpbmVyKSB7XG4gICAgICAgICAgICBjb25zdCBjb250cm9sc01hcmdpblB4ID0gNDggKiAyO1xuICAgICAgICAgICAgY29uc3QgYXZhaWxhYmxlSGVpZ2h0ID0gY29udGFpbmVySGVpZ2h0IC0gY29udHJvbHNNYXJnaW5QeDtcbiAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZVdpZHRoID0gY29udGFpbmVyV2lkdGg7XG4gICAgICAgICAgICBjb25zdCBoUmF0aW8gPSBpbWdIZWlnaHQgLyBhdmFpbGFibGVIZWlnaHQ7XG4gICAgICAgICAgICBjb25zdCB3UmF0aW8gPSBpbWdXaWR0aCAvIGF2YWlsYWJsZVdpZHRoO1xuXG4gICAgICAgICAgICBjb25zdCBpbWFnZUV4Y2VlZHNBdmFpbGFibGVEaW1lbnNpb25zID0gMSA8IGhSYXRpbyB8fCAxIDwgd1JhdGlvO1xuICAgICAgICAgICAgaWYgKGltYWdlRXhjZWVkc0F2YWlsYWJsZURpbWVuc2lvbnMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmYWN0b3IgPSBoUmF0aW8gPCB3UmF0aW8gPyB3UmF0aW8gOiBoUmF0aW87XG4gICAgICAgICAgICAgICAgdGhpcy53aWR0aCA9IE1hdGgucm91bmQoaW1nV2lkdGggLyBmYWN0b3IpO1xuICAgICAgICAgICAgICAgIHRoaXMuaGVpZ2h0ID0gTWF0aC5yb3VuZChpbWdIZWlnaHQgLyBmYWN0b3IpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2VudGVyZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLndpZHRoID0gaW1nV2lkdGg7XG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gaW1nSGVpZ2h0O1xuICAgICAgICB0aGlzLmNlbnRlcmVkID0gaW1nV2lkdGggPD0gY29udGFpbmVyV2lkdGggJiYgaW1nSGVpZ2h0IDw9IGNvbnRhaW5lckhlaWdodDtcbiAgICB9XG5cbiAgICBzZXRGb2NhbFBvaW50U3RhcnQoKSB7XG4gICAgICAgIHRoaXMuc2l6ZVByaW9yVG9TZXR0aW5nRm9jYWxQb2ludCA9IHRoaXMuc2l6ZTtcbiAgICAgICAgdGhpcy5zaXplID0gJ21lZGl1bSc7XG4gICAgICAgIHRoaXMuc2V0dGluZ0ZvY2FsUG9pbnQgPSB0cnVlO1xuICAgICAgICB0aGlzLmxhc3RGb2NhbFBvaW50ID0gdGhpcy5hc3NldC5mb2NhbFBvaW50IHx8IHsgeDogMC41LCB5OiAwLjUgfTtcbiAgICAgICAgdGhpcy51cGRhdGVEaW1lbnNpb25zKCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlRm9jYWxQb2ludCgpIHtcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0XG4gICAgICAgICAgICAudXBkYXRlQXNzZXQoe1xuICAgICAgICAgICAgICAgIGlkOiB0aGlzLmFzc2V0LmlkLFxuICAgICAgICAgICAgICAgIGZvY2FsUG9pbnQ6IG51bGwsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2Fzc2V0LnVwZGF0ZS1mb2NhbC1wb2ludC1zdWNjZXNzJykpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFzc2V0ID0geyAuLi50aGlzLmFzc2V0LCBmb2NhbFBvaW50OiBudWxsIH07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoKSA9PiB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoXygnYXNzZXQudXBkYXRlLWZvY2FsLXBvaW50LWVycm9yJykpLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbkZvY2FsUG9pbnRDaGFuZ2UocG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIHRoaXMubGFzdEZvY2FsUG9pbnQgPSBwb2ludDtcbiAgICB9XG5cbiAgICBzZXRGb2NhbFBvaW50Q2FuY2VsKCkge1xuICAgICAgICB0aGlzLnNldHRpbmdGb2NhbFBvaW50ID0gZmFsc2U7XG4gICAgICAgIHRoaXMubGFzdEZvY2FsUG9pbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuc2l6ZSA9IHRoaXMuc2l6ZVByaW9yVG9TZXR0aW5nRm9jYWxQb2ludDtcbiAgICB9XG5cbiAgICBzZXRGb2NhbFBvaW50RW5kKCkge1xuICAgICAgICB0aGlzLnNldHRpbmdGb2NhbFBvaW50ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2l6ZSA9IHRoaXMuc2l6ZVByaW9yVG9TZXR0aW5nRm9jYWxQb2ludDtcbiAgICAgICAgaWYgKHRoaXMubGFzdEZvY2FsUG9pbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgeCwgeSB9ID0gdGhpcy5sYXN0Rm9jYWxQb2ludDtcbiAgICAgICAgICAgIHRoaXMubGFzdEZvY2FsUG9pbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3RcbiAgICAgICAgICAgICAgICAudXBkYXRlQXNzZXQoe1xuICAgICAgICAgICAgICAgICAgICBpZDogdGhpcy5hc3NldC5pZCxcbiAgICAgICAgICAgICAgICAgICAgZm9jYWxQb2ludDogeyB4LCB5IH0sXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdhc3NldC51cGRhdGUtZm9jYWwtcG9pbnQtc3VjY2VzcycpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXNzZXQgPSB7IC4uLnRoaXMuYXNzZXQsIGZvY2FsUG9pbnQ6IHsgeCwgeSB9IH07XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAoKSA9PiB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoXygnYXNzZXQudXBkYXRlLWZvY2FsLXBvaW50LWVycm9yJykpLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBtYW5hZ2VUYWdzKCkge1xuICAgICAgICB0aGlzLm1vZGFsU2VydmljZVxuICAgICAgICAgICAgLmZyb21Db21wb25lbnQoTWFuYWdlVGFnc0RpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgIHNpemU6ICdzbScsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnY29tbW9uLm5vdGlmeS11cGRhdGVkLXRhZ3Mtc3VjY2VzcycpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZXh0SW1hZ2UoKSB7XG4gICAgICAgIHRoaXMucHJldmlld0Fzc2V0SW5kZXggPSB0aGlzLnByZXZpZXdBc3NldEluZGV4ICsgMTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5hc3NldHMpKSB7XG4gICAgICAgICAgICB0aGlzLmFzc2V0ID0gdGhpcy5hc3NldHNbdGhpcy5wcmV2aWV3QXNzZXRJbmRleF07XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUJ1dHRvbkFjY2Vzc2liaWxpdHkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByZXZpb3VzSW1hZ2UoKSB7XG4gICAgICAgIHRoaXMucHJldmlld0Fzc2V0SW5kZXggPSB0aGlzLnByZXZpZXdBc3NldEluZGV4IC0gMTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5hc3NldHMpKSB7XG4gICAgICAgICAgICB0aGlzLmFzc2V0ID0gdGhpcy5hc3NldHNbdGhpcy5wcmV2aWV3QXNzZXRJbmRleF07XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUJ1dHRvbkFjY2Vzc2liaWxpdHkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZUJ1dHRvbkFjY2Vzc2liaWxpdHkoKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZU5leHRCdXR0b24gPSB0aGlzLmFzc2V0cz8uW3RoaXMucHJldmlld0Fzc2V0SW5kZXggKyAxXT8uaWQgPyBmYWxzZSA6IHRydWU7XG4gICAgICAgIHRoaXMuZGlzYWJsZVByZXZpb3VzQnV0dG9uID0gdGhpcy5hc3NldHM/Llt0aGlzLnByZXZpZXdBc3NldEluZGV4IC0gMV0/LmlkID8gZmFsc2UgOiB0cnVlO1xuICAgIH1cblxufVxuIiwiPHZkci1wYWdlLWRldGFpbC1sYXlvdXQ+XG4gICAgPHZkci1wYWdlLWRldGFpbC1zaWRlYmFyPlxuICAgICAgICA8dmRyLWNhcmQ+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWVkaXRhYmxlXCIgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24tZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9jYXRhbG9nJywgJ2Fzc2V0cycsIGFzc2V0LmlkXVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0Q2xpY2suZW1pdCgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImVkaXRcIj48L2Nsci1pY29uPlxuICAgICAgICAgICAgICAgICAgICB7eyAnY29tbW9uLmVkaXQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImFycm93IHJpZ2h0XCI+PC9jbHItaWNvbj5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDx2ZHItZm9ybS1maWVsZCAqbmdJZj1cImVkaXRhYmxlXCIgW2xhYmVsXT1cIidjb21tb24ubmFtZScgfCB0cmFuc2xhdGVcIiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybS5nZXQoJ25hbWUnKVwiXG4gICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCIhKFsnVXBkYXRlQ2F0YWxvZycsICdVcGRhdGVBc3NldCddIHwgaGFzUGVybWlzc2lvbikgfHwgc2V0dGluZ0ZvY2FsUG9pbnRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3Zkci1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPHZkci1sYWJlbGVkLWRhdGEgW2xhYmVsXT1cIidjb21tb24ubmFtZScgfCB0cmFuc2xhdGVcIiAqbmdJZj1cIiFlZGl0YWJsZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZWxpZGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgYXNzZXQubmFtZSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvdmRyLWxhYmVsZWQtZGF0YT5cbiAgICAgICAgICAgIDx2ZHItbGFiZWxlZC1kYXRhIFtsYWJlbF09XCInYXNzZXQuc291cmNlLWZpbGUnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiYXNzZXQuc291cmNlXCIgW3RpdGxlXT1cImFzc2V0LnNvdXJjZVwiIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzPVwiZWxpZGUgc291cmNlLWxpbmtcIj57e1xuICAgICAgICAgICAgICAgICAgICBnZXRTb3VyY2VGaWxlTmFtZSgpXG4gICAgICAgICAgICAgICAgfX08L2E+XG4gICAgICAgICAgICA8L3Zkci1sYWJlbGVkLWRhdGE+XG5cbiAgICAgICAgICAgIDx2ZHItbGFiZWxlZC1kYXRhIFtsYWJlbF09XCInYXNzZXQub3JpZ2luYWwtYXNzZXQtc2l6ZScgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgICAgICB7eyBhc3NldC5maWxlU2l6ZSB8IGZpbGVzaXplIH19XG4gICAgICAgICAgICA8L3Zkci1sYWJlbGVkLWRhdGE+XG5cbiAgICAgICAgICAgIDx2ZHItbGFiZWxlZC1kYXRhIFtsYWJlbF09XCInYXNzZXQuZGltZW5zaW9ucycgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgICAgICB7eyBhc3NldC53aWR0aCB9fSB4IHt7IGFzc2V0LmhlaWdodCB9fVxuICAgICAgICAgICAgPC92ZHItbGFiZWxlZC1kYXRhPlxuXG4gICAgICAgICAgICA8dmRyLWxhYmVsZWQtZGF0YSBbbGFiZWxdPVwiJ2Fzc2V0LmZvY2FsLXBvaW50JyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZnB4XCJcbiAgICAgICAgICAgICAgICAgICAgPjxjbHItaWNvbiBzaGFwZT1cImNyb3NzaGFpcnNcIj48L2Nsci1pY29uPiB4OiB7eyBmcHggfCBudW1iZXIgOiAnMS4yLTInIH19LCB5OlxuICAgICAgICAgICAgICAgICAgICB7eyBmcHkgfCBudW1iZXIgOiAnMS4yLTInIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWZweFwiPnt7ICdjb21tb24ubm90LXNldCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggbXQtMVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbi1zbWFsbCBtci0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZXR0aW5nRm9jYWxQb2ludFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0Rm9jYWxQb2ludFN0YXJ0KClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWZweFwiPnt7ICdhc3NldC5zZXQtZm9jYWwtcG9pbnQnIHwgdHJhbnNsYXRlIH19PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZnB4XCI+e3sgJ2Fzc2V0LnVwZGF0ZS1mb2NhbC1wb2ludCcgfCB0cmFuc2xhdGUgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLXNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZXR0aW5nRm9jYWxQb2ludFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiEhZnB4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVGb2NhbFBvaW50KClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnYXNzZXQudW5zZXQtZm9jYWwtcG9pbnQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC92ZHItbGFiZWxlZC1kYXRhPlxuICAgICAgICAgICAgPHZkci1sYWJlbGVkLWRhdGEgW2xhYmVsXT1cIidjb21tb24udGFncycgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWRpdGFibGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHZkci10YWctc2VsZWN0b3IgW2Zvcm1Db250cm9sXT1cImZvcm0uZ2V0KCd0YWdzJylcIj48L3Zkci10YWctc2VsZWN0b3I+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24tc21hbGwgbXQtMVwiIChjbGljayk9XCJtYW5hZ2VUYWdzKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInRhZ3NcIj48L2Nsci1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2NvbW1vbi5tYW5hZ2UtdGFncycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFlZGl0YWJsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8dmRyLWNoaXAgKm5nRm9yPVwibGV0IHRhZyBvZiBhc3NldC50YWdzXCIgW2NvbG9yRnJvbV09XCJ0YWcudmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInRhZ1wiIGNsYXNzPVwibXIyXCI+PC9jbHItaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHRhZy52YWx1ZSB9fTwvdmRyLWNoaXBcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC92ZHItbGFiZWxlZC1kYXRhPlxuICAgICAgICA8L3Zkci1jYXJkPlxuICAgICAgICA8dmRyLWNhcmQgKm5nSWY9XCJjdXN0b21GaWVsZHMubGVuZ3RoXCIgW3RpdGxlXT1cIidjb21tb24uY3VzdG9tLWZpZWxkcycgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgIDx2ZHItdGFiYmVkLWN1c3RvbS1maWVsZHNcbiAgICAgICAgICAgICAgICBlbnRpdHlOYW1lPVwiQXNzZXRcIlxuICAgICAgICAgICAgICAgIFtjb21wYWN0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtjdXN0b21GaWVsZHNdPVwiY3VzdG9tRmllbGRzXCJcbiAgICAgICAgICAgICAgICBbY3VzdG9tRmllbGRzRm9ybUdyb3VwXT1cImN1c3RvbUZpZWxkc0Zvcm1cIlxuICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCIhKFsnVXBkYXRlQ2F0YWxvZycsICdVcGRhdGVBc3NldCddIHwgaGFzUGVybWlzc2lvbilcIlxuICAgICAgICAgICAgPjwvdmRyLXRhYmJlZC1jdXN0b20tZmllbGRzPlxuICAgICAgICA8L3Zkci1jYXJkPlxuICAgICAgICA8dmRyLWNhcmQgW3RpdGxlXT1cIidhc3NldC5wcmV2aWV3JyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgPHZkci1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIDxzZWxlY3QgbmFtZT1cIm9wdGlvbnNcIiBbKG5nTW9kZWwpXT1cInNpemVcIiBbZGlzYWJsZWRdPVwic2V0dGluZ0ZvY2FsUG9pbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInRpbnlcIj50aW55PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJ0aHVtYlwiPnRodW1iPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJzbWFsbFwiPnNtYWxsPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJtZWRpdW1cIj5tZWRpdW08L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImxhcmdlXCI+bGFyZ2U8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPmZ1bGwgc2l6ZTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgPC92ZHItZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhc3NldC1kZXRhaWxcIj57eyB3aWR0aCB9fSB4IHt7IGhlaWdodCB9fTwvZGl2PlxuICAgICAgICAgICAgPHZkci1hc3NldC1wcmV2aWV3LWxpbmtzIFthc3NldF09XCJhc3NldFwiPjwvdmRyLWFzc2V0LXByZXZpZXctbGlua3M+XG4gICAgICAgIDwvdmRyLWNhcmQ+XG4gICAgICAgIDx2ZHItY2FyZD5cbiAgICAgICAgICAgIDx2ZHItcGFnZS1lbnRpdHktaW5mbyAqbmdJZj1cImFzc2V0IGFzIGVudGl0eVwiIFtlbnRpdHldPVwiZW50aXR5XCI+PC92ZHItcGFnZS1lbnRpdHktaW5mbz5cbiAgICAgICAgPC92ZHItY2FyZD5cbiAgICA8L3Zkci1wYWdlLWRldGFpbC1zaWRlYmFyPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1jb250YWluZXJcIj5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNob3dTbGlkZUJ1dHRvbnNcIiAoY2xpY2spPVwicHJldmlvdXNJbWFnZSgpXCIgY2xhc3M9XCJjYXJvdXNlbC1idXR0b25cIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZVByZXZpb3VzQnV0dG9uXCI+XG4gICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJjYXJldCBsZWZ0XCIgY2xhc3M9XCJjb2xvci13ZWlnaHQtODAwXCI+PC9jbHItaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcmV2aWV3LWltYWdlXCIgI3ByZXZpZXdEaXYgW2NsYXNzLmNlbnRlcmVkXT1cImNlbnRlcmVkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2Utd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIDx2ZHItZm9jYWwtcG9pbnQtY29udHJvbFxuICAgICAgICAgICAgICAgICAgICBbd2lkdGhdPVwid2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cImhlaWdodFwiXG4gICAgICAgICAgICAgICAgICAgIFtmcHhdPVwiZnB4XCJcbiAgICAgICAgICAgICAgICAgICAgW2ZweV09XCJmcHlcIlxuICAgICAgICAgICAgICAgICAgICBbZWRpdGFibGVdPVwic2V0dGluZ0ZvY2FsUG9pbnRcIlxuICAgICAgICAgICAgICAgICAgICAoZm9jYWxQb2ludENoYW5nZSk9XCJvbkZvY2FsUG9pbnRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFzc2V0LWltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiYXNzZXQgfCBhc3NldFByZXZpZXcgOiBzaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgI2ltYWdlRWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgKGxvYWQpPVwib25JbWFnZUxvYWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC92ZHItZm9jYWwtcG9pbnQtY29udHJvbD5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9jYWwtcG9pbnQtaW5mb1wiICpuZ0lmPVwic2V0dGluZ0ZvY2FsUG9pbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImljb24tYnV0dG9uXCIgKGNsaWNrKT1cInNldEZvY2FsUG9pbnRDYW5jZWwoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwidGltZXNcIj48L2Nsci1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRGb2NhbFBvaW50RW5kKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFsYXN0Rm9jYWxQb2ludFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImNyb3NzaGFpcnNcIj48L2Nsci1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2Fzc2V0LnNldC1mb2NhbC1wb2ludCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJzaG93U2xpZGVCdXR0b25zXCIgKGNsaWNrKT1cIm5leHRJbWFnZSgpXCIgY2xhc3M9XCJjYXJvdXNlbC1idXR0b25cIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZU5leHRCdXR0b25cIj5cbiAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImNhcmV0IHJpZ2h0XCIgY2xhc3M9XCJjb2xvci13ZWlnaHQtODAwXCI+PC9jbHItaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L3Zkci1wYWdlLWRldGFpbC1sYXlvdXQ+XG4iXX0=
|
package/esm2022/core/shared/components/asset-preview-dialog/asset-preview-dialog.component.mjs
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { gql } from 'apollo-angular';
|
|
3
|
+
import { of } from 'rxjs';
|
|
4
|
+
import { mergeMap } from 'rxjs/operators';
|
|
5
|
+
import { ASSET_FRAGMENT, TAG_FRAGMENT } from '../../../data/definitions/product-definitions';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../../data/providers/data.service";
|
|
8
|
+
import * as i2 from "@angular/common";
|
|
9
|
+
import * as i3 from "../asset-preview/asset-preview.component";
|
|
10
|
+
import * as i4 from "../modal-dialog/dialog-title.directive";
|
|
11
|
+
export const ASSET_PREVIEW_QUERY = gql `
|
|
12
|
+
query AssetPreviewQuery($id: ID!) {
|
|
13
|
+
asset(id: $id) {
|
|
14
|
+
...Asset
|
|
15
|
+
tags {
|
|
16
|
+
...Tag
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
${ASSET_FRAGMENT}
|
|
21
|
+
${TAG_FRAGMENT}
|
|
22
|
+
`;
|
|
23
|
+
export class AssetPreviewDialogComponent {
|
|
24
|
+
constructor(dataService) {
|
|
25
|
+
this.dataService = dataService;
|
|
26
|
+
}
|
|
27
|
+
ngOnInit() {
|
|
28
|
+
this.assetWithTags$ = of(this.asset).pipe(mergeMap(asset => {
|
|
29
|
+
if (this.hasTags(asset)) {
|
|
30
|
+
return of(asset);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
34
|
+
return this.dataService.product.getAsset(asset.id).mapSingle(data => data.asset);
|
|
35
|
+
}
|
|
36
|
+
}));
|
|
37
|
+
this.assetsWithTags$ = of(this.assets ?? []);
|
|
38
|
+
}
|
|
39
|
+
hasTags(asset) {
|
|
40
|
+
return asset.hasOwnProperty('tags');
|
|
41
|
+
}
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AssetPreviewDialogComponent, deps: [{ token: i1.DataService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AssetPreviewDialogComponent, selector: "vdr-asset-preview-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\n <div class=\"title-row\">\n {{ asset.name }}\n </div>\n</ng-template>\n\n<vdr-asset-preview\n *ngIf=\"assetWithTags$ | async as assetWithTags\"\n [asset]=\"assetWithTags\"\n (assetChange)=\"assetChanges = $event\"\n (editClick)=\"resolveWith()\"\n [assets]=\"assetsWithTags$ | async\"\n></vdr-asset-preview>\n", styles: [":host{height:70vh;overflow:auto}.update-button.hidden{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.AssetPreviewComponent, selector: "vdr-asset-preview", inputs: ["asset", "assets", "editable", "customFields", "customFieldsForm"], outputs: ["assetChange", "editClick"] }, { kind: "directive", type: i4.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
44
|
+
}
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AssetPreviewDialogComponent, decorators: [{
|
|
46
|
+
type: Component,
|
|
47
|
+
args: [{ selector: 'vdr-asset-preview-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\n <div class=\"title-row\">\n {{ asset.name }}\n </div>\n</ng-template>\n\n<vdr-asset-preview\n *ngIf=\"assetWithTags$ | async as assetWithTags\"\n [asset]=\"assetWithTags\"\n (assetChange)=\"assetChanges = $event\"\n (editClick)=\"resolveWith()\"\n [assets]=\"assetsWithTags$ | async\"\n></vdr-asset-preview>\n", styles: [":host{height:70vh;overflow:auto}.update-button.hidden{visibility:hidden}\n"] }]
|
|
48
|
+
}], ctorParameters: () => [{ type: i1.DataService }] });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcHJldmlldy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9hc3NldC1wcmV2aWV3LWRpYWxvZy9hc3NldC1wcmV2aWV3LWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LXByZXZpZXctZGlhbG9nL2Fzc2V0LXByZXZpZXctZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFPLFFBQVEsRUFBTyxNQUFNLGdCQUFnQixDQUFDO0FBR3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7OztBQUs3RixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7OztNQVNoQyxjQUFjO01BQ2QsWUFBWTtDQUNqQixDQUFDO0FBUUYsTUFBTSxPQUFPLDJCQUEyQjtJQUNwQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFJLENBQUM7SUFRakQsUUFBUTtRQUNKLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQ3JDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNiLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN0QixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osb0VBQW9FO2dCQUNwRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQU0sQ0FBQyxDQUFDO1lBQ3RGLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBRUYsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU8sT0FBTyxDQUFDLEtBQWdCO1FBQzVCLE9BQU8sS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDOytHQTFCUSwyQkFBMkI7bUdBQTNCLDJCQUEyQixnRUM5QnhDLGtYQWFBOzs0RkRpQmEsMkJBQTJCO2tCQU52QyxTQUFTOytCQUNJLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ3FsIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgbWVyZ2VNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgR2V0QXNzZXRRdWVyeSwgVXBkYXRlQXNzZXRJbnB1dCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xuaW1wb3J0IHsgQVNTRVRfRlJBR01FTlQsIFRBR19GUkFHTUVOVCB9IGZyb20gJy4uLy4uLy4uL2RhdGEvZGVmaW5pdGlvbnMvcHJvZHVjdC1kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RhdGEvcHJvdmlkZXJzL2RhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBEaWFsb2cgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvbW9kYWwvbW9kYWwudHlwZXMnO1xuaW1wb3J0IHsgQXNzZXRMaWtlIH0gZnJvbSAnLi4vYXNzZXQtZ2FsbGVyeS9hc3NldC1nYWxsZXJ5LnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IEFTU0VUX1BSRVZJRVdfUVVFUlkgPSBncWxgXG4gICAgcXVlcnkgQXNzZXRQcmV2aWV3UXVlcnkoJGlkOiBJRCEpIHtcbiAgICAgICAgYXNzZXQoaWQ6ICRpZCkge1xuICAgICAgICAgICAgLi4uQXNzZXRcbiAgICAgICAgICAgIHRhZ3Mge1xuICAgICAgICAgICAgICAgIC4uLlRhZ1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICR7QVNTRVRfRlJBR01FTlR9XG4gICAgJHtUQUdfRlJBR01FTlR9XG5gO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Zkci1hc3NldC1wcmV2aWV3LWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Fzc2V0LXByZXZpZXctZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9hc3NldC1wcmV2aWV3LWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBc3NldFByZXZpZXdEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBEaWFsb2c8dm9pZD4sIE9uSW5pdCB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UpIHsgfVxuICAgIGFzc2V0OiBBc3NldExpa2U7XG4gICAgYXNzZXRzPzogQXNzZXRMaWtlW107XG4gICAgYXNzZXRDaGFuZ2VzPzogVXBkYXRlQXNzZXRJbnB1dDtcbiAgICByZXNvbHZlV2l0aDogKHJlc3VsdD86IHZvaWQpID0+IHZvaWQ7XG4gICAgYXNzZXRXaXRoVGFncyQ6IE9ic2VydmFibGU8R2V0QXNzZXRRdWVyeVsnYXNzZXQnXT47XG4gICAgYXNzZXRzV2l0aFRhZ3MkOiBPYnNlcnZhYmxlPEFycmF5PEdldEFzc2V0UXVlcnlbJ2Fzc2V0J10+PjtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmFzc2V0V2l0aFRhZ3MkID0gb2YodGhpcy5hc3NldCkucGlwZShcbiAgICAgICAgICAgIG1lcmdlTWFwKGFzc2V0ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNUYWdzKGFzc2V0KSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoYXNzZXQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3QuZ2V0QXNzZXQoYXNzZXQuaWQpLm1hcFNpbmdsZShkYXRhID0+IGRhdGEuYXNzZXQhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmFzc2V0c1dpdGhUYWdzJCA9IG9mKHRoaXMuYXNzZXRzID8/IFtdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc1RhZ3MoYXNzZXQ6IEFzc2V0TGlrZSk6IGFzc2V0IGlzIEFzc2V0TGlrZSAmIHsgdGFnczogc3RyaW5nW10gfSB7XG4gICAgICAgIHJldHVybiBhc3NldC5oYXNPd25Qcm9wZXJ0eSgndGFncycpO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSB2ZHJEaWFsb2dUaXRsZT5cbiAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcm93XCI+XG4gICAgICAgIHt7IGFzc2V0Lm5hbWUgfX1cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjx2ZHItYXNzZXQtcHJldmlld1xuICAgICpuZ0lmPVwiYXNzZXRXaXRoVGFncyQgfCBhc3luYyBhcyBhc3NldFdpdGhUYWdzXCJcbiAgICBbYXNzZXRdPVwiYXNzZXRXaXRoVGFnc1wiXG4gICAgKGFzc2V0Q2hhbmdlKT1cImFzc2V0Q2hhbmdlcyA9ICRldmVudFwiXG4gICAgKGVkaXRDbGljayk9XCJyZXNvbHZlV2l0aCgpXCJcbiAgICBbYXNzZXRzXT1cImFzc2V0c1dpdGhUYWdzJCB8IGFzeW5jXCJcbj48L3Zkci1hc3NldC1wcmV2aWV3PlxuIl19
|