@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
|
@@ -134,9 +134,9 @@ export class RefundOrderDialogComponent {
|
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
RefundOrderDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: RefundOrderDialogComponent, deps: [{ token: i1.I18nService }], target: i0.ɵɵFactoryTarget.Component });
|
|
137
|
-
RefundOrderDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: RefundOrderDialogComponent, selector: "vdr-refund-order-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>{{ 'order.refund-and-cancel-order' | translate }}</ng-template>\r\n\r\n<div class=\"refund-wrapper\">\r\n <div class=\"order-table\">\r\n <table class=\"table\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>{{ 'order.product-name' | translate }}</th>\r\n <th>{{ 'order.product-sku' | translate }}</th>\r\n <th>{{ 'order.quantity' | translate }}</th>\r\n <th>{{ 'order.unit-price' | translate }}</th>\r\n <th>{{ 'order.prorated-unit-price' | translate }}</th>\r\n <th>{{ 'order.quantity' | translate }}</th>\r\n <th>{{ 'order.refund' | translate }}</th>\r\n <th>{{ 'order.cancel' | translate }}</th>\r\n </tr>\r\n </thead>\r\n <tr *ngFor=\"let line of order.lines\" class=\"order-line\">\r\n <td class=\"align-middle thumb\">\r\n <img [src]=\"line.featuredAsset | assetPreview: 'tiny'\" />\r\n </td>\r\n <td class=\"align-middle name\">{{ line.productVariant.name }}</td>\r\n <td class=\"align-middle sku\">{{ line.productVariant.sku }}</td>\r\n <td class=\"align-middle quantity\">\r\n {{ line.quantity }}\r\n <vdr-line-refunds [line]=\"line\" [payments]=\"order.payments\"></vdr-line-refunds>\r\n </td>\r\n <td class=\"align-middle quantity\">\r\n {{ line.unitPriceWithTax | localeCurrency: order.currencyCode }}\r\n </td>\r\n <td class=\"align-middle quantity\">\r\n <div class=\"prorated-wrapper\">\r\n {{ line.proratedUnitPriceWithTax | localeCurrency: order.currencyCode }}\r\n <ng-container *ngIf=\"line.discounts as discounts\">\r\n <vdr-dropdown *ngIf=\"discounts.length\">\r\n <div class=\"promotions-label\" vdrDropdownTrigger>\r\n <button class=\"icon-button\"><clr-icon shape=\"info\"></clr-icon></button>\r\n </div>\r\n <vdr-dropdown-menu>\r\n <div class=\"line-promotion\" *ngFor=\"let discount of discounts\">\r\n {{ discount.description }}\r\n <div class=\"promotion-amount\">\r\n {{\r\n discount.amount / 100 / line.quantity\r\n | number: '1.0-2'\r\n | currency: order.currencyCode\r\n }}\r\n </div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </ng-container>\r\n </div>\r\n </td>\r\n <td class=\"align-middle quantity-col\">\r\n <input\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n [(ngModel)]=\"lineQuantities[line.id].quantity\"\r\n type=\"number\"\r\n [max]=\"line.quantity\"\r\n min=\"0\"\r\n (input)=\"handleZeroQuantity(lineQuantities[line.id])\"\r\n />\r\n </td>\r\n <td class=\"align-middle\">\r\n <div class=\"cancel-checkbox-wrapper\">\r\n <input\r\n type=\"checkbox\"\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n clrCheckbox\r\n [disabled]=\"0 === lineQuantities[line.id].quantity\"\r\n [(ngModel)]=\"lineQuantities[line.id].refund\"\r\n />\r\n </div>\r\n </td>\r\n <td class=\"align-middle\">\r\n <div class=\"cancel-checkbox-wrapper\">\r\n <input\r\n type=\"checkbox\"\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n clrCheckbox\r\n [disabled]=\"0 === lineQuantities[line.id].quantity\"\r\n [(ngModel)]=\"lineQuantities[line.id].cancel\"\r\n />\r\n </div>\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n <div class=\"refund-details mt4\" [class.faded]=\"!isRefunding() && !isCancelling()\">\r\n <div>\r\n <label class=\"clr-control-label\">{{ 'order.refund-cancellation-reason' | translate }}</label>\r\n <ng-select\r\n [disabled]=\"!isRefunding() && !isCancelling()\"\r\n [items]=\"reasons\"\r\n bindLabel=\"name\"\r\n autofocus\r\n [placeholder]=\"'order.refund-cancellation-reason-required' | translate\"\r\n bindValue=\"id\"\r\n [addTag]=\"true\"\r\n [(ngModel)]=\"reason\"\r\n ></ng-select>\r\n </div>\r\n\r\n <div>\r\n <clr-select-container>\r\n <label>{{ 'order.payment-to-refund' | translate }}</label>\r\n <select clrSelect name=\"options\" [(ngModel)]=\"selectedPayment\" [disabled]=\"!isRefunding()\">\r\n <option\r\n *ngFor=\"let payment of settledPayments\"\r\n [ngValue]=\"payment\"\r\n [disabled]=\"payment.state !== 'Settled'\"\r\n >\r\n #{{ payment.id }} {{ payment.method }}:\r\n {{ payment.amount | localeCurrency: order.currencyCode }}\r\n </option>\r\n </select>\r\n </clr-select-container>\r\n\r\n <clr-checkbox-wrapper>\r\n <input type=\"checkbox\" clrCheckbox [(ngModel)]=\"refundShipping\" [disabled]=\"!isRefunding()\" />\r\n <label>\r\n {{ 'order.refund-shipping' | translate }} ({{\r\n order.shippingWithTax | localeCurrency: order.currencyCode\r\n }})\r\n </label>\r\n </clr-checkbox-wrapper>\r\n <clr-input-container>\r\n <label>{{ 'order.refund-adjustment' | translate }}</label>\r\n <vdr-currency-input\r\n clrInput\r\n [disabled]=\"!isRefunding()\"\r\n [currencyCode]=\"order.currencyCode\"\r\n [(ngModel)]=\"adjustment\"\r\n ></vdr-currency-input>\r\n </clr-input-container>\r\n <div class=\"totals\" [class.disabled]=\"!isRefunding()\">\r\n <div class=\"order-total\">\r\n {{ 'order.payment-amount' | translate }}:\r\n {{ selectedPayment.amount | localeCurrency: order.currencyCode }}\r\n </div>\r\n <div class=\"refund-total\">\r\n {{ 'order.refund-total' | translate }}:\r\n {{ refundTotal | localeCurrency: order.currencyCode }}\r\n </div>\r\n <div class=\"refund-total-error\" *ngIf=\"refundTotal < 0 || settledPaymentsTotal < refundTotal\">\r\n {{\r\n 'order.refund-total-error'\r\n | translate\r\n : {\r\n min: 0 | currency: order.currencyCode,\r\n max: settledPaymentsTotal | localeCurrency: order.currencyCode\r\n }\r\n }}\r\n </div>\r\n <div class=\"refund-total-warning\" *ngIf=\"selectedPayment.amount < refundTotal\">\r\n {{ 'order.refund-total-warning' | translate }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"select()\" [disabled]=\"!canSubmit()\" class=\"btn btn-primary\">\r\n <ng-container *ngIf=\"isRefunding(); else cancelling\">\r\n {{\r\n 'order.refund-with-amount'\r\n | translate: { amount: refundTotal | localeCurrency: order.currencyCode }\r\n }}\r\n </ng-container>\r\n <ng-template #cancelling>\r\n {{ 'order.cancel-selected-items' | translate }}\r\n </ng-template>\r\n </button>\r\n</ng-template>\r\n", styles: [":host{height:100%;display:flex;min-height:64vh}.refund-wrapper{flex:1;flex-direction:column}.refund-wrapper .order-table{flex:1;overflow-y:auto}.refund-wrapper .order-table table{margin-top:0}.refund-wrapper tr.ignore{color:var(--color-grey-300)}.quantity-col{background-color:var(--color-warning-100)}.cancel-checkbox-wrapper{display:flex;align-items:center;justify-content:center}clr-checkbox-wrapper{margin-top:12px;margin-bottom:12px;display:block}.refund-details{display:flex;justify-content:space-between}.refund-details.faded{opacity:.5}.totals{margin-top:48px}.totals .refund-total{font-size:18px}.totals .refund-total-error{color:var(--color-error-500)}.totals .refund-total-warning{color:var(--color-warning-600);max-width:250px}.totals.disabled{color:var(--color-grey-300)}.prorated-wrapper{display:flex;justify-content:center}.line-promotion{display:flex;justify-content:space-between;font-size:12px;padding:3px 6px}.line-promotion .promotion-amount{margin-left:12px}\n"], components: [{ type: i2.LineRefundsComponent, selector: "vdr-line-refunds", inputs: ["line", "payments"] }, { type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition"] }, { type: i3.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: i4.ClrSelectContainer, selector: "clr-select-container" }, { type: i4.ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { type: i4.ClrInputContainer, selector: "clr-input-container" }, { type: i1.CurrencyInputComponent, selector: "vdr-currency-input", inputs: ["disabled", "readonly", "value", "currencyCode"], outputs: ["valueChange"] }], directives: [{ type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { type: i4.ClrIconCustomTag, selector: "clr-icon" }, { type: i1.FormFieldControlDirective, selector: "input, textarea, select" }, { type: i6.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { type: i6.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { type: i6.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i4.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { type: i4.ClrLabel, selector: "label", inputs: ["for"] }, { type: i6.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i4.ClrSelect, selector: "[clrSelect]" }, { type: i6.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i6.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i4.ClrInput, selector: "[clrInput]" }, { type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }], pipes: { "translate": i7.TranslatePipe, "assetPreview": i1.AssetPreviewPipe, "localeCurrency": i1.LocaleCurrencyPipe, "currency": i5.CurrencyPipe, "number": i5.DecimalPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
137
|
+
RefundOrderDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: RefundOrderDialogComponent, selector: "vdr-refund-order-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>{{ 'order.refund-and-cancel-order' | translate }}</ng-template>\r\n\r\n<div class=\"refund-wrapper\">\r\n <div class=\"order-table\">\r\n <table class=\"table\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>{{ 'order.product-name' | translate }}</th>\r\n <th>{{ 'order.product-sku' | translate }}</th>\r\n <th>{{ 'order.quantity' | translate }}</th>\r\n <th>{{ 'order.unit-price' | translate }}</th>\r\n <th>{{ 'order.prorated-unit-price' | translate }}</th>\r\n <th>{{ 'order.quantity' | translate }}</th>\r\n <th>{{ 'order.refund' | translate }}</th>\r\n <th>{{ 'order.cancel' | translate }}</th>\r\n </tr>\r\n </thead>\r\n <tr *ngFor=\"let line of order.lines\" class=\"order-line\">\r\n <td class=\"align-middle thumb\">\r\n <img [src]=\"line.featuredAsset | assetPreview: 'tiny'\" />\r\n </td>\r\n <td class=\"align-middle name\">{{ line.productVariant.name }}</td>\r\n <td class=\"align-middle sku\">{{ line.productVariant.sku }}</td>\r\n <td class=\"align-middle quantity\">\r\n {{ line.quantity }}\r\n <vdr-line-refunds [line]=\"line\" [payments]=\"order.payments\"></vdr-line-refunds>\r\n </td>\r\n <td class=\"align-middle quantity\">\r\n {{ line.unitPriceWithTax | localeCurrency: order.currencyCode }}\r\n </td>\r\n <td class=\"align-middle quantity\">\r\n <div class=\"prorated-wrapper\">\r\n {{ line.proratedUnitPriceWithTax | localeCurrency: order.currencyCode }}\r\n <ng-container *ngIf=\"line.discounts as discounts\">\r\n <vdr-dropdown *ngIf=\"discounts.length\">\r\n <div class=\"promotions-label\" vdrDropdownTrigger>\r\n <button class=\"icon-button\"><clr-icon shape=\"info\"></clr-icon></button>\r\n </div>\r\n <vdr-dropdown-menu>\r\n <div class=\"line-promotion\" *ngFor=\"let discount of discounts\">\r\n {{ discount.description }}\r\n <div class=\"promotion-amount\">\r\n {{\r\n discount.amount / 100 / line.quantity\r\n | number: '1.0-2'\r\n | currency: order.currencyCode\r\n }}\r\n </div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </ng-container>\r\n </div>\r\n </td>\r\n <td class=\"align-middle quantity-col\">\r\n <input\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n [(ngModel)]=\"lineQuantities[line.id].quantity\"\r\n type=\"number\"\r\n [max]=\"line.quantity\"\r\n min=\"0\"\r\n (input)=\"handleZeroQuantity(lineQuantities[line.id])\"\r\n />\r\n </td>\r\n <td class=\"align-middle\">\r\n <div class=\"cancel-checkbox-wrapper\">\r\n <input\r\n type=\"checkbox\"\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n clrCheckbox\r\n [disabled]=\"0 === lineQuantities[line.id].quantity\"\r\n [(ngModel)]=\"lineQuantities[line.id].refund\"\r\n />\r\n </div>\r\n </td>\r\n <td class=\"align-middle\">\r\n <div class=\"cancel-checkbox-wrapper\">\r\n <input\r\n type=\"checkbox\"\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n clrCheckbox\r\n [disabled]=\"0 === lineQuantities[line.id].quantity\"\r\n [(ngModel)]=\"lineQuantities[line.id].cancel\"\r\n />\r\n </div>\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n <div class=\"refund-details mt4\" [class.faded]=\"!isRefunding() && !isCancelling()\">\r\n <div>\r\n <label class=\"clr-control-label\">{{ 'order.refund-cancellation-reason' | translate }}</label>\r\n <ng-select\r\n [disabled]=\"!isRefunding() && !isCancelling()\"\r\n [items]=\"reasons\"\r\n bindLabel=\"name\"\r\n autofocus\r\n [placeholder]=\"'order.refund-cancellation-reason-required' | translate\"\r\n bindValue=\"id\"\r\n [addTag]=\"true\"\r\n [(ngModel)]=\"reason\"\r\n ></ng-select>\r\n </div>\r\n\r\n <div>\r\n <clr-select-container>\r\n <label>{{ 'order.payment-to-refund' | translate }}</label>\r\n <select clrSelect name=\"options\" [(ngModel)]=\"selectedPayment\" [disabled]=\"!isRefunding()\">\r\n <option\r\n *ngFor=\"let payment of settledPayments\"\r\n [ngValue]=\"payment\"\r\n [disabled]=\"payment.state !== 'Settled'\"\r\n >\r\n #{{ payment.id }} {{ payment.method }}:\r\n {{ payment.amount | localeCurrency: order.currencyCode }}\r\n </option>\r\n </select>\r\n </clr-select-container>\r\n\r\n <clr-checkbox-wrapper>\r\n <input type=\"checkbox\" clrCheckbox [(ngModel)]=\"refundShipping\" [disabled]=\"!isRefunding()\" />\r\n <label>\r\n {{ 'order.refund-shipping' | translate }} ({{\r\n order.shippingWithTax | localeCurrency: order.currencyCode\r\n }})\r\n </label>\r\n </clr-checkbox-wrapper>\r\n <clr-input-container>\r\n <label>{{ 'order.refund-adjustment' | translate }}</label>\r\n <vdr-currency-input\r\n clrInput\r\n [disabled]=\"!isRefunding()\"\r\n [currencyCode]=\"order.currencyCode\"\r\n [(ngModel)]=\"adjustment\"\r\n ></vdr-currency-input>\r\n </clr-input-container>\r\n <div class=\"totals\" [class.disabled]=\"!isRefunding()\">\r\n <div class=\"order-total\">\r\n {{ 'order.payment-amount' | translate }}:\r\n {{ selectedPayment.amount | localeCurrency: order.currencyCode }}\r\n </div>\r\n <div class=\"refund-total\">\r\n {{ 'order.refund-total' | translate }}:\r\n {{ refundTotal | localeCurrency: order.currencyCode }}\r\n </div>\r\n <div class=\"refund-total-error\" *ngIf=\"refundTotal < 0 || settledPaymentsTotal < refundTotal\">\r\n {{\r\n 'order.refund-total-error'\r\n | translate\r\n : {\r\n min: 0 | currency: order.currencyCode,\r\n max: settledPaymentsTotal | localeCurrency: order.currencyCode\r\n }\r\n }}\r\n </div>\r\n <div class=\"refund-total-warning\" *ngIf=\"selectedPayment.amount < refundTotal\">\r\n {{ 'order.refund-total-warning' | translate }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"select()\" [disabled]=\"!canSubmit()\" class=\"btn btn-primary\">\r\n <ng-container *ngIf=\"isRefunding(); else cancelling\">\r\n {{\r\n 'order.refund-with-amount'\r\n | translate: { amount: refundTotal | localeCurrency: order.currencyCode }\r\n }}\r\n </ng-container>\r\n <ng-template #cancelling>\r\n {{ 'order.cancel-selected-items' | translate }}\r\n </ng-template>\r\n </button>\r\n</ng-template>\r\n", styles: [":host{height:100%;display:flex;min-height:64vh}.refund-wrapper{flex:1;flex-direction:column}.refund-wrapper .order-table{flex:1;overflow-y:auto}.refund-wrapper .order-table table{margin-top:0}.refund-wrapper tr.ignore{color:var(--color-grey-300)}.quantity-col{background-color:var(--color-warning-100)}.cancel-checkbox-wrapper{display:flex;align-items:center;justify-content:center}clr-checkbox-wrapper{margin-top:12px;margin-bottom:12px;display:block}.refund-details{display:flex;justify-content:space-between}.refund-details.faded{opacity:.5}.totals{margin-top:48px}.totals .refund-total{font-size:18px}.totals .refund-total-error{color:var(--color-error-500)}.totals .refund-total-warning{color:var(--color-warning-600);max-width:250px}.totals.disabled{color:var(--color-grey-300)}.prorated-wrapper{display:flex;justify-content:center}.line-promotion{display:flex;justify-content:space-between;font-size:12px;padding:3px 6px}.line-promotion .promotion-amount{margin-left:12px}\n"], components: [{ type: i2.LineRefundsComponent, selector: "vdr-line-refunds", inputs: ["line", "payments"] }, { type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { type: i3.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: i4.ClrSelectContainer, selector: "clr-select-container" }, { type: i4.ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { type: i4.ClrInputContainer, selector: "clr-input-container" }, { type: i1.CurrencyInputComponent, selector: "vdr-currency-input", inputs: ["disabled", "readonly", "value", "currencyCode"], outputs: ["valueChange"] }], directives: [{ type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { type: i4.ClrIconCustomTag, selector: "clr-icon" }, { type: i1.FormFieldControlDirective, selector: "input, textarea, select" }, { type: i6.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { type: i6.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { type: i6.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i4.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { type: i4.ClrLabel, selector: "label", inputs: ["for"] }, { type: i6.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i4.ClrSelect, selector: "[clrSelect]" }, { type: i6.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i6.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i4.ClrInput, selector: "[clrInput]" }, { type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }], pipes: { "translate": i7.TranslatePipe, "assetPreview": i1.AssetPreviewPipe, "localeCurrency": i1.LocaleCurrencyPipe, "currency": i5.CurrencyPipe, "number": i5.DecimalPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
138
138
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: RefundOrderDialogComponent, decorators: [{
|
|
139
139
|
type: Component,
|
|
140
140
|
args: [{ selector: 'vdr-refund-order-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>{{ 'order.refund-and-cancel-order' | translate }}</ng-template>\r\n\r\n<div class=\"refund-wrapper\">\r\n <div class=\"order-table\">\r\n <table class=\"table\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>{{ 'order.product-name' | translate }}</th>\r\n <th>{{ 'order.product-sku' | translate }}</th>\r\n <th>{{ 'order.quantity' | translate }}</th>\r\n <th>{{ 'order.unit-price' | translate }}</th>\r\n <th>{{ 'order.prorated-unit-price' | translate }}</th>\r\n <th>{{ 'order.quantity' | translate }}</th>\r\n <th>{{ 'order.refund' | translate }}</th>\r\n <th>{{ 'order.cancel' | translate }}</th>\r\n </tr>\r\n </thead>\r\n <tr *ngFor=\"let line of order.lines\" class=\"order-line\">\r\n <td class=\"align-middle thumb\">\r\n <img [src]=\"line.featuredAsset | assetPreview: 'tiny'\" />\r\n </td>\r\n <td class=\"align-middle name\">{{ line.productVariant.name }}</td>\r\n <td class=\"align-middle sku\">{{ line.productVariant.sku }}</td>\r\n <td class=\"align-middle quantity\">\r\n {{ line.quantity }}\r\n <vdr-line-refunds [line]=\"line\" [payments]=\"order.payments\"></vdr-line-refunds>\r\n </td>\r\n <td class=\"align-middle quantity\">\r\n {{ line.unitPriceWithTax | localeCurrency: order.currencyCode }}\r\n </td>\r\n <td class=\"align-middle quantity\">\r\n <div class=\"prorated-wrapper\">\r\n {{ line.proratedUnitPriceWithTax | localeCurrency: order.currencyCode }}\r\n <ng-container *ngIf=\"line.discounts as discounts\">\r\n <vdr-dropdown *ngIf=\"discounts.length\">\r\n <div class=\"promotions-label\" vdrDropdownTrigger>\r\n <button class=\"icon-button\"><clr-icon shape=\"info\"></clr-icon></button>\r\n </div>\r\n <vdr-dropdown-menu>\r\n <div class=\"line-promotion\" *ngFor=\"let discount of discounts\">\r\n {{ discount.description }}\r\n <div class=\"promotion-amount\">\r\n {{\r\n discount.amount / 100 / line.quantity\r\n | number: '1.0-2'\r\n | currency: order.currencyCode\r\n }}\r\n </div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </ng-container>\r\n </div>\r\n </td>\r\n <td class=\"align-middle quantity-col\">\r\n <input\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n [(ngModel)]=\"lineQuantities[line.id].quantity\"\r\n type=\"number\"\r\n [max]=\"line.quantity\"\r\n min=\"0\"\r\n (input)=\"handleZeroQuantity(lineQuantities[line.id])\"\r\n />\r\n </td>\r\n <td class=\"align-middle\">\r\n <div class=\"cancel-checkbox-wrapper\">\r\n <input\r\n type=\"checkbox\"\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n clrCheckbox\r\n [disabled]=\"0 === lineQuantities[line.id].quantity\"\r\n [(ngModel)]=\"lineQuantities[line.id].refund\"\r\n />\r\n </div>\r\n </td>\r\n <td class=\"align-middle\">\r\n <div class=\"cancel-checkbox-wrapper\">\r\n <input\r\n type=\"checkbox\"\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n clrCheckbox\r\n [disabled]=\"0 === lineQuantities[line.id].quantity\"\r\n [(ngModel)]=\"lineQuantities[line.id].cancel\"\r\n />\r\n </div>\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n <div class=\"refund-details mt4\" [class.faded]=\"!isRefunding() && !isCancelling()\">\r\n <div>\r\n <label class=\"clr-control-label\">{{ 'order.refund-cancellation-reason' | translate }}</label>\r\n <ng-select\r\n [disabled]=\"!isRefunding() && !isCancelling()\"\r\n [items]=\"reasons\"\r\n bindLabel=\"name\"\r\n autofocus\r\n [placeholder]=\"'order.refund-cancellation-reason-required' | translate\"\r\n bindValue=\"id\"\r\n [addTag]=\"true\"\r\n [(ngModel)]=\"reason\"\r\n ></ng-select>\r\n </div>\r\n\r\n <div>\r\n <clr-select-container>\r\n <label>{{ 'order.payment-to-refund' | translate }}</label>\r\n <select clrSelect name=\"options\" [(ngModel)]=\"selectedPayment\" [disabled]=\"!isRefunding()\">\r\n <option\r\n *ngFor=\"let payment of settledPayments\"\r\n [ngValue]=\"payment\"\r\n [disabled]=\"payment.state !== 'Settled'\"\r\n >\r\n #{{ payment.id }} {{ payment.method }}:\r\n {{ payment.amount | localeCurrency: order.currencyCode }}\r\n </option>\r\n </select>\r\n </clr-select-container>\r\n\r\n <clr-checkbox-wrapper>\r\n <input type=\"checkbox\" clrCheckbox [(ngModel)]=\"refundShipping\" [disabled]=\"!isRefunding()\" />\r\n <label>\r\n {{ 'order.refund-shipping' | translate }} ({{\r\n order.shippingWithTax | localeCurrency: order.currencyCode\r\n }})\r\n </label>\r\n </clr-checkbox-wrapper>\r\n <clr-input-container>\r\n <label>{{ 'order.refund-adjustment' | translate }}</label>\r\n <vdr-currency-input\r\n clrInput\r\n [disabled]=\"!isRefunding()\"\r\n [currencyCode]=\"order.currencyCode\"\r\n [(ngModel)]=\"adjustment\"\r\n ></vdr-currency-input>\r\n </clr-input-container>\r\n <div class=\"totals\" [class.disabled]=\"!isRefunding()\">\r\n <div class=\"order-total\">\r\n {{ 'order.payment-amount' | translate }}:\r\n {{ selectedPayment.amount | localeCurrency: order.currencyCode }}\r\n </div>\r\n <div class=\"refund-total\">\r\n {{ 'order.refund-total' | translate }}:\r\n {{ refundTotal | localeCurrency: order.currencyCode }}\r\n </div>\r\n <div class=\"refund-total-error\" *ngIf=\"refundTotal < 0 || settledPaymentsTotal < refundTotal\">\r\n {{\r\n 'order.refund-total-error'\r\n | translate\r\n : {\r\n min: 0 | currency: order.currencyCode,\r\n max: settledPaymentsTotal | localeCurrency: order.currencyCode\r\n }\r\n }}\r\n </div>\r\n <div class=\"refund-total-warning\" *ngIf=\"selectedPayment.amount < refundTotal\">\r\n {{ 'order.refund-total-warning' | translate }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"select()\" [disabled]=\"!canSubmit()\" class=\"btn btn-primary\">\r\n <ng-container *ngIf=\"isRefunding(); else cancelling\">\r\n {{\r\n 'order.refund-with-amount'\r\n | translate: { amount: refundTotal | localeCurrency: order.currencyCode }\r\n }}\r\n </ng-container>\r\n <ng-template #cancelling>\r\n {{ 'order.cancel-selected-items' | translate }}\r\n </ng-template>\r\n </button>\r\n</ng-template>\r\n", styles: [":host{height:100%;display:flex;min-height:64vh}.refund-wrapper{flex:1;flex-direction:column}.refund-wrapper .order-table{flex:1;overflow-y:auto}.refund-wrapper .order-table table{margin-top:0}.refund-wrapper tr.ignore{color:var(--color-grey-300)}.quantity-col{background-color:var(--color-warning-100)}.cancel-checkbox-wrapper{display:flex;align-items:center;justify-content:center}clr-checkbox-wrapper{margin-top:12px;margin-bottom:12px;display:block}.refund-details{display:flex;justify-content:space-between}.refund-details.faded{opacity:.5}.totals{margin-top:48px}.totals .refund-total{font-size:18px}.totals .refund-total-error{color:var(--color-error-500)}.totals .refund-total-warning{color:var(--color-warning-600);max-width:250px}.totals.disabled{color:var(--color-grey-300)}.prorated-wrapper{display:flex;justify-content:center}.line-promotion{display:flex;justify-content:space-between;font-size:12px;padding:3px 6px}.line-promotion .promotion-amount{margin-left:12px}\n"] }]
|
|
141
141
|
}], ctorParameters: function () { return [{ type: i1.I18nService }]; } });
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmdW5kLW9yZGVyLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL3JlZnVuZC1vcmRlci1kaWFsb2cvcmVmdW5kLW9yZGVyLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL3JlZnVuZC1vcmRlci1kaWFsb2cvcmVmdW5kLW9yZGVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUdILFlBQVksR0FLZixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7O0FBVzNELE1BQU0sT0FBTywwQkFBMEI7SUFnQm5DLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBUjVDLG1CQUFjLEdBQXdDLEVBQUUsQ0FBQztRQUN6RCxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsWUFBTyxHQUFHLFlBQVksRUFBRSxDQUFDLG1CQUFtQixJQUFJO1lBQzVDLENBQUMsQ0FBQyxzQ0FBc0MsQ0FBQztZQUN6QyxDQUFDLENBQUMsbUNBQW1DLENBQUM7U0FDekMsQ0FBQztRQUdFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7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QyxNQUFNO29CQUNuQixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7aUJBQ3RDO2FBQ0osQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8saUJBQWlCLENBQUMsUUFBMEM7UUFDaEUsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7YUFDckMsTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNwRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMzQixXQUFXO1lBQ1gsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ1osQ0FBQzs7dUhBdkpRLDBCQUEwQjsyR0FBMUIsMEJBQTBCLCtEQ3RCdkMscWlTQWtMQTsyRkQ1SmEsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNJLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xuaW1wb3J0IHtcbiAgICBDYW5jZWxPcmRlcklucHV0LFxuICAgIERpYWxvZyxcbiAgICBnZXRBcHBDb25maWcsXG4gICAgSTE4blNlcnZpY2UsXG4gICAgT3JkZXJEZXRhaWxGcmFnbWVudCxcbiAgICBPcmRlckxpbmVJbnB1dCxcbiAgICBSZWZ1bmRPcmRlcklucHV0LFxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcbmltcG9ydCB7IHN1bW1hdGUgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC11dGlscyc7XG5cbnR5cGUgU2VsZWN0aW9uTGluZSA9IHsgcXVhbnRpdHk6IG51bWJlcjsgcmVmdW5kOiBib29sZWFuOyBjYW5jZWw6IGJvb2xlYW4gfTtcbnR5cGUgUGF5bWVudCA9IE5vbk51bGxhYmxlPE9yZGVyRGV0YWlsRnJhZ21lbnRbJ3BheW1lbnRzJ10+W251bWJlcl07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndmRyLXJlZnVuZC1vcmRlci1kaWFsb2cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZWZ1bmQtb3JkZXItZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9yZWZ1bmQtb3JkZXItZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFJlZnVuZE9yZGVyRGlhbG9nQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIERpYWxvZzx7IGNhbmNlbDogQ2FuY2VsT3JkZXJJbnB1dDsgcmVmdW5kOiBSZWZ1bmRPcmRlcklucHV0IH0+XG57XG4gICAgb3JkZXI6IE9yZGVyRGV0YWlsRnJhZ21lbnQ7XG4gICAgcmVzb2x2ZVdpdGg6IChyZXN1bHQ/OiB7IGNhbmNlbDogQ2FuY2VsT3JkZXJJbnB1dDsgcmVmdW5kOiBSZWZ1bmRPcmRlcklucHV0IH0pID0+IHZvaWQ7XG4gICAgcmVhc29uOiBzdHJpbmc7XG4gICAgc2V0dGxlZFBheW1lbnRzOiBQYXltZW50W107XG4gICAgc2VsZWN0ZWRQYXltZW50OiBQYXltZW50O1xuICAgIGxpbmVRdWFudGl0aWVzOiB7IFtsaW5lSWQ6IHN0cmluZ106IFNlbGVjdGlvbkxpbmUgfSA9IHt9O1xuICAgIHJlZnVuZFNoaXBwaW5nID0gZmFsc2U7XG4gICAgYWRqdXN0bWVudCA9IDA7XG4gICAgcmVhc29ucyA9IGdldEFwcENvbmZpZygpLmNhbmNlbGxhdGlvblJlYXNvbnMgPz8gW1xuICAgICAgICBfKCdvcmRlci5yZWZ1bmQtcmVhc29uLWN1c3RvbWVyLXJlcXVlc3QnKSxcbiAgICAgICAgXygnb3JkZXIucmVmdW5kLXJlYXNvbi1ub3QtYXZhaWxhYmxlJyksXG4gICAgXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMucmVhc29ucyA9IHRoaXMucmVhc29ucy5tYXAociA9PiB0aGlzLmkxOG5TZXJ2aWNlLnRyYW5zbGF0ZShyKSk7XG4gICAgfVxuXG4gICAgZ2V0IHJlZnVuZFRvdGFsKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGl0ZW1Ub3RhbCA9IHRoaXMub3JkZXIubGluZXMucmVkdWNlKCh0b3RhbCwgbGluZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGluZVJlZiA9IHRoaXMubGluZVF1YW50aXRpZXNbbGluZS5pZF07XG4gICAgICAgICAgICBjb25zdCByZWZ1bmRDb3VudCA9IChsaW5lUmVmLnJlZnVuZCAmJiBsaW5lUmVmLnF1YW50aXR5KSB8fCAwO1xuICAgICAgICAgICAgcmV0dXJuIHRvdGFsICsgbGluZS5wcm9yYXRlZFVuaXRQcmljZVdpdGhUYXggKiByZWZ1bmRDb3VudDtcbiAgICAgICAgfSwgMCk7XG4gICAgICAgIHJldHVybiBpdGVtVG90YWwgKyAodGhpcy5yZWZ1bmRTaGlwcGluZyA/IHRoaXMub3JkZXIuc2hpcHBpbmdXaXRoVGF4IDogMCkgKyB0aGlzLmFkanVzdG1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IHNldHRsZWRQYXltZW50c1RvdGFsKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldHRsZWRQYXltZW50c1xuICAgICAgICAgICAgLm1hcChwYXltZW50ID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXltZW50VG90YWwgPSBwYXltZW50LmFtb3VudDtcbiAgICAgICAgICAgICAgICBjb25zdCBhbHJlYWR5UmVmdW5kZWRUb3RhbCA9IHN1bW1hdGUoXG4gICAgICAgICAgICAgICAgICAgIHBheW1lbnQucmVmdW5kcy5maWx0ZXIociA9PiByLnN0YXRlICE9PSAnRmFpbGVkJykgYXMgQXJyYXk8XG4gICAgICAgICAgICAgICAgICAgICAgICBSZXF1aXJlZDxQYXltZW50WydyZWZ1bmRzJ11bbnVtYmVyXT5cbiAgICAgICAgICAgICAgICAgICAgPixcbiAgICAgICAgICAgICAgICAgICAgJ3RvdGFsJyxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXltZW50VG90YWwgLSBhbHJlYWR5UmVmdW5kZWRUb3RhbDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucmVkdWNlKChzdW0sIGFtb3VudCkgPT4gc3VtICsgYW1vdW50LCAwKTtcbiAgICB9XG5cbiAgICBsaW5lQ2FuQmVSZWZ1bmRlZE9yQ2FuY2VsbGVkKGxpbmU6IE9yZGVyRGV0YWlsRnJhZ21lbnRbJ2xpbmVzJ11bbnVtYmVyXSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCByZWZ1bmRzID1cbiAgICAgICAgICAgIHRoaXMub3JkZXIucGF5bWVudHM/LnJlZHVjZShcbiAgICAgICAgICAgICAgICAoYWxsLCBwYXltZW50KSA9PiBbLi4uYWxsLCAuLi5wYXltZW50LnJlZnVuZHNdLFxuICAgICAgICAgICAgICAgIFtdIGFzIFBheW1lbnRbJ3JlZnVuZHMnXSxcbiAgICAgICAgICAgICkgPz8gW107XG5cbiAgICAgICAgY29uc3QgcmVmdW5kYWJsZSA9IGxpbmUuaXRlbXMuZmlsdGVyKGkgPT4ge1xuICAgICAgICAgICAgaWYgKGkuY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGkucmVmdW5kSWQgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcmVmdW5kID0gcmVmdW5kcy5maW5kKHIgPT4gci5pZCA9PT0gaS5yZWZ1bmRJZCk7XG4gICAgICAgICAgICByZXR1cm4gcmVmdW5kPy5zdGF0ZSA9PT0gJ0ZhaWxlZCc7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gMCA8IHJlZnVuZGFibGUubGVuZ3RoO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmxpbmVRdWFudGl0aWVzID0gdGhpcy5vcmRlci5saW5lcy5yZWR1Y2UoKHJlc3VsdCwgbGluZSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAgICAgICAgW2xpbmUuaWRdOiB7XG4gICAgICAgICAgICAgICAgICAgIHF1YW50aXR5OiAwLFxuICAgICAgICAgICAgICAgICAgICByZWZ1bmQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjYW5jZWw6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LCB7fSk7XG4gICAgICAgIHRoaXMuc2V0dGxlZFBheW1lbnRzID0gKHRoaXMub3JkZXIucGF5bWVudHMgfHwgW10pLmZpbHRlcihwID0+IHAuc3RhdGUgPT09ICdTZXR0bGVkJyk7XG4gICAgICAgIGlmICh0aGlzLnNldHRsZWRQYXltZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQYXltZW50ID0gdGhpcy5zZXR0bGVkUGF5bWVudHNbMF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVaZXJvUXVhbnRpdHkobGluZT86IFNlbGVjdGlvbkxpbmUpIHtcbiAgICAgICAgaWYgKGxpbmU/LnF1YW50aXR5ID09PSAwKSB7XG4gICAgICAgICAgICBsaW5lLmNhbmNlbCA9IGZhbHNlO1xuICAgICAgICAgICAgbGluZS5yZWZ1bmQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzUmVmdW5kaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBPYmplY3QudmFsdWVzKHRoaXMubGluZVF1YW50aXRpZXMpLnJlZHVjZSgoaXNSZWZ1bmRpbmcsIGxpbmUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBpc1JlZnVuZGluZyB8fCAoMCA8IGxpbmUucXVhbnRpdHkgJiYgbGluZS5yZWZ1bmQpO1xuICAgICAgICB9LCBmYWxzZSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgaXNDYW5jZWxsaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBPYmplY3QudmFsdWVzKHRoaXMubGluZVF1YW50aXRpZXMpLnJlZHVjZSgoaXNDYW5jZWxsaW5nLCBsaW5lKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXNDYW5jZWxsaW5nIHx8ICgwIDwgbGluZS5xdWFudGl0eSAmJiBsaW5lLmNhbmNlbCk7XG4gICAgICAgIH0sIGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBjYW5TdWJtaXQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmlzUmVmdW5kaW5nKCkpIHtcbiAgICAgICAgICAgIHJldHVybiAhIShcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUGF5bWVudCAmJlxuICAgICAgICAgICAgICAgIHRoaXMucmVhc29uICYmXG4gICAgICAgICAgICAgICAgMCA8IHRoaXMucmVmdW5kVG90YWwgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnJlZnVuZFRvdGFsIDw9IHRoaXMuc2V0dGxlZFBheW1lbnRzVG90YWxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0NhbmNlbGxpbmcoKSkge1xuICAgICAgICAgICAgcmV0dXJuICEhdGhpcy5yZWFzb247XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHNlbGVjdCgpIHtcbiAgICAgICAgY29uc3QgcGF5bWVudCA9IHRoaXMuc2VsZWN0ZWRQYXltZW50O1xuICAgICAgICBpZiAocGF5bWVudCkge1xuICAgICAgICAgICAgY29uc3QgcmVmdW5kTGluZXMgPSB0aGlzLmdldE9yZGVyTGluZUlucHV0KGxpbmUgPT4gbGluZS5yZWZ1bmQpO1xuICAgICAgICAgICAgY29uc3QgY2FuY2VsTGluZXMgPSB0aGlzLmdldE9yZGVyTGluZUlucHV0KGxpbmUgPT4gbGluZS5jYW5jZWwpO1xuXG4gICAgICAgICAgICB0aGlzLnJlc29sdmVXaXRoKHtcbiAgICAgICAgICAgICAgICByZWZ1bmQ6IHtcbiAgICAgICAgICAgICAgICAgICAgbGluZXM6IHJlZnVuZExpbmVzLFxuICAgICAgICAgICAgICAgICAgICByZWFzb246IHRoaXMucmVhc29uLFxuICAgICAgICAgICAgICAgICAgICBzaGlwcGluZzogdGhpcy5yZWZ1bmRTaGlwcGluZyA/IHRoaXMub3JkZXIuc2hpcHBpbmdXaXRoVGF4IDogMCxcbiAgICAgICAgICAgICAgICAgICAgYWRqdXN0bWVudDogdGhpcy5hZGp1c3RtZW50LFxuICAgICAgICAgICAgICAgICAgICBwYXltZW50SWQ6IHBheW1lbnQuaWQsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjYW5jZWw6IHtcbiAgICAgICAgICAgICAgICAgICAgbGluZXM6IGNhbmNlbExpbmVzLFxuICAgICAgICAgICAgICAgICAgICBvcmRlcklkOiB0aGlzLm9yZGVyLmlkLFxuICAgICAgICAgICAgICAgICAgICByZWFzb246IHRoaXMucmVhc29uLFxuICAgICAgICAgICAgICAgICAgICBjYW5jZWxTaGlwcGluZzogdGhpcy5yZWZ1bmRTaGlwcGluZyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjYW5jZWwoKSB7XG4gICAgICAgIHRoaXMucmVzb2x2ZVdpdGgoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9yZGVyTGluZUlucHV0KGZpbHRlckZuOiAobGluZTogU2VsZWN0aW9uTGluZSkgPT4gYm9vbGVhbik6IE9yZGVyTGluZUlucHV0W10ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy5saW5lUXVhbnRpdGllcylcbiAgICAgICAgICAgIC5maWx0ZXIoKFtvcmRlckxpbmVJZCwgbGluZV0pID0+IDAgPCBsaW5lLnF1YW50aXR5ICYmIGZpbHRlckZuKGxpbmUpKVxuICAgICAgICAgICAgLm1hcCgoW29yZGVyTGluZUlkLCBsaW5lXSkgPT4gKHtcbiAgICAgICAgICAgICAgICBvcmRlckxpbmVJZCxcbiAgICAgICAgICAgICAgICBxdWFudGl0eTogbGluZS5xdWFudGl0eSxcbiAgICAgICAgICAgIH0pKTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgdmRyRGlhbG9nVGl0bGU+e3sgJ29yZGVyLnJlZnVuZC1hbmQtY2FuY2VsLW9yZGVyJyB8IHRyYW5zbGF0ZSB9fTwvbmctdGVtcGxhdGU+XHJcblxyXG48ZGl2IGNsYXNzPVwicmVmdW5kLXdyYXBwZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJvcmRlci10YWJsZVwiPlxyXG4gICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlXCI+XHJcbiAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICA8dGg+PC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGg+e3sgJ29yZGVyLnByb2R1Y3QtbmFtZScgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD57eyAnb3JkZXIucHJvZHVjdC1za3UnIHwgdHJhbnNsYXRlIH19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGg+e3sgJ29yZGVyLnF1YW50aXR5JyB8IHRyYW5zbGF0ZSB9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoPnt7ICdvcmRlci51bml0LXByaWNlJyB8IHRyYW5zbGF0ZSB9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoPnt7ICdvcmRlci5wcm9yYXRlZC11bml0LXByaWNlJyB8IHRyYW5zbGF0ZSB9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoPnt7ICdvcmRlci5xdWFudGl0eScgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD57eyAnb3JkZXIucmVmdW5kJyB8IHRyYW5zbGF0ZSB9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoPnt7ICdvcmRlci5jYW5jZWwnIHwgdHJhbnNsYXRlIH19PC90aD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgbGluZSBvZiBvcmRlci5saW5lc1wiIGNsYXNzPVwib3JkZXItbGluZVwiPlxyXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWxpZ24tbWlkZGxlIHRodW1iXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImxpbmUuZmVhdHVyZWRBc3NldCB8IGFzc2V0UHJldmlldzogJ3RpbnknXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhbGlnbi1taWRkbGUgbmFtZVwiPnt7IGxpbmUucHJvZHVjdFZhcmlhbnQubmFtZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhbGlnbi1taWRkbGUgc2t1XCI+e3sgbGluZS5wcm9kdWN0VmFyaWFudC5za3UgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWxpZ24tbWlkZGxlIHF1YW50aXR5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgbGluZS5xdWFudGl0eSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItbGluZS1yZWZ1bmRzIFtsaW5lXT1cImxpbmVcIiBbcGF5bWVudHNdPVwib3JkZXIucGF5bWVudHNcIj48L3Zkci1saW5lLXJlZnVuZHM+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWxpZ24tbWlkZGxlIHF1YW50aXR5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgbGluZS51bml0UHJpY2VXaXRoVGF4IHwgbG9jYWxlQ3VycmVuY3k6IG9yZGVyLmN1cnJlbmN5Q29kZSB9fVxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFsaWduLW1pZGRsZSBxdWFudGl0eVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9yYXRlZC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxpbmUucHJvcmF0ZWRVbml0UHJpY2VXaXRoVGF4IHwgbG9jYWxlQ3VycmVuY3k6IG9yZGVyLmN1cnJlbmN5Q29kZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGluZS5kaXNjb3VudHMgYXMgZGlzY291bnRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWRyb3Bkb3duICpuZ0lmPVwiZGlzY291bnRzLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9tb3Rpb25zLWxhYmVsXCIgdmRyRHJvcGRvd25UcmlnZ2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiaWNvbi1idXR0b25cIj48Y2xyLWljb24gc2hhcGU9XCJpbmZvXCI+PC9jbHItaWNvbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWRyb3Bkb3duLW1lbnU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaW5lLXByb21vdGlvblwiICpuZ0Zvcj1cImxldCBkaXNjb3VudCBvZiBkaXNjb3VudHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRpc2NvdW50LmRlc2NyaXB0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvbW90aW9uLWFtb3VudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2NvdW50LmFtb3VudCAvIDEwMCAvIGxpbmUucXVhbnRpdHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbnVtYmVyOiAnMS4wLTInXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGN1cnJlbmN5OiBvcmRlci5jdXJyZW5jeUNvZGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmRyLWRyb3Bkb3duLW1lbnU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Zkci1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWxpZ24tbWlkZGxlIHF1YW50aXR5LWNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImxpbmVDYW5CZVJlZnVuZGVkT3JDYW5jZWxsZWQobGluZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxpbmVRdWFudGl0aWVzW2xpbmUuaWRdLnF1YW50aXR5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwibGluZS5xdWFudGl0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbj1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwiaGFuZGxlWmVyb1F1YW50aXR5KGxpbmVRdWFudGl0aWVzW2xpbmUuaWRdKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhbGlnbi1taWRkbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FuY2VsLWNoZWNrYm94LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJsaW5lQ2FuQmVSZWZ1bmRlZE9yQ2FuY2VsbGVkKGxpbmUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsckNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiMCA9PT0gbGluZVF1YW50aXRpZXNbbGluZS5pZF0ucXVhbnRpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJsaW5lUXVhbnRpdGllc1tsaW5lLmlkXS5yZWZ1bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFsaWduLW1pZGRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYW5jZWwtY2hlY2tib3gtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImxpbmVDYW5CZVJlZnVuZGVkT3JDYW5jZWxsZWQobGluZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xyQ2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIwID09PSBsaW5lUXVhbnRpdGllc1tsaW5lLmlkXS5xdWFudGl0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxpbmVRdWFudGl0aWVzW2xpbmUuaWRdLmNhbmNlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvdGFibGU+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyZWZ1bmQtZGV0YWlscyBtdDRcIiBbY2xhc3MuZmFkZWRdPVwiIWlzUmVmdW5kaW5nKCkgJiYgIWlzQ2FuY2VsbGluZygpXCI+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY2xyLWNvbnRyb2wtbGFiZWxcIj57eyAnb3JkZXIucmVmdW5kLWNhbmNlbGxhdGlvbi1yZWFzb24nIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgPG5nLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc1JlZnVuZGluZygpICYmICFpc0NhbmNlbGxpbmcoKVwiXHJcbiAgICAgICAgICAgICAgICBbaXRlbXNdPVwicmVhc29uc1wiXHJcbiAgICAgICAgICAgICAgICBiaW5kTGFiZWw9XCJuYW1lXCJcclxuICAgICAgICAgICAgICAgIGF1dG9mb2N1c1xyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidvcmRlci5yZWZ1bmQtY2FuY2VsbGF0aW9uLXJlYXNvbi1yZXF1aXJlZCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgYmluZFZhbHVlPVwiaWRcIlxyXG4gICAgICAgICAgICAgICAgW2FkZFRhZ109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicmVhc29uXCJcclxuICAgICAgICAgICAgPjwvbmctc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8Y2xyLXNlbGVjdC1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ29yZGVyLnBheW1lbnQtdG8tcmVmdW5kJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8c2VsZWN0IGNsclNlbGVjdCBuYW1lPVwib3B0aW9uc1wiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRQYXltZW50XCIgW2Rpc2FibGVkXT1cIiFpc1JlZnVuZGluZygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcGF5bWVudCBvZiBzZXR0bGVkUGF5bWVudHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdWYWx1ZV09XCJwYXltZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInBheW1lbnQuc3RhdGUgIT09ICdTZXR0bGVkJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAje3sgcGF5bWVudC5pZCB9fSB7eyBwYXltZW50Lm1ldGhvZCB9fTpcclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgcGF5bWVudC5hbW91bnQgfCBsb2NhbGVDdXJyZW5jeTogb3JkZXIuY3VycmVuY3lDb2RlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9jbHItc2VsZWN0LWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxjbHItY2hlY2tib3gtd3JhcHBlcj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBjbHJDaGVja2JveCBbKG5nTW9kZWwpXT1cInJlZnVuZFNoaXBwaW5nXCIgW2Rpc2FibGVkXT1cIiFpc1JlZnVuZGluZygpXCIgLz5cclxuICAgICAgICAgICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICB7eyAnb3JkZXIucmVmdW5kLXNoaXBwaW5nJyB8IHRyYW5zbGF0ZSB9fSAoe3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXIuc2hpcHBpbmdXaXRoVGF4IHwgbG9jYWxlQ3VycmVuY3k6IG9yZGVyLmN1cnJlbmN5Q29kZVxyXG4gICAgICAgICAgICAgICAgICAgIH19KVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgPC9jbHItY2hlY2tib3gtd3JhcHBlcj5cclxuICAgICAgICAgICAgPGNsci1pbnB1dC1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ29yZGVyLnJlZnVuZC1hZGp1c3RtZW50JyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWN1cnJlbmN5LWlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgY2xySW5wdXRcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzUmVmdW5kaW5nKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjdXJyZW5jeUNvZGVdPVwib3JkZXIuY3VycmVuY3lDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImFkanVzdG1lbnRcIlxyXG4gICAgICAgICAgICAgICAgPjwvdmRyLWN1cnJlbmN5LWlucHV0PlxyXG4gICAgICAgICAgICA8L2Nsci1pbnB1dC1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3RhbHNcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzUmVmdW5kaW5nKClcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmRlci10b3RhbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci5wYXltZW50LWFtb3VudCcgfCB0cmFuc2xhdGUgfX06XHJcbiAgICAgICAgICAgICAgICAgICAge3sgc2VsZWN0ZWRQYXltZW50LmFtb3VudCB8IGxvY2FsZUN1cnJlbmN5OiBvcmRlci5jdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZnVuZC10b3RhbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci5yZWZ1bmQtdG90YWwnIHwgdHJhbnNsYXRlIH19OlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHJlZnVuZFRvdGFsIHwgbG9jYWxlQ3VycmVuY3k6IG9yZGVyLmN1cnJlbmN5Q29kZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVmdW5kLXRvdGFsLWVycm9yXCIgKm5nSWY9XCJyZWZ1bmRUb3RhbCA8IDAgfHwgc2V0dGxlZFBheW1lbnRzVG90YWwgPCByZWZ1bmRUb3RhbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdvcmRlci5yZWZ1bmQtdG90YWwtZXJyb3InXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbjogMCB8IGN1cnJlbmN5OiBvcmRlci5jdXJyZW5jeUNvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4OiBzZXR0bGVkUGF5bWVudHNUb3RhbCB8IGxvY2FsZUN1cnJlbmN5OiBvcmRlci5jdXJyZW5jeUNvZGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVmdW5kLXRvdGFsLXdhcm5pbmdcIiAqbmdJZj1cInNlbGVjdGVkUGF5bWVudC5hbW91bnQgPCByZWZ1bmRUb3RhbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci5yZWZ1bmQtdG90YWwtd2FybmluZycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSB2ZHJEaWFsb2dCdXR0b25zPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG5cIiAoY2xpY2spPVwiY2FuY2VsKClcIj57eyAnY29tbW9uLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cclxuICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJzZWxlY3QoKVwiIFtkaXNhYmxlZF09XCIhY2FuU3VibWl0KClcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1JlZnVuZGluZygpOyBlbHNlIGNhbmNlbGxpbmdcIj5cclxuICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICdvcmRlci5yZWZ1bmQtd2l0aC1hbW91bnQnXHJcbiAgICAgICAgICAgICAgICAgICAgfCB0cmFuc2xhdGU6IHsgYW1vdW50OiByZWZ1bmRUb3RhbCB8IGxvY2FsZUN1cnJlbmN5OiBvcmRlci5jdXJyZW5jeUNvZGUgfVxyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY2FuY2VsbGluZz5cclxuICAgICAgICAgICAge3sgJ29yZGVyLmNhbmNlbC1zZWxlY3RlZC1pdGVtcycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9idXR0b24+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmdW5kLW9yZGVyLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL3JlZnVuZC1vcmRlci1kaWFsb2cvcmVmdW5kLW9yZGVyLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL3JlZnVuZC1vcmRlci1kaWFsb2cvcmVmdW5kLW9yZGVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUdILFlBQVksR0FLZixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7O0FBVzNELE1BQU0sT0FBTywwQkFBMEI7SUFnQm5DLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBUjVDLG1CQUFjLEdBQXdDLEVBQUUsQ0FBQztRQUN6RCxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsWUFBTyxHQUFHLFlBQVksRUFBRSxDQUFDLG1CQUFtQixJQUFJO1lBQzVDLENBQUMsQ0FBQyxzQ0FBc0MsQ0FBQztZQUN6QyxDQUFDLENBQUMsbUNBQW1DLENBQUM7U0FDekMsQ0FBQztRQUdFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7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QyxNQUFNO29CQUNuQixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7aUJBQ3RDO2FBQ0osQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8saUJBQWlCLENBQUMsUUFBMEM7UUFDaEUsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7YUFDckMsTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNwRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMzQixXQUFXO1lBQ1gsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ1osQ0FBQzs7dUhBdkpRLDBCQUEwQjsyR0FBMUIsMEJBQTBCLCtEQ3RCdkMscWlTQWtMQTsyRkQ1SmEsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNJLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXJrZXIgYXMgXyB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcic7XHJcbmltcG9ydCB7XHJcbiAgICBDYW5jZWxPcmRlcklucHV0LFxyXG4gICAgRGlhbG9nLFxyXG4gICAgZ2V0QXBwQ29uZmlnLFxyXG4gICAgSTE4blNlcnZpY2UsXHJcbiAgICBPcmRlckRldGFpbEZyYWdtZW50LFxyXG4gICAgT3JkZXJMaW5lSW5wdXQsXHJcbiAgICBSZWZ1bmRPcmRlcklucHV0LFxyXG59IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBzdW1tYXRlIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xyXG5cclxudHlwZSBTZWxlY3Rpb25MaW5lID0geyBxdWFudGl0eTogbnVtYmVyOyByZWZ1bmQ6IGJvb2xlYW47IGNhbmNlbDogYm9vbGVhbiB9O1xyXG50eXBlIFBheW1lbnQgPSBOb25OdWxsYWJsZTxPcmRlckRldGFpbEZyYWdtZW50WydwYXltZW50cyddPltudW1iZXJdO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1yZWZ1bmQtb3JkZXItZGlhbG9nJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZWZ1bmQtb3JkZXItZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3JlZnVuZC1vcmRlci1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVmdW5kT3JkZXJEaWFsb2dDb21wb25lbnRcclxuICAgIGltcGxlbWVudHMgT25Jbml0LCBEaWFsb2c8eyBjYW5jZWw6IENhbmNlbE9yZGVySW5wdXQ7IHJlZnVuZDogUmVmdW5kT3JkZXJJbnB1dCB9PlxyXG57XHJcbiAgICBvcmRlcjogT3JkZXJEZXRhaWxGcmFnbWVudDtcclxuICAgIHJlc29sdmVXaXRoOiAocmVzdWx0PzogeyBjYW5jZWw6IENhbmNlbE9yZGVySW5wdXQ7IHJlZnVuZDogUmVmdW5kT3JkZXJJbnB1dCB9KSA9PiB2b2lkO1xyXG4gICAgcmVhc29uOiBzdHJpbmc7XHJcbiAgICBzZXR0bGVkUGF5bWVudHM6IFBheW1lbnRbXTtcclxuICAgIHNlbGVjdGVkUGF5bWVudDogUGF5bWVudDtcclxuICAgIGxpbmVRdWFudGl0aWVzOiB7IFtsaW5lSWQ6IHN0cmluZ106IFNlbGVjdGlvbkxpbmUgfSA9IHt9O1xyXG4gICAgcmVmdW5kU2hpcHBpbmcgPSBmYWxzZTtcclxuICAgIGFkanVzdG1lbnQgPSAwO1xyXG4gICAgcmVhc29ucyA9IGdldEFwcENvbmZpZygpLmNhbmNlbGxhdGlvblJlYXNvbnMgPz8gW1xyXG4gICAgICAgIF8oJ29yZGVyLnJlZnVuZC1yZWFzb24tY3VzdG9tZXItcmVxdWVzdCcpLFxyXG4gICAgICAgIF8oJ29yZGVyLnJlZnVuZC1yZWFzb24tbm90LWF2YWlsYWJsZScpLFxyXG4gICAgXTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSkge1xyXG4gICAgICAgIHRoaXMucmVhc29ucyA9IHRoaXMucmVhc29ucy5tYXAociA9PiB0aGlzLmkxOG5TZXJ2aWNlLnRyYW5zbGF0ZShyKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHJlZnVuZFRvdGFsKCk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgaXRlbVRvdGFsID0gdGhpcy5vcmRlci5saW5lcy5yZWR1Y2UoKHRvdGFsLCBsaW5lKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxpbmVSZWYgPSB0aGlzLmxpbmVRdWFudGl0aWVzW2xpbmUuaWRdO1xyXG4gICAgICAgICAgICBjb25zdCByZWZ1bmRDb3VudCA9IChsaW5lUmVmLnJlZnVuZCAmJiBsaW5lUmVmLnF1YW50aXR5KSB8fCAwO1xyXG4gICAgICAgICAgICByZXR1cm4gdG90YWwgKyBsaW5lLnByb3JhdGVkVW5pdFByaWNlV2l0aFRheCAqIHJlZnVuZENvdW50O1xyXG4gICAgICAgIH0sIDApO1xyXG4gICAgICAgIHJldHVybiBpdGVtVG90YWwgKyAodGhpcy5yZWZ1bmRTaGlwcGluZyA/IHRoaXMub3JkZXIuc2hpcHBpbmdXaXRoVGF4IDogMCkgKyB0aGlzLmFkanVzdG1lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHNldHRsZWRQYXltZW50c1RvdGFsKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0dGxlZFBheW1lbnRzXHJcbiAgICAgICAgICAgIC5tYXAocGF5bWVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYXltZW50VG90YWwgPSBwYXltZW50LmFtb3VudDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFscmVhZHlSZWZ1bmRlZFRvdGFsID0gc3VtbWF0ZShcclxuICAgICAgICAgICAgICAgICAgICBwYXltZW50LnJlZnVuZHMuZmlsdGVyKHIgPT4gci5zdGF0ZSAhPT0gJ0ZhaWxlZCcpIGFzIEFycmF5PFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZXF1aXJlZDxQYXltZW50WydyZWZ1bmRzJ11bbnVtYmVyXT5cclxuICAgICAgICAgICAgICAgICAgICA+LFxyXG4gICAgICAgICAgICAgICAgICAgICd0b3RhbCcsXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHBheW1lbnRUb3RhbCAtIGFscmVhZHlSZWZ1bmRlZFRvdGFsO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAucmVkdWNlKChzdW0sIGFtb3VudCkgPT4gc3VtICsgYW1vdW50LCAwKTtcclxuICAgIH1cclxuXHJcbiAgICBsaW5lQ2FuQmVSZWZ1bmRlZE9yQ2FuY2VsbGVkKGxpbmU6IE9yZGVyRGV0YWlsRnJhZ21lbnRbJ2xpbmVzJ11bbnVtYmVyXSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHJlZnVuZHMgPVxyXG4gICAgICAgICAgICB0aGlzLm9yZGVyLnBheW1lbnRzPy5yZWR1Y2UoXHJcbiAgICAgICAgICAgICAgICAoYWxsLCBwYXltZW50KSA9PiBbLi4uYWxsLCAuLi5wYXltZW50LnJlZnVuZHNdLFxyXG4gICAgICAgICAgICAgICAgW10gYXMgUGF5bWVudFsncmVmdW5kcyddLFxyXG4gICAgICAgICAgICApID8/IFtdO1xyXG5cclxuICAgICAgICBjb25zdCByZWZ1bmRhYmxlID0gbGluZS5pdGVtcy5maWx0ZXIoaSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChpLmNhbmNlbGxlZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpLnJlZnVuZElkID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IHJlZnVuZCA9IHJlZnVuZHMuZmluZChyID0+IHIuaWQgPT09IGkucmVmdW5kSWQpO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVmdW5kPy5zdGF0ZSA9PT0gJ0ZhaWxlZCc7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIDAgPCByZWZ1bmRhYmxlLmxlbmd0aDtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmxpbmVRdWFudGl0aWVzID0gdGhpcy5vcmRlci5saW5lcy5yZWR1Y2UoKHJlc3VsdCwgbGluZSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgLi4ucmVzdWx0LFxyXG4gICAgICAgICAgICAgICAgW2xpbmUuaWRdOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcXVhbnRpdHk6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVmdW5kOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICBjYW5jZWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9LCB7fSk7XHJcbiAgICAgICAgdGhpcy5zZXR0bGVkUGF5bWVudHMgPSAodGhpcy5vcmRlci5wYXltZW50cyB8fCBbXSkuZmlsdGVyKHAgPT4gcC5zdGF0ZSA9PT0gJ1NldHRsZWQnKTtcclxuICAgICAgICBpZiAodGhpcy5zZXR0bGVkUGF5bWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQYXltZW50ID0gdGhpcy5zZXR0bGVkUGF5bWVudHNbMF07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVplcm9RdWFudGl0eShsaW5lPzogU2VsZWN0aW9uTGluZSkge1xyXG4gICAgICAgIGlmIChsaW5lPy5xdWFudGl0eSA9PT0gMCkge1xyXG4gICAgICAgICAgICBsaW5lLmNhbmNlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBsaW5lLnJlZnVuZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpc1JlZnVuZGluZygpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBPYmplY3QudmFsdWVzKHRoaXMubGluZVF1YW50aXRpZXMpLnJlZHVjZSgoaXNSZWZ1bmRpbmcsIGxpbmUpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGlzUmVmdW5kaW5nIHx8ICgwIDwgbGluZS5xdWFudGl0eSAmJiBsaW5lLnJlZnVuZCk7XHJcbiAgICAgICAgfSwgZmFsc2UpO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgaXNDYW5jZWxsaW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IE9iamVjdC52YWx1ZXModGhpcy5saW5lUXVhbnRpdGllcykucmVkdWNlKChpc0NhbmNlbGxpbmcsIGxpbmUpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGlzQ2FuY2VsbGluZyB8fCAoMCA8IGxpbmUucXVhbnRpdHkgJiYgbGluZS5jYW5jZWwpO1xyXG4gICAgICAgIH0sIGZhbHNlKTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIGNhblN1Ym1pdCgpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5pc1JlZnVuZGluZygpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAhIShcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQYXltZW50ICYmXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlYXNvbiAmJlxyXG4gICAgICAgICAgICAgICAgMCA8IHRoaXMucmVmdW5kVG90YWwgJiZcclxuICAgICAgICAgICAgICAgIHRoaXMucmVmdW5kVG90YWwgPD0gdGhpcy5zZXR0bGVkUGF5bWVudHNUb3RhbFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0NhbmNlbGxpbmcoKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gISF0aGlzLnJlYXNvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdCgpIHtcclxuICAgICAgICBjb25zdCBwYXltZW50ID0gdGhpcy5zZWxlY3RlZFBheW1lbnQ7XHJcbiAgICAgICAgaWYgKHBheW1lbnQpIHtcclxuICAgICAgICAgICAgY29uc3QgcmVmdW5kTGluZXMgPSB0aGlzLmdldE9yZGVyTGluZUlucHV0KGxpbmUgPT4gbGluZS5yZWZ1bmQpO1xyXG4gICAgICAgICAgICBjb25zdCBjYW5jZWxMaW5lcyA9IHRoaXMuZ2V0T3JkZXJMaW5lSW5wdXQobGluZSA9PiBsaW5lLmNhbmNlbCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnJlc29sdmVXaXRoKHtcclxuICAgICAgICAgICAgICAgIHJlZnVuZDoge1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmVzOiByZWZ1bmRMaW5lcyxcclxuICAgICAgICAgICAgICAgICAgICByZWFzb246IHRoaXMucmVhc29uLFxyXG4gICAgICAgICAgICAgICAgICAgIHNoaXBwaW5nOiB0aGlzLnJlZnVuZFNoaXBwaW5nID8gdGhpcy5vcmRlci5zaGlwcGluZ1dpdGhUYXggOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgIGFkanVzdG1lbnQ6IHRoaXMuYWRqdXN0bWVudCxcclxuICAgICAgICAgICAgICAgICAgICBwYXltZW50SWQ6IHBheW1lbnQuaWQsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgY2FuY2VsOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGluZXM6IGNhbmNlbExpbmVzLFxyXG4gICAgICAgICAgICAgICAgICAgIG9yZGVySWQ6IHRoaXMub3JkZXIuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVhc29uOiB0aGlzLnJlYXNvbixcclxuICAgICAgICAgICAgICAgICAgICBjYW5jZWxTaGlwcGluZzogdGhpcy5yZWZ1bmRTaGlwcGluZyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjYW5jZWwoKSB7XHJcbiAgICAgICAgdGhpcy5yZXNvbHZlV2l0aCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0T3JkZXJMaW5lSW5wdXQoZmlsdGVyRm46IChsaW5lOiBTZWxlY3Rpb25MaW5lKSA9PiBib29sZWFuKTogT3JkZXJMaW5lSW5wdXRbXSB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMubGluZVF1YW50aXRpZXMpXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKFtvcmRlckxpbmVJZCwgbGluZV0pID0+IDAgPCBsaW5lLnF1YW50aXR5ICYmIGZpbHRlckZuKGxpbmUpKVxyXG4gICAgICAgICAgICAubWFwKChbb3JkZXJMaW5lSWQsIGxpbmVdKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgb3JkZXJMaW5lSWQsXHJcbiAgICAgICAgICAgICAgICBxdWFudGl0eTogbGluZS5xdWFudGl0eSxcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZSB2ZHJEaWFsb2dUaXRsZT57eyAnb3JkZXIucmVmdW5kLWFuZC1jYW5jZWwtb3JkZXInIHwgdHJhbnNsYXRlIH19PC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxkaXYgY2xhc3M9XCJyZWZ1bmQtd3JhcHBlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm9yZGVyLXRhYmxlXCI+XHJcbiAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGVcIj5cclxuICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD48L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD57eyAnb3JkZXIucHJvZHVjdC1uYW1lJyB8IHRyYW5zbGF0ZSB9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoPnt7ICdvcmRlci5wcm9kdWN0LXNrdScgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD57eyAnb3JkZXIucXVhbnRpdHknIHwgdHJhbnNsYXRlIH19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGg+e3sgJ29yZGVyLnVuaXQtcHJpY2UnIHwgdHJhbnNsYXRlIH19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGg+e3sgJ29yZGVyLnByb3JhdGVkLXVuaXQtcHJpY2UnIHwgdHJhbnNsYXRlIH19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGg+e3sgJ29yZGVyLnF1YW50aXR5JyB8IHRyYW5zbGF0ZSB9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoPnt7ICdvcmRlci5yZWZ1bmQnIHwgdHJhbnNsYXRlIH19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGg+e3sgJ29yZGVyLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBsaW5lIG9mIG9yZGVyLmxpbmVzXCIgY2xhc3M9XCJvcmRlci1saW5lXCI+XHJcbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhbGlnbi1taWRkbGUgdGh1bWJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwibGluZS5mZWF0dXJlZEFzc2V0IHwgYXNzZXRQcmV2aWV3OiAndGlueSdcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFsaWduLW1pZGRsZSBuYW1lXCI+e3sgbGluZS5wcm9kdWN0VmFyaWFudC5uYW1lIH19PC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFsaWduLW1pZGRsZSBza3VcIj57eyBsaW5lLnByb2R1Y3RWYXJpYW50LnNrdSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhbGlnbi1taWRkbGUgcXVhbnRpdHlcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBsaW5lLnF1YW50aXR5IH19XHJcbiAgICAgICAgICAgICAgICAgICAgPHZkci1saW5lLXJlZnVuZHMgW2xpbmVdPVwibGluZVwiIFtwYXltZW50c109XCJvcmRlci5wYXltZW50c1wiPjwvdmRyLWxpbmUtcmVmdW5kcz5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhbGlnbi1taWRkbGUgcXVhbnRpdHlcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBsaW5lLnVuaXRQcmljZVdpdGhUYXggfCBsb2NhbGVDdXJyZW5jeTogb3JkZXIuY3VycmVuY3lDb2RlIH19XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWxpZ24tbWlkZGxlIHF1YW50aXR5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb3JhdGVkLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbGluZS5wcm9yYXRlZFVuaXRQcmljZVdpdGhUYXggfCBsb2NhbGVDdXJyZW5jeTogb3JkZXIuY3VycmVuY3lDb2RlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsaW5lLmRpc2NvdW50cyBhcyBkaXNjb3VudHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItZHJvcGRvd24gKm5nSWY9XCJkaXNjb3VudHMubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb21vdGlvbnMtbGFiZWxcIiB2ZHJEcm9wZG93blRyaWdnZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJpY29uLWJ1dHRvblwiPjxjbHItaWNvbiBzaGFwZT1cImluZm9cIj48L2Nsci1pY29uPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItZHJvcGRvd24tbWVudT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmUtcHJvbW90aW9uXCIgKm5nRm9yPVwibGV0IGRpc2NvdW50IG9mIGRpc2NvdW50c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGlzY291bnQuZGVzY3JpcHRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9tb3Rpb24tYW1vdW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzY291bnQuYW1vdW50IC8gMTAwIC8gbGluZS5xdWFudGl0eVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBudW1iZXI6ICcxLjAtMidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgY3VycmVuY3k6IG9yZGVyLmN1cnJlbmN5Q29kZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92ZHItZHJvcGRvd24tbWVudT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmRyLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhbGlnbi1taWRkbGUgcXVhbnRpdHktY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibGluZUNhbkJlUmVmdW5kZWRPckNhbmNlbGxlZChsaW5lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibGluZVF1YW50aXRpZXNbbGluZS5pZF0ucXVhbnRpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW21heF09XCJsaW5lLnF1YW50aXR5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWluPVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJoYW5kbGVaZXJvUXVhbnRpdHkobGluZVF1YW50aXRpZXNbbGluZS5pZF0pXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFsaWduLW1pZGRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYW5jZWwtY2hlY2tib3gtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImxpbmVDYW5CZVJlZnVuZGVkT3JDYW5jZWxsZWQobGluZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xyQ2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIwID09PSBsaW5lUXVhbnRpdGllc1tsaW5lLmlkXS5xdWFudGl0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxpbmVRdWFudGl0aWVzW2xpbmUuaWRdLnJlZnVuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWxpZ24tbWlkZGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhbmNlbC1jaGVja2JveC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibGluZUNhbkJlUmVmdW5kZWRPckNhbmNlbGxlZChsaW5lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHJDaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIjAgPT09IGxpbmVRdWFudGl0aWVzW2xpbmUuaWRdLnF1YW50aXR5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibGluZVF1YW50aXRpZXNbbGluZS5pZF0uY2FuY2VsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJlZnVuZC1kZXRhaWxzIG10NFwiIFtjbGFzcy5mYWRlZF09XCIhaXNSZWZ1bmRpbmcoKSAmJiAhaXNDYW5jZWxsaW5nKClcIj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjbHItY29udHJvbC1sYWJlbFwiPnt7ICdvcmRlci5yZWZ1bmQtY2FuY2VsbGF0aW9uLXJlYXNvbicgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8bmctc2VsZWN0XHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzUmVmdW5kaW5nKCkgJiYgIWlzQ2FuY2VsbGluZygpXCJcclxuICAgICAgICAgICAgICAgIFtpdGVtc109XCJyZWFzb25zXCJcclxuICAgICAgICAgICAgICAgIGJpbmRMYWJlbD1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgYXV0b2ZvY3VzXHJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ29yZGVyLnJlZnVuZC1jYW5jZWxsYXRpb24tcmVhc29uLXJlcXVpcmVkJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBiaW5kVmFsdWU9XCJpZFwiXHJcbiAgICAgICAgICAgICAgICBbYWRkVGFnXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZWFzb25cIlxyXG4gICAgICAgICAgICA+PC9uZy1zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxjbHItc2VsZWN0LWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnb3JkZXIucGF5bWVudC10by1yZWZ1bmQnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xyU2VsZWN0IG5hbWU9XCJvcHRpb25zXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFBheW1lbnRcIiBbZGlzYWJsZWRdPVwiIWlzUmVmdW5kaW5nKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwYXltZW50IG9mIHNldHRsZWRQYXltZW50c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cInBheW1lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicGF5bWVudC5zdGF0ZSAhPT0gJ1NldHRsZWQnXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICN7eyBwYXltZW50LmlkIH19IHt7IHBheW1lbnQubWV0aG9kIH19OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBwYXltZW50LmFtb3VudCB8IGxvY2FsZUN1cnJlbmN5OiBvcmRlci5jdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Nsci1zZWxlY3QtY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPGNsci1jaGVja2JveC13cmFwcGVyPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNsckNoZWNrYm94IFsobmdNb2RlbCldPVwicmVmdW5kU2hpcHBpbmdcIiBbZGlzYWJsZWRdPVwiIWlzUmVmdW5kaW5nKClcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci5yZWZ1bmQtc2hpcHBpbmcnIHwgdHJhbnNsYXRlIH19ICh7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlci5zaGlwcGluZ1dpdGhUYXggfCBsb2NhbGVDdXJyZW5jeTogb3JkZXIuY3VycmVuY3lDb2RlXHJcbiAgICAgICAgICAgICAgICAgICAgfX0pXHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Nsci1jaGVja2JveC13cmFwcGVyPlxyXG4gICAgICAgICAgICA8Y2xyLWlucHV0LWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnb3JkZXIucmVmdW5kLWFkanVzdG1lbnQnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDx2ZHItY3VycmVuY3ktaW5wdXRcclxuICAgICAgICAgICAgICAgICAgICBjbHJJbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNSZWZ1bmRpbmcoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2N1cnJlbmN5Q29kZV09XCJvcmRlci5jdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYWRqdXN0bWVudFwiXHJcbiAgICAgICAgICAgICAgICA+PC92ZHItY3VycmVuY3ktaW5wdXQ+XHJcbiAgICAgICAgICAgIDwvY2xyLWlucHV0LWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvdGFsc1wiIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNSZWZ1bmRpbmcoKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZGVyLXRvdGFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ29yZGVyLnBheW1lbnQtYW1vdW50JyB8IHRyYW5zbGF0ZSB9fTpcclxuICAgICAgICAgICAgICAgICAgICB7eyBzZWxlY3RlZFBheW1lbnQuYW1vdW50IHwgbG9jYWxlQ3VycmVuY3k6IG9yZGVyLmN1cnJlbmN5Q29kZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVmdW5kLXRvdGFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ29yZGVyLnJlZnVuZC10b3RhbCcgfCB0cmFuc2xhdGUgfX06XHJcbiAgICAgICAgICAgICAgICAgICAge3sgcmVmdW5kVG90YWwgfCBsb2NhbGVDdXJyZW5jeTogb3JkZXIuY3VycmVuY3lDb2RlIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWZ1bmQtdG90YWwtZXJyb3JcIiAqbmdJZj1cInJlZnVuZFRvdGFsIDwgMCB8fCBzZXR0bGVkUGF5bWVudHNUb3RhbCA8IHJlZnVuZFRvdGFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ29yZGVyLnJlZnVuZC10b3RhbC1lcnJvcidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluOiAwIHwgY3VycmVuY3k6IG9yZGVyLmN1cnJlbmN5Q29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXg6IHNldHRsZWRQYXltZW50c1RvdGFsIHwgbG9jYWxlQ3VycmVuY3k6IG9yZGVyLmN1cnJlbmN5Q29kZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWZ1bmQtdG90YWwtd2FybmluZ1wiICpuZ0lmPVwic2VsZWN0ZWRQYXltZW50LmFtb3VudCA8IHJlZnVuZFRvdGFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ29yZGVyLnJlZnVuZC10b3RhbC13YXJuaW5nJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlIHZkckRpYWxvZ0J1dHRvbnM+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJjYW5jZWwoKVwiPnt7ICdjb21tb24uY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cInNlbGVjdCgpXCIgW2Rpc2FibGVkXT1cIiFjYW5TdWJtaXQoKVwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUmVmdW5kaW5nKCk7IGVsc2UgY2FuY2VsbGluZ1wiPlxyXG4gICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgJ29yZGVyLnJlZnVuZC13aXRoLWFtb3VudCdcclxuICAgICAgICAgICAgICAgICAgICB8IHRyYW5zbGF0ZTogeyBhbW91bnQ6IHJlZnVuZFRvdGFsIHwgbG9jYWxlQ3VycmVuY3k6IG9yZGVyLmN1cnJlbmN5Q29kZSB9XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNjYW5jZWxsaW5nPlxyXG4gICAgICAgICAgICB7eyAnb3JkZXIuY2FuY2VsLXNlbGVjdGVkLWl0ZW1zJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2J1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { pick } from '@vendure/common/lib/pick';
|
|
4
|
+
import { of } from 'rxjs';
|
|
5
|
+
import { tap } from 'rxjs/operators';
|
|
6
|
+
import { GET_CUSTOMER_ADDRESSES } from './select-address-dialog.graphql';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@vendure/admin-ui/core";
|
|
9
|
+
import * as i2 from "@angular/forms";
|
|
10
|
+
import * as i3 from "@clr/angular";
|
|
11
|
+
import * as i4 from "@angular/common";
|
|
12
|
+
import * as i5 from "@ngx-translate/core";
|
|
13
|
+
export class SelectAddressDialogComponent {
|
|
14
|
+
constructor(dataService, formBuilder) {
|
|
15
|
+
this.dataService = dataService;
|
|
16
|
+
this.formBuilder = formBuilder;
|
|
17
|
+
this.useExisting = true;
|
|
18
|
+
this.createNew = false;
|
|
19
|
+
}
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
this.addressForm = this.formBuilder.group({
|
|
22
|
+
fullName: [this.currentAddress?.fullName ?? ''],
|
|
23
|
+
company: [this.currentAddress?.company ?? ''],
|
|
24
|
+
streetLine1: [this.currentAddress?.streetLine1 ?? '', Validators.required],
|
|
25
|
+
streetLine2: [this.currentAddress?.streetLine2 ?? ''],
|
|
26
|
+
city: [this.currentAddress?.city ?? '', Validators.required],
|
|
27
|
+
province: [this.currentAddress?.province ?? ''],
|
|
28
|
+
postalCode: [this.currentAddress?.postalCode ?? '', Validators.required],
|
|
29
|
+
countryCode: [this.currentAddress?.countryCode ?? '', Validators.required],
|
|
30
|
+
phoneNumber: [this.currentAddress?.phoneNumber ?? ''],
|
|
31
|
+
});
|
|
32
|
+
this.useExisting = !!this.customerId;
|
|
33
|
+
this.addresses$ = this.customerId
|
|
34
|
+
? this.dataService
|
|
35
|
+
.query(GET_CUSTOMER_ADDRESSES, { customerId: this.customerId })
|
|
36
|
+
.mapSingle(({ customer }) => customer?.addresses ?? [])
|
|
37
|
+
.pipe(tap(addresses => {
|
|
38
|
+
if (this.currentAddress) {
|
|
39
|
+
this.selectedAddress = addresses.find(a => a.streetLine1 === this.currentAddress?.streetLine1 &&
|
|
40
|
+
a.postalCode === this.currentAddress?.postalCode);
|
|
41
|
+
}
|
|
42
|
+
if (addresses.length === 0) {
|
|
43
|
+
this.createNew = true;
|
|
44
|
+
this.useExisting = false;
|
|
45
|
+
}
|
|
46
|
+
}))
|
|
47
|
+
: of([]);
|
|
48
|
+
this.availableCountries$ = this.dataService.settings
|
|
49
|
+
.getAvailableCountries()
|
|
50
|
+
.mapSingle(({ countries }) => countries.items);
|
|
51
|
+
}
|
|
52
|
+
trackByFn(item) {
|
|
53
|
+
return item.id;
|
|
54
|
+
}
|
|
55
|
+
addressIdFn(item) {
|
|
56
|
+
return item.streetLine1 + item.postalCode;
|
|
57
|
+
}
|
|
58
|
+
cancel() {
|
|
59
|
+
this.resolveWith();
|
|
60
|
+
}
|
|
61
|
+
select() {
|
|
62
|
+
if (this.useExisting && this.selectedAddress) {
|
|
63
|
+
this.resolveWith({
|
|
64
|
+
...pick(this.selectedAddress, [
|
|
65
|
+
'fullName',
|
|
66
|
+
'company',
|
|
67
|
+
'streetLine1',
|
|
68
|
+
'streetLine2',
|
|
69
|
+
'city',
|
|
70
|
+
'province',
|
|
71
|
+
'phoneNumber',
|
|
72
|
+
'postalCode',
|
|
73
|
+
]),
|
|
74
|
+
countryCode: this.selectedAddress.country.code,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
if (this.createNew && this.addressForm.valid) {
|
|
78
|
+
const formValue = this.addressForm.value;
|
|
79
|
+
this.resolveWith(formValue);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
SelectAddressDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SelectAddressDialogComponent, deps: [{ token: i1.DataService }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
84
|
+
SelectAddressDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: SelectAddressDialogComponent, selector: "vdr-select-address-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>{{ 'order.select-address' | translate }}</ng-template>\r\n\r\n<clr-tabs *ngIf=\"addresses$ | async as addresses\">\r\n <clr-tab *ngIf=\"customerId && addresses.length\">\r\n <button clrTabLink>{{ 'order.existing-address' | translate }}</button>\r\n <ng-template [(clrIfActive)]=\"useExisting\">\r\n <clr-tab-content>\r\n <vdr-radio-card-fieldset\r\n class=\"block mt4\"\r\n [idFn]=\"addressIdFn\"\r\n [selectedItemId]=\"selectedAddress && addressIdFn(selectedAddress)\"\r\n (selectItem)=\"selectedAddress = $event\"\r\n >\r\n <vdr-radio-card *ngFor=\"let address of addresses\" [item]=\"address\">\r\n <vdr-formatted-address [address]=\"address\"></vdr-formatted-address>\r\n </vdr-radio-card>\r\n </vdr-radio-card-fieldset>\r\n </clr-tab-content>\r\n </ng-template>\r\n </clr-tab>\r\n <clr-tab>\r\n <button clrTabLink>{{ 'customer.create-new-address' | translate }}</button>\r\n\r\n <ng-template [(clrIfActive)]=\"createNew\">\r\n <clr-tab-content>\r\n <vdr-address-form\r\n [formGroup]=\"addressForm\"\r\n [availableCountries]=\"availableCountries$ | async\"\r\n ></vdr-address-form>\r\n </clr-tab-content>\r\n </ng-template>\r\n </clr-tab>\r\n</clr-tabs>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"select()\"\r\n [disabled]=\"(useExisting && !selectedAddress) || (createNew && addressForm.invalid)\"\r\n class=\"btn btn-primary\"\r\n >\r\n {{ 'common.okay' | translate }}\r\n </button>\r\n</ng-template>\r\n", styles: [""], components: [{ type: i3.ClrTabs, selector: "clr-tabs", inputs: ["clrLayout"] }, { type: i3.ClrTab, selector: "clr-tab" }, { type: i3.ClrTabContent, selector: "clr-tab-content", inputs: ["id"] }, { type: i1.RadioCardFieldsetComponent, selector: "vdr-radio-card-fieldset", inputs: ["selectedItemId", "idFn"], outputs: ["selectItem"] }, { type: i1.RadioCardComponent, selector: "vdr-radio-card", inputs: ["item"], exportAs: ["VdrRadioCard"] }, { type: i1.FormattedAddressComponent, selector: "vdr-formatted-address", inputs: ["address"] }, { type: i1.AddressFormComponent, selector: "vdr-address-form", inputs: ["customFields", "formGroup", "availableCountries"] }], directives: [{ type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.ÇlrTabsWillyWonka, selector: "clr-tabs" }, { type: i3.ClrTabLink, selector: "[clrTabLink]", inputs: ["clrTabLinkInOverflow", "id"] }, { type: i3.ÇlrActiveOompaLoompa, selector: "[clrTabLink], clr-tab-content" }, { type: i3.ClrIfActive, selector: "[clrIfActive]", inputs: ["clrIfActive"], outputs: ["clrIfActiveChange"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }], pipes: { "translate": i5.TranslatePipe, "async": i4.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SelectAddressDialogComponent, decorators: [{
|
|
86
|
+
type: Component,
|
|
87
|
+
args: [{ selector: 'vdr-select-address-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>{{ 'order.select-address' | translate }}</ng-template>\r\n\r\n<clr-tabs *ngIf=\"addresses$ | async as addresses\">\r\n <clr-tab *ngIf=\"customerId && addresses.length\">\r\n <button clrTabLink>{{ 'order.existing-address' | translate }}</button>\r\n <ng-template [(clrIfActive)]=\"useExisting\">\r\n <clr-tab-content>\r\n <vdr-radio-card-fieldset\r\n class=\"block mt4\"\r\n [idFn]=\"addressIdFn\"\r\n [selectedItemId]=\"selectedAddress && addressIdFn(selectedAddress)\"\r\n (selectItem)=\"selectedAddress = $event\"\r\n >\r\n <vdr-radio-card *ngFor=\"let address of addresses\" [item]=\"address\">\r\n <vdr-formatted-address [address]=\"address\"></vdr-formatted-address>\r\n </vdr-radio-card>\r\n </vdr-radio-card-fieldset>\r\n </clr-tab-content>\r\n </ng-template>\r\n </clr-tab>\r\n <clr-tab>\r\n <button clrTabLink>{{ 'customer.create-new-address' | translate }}</button>\r\n\r\n <ng-template [(clrIfActive)]=\"createNew\">\r\n <clr-tab-content>\r\n <vdr-address-form\r\n [formGroup]=\"addressForm\"\r\n [availableCountries]=\"availableCountries$ | async\"\r\n ></vdr-address-form>\r\n </clr-tab-content>\r\n </ng-template>\r\n </clr-tab>\r\n</clr-tabs>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"select()\"\r\n [disabled]=\"(useExisting && !selectedAddress) || (createNew && addressForm.invalid)\"\r\n class=\"btn btn-primary\"\r\n >\r\n {{ 'common.okay' | translate }}\r\n </button>\r\n</ng-template>\r\n", styles: [""] }]
|
|
88
|
+
}], ctorParameters: function () { return [{ type: i1.DataService }, { type: i2.FormBuilder }]; } });
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWFkZHJlc3MtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvb3JkZXIvc3JjL2NvbXBvbmVudHMvc2VsZWN0LWFkZHJlc3MtZGlhbG9nL3NlbGVjdC1hZGRyZXNzLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL3NlbGVjdC1hZGRyZXNzLWRpYWxvZy9zZWxlY3QtYWRkcmVzcy1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBWXBFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7OztBQVF6RSxNQUFNLE9BQU8sNEJBQTRCO0lBV3JDLFlBQW9CLFdBQXdCLEVBQVUsV0FBd0I7UUFBMUQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUg5RSxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQixjQUFTLEdBQUcsS0FBSyxDQUFDO0lBRStELENBQUM7SUFFbEYsUUFBUTtRQUNKLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDdEMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDO1lBQy9DLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUM3QyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFdBQVcsSUFBSSxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUMxRSxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUM7WUFDckQsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDNUQsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDO1lBQy9DLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsVUFBVSxJQUFJLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3hFLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsV0FBVyxJQUFJLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQzFFLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsV0FBVyxJQUFJLEVBQUUsQ0FBQztTQUN4RCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVU7WUFDN0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXO2lCQUNYLEtBQUssQ0FDRixzQkFBc0IsRUFDdEIsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUNsQztpQkFDQSxTQUFTLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQztpQkFDdEQsSUFBSSxDQUNELEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDWixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7b0JBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FDakMsQ0FBQyxDQUFDLEVBQUUsQ0FDQSxDQUFDLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxjQUFjLEVBQUUsV0FBVzt3QkFDbEQsQ0FBQyxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FDdkQsQ0FBQztpQkFDTDtnQkFDRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO29CQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztvQkFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7aUJBQzVCO1lBQ0wsQ0FBQyxDQUFDLENBQ0w7WUFDUCxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUTthQUMvQyxxQkFBcUIsRUFBRTthQUN2QixTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFjO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVyxDQUFDLElBQXFCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzlDLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDYixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO29CQUMxQixVQUFVO29CQUNWLFNBQVM7b0JBQ1QsYUFBYTtvQkFDYixhQUFhO29CQUNiLE1BQU07b0JBQ04sVUFBVTtvQkFDVixhQUFhO29CQUNiLFlBQVk7aUJBQ2YsQ0FBQztnQkFDRixXQUFXLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSTthQUNqRCxDQUFDLENBQUM7U0FDTjtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRTtZQUMxQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQy9CO0lBQ0wsQ0FBQzs7eUhBdEZRLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLGlFQzNCekMsODdEQTZDQTsyRkRsQmEsNEJBQTRCO2tCQU54QyxTQUFTOytCQUNJLDJCQUEyQixtQkFHcEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gICAgQWRkcmVzc0ZyYWdtZW50LFxyXG4gICAgQ3JlYXRlQWRkcmVzc0lucHV0LFxyXG4gICAgQ3JlYXRlQ3VzdG9tZXJJbnB1dCxcclxuICAgIERhdGFTZXJ2aWNlLFxyXG4gICAgRGlhbG9nLFxyXG4gICAgR2V0QXZhaWxhYmxlQ291bnRyaWVzUXVlcnksXHJcbiAgICBHZXRDdXN0b21lckFkZHJlc3Nlc1F1ZXJ5LFxyXG4gICAgR2V0Q3VzdG9tZXJBZGRyZXNzZXNRdWVyeVZhcmlhYmxlcyxcclxuICAgIE9yZGVyQWRkcmVzc0ZyYWdtZW50LFxyXG59IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBwaWNrIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9waWNrJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQ3VzdG9tZXIgfSBmcm9tICcuLi9zZWxlY3QtY3VzdG9tZXItZGlhbG9nL3NlbGVjdC1jdXN0b21lci1kaWFsb2cuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7IEdFVF9DVVNUT01FUl9BRERSRVNTRVMgfSBmcm9tICcuL3NlbGVjdC1hZGRyZXNzLWRpYWxvZy5ncmFwaHFsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItc2VsZWN0LWFkZHJlc3MtZGlhbG9nJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtYWRkcmVzcy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWFkZHJlc3MtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdEFkZHJlc3NEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIERpYWxvZzxDcmVhdGVBZGRyZXNzSW5wdXQ+IHtcclxuICAgIHJlc29sdmVXaXRoOiAocmVzdWx0PzogQ3JlYXRlQWRkcmVzc0lucHV0KSA9PiB2b2lkO1xyXG4gICAgYXZhaWxhYmxlQ291bnRyaWVzJDogT2JzZXJ2YWJsZTxHZXRBdmFpbGFibGVDb3VudHJpZXNRdWVyeVsnY291bnRyaWVzJ11bJ2l0ZW1zJ10+O1xyXG4gICAgYWRkcmVzc2VzJDogT2JzZXJ2YWJsZTxBZGRyZXNzRnJhZ21lbnRbXT47XHJcbiAgICBjdXN0b21lcklkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICBjdXJyZW50QWRkcmVzczogT3JkZXJBZGRyZXNzRnJhZ21lbnQgfCB1bmRlZmluZWQ7XHJcbiAgICBhZGRyZXNzRm9ybTogRm9ybUdyb3VwO1xyXG4gICAgc2VsZWN0ZWRBZGRyZXNzOiBBZGRyZXNzRnJhZ21lbnQgfCB1bmRlZmluZWQ7XHJcbiAgICB1c2VFeGlzdGluZyA9IHRydWU7XHJcbiAgICBjcmVhdGVOZXcgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSwgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIpIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5hZGRyZXNzRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAgICAgICBmdWxsTmFtZTogW3RoaXMuY3VycmVudEFkZHJlc3M/LmZ1bGxOYW1lID8/ICcnXSxcclxuICAgICAgICAgICAgY29tcGFueTogW3RoaXMuY3VycmVudEFkZHJlc3M/LmNvbXBhbnkgPz8gJyddLFxyXG4gICAgICAgICAgICBzdHJlZXRMaW5lMTogW3RoaXMuY3VycmVudEFkZHJlc3M/LnN0cmVldExpbmUxID8/ICcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgc3RyZWV0TGluZTI6IFt0aGlzLmN1cnJlbnRBZGRyZXNzPy5zdHJlZXRMaW5lMiA/PyAnJ10sXHJcbiAgICAgICAgICAgIGNpdHk6IFt0aGlzLmN1cnJlbnRBZGRyZXNzPy5jaXR5ID8/ICcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgcHJvdmluY2U6IFt0aGlzLmN1cnJlbnRBZGRyZXNzPy5wcm92aW5jZSA/PyAnJ10sXHJcbiAgICAgICAgICAgIHBvc3RhbENvZGU6IFt0aGlzLmN1cnJlbnRBZGRyZXNzPy5wb3N0YWxDb2RlID8/ICcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgY291bnRyeUNvZGU6IFt0aGlzLmN1cnJlbnRBZGRyZXNzPy5jb3VudHJ5Q29kZSA/PyAnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgIHBob25lTnVtYmVyOiBbdGhpcy5jdXJyZW50QWRkcmVzcz8ucGhvbmVOdW1iZXIgPz8gJyddLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMudXNlRXhpc3RpbmcgPSAhIXRoaXMuY3VzdG9tZXJJZDtcclxuICAgICAgICB0aGlzLmFkZHJlc3NlcyQgPSB0aGlzLmN1c3RvbWVySWRcclxuICAgICAgICAgICAgPyB0aGlzLmRhdGFTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAgIC5xdWVyeTxHZXRDdXN0b21lckFkZHJlc3Nlc1F1ZXJ5LCBHZXRDdXN0b21lckFkZHJlc3Nlc1F1ZXJ5VmFyaWFibGVzPihcclxuICAgICAgICAgICAgICAgICAgICAgIEdFVF9DVVNUT01FUl9BRERSRVNTRVMsXHJcbiAgICAgICAgICAgICAgICAgICAgICB7IGN1c3RvbWVySWQ6IHRoaXMuY3VzdG9tZXJJZCB9LFxyXG4gICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgIC5tYXBTaW5nbGUoKHsgY3VzdG9tZXIgfSkgPT4gY3VzdG9tZXI/LmFkZHJlc3NlcyA/PyBbXSlcclxuICAgICAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICB0YXAoYWRkcmVzc2VzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50QWRkcmVzcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkQWRkcmVzcyA9IGFkZHJlc3Nlcy5maW5kKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEuc3RyZWV0TGluZTEgPT09IHRoaXMuY3VycmVudEFkZHJlc3M/LnN0cmVldExpbmUxICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5wb3N0YWxDb2RlID09PSB0aGlzLmN1cnJlbnRBZGRyZXNzPy5wb3N0YWxDb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWRkcmVzc2VzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZU5ldyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlRXhpc3RpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICA6IG9mKFtdKTtcclxuICAgICAgICB0aGlzLmF2YWlsYWJsZUNvdW50cmllcyQgPSB0aGlzLmRhdGFTZXJ2aWNlLnNldHRpbmdzXHJcbiAgICAgICAgICAgIC5nZXRBdmFpbGFibGVDb3VudHJpZXMoKVxyXG4gICAgICAgICAgICAubWFwU2luZ2xlKCh7IGNvdW50cmllcyB9KSA9PiBjb3VudHJpZXMuaXRlbXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYWNrQnlGbihpdGVtOiBDdXN0b21lcikge1xyXG4gICAgICAgIHJldHVybiBpdGVtLmlkO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZHJlc3NJZEZuKGl0ZW06IEFkZHJlc3NGcmFnbWVudCkge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnN0cmVldExpbmUxICsgaXRlbS5wb3N0YWxDb2RlO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbmNlbCgpIHtcclxuICAgICAgICB0aGlzLnJlc29sdmVXaXRoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnVzZUV4aXN0aW5nICYmIHRoaXMuc2VsZWN0ZWRBZGRyZXNzKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZVdpdGgoe1xyXG4gICAgICAgICAgICAgICAgLi4ucGljayh0aGlzLnNlbGVjdGVkQWRkcmVzcywgW1xyXG4gICAgICAgICAgICAgICAgICAgICdmdWxsTmFtZScsXHJcbiAgICAgICAgICAgICAgICAgICAgJ2NvbXBhbnknLFxyXG4gICAgICAgICAgICAgICAgICAgICdzdHJlZXRMaW5lMScsXHJcbiAgICAgICAgICAgICAgICAgICAgJ3N0cmVldExpbmUyJyxcclxuICAgICAgICAgICAgICAgICAgICAnY2l0eScsXHJcbiAgICAgICAgICAgICAgICAgICAgJ3Byb3ZpbmNlJyxcclxuICAgICAgICAgICAgICAgICAgICAncGhvbmVOdW1iZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICdwb3N0YWxDb2RlJyxcclxuICAgICAgICAgICAgICAgIF0pLFxyXG4gICAgICAgICAgICAgICAgY291bnRyeUNvZGU6IHRoaXMuc2VsZWN0ZWRBZGRyZXNzLmNvdW50cnkuY29kZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmNyZWF0ZU5ldyAmJiB0aGlzLmFkZHJlc3NGb3JtLnZhbGlkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuYWRkcmVzc0Zvcm0udmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZVdpdGgoZm9ybVZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlIHZkckRpYWxvZ1RpdGxlPnt7ICdvcmRlci5zZWxlY3QtYWRkcmVzcycgfCB0cmFuc2xhdGUgfX08L25nLXRlbXBsYXRlPlxyXG5cclxuPGNsci10YWJzICpuZ0lmPVwiYWRkcmVzc2VzJCB8IGFzeW5jIGFzIGFkZHJlc3Nlc1wiPlxyXG4gICAgPGNsci10YWIgKm5nSWY9XCJjdXN0b21lcklkICYmIGFkZHJlc3Nlcy5sZW5ndGhcIj5cclxuICAgICAgICA8YnV0dG9uIGNsclRhYkxpbms+e3sgJ29yZGVyLmV4aXN0aW5nLWFkZHJlc3MnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIFsoY2xySWZBY3RpdmUpXT1cInVzZUV4aXN0aW5nXCI+XHJcbiAgICAgICAgICAgIDxjbHItdGFiLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8dmRyLXJhZGlvLWNhcmQtZmllbGRzZXRcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJsb2NrIG10NFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lkRm5dPVwiYWRkcmVzc0lkRm5cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZEl0ZW1JZF09XCJzZWxlY3RlZEFkZHJlc3MgJiYgYWRkcmVzc0lkRm4oc2VsZWN0ZWRBZGRyZXNzKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdEl0ZW0pPVwic2VsZWN0ZWRBZGRyZXNzID0gJGV2ZW50XCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLXJhZGlvLWNhcmQgKm5nRm9yPVwibGV0IGFkZHJlc3Mgb2YgYWRkcmVzc2VzXCIgW2l0ZW1dPVwiYWRkcmVzc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWZvcm1hdHRlZC1hZGRyZXNzIFthZGRyZXNzXT1cImFkZHJlc3NcIj48L3Zkci1mb3JtYXR0ZWQtYWRkcmVzcz5cclxuICAgICAgICAgICAgICAgICAgICA8L3Zkci1yYWRpby1jYXJkPlxyXG4gICAgICAgICAgICAgICAgPC92ZHItcmFkaW8tY2FyZC1maWVsZHNldD5cclxuICAgICAgICAgICAgPC9jbHItdGFiLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvY2xyLXRhYj5cclxuICAgIDxjbHItdGFiPlxyXG4gICAgICAgIDxidXR0b24gY2xyVGFiTGluaz57eyAnY3VzdG9tZXIuY3JlYXRlLW5ldy1hZGRyZXNzJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8bmctdGVtcGxhdGUgWyhjbHJJZkFjdGl2ZSldPVwiY3JlYXRlTmV3XCI+XHJcbiAgICAgICAgICAgIDxjbHItdGFiLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWFkZHJlc3MtZm9ybVxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBdPVwiYWRkcmVzc0Zvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFthdmFpbGFibGVDb3VudHJpZXNdPVwiYXZhaWxhYmxlQ291bnRyaWVzJCB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgID48L3Zkci1hZGRyZXNzLWZvcm0+XHJcbiAgICAgICAgICAgIDwvY2xyLXRhYi1jb250ZW50PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Nsci10YWI+XHJcbjwvY2xyLXRhYnM+XHJcblxyXG48bmctdGVtcGxhdGUgdmRyRGlhbG9nQnV0dG9ucz5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+e3sgJ2NvbW1vbi5jYW5jZWwnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdCgpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiKHVzZUV4aXN0aW5nICYmICFzZWxlY3RlZEFkZHJlc3MpIHx8IChjcmVhdGVOZXcgJiYgYWRkcmVzc0Zvcm0uaW52YWxpZClcIlxyXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcclxuICAgID5cclxuICAgICAgICB7eyAnY29tbW9uLm9rYXknIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2J1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ADDRESS_FRAGMENT } from '@vendure/admin-ui/core';
|
|
2
|
+
import { gql } from 'apollo-angular';
|
|
3
|
+
export const GET_CUSTOMER_ADDRESSES = gql `
|
|
4
|
+
query GetCustomerAddresses($customerId: ID!) {
|
|
5
|
+
customer(id: $customerId) {
|
|
6
|
+
id
|
|
7
|
+
addresses {
|
|
8
|
+
...Address
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
${ADDRESS_FRAGMENT}
|
|
13
|
+
`;
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWFkZHJlc3MtZGlhbG9nLmdyYXBocWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL3NlbGVjdC1hZGRyZXNzLWRpYWxvZy9zZWxlY3QtYWRkcmVzcy1kaWFsb2cuZ3JhcGhxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7TUFTbkMsZ0JBQWdCO0NBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBRERSRVNTX0ZSQUdNRU5UIH0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcbmltcG9ydCB7IGdxbCB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfQ1VTVE9NRVJfQUREUkVTU0VTID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0Q3VzdG9tZXJBZGRyZXNzZXMoJGN1c3RvbWVySWQ6IElEISkge1xyXG4gICAgICAgIGN1c3RvbWVyKGlkOiAkY3VzdG9tZXJJZCkge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBhZGRyZXNzZXMge1xyXG4gICAgICAgICAgICAgICAgLi4uQWRkcmVzc1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtBRERSRVNTX0ZSQUdNRU5UfVxyXG5gO1xyXG4iXX0=
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { concat, of, Subject } from 'rxjs';
|
|
4
|
+
import { catchError, debounceTime, distinctUntilChanged, switchMap, tap } from 'rxjs/operators';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@vendure/admin-ui/core";
|
|
7
|
+
import * as i2 from "@angular/forms";
|
|
8
|
+
import * as i3 from "@clr/angular";
|
|
9
|
+
import * as i4 from "@ng-select/ng-select";
|
|
10
|
+
import * as i5 from "@ngx-translate/core";
|
|
11
|
+
import * as i6 from "@angular/common";
|
|
12
|
+
export class SelectCustomerDialogComponent {
|
|
13
|
+
constructor(dataService, formBuilder) {
|
|
14
|
+
this.dataService = dataService;
|
|
15
|
+
this.formBuilder = formBuilder;
|
|
16
|
+
this.isLoading = false;
|
|
17
|
+
this.input$ = new Subject();
|
|
18
|
+
this.selectedCustomer = [];
|
|
19
|
+
this.useExisting = true;
|
|
20
|
+
this.createNew = false;
|
|
21
|
+
this.customerForm = this.formBuilder.group({
|
|
22
|
+
title: '',
|
|
23
|
+
firstName: ['', Validators.required],
|
|
24
|
+
lastName: ['', Validators.required],
|
|
25
|
+
phoneNumber: '',
|
|
26
|
+
emailAddress: ['', [Validators.required, Validators.email]],
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
ngOnInit() {
|
|
30
|
+
this.customers$ = concat(of([]), // default items
|
|
31
|
+
this.input$.pipe(debounceTime(200), distinctUntilChanged(), tap(() => (this.isLoading = true)), switchMap(term => this.dataService.customer
|
|
32
|
+
.getCustomerList(10, 0, term)
|
|
33
|
+
.mapStream(({ customers }) => customers.items)
|
|
34
|
+
.pipe(catchError(() => of([])), // empty list on error
|
|
35
|
+
tap(() => (this.isLoading = false))))));
|
|
36
|
+
}
|
|
37
|
+
trackByFn(item) {
|
|
38
|
+
return item.id;
|
|
39
|
+
}
|
|
40
|
+
cancel() {
|
|
41
|
+
this.resolveWith();
|
|
42
|
+
}
|
|
43
|
+
select() {
|
|
44
|
+
if (this.useExisting && this.selectedCustomer.length === 1) {
|
|
45
|
+
this.resolveWith(this.selectedCustomer[0]);
|
|
46
|
+
}
|
|
47
|
+
if (this.createNew && this.customerForm.valid) {
|
|
48
|
+
const formValue = this.customerForm.value;
|
|
49
|
+
this.resolveWith(formValue);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
SelectCustomerDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SelectCustomerDialogComponent, deps: [{ token: i1.DataService }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
54
|
+
SelectCustomerDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: SelectCustomerDialogComponent, selector: "vdr-select-customer-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>{{ 'order.set-customer-for-order' | translate }}</ng-template>\r\n\r\n<clr-tabs>\r\n <clr-tab>\r\n <button clrTabLink>{{ 'order.existing-customer' | translate }}</button>\r\n\r\n <ng-template [(clrIfActive)]=\"useExisting\">\r\n <clr-tab-content>\r\n <ng-select\r\n [items]=\"customers$ | async\"\r\n appendTo=\"body\"\r\n bindLabel=\"name\"\r\n [addTag]=\"false\"\r\n [multiple]=\"true\"\r\n [hideSelected]=\"true\"\r\n [trackByFn]=\"trackByFn\"\r\n [minTermLength]=\"2\"\r\n [loading]=\"isLoading\"\r\n [typeahead]=\"input$\"\r\n [(ngModel)]=\"selectedCustomer\"\r\n class=\"mt4\"\r\n >\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <clr-icon shape=\"user\" class=\"is-solid\"></clr-icon\r\n ><span class=\"ml2 mr2\">{{ item.firstName }} {{ item.lastName }}</span>\r\n <vdr-chip>{{ item.emailAddress }}</vdr-chip>\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <clr-icon shape=\"user\" class=\"is-solid\"></clr-icon\r\n ><span class=\"ml2 mr2\">{{ item.firstName }} {{ item.lastName }}</span>\r\n <vdr-chip>{{ item.emailAddress }}</vdr-chip>\r\n </ng-template>\r\n </ng-select>\r\n </clr-tab-content>\r\n </ng-template>\r\n </clr-tab>\r\n <clr-tab>\r\n <button clrTabLink>{{ 'customer.create-new-customer' | translate }}</button>\r\n\r\n <ng-template [(clrIfActive)]=\"createNew\">\r\n <clr-tab-content>\r\n <form [formGroup]=\"customerForm\">\r\n <vdr-form-field [label]=\"'customer.title' | translate\" for=\"title\">\r\n <input id=\"title\" type=\"text\" formControlName=\"title\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'customer.first-name' | translate\" for=\"firstName\">\r\n <input id=\"firstName\" type=\"text\" formControlName=\"firstName\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'customer.last-name' | translate\" for=\"lastName\">\r\n <input id=\"lastName\" type=\"text\" formControlName=\"lastName\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'customer.email-address' | translate\" for=\"emailAddress\">\r\n <input id=\"emailAddress\" type=\"text\" formControlName=\"emailAddress\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'customer.phone-number' | translate\" for=\"phoneNumber\">\r\n <input id=\"phoneNumber\" type=\"text\" formControlName=\"phoneNumber\" />\r\n </vdr-form-field>\r\n </form>\r\n </clr-tab-content>\r\n </ng-template>\r\n </clr-tab>\r\n</clr-tabs>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"select()\"\r\n [disabled]=\"(useExisting && selectedCustomer.length === 0) || (createNew && customerForm.invalid)\"\r\n class=\"btn btn-primary\"\r\n >\r\n {{ 'common.okay' | translate }}\r\n </button>\r\n</ng-template>\r\n", styles: [""], components: [{ type: i3.ClrTabs, selector: "clr-tabs", inputs: ["clrLayout"] }, { type: i3.ClrTab, selector: "clr-tab" }, { type: i3.ClrTabContent, selector: "clr-tab-content", inputs: ["id"] }, { type: i4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { type: i1.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"] }], directives: [{ type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { type: i3.ÇlrTabsWillyWonka, selector: "clr-tabs" }, { type: i3.ClrTabLink, selector: "[clrTabLink]", inputs: ["clrTabLinkInOverflow", "id"] }, { type: i3.ÇlrActiveOompaLoompa, selector: "[clrTabLink], clr-tab-content" }, { type: i3.ClrIfActive, selector: "[clrIfActive]", inputs: ["clrIfActive"], outputs: ["clrIfActiveChange"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { type: i3.ClrIconCustomTag, selector: "clr-icon" }, { type: i4.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.FormFieldControlDirective, selector: "input, textarea, select" }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }], pipes: { "translate": i5.TranslatePipe, "async": i6.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SelectCustomerDialogComponent, decorators: [{
|
|
56
|
+
type: Component,
|
|
57
|
+
args: [{ selector: 'vdr-select-customer-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>{{ 'order.set-customer-for-order' | translate }}</ng-template>\r\n\r\n<clr-tabs>\r\n <clr-tab>\r\n <button clrTabLink>{{ 'order.existing-customer' | translate }}</button>\r\n\r\n <ng-template [(clrIfActive)]=\"useExisting\">\r\n <clr-tab-content>\r\n <ng-select\r\n [items]=\"customers$ | async\"\r\n appendTo=\"body\"\r\n bindLabel=\"name\"\r\n [addTag]=\"false\"\r\n [multiple]=\"true\"\r\n [hideSelected]=\"true\"\r\n [trackByFn]=\"trackByFn\"\r\n [minTermLength]=\"2\"\r\n [loading]=\"isLoading\"\r\n [typeahead]=\"input$\"\r\n [(ngModel)]=\"selectedCustomer\"\r\n class=\"mt4\"\r\n >\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <clr-icon shape=\"user\" class=\"is-solid\"></clr-icon\r\n ><span class=\"ml2 mr2\">{{ item.firstName }} {{ item.lastName }}</span>\r\n <vdr-chip>{{ item.emailAddress }}</vdr-chip>\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <clr-icon shape=\"user\" class=\"is-solid\"></clr-icon\r\n ><span class=\"ml2 mr2\">{{ item.firstName }} {{ item.lastName }}</span>\r\n <vdr-chip>{{ item.emailAddress }}</vdr-chip>\r\n </ng-template>\r\n </ng-select>\r\n </clr-tab-content>\r\n </ng-template>\r\n </clr-tab>\r\n <clr-tab>\r\n <button clrTabLink>{{ 'customer.create-new-customer' | translate }}</button>\r\n\r\n <ng-template [(clrIfActive)]=\"createNew\">\r\n <clr-tab-content>\r\n <form [formGroup]=\"customerForm\">\r\n <vdr-form-field [label]=\"'customer.title' | translate\" for=\"title\">\r\n <input id=\"title\" type=\"text\" formControlName=\"title\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'customer.first-name' | translate\" for=\"firstName\">\r\n <input id=\"firstName\" type=\"text\" formControlName=\"firstName\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'customer.last-name' | translate\" for=\"lastName\">\r\n <input id=\"lastName\" type=\"text\" formControlName=\"lastName\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'customer.email-address' | translate\" for=\"emailAddress\">\r\n <input id=\"emailAddress\" type=\"text\" formControlName=\"emailAddress\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'customer.phone-number' | translate\" for=\"phoneNumber\">\r\n <input id=\"phoneNumber\" type=\"text\" formControlName=\"phoneNumber\" />\r\n </vdr-form-field>\r\n </form>\r\n </clr-tab-content>\r\n </ng-template>\r\n </clr-tab>\r\n</clr-tabs>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"select()\"\r\n [disabled]=\"(useExisting && selectedCustomer.length === 0) || (createNew && customerForm.invalid)\"\r\n class=\"btn btn-primary\"\r\n >\r\n {{ 'common.okay' | translate }}\r\n </button>\r\n</ng-template>\r\n", styles: [""] }]
|
|
58
|
+
}], ctorParameters: function () { return [{ type: i1.DataService }, { type: i2.FormBuilder }]; } });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWN1c3RvbWVyLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL3NlbGVjdC1jdXN0b21lci1kaWFsb2cvc2VsZWN0LWN1c3RvbWVyLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL3NlbGVjdC1jdXN0b21lci1kaWFsb2cvc2VsZWN0LWN1c3RvbWVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsT0FBTyxFQUFFLE1BQU0sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFVaEcsTUFBTSxPQUFPLDZCQUE2QjtJQVV0QyxZQUFvQixXQUF3QixFQUFVLFdBQXdCO1FBQTFELGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFOOUUsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUMvQixxQkFBZ0IsR0FBZSxFQUFFLENBQUM7UUFDbEMsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUdkLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDdkMsS0FBSyxFQUFFLEVBQUU7WUFDVCxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNwQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNuQyxXQUFXLEVBQUUsRUFBRTtZQUNmLFlBQVksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzlELENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQ3BCLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxnQkFBZ0I7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ1osWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixvQkFBb0IsRUFBRSxFQUN0QixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDLEVBQ2xDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUTthQUNwQixlQUFlLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUM7YUFDNUIsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQzthQUM3QyxJQUFJLENBQ0QsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLHNCQUFzQjtRQUNoRCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQ3RDLENBQ1IsQ0FDSixDQUNKLENBQUM7SUFDTixDQUFDO0lBRUQsU0FBUyxDQUFDLElBQWM7UUFDcEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3hELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDOUM7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUU7WUFDM0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7WUFDMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUMvQjtJQUNMLENBQUM7OzBIQXhEUSw2QkFBNkI7OEdBQTdCLDZCQUE2QixrRUNkMUMsOHBIQTBFQTsyRkQ1RGEsNkJBQTZCO2tCQU56QyxTQUFTOytCQUNJLDRCQUE0QixtQkFHckIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDcmVhdGVDdXN0b21lcklucHV0LCBEYXRhU2VydmljZSwgRGlhbG9nLCBHZXRDdXN0b21lckxpc3RRdWVyeSB9IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBjb25jYXQsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuZXhwb3J0IHR5cGUgQ3VzdG9tZXIgPSBHZXRDdXN0b21lckxpc3RRdWVyeVsnY3VzdG9tZXJzJ11bJ2l0ZW1zJ11bbnVtYmVyXTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItc2VsZWN0LWN1c3RvbWVyLWRpYWxvZycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LWN1c3RvbWVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9zZWxlY3QtY3VzdG9tZXItZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdEN1c3RvbWVyRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBEaWFsb2c8Q3VzdG9tZXIgfCBDcmVhdGVDdXN0b21lcklucHV0PiB7XHJcbiAgICByZXNvbHZlV2l0aDogKHJlc3VsdD86IEN1c3RvbWVyIHwgQ3JlYXRlQ3VzdG9tZXJJbnB1dCkgPT4gdm9pZDtcclxuICAgIGN1c3RvbWVyRm9ybTogRm9ybUdyb3VwO1xyXG4gICAgY3VzdG9tZXJzJDogT2JzZXJ2YWJsZTxDdXN0b21lcltdPjtcclxuICAgIGlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgaW5wdXQkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xyXG4gICAgc2VsZWN0ZWRDdXN0b21lcjogQ3VzdG9tZXJbXSA9IFtdO1xyXG4gICAgdXNlRXhpc3RpbmcgPSB0cnVlO1xyXG4gICAgY3JlYXRlTmV3ID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XHJcbiAgICAgICAgdGhpcy5jdXN0b21lckZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICAgICAgICBmaXJzdE5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgIGxhc3ROYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgICAgICBwaG9uZU51bWJlcjogJycsXHJcbiAgICAgICAgICAgIGVtYWlsQWRkcmVzczogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF1dLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY3VzdG9tZXJzJCA9IGNvbmNhdChcclxuICAgICAgICAgICAgb2YoW10pLCAvLyBkZWZhdWx0IGl0ZW1zXHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXQkLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoMjAwKSxcclxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4gKHRoaXMuaXNMb2FkaW5nID0gdHJ1ZSkpLFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHRlcm0gPT5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLmN1c3RvbWVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRDdXN0b21lckxpc3QoMTAsIDAsIHRlcm0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXBTdHJlYW0oKHsgY3VzdG9tZXJzIH0pID0+IGN1c3RvbWVycy5pdGVtcylcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKFtdKSksIC8vIGVtcHR5IGxpc3Qgb24gZXJyb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcCgoKSA9PiAodGhpcy5pc0xvYWRpbmcgPSBmYWxzZSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYWNrQnlGbihpdGVtOiBDdXN0b21lcikge1xyXG4gICAgICAgIHJldHVybiBpdGVtLmlkO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbmNlbCgpIHtcclxuICAgICAgICB0aGlzLnJlc29sdmVXaXRoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnVzZUV4aXN0aW5nICYmIHRoaXMuc2VsZWN0ZWRDdXN0b21lci5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5yZXNvbHZlV2l0aCh0aGlzLnNlbGVjdGVkQ3VzdG9tZXJbMF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5jcmVhdGVOZXcgJiYgdGhpcy5jdXN0b21lckZvcm0udmFsaWQpIHtcclxuICAgICAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5jdXN0b21lckZvcm0udmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZVdpdGgoZm9ybVZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlIHZkckRpYWxvZ1RpdGxlPnt7ICdvcmRlci5zZXQtY3VzdG9tZXItZm9yLW9yZGVyJyB8IHRyYW5zbGF0ZSB9fTwvbmctdGVtcGxhdGU+XHJcblxyXG48Y2xyLXRhYnM+XHJcbiAgICA8Y2xyLXRhYj5cclxuICAgICAgICA8YnV0dG9uIGNsclRhYkxpbms+e3sgJ29yZGVyLmV4aXN0aW5nLWN1c3RvbWVyJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8bmctdGVtcGxhdGUgWyhjbHJJZkFjdGl2ZSldPVwidXNlRXhpc3RpbmdcIj5cclxuICAgICAgICAgICAgPGNsci10YWItY29udGVudD5cclxuICAgICAgICAgICAgICAgIDxuZy1zZWxlY3RcclxuICAgICAgICAgICAgICAgICAgICBbaXRlbXNdPVwiY3VzdG9tZXJzJCB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgIGJpbmRMYWJlbD1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthZGRUYWddPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbaGlkZVNlbGVjdGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0cmFja0J5Rm5dPVwidHJhY2tCeUZuXCJcclxuICAgICAgICAgICAgICAgICAgICBbbWluVGVybUxlbmd0aF09XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICBbbG9hZGluZ109XCJpc0xvYWRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0eXBlYWhlYWRdPVwiaW5wdXQkXCJcclxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkQ3VzdG9tZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXQ0XCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmctbGFiZWwtdG1wIGxldC1pdGVtPVwiaXRlbVwiIGxldC1jbGVhcj1cImNsZWFyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInVzZXJcIiBjbGFzcz1cImlzLXNvbGlkXCI+PC9jbHItaWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PHNwYW4gY2xhc3M9XCJtbDIgbXIyXCI+e3sgaXRlbS5maXJzdE5hbWUgfX0ge3sgaXRlbS5sYXN0TmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1jaGlwPnt7IGl0ZW0uZW1haWxBZGRyZXNzIH19PC92ZHItY2hpcD5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZy1vcHRpb24tdG1wIGxldC1pdGVtPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJ1c2VyXCIgY2xhc3M9XCJpcy1zb2xpZFwiPjwvY2xyLWljb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgPjxzcGFuIGNsYXNzPVwibWwyIG1yMlwiPnt7IGl0ZW0uZmlyc3ROYW1lIH19IHt7IGl0ZW0ubGFzdE5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItY2hpcD57eyBpdGVtLmVtYWlsQWRkcmVzcyB9fTwvdmRyLWNoaXA+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvbmctc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Nsci10YWItY29udGVudD5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9jbHItdGFiPlxyXG4gICAgPGNsci10YWI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbHJUYWJMaW5rPnt7ICdjdXN0b21lci5jcmVhdGUtbmV3LWN1c3RvbWVyJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8bmctdGVtcGxhdGUgWyhjbHJJZkFjdGl2ZSldPVwiY3JlYXRlTmV3XCI+XHJcbiAgICAgICAgICAgIDxjbHItdGFiLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImN1c3RvbWVyRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPHZkci1mb3JtLWZpZWxkIFtsYWJlbF09XCInY3VzdG9tZXIudGl0bGUnIHwgdHJhbnNsYXRlXCIgZm9yPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJ0aXRsZVwiIHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC92ZHItZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDx2ZHItZm9ybS1maWVsZCBbbGFiZWxdPVwiJ2N1c3RvbWVyLmZpcnN0LW5hbWUnIHwgdHJhbnNsYXRlXCIgZm9yPVwiZmlyc3ROYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiZmlyc3ROYW1lXCIgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJmaXJzdE5hbWVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC92ZHItZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDx2ZHItZm9ybS1maWVsZCBbbGFiZWxdPVwiJ2N1c3RvbWVyLmxhc3QtbmFtZScgfCB0cmFuc2xhdGVcIiBmb3I9XCJsYXN0TmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImxhc3ROYW1lXCIgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJsYXN0TmFtZVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3Zkci1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgPHZkci1mb3JtLWZpZWxkIFtsYWJlbF09XCInY3VzdG9tZXIuZW1haWwtYWRkcmVzcycgfCB0cmFuc2xhdGVcIiBmb3I9XCJlbWFpbEFkZHJlc3NcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJlbWFpbEFkZHJlc3NcIiB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cImVtYWlsQWRkcmVzc1wiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3Zkci1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgPHZkci1mb3JtLWZpZWxkIFtsYWJlbF09XCInY3VzdG9tZXIucGhvbmUtbnVtYmVyJyB8IHRyYW5zbGF0ZVwiIGZvcj1cInBob25lTnVtYmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwicGhvbmVOdW1iZXJcIiB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cInBob25lTnVtYmVyXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgIDwvY2xyLXRhYi1jb250ZW50PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Nsci10YWI+XHJcbjwvY2xyLXRhYnM+XHJcblxyXG48bmctdGVtcGxhdGUgdmRyRGlhbG9nQnV0dG9ucz5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+e3sgJ2NvbW1vbi5jYW5jZWwnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdCgpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiKHVzZUV4aXN0aW5nICYmIHNlbGVjdGVkQ3VzdG9tZXIubGVuZ3RoID09PSAwKSB8fCAoY3JlYXRlTmV3ICYmIGN1c3RvbWVyRm9ybS5pbnZhbGlkKVwiXHJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxyXG4gICAgPlxyXG4gICAgICAgIHt7ICdjb21tb24ub2theScgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@vendure/admin-ui/core";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@ngx-translate/core";
|
|
6
|
+
export class SelectShippingMethodDialogComponent {
|
|
7
|
+
constructor() { }
|
|
8
|
+
ngOnInit() {
|
|
9
|
+
if (this.currentSelectionId) {
|
|
10
|
+
this.selectedMethod = this.eligibleShippingMethods.find(m => m.id === this.currentSelectionId);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
methodIdFn(item) {
|
|
14
|
+
return item.id;
|
|
15
|
+
}
|
|
16
|
+
cancel() {
|
|
17
|
+
this.resolveWith();
|
|
18
|
+
}
|
|
19
|
+
select() {
|
|
20
|
+
if (this.selectedMethod) {
|
|
21
|
+
this.resolveWith(this.selectedMethod.id);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
SelectShippingMethodDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SelectShippingMethodDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
+
SelectShippingMethodDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: SelectShippingMethodDialogComponent, selector: "vdr-select-shipping-method-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>{{ 'order.select-shipping-method' | translate }}</ng-template>\r\n<vdr-radio-card-fieldset\r\n [idFn]=\"methodIdFn\"\r\n [selectedItemId]=\"selectedMethod?.id\"\r\n (selectItem)=\"selectedMethod = $event\"\r\n>\r\n <vdr-radio-card *ngFor=\"let quote of eligibleShippingMethods\" [item]=\"quote\">\r\n <div class=\"result-details\">\r\n <vdr-labeled-data [label]=\"'settings.shipping-method' | translate\">\r\n {{ quote.name }}\r\n </vdr-labeled-data>\r\n <div class=\"price-row\">\r\n <vdr-labeled-data [label]=\"'common.price' | translate\">\r\n {{ quote.price | localeCurrency: currencyCode }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'common.price-with-tax' | translate\">\r\n {{ quote.priceWithTax | localeCurrency: currencyCode }}\r\n </vdr-labeled-data>\r\n </div>\r\n <vdr-object-tree *ngIf=\"quote.metadata\" [value]=\"quote.metadata\"></vdr-object-tree>\r\n </div>\r\n </vdr-radio-card>\r\n</vdr-radio-card-fieldset>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"select()\"\r\n [disabled]=\"!selectedMethod\"\r\n class=\"btn btn-primary\"\r\n >\r\n {{ 'common.okay' | translate }}\r\n </button>\r\n</ng-template>\r\n", styles: [""], components: [{ type: i1.RadioCardFieldsetComponent, selector: "vdr-radio-card-fieldset", inputs: ["selectedItemId", "idFn"], outputs: ["selectItem"] }, { type: i1.RadioCardComponent, selector: "vdr-radio-card", inputs: ["item"], exportAs: ["VdrRadioCard"] }, { type: i1.LabeledDataComponent, selector: "vdr-labeled-data", inputs: ["label"] }, { type: i1.ObjectTreeComponent, selector: "vdr-object-tree", inputs: ["value", "isArrayItem"] }], directives: [{ type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }], pipes: { "translate": i3.TranslatePipe, "localeCurrency": i1.LocaleCurrencyPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SelectShippingMethodDialogComponent, decorators: [{
|
|
28
|
+
type: Component,
|
|
29
|
+
args: [{ selector: 'vdr-select-shipping-method-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>{{ 'order.select-shipping-method' | translate }}</ng-template>\r\n<vdr-radio-card-fieldset\r\n [idFn]=\"methodIdFn\"\r\n [selectedItemId]=\"selectedMethod?.id\"\r\n (selectItem)=\"selectedMethod = $event\"\r\n>\r\n <vdr-radio-card *ngFor=\"let quote of eligibleShippingMethods\" [item]=\"quote\">\r\n <div class=\"result-details\">\r\n <vdr-labeled-data [label]=\"'settings.shipping-method' | translate\">\r\n {{ quote.name }}\r\n </vdr-labeled-data>\r\n <div class=\"price-row\">\r\n <vdr-labeled-data [label]=\"'common.price' | translate\">\r\n {{ quote.price | localeCurrency: currencyCode }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'common.price-with-tax' | translate\">\r\n {{ quote.priceWithTax | localeCurrency: currencyCode }}\r\n </vdr-labeled-data>\r\n </div>\r\n <vdr-object-tree *ngIf=\"quote.metadata\" [value]=\"quote.metadata\"></vdr-object-tree>\r\n </div>\r\n </vdr-radio-card>\r\n</vdr-radio-card-fieldset>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"select()\"\r\n [disabled]=\"!selectedMethod\"\r\n class=\"btn btn-primary\"\r\n >\r\n {{ 'common.okay' | translate }}\r\n </button>\r\n</ng-template>\r\n", styles: [""] }]
|
|
30
|
+
}], ctorParameters: function () { return []; } });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXNoaXBwaW5nLW1ldGhvZC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9vcmRlci9zcmMvY29tcG9uZW50cy9zZWxlY3Qtc2hpcHBpbmctbWV0aG9kLWRpYWxvZy9zZWxlY3Qtc2hpcHBpbmctbWV0aG9kLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL3NlbGVjdC1zaGlwcGluZy1tZXRob2QtZGlhbG9nL3NlbGVjdC1zaGlwcGluZy1tZXRob2QtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBaUIzRSxNQUFNLE9BQU8sbUNBQW1DO0lBTTVDLGdCQUFlLENBQUM7SUFFaEIsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FDbEc7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQXlCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDNUM7SUFDTCxDQUFDOztnSUExQlEsbUNBQW1DO29IQUFuQyxtQ0FBbUMseUVDakJoRCxzaERBbUNBOzJGRGxCYSxtQ0FBbUM7a0JBTi9DLFNBQVM7K0JBQ0ksbUNBQW1DLG1CQUc1Qix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBDcmVhdGVBZGRyZXNzSW5wdXQsXHJcbiAgICBDdXJyZW5jeUNvZGUsXHJcbiAgICBEaWFsb2csXHJcbiAgICBEcmFmdE9yZGVyRWxpZ2libGVTaGlwcGluZ01ldGhvZHNRdWVyeSxcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuXHJcbnR5cGUgU2hpcHBpbmdNZXRob2RRdW90ZSA9XHJcbiAgICBEcmFmdE9yZGVyRWxpZ2libGVTaGlwcGluZ01ldGhvZHNRdWVyeVsnZWxpZ2libGVTaGlwcGluZ01ldGhvZHNGb3JEcmFmdE9yZGVyJ11bbnVtYmVyXTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItc2VsZWN0LXNoaXBwaW5nLW1ldGhvZC1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1zaGlwcGluZy1tZXRob2QtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3NlbGVjdC1zaGlwcGluZy1tZXRob2QtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdFNoaXBwaW5nTWV0aG9kRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBEaWFsb2c8c3RyaW5nPiB7XHJcbiAgICByZXNvbHZlV2l0aDogKHJlc3VsdD86IHN0cmluZykgPT4gdm9pZDtcclxuICAgIGVsaWdpYmxlU2hpcHBpbmdNZXRob2RzOiBTaGlwcGluZ01ldGhvZFF1b3RlW107XHJcbiAgICBjdXJyZW50U2VsZWN0aW9uSWQ6IHN0cmluZztcclxuICAgIGN1cnJlbmN5Q29kZTogQ3VycmVuY3lDb2RlO1xyXG4gICAgc2VsZWN0ZWRNZXRob2Q6IFNoaXBwaW5nTWV0aG9kUXVvdGUgfCB1bmRlZmluZWQ7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudFNlbGVjdGlvbklkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRNZXRob2QgPSB0aGlzLmVsaWdpYmxlU2hpcHBpbmdNZXRob2RzLmZpbmQobSA9PiBtLmlkID09PSB0aGlzLmN1cnJlbnRTZWxlY3Rpb25JZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG1ldGhvZElkRm4oaXRlbTogU2hpcHBpbmdNZXRob2RRdW90ZSkge1xyXG4gICAgICAgIHJldHVybiBpdGVtLmlkO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbmNlbCgpIHtcclxuICAgICAgICB0aGlzLnJlc29sdmVXaXRoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkTWV0aG9kKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZVdpdGgodGhpcy5zZWxlY3RlZE1ldGhvZC5pZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZSB2ZHJEaWFsb2dUaXRsZT57eyAnb3JkZXIuc2VsZWN0LXNoaXBwaW5nLW1ldGhvZCcgfCB0cmFuc2xhdGUgfX08L25nLXRlbXBsYXRlPlxyXG48dmRyLXJhZGlvLWNhcmQtZmllbGRzZXRcclxuICAgIFtpZEZuXT1cIm1ldGhvZElkRm5cIlxyXG4gICAgW3NlbGVjdGVkSXRlbUlkXT1cInNlbGVjdGVkTWV0aG9kPy5pZFwiXHJcbiAgICAoc2VsZWN0SXRlbSk9XCJzZWxlY3RlZE1ldGhvZCA9ICRldmVudFwiXHJcbj5cclxuICAgIDx2ZHItcmFkaW8tY2FyZCAqbmdGb3I9XCJsZXQgcXVvdGUgb2YgZWxpZ2libGVTaGlwcGluZ01ldGhvZHNcIiBbaXRlbV09XCJxdW90ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZXN1bHQtZGV0YWlsc1wiPlxyXG4gICAgICAgICAgICA8dmRyLWxhYmVsZWQtZGF0YSBbbGFiZWxdPVwiJ3NldHRpbmdzLnNoaXBwaW5nLW1ldGhvZCcgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgIHt7IHF1b3RlLm5hbWUgfX1cclxuICAgICAgICAgICAgPC92ZHItbGFiZWxlZC1kYXRhPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2Utcm93XCI+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWxhYmVsZWQtZGF0YSBbbGFiZWxdPVwiJ2NvbW1vbi5wcmljZScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBxdW90ZS5wcmljZSB8IGxvY2FsZUN1cnJlbmN5OiBjdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgICAgICAgIDwvdmRyLWxhYmVsZWQtZGF0YT5cclxuICAgICAgICAgICAgICAgIDx2ZHItbGFiZWxlZC1kYXRhIFtsYWJlbF09XCInY29tbW9uLnByaWNlLXdpdGgtdGF4JyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHF1b3RlLnByaWNlV2l0aFRheCB8IGxvY2FsZUN1cnJlbmN5OiBjdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgICAgICAgIDwvdmRyLWxhYmVsZWQtZGF0YT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDx2ZHItb2JqZWN0LXRyZWUgKm5nSWY9XCJxdW90ZS5tZXRhZGF0YVwiIFt2YWx1ZV09XCJxdW90ZS5tZXRhZGF0YVwiPjwvdmRyLW9iamVjdC10cmVlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC92ZHItcmFkaW8tY2FyZD5cclxuPC92ZHItcmFkaW8tY2FyZC1maWVsZHNldD5cclxuXHJcbjxuZy10ZW1wbGF0ZSB2ZHJEaWFsb2dCdXR0b25zPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG5cIiAoY2xpY2spPVwiY2FuY2VsKClcIj57eyAnY29tbW9uLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cclxuICAgIDxidXR0b25cclxuICAgICAgICB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICAoY2xpY2spPVwic2VsZWN0KClcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCIhc2VsZWN0ZWRNZXRob2RcIlxyXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcclxuICAgID5cclxuICAgICAgICB7eyAnY29tbW9uLm9rYXknIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2J1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|