@vendure/admin-ui 2.2.0-next.0 → 2.2.0-next.2
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 +4 -3
- package/catalog/components/create-facet-value-dialog/create-facet-value-dialog.component.d.ts +19 -0
- package/catalog/components/facet-detail/facet-detail.component.d.ts +9 -12
- package/catalog/components/product-list/product-list.component.d.ts +1 -1
- package/catalog/components/product-variant-list/product-variant-list.component.d.ts +3 -3
- package/catalog/public_api.d.ts +1 -0
- package/core/common/base-list.component.d.ts +1 -1
- package/core/common/component-registry-types.d.ts +1 -1
- package/core/common/generated-types.d.ts +276 -4860
- package/core/common/utilities/custom-field-default-value.d.ts +1 -1
- package/core/common/utilities/interpolate-description.d.ts +1 -1
- package/core/common/version.d.ts +1 -1
- package/core/components/app-shell/app-shell.component.d.ts +1 -0
- package/core/data/server-config.d.ts +4 -3
- package/core/data/utils/add-custom-fields.d.ts +2 -2
- package/core/extension/register-route-component.d.ts +1 -1
- package/core/providers/currency/currency.service.d.ts +10 -0
- package/core/public_api.d.ts +1 -0
- package/core/shared/components/chart/chart.component.d.ts +3 -0
- package/core/shared/components/chart/tooltip-plugin.d.ts +16 -1
- package/core/shared/components/configurable-input/configurable-input.component.d.ts +3 -0
- package/core/shared/components/currency-input/currency-input.component.d.ts +6 -3
- package/core/shared/components/custom-field-control/custom-field-control.component.d.ts +0 -2
- package/core/shared/components/form-field/form-field-control.directive.d.ts +1 -1
- package/core/shared/components/form-field/form-field.component.d.ts +3 -2
- package/core/shared/components/order-state-label/order-state-label.component.d.ts +1 -1
- package/core/shared/components/page-title/page-title.component.d.ts +2 -3
- package/core/shared/dynamic-form-inputs/default-form-inputs.d.ts +1 -1
- package/core/shared/pipes/locale-currency.pipe.d.ts +5 -2
- package/esm2022/catalog/catalog.module.mjs +17 -3
- package/esm2022/catalog/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.mjs +1 -1
- package/esm2022/catalog/components/collection-data-table/collection-data-table.component.mjs +1 -1
- package/esm2022/catalog/components/collection-detail/collection-detail.component.mjs +2 -2
- package/esm2022/catalog/components/collection-list/collection-list.component.mjs +3 -3
- package/esm2022/catalog/components/collection-tree/collection-tree-node.component.mjs +2 -2
- package/esm2022/catalog/components/create-facet-value-dialog/create-facet-value-dialog.component.mjs +44 -0
- package/esm2022/catalog/components/create-product-option-group-dialog/create-product-option-group-dialog.component.mjs +1 -1
- package/esm2022/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.mjs +1 -1
- package/esm2022/catalog/components/facet-detail/facet-detail.component.mjs +85 -120
- package/esm2022/catalog/components/facet-list/facet-list.component.mjs +5 -2
- package/esm2022/catalog/components/generate-product-variants/generate-product-variants.component.mjs +1 -1
- package/esm2022/catalog/components/option-value-input/option-value-input.component.mjs +1 -1
- package/esm2022/catalog/components/product-detail/product-detail.component.mjs +3 -3
- package/esm2022/catalog/components/product-list/product-list.component.mjs +26 -14
- package/esm2022/catalog/components/product-options-editor/product-options-editor.component.mjs +1 -1
- package/esm2022/catalog/components/product-variant-detail/product-variant-detail.component.mjs +1 -1
- package/esm2022/catalog/components/product-variant-list/product-variant-list.component.mjs +36 -15
- package/esm2022/catalog/components/product-variants-editor/product-variants-editor.component.mjs +1 -1
- package/esm2022/catalog/components/product-variants-table/product-variants-table.component.mjs +1 -1
- package/esm2022/catalog/components/update-product-option-dialog/update-product-option-dialog.component.mjs +1 -1
- package/esm2022/catalog/components/variant-price-detail/variant-price-detail.component.mjs +1 -1
- package/esm2022/catalog/public_api.mjs +2 -1
- package/esm2022/core/common/base-list.component.mjs +1 -1
- package/esm2022/core/common/component-registry-types.mjs +1 -1
- package/esm2022/core/common/generated-types.mjs +26 -22
- package/esm2022/core/common/introspection-result.mjs +4 -1
- package/esm2022/core/common/utilities/interpolate-description.mjs +3 -3
- package/esm2022/core/common/version.mjs +2 -2
- package/esm2022/core/components/app-shell/app-shell.component.mjs +4 -3
- package/esm2022/core/components/channel-switcher/channel-switcher.component.mjs +1 -1
- package/esm2022/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.mjs +1 -1
- package/esm2022/core/core.module.mjs +2 -2
- package/esm2022/core/data/definitions/facet-definitions.mjs +2 -2
- package/esm2022/core/data/definitions/order-definitions.mjs +5 -1
- package/esm2022/core/data/definitions/settings-definitions.mjs +5 -81
- package/esm2022/core/data/providers/base-data.service.mjs +2 -2
- package/esm2022/core/data/server-config.mjs +6 -2
- package/esm2022/core/data/utils/add-custom-fields.mjs +2 -2
- package/esm2022/core/providers/currency/currency.service.mjs +21 -0
- package/esm2022/core/public_api.mjs +2 -1
- package/esm2022/core/shared/components/address-form/address-form.component.mjs +1 -1
- package/esm2022/core/shared/components/affixed-input/percentage-suffix-input.component.mjs +1 -1
- package/esm2022/core/shared/components/asset-file-input/asset-file-input.component.mjs +1 -1
- package/esm2022/core/shared/components/asset-preview/asset-preview.component.mjs +1 -1
- package/esm2022/core/shared/components/assign-to-channel-dialog/assign-to-channel-dialog.component.mjs +1 -1
- package/esm2022/core/shared/components/chart/chart.component.mjs +12 -5
- package/esm2022/core/shared/components/chart/tooltip-plugin.mjs +6 -14
- package/esm2022/core/shared/components/configurable-input/configurable-input.component.mjs +15 -13
- package/esm2022/core/shared/components/currency-input/currency-input.component.mjs +17 -14
- package/esm2022/core/shared/components/custom-field-control/custom-field-control.component.mjs +3 -6
- package/esm2022/core/shared/components/data-table/data-table.component.mjs +1 -1
- package/esm2022/core/shared/components/data-table-2/data-table-custom-field-column.component.mjs +4 -1
- package/esm2022/core/shared/components/data-table-2/data-table-search.component.mjs +1 -1
- package/esm2022/core/shared/components/data-table-2/data-table2.component.mjs +1 -1
- package/esm2022/core/shared/components/data-table-column-picker/data-table-column-picker.component.mjs +1 -1
- package/esm2022/core/shared/components/data-table-filter-presets/add-filter-preset-button.component.mjs +1 -1
- package/esm2022/core/shared/components/data-table-filter-presets/rename-filter-preset-dialog.component.mjs +1 -1
- package/esm2022/core/shared/components/data-table-filters/data-table-filters.component.mjs +1 -1
- package/esm2022/core/shared/components/datetime-picker/datetime-picker.component.mjs +1 -1
- package/esm2022/core/shared/components/edit-note-dialog/edit-note-dialog.component.mjs +1 -1
- package/esm2022/core/shared/components/form-field/form-field-control.directive.mjs +3 -3
- package/esm2022/core/shared/components/form-field/form-field.component.mjs +8 -4
- package/esm2022/core/shared/components/manage-tags-dialog/manage-tags-dialog.component.mjs +1 -1
- package/esm2022/core/shared/components/page-header-tabs/page-header-tabs.component.mjs +2 -2
- package/esm2022/core/shared/components/page-title/page-title.component.mjs +5 -6
- package/esm2022/core/shared/components/radio-card/radio-card.component.mjs +1 -1
- package/esm2022/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.mjs +1 -1
- package/esm2022/core/shared/components/rich-text-editor/link-dialog/link-dialog.component.mjs +1 -1
- package/esm2022/core/shared/components/timeline-entry/timeline-entry.component.mjs +2 -2
- package/esm2022/core/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.mjs +1 -1
- package/esm2022/core/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.mjs +4 -3
- package/esm2022/core/shared/dynamic-form-inputs/number-form-input/number-form-input.component.mjs +1 -1
- package/esm2022/core/shared/dynamic-form-inputs/password-form-input/password-form-input.component.mjs +1 -1
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.mjs +1 -1
- package/esm2022/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.mjs +1 -1
- package/esm2022/core/shared/dynamic-form-inputs/text-form-input/text-form-input.component.mjs +1 -1
- package/esm2022/core/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.mjs +1 -1
- package/esm2022/core/shared/pipes/locale-currency.pipe.mjs +11 -7
- package/esm2022/customer/components/customer-detail/customer-detail.component.mjs +1 -1
- package/esm2022/customer/components/customer-group-detail/customer-group-detail.component.mjs +1 -1
- package/esm2022/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.mjs +1 -1
- package/esm2022/customer/components/customer-history/customer-history.component.mjs +3 -3
- package/esm2022/dashboard/widgets/order-summary-widget/order-summary-widget.component.mjs +4 -4
- package/esm2022/login/components/login/login.component.mjs +4 -5
- package/esm2022/marketing/components/promotion-detail/promotion-detail.component.mjs +1 -1
- package/esm2022/order/common/get-refundable-payments.mjs +19 -0
- package/esm2022/order/common/modify-order-types.mjs +2 -0
- package/esm2022/order/components/add-manual-payment-dialog/add-manual-payment-dialog.component.mjs +1 -1
- package/esm2022/order/components/cancel-order-dialog/cancel-order-dialog.component.mjs +1 -1
- package/esm2022/order/components/coupon-code-selector/coupon-code-selector.component.mjs +3 -3
- package/esm2022/order/components/draft-order-variant-selector/draft-order-variant-selector.component.mjs +1 -1
- package/esm2022/order/components/fulfill-order-dialog/fulfill-order-dialog.component.mjs +1 -1
- package/esm2022/order/components/modification-detail/modification-detail.component.mjs +17 -6
- package/esm2022/order/components/order-data-table/order-data-table.component.mjs +1 -1
- package/esm2022/order/components/order-detail/order-detail.component.mjs +77 -29
- package/esm2022/order/components/order-editor/order-editor.component.mjs +201 -98
- package/esm2022/order/components/order-edits-preview-dialog/order-edits-preview-dialog.component.mjs +45 -7
- package/esm2022/order/components/order-history/order-history.component.mjs +22 -6
- package/esm2022/order/components/order-modification-summary/order-modification-summary.component.mjs +76 -0
- package/esm2022/order/components/order-payment-card/order-payment-card.component.mjs +3 -3
- package/esm2022/order/components/order-state-select-dialog/order-state-select-dialog.component.mjs +1 -1
- package/esm2022/order/components/order-table/order-table.component.mjs +3 -3
- package/esm2022/order/components/payment-for-refund-selector/payment-for-refund-selector.component.mjs +24 -0
- package/esm2022/order/components/payment-state-label/payment-state-label.component.mjs +2 -2
- package/esm2022/order/components/refund-detail/refund-detail.component.mjs +18 -0
- package/esm2022/order/components/refund-order-dialog/refund-order-dialog.component.mjs +100 -58
- package/esm2022/order/components/refund-state-label/refund-state-label.component.mjs +2 -2
- package/esm2022/order/components/select-customer-dialog/select-customer-dialog.component.mjs +14 -8
- package/esm2022/order/components/settle-refund-dialog/settle-refund-dialog.component.mjs +1 -1
- package/esm2022/order/components/simple-item-list/simple-item-list.component.mjs +3 -3
- package/esm2022/order/order.module.mjs +32 -2
- package/esm2022/order/order.routes.mjs +7 -53
- package/esm2022/order/providers/routing/order.guard.mjs +22 -2
- package/esm2022/order/public_api.mjs +6 -2
- package/esm2022/react/components/react-custom-column.component.mjs +3 -3
- package/esm2022/react/components/react-custom-detail.component.mjs +3 -3
- package/esm2022/react/components/react-form-input.component.mjs +3 -3
- package/esm2022/react/components/react-route.component.mjs +3 -3
- package/esm2022/settings/components/admin-detail/admin-detail.component.mjs +1 -1
- package/esm2022/settings/components/channel-detail/channel-detail.component.mjs +1 -1
- package/esm2022/settings/components/country-detail/country-detail.component.mjs +1 -1
- package/esm2022/settings/components/global-settings/global-settings.component.mjs +1 -1
- package/esm2022/settings/components/payment-method-detail/payment-method-detail.component.mjs +1 -1
- package/esm2022/settings/components/profile/profile.component.mjs +1 -1
- package/esm2022/settings/components/role-detail/role-detail.component.mjs +1 -1
- package/esm2022/settings/components/seller-detail/seller-detail.component.mjs +1 -1
- package/esm2022/settings/components/shipping-method-detail/shipping-method-detail.component.mjs +1 -1
- package/esm2022/settings/components/stock-location-detail/stock-location-detail.component.mjs +1 -1
- package/esm2022/settings/components/tax-category-detail/tax-category-detail.component.mjs +1 -1
- package/esm2022/settings/components/tax-rate-detail/tax-rate-detail.component.mjs +1 -1
- package/esm2022/settings/components/test-address-form/test-address-form.component.mjs +1 -1
- package/esm2022/settings/components/test-order-builder/test-order-builder.component.mjs +1 -1
- package/esm2022/settings/components/zone-detail/zone-detail.component.mjs +1 -1
- package/esm2022/settings/settings.routes.mjs +4 -4
- package/esm2022/system/components/job-list/job-list.component.mjs +1 -1
- package/fesm2022/vendure-admin-ui-catalog.mjs +215 -166
- package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-core.mjs +156 -192
- package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-customer.mjs +5 -5
- package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-dashboard.mjs +3 -3
- package/fesm2022/vendure-admin-ui-dashboard.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-login.mjs +2 -3
- package/fesm2022/vendure-admin-ui-login.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-marketing.mjs +1 -1
- package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-order.mjs +661 -324
- package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-react.mjs +8 -8
- package/fesm2022/vendure-admin-ui-react.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-settings.mjs +18 -18
- package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-system.mjs +1 -1
- package/fesm2022/vendure-admin-ui-system.mjs.map +1 -1
- package/login/components/login/login.component.d.ts +0 -1
- package/order/common/get-refundable-payments.d.ts +9 -0
- package/order/common/modify-order-types.d.ts +29 -0
- package/order/components/modification-detail/modification-detail.component.d.ts +4 -0
- package/order/components/order-detail/order-detail.component.d.ts +2 -0
- package/order/components/order-editor/order-editor.component.d.ts +57 -33
- package/order/components/order-edits-preview-dialog/order-edits-preview-dialog.component.d.ts +17 -6
- package/order/components/order-history/order-history.component.d.ts +6 -2
- package/order/components/order-modification-summary/order-modification-summary.component.d.ts +19 -0
- package/order/components/payment-for-refund-selector/payment-for-refund-selector.component.d.ts +14 -0
- package/order/components/refund-detail/refund-detail.component.d.ts +8 -0
- package/order/components/refund-order-dialog/refund-order-dialog.component.d.ts +13 -11
- package/order/components/select-customer-dialog/select-customer-dialog.component.d.ts +9 -2
- package/order/components/simple-item-list/simple-item-list.component.d.ts +1 -1
- package/order/order.module.d.ts +6 -3
- package/order/order.routes.d.ts +0 -2
- package/order/providers/routing/order.guard.d.ts +1 -0
- package/order/public_api.d.ts +5 -1
- package/package.json +20 -20
- package/settings/components/administrator-list/administrator-list.component.d.ts +2 -0
- package/settings/components/stock-location-list/stock-location-list.component.d.ts +1 -1
- package/static/i18n-messages/ar.json +15 -7
- package/static/i18n-messages/cs.json +15 -7
- package/static/i18n-messages/de.json +15 -7
- package/static/i18n-messages/en.json +18 -10
- package/static/i18n-messages/es.json +15 -7
- package/static/i18n-messages/fa.json +16 -8
- package/static/i18n-messages/fr.json +15 -7
- package/static/i18n-messages/he.json +15 -7
- package/static/i18n-messages/hr.json +15 -7
- package/static/i18n-messages/it.json +16 -8
- package/static/i18n-messages/nb.json +803 -0
- package/static/i18n-messages/ne.json +16 -8
- package/static/i18n-messages/pl.json +15 -7
- package/static/i18n-messages/pt_BR.json +16 -8
- package/static/i18n-messages/pt_PT.json +15 -7
- package/static/i18n-messages/ru.json +15 -7
- package/static/i18n-messages/uk.json +180 -172
- package/static/i18n-messages/zh_Hans.json +15 -7
- package/static/i18n-messages/zh_Hant.json +15 -7
- package/static/styles/global/_sass-overrides.scss +5 -0
- package/static/styles/global/_utilities.scss +4 -0
- package/static/styles/theme/dark.scss +9 -6
- package/static/styles/theme/default.scss +8 -4
- package/static/theme.min.css +1 -1
- package/static/vendure-ui-config.json +2 -1
- package/esm2022/order/providers/routing/order-resolver.mjs +0 -48
- package/order/providers/routing/order-resolver.d.ts +0 -16
|
@@ -3,4 +3,4 @@ import { CustomFieldConfig } from '../generated-types';
|
|
|
3
3
|
export declare function getCustomFieldsDefaults(customFieldConfig: CustomFieldConfig[]): {
|
|
4
4
|
[key: string]: ReturnType<typeof getDefaultValue>;
|
|
5
5
|
};
|
|
6
|
-
export declare function getDefaultValue(type: CustomFieldType, isNullable?: boolean): false |
|
|
6
|
+
export declare function getDefaultValue(type: CustomFieldType, isNullable?: boolean): false | 0 | "" | Date | null;
|
package/core/common/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const ADMIN_UI_VERSION = "2.2.0-next.
|
|
1
|
+
export declare const ADMIN_UI_VERSION = "2.2.0-next.2";
|
|
@@ -26,6 +26,7 @@ export declare class AppShellComponent implements OnInit {
|
|
|
26
26
|
availableLanguages: LanguageCode[];
|
|
27
27
|
availableLocales: string[];
|
|
28
28
|
hideVendureBranding: boolean | undefined;
|
|
29
|
+
hideVersion: boolean | undefined;
|
|
29
30
|
pageTitle$: Observable<string>;
|
|
30
31
|
mainNavExpanded$: Observable<boolean>;
|
|
31
32
|
devMode: boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Injector } from '@angular/core';
|
|
2
|
-
import { CustomFieldConfig, CustomFields, GetGlobalSettingsQuery, OrderProcessState, PermissionDefinition
|
|
2
|
+
import { CustomFieldConfig, CustomFields, GetGlobalSettingsQuery, GetServerConfigQuery, OrderProcessState, PermissionDefinition } from '../common/generated-types';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare function initializeServerConfigService(serverConfigService: ServerConfigService): () => Promise<any>;
|
|
5
5
|
/**
|
|
@@ -9,6 +9,7 @@ export declare function initializeServerConfigService(serverConfigService: Serve
|
|
|
9
9
|
export declare class ServerConfigService {
|
|
10
10
|
private injector;
|
|
11
11
|
private _serverConfig;
|
|
12
|
+
customFieldsMap: Map<string, CustomFieldConfig[]>;
|
|
12
13
|
private get baseDataService();
|
|
13
14
|
constructor(injector: Injector);
|
|
14
15
|
/**
|
|
@@ -28,11 +29,11 @@ export declare class ServerConfigService {
|
|
|
28
29
|
/**
|
|
29
30
|
* Retrieves the custom field configs for the given entity type.
|
|
30
31
|
*/
|
|
31
|
-
getCustomFieldsFor(type: Exclude<keyof CustomFields, '__typename'>): CustomFieldConfig[];
|
|
32
|
+
getCustomFieldsFor(type: Exclude<keyof CustomFields, '__typename'> | string): CustomFieldConfig[];
|
|
32
33
|
getOrderProcessStates(): OrderProcessState[];
|
|
33
34
|
getPermittedAssetTypes(): string[];
|
|
34
35
|
getPermissionDefinitions(): PermissionDefinition[];
|
|
35
|
-
get serverConfig():
|
|
36
|
+
get serverConfig(): GetServerConfigQuery['globalSettings']['serverConfig'];
|
|
36
37
|
static ɵfac: i0.ɵɵFactoryDeclaration<ServerConfigService, never>;
|
|
37
38
|
static ɵprov: i0.ɵɵInjectableDeclaration<ServerConfigService>;
|
|
38
39
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DocumentNode } from 'graphql';
|
|
2
|
-
import {
|
|
2
|
+
import { CustomFieldConfig } from '../../common/generated-types';
|
|
3
3
|
/**
|
|
4
4
|
* Given a GraphQL AST (DocumentNode), this function looks for fragment definitions and adds and configured
|
|
5
5
|
* custom fields to those fragments.
|
|
6
6
|
*/
|
|
7
|
-
export declare function addCustomFields(documentNode: DocumentNode, customFields:
|
|
7
|
+
export declare function addCustomFields(documentNode: DocumentNode, customFields: Map<string, CustomFieldConfig[]>): DocumentNode;
|
|
@@ -88,7 +88,7 @@ export declare function registerRouteComponent<Component extends any | BaseDetai
|
|
|
88
88
|
component: typeof AngularRouteComponent;
|
|
89
89
|
title?: string | Type<import("@angular/router").Resolve<string>> | ResolveFn<string> | undefined;
|
|
90
90
|
path: string;
|
|
91
|
-
pathMatch?: "
|
|
91
|
+
pathMatch?: "prefix" | "full" | undefined;
|
|
92
92
|
matcher?: import("@angular/router").UrlMatcher | undefined;
|
|
93
93
|
loadComponent?: (() => Type<unknown> | Observable<Type<unknown> | import("@angular/router").DefaultExport<Type<unknown>>> | Promise<Type<unknown> | import("@angular/router").DefaultExport<Type<unknown>>>) | undefined;
|
|
94
94
|
redirectTo?: string | undefined;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ServerConfigService } from '../../data/server-config';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class CurrencyService {
|
|
4
|
+
readonly precision: number;
|
|
5
|
+
readonly precisionFactor: number;
|
|
6
|
+
constructor(serverConfigService: ServerConfigService);
|
|
7
|
+
toMajorUnits(value: number): number;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CurrencyService, never>;
|
|
9
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<CurrencyService>;
|
|
10
|
+
}
|
package/core/public_api.d.ts
CHANGED
|
@@ -94,6 +94,7 @@ export * from './providers/bulk-action-registry/bulk-action-registry.service';
|
|
|
94
94
|
export * from './providers/bulk-action-registry/bulk-action-types';
|
|
95
95
|
export * from './providers/channel/channel.service';
|
|
96
96
|
export * from './providers/component-registry/component-registry.service';
|
|
97
|
+
export * from './providers/currency/currency.service';
|
|
97
98
|
export * from './providers/custom-detail-component/custom-detail-component-types';
|
|
98
99
|
export * from './providers/custom-detail-component/custom-detail-component.service';
|
|
99
100
|
export * from './providers/custom-field-component/custom-field-component.service';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { LineChartOptions } from 'chartist';
|
|
3
|
+
import { CurrencyService } from '../../../providers/currency/currency.service';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export interface ChartFormatOptions {
|
|
5
6
|
formatValueAs: 'currency' | 'number';
|
|
@@ -12,10 +13,12 @@ export interface ChartEntry {
|
|
|
12
13
|
formatOptions: ChartFormatOptions;
|
|
13
14
|
}
|
|
14
15
|
export declare class ChartComponent implements OnInit, OnChanges, OnDestroy {
|
|
16
|
+
private currencyService;
|
|
15
17
|
entries: ChartEntry[];
|
|
16
18
|
options?: LineChartOptions;
|
|
17
19
|
private chartDivRef;
|
|
18
20
|
private chart;
|
|
21
|
+
constructor(currencyService: CurrencyService);
|
|
19
22
|
ngOnInit(): void;
|
|
20
23
|
ngOnChanges(changes: SimpleChanges): void;
|
|
21
24
|
ngOnDestroy(): void;
|
|
@@ -3,4 +3,19 @@
|
|
|
3
3
|
*
|
|
4
4
|
*/
|
|
5
5
|
import { LineChart } from 'chartist';
|
|
6
|
-
|
|
6
|
+
declare const defaultOptions: {
|
|
7
|
+
currency: undefined;
|
|
8
|
+
currencyPrecision: number;
|
|
9
|
+
currencyPrecisionFactor: number;
|
|
10
|
+
currencyFormatCallback: undefined;
|
|
11
|
+
tooltipOffset: {
|
|
12
|
+
x: number;
|
|
13
|
+
y: number;
|
|
14
|
+
};
|
|
15
|
+
anchorToPoint: boolean;
|
|
16
|
+
appendToBody: boolean;
|
|
17
|
+
class: undefined;
|
|
18
|
+
pointClass: string;
|
|
19
|
+
};
|
|
20
|
+
export declare function tooltipPlugin(userOptions?: Partial<typeof defaultOptions>): (chart: LineChart) => void;
|
|
21
|
+
export {};
|
|
@@ -2,11 +2,13 @@ import { EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angu
|
|
|
2
2
|
import { AbstractControl, ControlValueAccessor, UntypedFormGroup, ValidationErrors, Validator } from '@angular/forms';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
4
|
import { ConfigArg, ConfigArgDefinition, ConfigurableOperation, ConfigurableOperationDefinition } from '../../../common/generated-types';
|
|
5
|
+
import { CurrencyService } from '../../../providers/currency/currency.service';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
/**
|
|
7
8
|
* A form input which renders a card with the internal form fields of the given ConfigurableOperation.
|
|
8
9
|
*/
|
|
9
10
|
export declare class ConfigurableInputComponent implements OnInit, OnChanges, OnDestroy, ControlValueAccessor, Validator {
|
|
11
|
+
private currencyService;
|
|
10
12
|
operation?: ConfigurableOperation;
|
|
11
13
|
operationDefinition?: ConfigurableOperationDefinition;
|
|
12
14
|
readonly: boolean;
|
|
@@ -22,6 +24,7 @@ export declare class ConfigurableInputComponent implements OnInit, OnChanges, On
|
|
|
22
24
|
positionChange$: Observable<number>;
|
|
23
25
|
private positionChangeSubject;
|
|
24
26
|
private subscription;
|
|
27
|
+
constructor(currencyService: CurrencyService);
|
|
25
28
|
interpolateDescription(): string;
|
|
26
29
|
ngOnInit(): void;
|
|
27
30
|
ngOnChanges(changes: SimpleChanges): void;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor } from '@angular/forms';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
4
|
import { DataService } from '../../../data/providers/data.service';
|
|
5
|
+
import { CurrencyService } from '../../../providers/currency/currency.service';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
/**
|
|
7
8
|
* @description
|
|
@@ -20,7 +21,7 @@ import * as i0 from "@angular/core";
|
|
|
20
21
|
*/
|
|
21
22
|
export declare class CurrencyInputComponent implements ControlValueAccessor, OnInit, OnChanges, OnDestroy {
|
|
22
23
|
private dataService;
|
|
23
|
-
private
|
|
24
|
+
private currencyService;
|
|
24
25
|
disabled: boolean;
|
|
25
26
|
readonly: boolean;
|
|
26
27
|
value: number;
|
|
@@ -34,7 +35,9 @@ export declare class CurrencyInputComponent implements ControlValueAccessor, OnI
|
|
|
34
35
|
_inputValue: string;
|
|
35
36
|
private currencyCode$;
|
|
36
37
|
private subscription;
|
|
37
|
-
|
|
38
|
+
readonly precision: number;
|
|
39
|
+
readonly precisionFactor: number;
|
|
40
|
+
constructor(dataService: DataService, currencyService: CurrencyService);
|
|
38
41
|
ngOnInit(): void;
|
|
39
42
|
ngOnChanges(changes: SimpleChanges): void;
|
|
40
43
|
ngOnDestroy(): void;
|
|
@@ -20,8 +20,6 @@ export declare class CustomFieldControlComponent implements OnInit {
|
|
|
20
20
|
showLabel: boolean;
|
|
21
21
|
readonly: boolean;
|
|
22
22
|
hasCustomControl: boolean;
|
|
23
|
-
private customComponentPlaceholder;
|
|
24
|
-
private customComponentFactory;
|
|
25
23
|
uiLanguage$: Observable<LanguageCode>;
|
|
26
24
|
constructor(dataService: DataService, customFieldComponentService: CustomFieldComponentService);
|
|
27
25
|
ngOnInit(): void;
|
|
@@ -10,6 +10,6 @@ export declare class FormFieldControlDirective {
|
|
|
10
10
|
get touched(): boolean;
|
|
11
11
|
setReadOnly(value: boolean): void;
|
|
12
12
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormFieldControlDirective, [null, { optional: true; }]>;
|
|
13
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<FormFieldControlDirective, "input, textarea, select", never, {}, {}, never, never, false, never>;
|
|
13
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<FormFieldControlDirective, "input, textarea, select, vdr-currency-input", never, {}, {}, never, never, false, never>;
|
|
14
14
|
}
|
|
15
15
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
1
|
+
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
2
|
import { FormFieldControlDirective } from './form-field-control.directive';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
/**
|
|
@@ -21,11 +21,12 @@ export declare class FormFieldComponent implements OnInit {
|
|
|
21
21
|
* will be displayed which allows the field to be edited.
|
|
22
22
|
*/
|
|
23
23
|
readOnlyToggle: boolean;
|
|
24
|
+
readOnlyToggleChange: EventEmitter<boolean>;
|
|
24
25
|
formFieldControl: FormFieldControlDirective;
|
|
25
26
|
isReadOnly: boolean;
|
|
26
27
|
ngOnInit(): void;
|
|
27
28
|
setReadOnly(value: boolean): void;
|
|
28
29
|
getErrorMessage(): string | undefined;
|
|
29
30
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormFieldComponent, never>;
|
|
30
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FormFieldComponent, "vdr-form-field", never, { "label": { "alias": "label"; "required": false; }; "for": { "alias": "for"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "errors": { "alias": "errors"; "required": false; }; "readOnlyToggle": { "alias": "readOnlyToggle"; "required": false; }; }, {}, ["formFieldControl"], ["*"], false, never>;
|
|
31
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FormFieldComponent, "vdr-form-field", never, { "label": { "alias": "label"; "required": false; }; "for": { "alias": "for"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "errors": { "alias": "errors"; "required": false; }; "readOnlyToggle": { "alias": "readOnlyToggle"; "required": false; }; }, { "readOnlyToggleChange": "readOnlyToggleChange"; }, ["formFieldControl"], ["*"], false, never>;
|
|
31
32
|
}
|
|
@@ -11,7 +11,7 @@ import * as i0 from "@angular/core";
|
|
|
11
11
|
*/
|
|
12
12
|
export declare class OrderStateLabelComponent {
|
|
13
13
|
state: string;
|
|
14
|
-
get chipColorType(): "" | "success" | "
|
|
14
|
+
get chipColorType(): "error" | "success" | "" | "warning";
|
|
15
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<OrderStateLabelComponent, never>;
|
|
16
16
|
static ɵcmp: i0.ɵɵComponentDeclaration<OrderStateLabelComponent, "vdr-order-state-label", never, { "state": { "alias": "state"; "required": false; }; }, {}, never, ["*"], false, never>;
|
|
17
17
|
}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { BreadcrumbService } from '../../../providers/breadcrumb/breadcrumb.service';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class PageTitleComponent implements OnInit, OnChanges {
|
|
6
|
-
private changeDetector;
|
|
7
6
|
private breadcrumbService;
|
|
8
7
|
title: string;
|
|
9
8
|
private titleChange$;
|
|
10
9
|
protected title$: Observable<string>;
|
|
11
10
|
readonly setTitle: (title: string) => void;
|
|
12
|
-
constructor(
|
|
11
|
+
constructor(breadcrumbService: BreadcrumbService);
|
|
13
12
|
ngOnInit(): void;
|
|
14
13
|
ngOnChanges(changes: SimpleChanges): void;
|
|
15
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<PageTitleComponent, never>;
|
|
@@ -8,7 +8,7 @@ import { PasswordFormInputComponent } from './password-form-input/password-form-
|
|
|
8
8
|
import { ProductMultiSelectorFormInputComponent } from './product-multi-selector-form-input/product-multi-selector-form-input.component';
|
|
9
9
|
import { ProductSelectorFormInputComponent } from './product-selector-form-input/product-selector-form-input.component';
|
|
10
10
|
import { SelectFormInputComponent } from './select-form-input/select-form-input.component';
|
|
11
|
-
export declare const defaultFormInputs: (typeof
|
|
11
|
+
export declare const defaultFormInputs: (typeof HtmlEditorFormInputComponent | typeof JsonEditorFormInputComponent | typeof CombinationModeFormInputComponent | typeof CurrencyFormInputComponent | typeof CustomerGroupFormInputComponent | typeof PasswordFormInputComponent | typeof ProductMultiSelectorFormInputComponent | typeof ProductSelectorFormInputComponent | typeof SelectFormInputComponent)[];
|
|
12
12
|
/**
|
|
13
13
|
* Registers the default form input components.
|
|
14
14
|
*/
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ChangeDetectorRef, PipeTransform } from '@angular/core';
|
|
2
2
|
import { DataService } from '../../data/providers/data.service';
|
|
3
|
+
import { CurrencyService } from '../../providers/currency/currency.service';
|
|
3
4
|
import { LocaleBasePipe } from './locale-base.pipe';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
/**
|
|
@@ -15,8 +16,10 @@ import * as i0 from "@angular/core";
|
|
|
15
16
|
* @docsCategory pipes
|
|
16
17
|
*/
|
|
17
18
|
export declare class LocaleCurrencyPipe extends LocaleBasePipe implements PipeTransform {
|
|
18
|
-
|
|
19
|
+
private currencyService;
|
|
20
|
+
readonly precisionFactor: number;
|
|
21
|
+
constructor(currencyService: CurrencyService, dataService?: DataService, changeDetectorRef?: ChangeDetectorRef);
|
|
19
22
|
transform(value: unknown, ...args: unknown[]): string | unknown;
|
|
20
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<LocaleCurrencyPipe, [{ optional: true; }, { optional: true; }]>;
|
|
23
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LocaleCurrencyPipe, [null, { optional: true; }, { optional: true; }]>;
|
|
21
24
|
static ɵpipe: i0.ɵɵPipeDeclaration<LocaleCurrencyPipe, "localeCurrency", false>;
|
|
22
25
|
}
|
|
@@ -2,6 +2,7 @@ import { NgModule } from '@angular/core';
|
|
|
2
2
|
import { RouterModule, ROUTES } from '@angular/router';
|
|
3
3
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
|
4
4
|
import { AssetDetailQueryDocument, CollectionDetailQueryDocument, detailComponentWithResolver, GetFacetDetailDocument, GetProductDetailDocument, GetProductVariantDetailDocument, PageService, SharedModule, } from '@vendure/admin-ui/core';
|
|
5
|
+
import { SortOrder } from '@vendure/common/lib/generated-types';
|
|
5
6
|
import { createRoutes } from './catalog.routes';
|
|
6
7
|
import { ApplyFacetDialogComponent } from './components/apply-facet-dialog/apply-facet-dialog.component';
|
|
7
8
|
import { AssetDetailComponent } from './components/asset-detail/asset-detail.component';
|
|
@@ -18,6 +19,7 @@ import { CollectionListComponent } from './components/collection-list/collection
|
|
|
18
19
|
import { CollectionTreeNodeComponent } from './components/collection-tree/collection-tree-node.component';
|
|
19
20
|
import { CollectionTreeComponent } from './components/collection-tree/collection-tree.component';
|
|
20
21
|
import { ConfirmVariantDeletionDialogComponent } from './components/confirm-variant-deletion-dialog/confirm-variant-deletion-dialog.component';
|
|
22
|
+
import { CreateFacetValueDialogComponent } from './components/create-facet-value-dialog/create-facet-value-dialog.component';
|
|
21
23
|
import { CreateProductOptionGroupDialogComponent } from './components/create-product-option-group-dialog/create-product-option-group-dialog.component';
|
|
22
24
|
import { CreateProductVariantDialogComponent } from './components/create-product-variant-dialog/create-product-variant-dialog.component';
|
|
23
25
|
import { FacetDetailComponent } from './components/facet-detail/facet-detail.component';
|
|
@@ -74,6 +76,7 @@ const CATALOG_COMPONENTS = [
|
|
|
74
76
|
CreateProductVariantDialogComponent,
|
|
75
77
|
CreateProductOptionGroupDialogComponent,
|
|
76
78
|
ProductVariantQuickJumpComponent,
|
|
79
|
+
CreateFacetValueDialogComponent,
|
|
77
80
|
];
|
|
78
81
|
export class CatalogModule {
|
|
79
82
|
static { this.hasRegisteredTabsAndBulkActions = false; }
|
|
@@ -162,6 +165,15 @@ export class CatalogModule {
|
|
|
162
165
|
component: detailComponentWithResolver({
|
|
163
166
|
component: FacetDetailComponent,
|
|
164
167
|
query: GetFacetDetailDocument,
|
|
168
|
+
variables: {
|
|
169
|
+
facetValueListOptions: {
|
|
170
|
+
take: 10,
|
|
171
|
+
skip: 0,
|
|
172
|
+
sort: {
|
|
173
|
+
createdAt: SortOrder.DESC,
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
},
|
|
165
177
|
entityKey: 'facet',
|
|
166
178
|
getBreadcrumbs: entity => [
|
|
167
179
|
{
|
|
@@ -253,7 +265,8 @@ export class CatalogModule {
|
|
|
253
265
|
ProductVariantDetailComponent,
|
|
254
266
|
CreateProductVariantDialogComponent,
|
|
255
267
|
CreateProductOptionGroupDialogComponent,
|
|
256
|
-
ProductVariantQuickJumpComponent
|
|
268
|
+
ProductVariantQuickJumpComponent,
|
|
269
|
+
CreateFacetValueDialogComponent], imports: [SharedModule, i2.RouterModule], exports: [ProductListComponent,
|
|
257
270
|
ProductDetailComponent,
|
|
258
271
|
FacetListComponent,
|
|
259
272
|
FacetDetailComponent,
|
|
@@ -284,7 +297,8 @@ export class CatalogModule {
|
|
|
284
297
|
ProductVariantDetailComponent,
|
|
285
298
|
CreateProductVariantDialogComponent,
|
|
286
299
|
CreateProductOptionGroupDialogComponent,
|
|
287
|
-
ProductVariantQuickJumpComponent
|
|
300
|
+
ProductVariantQuickJumpComponent,
|
|
301
|
+
CreateFacetValueDialogComponent] }); }
|
|
288
302
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CatalogModule, providers: [
|
|
289
303
|
{
|
|
290
304
|
provide: ROUTES,
|
|
@@ -310,4 +324,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
310
324
|
],
|
|
311
325
|
}]
|
|
312
326
|
}], ctorParameters: function () { return [{ type: i1.BulkActionRegistryService }, { type: i1.PageService }]; } });
|
|
313
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NhdGFsb2cvc3JjL2NhdGFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFDSCx3QkFBd0IsRUFFeEIsNkJBQTZCLEVBQzdCLDJCQUEyQixFQUMzQixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLCtCQUErQixFQUMvQixXQUFXLEVBQ1gsWUFBWSxHQUNmLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSw0RkFBNEYsQ0FBQztBQUNwSixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQztBQUNySSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM3RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUNsSCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5REFB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c0NBQXNDO1lBQ3RDLG9CQUFvQjtZQUNwQixxQ0FBcUM7WUFDckMsNkJBQTZCO1lBQzdCLGlDQUFpQztZQUNqQyw0QkFBNEI7WUFDNUIsd0JBQXdCO1lBQ3hCLDhCQUE4QjtZQUM5QiwyQkFBMkI7WUFDM0Isc0JBQXNCO1lBQ3RCLDZCQUE2QjtZQUM3QixtQ0FBbUM7WUFDbkMsdUNBQXVDO1lBQ3ZDLGdDQUFnQzsrR0FnQnZCLGFBQWEsYUFUWDtZQUNQO2dCQUNJLE9BQU8sRUFBRSxNQUFNO2dCQUNmLFVBQVUsRUFBRSxDQUFDLFdBQXdCLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7Z0JBQ25FLEtBQUssRUFBRSxJQUFJO2dCQUNYLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQzthQUN0QjtTQUNKLFlBVlMsWUFBWSxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDOzsyRkFZeEMsYUFBYTtrQkFiekIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDbEQsT0FBTyxFQUFFLENBQUMsR0FBRyxrQkFBa0IsQ0FBQztvQkFDaEMsWUFBWSxFQUFFLENBQUMsR0FBRyxrQkFBa0IsQ0FBQztvQkFDckMsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxNQUFNOzRCQUNmLFVBQVUsRUFBRSxDQUFDLFdBQXdCLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7NEJBQ25FLEtBQUssRUFBRSxJQUFJOzRCQUNYLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQzt5QkFDdEI7cUJBQ0o7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJPVVRFUyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcclxuaW1wb3J0IHtcclxuICAgIEFzc2V0RGV0YWlsUXVlcnlEb2N1bWVudCxcclxuICAgIEJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UsXHJcbiAgICBDb2xsZWN0aW9uRGV0YWlsUXVlcnlEb2N1bWVudCxcclxuICAgIGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcixcclxuICAgIEdldEZhY2V0RGV0YWlsRG9jdW1lbnQsXHJcbiAgICBHZXRQcm9kdWN0RGV0YWlsRG9jdW1lbnQsXHJcbiAgICBHZXRQcm9kdWN0VmFyaWFudERldGFpbERvY3VtZW50LFxyXG4gICAgUGFnZVNlcnZpY2UsXHJcbiAgICBTaGFyZWRNb2R1bGUsXHJcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBjcmVhdGVSb3V0ZXMgfSBmcm9tICcuL2NhdGFsb2cucm91dGVzJztcclxuaW1wb3J0IHsgQXBwbHlGYWNldERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hcHBseS1mYWNldC1kaWFsb2cvYXBwbHktZmFjZXQtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFzc2V0RGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Fzc2V0LWRldGFpbC9hc3NldC1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXNzZXRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Fzc2V0LWxpc3QvYXNzZXQtbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBc3NldHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXNzZXRzL2Fzc2V0cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBc3NpZ25Qcm9kdWN0c1RvQ2hhbm5lbERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NpZ24tcHJvZHVjdHMtdG8tY2hhbm5lbC1kaWFsb2cvYXNzaWduLXByb2R1Y3RzLXRvLWNoYW5uZWwtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJ1bGtBZGRGYWNldFZhbHVlc0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9idWxrLWFkZC1mYWNldC12YWx1ZXMtZGlhbG9nL2J1bGstYWRkLWZhY2V0LXZhbHVlcy1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29sbGVjdGlvbkNvbnRlbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tY29udGVudHMvY29sbGVjdGlvbi1jb250ZW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uRGF0YVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tZGF0YS10YWJsZS9jb2xsZWN0aW9uLWRhdGEtdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29sbGVjdGlvbkRldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2xsZWN0aW9uLWRldGFpbC9jb2xsZWN0aW9uLWRldGFpbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uQnJlYWRjcnVtYlBpcGUgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1saXN0L2NvbGxlY3Rpb24tYnJlYWRjcnVtYi5waXBlJztcclxuaW1wb3J0IHtcclxuICAgIGFzc2lnbkNvbGxlY3Rpb25zVG9DaGFubmVsQnVsa0FjdGlvbixcclxuICAgIGRlbGV0ZUNvbGxlY3Rpb25zQnVsa0FjdGlvbixcclxuICAgIG1vdmVDb2xsZWN0aW9uc0J1bGtBY3Rpb24sXHJcbiAgICByZW1vdmVDb2xsZWN0aW9uc0Zyb21DaGFubmVsQnVsa0FjdGlvbixcclxufSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1saXN0L2NvbGxlY3Rpb24tbGlzdC1idWxrLWFjdGlvbnMnO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uTGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2xsZWN0aW9uLWxpc3QvY29sbGVjdGlvbi1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbGxlY3Rpb25UcmVlTm9kZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2xsZWN0aW9uLXRyZWUvY29sbGVjdGlvbi10cmVlLW5vZGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29sbGVjdGlvblRyZWVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi10cmVlL2NvbGxlY3Rpb24tdHJlZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb25maXJtVmFyaWFudERlbGV0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbmZpcm0tdmFyaWFudC1kZWxldGlvbi1kaWFsb2cvY29uZmlybS12YXJpYW50LWRlbGV0aW9uLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDcmVhdGVQcm9kdWN0T3B0aW9uR3JvdXBEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3JlYXRlLXByb2R1Y3Qtb3B0aW9uLWdyb3VwLWRpYWxvZy9jcmVhdGUtcHJvZHVjdC1vcHRpb24tZ3JvdXAtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENyZWF0ZVByb2R1Y3RWYXJpYW50RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NyZWF0ZS1wcm9kdWN0LXZhcmlhbnQtZGlhbG9nL2NyZWF0ZS1wcm9kdWN0LXZhcmlhbnQtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZhY2V0RGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhY2V0LWRldGFpbC9mYWNldC1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICAgIGFzc2lnbkZhY2V0c1RvQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbiAgICBkZWxldGVGYWNldHNCdWxrQWN0aW9uLFxyXG4gICAgcmVtb3ZlRmFjZXRzRnJvbUNoYW5uZWxCdWxrQWN0aW9uLFxyXG59IGZyb20gJy4vY29tcG9uZW50cy9mYWNldC1saXN0L2ZhY2V0LWxpc3QtYnVsay1hY3Rpb25zJztcclxuaW1wb3J0IHsgRmFjZXRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhY2V0LWxpc3QvZmFjZXQtbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBHZW5lcmF0ZVByb2R1Y3RWYXJpYW50c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9nZW5lcmF0ZS1wcm9kdWN0LXZhcmlhbnRzL2dlbmVyYXRlLXByb2R1Y3QtdmFyaWFudHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTW92ZUNvbGxlY3Rpb25zRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21vdmUtY29sbGVjdGlvbnMtZGlhbG9nL21vdmUtY29sbGVjdGlvbnMtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE9wdGlvblZhbHVlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvb3B0aW9uLXZhbHVlLWlucHV0L29wdGlvbi12YWx1ZS1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcm9kdWN0RGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3QtZGV0YWlsL3Byb2R1Y3QtZGV0YWlsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgICBhc3NpZ25GYWNldFZhbHVlc1RvUHJvZHVjdHNCdWxrQWN0aW9uLFxyXG4gICAgYXNzaWduUHJvZHVjdHNUb0NoYW5uZWxCdWxrQWN0aW9uLFxyXG4gICAgZGVsZXRlUHJvZHVjdHNCdWxrQWN0aW9uLFxyXG4gICAgcmVtb3ZlUHJvZHVjdHNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbn0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3QtbGlzdC9wcm9kdWN0LWxpc3QtYnVsay1hY3Rpb25zJztcclxuaW1wb3J0IHsgUHJvZHVjdExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1saXN0L3Byb2R1Y3QtbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcm9kdWN0T3B0aW9uc0VkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LW9wdGlvbnMtZWRpdG9yL3Byb2R1Y3Qtb3B0aW9ucy1lZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUHJvZHVjdFZhcmlhbnREZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC12YXJpYW50LWRldGFpbC9wcm9kdWN0LXZhcmlhbnQtZGV0YWlsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgICBhc3NpZ25Qcm9kdWN0VmFyaWFudHNUb0NoYW5uZWxCdWxrQWN0aW9uLFxyXG4gICAgZGVsZXRlUHJvZHVjdFZhcmlhbnRzQnVsa0FjdGlvbixcclxuICAgIHJlbW92ZVByb2R1Y3RWYXJpYW50c0Zyb21DaGFubmVsQnVsa0FjdGlvbixcclxufSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC12YXJpYW50LWxpc3QvcHJvZHVjdC12YXJpYW50LWxpc3QtYnVsay1hY3Rpb25zJztcclxuaW1wb3J0IHsgUHJvZHVjdFZhcmlhbnRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3QtdmFyaWFudC1saXN0L3Byb2R1Y3QtdmFyaWFudC1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb2R1Y3RWYXJpYW50UXVpY2tKdW1wQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3QtdmFyaWFudC1xdWljay1qdW1wL3Byb2R1Y3QtdmFyaWFudC1xdWljay1qdW1wLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb2R1Y3RWYXJpYW50c0VkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnRzLWVkaXRvci9wcm9kdWN0LXZhcmlhbnRzLWVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcm9kdWN0VmFyaWFudHNUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnRzLXRhYmxlL3Byb2R1Y3QtdmFyaWFudHMtdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVXBkYXRlUHJvZHVjdE9wdGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91cGRhdGUtcHJvZHVjdC1vcHRpb24tZGlhbG9nL3VwZGF0ZS1wcm9kdWN0LW9wdGlvbi1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVmFyaWFudFByaWNlRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ZhcmlhbnQtcHJpY2UtZGV0YWlsL3ZhcmlhbnQtcHJpY2UtZGV0YWlsLmNvbXBvbmVudCc7XHJcblxyXG5jb25zdCBDQVRBTE9HX0NPTVBPTkVOVFMgPSBbXHJcbiAgICBQcm9kdWN0TGlzdENvbXBvbmVudCxcclxuICAgIFByb2R1Y3REZXRhaWxDb21wb25lbnQsXHJcbiAgICBGYWNldExpc3RDb21wb25lbnQsXHJcbiAgICBGYWNldERldGFpbENvbXBvbmVudCxcclxuICAgIEdlbmVyYXRlUHJvZHVjdFZhcmlhbnRzQ29tcG9uZW50LFxyXG4gICAgQXBwbHlGYWNldERpYWxvZ0NvbXBvbmVudCxcclxuICAgIEFzc2V0TGlzdENvbXBvbmVudCxcclxuICAgIEFzc2V0c0NvbXBvbmVudCxcclxuICAgIFZhcmlhbnRQcmljZURldGFpbENvbXBvbmVudCxcclxuICAgIENvbGxlY3Rpb25MaXN0Q29tcG9uZW50LFxyXG4gICAgQ29sbGVjdGlvbkRldGFpbENvbXBvbmVudCxcclxuICAgIENvbGxlY3Rpb25UcmVlQ29tcG9uZW50LFxyXG4gICAgQ29sbGVjdGlvblRyZWVOb2RlQ29tcG9uZW50LFxyXG4gICAgQ29sbGVjdGlvbkNvbnRlbnRzQ29tcG9uZW50LFxyXG4gICAgUHJvZHVjdFZhcmlhbnRzVGFibGVDb21wb25lbnQsXHJcbiAgICBPcHRpb25WYWx1ZUlucHV0Q29tcG9uZW50LFxyXG4gICAgVXBkYXRlUHJvZHVjdE9wdGlvbkRpYWxvZ0NvbXBvbmVudCxcclxuICAgIFByb2R1Y3RWYXJpYW50c0VkaXRvckNvbXBvbmVudCxcclxuICAgIEFzc2lnblByb2R1Y3RzVG9DaGFubmVsRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgQXNzZXREZXRhaWxDb21wb25lbnQsXHJcbiAgICBDb25maXJtVmFyaWFudERlbGV0aW9uRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgUHJvZHVjdE9wdGlvbnNFZGl0b3JDb21wb25lbnQsXHJcbiAgICBCdWxrQWRkRmFjZXRWYWx1ZXNEaWFsb2dDb21wb25lbnQsXHJcbiAgICBDb2xsZWN0aW9uRGF0YVRhYmxlQ29tcG9uZW50LFxyXG4gICAgQ29sbGVjdGlvbkJyZWFkY3J1bWJQaXBlLFxyXG4gICAgTW92ZUNvbGxlY3Rpb25zRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgUHJvZHVjdFZhcmlhbnRMaXN0Q29tcG9uZW50LFxyXG4gICAgUHJvZHVjdERldGFpbENvbXBvbmVudCxcclxuICAgIFByb2R1Y3RWYXJpYW50RGV0YWlsQ29tcG9uZW50LFxyXG4gICAgQ3JlYXRlUHJvZHVjdFZhcmlhbnREaWFsb2dDb21wb25lbnQsXHJcbiAgICBDcmVhdGVQcm9kdWN0T3B0aW9uR3JvdXBEaWFsb2dDb21wb25lbnQsXHJcbiAgICBQcm9kdWN0VmFyaWFudFF1aWNrSnVtcENvbXBvbmVudCxcclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbU2hhcmVkTW9kdWxlLCBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQoW10pXSxcclxuICAgIGV4cG9ydHM6IFsuLi5DQVRBTE9HX0NPTVBPTkVOVFNdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbLi4uQ0FUQUxPR19DT01QT05FTlRTXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogUk9VVEVTLFxyXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAocGFnZVNlcnZpY2U6IFBhZ2VTZXJ2aWNlKSA9PiBjcmVhdGVSb3V0ZXMocGFnZVNlcnZpY2UpLFxyXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgICAgZGVwczogW1BhZ2VTZXJ2aWNlXSxcclxuICAgICAgICB9LFxyXG4gICAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENhdGFsb2dNb2R1bGUge1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgaGFzUmVnaXN0ZXJlZFRhYnNBbmRCdWxrQWN0aW9ucyA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2U6IEJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UsIHBhZ2VTZXJ2aWNlOiBQYWdlU2VydmljZSkge1xyXG4gICAgICAgIGlmIChDYXRhbG9nTW9kdWxlLmhhc1JlZ2lzdGVyZWRUYWJzQW5kQnVsa0FjdGlvbnMpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihhc3NpZ25GYWNldFZhbHVlc1RvUHJvZHVjdHNCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihhc3NpZ25Qcm9kdWN0c1RvQ2hhbm5lbEJ1bGtBY3Rpb24pO1xyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGFzc2lnblByb2R1Y3RWYXJpYW50c1RvQ2hhbm5lbEJ1bGtBY3Rpb24pO1xyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKHJlbW92ZVByb2R1Y3RzRnJvbUNoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihyZW1vdmVQcm9kdWN0VmFyaWFudHNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24pO1xyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGRlbGV0ZVByb2R1Y3RzQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oZGVsZXRlUHJvZHVjdFZhcmlhbnRzQnVsa0FjdGlvbik7XHJcblxyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGFzc2lnbkZhY2V0c1RvQ2hhbm5lbEJ1bGtBY3Rpb24pO1xyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKHJlbW92ZUZhY2V0c0Zyb21DaGFubmVsQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oZGVsZXRlRmFjZXRzQnVsa0FjdGlvbik7XHJcblxyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKG1vdmVDb2xsZWN0aW9uc0J1bGtBY3Rpb24pO1xyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGFzc2lnbkNvbGxlY3Rpb25zVG9DaGFubmVsQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24ocmVtb3ZlQ29sbGVjdGlvbnNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24pO1xyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGRlbGV0ZUNvbGxlY3Rpb25zQnVsa0FjdGlvbik7XHJcblxyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ3Byb2R1Y3QtbGlzdCcsXHJcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5wcm9kdWN0cycpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogUHJvZHVjdExpc3RDb21wb25lbnQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAncHJvZHVjdC1kZXRhaWwnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cucHJvZHVjdCcpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyKHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogUHJvZHVjdERldGFpbENvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBHZXRQcm9kdWN0RGV0YWlsRG9jdW1lbnQsXHJcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6ICdwcm9kdWN0JyxcclxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGVudGl0eSA/IGVudGl0eS5uYW1lIDogXygnY2F0YWxvZy5jcmVhdGUtbmV3LXByb2R1Y3QnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogW2VudGl0eT8uaWRdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdwcm9kdWN0LWxpc3QnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cucHJvZHVjdC12YXJpYW50cycpLFxyXG4gICAgICAgICAgICByb3V0ZTogJ3ZhcmlhbnRzJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBQcm9kdWN0VmFyaWFudExpc3RDb21wb25lbnQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAncHJvZHVjdC12YXJpYW50LWRldGFpbCcsXHJcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5wcm9kdWN0LXZhcmlhbnRzJyksXHJcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBkZXRhaWxDb21wb25lbnRXaXRoUmVzb2x2ZXIoe1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBQcm9kdWN0VmFyaWFudERldGFpbENvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBHZXRQcm9kdWN0VmFyaWFudERldGFpbERvY3VtZW50LFxyXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAncHJvZHVjdFZhcmlhbnQnLFxyXG4gICAgICAgICAgICAgICAgZ2V0QnJlYWRjcnVtYnM6IGVudGl0eSA9PiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogYCR7ZW50aXR5Py5wcm9kdWN0Lm5hbWV9YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogWycvY2F0YWxvZycsICdwcm9kdWN0cycsIGVudGl0eT8ucHJvZHVjdC5pZF0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBgJHtlbnRpdHk/Lm5hbWV9ICgke2VudGl0eT8uc2t1fSlgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBbJ3ZhcmlhbnRzJywgZW50aXR5Py5pZF0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ2ZhY2V0LWxpc3QnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cuZmFjZXRzJyksXHJcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBGYWNldExpc3RDb21wb25lbnQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnZmFjZXQtZGV0YWlsJyxcclxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLmZhY2V0JyksXHJcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBkZXRhaWxDb21wb25lbnRXaXRoUmVzb2x2ZXIoe1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBGYWNldERldGFpbENvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBHZXRGYWNldERldGFpbERvY3VtZW50LFxyXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAnZmFjZXQnLFxyXG4gICAgICAgICAgICAgICAgZ2V0QnJlYWRjcnVtYnM6IGVudGl0eSA9PiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogZW50aXR5ID8gZW50aXR5Lm5hbWUgOiBfKCdjYXRhbG9nLmNyZWF0ZS1uZXctZmFjZXQnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogW2VudGl0eT8uaWRdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdjb2xsZWN0aW9uLWxpc3QnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cuY29sbGVjdGlvbnMnKSxcclxuICAgICAgICAgICAgcm91dGU6ICcnLFxyXG4gICAgICAgICAgICBjb21wb25lbnQ6IENvbGxlY3Rpb25MaXN0Q29tcG9uZW50LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ2NvbGxlY3Rpb24tZGV0YWlsJyxcclxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLmNvbGxlY3Rpb24nKSxcclxuICAgICAgICAgICAgcm91dGU6ICcnLFxyXG4gICAgICAgICAgICBjb21wb25lbnQ6IGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcih7XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IENvbGxlY3Rpb25EZXRhaWxDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICBxdWVyeTogQ29sbGVjdGlvbkRldGFpbFF1ZXJ5RG9jdW1lbnQsXHJcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6ICdjb2xsZWN0aW9uJyxcclxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGVudGl0eSA/IGVudGl0eS5uYW1lIDogXygnY2F0YWxvZy5jcmVhdGUtbmV3LWNvbGxlY3Rpb24nKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogW2VudGl0eT8uaWRdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdhc3NldC1saXN0JyxcclxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLmFzc2V0cycpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogQXNzZXRMaXN0Q29tcG9uZW50LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ2Fzc2V0LWRldGFpbCcsXHJcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5hc3NldCcpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyKHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogQXNzZXREZXRhaWxDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICBxdWVyeTogQXNzZXREZXRhaWxRdWVyeURvY3VtZW50LFxyXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAnYXNzZXQnLFxyXG4gICAgICAgICAgICAgICAgZ2V0QnJlYWRjcnVtYnM6IGVudGl0eSA9PiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogYCR7ZW50aXR5Py5uYW1lfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFtlbnRpdHk/LmlkXSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgQ2F0YWxvZ01vZHVsZS5oYXNSZWdpc3RlcmVkVGFic0FuZEJ1bGtBY3Rpb25zID0gdHJ1ZTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
327
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NhdGFsb2cvc3JjL2NhdGFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFDSCx3QkFBd0IsRUFFeEIsNkJBQTZCLEVBQzdCLDJCQUEyQixFQUMzQixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLCtCQUErQixFQUMvQixXQUFXLEVBQ1gsWUFBWSxHQUNmLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sNEZBQTRGLENBQUM7QUFDcEosT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sa0ZBQWtGLENBQUM7QUFDckksT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDN0csT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDbEgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNERBQTRE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LFdBQXdCLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7NEJBQ25FLEtBQUssRUFBRSxJQUFJOzRCQUNYLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQzt5QkFDdEI7cUJBQ0o7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJPVVRFUyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcclxuaW1wb3J0IHtcclxuICAgIEFzc2V0RGV0YWlsUXVlcnlEb2N1bWVudCxcclxuICAgIEJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UsXHJcbiAgICBDb2xsZWN0aW9uRGV0YWlsUXVlcnlEb2N1bWVudCxcclxuICAgIGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcixcclxuICAgIEdldEZhY2V0RGV0YWlsRG9jdW1lbnQsXHJcbiAgICBHZXRQcm9kdWN0RGV0YWlsRG9jdW1lbnQsXHJcbiAgICBHZXRQcm9kdWN0VmFyaWFudERldGFpbERvY3VtZW50LFxyXG4gICAgUGFnZVNlcnZpY2UsXHJcbiAgICBTaGFyZWRNb2R1bGUsXHJcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcbmltcG9ydCB7IFNvcnRPcmRlciB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvZ2VuZXJhdGVkLXR5cGVzJztcclxuXHJcbmltcG9ydCB7IGNyZWF0ZVJvdXRlcyB9IGZyb20gJy4vY2F0YWxvZy5yb3V0ZXMnO1xyXG5pbXBvcnQgeyBBcHBseUZhY2V0RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FwcGx5LWZhY2V0LWRpYWxvZy9hcHBseS1mYWNldC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXNzZXREZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXNzZXQtZGV0YWlsL2Fzc2V0LWRldGFpbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBc3NldExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXNzZXQtbGlzdC9hc3NldC1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFzc2V0c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NldHMvYXNzZXRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFzc2lnblByb2R1Y3RzVG9DaGFubmVsRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Fzc2lnbi1wcm9kdWN0cy10by1jaGFubmVsLWRpYWxvZy9hc3NpZ24tcHJvZHVjdHMtdG8tY2hhbm5lbC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnVsa0FkZEZhY2V0VmFsdWVzRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2J1bGstYWRkLWZhY2V0LXZhbHVlcy1kaWFsb2cvYnVsay1hZGQtZmFjZXQtdmFsdWVzLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uQ29udGVudHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1jb250ZW50cy9jb2xsZWN0aW9uLWNvbnRlbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbGxlY3Rpb25EYXRhVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1kYXRhLXRhYmxlL2NvbGxlY3Rpb24tZGF0YS10YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tZGV0YWlsL2NvbGxlY3Rpb24tZGV0YWlsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbGxlY3Rpb25CcmVhZGNydW1iUGlwZSB9IGZyb20gJy4vY29tcG9uZW50cy9jb2xsZWN0aW9uLWxpc3QvY29sbGVjdGlvbi1icmVhZGNydW1iLnBpcGUnO1xyXG5pbXBvcnQge1xyXG4gICAgYXNzaWduQ29sbGVjdGlvbnNUb0NoYW5uZWxCdWxrQWN0aW9uLFxyXG4gICAgZGVsZXRlQ29sbGVjdGlvbnNCdWxrQWN0aW9uLFxyXG4gICAgbW92ZUNvbGxlY3Rpb25zQnVsa0FjdGlvbixcclxuICAgIHJlbW92ZUNvbGxlY3Rpb25zRnJvbUNoYW5uZWxCdWxrQWN0aW9uLFxyXG59IGZyb20gJy4vY29tcG9uZW50cy9jb2xsZWN0aW9uLWxpc3QvY29sbGVjdGlvbi1saXN0LWJ1bGstYWN0aW9ucyc7XHJcbmltcG9ydCB7IENvbGxlY3Rpb25MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tbGlzdC9jb2xsZWN0aW9uLWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29sbGVjdGlvblRyZWVOb2RlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tdHJlZS9jb2xsZWN0aW9uLXRyZWUtbm9kZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uVHJlZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2xsZWN0aW9uLXRyZWUvY29sbGVjdGlvbi10cmVlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbmZpcm1WYXJpYW50RGVsZXRpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29uZmlybS12YXJpYW50LWRlbGV0aW9uLWRpYWxvZy9jb25maXJtLXZhcmlhbnQtZGVsZXRpb24tZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENyZWF0ZUZhY2V0VmFsdWVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3JlYXRlLWZhY2V0LXZhbHVlLWRpYWxvZy9jcmVhdGUtZmFjZXQtdmFsdWUtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENyZWF0ZVByb2R1Y3RPcHRpb25Hcm91cERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jcmVhdGUtcHJvZHVjdC1vcHRpb24tZ3JvdXAtZGlhbG9nL2NyZWF0ZS1wcm9kdWN0LW9wdGlvbi1ncm91cC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3JlYXRlUHJvZHVjdFZhcmlhbnREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3JlYXRlLXByb2R1Y3QtdmFyaWFudC1kaWFsb2cvY3JlYXRlLXByb2R1Y3QtdmFyaWFudC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmFjZXREZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFjZXQtZGV0YWlsL2ZhY2V0LWRldGFpbC5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gICAgYXNzaWduRmFjZXRzVG9DaGFubmVsQnVsa0FjdGlvbixcclxuICAgIGRlbGV0ZUZhY2V0c0J1bGtBY3Rpb24sXHJcbiAgICByZW1vdmVGYWNldHNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbn0gZnJvbSAnLi9jb21wb25lbnRzL2ZhY2V0LWxpc3QvZmFjZXQtbGlzdC1idWxrLWFjdGlvbnMnO1xyXG5pbXBvcnQgeyBGYWNldExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFjZXQtbGlzdC9mYWNldC1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdlbmVyYXRlUHJvZHVjdFZhcmlhbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dlbmVyYXRlLXByb2R1Y3QtdmFyaWFudHMvZ2VuZXJhdGUtcHJvZHVjdC12YXJpYW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNb3ZlQ29sbGVjdGlvbnNEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbW92ZS1jb2xsZWN0aW9ucy1kaWFsb2cvbW92ZS1jb2xsZWN0aW9ucy1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT3B0aW9uVmFsdWVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9vcHRpb24tdmFsdWUtaW5wdXQvb3B0aW9uLXZhbHVlLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb2R1Y3REZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWwvcHJvZHVjdC1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICAgIGFzc2lnbkZhY2V0VmFsdWVzVG9Qcm9kdWN0c0J1bGtBY3Rpb24sXHJcbiAgICBhc3NpZ25Qcm9kdWN0c1RvQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbiAgICBkZWxldGVQcm9kdWN0c0J1bGtBY3Rpb24sXHJcbiAgICByZW1vdmVQcm9kdWN0c0Zyb21DaGFubmVsQnVsa0FjdGlvbixcclxufSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1saXN0L3Byb2R1Y3QtbGlzdC1idWxrLWFjdGlvbnMnO1xyXG5pbXBvcnQgeyBQcm9kdWN0TGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LWxpc3QvcHJvZHVjdC1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb2R1Y3RPcHRpb25zRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3Qtb3B0aW9ucy1lZGl0b3IvcHJvZHVjdC1vcHRpb25zLWVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcm9kdWN0VmFyaWFudERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnQtZGV0YWlsL3Byb2R1Y3QtdmFyaWFudC1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICAgIGFzc2lnblByb2R1Y3RWYXJpYW50c1RvQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbiAgICBkZWxldGVQcm9kdWN0VmFyaWFudHNCdWxrQWN0aW9uLFxyXG4gICAgcmVtb3ZlUHJvZHVjdFZhcmlhbnRzRnJvbUNoYW5uZWxCdWxrQWN0aW9uLFxyXG59IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnQtbGlzdC9wcm9kdWN0LXZhcmlhbnQtbGlzdC1idWxrLWFjdGlvbnMnO1xyXG5pbXBvcnQgeyBQcm9kdWN0VmFyaWFudExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC12YXJpYW50LWxpc3QvcHJvZHVjdC12YXJpYW50LWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUHJvZHVjdFZhcmlhbnRRdWlja0p1bXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC12YXJpYW50LXF1aWNrLWp1bXAvcHJvZHVjdC12YXJpYW50LXF1aWNrLWp1bXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUHJvZHVjdFZhcmlhbnRzRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3QtdmFyaWFudHMtZWRpdG9yL3Byb2R1Y3QtdmFyaWFudHMtZWRpdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb2R1Y3RWYXJpYW50c1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3QtdmFyaWFudHMtdGFibGUvcHJvZHVjdC12YXJpYW50cy10YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVcGRhdGVQcm9kdWN0T3B0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VwZGF0ZS1wcm9kdWN0LW9wdGlvbi1kaWFsb2cvdXBkYXRlLXByb2R1Y3Qtb3B0aW9uLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWYXJpYW50UHJpY2VEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdmFyaWFudC1wcmljZS1kZXRhaWwvdmFyaWFudC1wcmljZS1kZXRhaWwuY29tcG9uZW50JztcclxuXHJcbmNvbnN0IENBVEFMT0dfQ09NUE9ORU5UUyA9IFtcclxuICAgIFByb2R1Y3RMaXN0Q29tcG9uZW50LFxyXG4gICAgUHJvZHVjdERldGFpbENvbXBvbmVudCxcclxuICAgIEZhY2V0TGlzdENvbXBvbmVudCxcclxuICAgIEZhY2V0RGV0YWlsQ29tcG9uZW50LFxyXG4gICAgR2VuZXJhdGVQcm9kdWN0VmFyaWFudHNDb21wb25lbnQsXHJcbiAgICBBcHBseUZhY2V0RGlhbG9nQ29tcG9uZW50LFxyXG4gICAgQXNzZXRMaXN0Q29tcG9uZW50LFxyXG4gICAgQXNzZXRzQ29tcG9uZW50LFxyXG4gICAgVmFyaWFudFByaWNlRGV0YWlsQ29tcG9uZW50LFxyXG4gICAgQ29sbGVjdGlvbkxpc3RDb21wb25lbnQsXHJcbiAgICBDb2xsZWN0aW9uRGV0YWlsQ29tcG9uZW50LFxyXG4gICAgQ29sbGVjdGlvblRyZWVDb21wb25lbnQsXHJcbiAgICBDb2xsZWN0aW9uVHJlZU5vZGVDb21wb25lbnQsXHJcbiAgICBDb2xsZWN0aW9uQ29udGVudHNDb21wb25lbnQsXHJcbiAgICBQcm9kdWN0VmFyaWFudHNUYWJsZUNvbXBvbmVudCxcclxuICAgIE9wdGlvblZhbHVlSW5wdXRDb21wb25lbnQsXHJcbiAgICBVcGRhdGVQcm9kdWN0T3B0aW9uRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgUHJvZHVjdFZhcmlhbnRzRWRpdG9yQ29tcG9uZW50LFxyXG4gICAgQXNzaWduUHJvZHVjdHNUb0NoYW5uZWxEaWFsb2dDb21wb25lbnQsXHJcbiAgICBBc3NldERldGFpbENvbXBvbmVudCxcclxuICAgIENvbmZpcm1WYXJpYW50RGVsZXRpb25EaWFsb2dDb21wb25lbnQsXHJcbiAgICBQcm9kdWN0T3B0aW9uc0VkaXRvckNvbXBvbmVudCxcclxuICAgIEJ1bGtBZGRGYWNldFZhbHVlc0RpYWxvZ0NvbXBvbmVudCxcclxuICAgIENvbGxlY3Rpb25EYXRhVGFibGVDb21wb25lbnQsXHJcbiAgICBDb2xsZWN0aW9uQnJlYWRjcnVtYlBpcGUsXHJcbiAgICBNb3ZlQ29sbGVjdGlvbnNEaWFsb2dDb21wb25lbnQsXHJcbiAgICBQcm9kdWN0VmFyaWFudExpc3RDb21wb25lbnQsXHJcbiAgICBQcm9kdWN0RGV0YWlsQ29tcG9uZW50LFxyXG4gICAgUHJvZHVjdFZhcmlhbnREZXRhaWxDb21wb25lbnQsXHJcbiAgICBDcmVhdGVQcm9kdWN0VmFyaWFudERpYWxvZ0NvbXBvbmVudCxcclxuICAgIENyZWF0ZVByb2R1Y3RPcHRpb25Hcm91cERpYWxvZ0NvbXBvbmVudCxcclxuICAgIFByb2R1Y3RWYXJpYW50UXVpY2tKdW1wQ29tcG9uZW50LFxyXG4gICAgQ3JlYXRlRmFjZXRWYWx1ZURpYWxvZ0NvbXBvbmVudCxcclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbU2hhcmVkTW9kdWxlLCBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQoW10pXSxcclxuICAgIGV4cG9ydHM6IFsuLi5DQVRBTE9HX0NPTVBPTkVOVFNdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbLi4uQ0FUQUxPR19DT01QT05FTlRTXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogUk9VVEVTLFxyXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAocGFnZVNlcnZpY2U6IFBhZ2VTZXJ2aWNlKSA9PiBjcmVhdGVSb3V0ZXMocGFnZVNlcnZpY2UpLFxyXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgICAgZGVwczogW1BhZ2VTZXJ2aWNlXSxcclxuICAgICAgICB9LFxyXG4gICAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENhdGFsb2dNb2R1bGUge1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgaGFzUmVnaXN0ZXJlZFRhYnNBbmRCdWxrQWN0aW9ucyA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2U6IEJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UsIHBhZ2VTZXJ2aWNlOiBQYWdlU2VydmljZSkge1xyXG4gICAgICAgIGlmIChDYXRhbG9nTW9kdWxlLmhhc1JlZ2lzdGVyZWRUYWJzQW5kQnVsa0FjdGlvbnMpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihhc3NpZ25GYWNldFZhbHVlc1RvUHJvZHVjdHNCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihhc3NpZ25Qcm9kdWN0c1RvQ2hhbm5lbEJ1bGtBY3Rpb24pO1xyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGFzc2lnblByb2R1Y3RWYXJpYW50c1RvQ2hhbm5lbEJ1bGtBY3Rpb24pO1xyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKHJlbW92ZVByb2R1Y3RzRnJvbUNoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihyZW1vdmVQcm9kdWN0VmFyaWFudHNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24pO1xyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGRlbGV0ZVByb2R1Y3RzQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oZGVsZXRlUHJvZHVjdFZhcmlhbnRzQnVsa0FjdGlvbik7XHJcblxyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGFzc2lnbkZhY2V0c1RvQ2hhbm5lbEJ1bGtBY3Rpb24pO1xyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKHJlbW92ZUZhY2V0c0Zyb21DaGFubmVsQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oZGVsZXRlRmFjZXRzQnVsa0FjdGlvbik7XHJcblxyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKG1vdmVDb2xsZWN0aW9uc0J1bGtBY3Rpb24pO1xyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGFzc2lnbkNvbGxlY3Rpb25zVG9DaGFubmVsQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24ocmVtb3ZlQ29sbGVjdGlvbnNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24pO1xyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGRlbGV0ZUNvbGxlY3Rpb25zQnVsa0FjdGlvbik7XHJcblxyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ3Byb2R1Y3QtbGlzdCcsXHJcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5wcm9kdWN0cycpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogUHJvZHVjdExpc3RDb21wb25lbnQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAncHJvZHVjdC1kZXRhaWwnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cucHJvZHVjdCcpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyKHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogUHJvZHVjdERldGFpbENvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBHZXRQcm9kdWN0RGV0YWlsRG9jdW1lbnQsXHJcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6ICdwcm9kdWN0JyxcclxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGVudGl0eSA/IGVudGl0eS5uYW1lIDogXygnY2F0YWxvZy5jcmVhdGUtbmV3LXByb2R1Y3QnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogW2VudGl0eT8uaWRdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdwcm9kdWN0LWxpc3QnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cucHJvZHVjdC12YXJpYW50cycpLFxyXG4gICAgICAgICAgICByb3V0ZTogJ3ZhcmlhbnRzJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBQcm9kdWN0VmFyaWFudExpc3RDb21wb25lbnQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAncHJvZHVjdC12YXJpYW50LWRldGFpbCcsXHJcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5wcm9kdWN0LXZhcmlhbnRzJyksXHJcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBkZXRhaWxDb21wb25lbnRXaXRoUmVzb2x2ZXIoe1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBQcm9kdWN0VmFyaWFudERldGFpbENvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBHZXRQcm9kdWN0VmFyaWFudERldGFpbERvY3VtZW50LFxyXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAncHJvZHVjdFZhcmlhbnQnLFxyXG4gICAgICAgICAgICAgICAgZ2V0QnJlYWRjcnVtYnM6IGVudGl0eSA9PiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogYCR7ZW50aXR5Py5wcm9kdWN0Lm5hbWV9YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogWycvY2F0YWxvZycsICdwcm9kdWN0cycsIGVudGl0eT8ucHJvZHVjdC5pZF0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBgJHtlbnRpdHk/Lm5hbWV9ICgke2VudGl0eT8uc2t1fSlgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBbJ3ZhcmlhbnRzJywgZW50aXR5Py5pZF0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ2ZhY2V0LWxpc3QnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cuZmFjZXRzJyksXHJcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBGYWNldExpc3RDb21wb25lbnQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnZmFjZXQtZGV0YWlsJyxcclxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLmZhY2V0JyksXHJcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBkZXRhaWxDb21wb25lbnRXaXRoUmVzb2x2ZXIoe1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBGYWNldERldGFpbENvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBHZXRGYWNldERldGFpbERvY3VtZW50LFxyXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmFjZXRWYWx1ZUxpc3RPcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRha2U6IDEwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBza2lwOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzb3J0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6IFNvcnRPcmRlci5ERVNDLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAnZmFjZXQnLFxyXG4gICAgICAgICAgICAgICAgZ2V0QnJlYWRjcnVtYnM6IGVudGl0eSA9PiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogZW50aXR5ID8gZW50aXR5Lm5hbWUgOiBfKCdjYXRhbG9nLmNyZWF0ZS1uZXctZmFjZXQnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogW2VudGl0eT8uaWRdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdjb2xsZWN0aW9uLWxpc3QnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cuY29sbGVjdGlvbnMnKSxcclxuICAgICAgICAgICAgcm91dGU6ICcnLFxyXG4gICAgICAgICAgICBjb21wb25lbnQ6IENvbGxlY3Rpb25MaXN0Q29tcG9uZW50LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ2NvbGxlY3Rpb24tZGV0YWlsJyxcclxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLmNvbGxlY3Rpb24nKSxcclxuICAgICAgICAgICAgcm91dGU6ICcnLFxyXG4gICAgICAgICAgICBjb21wb25lbnQ6IGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcih7XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IENvbGxlY3Rpb25EZXRhaWxDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICBxdWVyeTogQ29sbGVjdGlvbkRldGFpbFF1ZXJ5RG9jdW1lbnQsXHJcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6ICdjb2xsZWN0aW9uJyxcclxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGVudGl0eSA/IGVudGl0eS5uYW1lIDogXygnY2F0YWxvZy5jcmVhdGUtbmV3LWNvbGxlY3Rpb24nKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogW2VudGl0eT8uaWRdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdhc3NldC1saXN0JyxcclxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLmFzc2V0cycpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogQXNzZXRMaXN0Q29tcG9uZW50LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ2Fzc2V0LWRldGFpbCcsXHJcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5hc3NldCcpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyKHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogQXNzZXREZXRhaWxDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICBxdWVyeTogQXNzZXREZXRhaWxRdWVyeURvY3VtZW50LFxyXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAnYXNzZXQnLFxyXG4gICAgICAgICAgICAgICAgZ2V0QnJlYWRjcnVtYnM6IGVudGl0eSA9PiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogYCR7ZW50aXR5Py5uYW1lfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFtlbnRpdHk/LmlkXSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgQ2F0YWxvZ01vZHVsZS5oYXNSZWdpc3RlcmVkVGFic0FuZEJ1bGtBY3Rpb25zID0gdHJ1ZTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -93,7 +93,7 @@ export class AssignProductsToChannelDialogComponent {
|
|
|
93
93
|
}).single$)).productVariants.items;
|
|
94
94
|
}
|
|
95
95
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: AssignProductsToChannelDialogComponent, deps: [{ token: i1.DataService }, { token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
96
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: AssignProductsToChannelDialogComponent, selector: "vdr-assign-products-to-channel-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n <ng-container *ngIf=\"isProductVariantMode; else productModeTitle\">{{\r\n 'catalog.assign-variants-to-channel' | translate\r\n }}</ng-container>\r\n <ng-template #productModeTitle>{{ 'catalog.assign-products-to-channel' | translate }}</ng-template>\r\n</ng-template>\r\n\r\n<div class=\"flex\">\r\n <clr-input-container>\r\n <label>{{ 'common.channel' | translate }}</label>\r\n <vdr-channel-assignment-control\r\n clrInput\r\n [multiple]=\"false\"\r\n [includeDefaultChannel]=\"false\"\r\n [disableChannelIds]=\"currentChannelIds\"\r\n [formControl]=\"selectedChannelIdControl\"\r\n ></vdr-channel-assignment-control>\r\n </clr-input-container>\r\n <div class=\"flex-spacer\"></div>\r\n <clr-input-container>\r\n <label>{{ 'catalog.price-conversion-factor' | translate }}</label>\r\n <input clrInput type=\"number\" min=\"0\" max=\"99999\" [formControl]=\"priceFactorControl\" />\r\n </clr-input-container>\r\n</div>\r\n\r\n<div class=\"channel-price-preview\">\r\n <label class=\"clr-control-label\">{{ 'catalog.channel-price-preview' | translate }}</label>\r\n <table class=\"table\">\r\n <thead>\r\n <tr>\r\n <th>{{ 'common.name' | translate }}</th>\r\n <th>\r\n {{\r\n 'catalog.price-in-channel'\r\n | translate: { channel: currentChannel?.code | channelCodeToLabel | translate }\r\n }}\r\n </th>\r\n <th>\r\n <ng-template [ngIf]=\"selectedChannel\" [ngIfElse]=\"noSelection\">\r\n {{ 'catalog.price-in-channel' | translate: { channel: selectedChannel?.code } }}\r\n </ng-template>\r\n <ng-template #noSelection>\r\n {{ 'catalog.no-channel-selected' | translate }}\r\n </ng-template>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of variantsPreview$ | async\">\r\n <td>{{ row.name }}</td>\r\n <td>{{ row.price | localeCurrency: currentChannel?.defaultCurrencyCode }}</td>\r\n <td>\r\n <ng-template [ngIf]=\"selectedChannel\" [ngIfElse]=\"noChannelSelected\">\r\n {{ row.pricePreview | localeCurrency: selectedChannel?.defaultCurrencyCode }}\r\n </ng-template>\r\n <ng-template #noChannelSelected> - </ng-template>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\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)=\"assign()\" [disabled]=\"!selectedChannel\" class=\"btn btn-primary\">\r\n <ng-template [ngIf]=\"selectedChannel\" [ngIfElse]=\"noSelection\">\r\n {{ 'catalog.assign-to-named-channel' | translate: { channelCode: selectedChannel?.code } }}\r\n </ng-template>\r\n <ng-template #noSelection>\r\n {{ 'catalog.no-channel-selected' | translate }}\r\n </ng-template>\r\n </button>\r\n</ng-template>\r\n", styles: ["vdr-channel-assignment-control{min-width:200px}.channel-price-preview{margin-top:24px}.channel-price-preview table.table{margin-top:6px}\n"], dependencies: [{ kind: "directive", type: i2.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i2.ClrInput, selector: "[clrInput]" }, { kind: "component", type: i2.ClrInputContainer, selector: "clr-input-container" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i4.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "directive", type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "component", type: i1.ChannelAssignmentControlComponent, selector: "vdr-channel-assignment-control", inputs: ["multiple", "includeDefaultChannel", "disableChannelIds"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.ChannelLabelPipe, name: "channelCodeToLabel" }, { kind: "pipe", type: i1.LocaleCurrencyPipe, name: "localeCurrency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
96
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: AssignProductsToChannelDialogComponent, selector: "vdr-assign-products-to-channel-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n <ng-container *ngIf=\"isProductVariantMode; else productModeTitle\">{{\r\n 'catalog.assign-variants-to-channel' | translate\r\n }}</ng-container>\r\n <ng-template #productModeTitle>{{ 'catalog.assign-products-to-channel' | translate }}</ng-template>\r\n</ng-template>\r\n\r\n<div class=\"flex\">\r\n <clr-input-container>\r\n <label>{{ 'common.channel' | translate }}</label>\r\n <vdr-channel-assignment-control\r\n clrInput\r\n [multiple]=\"false\"\r\n [includeDefaultChannel]=\"false\"\r\n [disableChannelIds]=\"currentChannelIds\"\r\n [formControl]=\"selectedChannelIdControl\"\r\n ></vdr-channel-assignment-control>\r\n </clr-input-container>\r\n <div class=\"flex-spacer\"></div>\r\n <clr-input-container>\r\n <label>{{ 'catalog.price-conversion-factor' | translate }}</label>\r\n <input clrInput type=\"number\" min=\"0\" max=\"99999\" [formControl]=\"priceFactorControl\" />\r\n </clr-input-container>\r\n</div>\r\n\r\n<div class=\"channel-price-preview\">\r\n <label class=\"clr-control-label\">{{ 'catalog.channel-price-preview' | translate }}</label>\r\n <table class=\"table\">\r\n <thead>\r\n <tr>\r\n <th>{{ 'common.name' | translate }}</th>\r\n <th>\r\n {{\r\n 'catalog.price-in-channel'\r\n | translate: { channel: currentChannel?.code | channelCodeToLabel | translate }\r\n }}\r\n </th>\r\n <th>\r\n <ng-template [ngIf]=\"selectedChannel\" [ngIfElse]=\"noSelection\">\r\n {{ 'catalog.price-in-channel' | translate: { channel: selectedChannel?.code } }}\r\n </ng-template>\r\n <ng-template #noSelection>\r\n {{ 'catalog.no-channel-selected' | translate }}\r\n </ng-template>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of variantsPreview$ | async\">\r\n <td>{{ row.name }}</td>\r\n <td>{{ row.price | localeCurrency: currentChannel?.defaultCurrencyCode }}</td>\r\n <td>\r\n <ng-template [ngIf]=\"selectedChannel\" [ngIfElse]=\"noChannelSelected\">\r\n {{ row.pricePreview | localeCurrency: selectedChannel?.defaultCurrencyCode }}\r\n </ng-template>\r\n <ng-template #noChannelSelected> - </ng-template>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\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)=\"assign()\" [disabled]=\"!selectedChannel\" class=\"btn btn-primary\">\r\n <ng-template [ngIf]=\"selectedChannel\" [ngIfElse]=\"noSelection\">\r\n {{ 'catalog.assign-to-named-channel' | translate: { channelCode: selectedChannel?.code } }}\r\n </ng-template>\r\n <ng-template #noSelection>\r\n {{ 'catalog.no-channel-selected' | translate }}\r\n </ng-template>\r\n </button>\r\n</ng-template>\r\n", styles: ["vdr-channel-assignment-control{min-width:200px}.channel-price-preview{margin-top:24px}.channel-price-preview table.table{margin-top:6px}\n"], dependencies: [{ kind: "directive", type: i2.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i2.ClrInput, selector: "[clrInput]" }, { kind: "component", type: i2.ClrInputContainer, selector: "clr-input-container" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i4.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "directive", type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "component", type: i1.ChannelAssignmentControlComponent, selector: "vdr-channel-assignment-control", inputs: ["multiple", "includeDefaultChannel", "disableChannelIds"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.ChannelLabelPipe, name: "channelCodeToLabel" }, { kind: "pipe", type: i1.LocaleCurrencyPipe, name: "localeCurrency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
97
97
|
}
|
|
98
98
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: AssignProductsToChannelDialogComponent, decorators: [{
|
|
99
99
|
type: Component,
|