@vendure/admin-ui 2.0.0-next.2 → 2.0.0-next.21
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/catalog/catalog.module.d.ts +15 -11
- package/catalog/components/assign-to-channel-dialog/assign-to-channel-dialog.component.d.ts +22 -0
- package/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.d.ts +41 -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 +10 -2
- package/catalog/components/collection-detail/collection-detail.component.d.ts +13 -4
- package/catalog/components/collection-list/collection-list-bulk-actions.d.ts +6 -0
- package/catalog/components/collection-list/collection-list.component.d.ts +9 -5
- package/catalog/components/collection-tree/array-to-tree.d.ts +1 -1
- package/catalog/components/collection-tree/collection-tree-node.component.d.ts +14 -6
- package/catalog/components/collection-tree/collection-tree.component.d.ts +4 -1
- package/catalog/components/facet-list/facet-list-bulk-actions.d.ts +5 -0
- package/catalog/components/facet-list/facet-list.component.d.ts +2 -1
- package/catalog/components/generate-product-variants/generate-product-variants.component.d.ts +3 -3
- package/catalog/components/option-value-input/option-value-input.component.d.ts +21 -9
- package/catalog/components/product-detail/product-detail.component.d.ts +1 -1
- package/catalog/components/product-list/product-list-bulk-actions.d.ts +6 -0
- package/catalog/components/product-list/product-list.component.d.ts +4 -2
- package/catalog/components/product-variants-editor/product-variants-editor.component.d.ts +22 -12
- package/catalog/components/product-variants-list/product-variants-list.component.d.ts +1 -0
- package/catalog/public_api.d.ts +6 -1
- package/core/common/component-registry-types.d.ts +1 -1
- package/core/common/generated-types.d.ts +3184 -195
- package/core/common/utilities/bulk-action-utils.d.ts +19 -0
- package/core/common/utilities/configurable-operation-utils.d.ts +7 -2
- package/core/common/utilities/selection-manager.d.ts +30 -0
- package/core/common/version.d.ts +1 -1
- package/core/components/app-shell/app-shell.component.d.ts +1 -0
- package/core/data/definitions/collection-definitions.d.ts +4 -0
- package/core/data/definitions/facet-definitions.d.ts +3 -0
- package/core/data/definitions/order-definitions.d.ts +14 -0
- package/core/data/definitions/product-definitions.d.ts +2 -0
- package/core/data/providers/collection-data.service.d.ts +7 -0
- package/core/data/providers/facet-data.service.d.ts +3 -0
- package/core/data/providers/order-data.service.d.ts +18 -0
- package/core/data/providers/product-data.service.d.ts +2 -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/bulk-action-registry/register-bulk-action.d.ts +53 -0
- package/core/providers/local-storage/local-storage.service.d.ts +1 -0
- package/core/providers/modal/modal.types.d.ts +2 -0
- package/core/providers/nav-builder/nav-builder-types.d.ts +1 -0
- package/core/public_api.d.ts +24 -1
- package/core/shared/components/asset-gallery/asset-gallery.component.d.ts +27 -3
- package/core/shared/components/bulk-action-menu/bulk-action-menu.component.d.ts +32 -0
- package/core/shared/components/configurable-input/configurable-input.component.d.ts +8 -3
- package/core/shared/components/custom-field-control/custom-field-control.component.d.ts +6 -2
- package/core/shared/components/data-table/data-table.component.d.ts +29 -7
- package/core/shared/components/dropdown/dropdown-menu.component.d.ts +2 -1
- package/core/shared/components/facet-value-selector/facet-value-selector.component.d.ts +3 -2
- package/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.d.ts +38 -0
- package/{catalog → core/shared}/components/product-search-input/product-search-input.component.d.ts +1 -1
- 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/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 +4 -0
- package/core/shared/components/rich-text-editor/prosemirror/inputrules.d.ts +5 -5
- package/core/shared/components/rich-text-editor/prosemirror/menu/links.d.ts +1 -1
- package/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.d.ts +12 -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/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 +1 -1
- 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 +7 -3
- package/core/shared/components/rich-text-editor/prosemirror/types.d.ts +0 -2
- 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 +6 -2
- package/core/shared/components/select-toggle/select-toggle.component.d.ts +2 -1
- 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 +5 -17
- 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/facet-value-form-input/facet-value-form-input.component.d.ts +2 -0
- package/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.d.ts +23 -0
- package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +5 -1
- package/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.d.ts +6 -3
- package/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.d.ts +10 -2
- package/core/shared/pipes/custom-field-description.pipe.d.ts +11 -0
- package/core/shared/pipes/custom-field-label.pipe.d.ts +4 -10
- package/core/shared/shared.module.d.ts +68 -57
- package/customer/components/customer-group-list/customer-group-list.component.d.ts +6 -4
- package/customer/components/customer-group-member-list/customer-group-member-list.component.d.ts +11 -4
- package/esm2020/catalog/catalog.module.mjs +31 -10
- package/esm2020/catalog/components/apply-facet-dialog/apply-facet-dialog.component.mjs +1 -1
- package/esm2020/catalog/components/assets/assets.component.mjs +2 -2
- package/esm2020/catalog/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.mjs +4 -1
- package/esm2020/catalog/components/assign-to-channel-dialog/assign-to-channel-dialog.component.mjs +50 -0
- package/esm2020/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.mjs +84 -0
- package/esm2020/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.graphql.mjs +69 -0
- package/esm2020/catalog/components/collection-contents/collection-contents.component.mjs +61 -13
- package/esm2020/catalog/components/collection-detail/collection-detail.component.mjs +70 -32
- package/esm2020/catalog/components/collection-list/collection-list-bulk-actions.mjs +143 -0
- package/esm2020/catalog/components/collection-list/collection-list.component.mjs +46 -12
- package/esm2020/catalog/components/collection-tree/array-to-tree.mjs +3 -3
- package/esm2020/catalog/components/collection-tree/collection-tree-node.component.mjs +36 -10
- package/esm2020/catalog/components/collection-tree/collection-tree.component.mjs +9 -4
- package/esm2020/catalog/components/facet-detail/facet-detail.component.mjs +3 -3
- package/esm2020/catalog/components/facet-list/facet-list-bulk-actions.mjs +202 -0
- package/esm2020/catalog/components/facet-list/facet-list.component.mjs +14 -5
- package/esm2020/catalog/components/generate-product-variants/generate-product-variants.component.mjs +12 -4
- package/esm2020/catalog/components/option-value-input/option-value-input.component.mjs +70 -11
- package/esm2020/catalog/components/product-detail/product-detail.component.mjs +36 -24
- package/esm2020/catalog/components/product-list/product-list-bulk-actions.mjs +168 -0
- package/esm2020/catalog/components/product-list/product-list.component.mjs +13 -9
- package/esm2020/catalog/components/product-variants-editor/product-variants-editor.component.mjs +130 -19
- package/esm2020/catalog/components/product-variants-list/product-variants-list.component.mjs +9 -3
- package/esm2020/catalog/providers/routing/collection-resolver.mjs +2 -1
- package/esm2020/catalog/public_api.mjs +7 -2
- package/esm2020/core/app.component.module.mjs +1 -1
- package/esm2020/core/common/base-detail.component.mjs +1 -1
- package/esm2020/core/common/component-registry-types.mjs +1 -1
- package/esm2020/core/common/deactivate-aware.mjs +1 -1
- package/esm2020/core/common/generated-types.mjs +31 -1
- package/esm2020/core/common/introspection-result.mjs +296 -189
- package/esm2020/core/common/utilities/bulk-action-utils.mjs +35 -0
- package/esm2020/core/common/utilities/configurable-operation-utils.mjs +37 -10
- package/esm2020/core/common/utilities/selection-manager.mjs +96 -0
- package/esm2020/core/common/version.mjs +2 -2
- package/esm2020/core/components/app-shell/app-shell.component.mjs +6 -5
- package/esm2020/core/components/breadcrumb/breadcrumb.component.mjs +2 -2
- package/esm2020/core/components/channel-switcher/channel-switcher.component.mjs +1 -1
- package/esm2020/core/components/main-nav/main-nav.component.mjs +3 -3
- package/esm2020/core/components/user-menu/user-menu.component.mjs +1 -1
- package/esm2020/core/core.module.mjs +1 -1
- package/esm2020/core/data/definitions/collection-definitions.mjs +47 -1
- package/esm2020/core/data/definitions/facet-definitions.mjs +31 -1
- package/esm2020/core/data/definitions/order-definitions.mjs +583 -455
- package/esm2020/core/data/definitions/product-definitions.mjs +23 -1
- package/esm2020/core/data/definitions/shared-definitions.mjs +29 -28
- package/esm2020/core/data/providers/collection-data.service.mjs +20 -2
- package/esm2020/core/data/providers/customer-data.service.mjs +6 -1
- package/esm2020/core/data/providers/facet-data.service.mjs +18 -2
- package/esm2020/core/data/providers/order-data.service.mjs +43 -2
- package/esm2020/core/data/providers/product-data.service.mjs +10 -2
- package/esm2020/core/data/providers/promotion-data.service.mjs +1 -1
- package/esm2020/core/data/utils/remove-readonly-custom-fields.mjs +8 -1
- package/esm2020/core/providers/bulk-action-registry/bulk-action-registry.service.mjs +28 -0
- package/esm2020/core/providers/bulk-action-registry/bulk-action-types.mjs +2 -0
- package/esm2020/core/providers/bulk-action-registry/register-bulk-action.mjs +63 -0
- package/esm2020/core/providers/dashboard-widget/dashboard-widget.service.mjs +1 -4
- package/esm2020/core/providers/local-storage/local-storage.service.mjs +1 -1
- package/esm2020/core/providers/modal/modal.service.mjs +2 -1
- package/esm2020/core/providers/modal/modal.types.mjs +1 -1
- package/esm2020/core/providers/nav-builder/nav-builder-types.mjs +1 -1
- package/esm2020/core/public_api.mjs +25 -2
- package/esm2020/core/shared/components/action-bar/action-bar.component.mjs +7 -15
- package/esm2020/core/shared/components/address-form/address-form.component.mjs +3 -3
- package/esm2020/core/shared/components/asset-gallery/asset-gallery.component.mjs +34 -51
- package/esm2020/core/shared/components/asset-preview/asset-preview.component.mjs +4 -4
- package/esm2020/core/shared/components/asset-preview-links/asset-preview-links.component.mjs +1 -1
- package/esm2020/core/shared/components/bulk-action-menu/bulk-action-menu.component.mjs +97 -0
- package/esm2020/core/shared/components/configurable-input/configurable-input.component.mjs +22 -10
- package/esm2020/core/shared/components/custom-field-control/custom-field-control.component.mjs +18 -10
- package/esm2020/core/shared/components/data-table/data-table.component.mjs +64 -14
- package/esm2020/core/shared/components/datetime-picker/datetime-picker.component.mjs +1 -1
- package/esm2020/core/shared/components/dropdown/dropdown-menu.component.mjs +26 -23
- package/esm2020/core/shared/components/dropdown/dropdown-trigger.directive.mjs +1 -1
- package/esm2020/core/shared/components/entity-info/entity-info.component.mjs +1 -1
- package/esm2020/core/shared/components/facet-value-selector/facet-value-selector.component.mjs +13 -6
- package/esm2020/core/shared/components/formatted-address/formatted-address.component.mjs +3 -3
- package/esm2020/core/shared/components/help-tooltip/help-tooltip.component.mjs +2 -2
- package/esm2020/core/shared/components/history-entry-detail/history-entry-detail.component.mjs +1 -1
- package/esm2020/core/shared/components/language-selector/language-selector.component.mjs +3 -3
- package/esm2020/core/shared/components/object-tree/object-tree.component.mjs +1 -1
- package/esm2020/core/shared/components/order-state-label/order-state-label.component.mjs +2 -1
- package/esm2020/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.mjs +135 -0
- package/esm2020/core/shared/components/product-search-input/product-search-input.component.mjs +108 -0
- package/esm2020/core/shared/components/product-variant-selector/product-variant-selector.component.mjs +2 -2
- package/esm2020/core/shared/components/radio-card/radio-card-fieldset.component.mjs +54 -0
- package/esm2020/core/shared/components/radio-card/radio-card.component.mjs +53 -0
- package/esm2020/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.mjs +3 -3
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.mjs +136 -0
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.mjs +46 -0
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/custom-nodes.mjs +57 -0
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/links.mjs +4 -4
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.mjs +22 -1
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/menu-plugin.mjs +12 -0
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/menu.mjs +73 -18
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.mjs +16 -0
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.mjs +100 -0
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.mjs +96 -0
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/plugins/tables-plugin.mjs +166 -0
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.mjs +47 -18
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/types.mjs +1 -1
- package/esm2020/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.mjs +59 -0
- package/esm2020/core/shared/components/rich-text-editor/rich-text-editor.component.mjs +22 -10
- package/esm2020/core/shared/components/select-toggle/select-toggle.component.mjs +6 -3
- package/esm2020/core/shared/components/simple-dialog/simple-dialog.component.mjs +3 -3
- package/esm2020/core/shared/components/ui-extension-point/ui-extension-point.component.mjs +1 -1
- package/esm2020/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.mjs +57 -0
- package/esm2020/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.mjs +63 -0
- package/esm2020/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.mjs +48 -83
- package/esm2020/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.mjs +45 -0
- package/esm2020/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.mjs +3 -3
- package/esm2020/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.mjs +12 -3
- package/esm2020/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.mjs +48 -0
- package/esm2020/core/shared/dynamic-form-inputs/register-dynamic-input-components.mjs +7 -1
- package/esm2020/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.mjs +11 -9
- package/esm2020/core/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.mjs +1 -1
- package/esm2020/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.mjs +21 -11
- package/esm2020/core/shared/pipes/custom-field-description.pipe.mjs +30 -0
- package/esm2020/core/shared/pipes/custom-field-label.pipe.mjs +7 -19
- package/esm2020/core/shared/pipes/locale-currency.pipe.mjs +10 -2
- package/esm2020/core/shared/pipes/state-i18n-token.pipe.mjs +2 -1
- package/esm2020/core/shared/shared.module.mjs +49 -5
- package/esm2020/customer/components/address-card/address-card.component.mjs +1 -1
- package/esm2020/customer/components/customer-detail/customer-detail.component.mjs +1 -1
- package/esm2020/customer/components/customer-group-list/customer-group-list.component.mjs +33 -18
- package/esm2020/customer/components/customer-group-member-list/customer-group-member-list.component.mjs +3 -3
- package/esm2020/customer/components/customer-history/customer-history.component.mjs +1 -1
- package/esm2020/customer/components/customer-list/customer-list.component.mjs +3 -3
- package/esm2020/dashboard/components/dashboard/dashboard.component.mjs +2 -2
- package/esm2020/dashboard/components/dashboard-widget/dashboard-widget.component.mjs +2 -2
- package/esm2020/dashboard/dashboard.module.mjs +6 -2
- package/esm2020/dashboard/widgets/latest-orders-widget/latest-orders-widget.component.mjs +1 -1
- package/esm2020/dashboard/widgets/order-summary-widget/order-summary-widget.component.mjs +2 -2
- package/esm2020/login/components/login/login.component.mjs +3 -3
- package/esm2020/marketing/components/promotion-detail/promotion-detail.component.mjs +3 -3
- package/esm2020/marketing/components/promotion-list/promotion-list.component.mjs +1 -1
- package/esm2020/order/components/cancel-order-dialog/cancel-order-dialog.component.mjs +1 -1
- package/esm2020/order/components/coupon-code-selector/coupon-code-selector.component.mjs +42 -0
- package/esm2020/order/components/draft-order-detail/draft-order-detail.component.mjs +187 -0
- package/esm2020/order/components/draft-order-variant-selector/draft-order-variant-selector.component.mjs +59 -0
- package/esm2020/order/components/fulfill-order-dialog/fulfill-order-dialog.component.mjs +7 -3
- package/esm2020/order/components/fulfillment-card/fulfillment-card.component.mjs +1 -1
- package/esm2020/order/components/fulfillment-detail/fulfillment-detail.component.mjs +8 -17
- package/esm2020/order/components/line-fulfillment/line-fulfillment.component.mjs +8 -22
- package/esm2020/order/components/order-custom-fields-card/order-custom-fields-card.component.mjs +30 -6
- package/esm2020/order/components/order-detail/order-detail.component.mjs +80 -40
- package/esm2020/order/components/order-editor/order-editor.component.mjs +15 -14
- package/esm2020/order/components/order-edits-preview-dialog/order-edits-preview-dialog.component.mjs +1 -1
- package/esm2020/order/components/order-history/order-history.component.mjs +1 -1
- package/esm2020/order/components/order-list/order-list.component.mjs +40 -17
- package/esm2020/order/components/order-payment-card/order-payment-card.component.mjs +3 -3
- package/esm2020/order/components/order-table/order-table.component.mjs +29 -6
- package/esm2020/order/components/refund-order-dialog/refund-order-dialog.component.mjs +2 -2
- package/esm2020/order/components/select-address-dialog/select-address-dialog.component.mjs +89 -0
- package/esm2020/order/components/select-address-dialog/select-address-dialog.graphql.mjs +14 -0
- package/esm2020/order/components/select-customer-dialog/select-customer-dialog.component.mjs +59 -0
- package/esm2020/order/components/select-shipping-method-dialog/select-shipping-method-dialog.component.mjs +31 -0
- package/esm2020/order/order.module.mjs +20 -2
- package/esm2020/order/order.routes.mjs +23 -4
- package/esm2020/order/providers/routing/order-resolver.mjs +29 -11
- package/esm2020/order/providers/routing/order.guard.mjs +37 -0
- package/esm2020/order/public_api.mjs +9 -1
- package/esm2020/settings/components/administrator-list/administrator-list.component.mjs +1 -1
- package/esm2020/settings/components/channel-list/channel-list.component.mjs +1 -1
- package/esm2020/settings/components/country-list/country-list.component.mjs +3 -3
- package/esm2020/settings/components/payment-method-detail/payment-method-detail.component.mjs +1 -1
- package/esm2020/settings/components/payment-method-list/payment-method-list.component.mjs +1 -1
- package/esm2020/settings/components/permission-grid/permission-grid.component.mjs +1 -1
- package/esm2020/settings/components/profile/profile.component.mjs +3 -3
- package/esm2020/settings/components/role-list/role-list.component.mjs +1 -1
- package/esm2020/settings/components/shipping-method-detail/shipping-method-detail.component.mjs +4 -2
- package/esm2020/settings/components/shipping-method-list/shipping-method-list.component.mjs +1 -1
- package/esm2020/settings/components/tax-category-list/tax-category-list.component.mjs +1 -1
- package/esm2020/settings/components/tax-rate-list/tax-rate-list.component.mjs +1 -1
- package/esm2020/settings/components/zone-detail-dialog/zone-detail-dialog.component.mjs +2 -2
- package/esm2020/settings/components/zone-list/zone-list.component.mjs +3 -3
- package/esm2020/settings/components/zone-member-list/zone-member-list.component.mjs +3 -3
- package/esm2020/system/components/health-check/health-check.component.mjs +2 -2
- package/esm2020/system/components/job-list/job-list.component.mjs +1 -1
- package/fesm2015/vendure-admin-ui-catalog.mjs +1206 -228
- package/fesm2015/vendure-admin-ui-catalog.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-core.mjs +9451 -7332
- package/fesm2015/vendure-admin-ui-core.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-customer.mjs +36 -23
- package/fesm2015/vendure-admin-ui-customer.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-dashboard.mjs +11 -7
- package/fesm2015/vendure-admin-ui-dashboard.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-login.mjs +2 -2
- package/fesm2015/vendure-admin-ui-login.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-marketing.mjs +3 -3
- package/fesm2015/vendure-admin-ui-marketing.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-order.mjs +1184 -599
- package/fesm2015/vendure-admin-ui-order.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-settings.mjs +21 -19
- package/fesm2015/vendure-admin-ui-settings.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-system.mjs +3 -3
- package/fesm2020/vendure-admin-ui-catalog.mjs +1190 -230
- package/fesm2020/vendure-admin-ui-catalog.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-core.mjs +9539 -7437
- package/fesm2020/vendure-admin-ui-core.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-customer.mjs +36 -23
- package/fesm2020/vendure-admin-ui-customer.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-dashboard.mjs +11 -7
- package/fesm2020/vendure-admin-ui-dashboard.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-login.mjs +2 -2
- package/fesm2020/vendure-admin-ui-login.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-marketing.mjs +3 -3
- package/fesm2020/vendure-admin-ui-marketing.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-order.mjs +1194 -614
- package/fesm2020/vendure-admin-ui-order.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-settings.mjs +21 -19
- package/fesm2020/vendure-admin-ui-settings.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-system.mjs +3 -3
- package/order/components/coupon-code-selector/coupon-code-selector.component.d.ts +21 -0
- package/order/components/draft-order-detail/draft-order-detail.component.d.ts +52 -0
- package/order/components/draft-order-variant-selector/draft-order-variant-selector.component.d.ts +24 -0
- package/order/components/order-custom-fields-card/order-custom-fields-card.component.d.ts +4 -2
- package/order/components/order-editor/order-editor.component.d.ts +1 -6
- package/order/components/order-list/order-list.component.d.ts +2 -0
- package/order/components/order-table/order-table.component.d.ts +12 -2
- 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 +25 -0
- package/order/components/select-shipping-method-dialog/select-shipping-method-dialog.component.d.ts +19 -0
- package/order/order.module.d.ts +9 -3
- package/order/providers/routing/order-resolver.d.ts +8 -3
- package/order/providers/routing/order.guard.d.ts +12 -0
- package/order/public_api.d.ts +8 -0
- package/package.json +13 -12
- package/settings/components/zone-member-list/zone-member-list.component.d.ts +3 -1
- package/static/i18n-messages/cs.json +50 -3
- package/static/i18n-messages/de.json +53 -3
- package/static/i18n-messages/en.json +55 -8
- package/static/i18n-messages/es.json +50 -3
- package/static/i18n-messages/fr.json +50 -3
- package/static/i18n-messages/it.json +50 -3
- package/static/i18n-messages/pl.json +50 -3
- package/static/i18n-messages/pt_BR.json +50 -3
- package/static/i18n-messages/pt_PT.json +50 -3
- package/static/i18n-messages/ru.json +50 -3
- package/static/i18n-messages/uk.json +50 -3
- package/static/i18n-messages/zh_Hans.json +50 -3
- package/static/i18n-messages/zh_Hant.json +50 -3
- package/static/styles/_variables.scss +4 -0
- package/static/styles/global/_forms.scss +8 -7
- package/static/styles/global/_overrides.scss +11 -1
- package/static/styles/global/_sass-overrides.scss +3 -0
- package/static/styles/global/_utilities.scss +14 -0
- package/static/styles/styles.scss +1 -0
- package/static/styles/theme/default.scss +13 -1
- package/static/styles/ui-extension-theme.scss +1 -0
- package/static/theme.min.css +1 -1
- package/core/shared/components/rich-text-editor/prosemirror/menu/images.d.ts +0 -4
- package/esm2020/catalog/components/product-search-input/product-search-input.component.mjs +0 -107
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/images.mjs +0 -36
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { assertNever } from '@vendure/common/lib/shared-utils';
|
|
1
2
|
/**
|
|
2
3
|
* ConfigArg values are always stored as strings. If they are not primitives, then
|
|
3
4
|
* they are JSON-encoded. This function unwraps them back into their original
|
|
@@ -5,7 +6,7 @@
|
|
|
5
6
|
*/
|
|
6
7
|
export function getConfigArgValue(value) {
|
|
7
8
|
try {
|
|
8
|
-
return value ? JSON.parse(value) : undefined;
|
|
9
|
+
return value != null ? JSON.parse(value) : undefined;
|
|
9
10
|
}
|
|
10
11
|
catch (e) {
|
|
11
12
|
return value;
|
|
@@ -42,21 +43,29 @@ export function configurableDefinitionToInstance(def) {
|
|
|
42
43
|
* ```
|
|
43
44
|
* {
|
|
44
45
|
* code: 'my-operation',
|
|
45
|
-
*
|
|
46
|
+
* arguments: [
|
|
46
47
|
* { name: 'someProperty', value: 'foo' }
|
|
47
48
|
* ]
|
|
48
49
|
* }
|
|
49
50
|
* ```
|
|
50
51
|
*/
|
|
51
52
|
export function toConfigurableOperationInput(operation, formValueOperations) {
|
|
53
|
+
const argsArray = Array.isArray(formValueOperations.args) ? formValueOperations.args : undefined;
|
|
54
|
+
const argsMap = !Array.isArray(formValueOperations.args) ? formValueOperations.args : undefined;
|
|
52
55
|
return {
|
|
53
56
|
code: operation.code,
|
|
54
|
-
arguments:
|
|
55
|
-
name
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
arguments: operation.args.map(({ name, value }, j) => {
|
|
58
|
+
const formValue = argsArray?.find(arg => arg.name === name)?.value ?? argsMap?.[name];
|
|
59
|
+
if (formValue == null) {
|
|
60
|
+
throw new Error(`Cannot find an argument value for the key "${name}"`);
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
name,
|
|
64
|
+
value: formValue?.hasOwnProperty('value')
|
|
65
|
+
? encodeConfigArgValue(formValue.value)
|
|
66
|
+
: encodeConfigArgValue(formValue),
|
|
67
|
+
};
|
|
68
|
+
}),
|
|
60
69
|
};
|
|
61
70
|
}
|
|
62
71
|
export function configurableOperationValueIsValid(def, value) {
|
|
@@ -78,6 +87,24 @@ export function configurableOperationValueIsValid(def, value) {
|
|
|
78
87
|
* Returns a default value based on the type of the config arg.
|
|
79
88
|
*/
|
|
80
89
|
export function getDefaultConfigArgValue(arg) {
|
|
81
|
-
|
|
90
|
+
if (arg.list) {
|
|
91
|
+
return [];
|
|
92
|
+
}
|
|
93
|
+
if (arg.defaultValue != null) {
|
|
94
|
+
return arg.defaultValue;
|
|
95
|
+
}
|
|
96
|
+
const type = arg.type;
|
|
97
|
+
switch (type) {
|
|
98
|
+
case 'string':
|
|
99
|
+
case 'datetime':
|
|
100
|
+
case 'float':
|
|
101
|
+
case 'ID':
|
|
102
|
+
case 'int':
|
|
103
|
+
return null;
|
|
104
|
+
case 'boolean':
|
|
105
|
+
return false;
|
|
106
|
+
default:
|
|
107
|
+
assertNever(type);
|
|
108
|
+
}
|
|
82
109
|
}
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhYmxlLW9wZXJhdGlvbi11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tbW9uL3V0aWxpdGllcy9jb25maWd1cmFibGUtb3BlcmF0aW9uLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQVMvRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEtBQVU7SUFDeEMsSUFBSTtRQUNBLE9BQU8sS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0tBQ3hEO0lBQUMsT0FBTyxDQUFNLEVBQUU7UUFDYixPQUFPLEtBQUssQ0FBQztLQUNoQjtBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsS0FBVTtJQUMzQyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQ25GLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxnQ0FBZ0MsQ0FDNUMsR0FBb0M7SUFFcEMsT0FBTztRQUNILEdBQUcsR0FBRztRQUNOLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNyQixPQUFPO2dCQUNILEdBQUcsR0FBRztnQkFDTixLQUFLLEVBQUUsd0JBQXdCLENBQUMsR0FBRyxDQUFDO2FBQ3ZDLENBQUM7UUFDTixDQUFDLENBQUM7S0FDb0IsQ0FBQztBQUMvQixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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eyBDb25maWdBcmdUeXBlLCBDdXN0b21GaWVsZFR5cGUgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC10eXBlcyc7XHJcbmltcG9ydCB7IGFzc2VydE5ldmVyIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIENvbmZpZ0FyZ0RlZmluaXRpb24sXHJcbiAgICBDb25maWd1cmFibGVPcGVyYXRpb24sXHJcbiAgICBDb25maWd1cmFibGVPcGVyYXRpb25EZWZpbml0aW9uLFxyXG4gICAgQ29uZmlndXJhYmxlT3BlcmF0aW9uSW5wdXQsXHJcbn0gZnJvbSAnLi4vZ2VuZXJhdGVkLXR5cGVzJztcclxuXHJcbi8qKlxyXG4gKiBDb25maWdBcmcgdmFsdWVzIGFyZSBhbHdheXMgc3RvcmVkIGFzIHN0cmluZ3MuIElmIHRoZXkgYXJlIG5vdCBwcmltaXRpdmVzLCB0aGVuXHJcbiAqIHRoZXkgYXJlIEpTT04tZW5jb2RlZC4gVGhpcyBmdW5jdGlvbiB1bndyYXBzIHRoZW0gYmFjayBpbnRvIHRoZWlyIG9yaWdpbmFsXHJcbiAqIGRhdGEgdHlwZS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25maWdBcmdWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZSAhPSBudWxsID8gSlNPTi5wYXJzZSh2YWx1ZSkgOiB1bmRlZmluZWQ7XHJcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVDb25maWdBcmdWYWx1ZSh2YWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IEpTT04uc3RyaW5naWZ5KHZhbHVlKSA6ICh2YWx1ZSA/PyAnJykudG9TdHJpbmcoKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYW4gZW1wdHkgQ29uZmlndXJhYmxlT3BlcmF0aW9uIG9iamVjdCBiYXNlZCBvbiB0aGUgZGVmaW5pdGlvbi5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjb25maWd1cmFibGVEZWZpbml0aW9uVG9JbnN0YW5jZShcclxuICAgIGRlZjogQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbixcclxuKTogQ29uZmlndXJhYmxlT3BlcmF0aW9uIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgLi4uZGVmLFxyXG4gICAgICAgIGFyZ3M6IGRlZi5hcmdzLm1hcChhcmcgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgLi4uYXJnLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IGdldERlZmF1bHRDb25maWdBcmdWYWx1ZShhcmcpLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH0pLFxyXG4gICAgfSBhcyBDb25maWd1cmFibGVPcGVyYXRpb247XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdGhlIHR5cGU6XHJcbiAqIGBgYFxyXG4gKiB7XHJcbiAqICAgICBjb2RlOiAnbXktb3BlcmF0aW9uJyxcclxuICogICAgIGFyZ3M6IHtcclxuICogICAgICAgICBzb21lUHJvcGVydHk6ICdmb28nXHJcbiAqICAgICB9XHJcbiAqIH1cclxuICogYGBgXHJcbiAqIHRvIHRoZSBmb3JtYXQgZGVmaW5lZCBieSB0aGUgQ29uZmlndXJhYmxlT3BlcmF0aW9uSW5wdXQgR3JhcGhRTCBpbnB1dCB0eXBlOlxyXG4gKiBgYGBcclxuICoge1xyXG4gKiAgICAgY29kZTogJ215LW9wZXJhdGlvbicsXHJcbiAqICAgICBhcmd1bWVudHM6IFtcclxuICogICAgICAgICB7IG5hbWU6ICdzb21lUHJvcGVydHknLCB2YWx1ZTogJ2ZvbycgfVxyXG4gKiAgICAgXVxyXG4gKiB9XHJcbiAqIGBgYFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHRvQ29uZmlndXJhYmxlT3BlcmF0aW9uSW5wdXQoXHJcbiAgICBvcGVyYXRpb246IENvbmZpZ3VyYWJsZU9wZXJhdGlvbixcclxuICAgIGZvcm1WYWx1ZU9wZXJhdGlvbnM6IHsgYXJnczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IEFycmF5PHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+IH0sXHJcbik6IENvbmZpZ3VyYWJsZU9wZXJhdGlvbklucHV0IHtcclxuICAgIGNvbnN0IGFyZ3NBcnJheSA9IEFycmF5LmlzQXJyYXkoZm9ybVZhbHVlT3BlcmF0aW9ucy5hcmdzKSA/IGZvcm1WYWx1ZU9wZXJhdGlvbnMuYXJncyA6IHVuZGVmaW5lZDtcclxuICAgIGNvbnN0IGFyZ3NNYXAgPSAhQXJyYXkuaXNBcnJheShmb3JtVmFsdWVPcGVyYXRpb25zLmFyZ3MpID8gZm9ybVZhbHVlT3BlcmF0aW9ucy5hcmdzIDogdW5kZWZpbmVkO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBjb2RlOiBvcGVyYXRpb24uY29kZSxcclxuICAgICAgICBhcmd1bWVudHM6IG9wZXJhdGlvbi5hcmdzLm1hcCgoeyBuYW1lLCB2YWx1ZSB9LCBqKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IGFyZ3NBcnJheT8uZmluZChhcmcgPT4gYXJnLm5hbWUgPT09IG5hbWUpPy52YWx1ZSA/PyBhcmdzTWFwPy5bbmFtZV07XHJcbiAgICAgICAgICAgIGlmIChmb3JtVmFsdWUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBhbiBhcmd1bWVudCB2YWx1ZSBmb3IgdGhlIGtleSBcIiR7bmFtZX1cImApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZvcm1WYWx1ZT8uaGFzT3duUHJvcGVydHkoJ3ZhbHVlJylcclxuICAgICAgICAgICAgICAgICAgICA/IGVuY29kZUNvbmZpZ0FyZ1ZhbHVlKChmb3JtVmFsdWUgYXMgYW55KS52YWx1ZSlcclxuICAgICAgICAgICAgICAgICAgICA6IGVuY29kZUNvbmZpZ0FyZ1ZhbHVlKGZvcm1WYWx1ZSksXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSksXHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29uZmlndXJhYmxlT3BlcmF0aW9uVmFsdWVJc1ZhbGlkKFxyXG4gICAgZGVmPzogQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbixcclxuICAgIHZhbHVlPzogeyBjb2RlOiBzdHJpbmc7IGFyZ3M6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfSxcclxuKSB7XHJcbiAgICBpZiAoIWRlZiB8fCAhdmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAoZGVmLmNvZGUgIT09IHZhbHVlLmNvZGUpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBmb3IgKGNvbnN0IGFyZ0RlZiBvZiBkZWYuYXJncykge1xyXG4gICAgICAgIGNvbnN0IGFyZ1ZhbCA9IHZhbHVlLmFyZ3NbYXJnRGVmLm5hbWVdO1xyXG4gICAgICAgIGlmIChhcmdEZWYucmVxdWlyZWQgJiYgKGFyZ1ZhbCA9PSBudWxsIHx8IGFyZ1ZhbCA9PT0gJycgfHwgYXJnVmFsID09PSAnMCcpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgYSBkZWZhdWx0IHZhbHVlIGJhc2VkIG9uIHRoZSB0eXBlIG9mIHRoZSBjb25maWcgYXJnLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRDb25maWdBcmdWYWx1ZShhcmc6IENvbmZpZ0FyZ0RlZmluaXRpb24pOiBhbnkge1xyXG4gICAgaWYgKGFyZy5saXN0KSB7XHJcbiAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gICAgaWYgKGFyZy5kZWZhdWx0VmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiBhcmcuZGVmYXVsdFZhbHVlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdHlwZSA9IGFyZy50eXBlIGFzIENvbmZpZ0FyZ1R5cGU7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICBjYXNlICdzdHJpbmcnOlxyXG4gICAgICAgIGNhc2UgJ2RhdGV0aW1lJzpcclxuICAgICAgICBjYXNlICdmbG9hdCc6XHJcbiAgICAgICAgY2FzZSAnSUQnOlxyXG4gICAgICAgIGNhc2UgJ2ludCc6XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgYXNzZXJ0TmV2ZXIodHlwZSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { Subject } from 'rxjs';
|
|
2
|
+
/**
|
|
3
|
+
* @description
|
|
4
|
+
* A helper class used to manage selection of list items. Supports multiple selection via
|
|
5
|
+
* cmd/ctrl/shift key.
|
|
6
|
+
*/
|
|
7
|
+
export class SelectionManager {
|
|
8
|
+
constructor(options) {
|
|
9
|
+
this.options = options;
|
|
10
|
+
this._selection = [];
|
|
11
|
+
this.items = [];
|
|
12
|
+
this.selectionChangesSubject = new Subject();
|
|
13
|
+
this.selectionChanges$ = this.selectionChangesSubject.asObservable();
|
|
14
|
+
}
|
|
15
|
+
get selection() {
|
|
16
|
+
return this._selection;
|
|
17
|
+
}
|
|
18
|
+
setMultiSelect(isMultiSelect) {
|
|
19
|
+
this.options.multiSelect = isMultiSelect;
|
|
20
|
+
}
|
|
21
|
+
setCurrentItems(items) {
|
|
22
|
+
this.items = items;
|
|
23
|
+
}
|
|
24
|
+
toggleSelection(item, event) {
|
|
25
|
+
const { multiSelect, itemsAreEqual, additiveMode } = this.options;
|
|
26
|
+
const index = this._selection.findIndex(a => itemsAreEqual(a, item));
|
|
27
|
+
if (multiSelect && event?.shiftKey && 1 <= this._selection.length) {
|
|
28
|
+
const lastSelection = this._selection[this._selection.length - 1];
|
|
29
|
+
const lastSelectionIndex = this.items.findIndex(a => itemsAreEqual(a, lastSelection));
|
|
30
|
+
const currentIndex = this.items.findIndex(a => itemsAreEqual(a, item));
|
|
31
|
+
const start = currentIndex < lastSelectionIndex ? currentIndex : lastSelectionIndex;
|
|
32
|
+
const end = currentIndex > lastSelectionIndex ? currentIndex + 1 : lastSelectionIndex;
|
|
33
|
+
this._selection.push(...this.items.slice(start, end).filter(a => !this._selection.find(s => itemsAreEqual(a, s))));
|
|
34
|
+
}
|
|
35
|
+
else if (index === -1) {
|
|
36
|
+
if (multiSelect && (event?.ctrlKey || event?.shiftKey || additiveMode)) {
|
|
37
|
+
this._selection.push(item);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this._selection = [item];
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
if (multiSelect && event?.ctrlKey) {
|
|
45
|
+
this._selection.splice(index, 1);
|
|
46
|
+
}
|
|
47
|
+
else if (1 < this._selection.length && !additiveMode) {
|
|
48
|
+
this._selection = [item];
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
this._selection.splice(index, 1);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// Make the selection mutable
|
|
55
|
+
this._selection = this._selection.map(x => ({ ...x }));
|
|
56
|
+
this.invokeOnSelectionChangeHandler();
|
|
57
|
+
}
|
|
58
|
+
selectMultiple(items) {
|
|
59
|
+
this._selection = items;
|
|
60
|
+
this.invokeOnSelectionChangeHandler();
|
|
61
|
+
}
|
|
62
|
+
clearSelection() {
|
|
63
|
+
this._selection = [];
|
|
64
|
+
this.invokeOnSelectionChangeHandler();
|
|
65
|
+
}
|
|
66
|
+
isSelected(item) {
|
|
67
|
+
return !!this._selection.find(a => this.options.itemsAreEqual(a, item));
|
|
68
|
+
}
|
|
69
|
+
areAllCurrentItemsSelected() {
|
|
70
|
+
if (!this.items || this.items.length === 0) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
return this.items.every(a => this._selection.find(b => this.options.itemsAreEqual(a, b)));
|
|
74
|
+
}
|
|
75
|
+
toggleSelectAll() {
|
|
76
|
+
if (this.areAllCurrentItemsSelected()) {
|
|
77
|
+
this._selection = this._selection.filter(a => !this.items.find(b => this.options.itemsAreEqual(a, b)));
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
this._selection = this._selection.slice(0);
|
|
81
|
+
for (const item of this.items) {
|
|
82
|
+
if (!this._selection.find(a => this.options.itemsAreEqual(a, item))) {
|
|
83
|
+
this._selection.push(item);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
this.invokeOnSelectionChangeHandler();
|
|
88
|
+
}
|
|
89
|
+
lastSelected() {
|
|
90
|
+
return this._selection[this._selection.length - 1];
|
|
91
|
+
}
|
|
92
|
+
invokeOnSelectionChangeHandler() {
|
|
93
|
+
this.selectionChangesSubject.next(this._selection);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2NvbW1vbi91dGlsaXRpZXMvc2VsZWN0aW9uLW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVEzQzs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGdCQUFnQjtJQUN6QixZQUFvQixPQUFtQztRQUFuQyxZQUFPLEdBQVAsT0FBTyxDQUE0QjtRQVUvQyxlQUFVLEdBQVEsRUFBRSxDQUFDO1FBQ3JCLFVBQUssR0FBUSxFQUFFLENBQUM7UUFDaEIsNEJBQXVCLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQVhqRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pFLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQVFELGNBQWMsQ0FBQyxhQUFzQjtRQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxhQUFhLENBQUM7SUFDN0MsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFVO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBTyxFQUFFLEtBQWtCO1FBQ3ZDLE1BQU0sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDbEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDckUsSUFBSSxXQUFXLElBQUksS0FBSyxFQUFFLFFB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OUI7YUFDSjtTQUNKO1FBQ0QsSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELFlBQVk7UUFDUixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVPLDhCQUE4QjtRQUNsQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN2RCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdGlvbk1hbmFnZXJPcHRpb25zPFQ+IHtcclxuICAgIG11bHRpU2VsZWN0OiBib29sZWFuO1xyXG4gICAgaXRlbXNBcmVFcXVhbDogKGE6IFQsIGI6IFQpID0+IGJvb2xlYW47XHJcbiAgICBhZGRpdGl2ZU1vZGU6IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogQSBoZWxwZXIgY2xhc3MgdXNlZCB0byBtYW5hZ2Ugc2VsZWN0aW9uIG9mIGxpc3QgaXRlbXMuIFN1cHBvcnRzIG11bHRpcGxlIHNlbGVjdGlvbiB2aWFcclxuICogY21kL2N0cmwvc2hpZnQga2V5LlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvbk1hbmFnZXI8VD4ge1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBvcHRpb25zOiBTZWxlY3Rpb25NYW5hZ2VyT3B0aW9uczxUPikge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlcyQgPSB0aGlzLnNlbGVjdGlvbkNoYW5nZXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBzZWxlY3Rpb24oKTogVFtdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdGlvbkNoYW5nZXMkOiBPYnNlcnZhYmxlPFRbXT47XHJcblxyXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uOiBUW10gPSBbXTtcclxuICAgIHByaXZhdGUgaXRlbXM6IFRbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBzZWxlY3Rpb25DaGFuZ2VzU3ViamVjdCA9IG5ldyBTdWJqZWN0PFRbXT4oKTtcclxuXHJcbiAgICBzZXRNdWx0aVNlbGVjdChpc011bHRpU2VsZWN0OiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zLm11bHRpU2VsZWN0ID0gaXNNdWx0aVNlbGVjdDtcclxuICAgIH1cclxuXHJcbiAgICBzZXRDdXJyZW50SXRlbXMoaXRlbXM6IFRbXSkge1xyXG4gICAgICAgIHRoaXMuaXRlbXMgPSBpdGVtcztcclxuICAgIH1cclxuXHJcbiAgICB0b2dnbGVTZWxlY3Rpb24oaXRlbTogVCwgZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XHJcbiAgICAgICAgY29uc3QgeyBtdWx0aVNlbGVjdCwgaXRlbXNBcmVFcXVhbCwgYWRkaXRpdmVNb2RlIH0gPSB0aGlzLm9wdGlvbnM7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl9zZWxlY3Rpb24uZmluZEluZGV4KGEgPT4gaXRlbXNBcmVFcXVhbChhLCBpdGVtKSk7XHJcbiAgICAgICAgaWYgKG11bHRpU2VsZWN0ICYmIGV2ZW50Py5zaGlmdEtleSAmJiAxIDw9IHRoaXMuX3NlbGVjdGlvbi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgY29uc3QgbGFzdFNlbGVjdGlvbiA9IHRoaXMuX3NlbGVjdGlvblt0aGlzLl9zZWxlY3Rpb24ubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgICAgIGNvbnN0IGxhc3RTZWxlY3Rpb25JbmRleCA9IHRoaXMuaXRlbXMuZmluZEluZGV4KGEgPT4gaXRlbXNBcmVFcXVhbChhLCBsYXN0U2VsZWN0aW9uKSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuaXRlbXMuZmluZEluZGV4KGEgPT4gaXRlbXNBcmVFcXVhbChhLCBpdGVtKSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gY3VycmVudEluZGV4IDwgbGFzdFNlbGVjdGlvbkluZGV4ID8gY3VycmVudEluZGV4IDogbGFzdFNlbGVjdGlvbkluZGV4O1xyXG4gICAgICAgICAgICBjb25zdCBlbmQgPSBjdXJyZW50SW5kZXggPiBsYXN0U2VsZWN0aW9uSW5kZXggPyBjdXJyZW50SW5kZXggKyAxIDogbGFzdFNlbGVjdGlvbkluZGV4O1xyXG4gICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb24ucHVzaChcclxuICAgICAgICAgICAgICAgIC4uLnRoaXMuaXRlbXMuc2xpY2Uoc3RhcnQsIGVuZCkuZmlsdGVyKGEgPT4gIXRoaXMuX3NlbGVjdGlvbi5maW5kKHMgPT4gaXRlbXNBcmVFcXVhbChhLCBzKSkpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT09IC0xKSB7XHJcbiAgICAgICAgICAgIGlmIChtdWx0aVNlbGVjdCAmJiAoZXZlbnQ/LmN0cmxLZXkgfHwgZXZlbnQ/LnNoaWZ0S2V5IHx8IGFkZGl0aXZlTW9kZSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbi5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9uID0gW2l0ZW1dO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKG11bHRpU2VsZWN0ICYmIGV2ZW50Py5jdHJsS2V5KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb24uc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICgxIDwgdGhpcy5fc2VsZWN0aW9uLmxlbmd0aCAmJiAhYWRkaXRpdmVNb2RlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb24gPSBbaXRlbV07XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb24uc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBNYWtlIHRoZSBzZWxlY3Rpb24gbXV0YWJsZVxyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbiA9IHRoaXMuX3NlbGVjdGlvbi5tYXAoeCA9PiAoeyAuLi54IH0pKTtcclxuICAgICAgICB0aGlzLmludm9rZU9uU2VsZWN0aW9uQ2hhbmdlSGFuZGxlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdE11bHRpcGxlKGl0ZW1zOiBUW10pIHtcclxuICAgICAgICB0aGlzLl9zZWxlY3Rpb24gPSBpdGVtcztcclxuICAgICAgICB0aGlzLmludm9rZU9uU2VsZWN0aW9uQ2hhbmdlSGFuZGxlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIGNsZWFyU2VsZWN0aW9uKCkge1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbiA9IFtdO1xyXG4gICAgICAgIHRoaXMuaW52b2tlT25TZWxlY3Rpb25DaGFuZ2VIYW5kbGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNTZWxlY3RlZChpdGVtOiBUKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fc2VsZWN0aW9uLmZpbmQoYSA9PiB0aGlzLm9wdGlvbnMuaXRlbXNBcmVFcXVhbChhLCBpdGVtKSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXJlQWxsQ3VycmVudEl0ZW1zU2VsZWN0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLml0ZW1zIHx8IHRoaXMuaXRlbXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXMuZXZlcnkoYSA9PiB0aGlzLl9zZWxlY3Rpb24uZmluZChiID0+IHRoaXMub3B0aW9ucy5pdGVtc0FyZUVxdWFsKGEsIGIpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgdG9nZ2xlU2VsZWN0QWxsKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmFyZUFsbEN1cnJlbnRJdGVtc1NlbGVjdGVkKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9uID0gdGhpcy5fc2VsZWN0aW9uLmZpbHRlcihcclxuICAgICAgICAgICAgICAgIGEgPT4gIXRoaXMuaXRlbXMuZmluZChiID0+IHRoaXMub3B0aW9ucy5pdGVtc0FyZUVxdWFsKGEsIGIpKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb24gPSB0aGlzLl9zZWxlY3Rpb24uc2xpY2UoMCk7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLml0ZW1zKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX3NlbGVjdGlvbi5maW5kKGEgPT4gdGhpcy5vcHRpb25zLml0ZW1zQXJlRXF1YWwoYSwgaXRlbSkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9uLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pbnZva2VPblNlbGVjdGlvbkNoYW5nZUhhbmRsZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBsYXN0U2VsZWN0ZWQoKTogVCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvblt0aGlzLl9zZWxlY3Rpb24ubGVuZ3RoIC0gMV07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbnZva2VPblNlbGVjdGlvbkNoYW5nZUhhbmRsZXIoKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VzU3ViamVjdC5uZXh0KHRoaXMuX3NlbGVjdGlvbik7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Auto-generated by the set-version.js script.
|
|
2
|
-
export const ADMIN_UI_VERSION = '2.0.0-next.
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
export const ADMIN_UI_VERSION = '2.0.0-next.21';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tbW9uL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEF1dG8tZ2VuZXJhdGVkIGJ5IHRoZSBzZXQtdmVyc2lvbi5qcyBzY3JpcHQuXG5leHBvcnQgY29uc3QgQURNSU5fVUlfVkVSU0lPTiA9ICcyLjAuMC1uZXh0LjIxJztcbiJdfQ==
|
|
@@ -15,8 +15,8 @@ import * as i8 from "../channel-switcher/channel-switcher.component";
|
|
|
15
15
|
import * as i9 from "../user-menu/user-menu.component";
|
|
16
16
|
import * as i10 from "../breadcrumb/breadcrumb.component";
|
|
17
17
|
import * as i11 from "../main-nav/main-nav.component";
|
|
18
|
-
import * as i12 from "
|
|
19
|
-
import * as i13 from "
|
|
18
|
+
import * as i12 from "@angular/common";
|
|
19
|
+
import * as i13 from "../../shared/directives/if-multichannel.directive";
|
|
20
20
|
export class AppShellComponent {
|
|
21
21
|
constructor(authService, dataService, router, i18nService, modalService, localStorageService) {
|
|
22
22
|
this.authService = authService;
|
|
@@ -26,6 +26,7 @@ export class AppShellComponent {
|
|
|
26
26
|
this.modalService = modalService;
|
|
27
27
|
this.localStorageService = localStorageService;
|
|
28
28
|
this.availableLanguages = [];
|
|
29
|
+
this.hideVendureBranding = getAppConfig().hideVendureBranding;
|
|
29
30
|
}
|
|
30
31
|
ngOnInit() {
|
|
31
32
|
this.userName$ = this.dataService.client
|
|
@@ -68,9 +69,9 @@ export class AppShellComponent {
|
|
|
68
69
|
}
|
|
69
70
|
}
|
|
70
71
|
AppShellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AppShellComponent, deps: [{ token: i1.AuthService }, { token: i2.DataService }, { token: i3.Router }, { token: i4.I18nService }, { token: i5.ModalService }, { token: i6.LocalStorageService }], target: i0.ɵɵFactoryTarget.Component });
|
|
71
|
-
AppShellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AppShellComponent, selector: "vdr-app-shell", ngImport: i0, template: "<clr-main-container>\r\n <clr-header>\r\n <div class=\"branding\">\r\n <a [routerLink]=\"['/']\"><img src=\"assets/logo-75px.png\" class=\"logo\"
|
|
72
|
+
AppShellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AppShellComponent, selector: "vdr-app-shell", ngImport: i0, template: "<clr-main-container>\r\n <clr-header>\r\n <div class=\"branding\">\r\n <a [routerLink]=\"['/']\"><img src=\"assets/logo-75px.png\" class=\"logo\" /><span class=\"wordmark\" *ngIf=\"!hideVendureBranding\">vendure</span></a>\r\n </div>\r\n <div class=\"header-nav\"></div>\r\n <div class=\"header-actions\">\r\n <vdr-channel-switcher *vdrIfMultichannel></vdr-channel-switcher>\r\n <vdr-user-menu [userName]=\"userName$ | async\"\r\n [uiLanguageAndLocale]=\"uiLanguageAndLocale$ | async\"\r\n [availableLanguages]=\"availableLanguages\"\r\n (selectUiLanguage)=\"selectUiLanguage()\"\r\n (logOut)=\"logOut()\"></vdr-user-menu>\r\n </div>\r\n </clr-header>\r\n <nav class=\"subnav\"><vdr-breadcrumb></vdr-breadcrumb></nav>\r\n\r\n <div class=\"content-container\">\r\n <div class=\"content-area\"><router-outlet></router-outlet></div>\r\n <vdr-main-nav></vdr-main-nav>\r\n </div>\r\n</clr-main-container>\r\n", styles: [".branding{min-width:0}.logo{width:40px}.wordmark{font-weight:700;margin-left:12px;font-size:24px;color:var(--color-primary-500)}@media screen and (min-width: 768px){vdr-breadcrumb{margin-left:10.8rem}}.header-actions{align-items:center}.content-area{position:relative}::ng-deep .header{background-image:linear-gradient(to right,var(--color-header-gradient-from),var(--color-header-gradient-to))}\n"], components: [{ type: i7.ClrHeader, selector: "clr-header" }, { type: i8.ChannelSwitcherComponent, selector: "vdr-channel-switcher" }, { type: i9.UserMenuComponent, selector: "vdr-user-menu", inputs: ["userName", "availableLanguages", "uiLanguageAndLocale"], outputs: ["logOut", "selectUiLanguage"] }, { type: i10.BreadcrumbComponent, selector: "vdr-breadcrumb" }, { type: i11.MainNavComponent, selector: "vdr-main-nav" }], directives: [{ type: i7.ClrMainContainer, selector: "clr-main-container" }, { type: i7.MainContainerWillyWonka, selector: "clr-main-container" }, { type: i7.NavDetectionOompaLoompa, selector: "clr-header" }, { type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i13.IfMultichannelDirective, selector: "[vdrIfMultichannel]", inputs: ["vdrIfMultichannelElse"] }, { type: i3.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }], pipes: { "async": i12.AsyncPipe } });
|
|
72
73
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AppShellComponent, decorators: [{
|
|
73
74
|
type: Component,
|
|
74
|
-
args: [{ selector: 'vdr-app-shell', template: "<clr-main-container>\r\n <clr-header>\r\n <div class=\"branding\">\r\n <a [routerLink]=\"['/']\"><img src=\"assets/logo-75px.png\" class=\"logo\"
|
|
75
|
+
args: [{ selector: 'vdr-app-shell', template: "<clr-main-container>\r\n <clr-header>\r\n <div class=\"branding\">\r\n <a [routerLink]=\"['/']\"><img src=\"assets/logo-75px.png\" class=\"logo\" /><span class=\"wordmark\" *ngIf=\"!hideVendureBranding\">vendure</span></a>\r\n </div>\r\n <div class=\"header-nav\"></div>\r\n <div class=\"header-actions\">\r\n <vdr-channel-switcher *vdrIfMultichannel></vdr-channel-switcher>\r\n <vdr-user-menu [userName]=\"userName$ | async\"\r\n [uiLanguageAndLocale]=\"uiLanguageAndLocale$ | async\"\r\n [availableLanguages]=\"availableLanguages\"\r\n (selectUiLanguage)=\"selectUiLanguage()\"\r\n (logOut)=\"logOut()\"></vdr-user-menu>\r\n </div>\r\n </clr-header>\r\n <nav class=\"subnav\"><vdr-breadcrumb></vdr-breadcrumb></nav>\r\n\r\n <div class=\"content-container\">\r\n <div class=\"content-area\"><router-outlet></router-outlet></div>\r\n <vdr-main-nav></vdr-main-nav>\r\n </div>\r\n</clr-main-container>\r\n", styles: [".branding{min-width:0}.logo{width:40px}.wordmark{font-weight:700;margin-left:12px;font-size:24px;color:var(--color-primary-500)}@media screen and (min-width: 768px){vdr-breadcrumb{margin-left:10.8rem}}.header-actions{align-items:center}.content-area{position:relative}::ng-deep .header{background-image:linear-gradient(to right,var(--color-header-gradient-from),var(--color-header-gradient-to))}\n"] }]
|
|
75
76
|
}], ctorParameters: function () { return [{ type: i1.AuthService }, { type: i2.DataService }, { type: i3.Router }, { type: i4.I18nService }, { type: i5.ModalService }, { type: i6.LocalStorageService }]; } });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXNoZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy9hcHAtc2hlbGwvYXBwLXNoZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy9hcHAtc2hlbGwvYXBwLXNoZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFFLEtBQUssRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFPaEQsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0VBQXNFLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQU96SCxNQUFNLE9BQU8saUJBQWlCO0lBTTFCLFlBQ1ksV0FBd0IsRUFDeEIsV0FBd0IsRUFDeEIsTUFBYyxFQUNkLFdBQXdCLEVBQ3hCLFlBQTBCLEVBQzFCLG1CQUF3QztRQUx4QyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQVRwRCx1QkFBa0IsR0FBbUIsRUFBRSxDQUFDO1FBQ3hDLHdCQUFtQixHQUFHLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO0lBU3RELENBQUM7SUFFSixRQUFRO1FBQ0osSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU07YUFDbkMsVUFBVSxFQUFFO2FBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTTthQUM5QyxPQUFPLEVBQUU7YUFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQztJQUNsRSxDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osSUFBSSxDQUFDLG9CQUFvQjthQUNwQixJQUFJLENBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFNBQVMsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxFQUFFLEVBQUUsQ0FDM0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsaUNBQWlDLEVBQUU7WUFDL0QsUUFBUSxFQUFFLElBQUk7WUFDZCxJQUFJLEVBQUUsSUFBSTtZQUNWLE1BQU0sRUFBRTtnQkFDSixrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO2dCQUMzQyxlQUFlO2dCQUNmLGFBQWE7YUFDaEI7U0FDSixDQUFDLENBQ0wsRUFDRCxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDZixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FDL0UsQ0FDSjthQUNBLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNoQixJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDbkQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3JFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxXQUFXLElBQUksU0FBUyxDQUFDLENBQUM7YUFDN0U7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3JDLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxZQUFZLEVBQUUsQ0FBQztZQUNwQyxJQUFJLFFBQVEsRUFBRTtnQkFDVixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7YUFDbkM7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2FBQ3BDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzs4R0E5RFEsaUJBQWlCO2tHQUFqQixpQkFBaUIscURDbkI5QixrbENBc0JBOzJGREhhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDSSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBFTVBUWSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IGdldEFwcENvbmZpZyB9IGZyb20gJy4uLy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VDb2RlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGEvcHJvdmlkZXJzL2RhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9hdXRoL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9pMThuL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2xvY2FsLXN0b3JhZ2UvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IFVpTGFuZ3VhZ2VTd2l0Y2hlckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL3VpLWxhbmd1YWdlLXN3aXRjaGVyLWRpYWxvZy91aS1sYW5ndWFnZS1zd2l0Y2hlci1kaWFsb2cuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd2ZHItYXBwLXNoZWxsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXBwLXNoZWxsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9hcHAtc2hlbGwuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQXBwU2hlbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHVzZXJOYW1lJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgIHVpTGFuZ3VhZ2VBbmRMb2NhbGUkOiBPYnNlcnZhYmxlPFtMYW5ndWFnZUNvZGUsIHN0cmluZyB8IHVuZGVmaW5lZF0+O1xuICAgIGF2YWlsYWJsZUxhbmd1YWdlczogTGFuZ3VhZ2VDb2RlW10gPSBbXTtcbiAgICBoaWRlVmVuZHVyZUJyYW5kaW5nID0gZ2V0QXBwQ29uZmlnKCkuaGlkZVZlbmR1cmVCcmFuZGluZztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGxvY2FsU3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UsXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudXNlck5hbWUkID0gdGhpcy5kYXRhU2VydmljZS5jbGllbnRcbiAgICAgICAgICAgIC51c2VyU3RhdHVzKClcbiAgICAgICAgICAgIC5zaW5nbGUkLnBpcGUobWFwKGRhdGEgPT4gZGF0YS51c2VyU3RhdHVzLnVzZXJuYW1lKSk7XG4gICAgICAgIHRoaXMudWlMYW5ndWFnZUFuZExvY2FsZSQgPSB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudFxuICAgICAgICAgICAgLnVpU3RhdGUoKVxuICAgICAgICAgICAgLnN0cmVhbSQucGlwZShtYXAoKHsgdWlTdGF0ZSB9KSA9PiBbdWlTdGF0ZS5sYW5ndWFnZSwgdWlTdGF0ZS5sb2NhbGUgPz8gdW5kZWZpbmVkXSkpO1xuICAgICAgICB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlcyA9IHRoaXMuaTE4blNlcnZpY2UuYXZhaWxhYmxlTGFuZ3VhZ2VzO1xuICAgIH1cblxuICAgIHNlbGVjdFVpTGFuZ3VhZ2UoKSB7XG4gICAgICAgIHRoaXMudWlMYW5ndWFnZUFuZExvY2FsZSRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChbY3VycmVudExhbmd1YWdlLCBjdXJyZW50TG9jYWxlXSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2UuZnJvbUNvbXBvbmVudChVaUxhbmd1YWdlU3dpdGNoZXJEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogJ2xnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2Fsczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZUxhbmd1YWdlczogdGhpcy5hdmFpbGFibGVMYW5ndWFnZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudExhbmd1YWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRMb2NhbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXN1bHQgPT5cbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID8gdGhpcy5kYXRhU2VydmljZS5jbGllbnQuc2V0VWlMYW5ndWFnZShyZXN1bHRbMF0sIHJlc3VsdFsxXSkgOiBFTVBUWSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuc2V0VWlMYW5ndWFnZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmkxOG5TZXJ2aWNlLnNldExhbmd1YWdlKHJlc3VsdC5zZXRVaUxhbmd1YWdlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldCgndWlMYW5ndWFnZUNvZGUnLCByZXN1bHQuc2V0VWlMYW5ndWFnZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5zZXQoJ3VpTG9jYWxlJywgcmVzdWx0LnNldFVpTG9jYWxlID8/IHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbG9nT3V0KCkge1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ091dCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGxvZ2luVXJsIH0gPSBnZXRBcHBDb25maWcoKTtcbiAgICAgICAgICAgIGlmIChsb2dpblVybCkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gbG9naW5Vcmw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xvZ2luJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8Y2xyLW1haW4tY29udGFpbmVyPlxyXG4gICAgPGNsci1oZWFkZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJyYW5kaW5nXCI+XHJcbiAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnLyddXCI+PGltZyBzcmM9XCJhc3NldHMvbG9nby03NXB4LnBuZ1wiIGNsYXNzPVwibG9nb1wiIC8+PHNwYW4gY2xhc3M9XCJ3b3JkbWFya1wiICpuZ0lmPVwiIWhpZGVWZW5kdXJlQnJhbmRpbmdcIj52ZW5kdXJlPC9zcGFuPjwvYT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLW5hdlwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICA8dmRyLWNoYW5uZWwtc3dpdGNoZXIgKnZkcklmTXVsdGljaGFubmVsPjwvdmRyLWNoYW5uZWwtc3dpdGNoZXI+XHJcbiAgICAgICAgICAgIDx2ZHItdXNlci1tZW51IFt1c2VyTmFtZV09XCJ1c2VyTmFtZSQgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt1aUxhbmd1YWdlQW5kTG9jYWxlXT1cInVpTGFuZ3VhZ2VBbmRMb2NhbGUkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbYXZhaWxhYmxlTGFuZ3VhZ2VzXT1cImF2YWlsYWJsZUxhbmd1YWdlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RVaUxhbmd1YWdlKT1cInNlbGVjdFVpTGFuZ3VhZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dPdXQpPVwibG9nT3V0KClcIj48L3Zkci11c2VyLW1lbnU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Nsci1oZWFkZXI+XHJcbiAgICA8bmF2IGNsYXNzPVwic3VibmF2XCI+PHZkci1icmVhZGNydW1iPjwvdmRyLWJyZWFkY3J1bWI+PC9uYXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtYXJlYVwiPjxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD48L2Rpdj5cclxuICAgICAgICA8dmRyLW1haW4tbmF2PjwvdmRyLW1haW4tbmF2PlxyXG4gICAgPC9kaXY+XHJcbjwvY2xyLW1haW4tY29udGFpbmVyPlxyXG4iXX0=
|
|
@@ -104,10 +104,10 @@ export class BreadcrumbComponent {
|
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.DataService }], target: i0.ɵɵFactoryTarget.Component });
|
|
107
|
-
BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: BreadcrumbComponent, selector: "vdr-breadcrumb", ngImport: i0, template: "<nav role=\"navigation\">\r\n <ul class=\"breadcrumbs\">\r\n <li *ngFor=\"let breadcrumb of (breadcrumbs$ | async); let isLast = last\">\r\n <a [routerLink]=\"breadcrumb.link\" *ngIf=\"!isLast\">{{ breadcrumb.label | translate }}</a>\r\n <ng-container *ngIf=\"isLast\">{{ breadcrumb.label | translate }}</ng-container>\r\n </li>\r\n </ul>\r\n</nav>\r\n", styles: ["@charset \"UTF-8\";:host{display:block
|
|
107
|
+
BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: BreadcrumbComponent, selector: "vdr-breadcrumb", ngImport: i0, template: "<nav role=\"navigation\">\r\n <ul class=\"breadcrumbs\">\r\n <li *ngFor=\"let breadcrumb of (breadcrumbs$ | async); let isLast = last\">\r\n <a [routerLink]=\"breadcrumb.link\" *ngIf=\"!isLast\">{{ breadcrumb.label | translate }}</a>\r\n <ng-container *ngIf=\"isLast\">{{ breadcrumb.label | translate }}</ng-container>\r\n </li>\r\n </ul>\r\n</nav>\r\n", styles: ["@charset \"UTF-8\";:host{display:block}@media screen and (min-width: 768px){:host{padding:0 1rem}}.breadcrumbs{list-style-type:none;display:flex;overflow-x:auto;max-width:100vw;padding:0 3px}@media screen and (min-width: 768px){.breadcrumbs{padding:0}}.breadcrumbs li{font-size:16px;display:inline-block;margin-right:10px;white-space:nowrap}.breadcrumbs li:not(:last-child):after{content:\"\\203a\";top:0;color:var(--color-grey-400);margin-left:10px}\n"], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }], pipes: { "async": i3.AsyncPipe, "translate": i4.TranslatePipe } });
|
|
108
108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: BreadcrumbComponent, decorators: [{
|
|
109
109
|
type: Component,
|
|
110
|
-
args: [{ selector: 'vdr-breadcrumb', template: "<nav role=\"navigation\">\r\n <ul class=\"breadcrumbs\">\r\n <li *ngFor=\"let breadcrumb of (breadcrumbs$ | async); let isLast = last\">\r\n <a [routerLink]=\"breadcrumb.link\" *ngIf=\"!isLast\">{{ breadcrumb.label | translate }}</a>\r\n <ng-container *ngIf=\"isLast\">{{ breadcrumb.label | translate }}</ng-container>\r\n </li>\r\n </ul>\r\n</nav>\r\n", styles: ["@charset \"UTF-8\";:host{display:block
|
|
110
|
+
args: [{ selector: 'vdr-breadcrumb', template: "<nav role=\"navigation\">\r\n <ul class=\"breadcrumbs\">\r\n <li *ngFor=\"let breadcrumb of (breadcrumbs$ | async); let isLast = last\">\r\n <a [routerLink]=\"breadcrumb.link\" *ngIf=\"!isLast\">{{ breadcrumb.label | translate }}</a>\r\n <ng-container *ngIf=\"isLast\">{{ breadcrumb.label | translate }}</ng-container>\r\n </li>\r\n </ul>\r\n</nav>\r\n", styles: ["@charset \"UTF-8\";:host{display:block}@media screen and (min-width: 768px){:host{padding:0 1rem}}.breadcrumbs{list-style-type:none;display:flex;overflow-x:auto;max-width:100vw;padding:0 3px}@media screen and (min-width: 768px){.breadcrumbs{padding:0}}.breadcrumbs li{font-size:16px;display:inline-block;margin-right:10px;white-space:nowrap}.breadcrumbs li:not(:last-child):after{content:\"\\203a\";top:0;color:var(--color-grey-400);margin-left:10px}\n"] }]
|
|
111
111
|
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.DataService }]; } });
|
|
112
112
|
function isBreadcrumbFunction(value) {
|
|
113
113
|
return typeof value === 'function';
|
|
@@ -50,7 +50,7 @@ export class ChannelSwitcherComponent {
|
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
ChannelSwitcherComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ChannelSwitcherComponent, deps: [{ token: i1.DataService }, { token: i2.LocalStorageService }], target: i0.ɵɵFactoryTarget.Component });
|
|
53
|
-
ChannelSwitcherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: ChannelSwitcherComponent, selector: "vdr-channel-switcher", ngImport: i0, template: "<ng-container>\r\n <vdr-dropdown>\r\n <button class=\"btn btn-link active-channel\" vdrDropdownTrigger>\r\n <vdr-channel-badge [channelCode]=\"activeChannelCode$ | async\"></vdr-channel-badge>\r\n <span class=\"active-channel\">{{\r\n activeChannelCode$ | async | channelCodeToLabel | translate\r\n }}</span>\r\n <span class=\"trigger\"><clr-icon shape=\"caret down\"></clr-icon></span>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <input\r\n *ngIf=\"((channelCount$ | async) || 0) >= displayFilterThreshold\"\r\n [formControl]=\"filterControl\"\r\n type=\"text\"\r\n class=\"ml2 mr2\"\r\n [placeholder]=\"'common.filter' | translate\"\r\n />\r\n <button\r\n *ngFor=\"let channel of channels$ | async\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"setActiveChannel(channel.id)\"\r\n >\r\n <vdr-channel-badge [channelCode]=\"channel.code\"></vdr-channel-badge>\r\n {{ channel.code | channelCodeToLabel | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n</ng-container>\r\n", styles: [":host{display:flex;align-items:center;margin:0 .5rem;height:2.5rem}.active-channel{color:var(--color-grey-200)}.active-channel clr-icon{color:#fff}\n"], components: [{ type: i3.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { type: i4.ChannelBadgeComponent, selector: "vdr-channel-badge", inputs: ["channelCode"] }, { type: i5.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition"] }], directives: [{ type: i6.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { type: i7.ClrIconCustomTag, selector: "clr-icon" }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.FormFieldControlDirective, selector: "input, textarea, select" }, { type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.DropdownItemDirective, selector: "[vdrDropdownItem]" }], pipes: { "async": i8.AsyncPipe, "translate": i12.TranslatePipe, "channelCodeToLabel": i13.ChannelLabelPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
53
|
+
ChannelSwitcherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: ChannelSwitcherComponent, selector: "vdr-channel-switcher", ngImport: i0, template: "<ng-container>\r\n <vdr-dropdown>\r\n <button class=\"btn btn-link active-channel\" vdrDropdownTrigger>\r\n <vdr-channel-badge [channelCode]=\"activeChannelCode$ | async\"></vdr-channel-badge>\r\n <span class=\"active-channel\">{{\r\n activeChannelCode$ | async | channelCodeToLabel | translate\r\n }}</span>\r\n <span class=\"trigger\"><clr-icon shape=\"caret down\"></clr-icon></span>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <input\r\n *ngIf=\"((channelCount$ | async) || 0) >= displayFilterThreshold\"\r\n [formControl]=\"filterControl\"\r\n type=\"text\"\r\n class=\"ml2 mr2\"\r\n [placeholder]=\"'common.filter' | translate\"\r\n />\r\n <button\r\n *ngFor=\"let channel of channels$ | async\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"setActiveChannel(channel.id)\"\r\n >\r\n <vdr-channel-badge [channelCode]=\"channel.code\"></vdr-channel-badge>\r\n {{ channel.code | channelCodeToLabel | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n</ng-container>\r\n", styles: [":host{display:flex;align-items:center;margin:0 .5rem;height:2.5rem}.active-channel{color:var(--color-grey-200)}.active-channel clr-icon{color:#fff}\n"], components: [{ type: i3.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { type: i4.ChannelBadgeComponent, selector: "vdr-channel-badge", inputs: ["channelCode"] }, { type: i5.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }], directives: [{ type: i6.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { type: i7.ClrIconCustomTag, selector: "clr-icon" }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.FormFieldControlDirective, selector: "input, textarea, select" }, { type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.DropdownItemDirective, selector: "[vdrDropdownItem]" }], pipes: { "async": i8.AsyncPipe, "translate": i12.TranslatePipe, "channelCodeToLabel": i13.ChannelLabelPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
54
54
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ChannelSwitcherComponent, decorators: [{
|
|
55
55
|
type: Component,
|
|
56
56
|
args: [{ selector: 'vdr-channel-switcher', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container>\r\n <vdr-dropdown>\r\n <button class=\"btn btn-link active-channel\" vdrDropdownTrigger>\r\n <vdr-channel-badge [channelCode]=\"activeChannelCode$ | async\"></vdr-channel-badge>\r\n <span class=\"active-channel\">{{\r\n activeChannelCode$ | async | channelCodeToLabel | translate\r\n }}</span>\r\n <span class=\"trigger\"><clr-icon shape=\"caret down\"></clr-icon></span>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <input\r\n *ngIf=\"((channelCount$ | async) || 0) >= displayFilterThreshold\"\r\n [formControl]=\"filterControl\"\r\n type=\"text\"\r\n class=\"ml2 mr2\"\r\n [placeholder]=\"'common.filter' | translate\"\r\n />\r\n <button\r\n *ngFor=\"let channel of channels$ | async\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"setActiveChannel(channel.id)\"\r\n >\r\n <vdr-channel-badge [channelCode]=\"channel.code\"></vdr-channel-badge>\r\n {{ channel.code | channelCodeToLabel | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n</ng-container>\r\n", styles: [":host{display:flex;align-items:center;margin:0 .5rem;height:2.5rem}.active-channel{color:var(--color-grey-200)}.active-channel clr-icon{color:#fff}\n"] }]
|
|
@@ -262,9 +262,9 @@ export class MainNavComponent {
|
|
|
262
262
|
}
|
|
263
263
|
}
|
|
264
264
|
MainNavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: MainNavComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.NavBuilderService }, { token: i3.HealthCheckService }, { token: i4.JobQueueService }, { token: i5.DataService }], target: i0.ɵɵFactoryTarget.Component });
|
|
265
|
-
MainNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: MainNavComponent, selector: "vdr-main-nav", ngImport: i0, template: "<nav class=\"sidenav\" [clr-nav-level]=\"2\">\r\n <section class=\"sidenav-content\">\r\n <ng-container *ngFor=\"let section of navBuilderService.navMenuConfig$ | async\">\r\n <section\r\n class=\"nav-group\"\r\n [attr.data-section-id]=\"section.id\"\r\n [class.collapsible]=\"section.collapsible\"\r\n *ngIf=\"shouldDisplayLink(section)\"\r\n >\r\n <vdr-ui-extension-point [locationId]=\"section.id\" api=\"navMenu\" [topPx]=\"-6\" [leftPx]=\"8\">\r\n <ng-container *ngIf=\"navBuilderService.sectionBadges[section.id] | async as sectionBadge\">\r\n <vdr-status-badge\r\n *ngIf=\"sectionBadge !== 'none'\"\r\n [type]=\"sectionBadge\"\r\n ></vdr-status-badge>\r\n </ng-container>\r\n <input [id]=\"section.id\" type=\"checkbox\" [checked]=\"section.collapsedByDefault\" />\r\n <label class=\"nav-group-header\" [for]=\"section.id\">{{ section.label | translate }}</label>\r\n <ul class=\"nav-list\">\r\n <ng-container *ngFor=\"let item of section.items\">\r\n <li *ngIf=\"shouldDisplayLink(item)\">\r\n <a\r\n class=\"nav-link\"\r\n [attr.data-item-id]=\"section.id\"\r\n [routerLink]=\"getRouterLink(item)\"\r\n routerLinkActive=\"active\"\r\n >\r\n <ng-container *ngIf=\"item.statusBadge | async as itemBadge\">\r\n <vdr-status-badge\r\n *ngIf=\"itemBadge.type !== 'none'\"\r\n [type]=\"itemBadge.type\"\r\n ></vdr-status-badge>\r\n </ng-container>\r\n <clr-icon [attr.shape]=\"item.icon || 'block'\" size=\"20\"></clr-icon>\r\n {{ item.label | translate }}\r\n </a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </vdr-ui-extension-point>\r\n </section>\r\n </ng-container>\r\n </section>\r\n</nav>\r\n", styles: [":host{order:-1;background-color:var(--clr-nav-background-color)}nav.sidenav{height:100%;
|
|
265
|
+
MainNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: MainNavComponent, selector: "vdr-main-nav", ngImport: i0, template: "<nav class=\"sidenav\" [clr-nav-level]=\"2\">\r\n <section class=\"sidenav-content\">\r\n <ng-container *ngFor=\"let section of navBuilderService.navMenuConfig$ | async\">\r\n <section\r\n class=\"nav-group\"\r\n [attr.data-section-id]=\"section.id\"\r\n [class.collapsible]=\"section.collapsible\"\r\n *ngIf=\"shouldDisplayLink(section)\"\r\n >\r\n <vdr-ui-extension-point [locationId]=\"section.id\" api=\"navMenu\" [topPx]=\"-6\" [leftPx]=\"8\">\r\n <ng-container *ngIf=\"navBuilderService.sectionBadges[section.id] | async as sectionBadge\">\r\n <vdr-status-badge\r\n *ngIf=\"sectionBadge !== 'none'\"\r\n [type]=\"sectionBadge\"\r\n ></vdr-status-badge>\r\n </ng-container>\r\n <input [id]=\"section.id\" type=\"checkbox\" [checked]=\"section.collapsedByDefault\" />\r\n <label class=\"nav-group-header\" [for]=\"section.id\">{{ section.label | translate }}</label>\r\n <ul class=\"nav-list\">\r\n <ng-container *ngFor=\"let item of section.items\">\r\n <li *ngIf=\"shouldDisplayLink(item)\">\r\n <a\r\n class=\"nav-link\"\r\n [attr.data-item-id]=\"section.id\"\r\n [routerLink]=\"getRouterLink(item)\"\r\n routerLinkActive=\"active\"\r\n (click)=\"item.onClick && item.onClick($event)\"\r\n >\r\n <ng-container *ngIf=\"item.statusBadge | async as itemBadge\">\r\n <vdr-status-badge\r\n *ngIf=\"itemBadge.type !== 'none'\"\r\n [type]=\"itemBadge.type\"\r\n ></vdr-status-badge>\r\n </ng-container>\r\n <clr-icon [attr.shape]=\"item.icon || 'block'\" size=\"20\"></clr-icon>\r\n {{ item.label | translate }}\r\n </a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </vdr-ui-extension-point>\r\n </section>\r\n </ng-container>\r\n </section>\r\n</nav>\r\n", styles: [":host{order:-1;background-color:var(--clr-nav-background-color)}nav.sidenav{height:100%;border-right-color:var(--clr-sidenav-border-color)}.sidenav .nav-group .nav-list{margin:0}.sidenav .nav-group .nav-group-header{margin:0;line-height:1.2}.sidenav .nav-group .nav-link{display:inline-flex;line-height:1rem;padding-right:.6rem}.nav-list clr-icon{flex-shrink:0;margin-right:12px}.nav-group{-webkit-hyphens:auto;hyphens:auto}.nav-group,.nav-link{position:relative}.nav-group vdr-status-badge{left:10px;top:6px}.nav-link vdr-status-badge{left:25px;top:3px}\n"], components: [{ type: i6.UiExtensionPointComponent, selector: "vdr-ui-extension-point", inputs: ["locationId", "topPx", "leftPx", "api"] }, { type: i7.StatusBadgeComponent, selector: "vdr-status-badge", inputs: ["type"] }], directives: [{ type: i8.ClrNavLevel, selector: "[clr-nav-level]", inputs: ["clr-nav-level"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.FormFieldControlDirective, selector: "input, textarea, select" }, { type: i8.ClrLabel, selector: "label", inputs: ["for"] }, { type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { type: i8.ClrIconCustomTag, selector: "clr-icon" }], pipes: { "async": i9.AsyncPipe, "translate": i11.TranslatePipe } });
|
|
266
266
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: MainNavComponent, decorators: [{
|
|
267
267
|
type: Component,
|
|
268
|
-
args: [{ selector: 'vdr-main-nav', template: "<nav class=\"sidenav\" [clr-nav-level]=\"2\">\r\n <section class=\"sidenav-content\">\r\n <ng-container *ngFor=\"let section of navBuilderService.navMenuConfig$ | async\">\r\n <section\r\n class=\"nav-group\"\r\n [attr.data-section-id]=\"section.id\"\r\n [class.collapsible]=\"section.collapsible\"\r\n *ngIf=\"shouldDisplayLink(section)\"\r\n >\r\n <vdr-ui-extension-point [locationId]=\"section.id\" api=\"navMenu\" [topPx]=\"-6\" [leftPx]=\"8\">\r\n <ng-container *ngIf=\"navBuilderService.sectionBadges[section.id] | async as sectionBadge\">\r\n <vdr-status-badge\r\n *ngIf=\"sectionBadge !== 'none'\"\r\n [type]=\"sectionBadge\"\r\n ></vdr-status-badge>\r\n </ng-container>\r\n <input [id]=\"section.id\" type=\"checkbox\" [checked]=\"section.collapsedByDefault\" />\r\n <label class=\"nav-group-header\" [for]=\"section.id\">{{ section.label | translate }}</label>\r\n <ul class=\"nav-list\">\r\n <ng-container *ngFor=\"let item of section.items\">\r\n <li *ngIf=\"shouldDisplayLink(item)\">\r\n <a\r\n class=\"nav-link\"\r\n [attr.data-item-id]=\"section.id\"\r\n [routerLink]=\"getRouterLink(item)\"\r\n routerLinkActive=\"active\"\r\n >\r\n <ng-container *ngIf=\"item.statusBadge | async as itemBadge\">\r\n <vdr-status-badge\r\n *ngIf=\"itemBadge.type !== 'none'\"\r\n [type]=\"itemBadge.type\"\r\n ></vdr-status-badge>\r\n </ng-container>\r\n <clr-icon [attr.shape]=\"item.icon || 'block'\" size=\"20\"></clr-icon>\r\n {{ item.label | translate }}\r\n </a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </vdr-ui-extension-point>\r\n </section>\r\n </ng-container>\r\n </section>\r\n</nav>\r\n", styles: [":host{order:-1;background-color:var(--clr-nav-background-color)}nav.sidenav{height:100%;
|
|
268
|
+
args: [{ selector: 'vdr-main-nav', template: "<nav class=\"sidenav\" [clr-nav-level]=\"2\">\r\n <section class=\"sidenav-content\">\r\n <ng-container *ngFor=\"let section of navBuilderService.navMenuConfig$ | async\">\r\n <section\r\n class=\"nav-group\"\r\n [attr.data-section-id]=\"section.id\"\r\n [class.collapsible]=\"section.collapsible\"\r\n *ngIf=\"shouldDisplayLink(section)\"\r\n >\r\n <vdr-ui-extension-point [locationId]=\"section.id\" api=\"navMenu\" [topPx]=\"-6\" [leftPx]=\"8\">\r\n <ng-container *ngIf=\"navBuilderService.sectionBadges[section.id] | async as sectionBadge\">\r\n <vdr-status-badge\r\n *ngIf=\"sectionBadge !== 'none'\"\r\n [type]=\"sectionBadge\"\r\n ></vdr-status-badge>\r\n </ng-container>\r\n <input [id]=\"section.id\" type=\"checkbox\" [checked]=\"section.collapsedByDefault\" />\r\n <label class=\"nav-group-header\" [for]=\"section.id\">{{ section.label | translate }}</label>\r\n <ul class=\"nav-list\">\r\n <ng-container *ngFor=\"let item of section.items\">\r\n <li *ngIf=\"shouldDisplayLink(item)\">\r\n <a\r\n class=\"nav-link\"\r\n [attr.data-item-id]=\"section.id\"\r\n [routerLink]=\"getRouterLink(item)\"\r\n routerLinkActive=\"active\"\r\n (click)=\"item.onClick && item.onClick($event)\"\r\n >\r\n <ng-container *ngIf=\"item.statusBadge | async as itemBadge\">\r\n <vdr-status-badge\r\n *ngIf=\"itemBadge.type !== 'none'\"\r\n [type]=\"itemBadge.type\"\r\n ></vdr-status-badge>\r\n </ng-container>\r\n <clr-icon [attr.shape]=\"item.icon || 'block'\" size=\"20\"></clr-icon>\r\n {{ item.label | translate }}\r\n </a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </vdr-ui-extension-point>\r\n </section>\r\n </ng-container>\r\n </section>\r\n</nav>\r\n", styles: [":host{order:-1;background-color:var(--clr-nav-background-color)}nav.sidenav{height:100%;border-right-color:var(--clr-sidenav-border-color)}.sidenav .nav-group .nav-list{margin:0}.sidenav .nav-group .nav-group-header{margin:0;line-height:1.2}.sidenav .nav-group .nav-link{display:inline-flex;line-height:1rem;padding-right:.6rem}.nav-list clr-icon{flex-shrink:0;margin-right:12px}.nav-group{-webkit-hyphens:auto;hyphens:auto}.nav-group,.nav-link{position:relative}.nav-group vdr-status-badge{left:10px;top:6px}.nav-link vdr-status-badge{left:25px;top:3px}\n"] }]
|
|
269
269
|
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.NavBuilderService }, { type: i3.HealthCheckService }, { type: i4.JobQueueService }, { type: i5.DataService }]; } });
|
|
270
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1uYXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9jb21wb25lbnRzL21haW4tbmF2L21haW4tbmF2LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy9tYWluLW5hdi9tYWluLW5hdi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7Ozs7O0FBWTFELE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsWUFDWSxLQUFxQixFQUNyQixNQUFjLEVBQ2YsaUJBQW9DLEVBQ25DLGtCQUFzQyxFQUN0QyxlQUFnQyxFQUNoQyxXQUF3QjtRQUx4QixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Ysc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNuQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUNqQyxDQUFDO0lBS0osaUJBQWlCLENBQUMsUUFBaUQ7UUFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdkIsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFO1lBQzlCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxJQUFJLE9BQU8sUUFB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eUJBQ3pDLENBQUMsQ0FBQyxDQUNOO3FCQUNKO2lCQUNKO2FBQ0o7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDOzs2R0F2UlEsZ0JBQWdCO2lHQUFoQixnQkFBZ0Isb0RDbEI3QixxaUZBNENBOzJGRDFCYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0ksY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUGVybWlzc2lvbiB9IGZyb20gJy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGVhbHRoQ2hlY2tTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2hlYWx0aC1jaGVjay9oZWFsdGgtY2hlY2suc2VydmljZSc7XG5pbXBvcnQgeyBKb2JRdWV1ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvam9iLXF1ZXVlL2pvYi1xdWV1ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdk1lbnVCYWRnZSwgTmF2TWVudUl0ZW0gfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvbmF2LWJ1aWxkZXIvbmF2LWJ1aWxkZXItdHlwZXMnO1xuaW1wb3J0IHsgTmF2QnVpbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvbmF2LWJ1aWxkZXIvbmF2LWJ1aWxkZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndmRyLW1haW4tbmF2JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWFpbi1uYXYuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL21haW4tbmF2LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1haW5OYXZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwdWJsaWMgbmF2QnVpbGRlclNlcnZpY2U6IE5hdkJ1aWxkZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGhlYWx0aENoZWNrU2VydmljZTogSGVhbHRoQ2hlY2tTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGpvYlF1ZXVlU2VydmljZTogSm9iUXVldWVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcbiAgICApIHt9XG5cbiAgICBwcml2YXRlIHVzZXJQZXJtaXNzaW9uczogc3RyaW5nW107XG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIHNob3VsZERpc3BsYXlMaW5rKG1lbnVJdGVtOiBQaWNrPE5hdk1lbnVJdGVtLCAncmVxdWlyZXNQZXJtaXNzaW9uJz4pIHtcbiAgICAgICAgaWYgKCF0aGlzLnVzZXJQZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghbWVudUl0ZW0ucmVxdWlyZXNQZXJtaXNzaW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIG1lbnVJdGVtLnJlcXVpcmVzUGVybWlzc2lvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVzZXJQZXJtaXNzaW9ucy5pbmNsdWRlcyhtZW51SXRlbS5yZXF1aXJlc1Blcm1pc3Npb24pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbWVudUl0ZW0ucmVxdWlyZXNQZXJtaXNzaW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gbWVudUl0ZW0ucmVxdWlyZXNQZXJtaXNzaW9uKHRoaXMudXNlclBlcm1pc3Npb25zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlZmluZU5hdk1lbnUoKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudFxuICAgICAgICAgICAgLnVzZXJTdGF0dXMoKVxuICAgICAgICAgICAgLm1hcFN0cmVhbSgoeyB1c2VyU3RhdHVzIH0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJQZXJtaXNzaW9ucyA9IHVzZXJTdGF0dXMucGVybWlzc2lvbnM7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRSb3V0ZXJMaW5rKGl0ZW06IE5hdk1lbnVJdGVtKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdkJ1aWxkZXJTZXJ2aWNlLmdldFJvdXRlckxpbmsoaXRlbSwgdGhpcy5yb3V0ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWZpbmVOYXZNZW51KCkge1xuICAgICAgICBmdW5jdGlvbiBhbGxvdyguLi5wZXJtaXNzaW9uczogc3RyaW5nW10pOiAodXNlclBlcm1pc3Npb25zOiBzdHJpbmdbXSkgPT4gYm9vbGVhbiB7XG4gICAgICAgICAgICByZXR1cm4gdXNlclBlcm1pc3Npb25zID0+IHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHBlcm1pc3Npb24gb2YgcGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXJQZXJtaXNzaW9ucy5pbmNsdWRlcyhwZXJtaXNzaW9uKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmF2QnVpbGRlclNlcnZpY2UuZGVmaW5lTmF2TWVudVNlY3Rpb25zKFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRDYXRhbG9nLFxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRQcm9kdWN0LFxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRGYWNldCxcbiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbi5SZWFkQ29sbGVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbi5SZWFkQXNzZXQsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBpZDogJ2NhdGFsb2cnLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuY2F0YWxvZycpLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkQ2F0YWxvZywgUGVybWlzc2lvbi5SZWFkUHJvZHVjdCksXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ3Byb2R1Y3RzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYucHJvZHVjdHMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdsaWJyYXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL2NhdGFsb2cnLCAncHJvZHVjdHMnXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRDYXRhbG9nLCBQZXJtaXNzaW9uLlJlYWRGYWNldCksXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ2ZhY2V0cycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LmZhY2V0cycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3RhZycsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9jYXRhbG9nJywgJ2ZhY2V0cyddLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZENhdGFsb2csIFBlcm1pc3Npb24uUmVhZENvbGxlY3Rpb24pLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdjb2xsZWN0aW9ucycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LmNvbGxlY3Rpb25zJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnZm9sZGVyLW9wZW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvY2F0YWxvZycsICdjb2xsZWN0aW9ucyddLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZENhdGFsb2csIFBlcm1pc3Npb24uUmVhZEFzc2V0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnYXNzZXRzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuYXNzZXRzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnaW1hZ2UtZ2FsbGVyeScsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9jYXRhbG9nJywgJ2Fzc2V0cyddLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiAnc2FsZXMnLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuc2FsZXMnKSxcbiAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZE9yZGVyKSxcbiAgICAgICAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZE9yZGVyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnb3JkZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYub3JkZXJzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9vcmRlcnMnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdzaG9wcGluZy1jYXJ0JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogJ2N1c3RvbWVycycsXG4gICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5jdXN0b21lcnMnKSxcbiAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZEN1c3RvbWVyLCBQZXJtaXNzaW9uLlJlYWRDdXN0b21lckdyb3VwKSxcbiAgICAgICAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZEN1c3RvbWVyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnY3VzdG9tZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuY3VzdG9tZXJzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9jdXN0b21lcicsICdjdXN0b21lcnMnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICd1c2VyJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRDdXN0b21lckdyb3VwKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnY3VzdG9tZXItZ3JvdXBzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuY3VzdG9tZXItZ3JvdXBzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9jdXN0b21lcicsICdncm91cHMnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICd1c2VycycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6ICdtYXJrZXRpbmcnLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYubWFya2V0aW5nJyksXG4gICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRQcm9tb3Rpb24pLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkUHJvbW90aW9uKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAncHJvbW90aW9ucycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LnByb21vdGlvbnMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL21hcmtldGluZycsICdwcm9tb3Rpb25zJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnYXN0ZXJpc2snLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiAnc2V0dGluZ3MnLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuc2V0dGluZ3MnKSxcbiAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRTZXR0aW5ncyxcbiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbi5SZWFkQ2hhbm5lbCxcbiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbi5SZWFkQWRtaW5pc3RyYXRvcixcbiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbi5SZWFkU2hpcHBpbmdNZXRob2QsXG4gICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24uUmVhZFBheW1lbnRNZXRob2QsXG4gICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24uUmVhZFRheENhdGVnb3J5LFxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRUYXhSYXRlLFxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRDb3VudHJ5LFxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRab25lLFxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlVwZGF0ZUdsb2JhbFNldHRpbmdzLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgY29sbGFwc2libGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY29sbGFwc2VkQnlEZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkQ2hhbm5lbCksXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ2NoYW5uZWxzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuY2hhbm5lbHMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL3NldHRpbmdzJywgJ2NoYW5uZWxzJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnbGF5ZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRBZG1pbmlzdHJhdG9yKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnYWRtaW5pc3RyYXRvcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5hZG1pbmlzdHJhdG9ycycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvc2V0dGluZ3MnLCAnYWRtaW5pc3RyYXRvcnMnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdhZG1pbmlzdHJhdG9yJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRBZG1pbmlzdHJhdG9yKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAncm9sZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5yb2xlcycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvc2V0dGluZ3MnLCAncm9sZXMnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICd1c2VycycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkU2hpcHBpbmdNZXRob2QpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdzaGlwcGluZy1tZXRob2RzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuc2hpcHBpbmctbWV0aG9kcycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvc2V0dGluZ3MnLCAnc2hpcHBpbmctbWV0aG9kcyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3RydWNrJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRQYXltZW50TWV0aG9kKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAncGF5bWVudC1tZXRob2RzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYucGF5bWVudC1tZXRob2RzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9zZXR0aW5ncycsICdwYXltZW50LW1ldGhvZHMnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdjcmVkaXQtY2FyZCcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkVGF4Q2F0ZWdvcnkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICd0YXgtY2F0ZWdvcmllcycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LnRheC1jYXRlZ29yaWVzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9zZXR0aW5ncycsICd0YXgtY2F0ZWdvcmllcyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3ZpZXctbGlzdCcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkVGF4UmF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ3RheC1yYXRlcycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LnRheC1yYXRlcycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvc2V0dGluZ3MnLCAndGF4LXJhdGVzJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnY2FsY3VsYXRvcicsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkQ291bnRyeSksXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ2NvdW50cmllcycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LmNvdW50cmllcycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvc2V0dGluZ3MnLCAnY291bnRyaWVzJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnZmxhZycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkWm9uZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ3pvbmVzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuem9uZXMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL3NldHRpbmdzJywgJ3pvbmVzJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnd29ybGQnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uVXBkYXRlR2xvYmFsU2V0dGluZ3MpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdnbG9iYWwtc2V0dGluZ3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5nbG9iYWwtc2V0dGluZ3MnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL3NldHRpbmdzJywgJ2dsb2JhbC1zZXR0aW5ncyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2NvZycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6ICdzeXN0ZW0nLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuc3lzdGVtJyksXG4gICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBQZXJtaXNzaW9uLlJlYWRTeXN0ZW0sXG4gICAgICAgICAgICAgICAgY29sbGFwc2libGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY29sbGFwc2VkQnlEZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnam9iLXF1ZXVlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuam9iLXF1ZXVlJyksXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9zeXN0ZW0nLCAnam9icyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3RpY2stY2hhcnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQmFkZ2U6IHRoaXMuam9iUXVldWVTZXJ2aWNlLmFjdGl2ZUpvYnMkLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKFtdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpvYnMgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogam9icy5sZW5ndGggPT09IDAgPyAnbm9uZScgOiAnaW5mbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGFnYXRlVG9TZWN0aW9uOiBqb2JzLmxlbmd0aCA+IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGFzIE5hdk1lbnVCYWRnZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnc3lzdGVtLXN0YXR1cycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LnN5c3RlbS1zdGF0dXMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL3N5c3RlbScsICdzeXN0ZW0tc3RhdHVzJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAncmFjay1zZXJ2ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQmFkZ2U6IHRoaXMuaGVhbHRoQ2hlY2tTZXJ2aWNlLnN0YXR1cyQucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAoc3RhdHVzID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IHN0YXR1cyA9PT0gJ29rJyA/ICdzdWNjZXNzJyA6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BhZ2F0ZVRvU2VjdGlvbjogc3RhdHVzID09PSAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0pO1xuICAgIH1cbn1cbiIsIjxuYXYgY2xhc3M9XCJzaWRlbmF2XCIgW2Nsci1uYXYtbGV2ZWxdPVwiMlwiPlxyXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJzaWRlbmF2LWNvbnRlbnRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIG5hdkJ1aWxkZXJTZXJ2aWNlLm5hdk1lbnVDb25maWckIHwgYXN5bmNcIj5cclxuICAgICAgICAgICAgPHNlY3Rpb25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWdyb3VwXCJcclxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtc2VjdGlvbi1pZF09XCJzZWN0aW9uLmlkXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5jb2xsYXBzaWJsZV09XCJzZWN0aW9uLmNvbGxhcHNpYmxlXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvdWxkRGlzcGxheUxpbmsoc2VjdGlvbilcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8dmRyLXVpLWV4dGVuc2lvbi1wb2ludCBbbG9jYXRpb25JZF09XCJzZWN0aW9uLmlkXCIgYXBpPVwibmF2TWVudVwiIFt0b3BQeF09XCItNlwiIFtsZWZ0UHhdPVwiOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJuYXZCdWlsZGVyU2VydmljZS5zZWN0aW9uQmFkZ2VzW3NlY3Rpb24uaWRdIHwgYXN5bmMgYXMgc2VjdGlvbkJhZGdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItc3RhdHVzLWJhZGdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlY3Rpb25CYWRnZSAhPT0gJ25vbmUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cInNlY3Rpb25CYWRnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3Zkci1zdGF0dXMtYmFkZ2U+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtpZF09XCJzZWN0aW9uLmlkXCIgdHlwZT1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwic2VjdGlvbi5jb2xsYXBzZWRCeURlZmF1bHRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIm5hdi1ncm91cC1oZWFkZXJcIiBbZm9yXT1cInNlY3Rpb24uaWRcIj57eyBzZWN0aW9uLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJuYXYtbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNlY3Rpb24uaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cInNob3VsZERpc3BsYXlMaW5rKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGlua1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtaXRlbS1pZF09XCJzZWN0aW9uLmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiZ2V0Um91dGVyTGluayhpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uc3RhdHVzQmFkZ2UgfCBhc3luYyBhcyBpdGVtQmFkZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItc3RhdHVzLWJhZGdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtQmFkZ2UudHlwZSAhPT0gJ25vbmUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJpdGVtQmFkZ2UudHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC92ZHItc3RhdHVzLWJhZGdlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIFthdHRyLnNoYXBlXT1cIml0ZW0uaWNvbiB8fCAnYmxvY2snXCIgc2l6ZT1cIjIwXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICA8L3Zkci11aS1leHRlbnNpb24tcG9pbnQ+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvc2VjdGlvbj5cclxuPC9uYXY+XHJcbiJdfQ==
|
|
270
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1uYXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9jb21wb25lbnRzL21haW4tbmF2L21haW4tbmF2LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy9tYWluLW5hdi9tYWluLW5hdi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7Ozs7O0FBWTFELE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsWUFDWSxLQUFxQixFQUNyQixNQUFjLEVBQ2YsaUJBQW9DLEVBQ25DLGtCQUFzQyxFQUN0QyxlQUFnQyxFQUNoQyxXQUF3QjtRQUx4QixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Ysc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNuQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUNqQyxDQUFDO0lBS0osaUJBQWlCLENBQUMsUUFBaUQ7UUFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdkIsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFO1lBQzlCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxJQUFJLE9BQU8sUUFB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eUJBQ3pDLENBQUMsQ0FBQyxDQUNOO3FCQUNKO2lCQUNKO2FBQ0o7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDOzs2R0F2UlEsZ0JBQWdCO2lHQUFoQixnQkFBZ0Isb0RDbEI3Qiw2bkZBNkNBOzJGRDNCYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0ksY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUGVybWlzc2lvbiB9IGZyb20gJy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGVhbHRoQ2hlY2tTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2hlYWx0aC1jaGVjay9oZWFsdGgtY2hlY2suc2VydmljZSc7XG5pbXBvcnQgeyBKb2JRdWV1ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvam9iLXF1ZXVlL2pvYi1xdWV1ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdk1lbnVCYWRnZSwgTmF2TWVudUl0ZW0gfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvbmF2LWJ1aWxkZXIvbmF2LWJ1aWxkZXItdHlwZXMnO1xuaW1wb3J0IHsgTmF2QnVpbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvbmF2LWJ1aWxkZXIvbmF2LWJ1aWxkZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndmRyLW1haW4tbmF2JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWFpbi1uYXYuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL21haW4tbmF2LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1haW5OYXZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwdWJsaWMgbmF2QnVpbGRlclNlcnZpY2U6IE5hdkJ1aWxkZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGhlYWx0aENoZWNrU2VydmljZTogSGVhbHRoQ2hlY2tTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGpvYlF1ZXVlU2VydmljZTogSm9iUXVldWVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcbiAgICApIHt9XG5cbiAgICBwcml2YXRlIHVzZXJQZXJtaXNzaW9uczogc3RyaW5nW107XG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIHNob3VsZERpc3BsYXlMaW5rKG1lbnVJdGVtOiBQaWNrPE5hdk1lbnVJdGVtLCAncmVxdWlyZXNQZXJtaXNzaW9uJz4pIHtcbiAgICAgICAgaWYgKCF0aGlzLnVzZXJQZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghbWVudUl0ZW0ucmVxdWlyZXNQZXJtaXNzaW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIG1lbnVJdGVtLnJlcXVpcmVzUGVybWlzc2lvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVzZXJQZXJtaXNzaW9ucy5pbmNsdWRlcyhtZW51SXRlbS5yZXF1aXJlc1Blcm1pc3Npb24pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbWVudUl0ZW0ucmVxdWlyZXNQZXJtaXNzaW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gbWVudUl0ZW0ucmVxdWlyZXNQZXJtaXNzaW9uKHRoaXMudXNlclBlcm1pc3Npb25zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlZmluZU5hdk1lbnUoKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudFxuICAgICAgICAgICAgLnVzZXJTdGF0dXMoKVxuICAgICAgICAgICAgLm1hcFN0cmVhbSgoeyB1c2VyU3RhdHVzIH0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJQZXJtaXNzaW9ucyA9IHVzZXJTdGF0dXMucGVybWlzc2lvbnM7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRSb3V0ZXJMaW5rKGl0ZW06IE5hdk1lbnVJdGVtKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdkJ1aWxkZXJTZXJ2aWNlLmdldFJvdXRlckxpbmsoaXRlbSwgdGhpcy5yb3V0ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWZpbmVOYXZNZW51KCkge1xuICAgICAgICBmdW5jdGlvbiBhbGxvdyguLi5wZXJtaXNzaW9uczogc3RyaW5nW10pOiAodXNlclBlcm1pc3Npb25zOiBzdHJpbmdbXSkgPT4gYm9vbGVhbiB7XG4gICAgICAgICAgICByZXR1cm4gdXNlclBlcm1pc3Npb25zID0+IHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHBlcm1pc3Npb24gb2YgcGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXJQZXJtaXNzaW9ucy5pbmNsdWRlcyhwZXJtaXNzaW9uKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmF2QnVpbGRlclNlcnZpY2UuZGVmaW5lTmF2TWVudVNlY3Rpb25zKFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRDYXRhbG9nLFxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRQcm9kdWN0LFxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRGYWNldCxcbiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbi5SZWFkQ29sbGVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbi5SZWFkQXNzZXQsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBpZDogJ2NhdGFsb2cnLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuY2F0YWxvZycpLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkQ2F0YWxvZywgUGVybWlzc2lvbi5SZWFkUHJvZHVjdCksXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ3Byb2R1Y3RzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYucHJvZHVjdHMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdsaWJyYXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL2NhdGFsb2cnLCAncHJvZHVjdHMnXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRDYXRhbG9nLCBQZXJtaXNzaW9uLlJlYWRGYWNldCksXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ2ZhY2V0cycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LmZhY2V0cycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3RhZycsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9jYXRhbG9nJywgJ2ZhY2V0cyddLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZENhdGFsb2csIFBlcm1pc3Npb24uUmVhZENvbGxlY3Rpb24pLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdjb2xsZWN0aW9ucycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LmNvbGxlY3Rpb25zJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnZm9sZGVyLW9wZW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvY2F0YWxvZycsICdjb2xsZWN0aW9ucyddLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZENhdGFsb2csIFBlcm1pc3Npb24uUmVhZEFzc2V0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnYXNzZXRzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuYXNzZXRzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnaW1hZ2UtZ2FsbGVyeScsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9jYXRhbG9nJywgJ2Fzc2V0cyddLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiAnc2FsZXMnLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuc2FsZXMnKSxcbiAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZE9yZGVyKSxcbiAgICAgICAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZE9yZGVyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnb3JkZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYub3JkZXJzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9vcmRlcnMnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdzaG9wcGluZy1jYXJ0JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogJ2N1c3RvbWVycycsXG4gICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5jdXN0b21lcnMnKSxcbiAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZEN1c3RvbWVyLCBQZXJtaXNzaW9uLlJlYWRDdXN0b21lckdyb3VwKSxcbiAgICAgICAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZEN1c3RvbWVyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnY3VzdG9tZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuY3VzdG9tZXJzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9jdXN0b21lcicsICdjdXN0b21lcnMnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICd1c2VyJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRDdXN0b21lckdyb3VwKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnY3VzdG9tZXItZ3JvdXBzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuY3VzdG9tZXItZ3JvdXBzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9jdXN0b21lcicsICdncm91cHMnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICd1c2VycycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6ICdtYXJrZXRpbmcnLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYubWFya2V0aW5nJyksXG4gICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRQcm9tb3Rpb24pLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkUHJvbW90aW9uKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAncHJvbW90aW9ucycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LnByb21vdGlvbnMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL21hcmtldGluZycsICdwcm9tb3Rpb25zJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnYXN0ZXJpc2snLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiAnc2V0dGluZ3MnLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuc2V0dGluZ3MnKSxcbiAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRTZXR0aW5ncyxcbiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbi5SZWFkQ2hhbm5lbCxcbiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbi5SZWFkQWRtaW5pc3RyYXRvcixcbiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbi5SZWFkU2hpcHBpbmdNZXRob2QsXG4gICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24uUmVhZFBheW1lbnRNZXRob2QsXG4gICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24uUmVhZFRheENhdGVnb3J5LFxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRUYXhSYXRlLFxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRDb3VudHJ5LFxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRab25lLFxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlVwZGF0ZUdsb2JhbFNldHRpbmdzLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgY29sbGFwc2libGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY29sbGFwc2VkQnlEZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkQ2hhbm5lbCksXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ2NoYW5uZWxzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuY2hhbm5lbHMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL3NldHRpbmdzJywgJ2NoYW5uZWxzJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnbGF5ZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRBZG1pbmlzdHJhdG9yKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnYWRtaW5pc3RyYXRvcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5hZG1pbmlzdHJhdG9ycycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvc2V0dGluZ3MnLCAnYWRtaW5pc3RyYXRvcnMnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdhZG1pbmlzdHJhdG9yJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRBZG1pbmlzdHJhdG9yKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAncm9sZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5yb2xlcycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvc2V0dGluZ3MnLCAncm9sZXMnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICd1c2VycycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkU2hpcHBpbmdNZXRob2QpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdzaGlwcGluZy1tZXRob2RzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuc2hpcHBpbmctbWV0aG9kcycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvc2V0dGluZ3MnLCAnc2hpcHBpbmctbWV0aG9kcyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3RydWNrJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRQYXltZW50TWV0aG9kKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAncGF5bWVudC1tZXRob2RzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYucGF5bWVudC1tZXRob2RzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9zZXR0aW5ncycsICdwYXltZW50LW1ldGhvZHMnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdjcmVkaXQtY2FyZCcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkVGF4Q2F0ZWdvcnkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICd0YXgtY2F0ZWdvcmllcycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LnRheC1jYXRlZ29yaWVzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9zZXR0aW5ncycsICd0YXgtY2F0ZWdvcmllcyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3ZpZXctbGlzdCcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkVGF4UmF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ3RheC1yYXRlcycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LnRheC1yYXRlcycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvc2V0dGluZ3MnLCAndGF4LXJhdGVzJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnY2FsY3VsYXRvcicsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkQ291bnRyeSksXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ2NvdW50cmllcycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LmNvdW50cmllcycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvc2V0dGluZ3MnLCAnY291bnRyaWVzJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnZmxhZycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkWm9uZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ3pvbmVzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuem9uZXMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL3NldHRpbmdzJywgJ3pvbmVzJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnd29ybGQnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uVXBkYXRlR2xvYmFsU2V0dGluZ3MpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdnbG9iYWwtc2V0dGluZ3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5nbG9iYWwtc2V0dGluZ3MnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL3NldHRpbmdzJywgJ2dsb2JhbC1zZXR0aW5ncyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2NvZycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6ICdzeXN0ZW0nLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuc3lzdGVtJyksXG4gICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBQZXJtaXNzaW9uLlJlYWRTeXN0ZW0sXG4gICAgICAgICAgICAgICAgY29sbGFwc2libGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY29sbGFwc2VkQnlEZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnam9iLXF1ZXVlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuam9iLXF1ZXVlJyksXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9zeXN0ZW0nLCAnam9icyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3RpY2stY2hhcnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQmFkZ2U6IHRoaXMuam9iUXVldWVTZXJ2aWNlLmFjdGl2ZUpvYnMkLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKFtdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpvYnMgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogam9icy5sZW5ndGggPT09IDAgPyAnbm9uZScgOiAnaW5mbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGFnYXRlVG9TZWN0aW9uOiBqb2JzLmxlbmd0aCA+IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGFzIE5hdk1lbnVCYWRnZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnc3lzdGVtLXN0YXR1cycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LnN5c3RlbS1zdGF0dXMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL3N5c3RlbScsICdzeXN0ZW0tc3RhdHVzJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAncmFjay1zZXJ2ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQmFkZ2U6IHRoaXMuaGVhbHRoQ2hlY2tTZXJ2aWNlLnN0YXR1cyQucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAoc3RhdHVzID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IHN0YXR1cyA9PT0gJ29rJyA/ICdzdWNjZXNzJyA6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BhZ2F0ZVRvU2VjdGlvbjogc3RhdHVzID09PSAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0pO1xuICAgIH1cbn1cbiIsIjxuYXYgY2xhc3M9XCJzaWRlbmF2XCIgW2Nsci1uYXYtbGV2ZWxdPVwiMlwiPlxyXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJzaWRlbmF2LWNvbnRlbnRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIG5hdkJ1aWxkZXJTZXJ2aWNlLm5hdk1lbnVDb25maWckIHwgYXN5bmNcIj5cclxuICAgICAgICAgICAgPHNlY3Rpb25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWdyb3VwXCJcclxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtc2VjdGlvbi1pZF09XCJzZWN0aW9uLmlkXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5jb2xsYXBzaWJsZV09XCJzZWN0aW9uLmNvbGxhcHNpYmxlXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvdWxkRGlzcGxheUxpbmsoc2VjdGlvbilcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8dmRyLXVpLWV4dGVuc2lvbi1wb2ludCBbbG9jYXRpb25JZF09XCJzZWN0aW9uLmlkXCIgYXBpPVwibmF2TWVudVwiIFt0b3BQeF09XCItNlwiIFtsZWZ0UHhdPVwiOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJuYXZCdWlsZGVyU2VydmljZS5zZWN0aW9uQmFkZ2VzW3NlY3Rpb24uaWRdIHwgYXN5bmMgYXMgc2VjdGlvbkJhZGdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItc3RhdHVzLWJhZGdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlY3Rpb25CYWRnZSAhPT0gJ25vbmUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cInNlY3Rpb25CYWRnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3Zkci1zdGF0dXMtYmFkZ2U+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtpZF09XCJzZWN0aW9uLmlkXCIgdHlwZT1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwic2VjdGlvbi5jb2xsYXBzZWRCeURlZmF1bHRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIm5hdi1ncm91cC1oZWFkZXJcIiBbZm9yXT1cInNlY3Rpb24uaWRcIj57eyBzZWN0aW9uLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJuYXYtbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNlY3Rpb24uaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cInNob3VsZERpc3BsYXlMaW5rKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGlua1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtaXRlbS1pZF09XCJzZWN0aW9uLmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiZ2V0Um91dGVyTGluayhpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaXRlbS5vbkNsaWNrICYmIGl0ZW0ub25DbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnN0YXR1c0JhZGdlIHwgYXN5bmMgYXMgaXRlbUJhZGdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLXN0YXR1cy1iYWRnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbUJhZGdlLnR5cGUgIT09ICdub25lJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiaXRlbUJhZGdlLnR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdmRyLXN0YXR1cy1iYWRnZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBbYXR0ci5zaGFwZV09XCJpdGVtLmljb24gfHwgJ2Jsb2NrJ1wiIHNpemU9XCIyMFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgPC92ZHItdWktZXh0ZW5zaW9uLXBvaW50PlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L3NlY3Rpb24+XHJcbjwvbmF2PlxyXG4iXX0=
|