@vendure/admin-ui 2.1.6 → 2.2.0-next.1
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-variant-list/product-variant-list.component.d.ts +2 -2
- package/catalog/public_api.d.ts +1 -0
- package/core/common/generated-types.d.ts +104 -43
- 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/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.d.ts +9 -3
- package/core/core.module.d.ts +1 -1
- package/core/providers/currency/currency.service.d.ts +10 -0
- package/core/providers/i18n/i18n.service.d.ts +6 -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/pipes/locale-currency.pipe.d.ts +5 -2
- package/esm2022/catalog/catalog.module.mjs +17 -3
- package/esm2022/catalog/components/create-facet-value-dialog/create-facet-value-dialog.component.mjs +44 -0
- 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/product-list/product-list.component.mjs +26 -14
- package/esm2022/catalog/components/product-variant-list/product-variant-list.component.mjs +36 -15
- 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/generated-types.mjs +5 -5
- 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 +15 -10
- package/esm2022/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.mjs +42 -273
- package/esm2022/core/core.module.mjs +13 -5
- package/esm2022/core/data/definitions/facet-definitions.mjs +2 -2
- package/esm2022/core/data/definitions/settings-definitions.mjs +2 -1
- package/esm2022/core/providers/currency/currency.service.mjs +21 -0
- package/esm2022/core/providers/i18n/i18n.service.mjs +11 -1
- package/esm2022/core/providers/localization/localization.service.mjs +4 -4
- package/esm2022/core/public_api.mjs +2 -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/pipes/locale-currency.pipe.mjs +11 -7
- package/esm2022/dashboard/widgets/order-summary-widget/order-summary-widget.component.mjs +4 -4
- package/esm2022/react/react-hooks/use-query.mjs +61 -1
- package/fesm2022/vendure-admin-ui-catalog.mjs +197 -148
- package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-core.mjs +130 -317
- package/fesm2022/vendure-admin-ui-core.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-react.mjs +61 -1
- package/fesm2022/vendure-admin-ui-react.mjs.map +1 -1
- package/package.json +14 -14
- package/react/react-hooks/use-query.d.ts +59 -0
- 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 +1 -2
- package/static/i18n-messages/cs.json +1 -2
- package/static/i18n-messages/de.json +1 -2
- package/static/i18n-messages/en.json +1 -2
- package/static/i18n-messages/es.json +1 -2
- package/static/i18n-messages/fa.json +3 -4
- package/static/i18n-messages/fr.json +1 -2
- package/static/i18n-messages/he.json +1 -2
- package/static/i18n-messages/hr.json +1 -2
- package/static/i18n-messages/it.json +2 -3
- package/static/i18n-messages/nb.json +795 -0
- package/static/i18n-messages/ne.json +2 -3
- package/static/i18n-messages/pl.json +1 -2
- package/static/i18n-messages/pt_BR.json +1 -1
- package/static/i18n-messages/pt_PT.json +1 -2
- package/static/i18n-messages/ru.json +1 -2
- package/static/i18n-messages/uk.json +1 -2
- package/static/i18n-messages/zh_Hans.json +1 -2
- package/static/i18n-messages/zh_Hant.json +1 -2
- package/static/vendure-ui-config.json +262 -6
|
@@ -9,7 +9,7 @@ import * as i3 from "@angular/common";
|
|
|
9
9
|
import * as i4 from "@angular/router";
|
|
10
10
|
import * as i5 from "@ngx-translate/core";
|
|
11
11
|
export const FACET_LIST_QUERY = gql `
|
|
12
|
-
query GetFacetList($options: FacetListOptions) {
|
|
12
|
+
query GetFacetList($options: FacetListOptions, $facetValueListOptions: FacetValueListOptions) {
|
|
13
13
|
facets(options: $options) {
|
|
14
14
|
items {
|
|
15
15
|
...FacetWithValueList
|
|
@@ -63,6 +63,9 @@ export class FacetListComponent extends TypedBaseListComponent {
|
|
|
63
63
|
},
|
|
64
64
|
sort: this.sorts.createSortInput(),
|
|
65
65
|
},
|
|
66
|
+
facetValueListOptions: {
|
|
67
|
+
take: 100,
|
|
68
|
+
},
|
|
66
69
|
}),
|
|
67
70
|
refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],
|
|
68
71
|
});
|
|
@@ -85,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
85
88
|
type: Component,
|
|
86
89
|
args: [{ selector: 'vdr-facet-list', template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"facet-list\"></vdr-action-bar-items>\r\n <a\r\n class=\"btn btn-primary\"\r\n [routerLink]=\"['./create']\"\r\n *vdrIfPermissions=\"['CreateCatalog', 'CreateFacet']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'catalog.create-new-facet' | translate }}\r\n </a>\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n id=\"facet-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"facet-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\r\n ></vdr-dt2-search>\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\" [sort]=\"sorts.get('id')\">\r\n <ng-template let-facet=\"item\">\r\n {{ facet.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-facet=\"item\">\r\n {{ facet.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-facet=\"item\">\r\n {{ facet.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('name')\">\r\n <ng-template let-facet=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', facet.id]\"\r\n ><span>{{ facet.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\">\r\n <ng-template let-facet=\"item\">\r\n {{ facet.code }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.visibility' | translate\" id=\"visibility\">\r\n <ng-template let-facet=\"item\">\r\n <vdr-chip *ngIf=\"facet.isPrivate\" colorType=\"warning\">{{\r\n 'common.private' | translate\r\n }}</vdr-chip>\r\n <vdr-chip *ngIf=\"!facet.isPrivate\" colorType=\"success\">{{\r\n 'common.public' | translate\r\n }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'catalog.values' | translate\" id=\"values\">\r\n <ng-template let-facet=\"item\">\r\n <div class=\"facet-values-list\">\r\n <vdr-facet-value-chip\r\n *ngFor=\"let value of facet.valueList.items | slice : 0 : displayLimit[facet.id] || 3\"\r\n [facetValue]=\"value\"\r\n [removable]=\"false\"\r\n [displayFacetName]=\"false\"\r\n ></vdr-facet-value-chip>\r\n <vdr-chip *ngIf=\"displayLimit[facet.id] < facet.valueList.totalItems && (displayLimit[facet.id] || 0) === facet.valueList.items.length\">\r\n ... + {{ facet.valueList.totalItems - facet.valueList.items.length }}\r\n </vdr-chip>\r\n <button\r\n class=\"button-small\"\r\n *ngIf=\"facet.valueList.items.length > initialLimit\"\r\n (click)=\"toggleDisplayLimit(facet)\"\r\n >\r\n <ng-container *ngIf=\"(displayLimit[facet.id] || 0) < facet.valueList.items.length; else collapse\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ facet.valueList.totalItems - initialLimit }}\r\n </ng-container>\r\n <ng-template #collapse>\r\n <clr-icon shape=\"minus\"></clr-icon>\r\n </ng-template>\r\n </button>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column *ngFor=\"let customField of customFields\" [customField]=\"customField\" [sorts]=\"sorts\" />\r\n</vdr-data-table-2>\r\n", styles: [".facet-values-list{max-width:500px;display:flex;flex-wrap:wrap;align-items:center;gap:4px}\n"] }]
|
|
87
90
|
}], ctorParameters: function () { return [{ type: i1.DataService }]; } });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZXQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NhdGFsb2cvc3JjL2NvbXBvbmVudHMvZmFjZXQtbGlzdC9mYWNldC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9mYWNldC1saXN0L2ZhY2V0LWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFFSCw4QkFBOEIsRUFFOUIsb0JBQW9CLEVBSXBCLHNCQUFzQixHQUN6QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQUVyQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7OztNQVM3Qiw4QkFBOEI7Q0FDbkMsQ0FBQztBQU9GLE1BQU0sT0FBTyxrQkFDVCxTQUFRLHNCQUE2RDtJQStCckUsWUFBc0IsV0FBd0I7UUFDMUMsS0FBSyxFQUFFLENBQUM7UUFEVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQTVCckMsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDMUIsaUJBQVksR0FBNkIsRUFBRSxDQUFDO1FBRW5DLGlCQUFZLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELFlBQU8sR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7YUFDM0MsV0FBVyxFQUFFO2FBQ2IsY0FBYyxFQUFFO2FBQ2hCLFNBQVMsQ0FBQztZQUNQLElBQUksRUFBRSxZQUFZO1lBQ2xCLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDekIsS0FBSyxFQUFFLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztZQUM3QixhQUFhLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNyQixTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUU7YUFDNUIsQ0FBQztTQUNMLENBQUM7YUFDRCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQ3hDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkIsVUFBSyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRTthQUN2QyxXQUFXLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQzthQUNoQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDdkIsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDO2FBQzlCLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQzthQUM5QixPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDekIsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ3pCLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDdEMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUk1QixLQUFLLENBQUMsU0FBUyxDQUFDO1lBQ1osUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUM3QixZQUFZLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQixPQUFPLEVBQUU7b0JBQ0wsSUFBSTtvQkFDSixJQUFJO29CQUNKLE1BQU0sRUFBRTt3QkFDSixJQUFJLEVBQUU7NEJBQ0YsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLO3lCQUN6Qzt3QkFDRCxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUU7cUJBQ3RDO29CQUNELElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRTtpQkFDckM7YUFDSixDQUFDO1lBQ0Ysb0JBQW9CLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztTQUM3RSxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBMEM7UUFDekQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDOUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztTQUNuRDthQUFNO1lBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1NBQzlEO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFrQjtRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNqRSxDQUFDOzhHQWhFUSxrQkFBa0I7a0dBQWxCLGtCQUFrQiw2RUMvQi9CLDAwS0FzSEE7OzJGRHZGYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0ksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xyXG5pbXBvcnQge1xyXG4gICAgRGF0YVNlcnZpY2UsXHJcbiAgICBGQUNFVF9XSVRIX1ZBTFVFX0xJU1RfRlJBR01FTlQsXHJcbiAgICBGQUNFVF9XSVRIX1ZBTFVFU19GUkFHTUVOVCxcclxuICAgIEdldEZhY2V0TGlzdERvY3VtZW50LFxyXG4gICAgR2V0RmFjZXRMaXN0UXVlcnksXHJcbiAgICBJdGVtT2YsXHJcbiAgICBMYW5ndWFnZUNvZGUsXHJcbiAgICBUeXBlZEJhc2VMaXN0Q29tcG9uZW50LFxyXG59IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBncWwgfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XHJcblxyXG5leHBvcnQgY29uc3QgRkFDRVRfTElTVF9RVUVSWSA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldEZhY2V0TGlzdCgkb3B0aW9uczogRmFjZXRMaXN0T3B0aW9ucykge1xyXG4gICAgICAgIGZhY2V0cyhvcHRpb25zOiAkb3B0aW9ucykge1xyXG4gICAgICAgICAgICBpdGVtcyB7XHJcbiAgICAgICAgICAgICAgICAuLi5GYWNldFdpdGhWYWx1ZUxpc3RcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0b3RhbEl0ZW1zXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtGQUNFVF9XSVRIX1ZBTFVFX0xJU1RfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWZhY2V0LWxpc3QnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZhY2V0LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZmFjZXQtbGlzdC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmFjZXRMaXN0Q29tcG9uZW50XHJcbiAgICBleHRlbmRzIFR5cGVkQmFzZUxpc3RDb21wb25lbnQ8dHlwZW9mIEdldEZhY2V0TGlzdERvY3VtZW50LCAnZmFjZXRzJz5cclxuICAgIGltcGxlbWVudHMgT25Jbml0XHJcbntcclxuICAgIHJlYWRvbmx5IGluaXRpYWxMaW1pdCA9IDM7XHJcbiAgICBkaXNwbGF5TGltaXQ6IHsgW2lkOiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xyXG5cclxuICAgIHJlYWRvbmx5IGN1c3RvbUZpZWxkcyA9IHRoaXMuZ2V0Q3VzdG9tRmllbGRDb25maWcoJ0ZhY2V0Jyk7XHJcbiAgICByZWFkb25seSBmaWx0ZXJzID0gdGhpcy5jcmVhdGVGaWx0ZXJDb2xsZWN0aW9uKClcclxuICAgICAgICAuYWRkSWRGaWx0ZXIoKVxyXG4gICAgICAgIC5hZGREYXRlRmlsdGVycygpXHJcbiAgICAgICAgLmFkZEZpbHRlcih7XHJcbiAgICAgICAgICAgIG5hbWU6ICd2aXNpYmlsaXR5JyxcclxuICAgICAgICAgICAgdHlwZTogeyBraW5kOiAnYm9vbGVhbicgfSxcclxuICAgICAgICAgICAgbGFiZWw6IF8oJ2NvbW1vbi52aXNpYmlsaXR5JyksXHJcbiAgICAgICAgICAgIHRvRmlsdGVySW5wdXQ6IHZhbHVlID0+ICh7XHJcbiAgICAgICAgICAgICAgICBpc1ByaXZhdGU6IHsgZXE6ICF2YWx1ZSB9LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5hZGRDdXN0b21GaWVsZEZpbHRlcnModGhpcy5jdXN0b21GaWVsZHMpXHJcbiAgICAgICAgLmNvbm5lY3RUb1JvdXRlKHRoaXMucm91dGUpO1xyXG5cclxuICAgIHJlYWRvbmx5IHNvcnRzID0gdGhpcy5jcmVhdGVTb3J0Q29sbGVjdGlvbigpXHJcbiAgICAgICAgLmRlZmF1bHRTb3J0KCdjcmVhdGVkQXQnLCAnREVTQycpXHJcbiAgICAgICAgLmFkZFNvcnQoeyBuYW1lOiAnaWQnIH0pXHJcbiAgICAgICAgLmFkZFNvcnQoeyBuYW1lOiAnY3JlYXRlZEF0JyB9KVxyXG4gICAgICAgIC5hZGRTb3J0KHsgbmFtZTogJ3VwZGF0ZWRBdCcgfSlcclxuICAgICAgICAuYWRkU29ydCh7IG5hbWU6ICduYW1lJyB9KVxyXG4gICAgICAgIC5hZGRTb3J0KHsgbmFtZTogJ2NvZGUnIH0pXHJcbiAgICAgICAgLmFkZEN1c3RvbUZpZWxkU29ydHModGhpcy5jdXN0b21GaWVsZHMpXHJcbiAgICAgICAgLmNvbm5lY3RUb1JvdXRlKHRoaXMucm91dGUpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHN1cGVyLmNvbmZpZ3VyZSh7XHJcbiAgICAgICAgICAgIGRvY3VtZW50OiBHZXRGYWNldExpc3REb2N1bWVudCxcclxuICAgICAgICAgICAgZ2V0SXRlbXM6IGRhdGEgPT4gZGF0YS5mYWNldHMsXHJcbiAgICAgICAgICAgIHNldFZhcmlhYmxlczogKHNraXAsIHRha2UpID0+ICh7XHJcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2tpcCxcclxuICAgICAgICAgICAgICAgICAgICB0YWtlLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluczogdGhpcy5zZWFyY2hUZXJtQ29udHJvbC52YWx1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5maWx0ZXJzLmNyZWF0ZUZpbHRlcklucHV0KCksXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBzb3J0OiB0aGlzLnNvcnRzLmNyZWF0ZVNvcnRJbnB1dCgpLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIHJlZnJlc2hMaXN0T25DaGFuZ2VzOiBbdGhpcy5maWx0ZXJzLnZhbHVlQ2hhbmdlcywgdGhpcy5zb3J0cy52YWx1ZUNoYW5nZXNdLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZURpc3BsYXlMaW1pdChmYWNldDogSXRlbU9mPEdldEZhY2V0TGlzdFF1ZXJ5LCAnZmFjZXRzJz4pIHtcclxuICAgICAgICBpZiAodGhpcy5kaXNwbGF5TGltaXRbZmFjZXQuaWRdID09PSBmYWNldC52YWx1ZUxpc3QuaXRlbXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheUxpbWl0W2ZhY2V0LmlkXSA9IHRoaXMuaW5pdGlhbExpbWl0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheUxpbWl0W2ZhY2V0LmlkXSA9IGZhY2V0LnZhbHVlTGlzdC5pdGVtcy5sZW5ndGg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldExhbmd1YWdlKGNvZGU6IExhbmd1YWdlQ29kZSkge1xyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50LnNldENvbnRlbnRMYW5ndWFnZShjb2RlKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxufVxyXG4iLCI8dmRyLXBhZ2UtYmxvY2s+XHJcbiAgICA8dmRyLWFjdGlvbi1iYXI+XHJcbiAgICAgICAgPHZkci1hYi1sZWZ0PlxyXG4gICAgICAgICAgICA8dmRyLWxhbmd1YWdlLXNlbGVjdG9yXHJcbiAgICAgICAgICAgICAgICBbYXZhaWxhYmxlTGFuZ3VhZ2VDb2Rlc109XCJhdmFpbGFibGVMYW5ndWFnZXMkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgW2N1cnJlbnRMYW5ndWFnZUNvZGVdPVwiY29udGVudExhbmd1YWdlJCB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgIChsYW5ndWFnZUNvZGVDaGFuZ2UpPVwic2V0TGFuZ3VhZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgID48L3Zkci1sYW5ndWFnZS1zZWxlY3Rvcj5cclxuICAgICAgICA8L3Zkci1hYi1sZWZ0PlxyXG4gICAgICAgIDx2ZHItYWItcmlnaHQ+XHJcbiAgICAgICAgICAgIDx2ZHItYWN0aW9uLWJhci1pdGVtcyBsb2NhdGlvbklkPVwiZmFjZXQtbGlzdFwiPjwvdmRyLWFjdGlvbi1iYXItaXRlbXM+XHJcbiAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy4vY3JlYXRlJ11cIlxyXG4gICAgICAgICAgICAgICAgKnZkcklmUGVybWlzc2lvbnM9XCJbJ0NyZWF0ZUNhdGFsb2cnLCAnQ3JlYXRlRmFjZXQnXVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInBsdXNcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAge3sgJ2NhdGFsb2cuY3JlYXRlLW5ldy1mYWNldCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvdmRyLWFiLXJpZ2h0PlxyXG4gICAgPC92ZHItYWN0aW9uLWJhcj5cclxuPC92ZHItcGFnZS1ibG9jaz5cclxuPHZkci1kYXRhLXRhYmxlLTJcclxuICAgIGNsYXNzPVwibXQtMlwiXHJcbiAgICBpZD1cImZhY2V0LWxpc3RcIlxyXG4gICAgW2l0ZW1zXT1cIml0ZW1zJCB8IGFzeW5jXCJcclxuICAgIFtpdGVtc1BlclBhZ2VdPVwiaXRlbXNQZXJQYWdlJCB8IGFzeW5jXCJcclxuICAgIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXMkIHwgYXN5bmNcIlxyXG4gICAgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlJCB8IGFzeW5jXCJcclxuICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxyXG4gICAgKHBhZ2VDaGFuZ2UpPVwic2V0UGFnZU51bWJlcigkZXZlbnQpXCJcclxuICAgIChpdGVtc1BlclBhZ2VDaGFuZ2UpPVwic2V0SXRlbXNQZXJQYWdlKCRldmVudClcIlxyXG4+XHJcbiAgICA8dmRyLWJ1bGstYWN0aW9uLW1lbnVcclxuICAgICAgICBsb2NhdGlvbklkPVwiZmFjZXQtbGlzdFwiXHJcbiAgICAgICAgW2hvc3RDb21wb25lbnRdPVwidGhpc1wiXHJcbiAgICAgICAgW3NlbGVjdGlvbk1hbmFnZXJdPVwic2VsZWN0aW9uTWFuYWdlclwiXHJcbiAgICA+PC92ZHItYnVsay1hY3Rpb24tbWVudT5cclxuICAgIDx2ZHItZHQyLXNlYXJjaFxyXG4gICAgICAgIFtzZWFyY2hUZXJtQ29udHJvbF09XCJzZWFyY2hUZXJtQ29udHJvbFwiXHJcbiAgICAgICAgW3NlYXJjaFRlcm1QbGFjZWhvbGRlcl09XCInY2F0YWxvZy5maWx0ZXItYnktbmFtZScgfCB0cmFuc2xhdGVcIlxyXG4gICAgPjwvdmRyLWR0Mi1zZWFyY2g+XHJcbiAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NvbW1vbi5pZCcgfCB0cmFuc2xhdGVcIiBpZD1cImlkXCIgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCIgW3NvcnRdPVwic29ydHMuZ2V0KCdpZCcpXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1mYWNldD1cIml0ZW1cIj5cclxuICAgICAgICAgICAge3sgZmFjZXQuaWQgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtblxyXG4gICAgICAgIFtoZWFkaW5nXT1cIidjb21tb24uY3JlYXRlZC1hdCcgfCB0cmFuc2xhdGVcIiBpZD1cImNyZWF0ZWQtYXRcIlxyXG4gICAgICAgIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3NvcnRdPVwic29ydHMuZ2V0KCdjcmVhdGVkQXQnKVwiXHJcbiAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1mYWNldD1cIml0ZW1cIj5cclxuICAgICAgICAgICAge3sgZmFjZXQuY3JlYXRlZEF0IHwgbG9jYWxlRGF0ZSA6ICdzaG9ydCcgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtblxyXG4gICAgICAgIFtoZWFkaW5nXT1cIidjb21tb24udXBkYXRlZC1hdCcgfCB0cmFuc2xhdGVcIiBpZD1cInVwZGF0ZWQtYXRcIlxyXG4gICAgICAgIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3NvcnRdPVwic29ydHMuZ2V0KCd1cGRhdGVkQXQnKVwiXHJcbiAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1mYWNldD1cIml0ZW1cIj5cclxuICAgICAgICAgICAge3sgZmFjZXQudXBkYXRlZEF0IHwgbG9jYWxlRGF0ZSA6ICdzaG9ydCcgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLm5hbWUnIHwgdHJhbnNsYXRlXCIgaWQ9XCJuYW1lXCIgW29wdGlvbmFsXT1cImZhbHNlXCIgW3NvcnRdPVwic29ydHMuZ2V0KCduYW1lJylcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWZhY2V0PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cImJ1dHRvbi1naG9zdFwiIFtyb3V0ZXJMaW5rXT1cIlsnLi8nLCBmYWNldC5pZF1cIlxyXG4gICAgICAgICAgICAgICAgPjxzcGFuPnt7IGZhY2V0Lm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJhcnJvdyByaWdodFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLmNvZGUnIHwgdHJhbnNsYXRlXCIgaWQ9XCJjb2RlXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1mYWNldD1cIml0ZW1cIj5cclxuICAgICAgICAgICAge3sgZmFjZXQuY29kZSB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidjb21tb24udmlzaWJpbGl0eScgfCB0cmFuc2xhdGVcIiBpZD1cInZpc2liaWxpdHlcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWZhY2V0PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICA8dmRyLWNoaXAgKm5nSWY9XCJmYWNldC5pc1ByaXZhdGVcIiBjb2xvclR5cGU9XCJ3YXJuaW5nXCI+e3tcclxuICAgICAgICAgICAgICAgICdjb21tb24ucHJpdmF0ZScgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgfX08L3Zkci1jaGlwPlxyXG4gICAgICAgICAgICA8dmRyLWNoaXAgKm5nSWY9XCIhZmFjZXQuaXNQcml2YXRlXCIgY29sb3JUeXBlPVwic3VjY2Vzc1wiPnt7XHJcbiAgICAgICAgICAgICAgICAnY29tbW9uLnB1YmxpYycgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgfX08L3Zkci1jaGlwPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidjYXRhbG9nLnZhbHVlcycgfCB0cmFuc2xhdGVcIiBpZD1cInZhbHVlc1wiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtZmFjZXQ9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmYWNldC12YWx1ZXMtbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgPHZkci1mYWNldC12YWx1ZS1jaGlwXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHZhbHVlIG9mIGZhY2V0LnZhbHVlTGlzdC5pdGVtcyB8IHNsaWNlIDogMCA6IGRpc3BsYXlMaW1pdFtmYWNldC5pZF0gfHwgM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2ZhY2V0VmFsdWVdPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyZW1vdmFibGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5RmFjZXROYW1lXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgID48L3Zkci1mYWNldC12YWx1ZS1jaGlwPlxyXG4gICAgICAgICAgICAgICAgPHZkci1jaGlwICpuZ0lmPVwiZGlzcGxheUxpbWl0W2ZhY2V0LmlkXSA8IGZhY2V0LnZhbHVlTGlzdC50b3RhbEl0ZW1zICYmIChkaXNwbGF5TGltaXRbZmFjZXQuaWRdIHx8IDApID09PSBmYWNldC52YWx1ZUxpc3QuaXRlbXMubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgLi4uICsge3sgZmFjZXQudmFsdWVMaXN0LnRvdGFsSXRlbXMgLSBmYWNldC52YWx1ZUxpc3QuaXRlbXMubGVuZ3RoIH19XHJcbiAgICAgICAgICAgICAgICA8L3Zkci1jaGlwPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLXNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImZhY2V0LnZhbHVlTGlzdC5pdGVtcy5sZW5ndGggPiBpbml0aWFsTGltaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVEaXNwbGF5TGltaXQoZmFjZXQpXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGRpc3BsYXlMaW1pdFtmYWNldC5pZF0gfHwgMCkgPCBmYWNldC52YWx1ZUxpc3QuaXRlbXMubGVuZ3RoOyBlbHNlIGNvbGxhcHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInBsdXNcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBmYWNldC52YWx1ZUxpc3QudG90YWxJdGVtcyAtIGluaXRpYWxMaW1pdCB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29sbGFwc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cIm1pbnVzXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY3VzdG9tLWZpZWxkLWNvbHVtbiAqbmdGb3I9XCJsZXQgY3VzdG9tRmllbGQgb2YgY3VzdG9tRmllbGRzXCIgW2N1c3RvbUZpZWxkXT1cImN1c3RvbUZpZWxkXCIgW3NvcnRzXT1cInNvcnRzXCIgLz5cclxuPC92ZHItZGF0YS10YWJsZS0yPlxyXG4iXX0=
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZXQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NhdGFsb2cvc3JjL2NvbXBvbmVudHMvZmFjZXQtbGlzdC9mYWNldC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9mYWNldC1saXN0L2ZhY2V0LWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFFSCw4QkFBOEIsRUFDOUIsb0JBQW9CLEVBSXBCLHNCQUFzQixHQUN6QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQUVyQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7OztNQVM3Qiw4QkFBOEI7Q0FDbkMsQ0FBQztBQU9GLE1BQU0sT0FBTyxrQkFDVCxTQUFRLHNCQUE2RDtJQStCckUsWUFBc0IsV0FBd0I7UUFDMUMsS0FBSyxFQUFFLENBQUM7UUFEVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQTVCckMsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDMUIsaUJBQVksR0FBNkIsRUFBRSxDQUFDO1FBRW5DLGlCQUFZLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELFlBQU8sR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7YUFDM0MsV0FBVyxFQUFFO2FBQ2IsY0FBYyxFQUFFO2FBQ2hCLFNBQVMsQ0FBQztZQUNQLElBQUksRUFBRSxZQUFZO1lBQ2xCLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDekIsS0FBSyxFQUFFLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztZQUM3QixhQUFhLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNyQixTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUU7YUFDNUIsQ0FBQztTQUNMLENBQUM7YUFDRCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQ3hDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkIsVUFBSyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRTthQUN2QyxXQUFXLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQzthQUNoQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDdkIsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDO2FBQzlCLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQzthQUM5QixPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDekIsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ3pCLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDdEMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUk1QixLQUFLLENBQUMsU0FBUyxDQUFDO1lBQ1osUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUM3QixZQUFZLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQixPQUFPLEVBQUU7b0JBQ0wsSUFBSTtvQkFDSixJQUFJO29CQUNKLE1BQU0sRUFBRTt3QkFDSixJQUFJLEVBQUU7NEJBQ0YsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLO3lCQUN6Qzt3QkFDRCxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUU7cUJBQ3RDO29CQUNELElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRTtpQkFDckM7Z0JBQ0QscUJBQXFCLEVBQUU7b0JBQ25CLElBQUksRUFBRSxHQUFHO2lCQUNaO2FBQ0osQ0FBQztZQUNGLG9CQUFvQixFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7U0FDN0UsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQTBDO1FBQ3pELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQzlELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDbkQ7YUFBTTtZQUNILElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztTQUM5RDtJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBa0I7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDakUsQ0FBQzs4R0FuRVEsa0JBQWtCO2tHQUFsQixrQkFBa0IsNkVDOUIvQiwwMEtBc0hBOzsyRkR4RmEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNJLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcclxuaW1wb3J0IHtcclxuICAgIERhdGFTZXJ2aWNlLFxyXG4gICAgRkFDRVRfV0lUSF9WQUxVRV9MSVNUX0ZSQUdNRU5ULFxyXG4gICAgR2V0RmFjZXRMaXN0RG9jdW1lbnQsXHJcbiAgICBHZXRGYWNldExpc3RRdWVyeSxcclxuICAgIEl0ZW1PZixcclxuICAgIExhbmd1YWdlQ29kZSxcclxuICAgIFR5cGVkQmFzZUxpc3RDb21wb25lbnQsXHJcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcbmltcG9ydCB7IGdxbCB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcclxuXHJcbmV4cG9ydCBjb25zdCBGQUNFVF9MSVNUX1FVRVJZID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0RmFjZXRMaXN0KCRvcHRpb25zOiBGYWNldExpc3RPcHRpb25zLCAkZmFjZXRWYWx1ZUxpc3RPcHRpb25zOiBGYWNldFZhbHVlTGlzdE9wdGlvbnMpIHtcclxuICAgICAgICBmYWNldHMob3B0aW9uczogJG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgLi4uRmFjZXRXaXRoVmFsdWVMaXN0XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdG90YWxJdGVtc1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7RkFDRVRfV0lUSF9WQUxVRV9MSVNUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1mYWNldC1saXN0JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9mYWNldC1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2ZhY2V0LWxpc3QuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZhY2V0TGlzdENvbXBvbmVudFxyXG4gICAgZXh0ZW5kcyBUeXBlZEJhc2VMaXN0Q29tcG9uZW50PHR5cGVvZiBHZXRGYWNldExpc3REb2N1bWVudCwgJ2ZhY2V0cyc+XHJcbiAgICBpbXBsZW1lbnRzIE9uSW5pdFxyXG57XHJcbiAgICByZWFkb25seSBpbml0aWFsTGltaXQgPSAzO1xyXG4gICAgZGlzcGxheUxpbWl0OiB7IFtpZDogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcclxuXHJcbiAgICByZWFkb25seSBjdXN0b21GaWVsZHMgPSB0aGlzLmdldEN1c3RvbUZpZWxkQ29uZmlnKCdGYWNldCcpO1xyXG4gICAgcmVhZG9ubHkgZmlsdGVycyA9IHRoaXMuY3JlYXRlRmlsdGVyQ29sbGVjdGlvbigpXHJcbiAgICAgICAgLmFkZElkRmlsdGVyKClcclxuICAgICAgICAuYWRkRGF0ZUZpbHRlcnMoKVxyXG4gICAgICAgIC5hZGRGaWx0ZXIoe1xyXG4gICAgICAgICAgICBuYW1lOiAndmlzaWJpbGl0eScsXHJcbiAgICAgICAgICAgIHR5cGU6IHsga2luZDogJ2Jvb2xlYW4nIH0sXHJcbiAgICAgICAgICAgIGxhYmVsOiBfKCdjb21tb24udmlzaWJpbGl0eScpLFxyXG4gICAgICAgICAgICB0b0ZpbHRlcklucHV0OiB2YWx1ZSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgaXNQcml2YXRlOiB7IGVxOiAhdmFsdWUgfSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuYWRkQ3VzdG9tRmllbGRGaWx0ZXJzKHRoaXMuY3VzdG9tRmllbGRzKVxyXG4gICAgICAgIC5jb25uZWN0VG9Sb3V0ZSh0aGlzLnJvdXRlKTtcclxuXHJcbiAgICByZWFkb25seSBzb3J0cyA9IHRoaXMuY3JlYXRlU29ydENvbGxlY3Rpb24oKVxyXG4gICAgICAgIC5kZWZhdWx0U29ydCgnY3JlYXRlZEF0JywgJ0RFU0MnKVxyXG4gICAgICAgIC5hZGRTb3J0KHsgbmFtZTogJ2lkJyB9KVxyXG4gICAgICAgIC5hZGRTb3J0KHsgbmFtZTogJ2NyZWF0ZWRBdCcgfSlcclxuICAgICAgICAuYWRkU29ydCh7IG5hbWU6ICd1cGRhdGVkQXQnIH0pXHJcbiAgICAgICAgLmFkZFNvcnQoeyBuYW1lOiAnbmFtZScgfSlcclxuICAgICAgICAuYWRkU29ydCh7IG5hbWU6ICdjb2RlJyB9KVxyXG4gICAgICAgIC5hZGRDdXN0b21GaWVsZFNvcnRzKHRoaXMuY3VzdG9tRmllbGRzKVxyXG4gICAgICAgIC5jb25uZWN0VG9Sb3V0ZSh0aGlzLnJvdXRlKTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBzdXBlci5jb25maWd1cmUoe1xyXG4gICAgICAgICAgICBkb2N1bWVudDogR2V0RmFjZXRMaXN0RG9jdW1lbnQsXHJcbiAgICAgICAgICAgIGdldEl0ZW1zOiBkYXRhID0+IGRhdGEuZmFjZXRzLFxyXG4gICAgICAgICAgICBzZXRWYXJpYWJsZXM6IChza2lwLCB0YWtlKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgICAgIHNraXAsXHJcbiAgICAgICAgICAgICAgICAgICAgdGFrZSxcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbnM6IHRoaXMuc2VhcmNoVGVybUNvbnRyb2wudmFsdWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuZmlsdGVycy5jcmVhdGVGaWx0ZXJJbnB1dCgpLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgc29ydDogdGhpcy5zb3J0cy5jcmVhdGVTb3J0SW5wdXQoKSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBmYWNldFZhbHVlTGlzdE9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgICAgICB0YWtlOiAxMDAsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgcmVmcmVzaExpc3RPbkNoYW5nZXM6IFt0aGlzLmZpbHRlcnMudmFsdWVDaGFuZ2VzLCB0aGlzLnNvcnRzLnZhbHVlQ2hhbmdlc10sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdG9nZ2xlRGlzcGxheUxpbWl0KGZhY2V0OiBJdGVtT2Y8R2V0RmFjZXRMaXN0UXVlcnksICdmYWNldHMnPikge1xyXG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXlMaW1pdFtmYWNldC5pZF0gPT09IGZhY2V0LnZhbHVlTGlzdC5pdGVtcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5TGltaXRbZmFjZXQuaWRdID0gdGhpcy5pbml0aWFsTGltaXQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5TGltaXRbZmFjZXQuaWRdID0gZmFjZXQudmFsdWVMaXN0Lml0ZW1zLmxlbmd0aDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0TGFuZ3VhZ2UoY29kZTogTGFuZ3VhZ2VDb2RlKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5jbGllbnQuc2V0Q29udGVudExhbmd1YWdlKGNvZGUpLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG59XHJcbiIsIjx2ZHItcGFnZS1ibG9jaz5cclxuICAgIDx2ZHItYWN0aW9uLWJhcj5cclxuICAgICAgICA8dmRyLWFiLWxlZnQ+XHJcbiAgICAgICAgICAgIDx2ZHItbGFuZ3VhZ2Utc2VsZWN0b3JcclxuICAgICAgICAgICAgICAgIFthdmFpbGFibGVMYW5ndWFnZUNvZGVzXT1cImF2YWlsYWJsZUxhbmd1YWdlcyQgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICBbY3VycmVudExhbmd1YWdlQ29kZV09XCJjb250ZW50TGFuZ3VhZ2UkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgKGxhbmd1YWdlQ29kZUNoYW5nZSk9XCJzZXRMYW5ndWFnZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgPjwvdmRyLWxhbmd1YWdlLXNlbGVjdG9yPlxyXG4gICAgICAgIDwvdmRyLWFiLWxlZnQ+XHJcbiAgICAgICAgPHZkci1hYi1yaWdodD5cclxuICAgICAgICAgICAgPHZkci1hY3Rpb24tYmFyLWl0ZW1zIGxvY2F0aW9uSWQ9XCJmYWNldC1saXN0XCI+PC92ZHItYWN0aW9uLWJhci1pdGVtcz5cclxuICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnLi9jcmVhdGUnXVwiXHJcbiAgICAgICAgICAgICAgICAqdmRySWZQZXJtaXNzaW9ucz1cIlsnQ3JlYXRlQ2F0YWxvZycsICdDcmVhdGVGYWNldCddXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwicGx1c1wiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICB7eyAnY2F0YWxvZy5jcmVhdGUtbmV3LWZhY2V0JyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC92ZHItYWItcmlnaHQ+XHJcbiAgICA8L3Zkci1hY3Rpb24tYmFyPlxyXG48L3Zkci1wYWdlLWJsb2NrPlxyXG48dmRyLWRhdGEtdGFibGUtMlxyXG4gICAgY2xhc3M9XCJtdC0yXCJcclxuICAgIGlkPVwiZmFjZXQtbGlzdFwiXHJcbiAgICBbaXRlbXNdPVwiaXRlbXMkIHwgYXN5bmNcIlxyXG4gICAgW2l0ZW1zUGVyUGFnZV09XCJpdGVtc1BlclBhZ2UkIHwgYXN5bmNcIlxyXG4gICAgW3RvdGFsSXRlbXNdPVwidG90YWxJdGVtcyQgfCBhc3luY1wiXHJcbiAgICBbY3VycmVudFBhZ2VdPVwiY3VycmVudFBhZ2UkIHwgYXN5bmNcIlxyXG4gICAgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiXHJcbiAgICAocGFnZUNoYW5nZSk9XCJzZXRQYWdlTnVtYmVyKCRldmVudClcIlxyXG4gICAgKGl0ZW1zUGVyUGFnZUNoYW5nZSk9XCJzZXRJdGVtc1BlclBhZ2UoJGV2ZW50KVwiXHJcbj5cclxuICAgIDx2ZHItYnVsay1hY3Rpb24tbWVudVxyXG4gICAgICAgIGxvY2F0aW9uSWQ9XCJmYWNldC1saXN0XCJcclxuICAgICAgICBbaG9zdENvbXBvbmVudF09XCJ0aGlzXCJcclxuICAgICAgICBbc2VsZWN0aW9uTWFuYWdlcl09XCJzZWxlY3Rpb25NYW5hZ2VyXCJcclxuICAgID48L3Zkci1idWxrLWFjdGlvbi1tZW51PlxyXG4gICAgPHZkci1kdDItc2VhcmNoXHJcbiAgICAgICAgW3NlYXJjaFRlcm1Db250cm9sXT1cInNlYXJjaFRlcm1Db250cm9sXCJcclxuICAgICAgICBbc2VhcmNoVGVybVBsYWNlaG9sZGVyXT1cIidjYXRhbG9nLmZpbHRlci1ieS1uYW1lJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICA+PC92ZHItZHQyLXNlYXJjaD5cclxuICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLmlkJyB8IHRyYW5zbGF0ZVwiIGlkPVwiaWRcIiBbaGlkZGVuQnlEZWZhdWx0XT1cInRydWVcIiBbc29ydF09XCJzb3J0cy5nZXQoJ2lkJylcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWZhY2V0PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICB7eyBmYWNldC5pZCB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uXHJcbiAgICAgICAgW2hlYWRpbmddPVwiJ2NvbW1vbi5jcmVhdGVkLWF0JyB8IHRyYW5zbGF0ZVwiIGlkPVwiY3JlYXRlZC1hdFwiXHJcbiAgICAgICAgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCJcclxuICAgICAgICBbc29ydF09XCJzb3J0cy5nZXQoJ2NyZWF0ZWRBdCcpXCJcclxuICAgID5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWZhY2V0PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICB7eyBmYWNldC5jcmVhdGVkQXQgfCBsb2NhbGVEYXRlIDogJ3Nob3J0JyB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uXHJcbiAgICAgICAgW2hlYWRpbmddPVwiJ2NvbW1vbi51cGRhdGVkLWF0JyB8IHRyYW5zbGF0ZVwiIGlkPVwidXBkYXRlZC1hdFwiXHJcbiAgICAgICAgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCJcclxuICAgICAgICBbc29ydF09XCJzb3J0cy5nZXQoJ3VwZGF0ZWRBdCcpXCJcclxuICAgID5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWZhY2V0PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICB7eyBmYWNldC51cGRhdGVkQXQgfCBsb2NhbGVEYXRlIDogJ3Nob3J0JyB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidjb21tb24ubmFtZScgfCB0cmFuc2xhdGVcIiBpZD1cIm5hbWVcIiBbb3B0aW9uYWxdPVwiZmFsc2VcIiBbc29ydF09XCJzb3J0cy5nZXQoJ25hbWUnKVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtZmFjZXQ9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwiYnV0dG9uLWdob3N0XCIgW3JvdXRlckxpbmtdPVwiWycuLycsIGZhY2V0LmlkXVwiXHJcbiAgICAgICAgICAgICAgICA+PHNwYW4+e3sgZmFjZXQubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImFycm93IHJpZ2h0XCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidjb21tb24uY29kZScgfCB0cmFuc2xhdGVcIiBpZD1cImNvZGVcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWZhY2V0PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICB7eyBmYWNldC5jb2RlIH19XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NvbW1vbi52aXNpYmlsaXR5JyB8IHRyYW5zbGF0ZVwiIGlkPVwidmlzaWJpbGl0eVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtZmFjZXQ9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIDx2ZHItY2hpcCAqbmdJZj1cImZhY2V0LmlzUHJpdmF0ZVwiIGNvbG9yVHlwZT1cIndhcm5pbmdcIj57e1xyXG4gICAgICAgICAgICAgICAgJ2NvbW1vbi5wcml2YXRlJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICB9fTwvdmRyLWNoaXA+XHJcbiAgICAgICAgICAgIDx2ZHItY2hpcCAqbmdJZj1cIiFmYWNldC5pc1ByaXZhdGVcIiBjb2xvclR5cGU9XCJzdWNjZXNzXCI+e3tcclxuICAgICAgICAgICAgICAgICdjb21tb24ucHVibGljJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICB9fTwvdmRyLWNoaXA+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NhdGFsb2cudmFsdWVzJyB8IHRyYW5zbGF0ZVwiIGlkPVwidmFsdWVzXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1mYWNldD1cIml0ZW1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZhY2V0LXZhbHVlcy1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWZhY2V0LXZhbHVlLWNoaXBcclxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmFsdWUgb2YgZmFjZXQudmFsdWVMaXN0Lml0ZW1zIHwgc2xpY2UgOiAwIDogZGlzcGxheUxpbWl0W2ZhY2V0LmlkXSB8fCAzXCJcclxuICAgICAgICAgICAgICAgICAgICBbZmFjZXRWYWx1ZV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3JlbW92YWJsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlGYWNldE5hbWVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgPjwvdmRyLWZhY2V0LXZhbHVlLWNoaXA+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWNoaXAgKm5nSWY9XCJkaXNwbGF5TGltaXRbZmFjZXQuaWRdIDwgZmFjZXQudmFsdWVMaXN0LnRvdGFsSXRlbXMgJiYgKGRpc3BsYXlMaW1pdFtmYWNldC5pZF0gfHwgMCkgPT09IGZhY2V0LnZhbHVlTGlzdC5pdGVtcy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAuLi4gKyB7eyBmYWNldC52YWx1ZUxpc3QudG90YWxJdGVtcyAtIGZhY2V0LnZhbHVlTGlzdC5pdGVtcy5sZW5ndGggfX1cclxuICAgICAgICAgICAgICAgIDwvdmRyLWNoaXA+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24tc21hbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZmFjZXQudmFsdWVMaXN0Lml0ZW1zLmxlbmd0aCA+IGluaXRpYWxMaW1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURpc3BsYXlMaW1pdChmYWNldClcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZGlzcGxheUxpbWl0W2ZhY2V0LmlkXSB8fCAwKSA8IGZhY2V0LnZhbHVlTGlzdC5pdGVtcy5sZW5ndGg7IGVsc2UgY29sbGFwc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwicGx1c1wiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGZhY2V0LnZhbHVlTGlzdC50b3RhbEl0ZW1zIC0gaW5pdGlhbExpbWl0IH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb2xsYXBzZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwibWludXNcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICA8dmRyLWR0Mi1jdXN0b20tZmllbGQtY29sdW1uICpuZ0Zvcj1cImxldCBjdXN0b21GaWVsZCBvZiBjdXN0b21GaWVsZHNcIiBbY3VzdG9tRmllbGRdPVwiY3VzdG9tRmllbGRcIiBbc29ydHNdPVwic29ydHNcIiAvPlxyXG48L3Zkci1kYXRhLXRhYmxlLTI+XHJcbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
2
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
|
3
|
-
import { FacetValueFormInputComponent, JobState, ProductListQueryDocument, TypedBaseListComponent, } from '@vendure/admin-ui/core';
|
|
3
|
+
import { FacetValueFormInputComponent, JobState, LogicalOperator, ProductListQueryDocument, TypedBaseListComponent, } from '@vendure/admin-ui/core';
|
|
4
4
|
import { EMPTY, lastValueFrom } from 'rxjs';
|
|
5
5
|
import { delay, switchMap } from 'rxjs/operators';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
@@ -79,19 +79,31 @@ export class ProductListComponent extends TypedBaseListComponent {
|
|
|
79
79
|
this.configure({
|
|
80
80
|
document: ProductListQueryDocument,
|
|
81
81
|
getItems: data => data.products,
|
|
82
|
-
setVariables: (skip, take) =>
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
82
|
+
setVariables: (skip, take) => {
|
|
83
|
+
const searchTerm = this.searchTermControl.value;
|
|
84
|
+
let filterInput = this.filters.createFilterInput();
|
|
85
|
+
if (searchTerm) {
|
|
86
|
+
filterInput = {
|
|
87
87
|
name: {
|
|
88
|
-
contains:
|
|
88
|
+
contains: searchTerm,
|
|
89
89
|
},
|
|
90
|
-
|
|
90
|
+
sku: {
|
|
91
|
+
contains: searchTerm,
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
options: {
|
|
97
|
+
skip,
|
|
98
|
+
take,
|
|
99
|
+
filter: {
|
|
100
|
+
...(filterInput ?? {}),
|
|
101
|
+
},
|
|
102
|
+
filterOperator: searchTerm ? LogicalOperator.OR : LogicalOperator.AND,
|
|
103
|
+
sort: this.sorts.createSortInput(),
|
|
91
104
|
},
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}),
|
|
105
|
+
};
|
|
106
|
+
},
|
|
95
107
|
refreshListOnChanges: [this.sorts.valueChanges, this.filters.valueChanges],
|
|
96
108
|
});
|
|
97
109
|
}
|
|
@@ -138,10 +150,10 @@ export class ProductListComponent extends TypedBaseListComponent {
|
|
|
138
150
|
});
|
|
139
151
|
}
|
|
140
152
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ProductListComponent, deps: [{ token: i1.DataService }, { token: i1.ModalService }, { token: i1.NotificationService }, { token: i1.JobQueueService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
141
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: ProductListComponent, selector: "vdr-products-list", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"product-list\"></vdr-action-bar-items>\r\n <a\r\n class=\"button primary mr-1\"\r\n [routerLink]=\"['./create']\"\r\n *vdrIfPermissions=\"['CreateCatalog', 'CreateProduct']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'catalog.create-new-product' | translate }}\r\n </a>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button type=\"button\" vdrDropdownItem (click)=\"rebuildSearchIndex()\">\r\n <clr-icon shape=\"refresh\" class=\"\"></clr-icon>\r\n {{ 'catalog.rebuild-search-index' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n id=\"product-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"product-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'
|
|
153
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: ProductListComponent, selector: "vdr-products-list", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"product-list\"></vdr-action-bar-items>\r\n <a\r\n class=\"button primary mr-1\"\r\n [routerLink]=\"['./create']\"\r\n *vdrIfPermissions=\"['CreateCatalog', 'CreateProduct']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'catalog.create-new-product' | translate }}\r\n </a>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button type=\"button\" vdrDropdownItem (click)=\"rebuildSearchIndex()\">\r\n <clr-icon shape=\"refresh\" class=\"\"></clr-icon>\r\n {{ 'catalog.rebuild-search-index' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n id=\"product-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"product-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'settings.search-by-product-name-or-sku' | translate\"\r\n />\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\" [sort]=\"sorts.get('id')\">\r\n <ng-template let-product=\"item\">\r\n {{ product.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-product=\"item\">\r\n {{ product.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-product=\"item\">\r\n {{ product.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.image' | translate\" id=\"image\">\r\n <ng-template let-product=\"item\">\r\n <div class=\"image-placeholder\">\r\n <img\r\n *ngIf=\"product.featuredAsset as asset; else imagePlaceholder\"\r\n [src]=\"asset | assetPreview : 'tiny'\"\r\n />\r\n <ng-template #imagePlaceholder>\r\n <div class=\"placeholder\">\r\n <clr-icon shape=\"image\" size=\"48\"></clr-icon>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'catalog.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('name')\">\r\n <ng-template let-product=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', product.id]\"\r\n ><span>{{ product.name }}</span\r\n ><clr-icon shape=\"arrow right\"\r\n /></a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.slug' | translate\" id=\"slug\" [sort]=\"sorts.get('slug')\">\r\n <ng-template let-product=\"item\">\r\n {{ product.slug }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.enabled' | translate\" id=\"enabled\">\r\n <ng-template let-product=\"item\">\r\n <vdr-chip *ngIf=\"product.enabled\" colorType=\"success\">{{\r\n 'common.enabled' | translate\r\n }}</vdr-chip>\r\n <vdr-chip *ngIf=\"!product.enabled\" colorType=\"warning\">{{\r\n 'common.disabled' | translate\r\n }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'catalog.number-of-variants' | translate\" id=\"number-of-variants\">\r\n <ng-template let-product=\"item\">\r\n {{ 'catalog.variant-count' | translate : { count: product.variantList?.totalItems } }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column\r\n *ngFor=\"let customField of customFields\"\r\n [customField]=\"customField\"\r\n [sorts]=\"sorts\"\r\n />\r\n</vdr-data-table-2>\r\n", styles: [".image-col{width:70px}.image-placeholder{width:50px;height:50px;margin-top:calc(var(--space-unit) * -1);margin-bottom:calc(var(--space-unit) * -1);background-color:var(--color-component-bg-200)}.image-placeholder img{border-radius:var(--border-radius-img)}.image-placeholder .placeholder{text-align:center;color:var(--color-grey-300)}.search-form{display:flex;align-items:center;width:100%}vdr-product-search-input{min-width:300px}@media screen and (max-width: 768px){vdr-product-search-input{min-width:100px}}.search-settings-menu{margin:0 12px}td.disabled{background-color:var(--color-component-bg-200)}.search-index-button{position:relative}.search-index-button vdr-status-badge{right:0;top:0}.run-updates-button{position:relative}.run-updates-button vdr-status-badge{left:10px;top:10px}.edit-button{margin-inline-end:24px}.sku{color:var(--color-text-300)}\n"], dependencies: [{ kind: "directive", type: i2.ClrIconCustomTag, selector: "clr-icon" }, { 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.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { kind: "component", type: i1.ActionBarLeftComponent, selector: "vdr-ab-left", inputs: ["grow"] }, { kind: "component", type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { kind: "component", type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { kind: "component", type: i1.LanguageSelectorComponent, selector: "vdr-language-selector", inputs: ["currentLanguageCode", "availableLanguageCodes", "disabled"], outputs: ["languageCodeChange"] }, { kind: "component", type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i1.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { kind: "directive", type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { kind: "component", type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items", inputs: ["locationId"] }, { kind: "component", type: i1.BulkActionMenuComponent, selector: "vdr-bulk-action-menu", inputs: ["locationId", "selectionManager", "hostComponent"] }, { kind: "component", type: i1.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange"] }, { kind: "component", type: i1.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["id", "expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i1.DataTable2SearchComponent, selector: "vdr-dt2-search", inputs: ["searchTermControl", "searchTermPlaceholder"] }, { kind: "component", type: i1.DataTableCustomFieldColumnComponent, selector: "vdr-dt2-custom-field-column", inputs: ["customField", "sorts"], exportAs: ["row"] }, { kind: "component", type: i1.PageBlockComponent, selector: "vdr-page-block" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.AssetPreviewPipe, name: "assetPreview" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }] }); }
|
|
142
154
|
}
|
|
143
155
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ProductListComponent, decorators: [{
|
|
144
156
|
type: Component,
|
|
145
|
-
args: [{ selector: 'vdr-products-list', template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"product-list\"></vdr-action-bar-items>\r\n <a\r\n class=\"button primary mr-1\"\r\n [routerLink]=\"['./create']\"\r\n *vdrIfPermissions=\"['CreateCatalog', 'CreateProduct']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'catalog.create-new-product' | translate }}\r\n </a>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button type=\"button\" vdrDropdownItem (click)=\"rebuildSearchIndex()\">\r\n <clr-icon shape=\"refresh\" class=\"\"></clr-icon>\r\n {{ 'catalog.rebuild-search-index' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n id=\"product-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"product-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'
|
|
157
|
+
args: [{ selector: 'vdr-products-list', template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"product-list\"></vdr-action-bar-items>\r\n <a\r\n class=\"button primary mr-1\"\r\n [routerLink]=\"['./create']\"\r\n *vdrIfPermissions=\"['CreateCatalog', 'CreateProduct']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'catalog.create-new-product' | translate }}\r\n </a>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button type=\"button\" vdrDropdownItem (click)=\"rebuildSearchIndex()\">\r\n <clr-icon shape=\"refresh\" class=\"\"></clr-icon>\r\n {{ 'catalog.rebuild-search-index' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n id=\"product-list\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"product-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'settings.search-by-product-name-or-sku' | translate\"\r\n />\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\" [sort]=\"sorts.get('id')\">\r\n <ng-template let-product=\"item\">\r\n {{ product.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-product=\"item\">\r\n {{ product.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-product=\"item\">\r\n {{ product.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.image' | translate\" id=\"image\">\r\n <ng-template let-product=\"item\">\r\n <div class=\"image-placeholder\">\r\n <img\r\n *ngIf=\"product.featuredAsset as asset; else imagePlaceholder\"\r\n [src]=\"asset | assetPreview : 'tiny'\"\r\n />\r\n <ng-template #imagePlaceholder>\r\n <div class=\"placeholder\">\r\n <clr-icon shape=\"image\" size=\"48\"></clr-icon>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'catalog.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('name')\">\r\n <ng-template let-product=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', product.id]\"\r\n ><span>{{ product.name }}</span\r\n ><clr-icon shape=\"arrow right\"\r\n /></a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.slug' | translate\" id=\"slug\" [sort]=\"sorts.get('slug')\">\r\n <ng-template let-product=\"item\">\r\n {{ product.slug }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.enabled' | translate\" id=\"enabled\">\r\n <ng-template let-product=\"item\">\r\n <vdr-chip *ngIf=\"product.enabled\" colorType=\"success\">{{\r\n 'common.enabled' | translate\r\n }}</vdr-chip>\r\n <vdr-chip *ngIf=\"!product.enabled\" colorType=\"warning\">{{\r\n 'common.disabled' | translate\r\n }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'catalog.number-of-variants' | translate\" id=\"number-of-variants\">\r\n <ng-template let-product=\"item\">\r\n {{ 'catalog.variant-count' | translate : { count: product.variantList?.totalItems } }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column\r\n *ngFor=\"let customField of customFields\"\r\n [customField]=\"customField\"\r\n [sorts]=\"sorts\"\r\n />\r\n</vdr-data-table-2>\r\n", styles: [".image-col{width:70px}.image-placeholder{width:50px;height:50px;margin-top:calc(var(--space-unit) * -1);margin-bottom:calc(var(--space-unit) * -1);background-color:var(--color-component-bg-200)}.image-placeholder img{border-radius:var(--border-radius-img)}.image-placeholder .placeholder{text-align:center;color:var(--color-grey-300)}.search-form{display:flex;align-items:center;width:100%}vdr-product-search-input{min-width:300px}@media screen and (max-width: 768px){vdr-product-search-input{min-width:100px}}.search-settings-menu{margin:0 12px}td.disabled{background-color:var(--color-component-bg-200)}.search-index-button{position:relative}.search-index-button vdr-status-badge{right:0;top:0}.run-updates-button{position:relative}.run-updates-button vdr-status-badge{left:10px;top:10px}.edit-button{margin-inline-end:24px}.sku{color:var(--color-text-300)}\n"] }]
|
|
146
158
|
}], ctorParameters: function () { return [{ type: i1.DataService }, { type: i1.ModalService }, { type: i1.NotificationService }, { type: i1.JobQueueService }]; } });
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9wcm9kdWN0LWxpc3QvcHJvZHVjdC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9wcm9kdWN0LWxpc3QvcHJvZHVjdC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RSxPQUFPLEVBRUgsNEJBQTRCLEVBRTVCLFFBQVEsRUFHUix3QkFBd0IsRUFDeEIsc0JBQXNCLEdBQ3pCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQU9sRCxNQUFNLE9BQU8sb0JBQ1QsU0FBUSxzQkFBbUU7SUFvRTNFLFlBQ2MsV0FBd0IsRUFDMUIsWUFBMEIsRUFDMUIsbUJBQXdDLEVBQ3hDLGVBQWdDO1FBRXhDLEtBQUssRUFBRSxDQUFDO1FBTEUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFyRTVDLDhCQUF5QixHQUFHLENBQUMsQ0FBQztRQUNyQixpQkFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRCxZQUFPLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixF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QUMsQ0FDYjthQUNBLFNBQVMsQ0FDTixHQUFHLEVBQUU7WUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyw4QkFBOEIsQ0FBQyxFQUFFO2dCQUNoRSxNQUFNLEVBQUUsU0FBUzthQUNwQixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxFQUNELEdBQUcsQ0FBQyxFQUFFO1lBQ0YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsRUFBRTtnQkFDNUQsTUFBTSxFQUFFLFNBQVM7YUFDcEIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUNKLENBQUM7SUFDVixDQUFDOzhHQTlJUSxvQkFBb0I7a0dBQXBCLG9CQUFvQixnRkNwQmpDLHc3S0E2SEE7OzJGRHpHYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0ksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xyXG5pbXBvcnQge1xyXG4gICAgRGF0YVNlcnZpY2UsXHJcbiAgICBGYWNldFZhbHVlRm9ybUlucHV0Q29tcG9uZW50LFxyXG4gICAgSm9iUXVldWVTZXJ2aWNlLFxyXG4gICAgSm9iU3RhdGUsXHJcbiAgICBNb2RhbFNlcnZpY2UsXHJcbiAgICBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgUHJvZHVjdExpc3RRdWVyeURvY3VtZW50LFxyXG4gICAgVHlwZWRCYXNlTGlzdENvbXBvbmVudCxcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgRU1QVFksIGxhc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItcHJvZHVjdHMtbGlzdCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdC1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3Byb2R1Y3QtbGlzdC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdExpc3RDb21wb25lbnRcclxuICAgIGV4dGVuZHMgVHlwZWRCYXNlTGlzdENvbXBvbmVudDx0eXBlb2YgUHJvZHVjdExpc3RRdWVyeURvY3VtZW50LCAncHJvZHVjdHMnPlxyXG4gICAgaW1wbGVtZW50cyBPbkluaXRcclxue1xyXG4gICAgcGVuZGluZ1NlYXJjaEluZGV4VXBkYXRlcyA9IDA7XHJcbiAgICByZWFkb25seSBjdXN0b21GaWVsZHMgPSB0aGlzLmdldEN1c3RvbUZpZWxkQ29uZmlnKCdQcm9kdWN0Jyk7XHJcbiAgICByZWFkb25seSBmaWx0ZXJzID0gdGhpcy5jcmVhdGVGaWx0ZXJDb2xsZWN0aW9uKClcclxuICAgICAgICAuYWRkSWRGaWx0ZXIoKVxyXG4gICAgICAgIC5hZGREYXRlRmlsdGVycygpXHJcbiAgICAgICAgLmFkZEZpbHRlcnMoW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnZW5hYmxlZCcsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiB7IGtpbmQ6ICdib29sZWFuJyB9LFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6IF8oJ2NvbW1vbi5lbmFibGVkJyksXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJGaWVsZDogJ2VuYWJsZWQnLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnc2x1ZycsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiB7IGtpbmQ6ICd0ZXh0JyB9LFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6IF8oJ2NvbW1vbi5zbHVnJyksXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJGaWVsZDogJ3NsdWcnLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIF0pXHJcbiAgICAgICAgLmFkZEZpbHRlcih7XHJcbiAgICAgICAgICAgIG5hbWU6ICdmYWNldFZhbHVlcycsXHJcbiAgICAgICAgICAgIHR5cGU6IHtcclxuICAgICAgICAgICAgICAgIGtpbmQ6ICdjdXN0b20nLFxyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBGYWNldFZhbHVlRm9ybUlucHV0Q29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICAgc2VyaWFsaXplVmFsdWU6IHZhbHVlID0+IHZhbHVlLm1hcCh2ID0+IHYuaWQpLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgICAgIGRlc2VyaWFsaXplVmFsdWU6IHZhbHVlID0+IHZhbHVlLnNwbGl0KCcsJykubWFwKGlkID0+ICh7IGlkIH0pKSxcclxuICAgICAgICAgICAgICAgIGdldExhYmVsOiB2YWx1ZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVswXS5uYW1lKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS5tYXAodiA9PiB2Lm5hbWUpLmpvaW4oJywgJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RWYWx1ZUZyb20oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLmZhY2V0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldEZhY2V0VmFsdWVzKHsgZmlsdGVyOiB7IGlkOiB7IGluOiB2YWx1ZS5tYXAodiA9PiB2LmlkKSB9IH0gfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwU2luZ2xlKCh7IGZhY2V0VmFsdWVzIH0pID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY2V0VmFsdWVzLml0ZW1zLm1hcChmdiA9PiBmdi5uYW1lKS5qb2luKCcsICcpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgbGFiZWw6IF8oJ2NhdGFsb2cuZmFjZXQtdmFsdWVzJyksXHJcbiAgICAgICAgICAgIHRvRmlsdGVySW5wdXQ6ICh2YWx1ZTogYW55W10pID0+ICh7XHJcbiAgICAgICAgICAgICAgICBmYWNldFZhbHVlSWQ6IHtcclxuICAgICAgICAgICAgICAgICAgICBpbjogdmFsdWUubWFwKHYgPT4gdi5pZCksXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5hZGRDdXN0b21GaWVsZEZpbHRlcnModGhpcy5jdXN0b21GaWVsZHMpXHJcbiAgICAgICAgLmNvbm5lY3RUb1JvdXRlKHRoaXMucm91dGUpO1xyXG5cclxuICAgIHJlYWRvbmx5IHNvcnRzID0gdGhpcy5jcmVhdGVTb3J0Q29sbGVjdGlvbigpXHJcbiAgICAgICAgLmRlZmF1bHRTb3J0KCdjcmVhdGVkQXQnLCAnREVTQycpXHJcbiAgICAgICAgLmFkZFNvcnRzKFtcclxuICAgICAgICAgICAgeyBuYW1lOiAnaWQnIH0sXHJcbiAgICAgICAgICAgIHsgbmFtZTogJ2NyZWF0ZWRBdCcgfSxcclxuICAgICAgICAgICAgeyBuYW1lOiAndXBkYXRlZEF0JyB9LFxyXG4gICAgICAgICAgICB7IG5hbWU6ICduYW1lJyB9LFxyXG4gICAgICAgICAgICB7IG5hbWU6ICdzbHVnJyB9LFxyXG4gICAgICAgIF0pXHJcbiAgICAgICAgLmFkZEN1c3RvbUZpZWxkU29ydHModGhpcy5jdXN0b21GaWVsZHMpXHJcbiAgICAgICAgLmNvbm5lY3RUb1JvdXRlKHRoaXMucm91dGUpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBqb2JRdWV1ZVNlcnZpY2U6IEpvYlF1ZXVlU2VydmljZSxcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgdGhpcy5jb25maWd1cmUoe1xyXG4gICAgICAgICAgICBkb2N1bWVudDogUHJvZHVjdExpc3RRdWVyeURvY3VtZW50LFxyXG4gICAgICAgICAgICBnZXRJdGVtczogZGF0YSA9PiBkYXRhLnByb2R1Y3RzLFxyXG4gICAgICAgICAgICBzZXRWYXJpYWJsZXM6IChza2lwLCB0YWtlKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgICAgIHNraXAsXHJcbiAgICAgICAgICAgICAgICAgICAgdGFrZSxcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbnM6IHRoaXMuc2VhcmNoVGVybUNvbnRyb2wudmFsdWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuZmlsdGVycy5jcmVhdGVGaWx0ZXJJbnB1dCgpLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgc29ydDogdGhpcy5zb3J0cy5jcmVhdGVTb3J0SW5wdXQoKSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICByZWZyZXNoTGlzdE9uQ2hhbmdlczogW3RoaXMuc29ydHMudmFsdWVDaGFuZ2VzLCB0aGlzLmZpbHRlcnMudmFsdWVDaGFuZ2VzXSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZWJ1aWxkU2VhcmNoSW5kZXgoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0LnJlaW5kZXgoKS5zdWJzY3JpYmUoKHsgcmVpbmRleCB9KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5pbmZvKF8oJ2NhdGFsb2cucmVpbmRleGluZycpKTtcclxuICAgICAgICAgICAgdGhpcy5qb2JRdWV1ZVNlcnZpY2UuYWRkSm9iKHJlaW5kZXguaWQsIGpvYiA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoam9iLnN0YXRlID09PSBKb2JTdGF0ZS5DT01QTEVURUQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aW1lID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KCkuZm9ybWF0KGpvYi5kdXJhdGlvbiB8fCAwKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdjYXRhbG9nLnJlaW5kZXgtc3VjY2Vzc2Z1bCcpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50OiBqb2IucmVzdWx0LmluZGV4ZWRJdGVtQ291bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihfKCdjYXRhbG9nLnJlaW5kZXgtZXJyb3InKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZVByb2R1Y3QocHJvZHVjdElkOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZVxyXG4gICAgICAgICAgICAuZGlhbG9nKHtcclxuICAgICAgICAgICAgICAgIHRpdGxlOiBfKCdjYXRhbG9nLmNvbmZpcm0tZGVsZXRlLXByb2R1Y3QnKSxcclxuICAgICAgICAgICAgICAgIGJ1dHRvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICdzZWNvbmRhcnknLCBsYWJlbDogXygnY29tbW9uLmNhbmNlbCcpIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAnZGFuZ2VyJywgbGFiZWw6IF8oJ2NvbW1vbi5kZWxldGUnKSwgcmV0dXJuVmFsdWU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHJlc3BvbnNlID0+IChyZXNwb25zZSA/IHRoaXMuZGF0YVNlcnZpY2UucHJvZHVjdC5kZWxldGVQcm9kdWN0KHByb2R1Y3RJZCkgOiBFTVBUWSkpLFxyXG4gICAgICAgICAgICAgICAgLy8gU2hvcnQgZGVsYXkgdG8gYWxsb3cgdGhlIHByb2R1Y3QgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSBzZWFyY2ggaW5kZXggYmVmb3JlXHJcbiAgICAgICAgICAgICAgICAvLyByZWZyZXNoaW5nLlxyXG4gICAgICAgICAgICAgICAgZGVsYXkoNTAwKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2NvbW1vbi5ub3RpZnktZGVsZXRlLXN1Y2Nlc3MnKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHk6ICdQcm9kdWN0JyxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihfKCdjb21tb24ubm90aWZ5LWRlbGV0ZS1lcnJvcicpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ1Byb2R1Y3QnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG4iLCI8dmRyLXBhZ2UtYmxvY2s+XHJcbiAgICA8dmRyLWFjdGlvbi1iYXI+XHJcbiAgICAgICAgPHZkci1hYi1sZWZ0PlxyXG4gICAgICAgICAgICA8dmRyLWxhbmd1YWdlLXNlbGVjdG9yXHJcbiAgICAgICAgICAgICAgICBbYXZhaWxhYmxlTGFuZ3VhZ2VDb2Rlc109XCJhdmFpbGFibGVMYW5ndWFnZXMkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgW2N1cnJlbnRMYW5ndWFnZUNvZGVdPVwiY29udGVudExhbmd1YWdlJCB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgIChsYW5ndWFnZUNvZGVDaGFuZ2UpPVwic2V0TGFuZ3VhZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgID48L3Zkci1sYW5ndWFnZS1zZWxlY3Rvcj5cclxuICAgICAgICA8L3Zkci1hYi1sZWZ0PlxyXG4gICAgICAgIDx2ZHItYWItcmlnaHQ+XHJcbiAgICAgICAgICAgIDx2ZHItYWN0aW9uLWJhci1pdGVtcyBsb2NhdGlvbklkPVwicHJvZHVjdC1saXN0XCI+PC92ZHItYWN0aW9uLWJhci1pdGVtcz5cclxuICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uIHByaW1hcnkgbXItMVwiXHJcbiAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy4vY3JlYXRlJ11cIlxyXG4gICAgICAgICAgICAgICAgKnZkcklmUGVybWlzc2lvbnM9XCJbJ0NyZWF0ZUNhdGFsb2cnLCAnQ3JlYXRlUHJvZHVjdCddXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwicGx1c1wiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICB7eyAnY2F0YWxvZy5jcmVhdGUtbmV3LXByb2R1Y3QnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPHZkci1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJpY29uLWJ1dHRvblwiIHZkckRyb3Bkb3duVHJpZ2dlcj5cclxuICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJlbGxpcHNpcy12ZXJ0aWNhbFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDx2ZHItZHJvcGRvd24tbWVudSB2ZHJQb3NpdGlvbj1cImJvdHRvbS1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHZkckRyb3Bkb3duSXRlbSAoY2xpY2spPVwicmVidWlsZFNlYXJjaEluZGV4KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwicmVmcmVzaFwiIGNsYXNzPVwiXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2NhdGFsb2cucmVidWlsZC1zZWFyY2gtaW5kZXgnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L3Zkci1kcm9wZG93bi1tZW51PlxyXG4gICAgICAgICAgICA8L3Zkci1kcm9wZG93bj5cclxuICAgICAgICA8L3Zkci1hYi1yaWdodD5cclxuICAgIDwvdmRyLWFjdGlvbi1iYXI+XHJcbjwvdmRyLXBhZ2UtYmxvY2s+XHJcbjx2ZHItZGF0YS10YWJsZS0yXHJcbiAgICBjbGFzcz1cIm10LTJcIlxyXG4gICAgaWQ9XCJwcm9kdWN0LWxpc3RcIlxyXG4gICAgW2l0ZW1zXT1cIml0ZW1zJCB8IGFzeW5jXCJcclxuICAgIFtpdGVtc1BlclBhZ2VdPVwiaXRlbXNQZXJQYWdlJCB8IGFzeW5jXCJcclxuICAgIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXMkIHwgYXN5bmNcIlxyXG4gICAgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlJCB8IGFzeW5jXCJcclxuICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxyXG4gICAgKHBhZ2VDaGFuZ2UpPVwic2V0UGFnZU51bWJlcigkZXZlbnQpXCJcclxuICAgIChpdGVtc1BlclBhZ2VDaGFuZ2UpPVwic2V0SXRlbXNQZXJQYWdlKCRldmVudClcIlxyXG4+XHJcbiAgICA8dmRyLWJ1bGstYWN0aW9uLW1lbnVcclxuICAgICAgICBsb2NhdGlvbklkPVwicHJvZHVjdC1saXN0XCJcclxuICAgICAgICBbaG9zdENvbXBvbmVudF09XCJ0aGlzXCJcclxuICAgICAgICBbc2VsZWN0aW9uTWFuYWdlcl09XCJzZWxlY3Rpb25NYW5hZ2VyXCJcclxuICAgID48L3Zkci1idWxrLWFjdGlvbi1tZW51PlxyXG4gICAgPHZkci1kdDItc2VhcmNoXHJcbiAgICAgICAgW3NlYXJjaFRlcm1Db250cm9sXT1cInNlYXJjaFRlcm1Db250cm9sXCJcclxuICAgICAgICBbc2VhcmNoVGVybVBsYWNlaG9sZGVyXT1cIidjYXRhbG9nLmZpbHRlci1ieS1uYW1lJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAvPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidjb21tb24uaWQnIHwgdHJhbnNsYXRlXCIgaWQ9XCJpZFwiIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiIFtzb3J0XT1cInNvcnRzLmdldCgnaWQnKVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcHJvZHVjdD1cIml0ZW1cIj5cclxuICAgICAgICAgICAge3sgcHJvZHVjdC5pZCB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uXHJcbiAgICAgICAgW2hlYWRpbmddPVwiJ2NvbW1vbi5jcmVhdGVkLWF0JyB8IHRyYW5zbGF0ZVwiIGlkPVwiY3JlYXRlZC1hdFwiXHJcbiAgICAgICAgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCJcclxuICAgICAgICBbc29ydF09XCJzb3J0cy5nZXQoJ2NyZWF0ZWRBdCcpXCJcclxuICAgID5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXByb2R1Y3Q9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIHt7IHByb2R1Y3QuY3JlYXRlZEF0IHwgbG9jYWxlRGF0ZSA6ICdzaG9ydCcgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtblxyXG4gICAgICAgIFtoZWFkaW5nXT1cIidjb21tb24udXBkYXRlZC1hdCcgfCB0cmFuc2xhdGVcIiBpZD1cInVwZGF0ZWQtYXRcIlxyXG4gICAgICAgIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3NvcnRdPVwic29ydHMuZ2V0KCd1cGRhdGVkQXQnKVwiXHJcbiAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1wcm9kdWN0PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICB7eyBwcm9kdWN0LnVwZGF0ZWRBdCB8IGxvY2FsZURhdGUgOiAnc2hvcnQnIH19XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NvbW1vbi5pbWFnZScgfCB0cmFuc2xhdGVcIiBpZD1cImltYWdlXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1wcm9kdWN0PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2UtcGxhY2Vob2xkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInByb2R1Y3QuZmVhdHVyZWRBc3NldCBhcyBhc3NldDsgZWxzZSBpbWFnZVBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImFzc2V0IHwgYXNzZXRQcmV2aWV3IDogJ3RpbnknXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2ltYWdlUGxhY2Vob2xkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImltYWdlXCIgc2l6ZT1cIjQ4XCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidjYXRhbG9nLm5hbWUnIHwgdHJhbnNsYXRlXCIgaWQ9XCJuYW1lXCIgW29wdGlvbmFsXT1cImZhbHNlXCIgW3NvcnRdPVwic29ydHMuZ2V0KCduYW1lJylcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXByb2R1Y3Q9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwiYnV0dG9uLWdob3N0XCIgW3JvdXRlckxpbmtdPVwiWycuLycsIHByb2R1Y3QuaWRdXCJcclxuICAgICAgICAgICAgICAgID48c3Bhbj57eyBwcm9kdWN0Lm5hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgICAgID48Y2xyLWljb24gc2hhcGU9XCJhcnJvdyByaWdodFwiXHJcbiAgICAgICAgICAgIC8+PC9hPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidjb21tb24uc2x1ZycgfCB0cmFuc2xhdGVcIiBpZD1cInNsdWdcIiBbc29ydF09XCJzb3J0cy5nZXQoJ3NsdWcnKVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcHJvZHVjdD1cIml0ZW1cIj5cclxuICAgICAgICAgICAge3sgcHJvZHVjdC5zbHVnIH19XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NvbW1vbi5lbmFibGVkJyB8IHRyYW5zbGF0ZVwiIGlkPVwiZW5hYmxlZFwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcHJvZHVjdD1cIml0ZW1cIj5cclxuICAgICAgICAgICAgPHZkci1jaGlwICpuZ0lmPVwicHJvZHVjdC5lbmFibGVkXCIgY29sb3JUeXBlPVwic3VjY2Vzc1wiPnt7XHJcbiAgICAgICAgICAgICAgICAnY29tbW9uLmVuYWJsZWQnIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgIH19PC92ZHItY2hpcD5cclxuICAgICAgICAgICAgPHZkci1jaGlwICpuZ0lmPVwiIXByb2R1Y3QuZW5hYmxlZFwiIGNvbG9yVHlwZT1cIndhcm5pbmdcIj57e1xyXG4gICAgICAgICAgICAgICAgJ2NvbW1vbi5kaXNhYmxlZCcgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgfX08L3Zkci1jaGlwPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidjYXRhbG9nLm51bWJlci1vZi12YXJpYW50cycgfCB0cmFuc2xhdGVcIiBpZD1cIm51bWJlci1vZi12YXJpYW50c1wiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcHJvZHVjdD1cIml0ZW1cIj5cclxuICAgICAgICAgICAge3sgJ2NhdGFsb2cudmFyaWFudC1jb3VudCcgfCB0cmFuc2xhdGUgOiB7IGNvdW50OiBwcm9kdWN0LnZhcmlhbnRMaXN0Py50b3RhbEl0ZW1zIH0gfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWN1c3RvbS1maWVsZC1jb2x1bW5cclxuICAgICAgICAqbmdGb3I9XCJsZXQgY3VzdG9tRmllbGQgb2YgY3VzdG9tRmllbGRzXCJcclxuICAgICAgICBbY3VzdG9tRmllbGRdPVwiY3VzdG9tRmllbGRcIlxyXG4gICAgICAgIFtzb3J0c109XCJzb3J0c1wiXHJcbiAgICAvPlxyXG48L3Zkci1kYXRhLXRhYmxlLTI+XHJcbiJdfQ==
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9wcm9kdWN0LWxpc3QvcHJvZHVjdC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9wcm9kdWN0LWxpc3QvcHJvZHVjdC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RSxPQUFPLEVBRUgsNEJBQTRCLEVBRTVCLFFBQVEsRUFDUixlQUFlLEVBR2Ysd0JBQXdCLEVBQ3hCLHNCQUFzQixHQUN6QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFPbEQsTUFBTSxPQUFPLG9CQUNULFNBQVEsc0JBQW1FO0lBb0UzRSxZQUNjLFdBQXdCLEVBQzFCLFlBQTBCLEVBQzFCLG1CQUF3QyxFQUN4QyxlQUFnQztRQUV4QyxLQUFLLEVBQUUsQ0FBQztRQUxFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQzFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBckU1Qyw4QkFBeUIsR0FBRyxDQUFDLENBQUM7UUFDckIsaUJBQVksR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEQsWUFBTyxHQUFHLElBQUksQ0FB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QUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTthQUNuRTtTQUNKLENBQUM7YUFDRCxJQUFJLENBQ0QsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0YsOEVBQThFO1FBQzlFLGNBQWM7UUFDZCxLQUFLLENBQUMsR0FBRyxDQUFDLENBQ2I7YUFDQSxTQUFTLENBQ04sR0FBRyxFQUFFO1lBQ0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsOEJBQThCLENBQUMsRUFBRTtnQkFDaEUsTUFBTSxFQUFFLFNBQVM7YUFDcEIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25CLENBQUMsRUFDRCxHQUFHLENBQUMsRUFBRTtZQUNGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLEVBQUU7Z0JBQzVELE1BQU0sRUFBRSxTQUFTO2FBQ3BCLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FDSixDQUFDO0lBQ1YsQ0FBQzs4R0ExSlEsb0JBQW9CO2tHQUFwQixvQkFBb0IsZ0ZDckJqQyx3OEtBNkhBOzsyRkR4R2Esb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNJLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcclxuaW1wb3J0IHtcclxuICAgIERhdGFTZXJ2aWNlLFxyXG4gICAgRmFjZXRWYWx1ZUZvcm1JbnB1dENvbXBvbmVudCxcclxuICAgIEpvYlF1ZXVlU2VydmljZSxcclxuICAgIEpvYlN0YXRlLFxyXG4gICAgTG9naWNhbE9wZXJhdG9yLFxyXG4gICAgTW9kYWxTZXJ2aWNlLFxyXG4gICAgTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgIFByb2R1Y3RMaXN0UXVlcnlEb2N1bWVudCxcclxuICAgIFR5cGVkQmFzZUxpc3RDb21wb25lbnQsXHJcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcbmltcG9ydCB7IEVNUFRZLCBsYXN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLXByb2R1Y3RzLWxpc3QnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9wcm9kdWN0LWxpc3QuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2R1Y3RMaXN0Q29tcG9uZW50XHJcbiAgICBleHRlbmRzIFR5cGVkQmFzZUxpc3RDb21wb25lbnQ8dHlwZW9mIFByb2R1Y3RMaXN0UXVlcnlEb2N1bWVudCwgJ3Byb2R1Y3RzJz5cclxuICAgIGltcGxlbWVudHMgT25Jbml0XHJcbntcclxuICAgIHBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXMgPSAwO1xyXG4gICAgcmVhZG9ubHkgY3VzdG9tRmllbGRzID0gdGhpcy5nZXRDdXN0b21GaWVsZENvbmZpZygnUHJvZHVjdCcpO1xyXG4gICAgcmVhZG9ubHkgZmlsdGVycyA9IHRoaXMuY3JlYXRlRmlsdGVyQ29sbGVjdGlvbigpXHJcbiAgICAgICAgLmFkZElkRmlsdGVyKClcclxuICAgICAgICAuYWRkRGF0ZUZpbHRlcnMoKVxyXG4gICAgICAgIC5hZGRGaWx0ZXJzKFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogJ2VuYWJsZWQnLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogeyBraW5kOiAnYm9vbGVhbicgfSxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiBfKCdjb21tb24uZW5hYmxlZCcpLFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyRmllbGQ6ICdlbmFibGVkJyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogJ3NsdWcnLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogeyBraW5kOiAndGV4dCcgfSxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiBfKCdjb21tb24uc2x1ZycpLFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyRmllbGQ6ICdzbHVnJyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICBdKVxyXG4gICAgICAgIC5hZGRGaWx0ZXIoe1xyXG4gICAgICAgICAgICBuYW1lOiAnZmFjZXRWYWx1ZXMnLFxyXG4gICAgICAgICAgICB0eXBlOiB7XHJcbiAgICAgICAgICAgICAgICBraW5kOiAnY3VzdG9tJyxcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRmFjZXRWYWx1ZUZvcm1JbnB1dENvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIHNlcmlhbGl6ZVZhbHVlOiB2YWx1ZSA9PiB2YWx1ZS5tYXAodiA9PiB2LmlkKS5qb2luKCcsJyksXHJcbiAgICAgICAgICAgICAgICBkZXNlcmlhbGl6ZVZhbHVlOiB2YWx1ZSA9PiB2YWx1ZS5zcGxpdCgnLCcpLm1hcChpZCA9PiAoeyBpZCB9KSksXHJcbiAgICAgICAgICAgICAgICBnZXRMYWJlbDogdmFsdWUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVbMF0ubmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKHYgPT4gdi5uYW1lKS5qb2luKCcsICcpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBsYXN0VmFsdWVGcm9tKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5mYWNldFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRGYWNldFZhbHVlcyh7IGZpbHRlcjogeyBpZDogeyBpbjogdmFsdWUubWFwKHYgPT4gdi5pZCkgfSB9IH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcFNpbmdsZSgoeyBmYWNldFZhbHVlcyB9KSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWNldFZhbHVlcy5pdGVtcy5tYXAoZnYgPT4gZnYubmFtZSkuam9pbignLCAnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGxhYmVsOiBfKCdjYXRhbG9nLmZhY2V0LXZhbHVlcycpLFxyXG4gICAgICAgICAgICB0b0ZpbHRlcklucHV0OiAodmFsdWU6IGFueVtdKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgZmFjZXRWYWx1ZUlkOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW46IHZhbHVlLm1hcCh2ID0+IHYuaWQpLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuYWRkQ3VzdG9tRmllbGRGaWx0ZXJzKHRoaXMuY3VzdG9tRmllbGRzKVxyXG4gICAgICAgIC5jb25uZWN0VG9Sb3V0ZSh0aGlzLnJvdXRlKTtcclxuXHJcbiAgICByZWFkb25seSBzb3J0cyA9IHRoaXMuY3JlYXRlU29ydENvbGxlY3Rpb24oKVxyXG4gICAgICAgIC5kZWZhdWx0U29ydCgnY3JlYXRlZEF0JywgJ0RFU0MnKVxyXG4gICAgICAgIC5hZGRTb3J0cyhbXHJcbiAgICAgICAgICAgIHsgbmFtZTogJ2lkJyB9LFxyXG4gICAgICAgICAgICB7IG5hbWU6ICdjcmVhdGVkQXQnIH0sXHJcbiAgICAgICAgICAgIHsgbmFtZTogJ3VwZGF0ZWRBdCcgfSxcclxuICAgICAgICAgICAgeyBuYW1lOiAnbmFtZScgfSxcclxuICAgICAgICAgICAgeyBuYW1lOiAnc2x1ZycgfSxcclxuICAgICAgICBdKVxyXG4gICAgICAgIC5hZGRDdXN0b21GaWVsZFNvcnRzKHRoaXMuY3VzdG9tRmllbGRzKVxyXG4gICAgICAgIC5jb25uZWN0VG9Sb3V0ZSh0aGlzLnJvdXRlKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgam9iUXVldWVTZXJ2aWNlOiBKb2JRdWV1ZVNlcnZpY2UsXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuY29uZmlndXJlKHtcclxuICAgICAgICAgICAgZG9jdW1lbnQ6IFByb2R1Y3RMaXN0UXVlcnlEb2N1bWVudCxcclxuICAgICAgICAgICAgZ2V0SXRlbXM6IGRhdGEgPT4gZGF0YS5wcm9kdWN0cyxcclxuICAgICAgICAgICAgc2V0VmFyaWFibGVzOiAoc2tpcCwgdGFrZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VhcmNoVGVybSA9IHRoaXMuc2VhcmNoVGVybUNvbnRyb2wudmFsdWU7XHJcbiAgICAgICAgICAgICAgICBsZXQgZmlsdGVySW5wdXQgPSB0aGlzLmZpbHRlcnMuY3JlYXRlRmlsdGVySW5wdXQoKTtcclxuICAgICAgICAgICAgICAgIGlmIChzZWFyY2hUZXJtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVySW5wdXQgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBzZWFyY2hUZXJtLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBza3U6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBzZWFyY2hUZXJtLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2tpcCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4oZmlsdGVySW5wdXQgPz8ge30pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJPcGVyYXRvcjogc2VhcmNoVGVybSA/IExvZ2ljYWxPcGVyYXRvci5PUiA6IExvZ2ljYWxPcGVyYXRvci5BTkQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvcnQ6IHRoaXMuc29ydHMuY3JlYXRlU29ydElucHV0KCksXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHJlZnJlc2hMaXN0T25DaGFuZ2VzOiBbdGhpcy5zb3J0cy52YWx1ZUNoYW5nZXMsIHRoaXMuZmlsdGVycy52YWx1ZUNoYW5nZXNdLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlYnVpbGRTZWFyY2hJbmRleCgpIHtcclxuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3QucmVpbmRleCgpLnN1YnNjcmliZSgoeyByZWluZGV4IH0pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmluZm8oXygnY2F0YWxvZy5yZWluZGV4aW5nJykpO1xyXG4gICAgICAgICAgICB0aGlzLmpvYlF1ZXVlU2VydmljZS5hZGRKb2IocmVpbmRleC5pZCwgam9iID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChqb2Iuc3RhdGUgPT09IEpvYlN0YXRlLkNPTVBMRVRFRCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRpbWUgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoKS5mb3JtYXQoam9iLmR1cmF0aW9uIHx8IDApO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2NhdGFsb2cucmVpbmRleC1zdWNjZXNzZnVsJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY291bnQ6IGpvYi5yZXN1bHQuaW5kZXhlZEl0ZW1Db3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZSxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKF8oJ2NhdGFsb2cucmVpbmRleC1lcnJvcicpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZGVsZXRlUHJvZHVjdChwcm9kdWN0SWQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5kaWFsb2coe1xyXG4gICAgICAgICAgICAgICAgdGl0bGU6IF8oJ2NhdGFsb2cuY29uZmlybS1kZWxldGUtcHJvZHVjdCcpLFxyXG4gICAgICAgICAgICAgICAgYnV0dG9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHsgdHlwZTogJ3NlY29uZGFyeScsIGxhYmVsOiBfKCdjb21tb24uY2FuY2VsJykgfSxcclxuICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICdkYW5nZXInLCBsYWJlbDogXygnY29tbW9uLmRlbGV0ZScpLCByZXR1cm5WYWx1ZTogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAocmVzcG9uc2UgPT4gKHJlc3BvbnNlID8gdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0LmRlbGV0ZVByb2R1Y3QocHJvZHVjdElkKSA6IEVNUFRZKSksXHJcbiAgICAgICAgICAgICAgICAvLyBTaG9ydCBkZWxheSB0byBhbGxvdyB0aGUgcHJvZHVjdCB0byBiZSByZW1vdmVkIGZyb20gdGhlIHNlYXJjaCBpbmRleCBiZWZvcmVcclxuICAgICAgICAgICAgICAgIC8vIHJlZnJlc2hpbmcuXHJcbiAgICAgICAgICAgICAgICBkZWxheSg1MDApLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnY29tbW9uLm5vdGlmeS1kZWxldGUtc3VjY2VzcycpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ1Byb2R1Y3QnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKF8oJ2NvbW1vbi5ub3RpZnktZGVsZXRlLWVycm9yJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnUHJvZHVjdCcsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcbiIsIjx2ZHItcGFnZS1ibG9jaz5cclxuICAgIDx2ZHItYWN0aW9uLWJhcj5cclxuICAgICAgICA8dmRyLWFiLWxlZnQ+XHJcbiAgICAgICAgICAgIDx2ZHItbGFuZ3VhZ2Utc2VsZWN0b3JcclxuICAgICAgICAgICAgICAgIFthdmFpbGFibGVMYW5ndWFnZUNvZGVzXT1cImF2YWlsYWJsZUxhbmd1YWdlcyQgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICBbY3VycmVudExhbmd1YWdlQ29kZV09XCJjb250ZW50TGFuZ3VhZ2UkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgKGxhbmd1YWdlQ29kZUNoYW5nZSk9XCJzZXRMYW5ndWFnZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgPjwvdmRyLWxhbmd1YWdlLXNlbGVjdG9yPlxyXG4gICAgICAgIDwvdmRyLWFiLWxlZnQ+XHJcbiAgICAgICAgPHZkci1hYi1yaWdodD5cclxuICAgICAgICAgICAgPHZkci1hY3Rpb24tYmFyLWl0ZW1zIGxvY2F0aW9uSWQ9XCJwcm9kdWN0LWxpc3RcIj48L3Zkci1hY3Rpb24tYmFyLWl0ZW1zPlxyXG4gICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24gcHJpbWFyeSBtci0xXCJcclxuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnLi9jcmVhdGUnXVwiXHJcbiAgICAgICAgICAgICAgICAqdmRySWZQZXJtaXNzaW9ucz1cIlsnQ3JlYXRlQ2F0YWxvZycsICdDcmVhdGVQcm9kdWN0J11cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJwbHVzXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgIHt7ICdjYXRhbG9nLmNyZWF0ZS1uZXctcHJvZHVjdCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8dmRyLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImljb24tYnV0dG9uXCIgdmRyRHJvcGRvd25UcmlnZ2VyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImVsbGlwc2lzLXZlcnRpY2FsXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPHZkci1kcm9wZG93bi1tZW51IHZkclBvc2l0aW9uPVwiYm90dG9tLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgdmRyRHJvcGRvd25JdGVtIChjbGljayk9XCJyZWJ1aWxkU2VhcmNoSW5kZXgoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJyZWZyZXNoXCIgY2xhc3M9XCJcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnY2F0YWxvZy5yZWJ1aWxkLXNlYXJjaC1pbmRleCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvdmRyLWRyb3Bkb3duLW1lbnU+XHJcbiAgICAgICAgICAgIDwvdmRyLWRyb3Bkb3duPlxyXG4gICAgICAgIDwvdmRyLWFiLXJpZ2h0PlxyXG4gICAgPC92ZHItYWN0aW9uLWJhcj5cclxuPC92ZHItcGFnZS1ibG9jaz5cclxuPHZkci1kYXRhLXRhYmxlLTJcclxuICAgIGNsYXNzPVwibXQtMlwiXHJcbiAgICBpZD1cInByb2R1Y3QtbGlzdFwiXHJcbiAgICBbaXRlbXNdPVwiaXRlbXMkIHwgYXN5bmNcIlxyXG4gICAgW2l0ZW1zUGVyUGFnZV09XCJpdGVtc1BlclBhZ2UkIHwgYXN5bmNcIlxyXG4gICAgW3RvdGFsSXRlbXNdPVwidG90YWxJdGVtcyQgfCBhc3luY1wiXHJcbiAgICBbY3VycmVudFBhZ2VdPVwiY3VycmVudFBhZ2UkIHwgYXN5bmNcIlxyXG4gICAgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiXHJcbiAgICAocGFnZUNoYW5nZSk9XCJzZXRQYWdlTnVtYmVyKCRldmVudClcIlxyXG4gICAgKGl0ZW1zUGVyUGFnZUNoYW5nZSk9XCJzZXRJdGVtc1BlclBhZ2UoJGV2ZW50KVwiXHJcbj5cclxuICAgIDx2ZHItYnVsay1hY3Rpb24tbWVudVxyXG4gICAgICAgIGxvY2F0aW9uSWQ9XCJwcm9kdWN0LWxpc3RcIlxyXG4gICAgICAgIFtob3N0Q29tcG9uZW50XT1cInRoaXNcIlxyXG4gICAgICAgIFtzZWxlY3Rpb25NYW5hZ2VyXT1cInNlbGVjdGlvbk1hbmFnZXJcIlxyXG4gICAgPjwvdmRyLWJ1bGstYWN0aW9uLW1lbnU+XHJcbiAgICA8dmRyLWR0Mi1zZWFyY2hcclxuICAgICAgICBbc2VhcmNoVGVybUNvbnRyb2xdPVwic2VhcmNoVGVybUNvbnRyb2xcIlxyXG4gICAgICAgIFtzZWFyY2hUZXJtUGxhY2Vob2xkZXJdPVwiJ3NldHRpbmdzLnNlYXJjaC1ieS1wcm9kdWN0LW5hbWUtb3Itc2t1JyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAvPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidjb21tb24uaWQnIHwgdHJhbnNsYXRlXCIgaWQ9XCJpZFwiIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiIFtzb3J0XT1cInNvcnRzLmdldCgnaWQnKVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcHJvZHVjdD1cIml0ZW1cIj5cclxuICAgICAgICAgICAge3sgcHJvZHVjdC5pZCB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uXHJcbiAgICAgICAgW2hlYWRpbmddPVwiJ2NvbW1vbi5jcmVhdGVkLWF0JyB8IHRyYW5zbGF0ZVwiIGlkPVwiY3JlYXRlZC1hdFwiXHJcbiAgICAgICAgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCJcclxuICAgICAgICBbc29ydF09XCJzb3J0cy5nZXQoJ2NyZWF0ZWRBdCcpXCJcclxuICAgID5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXByb2R1Y3Q9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIHt7IHByb2R1Y3QuY3JlYXRlZEF0IHwgbG9jYWxlRGF0ZSA6ICdzaG9ydCcgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtblxyXG4gICAgICAgIFtoZWFkaW5nXT1cIidjb21tb24udXBkYXRlZC1hdCcgfCB0cmFuc2xhdGVcIiBpZD1cInVwZGF0ZWQtYXRcIlxyXG4gICAgICAgIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3NvcnRdPVwic29ydHMuZ2V0KCd1cGRhdGVkQXQnKVwiXHJcbiAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1wcm9kdWN0PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICB7eyBwcm9kdWN0LnVwZGF0ZWRBdCB8IGxvY2FsZURhdGUgOiAnc2hvcnQnIH19XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NvbW1vbi5pbWFnZScgfCB0cmFuc2xhdGVcIiBpZD1cImltYWdlXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1wcm9kdWN0PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2UtcGxhY2Vob2xkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInByb2R1Y3QuZmVhdHVyZWRBc3NldCBhcyBhc3NldDsgZWxzZSBpbWFnZVBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImFzc2V0IHwgYXNzZXRQcmV2aWV3IDogJ3RpbnknXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2ltYWdlUGxhY2Vob2xkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImltYWdlXCIgc2l6ZT1cIjQ4XCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidjYXRhbG9nLm5hbWUnIHwgdHJhbnNsYXRlXCIgaWQ9XCJuYW1lXCIgW29wdGlvbmFsXT1cImZhbHNlXCIgW3NvcnRdPVwic29ydHMuZ2V0KCduYW1lJylcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXByb2R1Y3Q9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwiYnV0dG9uLWdob3N0XCIgW3JvdXRlckxpbmtdPVwiWycuLycsIHByb2R1Y3QuaWRdXCJcclxuICAgICAgICAgICAgICAgID48c3Bhbj57eyBwcm9kdWN0Lm5hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgICAgID48Y2xyLWljb24gc2hhcGU9XCJhcnJvdyByaWdodFwiXHJcbiAgICAgICAgICAgIC8+PC9hPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidjb21tb24uc2x1ZycgfCB0cmFuc2xhdGVcIiBpZD1cInNsdWdcIiBbc29ydF09XCJzb3J0cy5nZXQoJ3NsdWcnKVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcHJvZHVjdD1cIml0ZW1cIj5cclxuICAgICAgICAgICAge3sgcHJvZHVjdC5zbHVnIH19XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NvbW1vbi5lbmFibGVkJyB8IHRyYW5zbGF0ZVwiIGlkPVwiZW5hYmxlZFwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcHJvZHVjdD1cIml0ZW1cIj5cclxuICAgICAgICAgICAgPHZkci1jaGlwICpuZ0lmPVwicHJvZHVjdC5lbmFibGVkXCIgY29sb3JUeXBlPVwic3VjY2Vzc1wiPnt7XHJcbiAgICAgICAgICAgICAgICAnY29tbW9uLmVuYWJsZWQnIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgIH19PC92ZHItY2hpcD5cclxuICAgICAgICAgICAgPHZkci1jaGlwICpuZ0lmPVwiIXByb2R1Y3QuZW5hYmxlZFwiIGNvbG9yVHlwZT1cIndhcm5pbmdcIj57e1xyXG4gICAgICAgICAgICAgICAgJ2NvbW1vbi5kaXNhYmxlZCcgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgfX08L3Zkci1jaGlwPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidjYXRhbG9nLm51bWJlci1vZi12YXJpYW50cycgfCB0cmFuc2xhdGVcIiBpZD1cIm51bWJlci1vZi12YXJpYW50c1wiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcHJvZHVjdD1cIml0ZW1cIj5cclxuICAgICAgICAgICAge3sgJ2NhdGFsb2cudmFyaWFudC1jb3VudCcgfCB0cmFuc2xhdGUgOiB7IGNvdW50OiBwcm9kdWN0LnZhcmlhbnRMaXN0Py50b3RhbEl0ZW1zIH0gfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWN1c3RvbS1maWVsZC1jb2x1bW5cclxuICAgICAgICAqbmdGb3I9XCJsZXQgY3VzdG9tRmllbGQgb2YgY3VzdG9tRmllbGRzXCJcclxuICAgICAgICBbY3VzdG9tRmllbGRdPVwiY3VzdG9tRmllbGRcIlxyXG4gICAgICAgIFtzb3J0c109XCJzb3J0c1wiXHJcbiAgICAvPlxyXG48L3Zkci1kYXRhLXRhYmxlLTI+XHJcbiJdfQ==
|
|
@@ -64,29 +64,50 @@ export class ProductVariantListComponent extends TypedBaseListComponent {
|
|
|
64
64
|
this.configure({
|
|
65
65
|
document: ProductVariantListQueryDocument,
|
|
66
66
|
getItems: data => data.productVariants,
|
|
67
|
-
setVariables: (skip, take) =>
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
67
|
+
setVariables: (skip, take) => {
|
|
68
|
+
const searchTerm = this.searchTermControl.value;
|
|
69
|
+
const filterParam = { _and: [] };
|
|
70
|
+
const filterInput = this.filters.createFilterInput();
|
|
71
|
+
if (Object.keys(filterInput).length) {
|
|
72
|
+
filterParam._and?.push(filterInput);
|
|
73
|
+
}
|
|
74
|
+
if (searchTerm) {
|
|
75
|
+
filterParam._and?.push({
|
|
76
|
+
_or: [
|
|
77
|
+
{
|
|
78
|
+
name: { contains: searchTerm },
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
sku: { contains: searchTerm },
|
|
82
|
+
},
|
|
83
|
+
],
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
if (this.productId) {
|
|
87
|
+
filterParam._and?.push({
|
|
88
|
+
productId: {
|
|
89
|
+
eq: this.productId,
|
|
74
90
|
},
|
|
75
|
-
|
|
76
|
-
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
options: {
|
|
95
|
+
skip,
|
|
96
|
+
take,
|
|
97
|
+
filter: filterParam,
|
|
98
|
+
sort: this.sorts.createSortInput(),
|
|
77
99
|
},
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
}),
|
|
100
|
+
};
|
|
101
|
+
},
|
|
81
102
|
refreshListOnChanges: [this.sorts.valueChanges, this.filters.valueChanges],
|
|
82
103
|
});
|
|
83
104
|
}
|
|
84
105
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ProductVariantListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
85
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: ProductVariantListComponent, selector: "vdr-product-variant-list", inputs: { productId: "productId", hideLanguageSelect: "hideLanguageSelect", dataTableId: "dataTableId" }, usesInheritance: true, ngImport: i0, template: "<vdr-page-block *ngIf=\"!hideLanguageSelect\">\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n [id]=\"dataTableId || 'product-variant-list'\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"product-variant-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'
|
|
106
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: ProductVariantListComponent, selector: "vdr-product-variant-list", inputs: { productId: "productId", hideLanguageSelect: "hideLanguageSelect", dataTableId: "dataTableId" }, usesInheritance: true, ngImport: i0, template: "<vdr-page-block *ngIf=\"!hideLanguageSelect\">\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n [id]=\"dataTableId || 'product-variant-list'\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"product-variant-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'settings.search-by-product-name-or-sku' | translate\"\r\n />\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\" [sort]=\"sorts.get('id')\">\r\n <ng-template let-variant=\"item\">\r\n {{ variant.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-variant=\"item\">\r\n {{ variant.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-variant=\"item\">\r\n {{ variant.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.image' | translate\" id=\"image\">\r\n <ng-template let-variant=\"item\">\r\n <div class=\"image-placeholder\">\r\n <img\r\n *ngIf=\"variant.featuredAsset as asset; else imagePlaceholder\"\r\n [src]=\"asset | assetPreview : 'tiny'\"\r\n />\r\n <ng-template #imagePlaceholder>\r\n <div class=\"placeholder\">\r\n <clr-icon shape=\"image\" size=\"48\"></clr-icon>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'catalog.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('name')\">\r\n <ng-template let-variant=\"item\">\r\n <a\r\n class=\"button-ghost\"\r\n [routerLink]=\"['/catalog/products', variant.productId, 'variants', variant.id]\"\r\n ><span>{{ variant.name }}</span\r\n ><clr-icon shape=\"arrow right\"\r\n /></a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'catalog.sku' | translate\" id=\"sku\" [sort]=\"sorts.get('sku')\">\r\n <ng-template let-variant=\"item\">\r\n {{ variant.sku }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.enabled' | translate\" id=\"enabled\">\r\n <ng-template let-variant=\"item\">\r\n <vdr-chip *ngIf=\"variant.enabled\" colorType=\"success\">{{\r\n 'common.enabled' | translate\r\n }}</vdr-chip>\r\n <vdr-chip *ngIf=\"!variant.enabled\" colorType=\"warning\">{{\r\n 'common.disabled' | translate\r\n }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.price' | translate\" id=\"price\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('price')\"\r\n >\r\n <ng-template let-variant=\"item\">\r\n {{ variant.price | localeCurrency : variant.currencyCode }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.price-with-tax' | translate\" id=\"price-with-tax\" [sort]=\"sorts.get('priceWithTax')\">\r\n <ng-template let-variant=\"item\">\r\n {{ variant.priceWithTax | localeCurrency : variant.currencyCode }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n\r\n <vdr-dt2-column [heading]=\"'catalog.stock-on-hand' | translate\" id=\"stock-on-hand\" [hiddenByDefault]=\"false\">\r\n <ng-template let-variant=\"item\">\r\n <vdr-chip *ngFor=\"let stockLevel of variant.stockLevels\" [title]=\"stockLevel.stockLocation?.name\">\r\n <div class=\"flex center\">\r\n <div>\r\n {{ stockLevel.stockOnHand\r\n }}<span class=\"ml-1\" *ngIf=\"stockLevel.stockAllocated\"\r\n >({{ stockLevel.stockAllocated }} allocated)</span\r\n >\r\n </div>\r\n </div>\r\n </vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column *ngFor=\"let field of customFields\" [customField]=\"field\" [sorts]=\"sorts\" />\r\n</vdr-data-table-2>\r\n", styles: [".image-col{width:70px}.image-placeholder{width:50px;height:50px;margin-top:calc(var(--space-unit) * -1);margin-bottom:calc(var(--space-unit) * -1);background-color:var(--color-component-bg-200)}.image-placeholder img{border-radius:var(--border-radius-img)}.image-placeholder .placeholder{text-align:center;color:var(--color-grey-300)}.search-form{display:flex;align-items:center;width:100%}vdr-product-search-input{min-width:300px}@media screen and (max-width: 768px){vdr-product-search-input{min-width:100px}}.search-settings-menu{margin:0 12px}td.disabled{background-color:var(--color-component-bg-200)}.search-index-button{position:relative}.search-index-button vdr-status-badge{right:0;top:0}.run-updates-button{position:relative}.run-updates-button vdr-status-badge{left:10px;top:10px}.edit-button{margin-inline-end:24px}.sku{color:var(--color-text-300)}\n"], dependencies: [{ kind: "directive", type: i1.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i4.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { kind: "component", type: i4.LanguageSelectorComponent, selector: "vdr-language-selector", inputs: ["currentLanguageCode", "availableLanguageCodes", "disabled"], outputs: ["languageCodeChange"] }, { kind: "component", type: i4.BulkActionMenuComponent, selector: "vdr-bulk-action-menu", inputs: ["locationId", "selectionManager", "hostComponent"] }, { kind: "component", type: i4.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange"] }, { kind: "component", type: i4.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["id", "expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i4.DataTable2SearchComponent, selector: "vdr-dt2-search", inputs: ["searchTermControl", "searchTermPlaceholder"] }, { kind: "component", type: i4.DataTableCustomFieldColumnComponent, selector: "vdr-dt2-custom-field-column", inputs: ["customField", "sorts"], exportAs: ["row"] }, { kind: "component", type: i4.PageBlockComponent, selector: "vdr-page-block" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i4.AssetPreviewPipe, name: "assetPreview" }, { kind: "pipe", type: i4.LocaleDatePipe, name: "localeDate" }, { kind: "pipe", type: i4.LocaleCurrencyPipe, name: "localeCurrency" }] }); }
|
|
86
107
|
}
|
|
87
108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ProductVariantListComponent, decorators: [{
|
|
88
109
|
type: Component,
|
|
89
|
-
args: [{ selector: 'vdr-product-variant-list', template: "<vdr-page-block *ngIf=\"!hideLanguageSelect\">\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n [id]=\"dataTableId || 'product-variant-list'\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"product-variant-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'
|
|
110
|
+
args: [{ selector: 'vdr-product-variant-list', template: "<vdr-page-block *ngIf=\"!hideLanguageSelect\">\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n [id]=\"dataTableId || 'product-variant-list'\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"product-variant-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'settings.search-by-product-name-or-sku' | translate\"\r\n />\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\" [sort]=\"sorts.get('id')\">\r\n <ng-template let-variant=\"item\">\r\n {{ variant.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-variant=\"item\">\r\n {{ variant.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-variant=\"item\">\r\n {{ variant.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.image' | translate\" id=\"image\">\r\n <ng-template let-variant=\"item\">\r\n <div class=\"image-placeholder\">\r\n <img\r\n *ngIf=\"variant.featuredAsset as asset; else imagePlaceholder\"\r\n [src]=\"asset | assetPreview : 'tiny'\"\r\n />\r\n <ng-template #imagePlaceholder>\r\n <div class=\"placeholder\">\r\n <clr-icon shape=\"image\" size=\"48\"></clr-icon>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'catalog.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('name')\">\r\n <ng-template let-variant=\"item\">\r\n <a\r\n class=\"button-ghost\"\r\n [routerLink]=\"['/catalog/products', variant.productId, 'variants', variant.id]\"\r\n ><span>{{ variant.name }}</span\r\n ><clr-icon shape=\"arrow right\"\r\n /></a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'catalog.sku' | translate\" id=\"sku\" [sort]=\"sorts.get('sku')\">\r\n <ng-template let-variant=\"item\">\r\n {{ variant.sku }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.enabled' | translate\" id=\"enabled\">\r\n <ng-template let-variant=\"item\">\r\n <vdr-chip *ngIf=\"variant.enabled\" colorType=\"success\">{{\r\n 'common.enabled' | translate\r\n }}</vdr-chip>\r\n <vdr-chip *ngIf=\"!variant.enabled\" colorType=\"warning\">{{\r\n 'common.disabled' | translate\r\n }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.price' | translate\" id=\"price\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('price')\"\r\n >\r\n <ng-template let-variant=\"item\">\r\n {{ variant.price | localeCurrency : variant.currencyCode }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.price-with-tax' | translate\" id=\"price-with-tax\" [sort]=\"sorts.get('priceWithTax')\">\r\n <ng-template let-variant=\"item\">\r\n {{ variant.priceWithTax | localeCurrency : variant.currencyCode }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n\r\n <vdr-dt2-column [heading]=\"'catalog.stock-on-hand' | translate\" id=\"stock-on-hand\" [hiddenByDefault]=\"false\">\r\n <ng-template let-variant=\"item\">\r\n <vdr-chip *ngFor=\"let stockLevel of variant.stockLevels\" [title]=\"stockLevel.stockLocation?.name\">\r\n <div class=\"flex center\">\r\n <div>\r\n {{ stockLevel.stockOnHand\r\n }}<span class=\"ml-1\" *ngIf=\"stockLevel.stockAllocated\"\r\n >({{ stockLevel.stockAllocated }} allocated)</span\r\n >\r\n </div>\r\n </div>\r\n </vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column *ngFor=\"let field of customFields\" [customField]=\"field\" [sorts]=\"sorts\" />\r\n</vdr-data-table-2>\r\n", styles: [".image-col{width:70px}.image-placeholder{width:50px;height:50px;margin-top:calc(var(--space-unit) * -1);margin-bottom:calc(var(--space-unit) * -1);background-color:var(--color-component-bg-200)}.image-placeholder img{border-radius:var(--border-radius-img)}.image-placeholder .placeholder{text-align:center;color:var(--color-grey-300)}.search-form{display:flex;align-items:center;width:100%}vdr-product-search-input{min-width:300px}@media screen and (max-width: 768px){vdr-product-search-input{min-width:100px}}.search-settings-menu{margin:0 12px}td.disabled{background-color:var(--color-component-bg-200)}.search-index-button{position:relative}.search-index-button vdr-status-badge{right:0;top:0}.run-updates-button{position:relative}.run-updates-button vdr-status-badge{left:10px;top:10px}.edit-button{margin-inline-end:24px}.sku{color:var(--color-text-300)}\n"] }]
|
|
90
111
|
}], ctorParameters: function () { return []; }, propDecorators: { productId: [{
|
|
91
112
|
type: Input
|
|
92
113
|
}], hideLanguageSelect: [{
|
|
@@ -94,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
|
|
|
94
115
|
}], dataTableId: [{
|
|
95
116
|
type: Input
|
|
96
117
|
}] } });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC12YXJpYW50LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jYXRhbG9nL3NyYy9jb21wb25lbnRzL3Byb2R1Y3QtdmFyaWFudC1saXN0L3Byb2R1Y3QtdmFyaWFudC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnQtbGlzdC9wcm9kdWN0LXZhcmlhbnQtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFFSCwrQkFBK0IsRUFDL0Isc0JBQXNCLEdBQ3pCLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7QUFPaEMsTUFBTSxPQUFPLDJCQUNULFNBQVEsc0JBQWlGO0lBMER6RjtRQUNJLEtBQUssRUFBRSxDQUFDO1FBdkRILHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUUzQixpQkFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNELFlBQU8sR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7YUFDM0MsV0FBVyxFQUFFO2FBQ2IsY0FBYyxFQUFFO2FBQ2hCLFVBQVUsQ0FBQztZQUNSO2dCQUNJLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7Z0JBQ3RCLEtBQUssRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDO2dCQUN2QixXQUFXLEVBQUUsTUFBTTthQUN0QjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2dCQUNmLElBQUksRUFBRSxFQUFFLElBQUksRUFB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b20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXJrZXIgYXMgXyB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcic7XHJcbmltcG9ydCB7XHJcbiAgICBEYXRhVGFibGVMb2NhdGlvbklkLFxyXG4gICAgUHJvZHVjdFZhcmlhbnRMaXN0UXVlcnlEb2N1bWVudCxcclxuICAgIFR5cGVkQmFzZUxpc3RDb21wb25lbnQsXHJcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLXByb2R1Y3QtdmFyaWFudC1saXN0JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcm9kdWN0LXZhcmlhbnQtbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9wcm9kdWN0LXZhcmlhbnQtbGlzdC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdFZhcmlhbnRMaXN0Q29tcG9uZW50XHJcbiAgICBleHRlbmRzIFR5cGVkQmFzZUxpc3RDb21wb25lbnQ8dHlwZW9mIFByb2R1Y3RWYXJpYW50TGlzdFF1ZXJ5RG9jdW1lbnQsICdwcm9kdWN0VmFyaWFudHMnPlxyXG4gICAgaW1wbGVtZW50cyBPbkluaXRcclxue1xyXG4gICAgQElucHV0KCkgcHJvZHVjdElkPzogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgaGlkZUxhbmd1YWdlU2VsZWN0ID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBkYXRhVGFibGVJZDogRGF0YVRhYmxlTG9jYXRpb25JZCB8IHVuZGVmaW5lZDtcclxuICAgIHJlYWRvbmx5IGN1c3RvbUZpZWxkcyA9IHRoaXMuZ2V0Q3VzdG9tRmllbGRDb25maWcoJ1Byb2R1Y3RWYXJpYW50Jyk7XHJcbiAgICByZWFkb25seSBmaWx0ZXJzID0gdGhpcy5jcmVhdGVGaWx0ZXJDb2xsZWN0aW9uKClcclxuICAgICAgICAuYWRkSWRGaWx0ZXIoKVxyXG4gICAgICAgIC5hZGREYXRlRmlsdGVycygpXHJcbiAgICAgICAgLmFkZEZpbHRlcnMoW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnbmFtZScsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiB7IGtpbmQ6ICd0ZXh0JyB9LFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6IF8oJ2NvbW1vbi5uYW1lJyksXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJGaWVsZDogJ25hbWUnLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnZW5hYmxlZCcsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiB7IGtpbmQ6ICdib29sZWFuJyB9LFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6IF8oJ2NvbW1vbi5lbmFibGVkJyksXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJGaWVsZDogJ2VuYWJsZWQnLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnc2t1JyxcclxuICAgICAgICAgICAgICAgIHR5cGU6IHsga2luZDogJ3RleHQnIH0sXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogXygnY2F0YWxvZy5za3UnKSxcclxuICAgICAgICAgICAgICAgIGZpbHRlckZpZWxkOiAnc2t1JyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogJ3ByaWNlJyxcclxuICAgICAgICAgICAgICAgIHR5cGU6IHsga2luZDogJ251bWJlcicsIGlucHV0VHlwZTogJ2N1cnJlbmN5JyB9LFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6IF8oJ2NvbW1vbi5wcmljZScpLFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyRmllbGQ6ICdwcmljZScsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG5hbWU6ICdwcmljZVdpdGhUYXgnLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogeyBraW5kOiAnbnVtYmVyJywgaW5wdXRUeXBlOiAnY3VycmVuY3knIH0sXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogXygnY29tbW9uLnByaWNlLXdpdGgtdGF4JyksXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJGaWVsZDogJ3ByaWNlV2l0aFRheCcsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgXSlcclxuICAgICAgICAuYWRkQ3VzdG9tRmllbGRGaWx0ZXJzKHRoaXMuY3VzdG9tRmllbGRzKVxyXG4gICAgICAgIC5jb25uZWN0VG9Sb3V0ZSh0aGlzLnJvdXRlKTtcclxuXHJcbiAgICByZWFkb25seSBzb3J0cyA9IHRoaXMuY3JlYXRlU29ydENvbGxlY3Rpb24oKVxyXG4gICAgICAgIC5hZGRTb3J0cyhbXHJcbiAgICAgICAgICAgIHsgbmFtZTogJ2lkJyB9LFxyXG4gICAgICAgICAgICB7IG5hbWU6ICdjcmVhdGVkQXQnIH0sXHJcbiAgICAgICAgICAgIHsgbmFtZTogJ3VwZGF0ZWRBdCcgfSxcclxuICAgICAgICAgICAgeyBuYW1lOiAnbmFtZScgfSxcclxuICAgICAgICAgICAgeyBuYW1lOiAnc2t1JyB9LFxyXG4gICAgICAgICAgICB7IG5hbWU6ICdwcmljZScgfSxcclxuICAgICAgICAgICAgeyBuYW1lOiAncHJpY2VXaXRoVGF4JyB9LFxyXG4gICAgICAgIF0pXHJcbiAgICAgICAgLmFkZEN1c3RvbUZpZWxkU29ydHModGhpcy5jdXN0b21GaWVsZHMpXHJcbiAgICAgICAgLmNvbm5lY3RUb1JvdXRlKHRoaXMucm91dGUpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgdGhpcy5jb25maWd1cmUoe1xyXG4gICAgICAgICAgICBkb2N1bWVudDogUHJvZHVjdFZhcmlhbnRMaXN0UXVlcnlEb2N1bWVudCxcclxuICAgICAgICAgICAgZ2V0SXRlbXM6IGRhdGEgPT4gZGF0YS5wcm9kdWN0VmFyaWFudHMsXHJcbiAgICAgICAgICAgIHNldFZhcmlhYmxlczogKHNraXAsIHRha2UpID0+ICh7XHJcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2tpcCxcclxuICAgICAgICAgICAgICAgICAgICB0YWtlLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBza3U6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zOiB0aGlzLnNlYXJjaFRlcm1Db250cm9sLnZhbHVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmZpbHRlcnMuY3JlYXRlRmlsdGVySW5wdXQoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHRoaXMucHJvZHVjdElkID8geyBwcm9kdWN0SWQ6IHsgZXE6IHRoaXMucHJvZHVjdElkIH0gfSA6IHt9KSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHNvcnQ6IHRoaXMuc29ydHMuY3JlYXRlU29ydElucHV0KCksXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgcmVmcmVzaExpc3RPbkNoYW5nZXM6IFt0aGlzLnNvcnRzLnZhbHVlQ2hhbmdlcywgdGhpcy5maWx0ZXJzLnZhbHVlQ2hhbmdlc10sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPHZkci1wYWdlLWJsb2NrICpuZ0lmPVwiIWhpZGVMYW5ndWFnZVNlbGVjdFwiPlxyXG4gICAgPHZkci1sYW5ndWFnZS1zZWxlY3RvclxyXG4gICAgICAgIFthdmFpbGFibGVMYW5ndWFnZUNvZGVzXT1cImF2YWlsYWJsZUxhbmd1YWdlcyQgfCBhc3luY1wiXHJcbiAgICAgICAgW2N1cnJlbnRMYW5ndWFnZUNvZGVdPVwiY29udGVudExhbmd1YWdlJCB8IGFzeW5jXCJcclxuICAgICAgICAobGFuZ3VhZ2VDb2RlQ2hhbmdlKT1cInNldExhbmd1YWdlKCRldmVudClcIlxyXG4gICAgPjwvdmRyLWxhbmd1YWdlLXNlbGVjdG9yPlxyXG48L3Zkci1wYWdlLWJsb2NrPlxyXG48dmRyLWRhdGEtdGFibGUtMlxyXG4gICAgY2xhc3M9XCJtdC0yXCJcclxuICAgIFtpZF09XCJkYXRhVGFibGVJZCB8fCAncHJvZHVjdC12YXJpYW50LWxpc3QnXCJcclxuICAgIFtpdGVtc109XCJpdGVtcyQgfCBhc3luY1wiXHJcbiAgICBbaXRlbXNQZXJQYWdlXT1cIml0ZW1zUGVyUGFnZSQgfCBhc3luY1wiXHJcbiAgICBbdG90YWxJdGVtc109XCJ0b3RhbEl0ZW1zJCB8IGFzeW5jXCJcclxuICAgIFtjdXJyZW50UGFnZV09XCJjdXJyZW50UGFnZSQgfCBhc3luY1wiXHJcbiAgICBbZmlsdGVyc109XCJmaWx0ZXJzXCJcclxuICAgIChwYWdlQ2hhbmdlKT1cInNldFBhZ2VOdW1iZXIoJGV2ZW50KVwiXHJcbiAgICAoaXRlbXNQZXJQYWdlQ2hhbmdlKT1cInNldEl0ZW1zUGVyUGFnZSgkZXZlbnQpXCJcclxuPlxyXG4gICAgPHZkci1idWxrLWFjdGlvbi1tZW51XHJcbiAgICAgICAgbG9jYXRpb25JZD1cInByb2R1Y3QtdmFyaWFudC1saXN0XCJcclxuICAgICAgICBbaG9zdENvbXBvbmVudF09XCJ0aGlzXCJcclxuICAgICAgICBbc2VsZWN0aW9uTWFuYWdlcl09XCJzZWxlY3Rpb25NYW5hZ2VyXCJcclxuICAgIC8+XHJcbiAgICA8dmRyLWR0Mi1zZWFyY2hcclxuICAgICAgICBbc2VhcmNoVGVybUNvbnRyb2xdPVwic2VhcmNoVGVybUNvbnRyb2xcIlxyXG4gICAgICAgIFtzZWFyY2hUZXJtUGxhY2Vob2xkZXJdPVwiJ2NhdGFsb2cuZmlsdGVyLWJ5LXNrdScgfCB0cmFuc2xhdGVcIlxyXG4gICAgLz5cclxuICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLmlkJyB8IHRyYW5zbGF0ZVwiIGlkPVwiaWRcIiBbaGlkZGVuQnlEZWZhdWx0XT1cInRydWVcIiBbc29ydF09XCJzb3J0cy5nZXQoJ2lkJylcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXZhcmlhbnQ9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIHt7IHZhcmlhbnQuaWQgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtblxyXG4gICAgICAgIFtoZWFkaW5nXT1cIidjb21tb24uY3JlYXRlZC1hdCcgfCB0cmFuc2xhdGVcIiBpZD1cImNyZWF0ZWQtYXRcIlxyXG4gICAgICAgIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3NvcnRdPVwic29ydHMuZ2V0KCdjcmVhdGVkQXQnKVwiXHJcbiAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YXJpYW50PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICB7eyB2YXJpYW50LmNyZWF0ZWRBdCB8IGxvY2FsZURhdGUgOiAnc2hvcnQnIH19XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICA8dmRyLWR0Mi1jb2x1bW5cclxuICAgICAgICBbaGVhZGluZ109XCInY29tbW9uLnVwZGF0ZWQtYXQnIHwgdHJhbnNsYXRlXCIgaWQ9XCJ1cGRhdGVkLWF0XCJcclxuICAgICAgICBbaGlkZGVuQnlEZWZhdWx0XT1cInRydWVcIlxyXG4gICAgICAgIFtzb3J0XT1cInNvcnRzLmdldCgndXBkYXRlZEF0JylcIlxyXG4gICAgPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdmFyaWFudD1cIml0ZW1cIj5cclxuICAgICAgICAgICAge3sgdmFyaWFudC51cGRhdGVkQXQgfCBsb2NhbGVEYXRlIDogJ3Nob3J0JyB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidjb21tb24uaW1hZ2UnIHwgdHJhbnNsYXRlXCIgaWQ9XCJpbWFnZVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdmFyaWFudD1cIml0ZW1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLXBsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ2YXJpYW50LmZlYXR1cmVkQXNzZXQgYXMgYXNzZXQ7IGVsc2UgaW1hZ2VQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3NyY109XCJhc3NldCB8IGFzc2V0UHJldmlldyA6ICd0aW55J1wiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpbWFnZVBsYWNlaG9sZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFjZWhvbGRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJpbWFnZVwiIHNpemU9XCI0OFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY2F0YWxvZy5uYW1lJyB8IHRyYW5zbGF0ZVwiIGlkPVwibmFtZVwiIFtvcHRpb25hbF09XCJmYWxzZVwiIFtzb3J0XT1cInNvcnRzLmdldCgnbmFtZScpXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YXJpYW50PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24tZ2hvc3RcIlxyXG4gICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvY2F0YWxvZy9wcm9kdWN0cycsIHZhcmlhbnQucHJvZHVjdElkLCAndmFyaWFudHMnLCB2YXJpYW50LmlkXVwiXHJcbiAgICAgICAgICAgICAgICA+PHNwYW4+e3sgdmFyaWFudC5uYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgICAgICA+PGNsci1pY29uIHNoYXBlPVwiYXJyb3cgcmlnaHRcIlxyXG4gICAgICAgICAgICAvPjwvYT5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY2F0YWxvZy5za3UnIHwgdHJhbnNsYXRlXCIgaWQ9XCJza3VcIiBbc29ydF09XCJzb3J0cy5nZXQoJ3NrdScpXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YXJpYW50PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICB7eyB2YXJpYW50LnNrdSB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidjb21tb24uZW5hYmxlZCcgfCB0cmFuc2xhdGVcIiBpZD1cImVuYWJsZWRcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXZhcmlhbnQ9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIDx2ZHItY2hpcCAqbmdJZj1cInZhcmlhbnQuZW5hYmxlZFwiIGNvbG9yVHlwZT1cInN1Y2Nlc3NcIj57e1xyXG4gICAgICAgICAgICAgICAgJ2NvbW1vbi5lbmFibGVkJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICB9fTwvdmRyLWNoaXA+XHJcbiAgICAgICAgICAgIDx2ZHItY2hpcCAqbmdJZj1cIiF2YXJpYW50LmVuYWJsZWRcIiBjb2xvclR5cGU9XCJ3YXJuaW5nXCI+e3tcclxuICAgICAgICAgICAgICAgICdjb21tb24uZGlzYWJsZWQnIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgIH19PC92ZHItY2hpcD5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtblxyXG4gICAgICAgIFtoZWFkaW5nXT1cIidjb21tb24ucHJpY2UnIHwgdHJhbnNsYXRlXCIgaWQ9XCJwcmljZVwiXHJcbiAgICAgICAgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCJcclxuICAgICAgICBbc29ydF09XCJzb3J0cy5nZXQoJ3ByaWNlJylcIlxyXG4gICAgPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdmFyaWFudD1cIml0ZW1cIj5cclxuICAgICAgICAgICAge3sgdmFyaWFudC5wcmljZSB8IGxvY2FsZUN1cnJlbmN5IDogdmFyaWFudC5jdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLnByaWNlLXdpdGgtdGF4JyB8IHRyYW5zbGF0ZVwiIGlkPVwicHJpY2Utd2l0aC10YXhcIiBbc29ydF09XCJzb3J0cy5nZXQoJ3ByaWNlV2l0aFRheCcpXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YXJpYW50PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICB7eyB2YXJpYW50LnByaWNlV2l0aFRheCB8IGxvY2FsZUN1cnJlbmN5IDogdmFyaWFudC5jdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuXHJcbiAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NhdGFsb2cuc3RvY2stb24taGFuZCcgfCB0cmFuc2xhdGVcIiBpZD1cInN0b2NrLW9uLWhhbmRcIiBbaGlkZGVuQnlEZWZhdWx0XT1cImZhbHNlXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YXJpYW50PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICA8dmRyLWNoaXAgKm5nRm9yPVwibGV0IHN0b2NrTGV2ZWwgb2YgdmFyaWFudC5zdG9ja0xldmVsc1wiIFt0aXRsZV09XCJzdG9ja0xldmVsLnN0b2NrTG9jYXRpb24/Lm5hbWVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHN0b2NrTGV2ZWwuc3RvY2tPbkhhbmRcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX08c3BhbiBjbGFzcz1cIm1sLTFcIiAqbmdJZj1cInN0b2NrTGV2ZWwuc3RvY2tBbGxvY2F0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPih7eyBzdG9ja0xldmVsLnN0b2NrQWxsb2NhdGVkIH19IGFsbG9jYXRlZCk8L3NwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvdmRyLWNoaXA+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICA8dmRyLWR0Mi1jdXN0b20tZmllbGQtY29sdW1uICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBjdXN0b21GaWVsZHNcIiBbY3VzdG9tRmllbGRdPVwiZmllbGRcIiBbc29ydHNdPVwic29ydHNcIiAvPlxyXG48L3Zkci1kYXRhLXRhYmxlLTI+XHJcbiJdfQ==
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC12YXJpYW50LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jYXRhbG9nL3NyYy9jb21wb25lbnRzL3Byb2R1Y3QtdmFyaWFudC1saXN0L3Byb2R1Y3QtdmFyaWFudC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnQtbGlzdC9wcm9kdWN0LXZhcmlhbnQtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFJSCwrQkFBK0IsRUFDL0Isc0JBQXNCLEdBQ3pCLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7QUFPaEMsTUFBTSxPQUFPLDJCQUNULFNBQVEsc0JBQWlGO0lBMER6RjtRQUNJLEtBQUssRUFBRSxDQUFDO1FBdkRILHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUUzQixpQkFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNELFlBQU8sR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7YUFDM0MsV0FBVyxFQUFFO2FBQ2IsY0FBYyxFQUFFO2FBQ2hCLFVBQVUsQ0FBQztZQUNSO2dCQUNJLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7Z0JBQ3RCLEtBQUssRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDO2dCQUN2QixXQUFXLEVBQUUsTUFBTTthQUN0QjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2dCQUNmLElBQUksRUFBRSxFQUFFLElBQUksRUFB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TUFBTSxFQUFFLFdBQVc7d0JBQ25CLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRTtxQkFDckM7aUJBQ0osQ0FBQztZQUNOLENBQUM7WUFDRCxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO1NBQzdFLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBckdRLDJCQUEyQjtrR0FBM0IsMkJBQTJCLGlNQ2Z4QywwM0tBeUhBOzsyRkQxR2EsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNJLDBCQUEwQjswRUFRM0IsU0FBUztzQkFBakIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXJrZXIgYXMgXyB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcic7XHJcbmltcG9ydCB7XHJcbiAgICBEYXRhVGFibGVMb2NhdGlvbklkLFxyXG4gICAgTG9naWNhbE9wZXJhdG9yLFxyXG4gICAgUHJvZHVjdFZhcmlhbnRGaWx0ZXJQYXJhbWV0ZXIsXHJcbiAgICBQcm9kdWN0VmFyaWFudExpc3RRdWVyeURvY3VtZW50LFxyXG4gICAgVHlwZWRCYXNlTGlzdENvbXBvbmVudCxcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItcHJvZHVjdC12YXJpYW50LWxpc3QnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtdmFyaWFudC1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3Byb2R1Y3QtdmFyaWFudC1saXN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWN0VmFyaWFudExpc3RDb21wb25lbnRcclxuICAgIGV4dGVuZHMgVHlwZWRCYXNlTGlzdENvbXBvbmVudDx0eXBlb2YgUHJvZHVjdFZhcmlhbnRMaXN0UXVlcnlEb2N1bWVudCwgJ3Byb2R1Y3RWYXJpYW50cyc+XHJcbiAgICBpbXBsZW1lbnRzIE9uSW5pdFxyXG57XHJcbiAgICBASW5wdXQoKSBwcm9kdWN0SWQ/OiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBoaWRlTGFuZ3VhZ2VTZWxlY3QgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGRhdGFUYWJsZUlkOiBEYXRhVGFibGVMb2NhdGlvbklkIHwgdW5kZWZpbmVkO1xyXG4gICAgcmVhZG9ubHkgY3VzdG9tRmllbGRzID0gdGhpcy5nZXRDdXN0b21GaWVsZENvbmZpZygnUHJvZHVjdFZhcmlhbnQnKTtcclxuICAgIHJlYWRvbmx5IGZpbHRlcnMgPSB0aGlzLmNyZWF0ZUZpbHRlckNvbGxlY3Rpb24oKVxyXG4gICAgICAgIC5hZGRJZEZpbHRlcigpXHJcbiAgICAgICAgLmFkZERhdGVGaWx0ZXJzKClcclxuICAgICAgICAuYWRkRmlsdGVycyhbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG5hbWU6ICduYW1lJyxcclxuICAgICAgICAgICAgICAgIHR5cGU6IHsga2luZDogJ3RleHQnIH0sXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogXygnY29tbW9uLm5hbWUnKSxcclxuICAgICAgICAgICAgICAgIGZpbHRlckZpZWxkOiAnbmFtZScsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG5hbWU6ICdlbmFibGVkJyxcclxuICAgICAgICAgICAgICAgIHR5cGU6IHsga2luZDogJ2Jvb2xlYW4nIH0sXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogXygnY29tbW9uLmVuYWJsZWQnKSxcclxuICAgICAgICAgICAgICAgIGZpbHRlckZpZWxkOiAnZW5hYmxlZCcsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG5hbWU6ICdza3UnLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogeyBraW5kOiAndGV4dCcgfSxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiBfKCdjYXRhbG9nLnNrdScpLFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyRmllbGQ6ICdza3UnLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAncHJpY2UnLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogeyBraW5kOiAnbnVtYmVyJywgaW5wdXRUeXBlOiAnY3VycmVuY3knIH0sXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogXygnY29tbW9uLnByaWNlJyksXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJGaWVsZDogJ3ByaWNlJyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogJ3ByaWNlV2l0aFRheCcsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiB7IGtpbmQ6ICdudW1iZXInLCBpbnB1dFR5cGU6ICdjdXJyZW5jeScgfSxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiBfKCdjb21tb24ucHJpY2Utd2l0aC10YXgnKSxcclxuICAgICAgICAgICAgICAgIGZpbHRlckZpZWxkOiAncHJpY2VXaXRoVGF4JyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICBdKVxyXG4gICAgICAgIC5hZGRDdXN0b21GaWVsZEZpbHRlcnModGhpcy5jdXN0b21GaWVsZHMpXHJcbiAgICAgICAgLmNvbm5lY3RUb1JvdXRlKHRoaXMucm91dGUpO1xyXG5cclxuICAgIHJlYWRvbmx5IHNvcnRzID0gdGhpcy5jcmVhdGVTb3J0Q29sbGVjdGlvbigpXHJcbiAgICAgICAgLmFkZFNvcnRzKFtcclxuICAgICAgICAgICAgeyBuYW1lOiAnaWQnIH0sXHJcbiAgICAgICAgICAgIHsgbmFtZTogJ2NyZWF0ZWRBdCcgfSxcclxuICAgICAgICAgICAgeyBuYW1lOiAndXBkYXRlZEF0JyB9LFxyXG4gICAgICAgICAgICB7IG5hbWU6ICduYW1lJyB9LFxyXG4gICAgICAgICAgICB7IG5hbWU6ICdza3UnIH0sXHJcbiAgICAgICAgICAgIHsgbmFtZTogJ3ByaWNlJyB9LFxyXG4gICAgICAgICAgICB7IG5hbWU6ICdwcmljZVdpdGhUYXgnIH0sXHJcbiAgICAgICAgXSlcclxuICAgICAgICAuYWRkQ3VzdG9tRmllbGRTb3J0cyh0aGlzLmN1c3RvbUZpZWxkcylcclxuICAgICAgICAuY29ubmVjdFRvUm91dGUodGhpcy5yb3V0ZSk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLmNvbmZpZ3VyZSh7XHJcbiAgICAgICAgICAgIGRvY3VtZW50OiBQcm9kdWN0VmFyaWFudExpc3RRdWVyeURvY3VtZW50LFxyXG4gICAgICAgICAgICBnZXRJdGVtczogZGF0YSA9PiBkYXRhLnByb2R1Y3RWYXJpYW50cyxcclxuICAgICAgICAgICAgc2V0VmFyaWFibGVzOiAoc2tpcCwgdGFrZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VhcmNoVGVybSA9IHRoaXMuc2VhcmNoVGVybUNvbnRyb2wudmFsdWU7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJQYXJhbTogUHJvZHVjdFZhcmlhbnRGaWx0ZXJQYXJhbWV0ZXIgPSB7IF9hbmQ6IFtdIH07XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJJbnB1dCA9IHRoaXMuZmlsdGVycy5jcmVhdGVGaWx0ZXJJbnB1dCgpO1xyXG4gICAgICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGZpbHRlcklucHV0KS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJQYXJhbS5fYW5kPy5wdXNoKGZpbHRlcklucHV0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChzZWFyY2hUZXJtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyUGFyYW0uX2FuZD8ucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9vcjogW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHsgY29udGFpbnM6IHNlYXJjaFRlcm0gfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2t1OiB7IGNvbnRhaW5zOiBzZWFyY2hUZXJtIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvZHVjdElkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyUGFyYW0uX2FuZD8ucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RJZDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXE6IHRoaXMucHJvZHVjdElkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNraXAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRha2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjogZmlsdGVyUGFyYW0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvcnQ6IHRoaXMuc29ydHMuY3JlYXRlU29ydElucHV0KCksXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHJlZnJlc2hMaXN0T25DaGFuZ2VzOiBbdGhpcy5zb3J0cy52YWx1ZUNoYW5nZXMsIHRoaXMuZmlsdGVycy52YWx1ZUNoYW5nZXNdLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjx2ZHItcGFnZS1ibG9jayAqbmdJZj1cIiFoaWRlTGFuZ3VhZ2VTZWxlY3RcIj5cclxuICAgIDx2ZHItbGFuZ3VhZ2Utc2VsZWN0b3JcclxuICAgICAgICBbYXZhaWxhYmxlTGFuZ3VhZ2VDb2Rlc109XCJhdmFpbGFibGVMYW5ndWFnZXMkIHwgYXN5bmNcIlxyXG4gICAgICAgIFtjdXJyZW50TGFuZ3VhZ2VDb2RlXT1cImNvbnRlbnRMYW5ndWFnZSQgfCBhc3luY1wiXHJcbiAgICAgICAgKGxhbmd1YWdlQ29kZUNoYW5nZSk9XCJzZXRMYW5ndWFnZSgkZXZlbnQpXCJcclxuICAgID48L3Zkci1sYW5ndWFnZS1zZWxlY3Rvcj5cclxuPC92ZHItcGFnZS1ibG9jaz5cclxuPHZkci1kYXRhLXRhYmxlLTJcclxuICAgIGNsYXNzPVwibXQtMlwiXHJcbiAgICBbaWRdPVwiZGF0YVRhYmxlSWQgfHwgJ3Byb2R1Y3QtdmFyaWFudC1saXN0J1wiXHJcbiAgICBbaXRlbXNdPVwiaXRlbXMkIHwgYXN5bmNcIlxyXG4gICAgW2l0ZW1zUGVyUGFnZV09XCJpdGVtc1BlclBhZ2UkIHwgYXN5bmNcIlxyXG4gICAgW3RvdGFsSXRlbXNdPVwidG90YWxJdGVtcyQgfCBhc3luY1wiXHJcbiAgICBbY3VycmVudFBhZ2VdPVwiY3VycmVudFBhZ2UkIHwgYXN5bmNcIlxyXG4gICAgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiXHJcbiAgICAocGFnZUNoYW5nZSk9XCJzZXRQYWdlTnVtYmVyKCRldmVudClcIlxyXG4gICAgKGl0ZW1zUGVyUGFnZUNoYW5nZSk9XCJzZXRJdGVtc1BlclBhZ2UoJGV2ZW50KVwiXHJcbj5cclxuICAgIDx2ZHItYnVsay1hY3Rpb24tbWVudVxyXG4gICAgICAgIGxvY2F0aW9uSWQ9XCJwcm9kdWN0LXZhcmlhbnQtbGlzdFwiXHJcbiAgICAgICAgW2hvc3RDb21wb25lbnRdPVwidGhpc1wiXHJcbiAgICAgICAgW3NlbGVjdGlvbk1hbmFnZXJdPVwic2VsZWN0aW9uTWFuYWdlclwiXHJcbiAgICAvPlxyXG4gICAgPHZkci1kdDItc2VhcmNoXHJcbiAgICAgICAgW3NlYXJjaFRlcm1Db250cm9sXT1cInNlYXJjaFRlcm1Db250cm9sXCJcclxuICAgICAgICBbc2VhcmNoVGVybVBsYWNlaG9sZGVyXT1cIidzZXR0aW5ncy5zZWFyY2gtYnktcHJvZHVjdC1uYW1lLW9yLXNrdScgfCB0cmFuc2xhdGVcIlxyXG4gICAgLz5cclxuICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLmlkJyB8IHRyYW5zbGF0ZVwiIGlkPVwiaWRcIiBbaGlkZGVuQnlEZWZhdWx0XT1cInRydWVcIiBbc29ydF09XCJzb3J0cy5nZXQoJ2lkJylcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXZhcmlhbnQ9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIHt7IHZhcmlhbnQuaWQgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtblxyXG4gICAgICAgIFtoZWFkaW5nXT1cIidjb21tb24uY3JlYXRlZC1hdCcgfCB0cmFuc2xhdGVcIiBpZD1cImNyZWF0ZWQtYXRcIlxyXG4gICAgICAgIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3NvcnRdPVwic29ydHMuZ2V0KCdjcmVhdGVkQXQnKVwiXHJcbiAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YXJpYW50PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICB7eyB2YXJpYW50LmNyZWF0ZWRBdCB8IGxvY2FsZURhdGUgOiAnc2hvcnQnIH19XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICA8dmRyLWR0Mi1jb2x1bW5cclxuICAgICAgICBbaGVhZGluZ109XCInY29tbW9uLnVwZGF0ZWQtYXQnIHwgdHJhbnNsYXRlXCIgaWQ9XCJ1cGRhdGVkLWF0XCJcclxuICAgICAgICBbaGlkZGVuQnlEZWZhdWx0XT1cInRydWVcIlxyXG4gICAgICAgIFtzb3J0XT1cInNvcnRzLmdldCgndXBkYXRlZEF0JylcIlxyXG4gICAgPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdmFyaWFudD1cIml0ZW1cIj5cclxuICAgICAgICAgICAge3sgdmFyaWFudC51cGRhdGVkQXQgfCBsb2NhbGVEYXRlIDogJ3Nob3J0JyB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidjb21tb24uaW1hZ2UnIHwgdHJhbnNsYXRlXCIgaWQ9XCJpbWFnZVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdmFyaWFudD1cIml0ZW1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLXBsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ2YXJpYW50LmZlYXR1cmVkQXNzZXQgYXMgYXNzZXQ7IGVsc2UgaW1hZ2VQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3NyY109XCJhc3NldCB8IGFzc2V0UHJldmlldyA6ICd0aW55J1wiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpbWFnZVBsYWNlaG9sZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFjZWhvbGRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJpbWFnZVwiIHNpemU9XCI0OFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY2F0YWxvZy5uYW1lJyB8IHRyYW5zbGF0ZVwiIGlkPVwibmFtZVwiIFtvcHRpb25hbF09XCJmYWxzZVwiIFtzb3J0XT1cInNvcnRzLmdldCgnbmFtZScpXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YXJpYW50PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24tZ2hvc3RcIlxyXG4gICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvY2F0YWxvZy9wcm9kdWN0cycsIHZhcmlhbnQucHJvZHVjdElkLCAndmFyaWFudHMnLCB2YXJpYW50LmlkXVwiXHJcbiAgICAgICAgICAgICAgICA+PHNwYW4+e3sgdmFyaWFudC5uYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgICAgICA+PGNsci1pY29uIHNoYXBlPVwiYXJyb3cgcmlnaHRcIlxyXG4gICAgICAgICAgICAvPjwvYT5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY2F0YWxvZy5za3UnIHwgdHJhbnNsYXRlXCIgaWQ9XCJza3VcIiBbc29ydF09XCJzb3J0cy5nZXQoJ3NrdScpXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YXJpYW50PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICB7eyB2YXJpYW50LnNrdSB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidjb21tb24uZW5hYmxlZCcgfCB0cmFuc2xhdGVcIiBpZD1cImVuYWJsZWRcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXZhcmlhbnQ9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIDx2ZHItY2hpcCAqbmdJZj1cInZhcmlhbnQuZW5hYmxlZFwiIGNvbG9yVHlwZT1cInN1Y2Nlc3NcIj57e1xyXG4gICAgICAgICAgICAgICAgJ2NvbW1vbi5lbmFibGVkJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICB9fTwvdmRyLWNoaXA+XHJcbiAgICAgICAgICAgIDx2ZHItY2hpcCAqbmdJZj1cIiF2YXJpYW50LmVuYWJsZWRcIiBjb2xvclR5cGU9XCJ3YXJuaW5nXCI+e3tcclxuICAgICAgICAgICAgICAgICdjb21tb24uZGlzYWJsZWQnIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgIH19PC92ZHItY2hpcD5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtblxyXG4gICAgICAgIFtoZWFkaW5nXT1cIidjb21tb24ucHJpY2UnIHwgdHJhbnNsYXRlXCIgaWQ9XCJwcmljZVwiXHJcbiAgICAgICAgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCJcclxuICAgICAgICBbc29ydF09XCJzb3J0cy5nZXQoJ3ByaWNlJylcIlxyXG4gICAgPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdmFyaWFudD1cIml0ZW1cIj5cclxuICAgICAgICAgICAge3sgdmFyaWFudC5wcmljZSB8IGxvY2FsZUN1cnJlbmN5IDogdmFyaWFudC5jdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLnByaWNlLXdpdGgtdGF4JyB8IHRyYW5zbGF0ZVwiIGlkPVwicHJpY2Utd2l0aC10YXhcIiBbc29ydF09XCJzb3J0cy5nZXQoJ3ByaWNlV2l0aFRheCcpXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YXJpYW50PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICB7eyB2YXJpYW50LnByaWNlV2l0aFRheCB8IGxvY2FsZUN1cnJlbmN5IDogdmFyaWFudC5jdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuXHJcbiAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NhdGFsb2cuc3RvY2stb24taGFuZCcgfCB0cmFuc2xhdGVcIiBpZD1cInN0b2NrLW9uLWhhbmRcIiBbaGlkZGVuQnlEZWZhdWx0XT1cImZhbHNlXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YXJpYW50PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICA8dmRyLWNoaXAgKm5nRm9yPVwibGV0IHN0b2NrTGV2ZWwgb2YgdmFyaWFudC5zdG9ja0xldmVsc1wiIFt0aXRsZV09XCJzdG9ja0xldmVsLnN0b2NrTG9jYXRpb24/Lm5hbWVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHN0b2NrTGV2ZWwuc3RvY2tPbkhhbmRcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX08c3BhbiBjbGFzcz1cIm1sLTFcIiAqbmdJZj1cInN0b2NrTGV2ZWwuc3RvY2tBbGxvY2F0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPih7eyBzdG9ja0xldmVsLnN0b2NrQWxsb2NhdGVkIH19IGFsbG9jYXRlZCk8L3NwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvdmRyLWNoaXA+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICA8dmRyLWR0Mi1jdXN0b20tZmllbGQtY29sdW1uICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBjdXN0b21GaWVsZHNcIiBbY3VzdG9tRmllbGRdPVwiZmllbGRcIiBbc29ydHNdPVwic29ydHNcIiAvPlxyXG48L3Zkci1kYXRhLXRhYmxlLTI+XHJcbiJdfQ==
|