@vendure/admin-ui 2.0.0-next.2 → 2.0.0-next.5
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 +10 -11
- package/catalog/components/collection-contents/collection-contents.component.d.ts +8 -2
- package/catalog/components/collection-detail/collection-detail.component.d.ts +11 -4
- package/catalog/components/collection-list/collection-list.component.d.ts +2 -0
- package/catalog/components/collection-tree/array-to-tree.d.ts +1 -1
- package/catalog/components/collection-tree/collection-tree-node.component.d.ts +6 -2
- package/catalog/components/collection-tree/collection-tree.component.d.ts +2 -1
- package/catalog/components/product-variants-list/product-variants-list.component.d.ts +1 -0
- package/catalog/public_api.d.ts +0 -1
- package/core/common/generated-types.d.ts +62 -0
- package/core/common/utilities/selection-manager.d.ts +23 -0
- package/core/common/version.d.ts +1 -1
- package/core/data/definitions/collection-definitions.d.ts +1 -0
- package/core/data/providers/collection-data.service.d.ts +4 -0
- package/core/providers/local-storage/local-storage.service.d.ts +1 -0
- package/core/public_api.d.ts +5 -0
- package/core/shared/components/asset-gallery/asset-gallery.component.d.ts +27 -3
- package/core/shared/components/configurable-input/configurable-input.component.d.ts +8 -3
- package/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.d.ts +38 -0
- package/{catalog → core/shared}/components/product-search-input/product-search-input.component.d.ts +1 -1
- package/core/shared/components/select-toggle/select-toggle.component.d.ts +2 -1
- package/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.d.ts +26 -0
- package/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.d.ts +23 -0
- package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +3 -1
- package/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.d.ts +6 -3
- package/core/shared/shared.module.d.ts +32 -28
- package/esm2020/catalog/catalog.module.mjs +1 -5
- package/esm2020/catalog/components/assets/assets.component.mjs +2 -2
- package/esm2020/catalog/components/collection-contents/collection-contents.component.mjs +53 -13
- package/esm2020/catalog/components/collection-detail/collection-detail.component.mjs +64 -32
- package/esm2020/catalog/components/collection-list/collection-list.component.mjs +30 -5
- package/esm2020/catalog/components/collection-tree/array-to-tree.mjs +3 -3
- package/esm2020/catalog/components/collection-tree/collection-tree-node.component.mjs +29 -10
- package/esm2020/catalog/components/collection-tree/collection-tree.component.mjs +6 -3
- package/esm2020/catalog/components/facet-detail/facet-detail.component.mjs +2 -2
- package/esm2020/catalog/components/product-detail/product-detail.component.mjs +2 -2
- package/esm2020/catalog/components/product-list/product-list.component.mjs +6 -7
- package/esm2020/catalog/components/product-variants-list/product-variants-list.component.mjs +9 -3
- package/esm2020/catalog/providers/routing/collection-resolver.mjs +1 -1
- package/esm2020/catalog/public_api.mjs +1 -2
- package/esm2020/core/app.component.module.mjs +1 -1
- package/esm2020/core/common/base-detail.component.mjs +1 -1
- package/esm2020/core/common/deactivate-aware.mjs +1 -1
- package/esm2020/core/common/generated-types.mjs +26 -1
- package/esm2020/core/common/introspection-result.mjs +255 -189
- package/esm2020/core/common/utilities/configurable-operation-utils.mjs +21 -2
- package/esm2020/core/common/utilities/selection-manager.mjs +64 -0
- package/esm2020/core/common/version.mjs +2 -2
- package/esm2020/core/core.module.mjs +1 -1
- package/esm2020/core/data/definitions/collection-definitions.mjs +18 -1
- package/esm2020/core/data/definitions/shared-definitions.mjs +29 -28
- package/esm2020/core/data/providers/collection-data.service.mjs +5 -2
- package/esm2020/core/data/providers/promotion-data.service.mjs +1 -1
- package/esm2020/core/providers/local-storage/local-storage.service.mjs +1 -1
- package/esm2020/core/public_api.mjs +6 -1
- package/esm2020/core/shared/components/asset-gallery/asset-gallery.component.mjs +33 -50
- package/esm2020/core/shared/components/asset-preview/asset-preview.component.mjs +4 -4
- package/esm2020/core/shared/components/configurable-input/configurable-input.component.mjs +22 -10
- package/esm2020/core/shared/components/help-tooltip/help-tooltip.component.mjs +2 -2
- package/esm2020/core/shared/components/object-tree/object-tree.component.mjs +1 -1
- package/esm2020/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.mjs +135 -0
- package/esm2020/core/shared/components/product-search-input/product-search-input.component.mjs +108 -0
- package/esm2020/core/shared/components/select-toggle/select-toggle.component.mjs +6 -3
- package/esm2020/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.mjs +43 -0
- package/esm2020/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.mjs +48 -0
- package/esm2020/core/shared/dynamic-form-inputs/register-dynamic-input-components.mjs +5 -1
- package/esm2020/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.mjs +11 -9
- package/esm2020/core/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.mjs +1 -1
- package/esm2020/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.mjs +1 -1
- package/esm2020/core/shared/shared.module.mjs +21 -5
- package/esm2020/marketing/components/promotion-detail/promotion-detail.component.mjs +3 -3
- package/esm2020/order/components/cancel-order-dialog/cancel-order-dialog.component.mjs +1 -1
- package/esm2020/order/components/fulfill-order-dialog/fulfill-order-dialog.component.mjs +1 -1
- package/esm2020/order/components/order-editor/order-editor.component.mjs +3 -3
- package/esm2020/order/components/order-table/order-table.component.mjs +2 -2
- package/esm2020/order/components/refund-order-dialog/refund-order-dialog.component.mjs +1 -1
- package/esm2020/settings/components/payment-method-detail/payment-method-detail.component.mjs +1 -1
- package/esm2020/settings/components/permission-grid/permission-grid.component.mjs +1 -1
- package/esm2020/settings/components/shipping-method-detail/shipping-method-detail.component.mjs +1 -1
- package/fesm2015/vendure-admin-ui-catalog.mjs +191 -165
- package/fesm2015/vendure-admin-ui-catalog.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-core.mjs +1965 -1465
- package/fesm2015/vendure-admin-ui-core.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-marketing.mjs +2 -2
- package/fesm2015/vendure-admin-ui-marketing.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-order.mjs +5 -5
- package/fesm2015/vendure-admin-ui-order.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-settings.mjs +3 -3
- package/fesm2020/vendure-admin-ui-catalog.mjs +189 -167
- package/fesm2020/vendure-admin-ui-catalog.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-core.mjs +1962 -1464
- package/fesm2020/vendure-admin-ui-core.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-marketing.mjs +2 -2
- package/fesm2020/vendure-admin-ui-marketing.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-order.mjs +5 -5
- package/fesm2020/vendure-admin-ui-order.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-settings.mjs +3 -3
- package/package.json +2 -2
- package/static/i18n-messages/cs.json +8 -0
- package/static/i18n-messages/de.json +9 -0
- package/static/i18n-messages/en.json +8 -0
- package/static/i18n-messages/es.json +8 -0
- package/static/i18n-messages/fr.json +8 -0
- package/static/i18n-messages/it.json +8 -0
- package/static/i18n-messages/pl.json +8 -0
- package/static/i18n-messages/pt_BR.json +8 -0
- package/static/i18n-messages/pt_PT.json +8 -0
- package/static/i18n-messages/ru.json +8 -0
- package/static/i18n-messages/uk.json +8 -0
- package/static/i18n-messages/zh_Hans.json +8 -0
- package/static/i18n-messages/zh_Hant.json +8 -0
- package/static/styles/global/_forms.scss +3 -4
- package/static/styles/global/_overrides.scss +6 -0
- package/static/theme.min.css +1 -1
- package/esm2020/catalog/components/product-search-input/product-search-input.component.mjs +0 -107
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, } from '@angular/core';
|
|
2
2
|
import { FormControl, FormGroup, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validators, } from '@angular/forms';
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
4
|
import { getDefaultConfigArgValue } from '../../../common/utilities/configurable-operation-utils';
|
|
4
5
|
import { interpolateDescription } from '../../../common/utilities/interpolate-description';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "
|
|
7
|
-
import * as i2 from "
|
|
8
|
-
import * as i3 from "@angular/
|
|
9
|
-
import * as i4 from "@
|
|
10
|
-
import * as i5 from "
|
|
11
|
-
import * as i6 from "
|
|
7
|
+
import * as i1 from "../help-tooltip/help-tooltip.component";
|
|
8
|
+
import * as i2 from "../../dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component";
|
|
9
|
+
import * as i3 from "@angular/common";
|
|
10
|
+
import * as i4 from "@angular/forms";
|
|
11
|
+
import * as i5 from "@clr/angular";
|
|
12
|
+
import * as i6 from "../../pipes/sentence-case.pipe";
|
|
13
|
+
import * as i7 from "@ngx-translate/core";
|
|
12
14
|
/**
|
|
13
15
|
* A form input which renders a card with the internal form fields of the given ConfigurableOperation.
|
|
14
16
|
*/
|
|
@@ -16,9 +18,11 @@ export class ConfigurableInputComponent {
|
|
|
16
18
|
constructor() {
|
|
17
19
|
this.readonly = false;
|
|
18
20
|
this.removable = true;
|
|
21
|
+
this.position = 0;
|
|
19
22
|
this.remove = new EventEmitter();
|
|
20
23
|
this.argValues = {};
|
|
21
24
|
this.form = new FormGroup({});
|
|
25
|
+
this.positionChangeSubject = new BehaviorSubject(0);
|
|
22
26
|
}
|
|
23
27
|
interpolateDescription() {
|
|
24
28
|
if (this.operationDefinition) {
|
|
@@ -28,10 +32,16 @@ export class ConfigurableInputComponent {
|
|
|
28
32
|
return '';
|
|
29
33
|
}
|
|
30
34
|
}
|
|
35
|
+
ngOnInit() {
|
|
36
|
+
this.positionChange$ = this.positionChangeSubject.asObservable();
|
|
37
|
+
}
|
|
31
38
|
ngOnChanges(changes) {
|
|
32
39
|
if ('operation' in changes || 'operationDefinition' in changes) {
|
|
33
40
|
this.createForm();
|
|
34
41
|
}
|
|
42
|
+
if ('position' in changes) {
|
|
43
|
+
this.positionChangeSubject.next(this.position);
|
|
44
|
+
}
|
|
35
45
|
}
|
|
36
46
|
ngOnDestroy() {
|
|
37
47
|
if (this.subscription) {
|
|
@@ -104,7 +114,7 @@ export class ConfigurableInputComponent {
|
|
|
104
114
|
}
|
|
105
115
|
}
|
|
106
116
|
ConfigurableInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ConfigurableInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
107
|
-
ConfigurableInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: ConfigurableInputComponent, selector: "vdr-configurable-input", inputs: { operation: "operation", operationDefinition: "operationDefinition", readonly: "readonly", removable: "removable" }, outputs: { remove: "remove" }, providers: [
|
|
117
|
+
ConfigurableInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: ConfigurableInputComponent, selector: "vdr-configurable-input", inputs: { operation: "operation", operationDefinition: "operationDefinition", readonly: "readonly", removable: "removable", position: "position" }, outputs: { remove: "remove" }, providers: [
|
|
108
118
|
{
|
|
109
119
|
provide: NG_VALUE_ACCESSOR,
|
|
110
120
|
useExisting: ConfigurableInputComponent,
|
|
@@ -115,7 +125,7 @@ ConfigurableInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
115
125
|
useExisting: forwardRef(() => ConfigurableInputComponent),
|
|
116
126
|
multi: true,
|
|
117
127
|
},
|
|
118
|
-
], usesOnChanges: true, ngImport: i0, template: "<div class=\"card\" *ngIf=\"operation\">\r\n <div class=\"card-block\">{{ interpolateDescription() }}</div>\r\n <div class=\"card-block\" *ngIf=\"operation.args?.length\">\r\n <form [formGroup]=\"form\" *ngIf=\"operation\" class=\"operation-inputs\">\r\n <div *ngFor=\"let arg of operation.args; trackBy: trackByName\" class=\"arg-row\">\r\n <ng-container *ngIf=\"form.get(arg.name)\">\r\n <label>{{
|
|
128
|
+
], usesOnChanges: true, ngImport: i0, template: "<div class=\"card\" *ngIf=\"operation\">\r\n <div class=\"card-block\">{{ interpolateDescription() }}</div>\r\n <div class=\"card-block\" *ngIf=\"operation.args?.length\">\r\n <form [formGroup]=\"form\" *ngIf=\"operation\" class=\"operation-inputs\">\r\n <div *ngFor=\"let arg of operation.args; trackBy: trackByName\" class=\"arg-row\">\r\n <ng-container *ngIf=\"form.get(arg.name) && getArgDef(arg) as argDef\">\r\n <label class=\"clr-control-label\">{{ argDef.label || (arg.name | sentenceCase) }}</label>\r\n <vdr-help-tooltip\r\n class=\"mr3\"\r\n *ngIf=\"argDef.description\"\r\n [content]=\"argDef.description\"\r\n ></vdr-help-tooltip>\r\n <vdr-dynamic-form-input\r\n [def]=\"getArgDef(arg)\"\r\n [readonly]=\"readonly\"\r\n [control]=\"form.get(arg.name)\"\r\n [formControlName]=\"arg.name\"\r\n ></vdr-dynamic-form-input>\r\n </ng-container>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"card-footer\" *ngIf=\"!readonly && removable\">\r\n <button class=\"btn btn-sm btn-link btn-warning\" (click)=\"remove.emit(operation)\">\r\n <clr-icon shape=\"times\"></clr-icon>\r\n {{ 'common.remove' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;margin-bottom:12px}:host>.card{margin-top:6px}.operation-inputs{padding-top:0}.operation-inputs .arg-row:not(:last-child){margin-bottom:12px}.operation-inputs .arg-row{display:flex;flex-wrap:wrap;align-items:center}.operation-inputs .arg-row label{margin-right:6px}.operation-inputs .hidden{display:none}.operation-inputs label{min-width:130px;display:inline-block}\n"], components: [{ type: i1.HelpTooltipComponent, selector: "vdr-help-tooltip", inputs: ["content", "position"] }, { type: i2.DynamicFormInputComponent, selector: "vdr-dynamic-form-input", inputs: ["def", "readonly", "control"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.ClrDatagridItemsTrackBy, selector: "[ngForTrackBy]", inputs: ["ngForTrackBy"] }, { type: i5.ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i5.ClrIconCustomTag, selector: "clr-icon" }], pipes: { "sentenceCase": i6.SentenceCasePipe, "translate": i7.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
119
129
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ConfigurableInputComponent, decorators: [{
|
|
120
130
|
type: Component,
|
|
121
131
|
args: [{ selector: 'vdr-configurable-input', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
@@ -129,7 +139,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
129
139
|
useExisting: forwardRef(() => ConfigurableInputComponent),
|
|
130
140
|
multi: true,
|
|
131
141
|
},
|
|
132
|
-
], template: "<div class=\"card\" *ngIf=\"operation\">\r\n <div class=\"card-block\">{{ interpolateDescription() }}</div>\r\n <div class=\"card-block\" *ngIf=\"operation.args?.length\">\r\n <form [formGroup]=\"form\" *ngIf=\"operation\" class=\"operation-inputs\">\r\n <div *ngFor=\"let arg of operation.args; trackBy: trackByName\" class=\"arg-row\">\r\n <ng-container *ngIf=\"form.get(arg.name)\">\r\n <label>{{
|
|
142
|
+
], template: "<div class=\"card\" *ngIf=\"operation\">\r\n <div class=\"card-block\">{{ interpolateDescription() }}</div>\r\n <div class=\"card-block\" *ngIf=\"operation.args?.length\">\r\n <form [formGroup]=\"form\" *ngIf=\"operation\" class=\"operation-inputs\">\r\n <div *ngFor=\"let arg of operation.args; trackBy: trackByName\" class=\"arg-row\">\r\n <ng-container *ngIf=\"form.get(arg.name) && getArgDef(arg) as argDef\">\r\n <label class=\"clr-control-label\">{{ argDef.label || (arg.name | sentenceCase) }}</label>\r\n <vdr-help-tooltip\r\n class=\"mr3\"\r\n *ngIf=\"argDef.description\"\r\n [content]=\"argDef.description\"\r\n ></vdr-help-tooltip>\r\n <vdr-dynamic-form-input\r\n [def]=\"getArgDef(arg)\"\r\n [readonly]=\"readonly\"\r\n [control]=\"form.get(arg.name)\"\r\n [formControlName]=\"arg.name\"\r\n ></vdr-dynamic-form-input>\r\n </ng-container>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"card-footer\" *ngIf=\"!readonly && removable\">\r\n <button class=\"btn btn-sm btn-link btn-warning\" (click)=\"remove.emit(operation)\">\r\n <clr-icon shape=\"times\"></clr-icon>\r\n {{ 'common.remove' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;margin-bottom:12px}:host>.card{margin-top:6px}.operation-inputs{padding-top:0}.operation-inputs .arg-row:not(:last-child){margin-bottom:12px}.operation-inputs .arg-row{display:flex;flex-wrap:wrap;align-items:center}.operation-inputs .arg-row label{margin-right:6px}.operation-inputs .hidden{display:none}.operation-inputs label{min-width:130px;display:inline-block}\n"] }]
|
|
133
143
|
}], propDecorators: { operation: [{
|
|
134
144
|
type: Input
|
|
135
145
|
}], operationDefinition: [{
|
|
@@ -138,7 +148,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
138
148
|
type: Input
|
|
139
149
|
}], removable: [{
|
|
140
150
|
type: Input
|
|
151
|
+
}], position: [{
|
|
152
|
+
type: Input
|
|
141
153
|
}], remove: [{
|
|
142
154
|
type: Output
|
|
143
155
|
}] } });
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhYmxlLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL2NvbXBvbmVudHMvY29uZmlndXJhYmxlLWlucHV0L2NvbmZpZ3VyYWJsZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2NvbmZpZ3VyYWJsZS1pbnB1dC9jb25maWd1cmFibGUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBR0wsTUFBTSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHSCxXQUFXLEVBQ1gsU0FBUyxFQUNULGFBQWEsRUFDYixpQkFBaUIsRUFHakIsVUFBVSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFZeEIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDbEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbURBQW1ELENBQUM7Ozs7Ozs7O0FBRTNGOztHQUVHO0FBbUJILE1BQU0sT0FBTywwQkFBMEI7SUFsQnZDO1FBcUJhLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNoQixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUFDN0QsY0FBUyxHQUE0QixFQUFFLENBQUM7UUFHeEMsU0FBSSxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBK0Y1QjtJQTVGRyxzQkFBc0I7UUFDbEIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDMUIsT0FBTyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM1RTthQUFNO1lBQ0gsT0FBTyxFQUFFLENBQUM7U0FDYjtJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxXQUFXLElBQUksT0FBTyxJQUFJLHFCQUFxQixJQUFJLE9BQU8sRUFBRTtZQUM1RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDckI7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ25DO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2hDLElBQUksVUFBVSxFQUFFO1lBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN2QjthQUFNO1lBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN0QjtJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNqQixJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQy9CO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhLEVBQUUsR0FBYztRQUNyQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFjO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU8sVUFBVTtRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2pCLE9BQU87U0FDVjtRQUNELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBWSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVoRSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFO1lBQ3JCLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksSUFBSSxFQUFFLEVBQUU7Z0JBQ3BELElBQUksS0FBSyxHQUFRLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQztnQkFDM0UsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO29CQUNyQixLQUFLLEdBQUcsd0JBQXdCLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ3pDO2dCQUNELE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUN6RixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksV0FBVyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO2FBQ3RFO1NBQ0o7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6RCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQztvQkFDVixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUk7b0JBQzNDLElBQUksRUFBRSxLQUFLO2lCQUNkLENBQUMsQ0FBQzthQUNOO1lBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNkLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNsQjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFrQjtRQUN2QixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ25CLE9BQU87Z0JBQ0gsUUFBUSxFQUFFLElBQUk7YUFDakIsQ0FBQztTQUNMO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7dUhBdkdRLDBCQUEwQjsyR0FBMUIsMEJBQTBCLDhNQWJ4QjtRQUNQO1lBQ0ksT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsMEJBQTBCO1lBQ3ZDLEtBQUssRUFBRSxJQUFJO1NBQ2Q7UUFDRDtZQUNJLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUM7WUFDekQsS0FBSyxFQUFFLElBQUk7U0FDZDtLQUNKLCtDQ3ZETCw2dENBd0JBOzJGRGlDYSwwQkFBMEI7a0JBbEJ0QyxTQUFTOytCQUNJLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLDRCQUE0Qjs0QkFDdkMsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7d0JBQ0Q7NEJBQ0ksT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDJCQUEyQixDQUFDOzRCQUN6RCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjs4QkFHUSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICBGb3JtQ29udHJvbCxcbiAgICBGb3JtR3JvdXAsXG4gICAgTkdfVkFMSURBVE9SUyxcbiAgICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICBWYWxpZGF0aW9uRXJyb3JzLFxuICAgIFZhbGlkYXRvcixcbiAgICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb25maWdBcmdUeXBlIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdHlwZXMnO1xuaW1wb3J0IHsgYXNzZXJ0TmV2ZXIgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC11dGlscyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSW5wdXRDb21wb25lbnRDb25maWcgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vY29tcG9uZW50LXJlZ2lzdHJ5LXR5cGVzJztcbmltcG9ydCB7XG4gICAgQ29uZmlnQXJnLFxuICAgIENvbmZpZ0FyZ0RlZmluaXRpb24sXG4gICAgQ29uZmlndXJhYmxlT3BlcmF0aW9uLFxuICAgIENvbmZpZ3VyYWJsZU9wZXJhdGlvbkRlZmluaXRpb24sXG59IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdENvbmZpZ0FyZ1ZhbHVlIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWxpdGllcy9jb25maWd1cmFibGUtb3BlcmF0aW9uLXV0aWxzJztcbmltcG9ydCB7IGludGVycG9sYXRlRGVzY3JpcHRpb24gfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXRpbGl0aWVzL2ludGVycG9sYXRlLWRlc2NyaXB0aW9uJztcblxuLyoqXG4gKiBBIGZvcm0gaW5wdXQgd2hpY2ggcmVuZGVycyBhIGNhcmQgd2l0aCB0aGUgaW50ZXJuYWwgZm9ybSBmaWVsZHMgb2YgdGhlIGdpdmVuIENvbmZpZ3VyYWJsZU9wZXJhdGlvbi5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd2ZHItY29uZmlndXJhYmxlLWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29uZmlndXJhYmxlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb25maWd1cmFibGUtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogQ29uZmlndXJhYmxlSW5wdXRDb21wb25lbnQsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENvbmZpZ3VyYWJsZUlucHV0Q29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpZ3VyYWJsZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xuICAgIEBJbnB1dCgpIG9wZXJhdGlvbj86IENvbmZpZ3VyYWJsZU9wZXJhdGlvbjtcbiAgICBASW5wdXQoKSBvcGVyYXRpb25EZWZpbml0aW9uPzogQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbjtcbiAgICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHJlbW92YWJsZSA9IHRydWU7XG4gICAgQE91dHB1dCgpIHJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29uZmlndXJhYmxlT3BlcmF0aW9uPigpO1xuICAgIGFyZ1ZhbHVlczogeyBbbmFtZTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICBvbkNoYW5nZTogKHZhbDogYW55KSA9PiB2b2lkO1xuICAgIG9uVG91Y2g6ICgpID0+IHZvaWQ7XG4gICAgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBpbnRlcnBvbGF0ZURlc2NyaXB0aW9uKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLm9wZXJhdGlvbkRlZmluaXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiBpbnRlcnBvbGF0ZURlc2NyaXB0aW9uKHRoaXMub3BlcmF0aW9uRGVmaW5pdGlvbiwgdGhpcy5mb3JtLnZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKCdvcGVyYXRpb24nIGluIGNoYW5nZXMgfHwgJ29wZXJhdGlvbkRlZmluaXRpb24nIGluIGNoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgICAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5kaXNhYmxlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0uZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0cmFja0J5TmFtZShpbmRleDogbnVtYmVyLCBhcmc6IENvbmZpZ0FyZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBhcmcubmFtZTtcbiAgICB9XG5cbiAgICBnZXRBcmdEZWYoYXJnOiBDb25maWdBcmcpOiBDb25maWdBcmdEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3BlcmF0aW9uRGVmaW5pdGlvbj8uYXJncy5maW5kKGEgPT4gYS5uYW1lID09PSBhcmcubmFtZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xuICAgICAgICBpZiAoIXRoaXMub3BlcmF0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgICAgICAodGhpcy5mb3JtIGFzIGFueSkuX19pZCA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigxMCk7XG5cbiAgICAgICAgaWYgKHRoaXMub3BlcmF0aW9uLmFyZ3MpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgYXJnIG9mIHRoaXMub3BlcmF0aW9uRGVmaW5pdGlvbj8uYXJncyB8fCBbXSkge1xuICAgICAgICAgICAgICAgIGxldCB2YWx1ZTogYW55ID0gdGhpcy5vcGVyYXRpb24uYXJncy5maW5kKGEgPT4gYS5uYW1lID09PSBhcmcubmFtZSk/LnZhbHVlO1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0RGVmYXVsdENvbmZpZ0FyZ1ZhbHVlKGFyZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBhcmcubGlzdCA/IHVuZGVmaW5lZCA6IGFyZy5yZXF1aXJlZCA/IFZhbGlkYXRvcnMucmVxdWlyZWQgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woYXJnLm5hbWUsIG5ldyBGb3JtQ29udHJvbCh2YWx1ZSwgdmFsaWRhdG9ycykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5vbkNoYW5nZSkge1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2Uoe1xuICAgICAgICAgICAgICAgICAgICBjb2RlOiB0aGlzLm9wZXJhdGlvbiAmJiB0aGlzLm9wZXJhdGlvbi5jb2RlLFxuICAgICAgICAgICAgICAgICAgICBhcmdzOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLm9uVG91Y2gpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uVG91Y2goKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdmFsaWRhdGUoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgICAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJkXCIgKm5nSWY9XCJvcGVyYXRpb25cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrXCI+e3sgaW50ZXJwb2xhdGVEZXNjcmlwdGlvbigpIH19PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9ja1wiICpuZ0lmPVwib3BlcmF0aW9uLmFyZ3M/Lmxlbmd0aFwiPlxyXG4gICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiICpuZ0lmPVwib3BlcmF0aW9uXCIgY2xhc3M9XCJvcGVyYXRpb24taW5wdXRzXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGFyZyBvZiBvcGVyYXRpb24uYXJnczsgdHJhY2tCeTogdHJhY2tCeU5hbWVcIiBjbGFzcz1cImFyZy1yb3dcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtLmdldChhcmcubmFtZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgZ2V0QXJnRGVmKGFyZyk/LmxhYmVsIHx8IChhcmcubmFtZSB8IHNlbnRlbmNlQ2FzZSkgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItZHluYW1pYy1mb3JtLWlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZdPVwiZ2V0QXJnRGVmKGFyZylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29udHJvbF09XCJmb3JtLmdldChhcmcubmFtZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImFyZy5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC92ZHItZHluYW1pYy1mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZm9ybT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyXCIgKm5nSWY9XCIhcmVhZG9ubHkgJiYgcmVtb3ZhYmxlXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWxpbmsgYnRuLXdhcm5pbmdcIiAoY2xpY2spPVwicmVtb3ZlLmVtaXQob3BlcmF0aW9uKVwiPlxyXG4gICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJ0aW1lc1wiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgIHt7ICdjb21tb24ucmVtb3ZlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhYmxlLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL2NvbXBvbmVudHMvY29uZmlndXJhYmxlLWlucHV0L2NvbmZpZ3VyYWJsZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2NvbmZpZ3VyYWJsZS1pbnB1dC9jb25maWd1cmFibGUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBSUwsTUFBTSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHSCxXQUFXLEVBQ1gsU0FBUyxFQUNULGFBQWEsRUFDYixpQkFBaUIsRUFHakIsVUFBVSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEIsT0FBTyxFQUFFLGVBQWUsRUFBNEIsTUFBTSxNQUFNLENBQUM7QUFTakUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDbEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbURBQW1ELENBQUM7Ozs7Ozs7OztBQUUzRjs7R0FFRztBQW1CSCxNQUFNLE9BQU8sMEJBQTBCO0lBbEJ2QztRQXVCYSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsYUFBUSxHQUFHLENBQUMsQ0FBQztRQUNaLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBeUIsQ0FBQztRQUM3RCxjQUFTLEdBQTRCLEVBQUUsQ0FBQztRQUd4QyxTQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFakIsMEJBQXFCLEdBQUcsSUFBSSxlQUFlLENBQVMs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QUFPLEVBQUUsYUFBYTtZQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUFDO1lBQ3pELEtBQUssRUFBRSxJQUFJO1NBQ2Q7S0FDSiwrQ0N4REwsOC9DQTZCQTsyRkQ2QmEsMEJBQTBCO2tCQWxCdEMsU0FBUzsrQkFDSSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyw0QkFBNEI7NEJBQ3ZDLEtBQUssRUFBRSxJQUFJO3lCQUNkO3dCQUNEOzRCQUNJLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQzs0QkFDekQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7OEJBS1EsU0FBUztzQkFBakIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgZm9yd2FyZFJlZixcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIEFic3RyYWN0Q29udHJvbCxcclxuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gICAgRm9ybUNvbnRyb2wsXHJcbiAgICBGb3JtR3JvdXAsXHJcbiAgICBOR19WQUxJREFUT1JTLFxyXG4gICAgTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICBWYWxpZGF0aW9uRXJyb3JzLFxyXG4gICAgVmFsaWRhdG9yLFxyXG4gICAgVmFsaWRhdG9ycyxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbmZpZ0FyZ1R5cGUgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC10eXBlcyc7XHJcbmltcG9ydCB7IGFzc2VydE5ldmVyIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgSW5wdXRDb21wb25lbnRDb25maWcgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vY29tcG9uZW50LXJlZ2lzdHJ5LXR5cGVzJztcclxuaW1wb3J0IHtcclxuICAgIENvbmZpZ0FyZyxcclxuICAgIENvbmZpZ0FyZ0RlZmluaXRpb24sXHJcbiAgICBDb25maWd1cmFibGVPcGVyYXRpb24sXHJcbiAgICBDb25maWd1cmFibGVPcGVyYXRpb25EZWZpbml0aW9uLFxyXG59IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5pbXBvcnQgeyBnZXREZWZhdWx0Q29uZmlnQXJnVmFsdWUgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXRpbGl0aWVzL2NvbmZpZ3VyYWJsZS1vcGVyYXRpb24tdXRpbHMnO1xyXG5pbXBvcnQgeyBpbnRlcnBvbGF0ZURlc2NyaXB0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWxpdGllcy9pbnRlcnBvbGF0ZS1kZXNjcmlwdGlvbic7XHJcblxyXG4vKipcclxuICogQSBmb3JtIGlucHV0IHdoaWNoIHJlbmRlcnMgYSBjYXJkIHdpdGggdGhlIGludGVybmFsIGZvcm0gZmllbGRzIG9mIHRoZSBnaXZlbiBDb25maWd1cmFibGVPcGVyYXRpb24uXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWNvbmZpZ3VyYWJsZS1pbnB1dCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29uZmlndXJhYmxlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NvbmZpZ3VyYWJsZS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogQ29uZmlndXJhYmxlSW5wdXRDb21wb25lbnQsXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb25maWd1cmFibGVJbnB1dENvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhYmxlSW5wdXRDb21wb25lbnRcclxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvclxyXG57XHJcbiAgICBASW5wdXQoKSBvcGVyYXRpb24/OiBDb25maWd1cmFibGVPcGVyYXRpb247XHJcbiAgICBASW5wdXQoKSBvcGVyYXRpb25EZWZpbml0aW9uPzogQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbjtcclxuICAgIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSByZW1vdmFibGUgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgcG9zaXRpb24gPSAwO1xyXG4gICAgQE91dHB1dCgpIHJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29uZmlndXJhYmxlT3BlcmF0aW9uPigpO1xyXG4gICAgYXJnVmFsdWVzOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG4gICAgb25DaGFuZ2U6ICh2YWw6IGFueSkgPT4gdm9pZDtcclxuICAgIG9uVG91Y2g6ICgpID0+IHZvaWQ7XHJcbiAgICBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICBwb3NpdGlvbkNoYW5nZSQ6IE9ic2VydmFibGU8bnVtYmVyPjtcclxuICAgIHByaXZhdGUgcG9zaXRpb25DaGFuZ2VTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICBpbnRlcnBvbGF0ZURlc2NyaXB0aW9uKCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHRoaXMub3BlcmF0aW9uRGVmaW5pdGlvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gaW50ZXJwb2xhdGVEZXNjcmlwdGlvbih0aGlzLm9wZXJhdGlvbkRlZmluaXRpb24sIHRoaXMuZm9ybS52YWx1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnBvc2l0aW9uQ2hhbmdlJCA9IHRoaXMucG9zaXRpb25DaGFuZ2VTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoJ29wZXJhdGlvbicgaW4gY2hhbmdlcyB8fCAnb3BlcmF0aW9uRGVmaW5pdGlvbicgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCdwb3NpdGlvbicgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uQ2hhbmdlU3ViamVjdC5uZXh0KHRoaXMucG9zaXRpb24pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2ggPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcclxuICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0uZGlzYWJsZSgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5lbmFibGUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdHJhY2tCeU5hbWUoaW5kZXg6IG51bWJlciwgYXJnOiBDb25maWdBcmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBhcmcubmFtZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRBcmdEZWYoYXJnOiBDb25maWdBcmcpOiBDb25maWdBcmdEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5vcGVyYXRpb25EZWZpbml0aW9uPy5hcmdzLmZpbmQoYSA9PiBhLm5hbWUgPT09IGFyZy5uYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNyZWF0ZUZvcm0oKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLm9wZXJhdGlvbikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICAgICAgICAodGhpcy5mb3JtIGFzIGFueSkuX19pZCA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigxMCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm9wZXJhdGlvbi5hcmdzKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgYXJnIG9mIHRoaXMub3BlcmF0aW9uRGVmaW5pdGlvbj8uYXJncyB8fCBbXSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlOiBhbnkgPSB0aGlzLm9wZXJhdGlvbi5hcmdzLmZpbmQoYSA9PiBhLm5hbWUgPT09IGFyZy5uYW1lKT8udmFsdWU7XHJcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0RGVmYXVsdENvbmZpZ0FyZ1ZhbHVlKGFyZyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2YWxpZGF0b3JzID0gYXJnLmxpc3QgPyB1bmRlZmluZWQgOiBhcmcucmVxdWlyZWQgPyBWYWxpZGF0b3JzLnJlcXVpcmVkIDogdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woYXJnLm5hbWUsIG5ldyBGb3JtQ29udHJvbCh2YWx1ZSwgdmFsaWRhdG9ycykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2Uoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvZGU6IHRoaXMub3BlcmF0aW9uICYmIHRoaXMub3BlcmF0aW9uLmNvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgYXJnczogdmFsdWUsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5vblRvdWNoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uVG91Y2goKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHZhbGlkYXRlKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgICAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZFwiICpuZ0lmPVwib3BlcmF0aW9uXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9ja1wiPnt7IGludGVycG9sYXRlRGVzY3JpcHRpb24oKSB9fTwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2tcIiAqbmdJZj1cIm9wZXJhdGlvbi5hcmdzPy5sZW5ndGhcIj5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAqbmdJZj1cIm9wZXJhdGlvblwiIGNsYXNzPVwib3BlcmF0aW9uLWlucHV0c1wiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBhcmcgb2Ygb3BlcmF0aW9uLmFyZ3M7IHRyYWNrQnk6IHRyYWNrQnlOYW1lXCIgY2xhc3M9XCJhcmctcm93XCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybS5nZXQoYXJnLm5hbWUpICYmIGdldEFyZ0RlZihhcmcpIGFzIGFyZ0RlZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNsci1jb250cm9sLWxhYmVsXCI+e3sgYXJnRGVmLmxhYmVsIHx8IChhcmcubmFtZSB8IHNlbnRlbmNlQ2FzZSkgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItaGVscC10b29sdGlwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhcmdEZWYuZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29udGVudF09XCJhcmdEZWYuZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgID48L3Zkci1oZWxwLXRvb2x0aXA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZkci1keW5hbWljLWZvcm0taW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2RlZl09XCJnZXRBcmdEZWYoYXJnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb250cm9sXT1cImZvcm0uZ2V0KGFyZy5uYW1lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiYXJnLm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L3Zkci1keW5hbWljLWZvcm0taW5wdXQ+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXJcIiAqbmdJZj1cIiFyZWFkb25seSAmJiByZW1vdmFibGVcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tbGluayBidG4td2FybmluZ1wiIChjbGljayk9XCJyZW1vdmUuZW1pdChvcGVyYXRpb24pXCI+XHJcbiAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInRpbWVzXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAge3sgJ2NvbW1vbi5yZW1vdmUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -4,10 +4,10 @@ import * as i1 from "@clr/angular";
|
|
|
4
4
|
export class HelpTooltipComponent {
|
|
5
5
|
}
|
|
6
6
|
HelpTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: HelpTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7
|
-
HelpTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: HelpTooltipComponent, selector: "vdr-help-tooltip", inputs: { content: "content", position: "position" }, ngImport: i0, template: "<clr-tooltip>\r\n <clr-icon clrTooltipTrigger shape=\"help\" size=\"14\"></clr-icon>\r\n <clr-tooltip-content [clrPosition]=\"position\" clrSize=\"md\" *clrIfOpen>\r\n <span>{{ content }}</span>\r\n </clr-tooltip-content>\r\n</clr-tooltip>\r\n", styles: [""], components: [{ type: i1.ClrTooltip, selector: "clr-tooltip" }, { type: i1.ClrTooltipContent, selector: "clr-tooltip-content", inputs: ["id", "clrPosition", "clrSize"] }], directives: [{ type: i1.ClrIconCustomTag, selector: "clr-icon" }, { type: i1.ClrTooltipTrigger, selector: "[clrTooltipTrigger]" }, { type: i1.ClrIfOpen, selector: "[clrIfOpen]", inputs: ["clrIfOpen"], outputs: ["clrIfOpenChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7
|
+
HelpTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: HelpTooltipComponent, selector: "vdr-help-tooltip", inputs: { content: "content", position: "position" }, ngImport: i0, template: "<clr-tooltip>\r\n <clr-icon clrTooltipTrigger shape=\"help\" size=\"14\"></clr-icon>\r\n <clr-tooltip-content [clrPosition]=\"position\" clrSize=\"md\" *clrIfOpen>\r\n <span>{{ content }}</span>\r\n </clr-tooltip-content>\r\n</clr-tooltip>\r\n", styles: ["clr-tooltip{display:inline-flex}\n"], components: [{ type: i1.ClrTooltip, selector: "clr-tooltip" }, { type: i1.ClrTooltipContent, selector: "clr-tooltip-content", inputs: ["id", "clrPosition", "clrSize"] }], directives: [{ type: i1.ClrIconCustomTag, selector: "clr-icon" }, { type: i1.ClrTooltipTrigger, selector: "[clrTooltipTrigger]" }, { type: i1.ClrIfOpen, selector: "[clrIfOpen]", inputs: ["clrIfOpen"], outputs: ["clrIfOpenChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
8
8
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: HelpTooltipComponent, decorators: [{
|
|
9
9
|
type: Component,
|
|
10
|
-
args: [{ selector: 'vdr-help-tooltip', changeDetection: ChangeDetectionStrategy.OnPush, template: "<clr-tooltip>\r\n <clr-icon clrTooltipTrigger shape=\"help\" size=\"14\"></clr-icon>\r\n <clr-tooltip-content [clrPosition]=\"position\" clrSize=\"md\" *clrIfOpen>\r\n <span>{{ content }}</span>\r\n </clr-tooltip-content>\r\n</clr-tooltip>\r\n", styles: [""] }]
|
|
10
|
+
args: [{ selector: 'vdr-help-tooltip', changeDetection: ChangeDetectionStrategy.OnPush, template: "<clr-tooltip>\r\n <clr-icon clrTooltipTrigger shape=\"help\" size=\"14\"></clr-icon>\r\n <clr-tooltip-content [clrPosition]=\"position\" clrSize=\"md\" *clrIfOpen>\r\n <span>{{ content }}</span>\r\n </clr-tooltip-content>\r\n</clr-tooltip>\r\n", styles: ["clr-tooltip{display:inline-flex}\n"] }]
|
|
11
11
|
}], propDecorators: { content: [{
|
|
12
12
|
type: Input
|
|
13
13
|
}], position: [{
|
|
@@ -53,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
53
53
|
}], isArrayItem: [{
|
|
54
54
|
type: Input
|
|
55
55
|
}] } });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9vYmplY3QtdHJlZS9vYmplY3QtdHJlZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL29iamVjdC10cmVlL29iamVjdC10cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFHTCxRQUFRLEVBQ1IsUUFBUSxHQUNYLE1BQU0sZUFBZSxDQUFDOzs7OztBQUV2Qjs7Ozs7Ozs7OztHQVVHO0FBT0gsTUFBTSxPQUFPLG1CQUFtQjtJQU81QixZQUFvQyxNQUEyQjtRQUx0RCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQU16QixJQUFJLE1BQU0sRUFBRTtZQUNSLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7U0FDakM7YUFBTTtZQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQ2xCO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNyRCxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBVTtRQUNmLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUM7SUFDdkQsQ0FBQztJQUVPLFVBQVUsQ0FBQyxVQUEyQztRQUMxRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUM1QixPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDOztnSEE5QlEsbUJBQW1CLGtCQU9nQixtQkFBbUI7b0dBUHRELG1CQUFtQixvSUMzQmhDLGkyQkFvQkEsdWpCRE9hLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNJLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNOzBEQVNILG1CQUFtQjswQkFBbEQsUUFBUTs7MEJBQUksUUFBUTs0Q0FOeEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIE9uSW5pdCxcclxuICAgIE9wdGlvbmFsLFxyXG4gICAgU2tpcFNlbGYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIFRoaXMgY29tcG9uZW50IGRpc3BsYXlzIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYXMgYW4gZXhwYW5kYWJsZSB0cmVlLlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGBIVE1MXHJcbiAqIDx2ZHItb2JqZWN0LXRyZWUgW3ZhbHVlXT1cInBheW1lbnQubWV0YWRhdGFcIj48L3Zkci1vYmplY3QtdHJlZT5cclxuICogYGBgXHJcbiAqXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgY29tcG9uZW50c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1vYmplY3QtdHJlZScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LXRyZWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vb2JqZWN0LXRyZWUuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgT2JqZWN0VHJlZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgICBASW5wdXQoKSB2YWx1ZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGlzQXJyYXlJdGVtID0gZmFsc2U7XHJcbiAgICBkZXB0aDogbnVtYmVyO1xyXG4gICAgZXhwYW5kZWQ6IGJvb2xlYW47XHJcbiAgICB2YWx1ZUlzQXJyYXk6IGJvb2xlYW47XHJcbiAgICBlbnRyaWVzOiBBcnJheTx7IGtleTogc3RyaW5nOyB2YWx1ZTogYW55IH0+O1xyXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcGFyZW50OiBPYmplY3RUcmVlQ29tcG9uZW50KSB7XHJcbiAgICAgICAgaWYgKHBhcmVudCkge1xyXG4gICAgICAgICAgICB0aGlzLmRlcHRoID0gcGFyZW50LmRlcHRoICsgMTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRlcHRoID0gMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICAgICAgdGhpcy5lbnRyaWVzID0gdGhpcy5nZXRFbnRyaWVzKHRoaXMudmFsdWUpO1xyXG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPSB0aGlzLmRlcHRoID09PSAwIHx8IHRoaXMuaXNBcnJheUl0ZW07XHJcbiAgICAgICAgdGhpcy52YWx1ZUlzQXJyYXkgPSBPYmplY3Qua2V5cyh0aGlzLnZhbHVlKS5ldmVyeSh2ID0+IE51bWJlci5pc0ludGVnZXIoK3YpKTtcclxuICAgIH1cclxuXHJcbiAgICBpc09iamVjdCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRFbnRyaWVzKGlucHV0VmFsdWU6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBzdHJpbmcpOiBBcnJheTx7IGtleTogc3RyaW5nOyB2YWx1ZTogYW55IH0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNPYmplY3QoaW5wdXRWYWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFt7IGtleTogJycsIHZhbHVlOiBpbnB1dFZhbHVlIH1dO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoaW5wdXRWYWx1ZSkubWFwKChba2V5LCB2YWx1ZV0pID0+ICh7IGtleSwgdmFsdWUgfSkpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxidXR0b24gY2xhc3M9XCJpY29uLWJ1dHRvblwiIChjbGljayk9XCJleHBhbmRlZCA9ICFleHBhbmRlZFwiICpuZ0lmPVwiZGVwdGggIT09IDAgJiYgIWlzQXJyYXlJdGVtXCI+XHJcbiAgICA8Y2xyLWljb24gc2hhcGU9XCJjYXJldFwiIHNpemU9XCIxMlwiIFtkaXJdPVwiZXhwYW5kZWQgPyAnZG93bicgOiAncmlnaHQnXCI+PC9jbHItaWNvbj5cclxuPC9idXR0b24+XHJcbjx1bFxyXG4gICAgY2xhc3M9XCJvYmplY3QtdHJlZS1ub2RlXCJcclxuICAgIFtuZ0NsYXNzXT1cIidkZXB0aC0nICsgZGVwdGhcIlxyXG4gICAgW2NsYXNzLmFycmF5LXZhbHVlXT1cInZhbHVlSXNBcnJheVwiXHJcbiAgICBbY2xhc3MuYXJyYXktaXRlbV09XCJpc0FycmF5SXRlbVwiXHJcbiAgICBbY2xhc3MuZXhwYW5kZWRdPVwiZXhwYW5kZWRcIlxyXG4+XHJcbiAgICA8bGkgKm5nRm9yPVwibGV0IGVudHJ5IG9mIGVudHJpZXNcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImtleVwiICpuZ0lmPVwiZW50cnkua2V5XCI+e3sgZW50cnkua2V5IH19Ojwvc3Bhbj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNPYmplY3QoZW50cnkudmFsdWUpOyBlbHNlIHByaW1pdGl2ZVwiPlxyXG4gICAgICAgICAgICA8dmRyLW9iamVjdC10cmVlIFt2YWx1ZV09XCJlbnRyeS52YWx1ZVwiIFtpc0FycmF5SXRlbV09XCJ2YWx1ZUlzQXJyYXlcIj48L3Zkci1vYmplY3QtdHJlZT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI3ByaW1pdGl2ZT5cclxuICAgICAgICAgICAge3sgZW50cnkudmFsdWUgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9saT5cclxuPC91bD5cclxuIl19
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, combineLatest } from 'rxjs';
|
|
3
|
+
import { map, tap } from 'rxjs/operators';
|
|
4
|
+
import { SelectionManager } from '../../../common/utilities/selection-manager';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../../data/providers/data.service";
|
|
7
|
+
import * as i2 from "../product-search-input/product-search-input.component";
|
|
8
|
+
import * as i3 from "../select-toggle/select-toggle.component";
|
|
9
|
+
import * as i4 from "../items-per-page-controls/items-per-page-controls.component";
|
|
10
|
+
import * as i5 from "../pagination-controls/pagination-controls.component";
|
|
11
|
+
import * as i6 from "../modal-dialog/dialog-title.directive";
|
|
12
|
+
import * as i7 from "@angular/common";
|
|
13
|
+
import * as i8 from "@clr/angular";
|
|
14
|
+
import * as i9 from "../modal-dialog/dialog-buttons.directive";
|
|
15
|
+
import * as i10 from "@ngx-translate/core";
|
|
16
|
+
import * as i11 from "ngx-pagination";
|
|
17
|
+
import * as i12 from "../../pipes/asset-preview.pipe";
|
|
18
|
+
export class ProductMultiSelectorDialogComponent {
|
|
19
|
+
constructor(dataService, changeDetector) {
|
|
20
|
+
this.dataService = dataService;
|
|
21
|
+
this.changeDetector = changeDetector;
|
|
22
|
+
this.mode = 'product';
|
|
23
|
+
this.initialSelectionIds = [];
|
|
24
|
+
this.searchTerm$ = new BehaviorSubject('');
|
|
25
|
+
this.searchFacetValueIds$ = new BehaviorSubject([]);
|
|
26
|
+
this.paginationConfig = {
|
|
27
|
+
currentPage: 1,
|
|
28
|
+
itemsPerPage: 25,
|
|
29
|
+
totalItems: 1,
|
|
30
|
+
};
|
|
31
|
+
this.paginationConfig$ = new BehaviorSubject(this.paginationConfig);
|
|
32
|
+
}
|
|
33
|
+
ngOnInit() {
|
|
34
|
+
const idFn = this.mode === 'product'
|
|
35
|
+
? (a, b) => a.productId === b.productId
|
|
36
|
+
: (a, b) => a.productVariantId === b.productVariantId;
|
|
37
|
+
this.selectionManager = new SelectionManager({
|
|
38
|
+
multiSelect: true,
|
|
39
|
+
itemsAreEqual: idFn,
|
|
40
|
+
additiveMode: true,
|
|
41
|
+
});
|
|
42
|
+
const searchQueryResult = this.dataService.product.searchProducts('', this.paginationConfig.itemsPerPage, 0);
|
|
43
|
+
const result$ = combineLatest(this.searchTerm$, this.searchFacetValueIds$, this.paginationConfig$).subscribe(([term, facetValueIds, pagination]) => {
|
|
44
|
+
const take = +pagination.itemsPerPage;
|
|
45
|
+
const skip = (pagination.currentPage - 1) * take;
|
|
46
|
+
return searchQueryResult.ref.refetch({
|
|
47
|
+
input: { skip, take, term, facetValueIds, groupByProduct: this.mode === 'product' },
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
this.items$ = searchQueryResult.stream$.pipe(tap(data => {
|
|
51
|
+
this.paginationConfig.totalItems = data.search.totalItems;
|
|
52
|
+
this.selectionManager.setCurrentItems(data.search.items);
|
|
53
|
+
}), map(data => data.search.items));
|
|
54
|
+
this.facetValues$ = searchQueryResult.stream$.pipe(map(data => data.search.facetValues));
|
|
55
|
+
if (this.initialSelectionIds.length) {
|
|
56
|
+
if (this.mode === 'product') {
|
|
57
|
+
this.dataService.product
|
|
58
|
+
.getProducts({
|
|
59
|
+
filter: {
|
|
60
|
+
id: {
|
|
61
|
+
in: this.initialSelectionIds,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
})
|
|
65
|
+
.single$.subscribe(({ products }) => {
|
|
66
|
+
this.selectionManager.selectMultiple(products.items.map(product => ({
|
|
67
|
+
productId: product.id,
|
|
68
|
+
productName: product.name,
|
|
69
|
+
})));
|
|
70
|
+
this.changeDetector.markForCheck();
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
this.dataService.product
|
|
75
|
+
.getProductVariants({
|
|
76
|
+
filter: {
|
|
77
|
+
id: {
|
|
78
|
+
in: this.initialSelectionIds,
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
})
|
|
82
|
+
.single$.subscribe(({ productVariants }) => {
|
|
83
|
+
this.selectionManager.selectMultiple(productVariants.items.map(variant => ({
|
|
84
|
+
productVariantId: variant.id,
|
|
85
|
+
productVariantName: variant.name,
|
|
86
|
+
})));
|
|
87
|
+
this.changeDetector.markForCheck();
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
trackByFn(index, item) {
|
|
93
|
+
return item.productId;
|
|
94
|
+
}
|
|
95
|
+
setSearchTerm(term) {
|
|
96
|
+
this.searchTerm$.next(term);
|
|
97
|
+
}
|
|
98
|
+
setFacetValueIds(ids) {
|
|
99
|
+
this.searchFacetValueIds$.next(ids);
|
|
100
|
+
}
|
|
101
|
+
toggleSelection(item, event) {
|
|
102
|
+
this.selectionManager.toggleSelection(item, event);
|
|
103
|
+
}
|
|
104
|
+
clearSelection() {
|
|
105
|
+
this.selectionManager.selectMultiple([]);
|
|
106
|
+
}
|
|
107
|
+
isSelected(item) {
|
|
108
|
+
return this.selectionManager.isSelected(item);
|
|
109
|
+
}
|
|
110
|
+
entityInfoClick(event) {
|
|
111
|
+
event.preventDefault();
|
|
112
|
+
event.stopPropagation();
|
|
113
|
+
}
|
|
114
|
+
pageChange(page) {
|
|
115
|
+
this.paginationConfig.currentPage = page;
|
|
116
|
+
this.paginationConfig$.next(this.paginationConfig);
|
|
117
|
+
}
|
|
118
|
+
itemsPerPageChange(itemsPerPage) {
|
|
119
|
+
this.paginationConfig.itemsPerPage = itemsPerPage;
|
|
120
|
+
this.paginationConfig$.next(this.paginationConfig);
|
|
121
|
+
}
|
|
122
|
+
select() {
|
|
123
|
+
this.resolveWith(this.selectionManager.selection);
|
|
124
|
+
}
|
|
125
|
+
cancel() {
|
|
126
|
+
this.resolveWith();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
ProductMultiSelectorDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ProductMultiSelectorDialogComponent, deps: [{ token: i1.DataService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
130
|
+
ProductMultiSelectorDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: ProductMultiSelectorDialogComponent, selector: "vdr-product-multi-selector-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n <div class=\"title-row\">\r\n <span *ngIf=\"mode === 'product'\">{{ 'common.select-products' | translate }}</span>\r\n <span *ngIf=\"mode === 'variant'\">{{ 'common.select-variants' | translate }}</span>\r\n </div>\r\n</ng-template>\r\n<vdr-product-search-input\r\n #productSearchInputComponent\r\n [facetValueResults]=\"facetValues$ | async\"\r\n (searchTermChange)=\"setSearchTerm($event)\"\r\n (facetValueChange)=\"setFacetValueIds($event)\"\r\n></vdr-product-search-input>\r\n<div class=\"flex-wrapper\">\r\n <div class=\"gallery\">\r\n <div\r\n class=\"card\"\r\n *ngFor=\"let item of (items$ | async) || [] | paginate: paginationConfig; trackBy: trackByFn\"\r\n (click)=\"toggleSelection(item, $event)\"\r\n [class.selected]=\"isSelected(item)\"\r\n >\r\n <div class=\"card-img\">\r\n <vdr-select-toggle\r\n [selected]=\"isSelected(item)\"\r\n [disabled]=\"true\"\r\n [hiddenWhenOff]=\"true\"\r\n ></vdr-select-toggle>\r\n <img\r\n [src]=\"\r\n (mode === 'product'\r\n ? item.productAsset\r\n : item.productVariantAsset || item.productAsset\r\n ) | assetPreview: 'thumb'\r\n \"\r\n />\r\n </div>\r\n <div class=\"detail\">\r\n <span [title]=\"mode === 'product' ? item.productName : item.productVariantName\">{{\r\n mode === 'product' ? item.productName : item.productVariantName\r\n }}</span>\r\n <div *ngIf=\"mode === 'variant'\"><small>{{ item.sku }}</small></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"selection\">\r\n <div class=\"m2 flex center\">\r\n <div>\r\n {{ 'common.items-selected-count' | translate: { count: selectionManager.selection.length } }}\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <button class=\"btn btn-sm btn-link\" (click)=\"clearSelection()\">\r\n <cds-icon shape=\"times\"></cds-icon> {{ 'common.clear-selection' | translate }}\r\n </button>\r\n </div>\r\n <div class=\"selected-items\">\r\n <div *ngFor=\"let item of selectionManager.selection\" class=\"flex item-row\">\r\n <div class=\"\">{{ mode === 'product' ? item.productName : item.productVariantName }}</div>\r\n <div class=\"flex-spacer\"></div>\r\n <div>\r\n <button class=\"icon-button\" (click)=\"toggleSelection(item, $event)\">\r\n <cds-icon shape=\"times\"></cds-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"paging-controls\">\r\n <vdr-items-per-page-controls\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n (itemsPerPageChange)=\"itemsPerPageChange($event)\"\r\n ></vdr-items-per-page-controls>\r\n\r\n <vdr-pagination-controls\r\n [currentPage]=\"paginationConfig.currentPage\"\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n [totalItems]=\"paginationConfig.totalItems\"\r\n (pageChange)=\"pageChange($event)\"\r\n ></vdr-pagination-controls>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"select()\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"selectionManager.selection.length === 0\"\r\n >\r\n {{ 'common.select-items-with-count' | translate: { count: selectionManager.selection.length } }}\r\n </button>\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;flex-direction:1;height:70vh}.flex-wrapper{display:flex;overflow-y:hidden}.gallery{flex:1;display:grid;grid-template-columns:repeat(auto-fill,125px);grid-template-rows:repeat(auto-fill,200px);grid-gap:10px 20px;padding-left:12px;padding-top:12px;padding-bottom:64px;overflow-y:auto}.gallery .card:hover{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.detail{margin:0 3px;font-size:12px;line-height:.8rem}vdr-select-toggle{position:absolute;top:-12px;left:-12px}vdr-select-toggle ::ng-deep .toggle{box-shadow:0 5px 5px -4px #000000bf}.card.selected{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.card.selected .selected-checkbox{opacity:1}.selection{width:23vw;max-width:400px;padding:6px;display:flex;flex-direction:column}.selection .selected-items{flex:1;overflow-y:auto}.selection .selected-items .item-row{padding-left:3px}.selection .selected-items .item-row:hover{background-color:var(--color-component-bg-200)}.paging-controls{display:flex;align-items:center;justify-content:space-between}\n"], components: [{ type: i2.ProductSearchInputComponent, selector: "vdr-product-search-input", inputs: ["facetValueResults"], outputs: ["searchTermChange", "facetValueChange"] }, { type: i3.SelectToggleComponent, selector: "vdr-select-toggle", inputs: ["size", "selected", "hiddenWhenOff", "disabled", "label"], outputs: ["selectedChange"] }, { type: i4.ItemsPerPageControlsComponent, selector: "vdr-items-per-page-controls", inputs: ["itemsPerPage"], outputs: ["itemsPerPageChange"] }, { type: i5.PaginationControlsComponent, selector: "vdr-pagination-controls", inputs: ["id", "currentPage", "itemsPerPage", "totalItems"], outputs: ["pageChange"] }], directives: [{ type: i6.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.ClrDatagridItemsTrackBy, selector: "[ngForTrackBy]", inputs: ["ngForTrackBy"] }, { type: i8.CdsIconCustomTag, selector: "cds-icon" }, { type: i9.DialogButtonsDirective, selector: "[vdrDialogButtons]" }], pipes: { "translate": i10.TranslatePipe, "async": i7.AsyncPipe, "paginate": i11.PaginatePipe, "assetPreview": i12.AssetPreviewPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ProductMultiSelectorDialogComponent, decorators: [{
|
|
132
|
+
type: Component,
|
|
133
|
+
args: [{ selector: 'vdr-product-multi-selector-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n <div class=\"title-row\">\r\n <span *ngIf=\"mode === 'product'\">{{ 'common.select-products' | translate }}</span>\r\n <span *ngIf=\"mode === 'variant'\">{{ 'common.select-variants' | translate }}</span>\r\n </div>\r\n</ng-template>\r\n<vdr-product-search-input\r\n #productSearchInputComponent\r\n [facetValueResults]=\"facetValues$ | async\"\r\n (searchTermChange)=\"setSearchTerm($event)\"\r\n (facetValueChange)=\"setFacetValueIds($event)\"\r\n></vdr-product-search-input>\r\n<div class=\"flex-wrapper\">\r\n <div class=\"gallery\">\r\n <div\r\n class=\"card\"\r\n *ngFor=\"let item of (items$ | async) || [] | paginate: paginationConfig; trackBy: trackByFn\"\r\n (click)=\"toggleSelection(item, $event)\"\r\n [class.selected]=\"isSelected(item)\"\r\n >\r\n <div class=\"card-img\">\r\n <vdr-select-toggle\r\n [selected]=\"isSelected(item)\"\r\n [disabled]=\"true\"\r\n [hiddenWhenOff]=\"true\"\r\n ></vdr-select-toggle>\r\n <img\r\n [src]=\"\r\n (mode === 'product'\r\n ? item.productAsset\r\n : item.productVariantAsset || item.productAsset\r\n ) | assetPreview: 'thumb'\r\n \"\r\n />\r\n </div>\r\n <div class=\"detail\">\r\n <span [title]=\"mode === 'product' ? item.productName : item.productVariantName\">{{\r\n mode === 'product' ? item.productName : item.productVariantName\r\n }}</span>\r\n <div *ngIf=\"mode === 'variant'\"><small>{{ item.sku }}</small></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"selection\">\r\n <div class=\"m2 flex center\">\r\n <div>\r\n {{ 'common.items-selected-count' | translate: { count: selectionManager.selection.length } }}\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <button class=\"btn btn-sm btn-link\" (click)=\"clearSelection()\">\r\n <cds-icon shape=\"times\"></cds-icon> {{ 'common.clear-selection' | translate }}\r\n </button>\r\n </div>\r\n <div class=\"selected-items\">\r\n <div *ngFor=\"let item of selectionManager.selection\" class=\"flex item-row\">\r\n <div class=\"\">{{ mode === 'product' ? item.productName : item.productVariantName }}</div>\r\n <div class=\"flex-spacer\"></div>\r\n <div>\r\n <button class=\"icon-button\" (click)=\"toggleSelection(item, $event)\">\r\n <cds-icon shape=\"times\"></cds-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"paging-controls\">\r\n <vdr-items-per-page-controls\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n (itemsPerPageChange)=\"itemsPerPageChange($event)\"\r\n ></vdr-items-per-page-controls>\r\n\r\n <vdr-pagination-controls\r\n [currentPage]=\"paginationConfig.currentPage\"\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n [totalItems]=\"paginationConfig.totalItems\"\r\n (pageChange)=\"pageChange($event)\"\r\n ></vdr-pagination-controls>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"select()\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"selectionManager.selection.length === 0\"\r\n >\r\n {{ 'common.select-items-with-count' | translate: { count: selectionManager.selection.length } }}\r\n </button>\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;flex-direction:1;height:70vh}.flex-wrapper{display:flex;overflow-y:hidden}.gallery{flex:1;display:grid;grid-template-columns:repeat(auto-fill,125px);grid-template-rows:repeat(auto-fill,200px);grid-gap:10px 20px;padding-left:12px;padding-top:12px;padding-bottom:64px;overflow-y:auto}.gallery .card:hover{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.detail{margin:0 3px;font-size:12px;line-height:.8rem}vdr-select-toggle{position:absolute;top:-12px;left:-12px}vdr-select-toggle ::ng-deep .toggle{box-shadow:0 5px 5px -4px #000000bf}.card.selected{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.card.selected .selected-checkbox{opacity:1}.selection{width:23vw;max-width:400px;padding:6px;display:flex;flex-direction:column}.selection .selected-items{flex:1;overflow-y:auto}.selection .selected-items .item-row{padding-left:3px}.selection .selected-items .item-row:hover{background-color:var(--color-component-bg-200)}.paging-controls{display:flex;align-items:center;justify-content:space-between}\n"] }]
|
|
134
|
+
}], ctorParameters: function () { return [{ type: i1.DataService }, { type: i0.ChangeDetectorRef }]; } });
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tdWx0aS1zZWxlY3Rvci1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9wcm9kdWN0LW11bHRpLXNlbGVjdG9yLWRpYWxvZy9wcm9kdWN0LW11bHRpLXNlbGVjdG9yLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL3Byb2R1Y3QtbXVsdGktc2VsZWN0b3ItZGlhbG9nL3Byb2R1Y3QtbXVsdGktc2VsZWN0b3ItZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBWS9FLE1BQU0sT0FBTyxtQ0FBbUM7SUFpQjVDLFlBQW9CLFdBQXdCLEVBQVUsY0FBaUM7UUFBbkUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFoQnZGLFNBQUksR0FBMEIsU0FBUyxDQUFDO1FBQ3hDLHdCQUFtQixHQUFhLEVBQUUsQ0FBQztRQUduQyxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLHlCQUFvQixHQUFHLElBQUksZUFBZSxDQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELHFCQUFnQixHQUF1QjtZQUNuQyxXQUFXLEVBQUUsQ0FBQztZQUNkLFlBQVksRUFB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OytCQUNJLG1DQUFtQyxtQkFHNUIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGFnaW5hdGlvbkluc3RhbmNlIH0gZnJvbSAnbmd4LXBhZ2luYXRpb24nO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBTZWFyY2hQcm9kdWN0c1F1ZXJ5IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcbmltcG9ydCB7IFNlbGVjdGlvbk1hbmFnZXIgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXRpbGl0aWVzL3NlbGVjdGlvbi1tYW5hZ2VyJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEaWFsb2cgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvbW9kYWwvbW9kYWwudHlwZXMnO1xyXG5cclxuZXhwb3J0IHR5cGUgU2VhcmNoSXRlbSA9IFNlYXJjaFByb2R1Y3RzUXVlcnlbJ3NlYXJjaCddWydpdGVtcyddW251bWJlcl07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLXByb2R1Y3QtbXVsdGktc2VsZWN0b3ItZGlhbG9nJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcm9kdWN0LW11bHRpLXNlbGVjdG9yLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9wcm9kdWN0LW11bHRpLXNlbGVjdG9yLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWN0TXVsdGlTZWxlY3RvckRpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgRGlhbG9nPFNlYXJjaEl0ZW1bXT4ge1xyXG4gICAgbW9kZTogJ3Byb2R1Y3QnIHwgJ3ZhcmlhbnQnID0gJ3Byb2R1Y3QnO1xyXG4gICAgaW5pdGlhbFNlbGVjdGlvbklkczogc3RyaW5nW10gPSBbXTtcclxuICAgIGl0ZW1zJDogT2JzZXJ2YWJsZTxTZWFyY2hJdGVtW10+O1xyXG4gICAgZmFjZXRWYWx1ZXMkOiBPYnNlcnZhYmxlPFNlYXJjaFByb2R1Y3RzUXVlcnlbJ3NlYXJjaCddWydmYWNldFZhbHVlcyddPjtcclxuICAgIHNlYXJjaFRlcm0kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcclxuICAgIHNlYXJjaEZhY2V0VmFsdWVJZHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4oW10pO1xyXG4gICAgcGFnaW5hdGlvbkNvbmZpZzogUGFnaW5hdGlvbkluc3RhbmNlID0ge1xyXG4gICAgICAgIGN1cnJlbnRQYWdlOiAxLFxyXG4gICAgICAgIGl0ZW1zUGVyUGFnZTogMjUsXHJcbiAgICAgICAgdG90YWxJdGVtczogMSxcclxuICAgIH07XHJcbiAgICBzZWxlY3Rpb25NYW5hZ2VyOiBTZWxlY3Rpb25NYW5hZ2VyPFNlYXJjaEl0ZW0+O1xyXG5cclxuICAgIHJlc29sdmVXaXRoOiAocmVzdWx0PzogU2VhcmNoSXRlbVtdKSA9PiB2b2lkO1xyXG4gICAgcHJpdmF0ZSBwYWdpbmF0aW9uQ29uZmlnJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFnaW5hdGlvbkluc3RhbmNlPih0aGlzLnBhZ2luYXRpb25Db25maWcpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLCBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikge31cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBpZEZuID1cclxuICAgICAgICAgICAgdGhpcy5tb2RlID09PSAncHJvZHVjdCdcclxuICAgICAgICAgICAgICAgID8gKGE6IFNlYXJjaEl0ZW0sIGI6IFNlYXJjaEl0ZW0pID0+IGEucHJvZHVjdElkID09PSBiLnByb2R1Y3RJZFxyXG4gICAgICAgICAgICAgICAgOiAoYTogU2VhcmNoSXRlbSwgYjogU2VhcmNoSXRlbSkgPT4gYS5wcm9kdWN0VmFyaWFudElkID09PSBiLnByb2R1Y3RWYXJpYW50SWQ7XHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25NYW5hZ2VyID0gbmV3IFNlbGVjdGlvbk1hbmFnZXI8U2VhcmNoSXRlbT4oe1xyXG4gICAgICAgICAgICBtdWx0aVNlbGVjdDogdHJ1ZSxcclxuICAgICAgICAgICAgaXRlbXNBcmVFcXVhbDogaWRGbixcclxuICAgICAgICAgICAgYWRkaXRpdmVNb2RlOiB0cnVlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbnN0IHNlYXJjaFF1ZXJ5UmVzdWx0ID0gdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0LnNlYXJjaFByb2R1Y3RzKFxyXG4gICAgICAgICAgICAnJyxcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uQ29uZmlnLml0ZW1zUGVyUGFnZSxcclxuICAgICAgICAgICAgMCxcclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCQgPSBjb21iaW5lTGF0ZXN0KFxyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFRlcm0kLFxyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaEZhY2V0VmFsdWVJZHMkLFxyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25Db25maWckLFxyXG4gICAgICAgICkuc3Vic2NyaWJlKChbdGVybSwgZmFjZXRWYWx1ZUlkcywgcGFnaW5hdGlvbl0pID0+IHtcclxuICAgICAgICAgICAgY29uc3QgdGFrZSA9ICtwYWdpbmF0aW9uLml0ZW1zUGVyUGFnZTtcclxuICAgICAgICAgICAgY29uc3Qgc2tpcCA9IChwYWdpbmF0aW9uLmN1cnJlbnRQYWdlIC0gMSkgKiB0YWtlO1xyXG4gICAgICAgICAgICByZXR1cm4gc2VhcmNoUXVlcnlSZXN1bHQucmVmLnJlZmV0Y2goe1xyXG4gICAgICAgICAgICAgICAgaW5wdXQ6IHsgc2tpcCwgdGFrZSwgdGVybSwgZmFjZXRWYWx1ZUlkcywgZ3JvdXBCeVByb2R1Y3Q6IHRoaXMubW9kZSA9PT0gJ3Byb2R1Y3QnIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLml0ZW1zJCA9IHNlYXJjaFF1ZXJ5UmVzdWx0LnN0cmVhbSQucGlwZShcclxuICAgICAgICAgICAgdGFwKGRhdGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uQ29uZmlnLnRvdGFsSXRlbXMgPSBkYXRhLnNlYXJjaC50b3RhbEl0ZW1zO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25NYW5hZ2VyLnNldEN1cnJlbnRJdGVtcyhkYXRhLnNlYXJjaC5pdGVtcyk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBtYXAoZGF0YSA9PiBkYXRhLnNlYXJjaC5pdGVtcyksXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5mYWNldFZhbHVlcyQgPSBzZWFyY2hRdWVyeVJlc3VsdC5zdHJlYW0kLnBpcGUobWFwKGRhdGEgPT4gZGF0YS5zZWFyY2guZmFjZXRWYWx1ZXMpKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbFNlbGVjdGlvbklkcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubW9kZSA9PT0gJ3Byb2R1Y3QnKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3RcclxuICAgICAgICAgICAgICAgICAgICAuZ2V0UHJvZHVjdHMoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW46IHRoaXMuaW5pdGlhbFNlbGVjdGlvbklkcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAuc2luZ2xlJC5zdWJzY3JpYmUoKHsgcHJvZHVjdHMgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1hbmFnZXIuc2VsZWN0TXVsdGlwbGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0cy5pdGVtcy5tYXAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdCA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdElkOiBwcm9kdWN0LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdE5hbWU6IHByb2R1Y3QubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBhcyBTZWFyY2hJdGVtKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3RcclxuICAgICAgICAgICAgICAgICAgICAuZ2V0UHJvZHVjdFZhcmlhbnRzKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluOiB0aGlzLmluaXRpYWxTZWxlY3Rpb25JZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgLnNpbmdsZSQuc3Vic2NyaWJlKCh7IHByb2R1Y3RWYXJpYW50cyB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uTWFuYWdlci5zZWxlY3RNdWx0aXBsZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RWYXJpYW50cy5pdGVtcy5tYXAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudCA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdFZhcmlhbnRJZDogdmFyaWFudC5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RWYXJpYW50TmFtZTogdmFyaWFudC5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGFzIFNlYXJjaEl0ZW0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogU2VhcmNoSXRlbSkge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnByb2R1Y3RJZDtcclxuICAgIH1cclxuXHJcbiAgICBzZXRTZWFyY2hUZXJtKHRlcm06IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVGVybSQubmV4dCh0ZXJtKTtcclxuICAgIH1cclxuICAgIHNldEZhY2V0VmFsdWVJZHMoaWRzOiBzdHJpbmdbXSkge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoRmFjZXRWYWx1ZUlkcyQubmV4dChpZHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZVNlbGVjdGlvbihpdGVtOiBTZWFyY2hJdGVtLCBldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uTWFuYWdlci50b2dnbGVTZWxlY3Rpb24oaXRlbSwgZXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGNsZWFyU2VsZWN0aW9uKCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uTWFuYWdlci5zZWxlY3RNdWx0aXBsZShbXSk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNTZWxlY3RlZChpdGVtOiBTZWFyY2hJdGVtKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uTWFuYWdlci5pc1NlbGVjdGVkKGl0ZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIGVudGl0eUluZm9DbGljayhldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcGFnZUNoYW5nZShwYWdlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb25Db25maWcuY3VycmVudFBhZ2UgPSBwYWdlO1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvbkNvbmZpZyQubmV4dCh0aGlzLnBhZ2luYXRpb25Db25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIGl0ZW1zUGVyUGFnZUNoYW5nZShpdGVtc1BlclBhZ2U6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvbkNvbmZpZy5pdGVtc1BlclBhZ2UgPSBpdGVtc1BlclBhZ2U7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uQ29uZmlnJC5uZXh0KHRoaXMucGFnaW5hdGlvbkNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0KCkge1xyXG4gICAgICAgIHRoaXMucmVzb2x2ZVdpdGgodGhpcy5zZWxlY3Rpb25NYW5hZ2VyLnNlbGVjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgY2FuY2VsKCkge1xyXG4gICAgICAgIHRoaXMucmVzb2x2ZVdpdGgoKTtcclxuICAgIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgdmRyRGlhbG9nVGl0bGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcm93XCI+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJtb2RlID09PSAncHJvZHVjdCdcIj57eyAnY29tbW9uLnNlbGVjdC1wcm9kdWN0cycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJtb2RlID09PSAndmFyaWFudCdcIj57eyAnY29tbW9uLnNlbGVjdC12YXJpYW50cycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPHZkci1wcm9kdWN0LXNlYXJjaC1pbnB1dFxyXG4gICAgI3Byb2R1Y3RTZWFyY2hJbnB1dENvbXBvbmVudFxyXG4gICAgW2ZhY2V0VmFsdWVSZXN1bHRzXT1cImZhY2V0VmFsdWVzJCB8IGFzeW5jXCJcclxuICAgIChzZWFyY2hUZXJtQ2hhbmdlKT1cInNldFNlYXJjaFRlcm0oJGV2ZW50KVwiXHJcbiAgICAoZmFjZXRWYWx1ZUNoYW5nZSk9XCJzZXRGYWNldFZhbHVlSWRzKCRldmVudClcIlxyXG4+PC92ZHItcHJvZHVjdC1zZWFyY2gtaW5wdXQ+XHJcbjxkaXYgY2xhc3M9XCJmbGV4LXdyYXBwZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJnYWxsZXJ5XCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImNhcmRcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiAoaXRlbXMkIHwgYXN5bmMpIHx8IFtdIHwgcGFnaW5hdGU6IHBhZ2luYXRpb25Db25maWc7IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVTZWxlY3Rpb24oaXRlbSwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpc1NlbGVjdGVkKGl0ZW0pXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPHZkci1zZWxlY3QtdG9nZ2xlXHJcbiAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cImlzU2VsZWN0ZWQoaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbaGlkZGVuV2hlbk9mZl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgID48L3Zkci1zZWxlY3QtdG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlID09PSAncHJvZHVjdCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaXRlbS5wcm9kdWN0QXNzZXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaXRlbS5wcm9kdWN0VmFyaWFudEFzc2V0IHx8IGl0ZW0ucHJvZHVjdEFzc2V0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkgfCBhc3NldFByZXZpZXc6ICd0aHVtYidcclxuICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFt0aXRsZV09XCJtb2RlID09PSAncHJvZHVjdCcgPyBpdGVtLnByb2R1Y3ROYW1lIDogaXRlbS5wcm9kdWN0VmFyaWFudE5hbWVcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgIG1vZGUgPT09ICdwcm9kdWN0JyA/IGl0ZW0ucHJvZHVjdE5hbWUgOiBpdGVtLnByb2R1Y3RWYXJpYW50TmFtZVxyXG4gICAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibW9kZSA9PT0gJ3ZhcmlhbnQnXCI+PHNtYWxsPnt7IGl0ZW0uc2t1IH19PC9zbWFsbD48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rpb25cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibTIgZmxleCBjZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIHt7ICdjb21tb24uaXRlbXMtc2VsZWN0ZWQtY291bnQnIHwgdHJhbnNsYXRlOiB7IGNvdW50OiBzZWxlY3Rpb25NYW5hZ2VyLnNlbGVjdGlvbi5sZW5ndGggfSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc3BhY2VyXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1saW5rXCIgKGNsaWNrKT1cImNsZWFyU2VsZWN0aW9uKClcIj5cclxuICAgICAgICAgICAgICAgIDxjZHMtaWNvbiBzaGFwZT1cInRpbWVzXCI+PC9jZHMtaWNvbj4ge3sgJ2NvbW1vbi5jbGVhci1zZWxlY3Rpb24nIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZC1pdGVtc1wiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNlbGVjdGlvbk1hbmFnZXIuc2VsZWN0aW9uXCIgY2xhc3M9XCJmbGV4IGl0ZW0tcm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+e3sgbW9kZSA9PT0gJ3Byb2R1Y3QnID8gaXRlbS5wcm9kdWN0TmFtZSA6IGl0ZW0ucHJvZHVjdFZhcmlhbnROYW1lIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zcGFjZXJcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImljb24tYnV0dG9uXCIgKGNsaWNrKT1cInRvZ2dsZVNlbGVjdGlvbihpdGVtLCAkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjZHMtaWNvbiBzaGFwZT1cInRpbWVzXCI+PC9jZHMtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJwYWdpbmctY29udHJvbHNcIj5cclxuICAgIDx2ZHItaXRlbXMtcGVyLXBhZ2UtY29udHJvbHNcclxuICAgICAgICBbaXRlbXNQZXJQYWdlXT1cInBhZ2luYXRpb25Db25maWcuaXRlbXNQZXJQYWdlXCJcclxuICAgICAgICAoaXRlbXNQZXJQYWdlQ2hhbmdlKT1cIml0ZW1zUGVyUGFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgID48L3Zkci1pdGVtcy1wZXItcGFnZS1jb250cm9scz5cclxuXHJcbiAgICA8dmRyLXBhZ2luYXRpb24tY29udHJvbHNcclxuICAgICAgICBbY3VycmVudFBhZ2VdPVwicGFnaW5hdGlvbkNvbmZpZy5jdXJyZW50UGFnZVwiXHJcbiAgICAgICAgW2l0ZW1zUGVyUGFnZV09XCJwYWdpbmF0aW9uQ29uZmlnLml0ZW1zUGVyUGFnZVwiXHJcbiAgICAgICAgW3RvdGFsSXRlbXNdPVwicGFnaW5hdGlvbkNvbmZpZy50b3RhbEl0ZW1zXCJcclxuICAgICAgICAocGFnZUNoYW5nZSk9XCJwYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgPjwvdmRyLXBhZ2luYXRpb24tY29udHJvbHM+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlIHZkckRpYWxvZ0J1dHRvbnM+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJjYW5jZWwoKVwiPnt7ICdjb21tb24uY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgIChjbGljayk9XCJzZWxlY3QoKVwiXHJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJzZWxlY3Rpb25NYW5hZ2VyLnNlbGVjdGlvbi5sZW5ndGggPT09IDBcIlxyXG4gICAgPlxyXG4gICAgICAgIHt7ICdjb21tb24uc2VsZWN0LWl0ZW1zLXdpdGgtY291bnQnIHwgdHJhbnNsYXRlOiB7IGNvdW50OiBzZWxlY3Rpb25NYW5hZ2VyLnNlbGVjdGlvbi5sZW5ndGggfSB9fVxyXG4gICAgPC9idXR0b24+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
package/esm2020/core/shared/components/product-search-input/product-search-input.component.mjs
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { SELECTION_MODEL_FACTORY } from '@ng-select/ng-select';
|
|
3
|
+
import { notNullOrUndefined } from '@vendure/common/lib/shared-utils';
|
|
4
|
+
import { SingleSearchSelectionModelFactory } from '../../../common/single-search-selection-model';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@ng-select/ng-select";
|
|
7
|
+
import * as i2 from "../facet-value-chip/facet-value-chip.component";
|
|
8
|
+
import * as i3 from "../chip/chip.component";
|
|
9
|
+
import * as i4 from "@angular/common";
|
|
10
|
+
import * as i5 from "@ngx-translate/core";
|
|
11
|
+
export class ProductSearchInputComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.searchTermChange = new EventEmitter();
|
|
14
|
+
this.facetValueChange = new EventEmitter();
|
|
15
|
+
this.lastTerm = '';
|
|
16
|
+
this.lastFacetValueIds = [];
|
|
17
|
+
this.filterFacetResults = (term, item) => {
|
|
18
|
+
if (!this.isFacetValueItem(item)) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
const cix = term.indexOf(':');
|
|
22
|
+
const facetName = cix > -1 ? term.toLowerCase().slice(0, cix) : null;
|
|
23
|
+
const facetVal = cix > -1 ? term.toLowerCase().slice(cix + 1) : term.toLowerCase();
|
|
24
|
+
if (facetName) {
|
|
25
|
+
return (item.facetValue.facet.name.toLowerCase().includes(facetName) &&
|
|
26
|
+
item.facetValue.name.toLocaleLowerCase().includes(facetVal));
|
|
27
|
+
}
|
|
28
|
+
return (item.facetValue.name.toLowerCase().includes(term.toLowerCase()) ||
|
|
29
|
+
item.facetValue.facet.name.toLowerCase().includes(term.toLowerCase()));
|
|
30
|
+
};
|
|
31
|
+
this.isFacetValueItem = (input) => {
|
|
32
|
+
return typeof input === 'object' && !!input && input.hasOwnProperty('facetValue');
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
setSearchTerm(term) {
|
|
36
|
+
if (term) {
|
|
37
|
+
this.selectComponent.select({ label: term, value: { label: term } });
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
const currentTerm = this.selectComponent.selectedItems.find(i => !this.isFacetValueItem(i.value));
|
|
41
|
+
if (currentTerm) {
|
|
42
|
+
this.selectComponent.unselect(currentTerm);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
setFacetValues(ids) {
|
|
47
|
+
const items = this.selectComponent.items;
|
|
48
|
+
this.selectComponent.selectedItems.forEach(item => {
|
|
49
|
+
if (this.isFacetValueItem(item.value) && !ids.includes(item.value.facetValue.id)) {
|
|
50
|
+
this.selectComponent.unselect(item);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
ids.map(id => {
|
|
54
|
+
return items?.find(item => this.isFacetValueItem(item) && item.facetValue.id === id);
|
|
55
|
+
})
|
|
56
|
+
.filter(notNullOrUndefined)
|
|
57
|
+
.forEach(item => {
|
|
58
|
+
const isSelected = this.selectComponent.selectedItems.find(i => {
|
|
59
|
+
const val = i.value;
|
|
60
|
+
if (this.isFacetValueItem(val)) {
|
|
61
|
+
return val.facetValue.id === item.facetValue.id;
|
|
62
|
+
}
|
|
63
|
+
return false;
|
|
64
|
+
});
|
|
65
|
+
if (!isSelected) {
|
|
66
|
+
this.selectComponent.select({ label: '', value: item });
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
onSelectChange(selectedItems) {
|
|
71
|
+
if (!Array.isArray(selectedItems)) {
|
|
72
|
+
selectedItems = [selectedItems];
|
|
73
|
+
}
|
|
74
|
+
const searchTermItem = selectedItems.find(item => !this.isFacetValueItem(item));
|
|
75
|
+
const searchTerm = searchTermItem ? searchTermItem.label : '';
|
|
76
|
+
const facetValueIds = selectedItems.filter(this.isFacetValueItem).map(i => i.facetValue.id);
|
|
77
|
+
if (searchTerm !== this.lastTerm) {
|
|
78
|
+
this.searchTermChange.emit(searchTerm);
|
|
79
|
+
this.lastTerm = searchTerm;
|
|
80
|
+
}
|
|
81
|
+
if (this.lastFacetValueIds.join(',') !== facetValueIds.join(',')) {
|
|
82
|
+
this.facetValueChange.emit(facetValueIds);
|
|
83
|
+
this.lastFacetValueIds = facetValueIds;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
addTagFn(item) {
|
|
87
|
+
return { label: item };
|
|
88
|
+
}
|
|
89
|
+
isSearchHeaderSelected() {
|
|
90
|
+
return this.selectComponent.itemsList.markedIndex === -1;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
ProductSearchInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ProductSearchInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
94
|
+
ProductSearchInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: ProductSearchInputComponent, selector: "vdr-product-search-input", inputs: { facetValueResults: "facetValueResults" }, outputs: { searchTermChange: "searchTermChange", facetValueChange: "facetValueChange" }, providers: [{ provide: SELECTION_MODEL_FACTORY, useValue: SingleSearchSelectionModelFactory }], viewQueries: [{ propertyName: "selectComponent", first: true, predicate: ["selectComponent"], descendants: true, static: true }], ngImport: i0, template: "<ng-select\r\n [addTag]=\"addTagFn\"\r\n [placeholder]=\"'catalog.search-product-name-or-code' | translate\"\r\n [items]=\"facetValueResults\"\r\n [searchFn]=\"filterFacetResults\"\r\n [hideSelected]=\"true\"\r\n [multiple]=\"true\"\r\n [markFirst]=\"false\"\r\n (change)=\"onSelectChange($event)\"\r\n #selectComponent\r\n>\r\n <ng-template ng-header-tmp>\r\n <div\r\n class=\"search-header\"\r\n *ngIf=\"selectComponent.searchTerm\"\r\n [class.selected]=\"isSearchHeaderSelected()\"\r\n (click)=\"selectComponent.selectTag()\"\r\n >\r\n {{ 'catalog.search-for-term' | translate }}: {{ selectComponent.searchTerm }}\r\n </div>\r\n </ng-template>\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <ng-container *ngIf=\"item.facetValue\">\r\n <vdr-facet-value-chip\r\n [facetValue]=\"item.facetValue\"\r\n [removable]=\"true\"\r\n (remove)=\"clear(item)\"\r\n ></vdr-facet-value-chip>\r\n </ng-container>\r\n <ng-container *ngIf=\"!item.facetValue\">\r\n <vdr-chip [icon]=\"'times'\" (iconClick)=\"clear(item)\">\"{{ item.label }}\"</vdr-chip>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <ng-container *ngIf=\"item.facetValue\">\r\n <vdr-facet-value-chip [facetValue]=\"item.facetValue\" [removable]=\"false\"></vdr-facet-value-chip>\r\n </ng-container>\r\n </ng-template>\r\n</ng-select>\r\n", styles: [":host{margin-top:6px;display:block;width:100%}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{background:none;margin:0}:host ::ng-deep .ng-dropdown-panel-items div.ng-option:last-child{display:none}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-header{border:none;padding:0}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding:0}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-left:8px}ng-select{width:100%;min-width:300px;margin-right:12px}.search-header{padding:8px 10px;border-bottom:1px solid var(--color-component-border-100);cursor:pointer}.search-header.selected,.search-header:hover{background-color:var(--color-component-bg-200)}\n"], components: [{ type: i1.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: i2.FacetValueChipComponent, selector: "vdr-facet-value-chip", inputs: ["facetValue", "removable", "displayFacetName"], outputs: ["remove"] }, { type: i3.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }], directives: [{ type: i1.NgHeaderTemplateDirective, selector: "[ng-header-tmp]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { type: i1.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }], pipes: { "translate": i5.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ProductSearchInputComponent, decorators: [{
|
|
96
|
+
type: Component,
|
|
97
|
+
args: [{ selector: 'vdr-product-search-input', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: SELECTION_MODEL_FACTORY, useValue: SingleSearchSelectionModelFactory }], template: "<ng-select\r\n [addTag]=\"addTagFn\"\r\n [placeholder]=\"'catalog.search-product-name-or-code' | translate\"\r\n [items]=\"facetValueResults\"\r\n [searchFn]=\"filterFacetResults\"\r\n [hideSelected]=\"true\"\r\n [multiple]=\"true\"\r\n [markFirst]=\"false\"\r\n (change)=\"onSelectChange($event)\"\r\n #selectComponent\r\n>\r\n <ng-template ng-header-tmp>\r\n <div\r\n class=\"search-header\"\r\n *ngIf=\"selectComponent.searchTerm\"\r\n [class.selected]=\"isSearchHeaderSelected()\"\r\n (click)=\"selectComponent.selectTag()\"\r\n >\r\n {{ 'catalog.search-for-term' | translate }}: {{ selectComponent.searchTerm }}\r\n </div>\r\n </ng-template>\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <ng-container *ngIf=\"item.facetValue\">\r\n <vdr-facet-value-chip\r\n [facetValue]=\"item.facetValue\"\r\n [removable]=\"true\"\r\n (remove)=\"clear(item)\"\r\n ></vdr-facet-value-chip>\r\n </ng-container>\r\n <ng-container *ngIf=\"!item.facetValue\">\r\n <vdr-chip [icon]=\"'times'\" (iconClick)=\"clear(item)\">\"{{ item.label }}\"</vdr-chip>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <ng-container *ngIf=\"item.facetValue\">\r\n <vdr-facet-value-chip [facetValue]=\"item.facetValue\" [removable]=\"false\"></vdr-facet-value-chip>\r\n </ng-container>\r\n </ng-template>\r\n</ng-select>\r\n", styles: [":host{margin-top:6px;display:block;width:100%}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{background:none;margin:0}:host ::ng-deep .ng-dropdown-panel-items div.ng-option:last-child{display:none}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-header{border:none;padding:0}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding:0}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-left:8px}ng-select{width:100%;min-width:300px;margin-right:12px}.search-header{padding:8px 10px;border-bottom:1px solid var(--color-component-border-100);cursor:pointer}.search-header.selected,.search-header:hover{background-color:var(--color-component-bg-200)}\n"] }]
|
|
98
|
+
}], propDecorators: { facetValueResults: [{
|
|
99
|
+
type: Input
|
|
100
|
+
}], searchTermChange: [{
|
|
101
|
+
type: Output
|
|
102
|
+
}], facetValueChange: [{
|
|
103
|
+
type: Output
|
|
104
|
+
}], selectComponent: [{
|
|
105
|
+
type: ViewChild,
|
|
106
|
+
args: ['selectComponent', { static: true }]
|
|
107
|
+
}] } });
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zZWFyY2gtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9wcm9kdWN0LXNlYXJjaC1pbnB1dC9wcm9kdWN0LXNlYXJjaC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL3Byb2R1Y3Qtc2VhcmNoLWlucHV0L3Byb2R1Y3Qtc2VhcmNoLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBcUIsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUd0RSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7OztBQVdsRyxNQUFNLE9BQU8sMkJBQTJCO0lBUHhDO1FBU2MscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM5QyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBRWxELGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUF3Q3pDLHVCQUFrQixHQUFHLENBQUMsSUFBWSxFQUFFLElBQTBDLEVBQUUsRUFBRTtZQUM5RSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUM5QixPQUFPLEtBQUssQ0FBQzthQUNoQjtZQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFD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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ1NlbGVjdENvbXBvbmVudCwgU0VMRUNUSU9OX01PREVMX0ZBQ1RPUlkgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XHJcbmltcG9ydCB7IG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLXV0aWxzJztcclxuXHJcbmltcG9ydCB7IFNlYXJjaFByb2R1Y3RzUXVlcnkgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuaW1wb3J0IHsgU2luZ2xlU2VhcmNoU2VsZWN0aW9uTW9kZWxGYWN0b3J5IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3NpbmdsZS1zZWFyY2gtc2VsZWN0aW9uLW1vZGVsJztcclxuXHJcbnR5cGUgRmFjZXRWYWx1ZVJlc3VsdCA9IFNlYXJjaFByb2R1Y3RzUXVlcnlbJ3NlYXJjaCddWydmYWNldFZhbHVlcyddW251bWJlcl07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLXByb2R1Y3Qtc2VhcmNoLWlucHV0JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcm9kdWN0LXNlYXJjaC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9wcm9kdWN0LXNlYXJjaC1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFNFTEVDVElPTl9NT0RFTF9GQUNUT1JZLCB1c2VWYWx1ZTogU2luZ2xlU2VhcmNoU2VsZWN0aW9uTW9kZWxGYWN0b3J5IH1dLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdFNlYXJjaElucHV0Q29tcG9uZW50IHtcclxuICAgIEBJbnB1dCgpIGZhY2V0VmFsdWVSZXN1bHRzOiBGYWNldFZhbHVlUmVzdWx0O1xyXG4gICAgQE91dHB1dCgpIHNlYXJjaFRlcm1DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAgIEBPdXRwdXQoKSBmYWNldFZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcclxuICAgIEBWaWV3Q2hpbGQoJ3NlbGVjdENvbXBvbmVudCcsIHsgc3RhdGljOiB0cnVlIH0pIHByaXZhdGUgc2VsZWN0Q29tcG9uZW50OiBOZ1NlbGVjdENvbXBvbmVudDtcclxuICAgIHByaXZhdGUgbGFzdFRlcm0gPSAnJztcclxuICAgIHByaXZhdGUgbGFzdEZhY2V0VmFsdWVJZHM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgc2V0U2VhcmNoVGVybSh0ZXJtOiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICAgICAgaWYgKHRlcm0pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RDb21wb25lbnQuc2VsZWN0KHsgbGFiZWw6IHRlcm0sIHZhbHVlOiB7IGxhYmVsOiB0ZXJtIH0gfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudFRlcm0gPSB0aGlzLnNlbGVjdENvbXBvbmVudC5zZWxlY3RlZEl0ZW1zLmZpbmQoaSA9PiAhdGhpcy5pc0ZhY2V0VmFsdWVJdGVtKGkudmFsdWUpKTtcclxuICAgICAgICAgICAgaWYgKGN1cnJlbnRUZXJtKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdENvbXBvbmVudC51bnNlbGVjdChjdXJyZW50VGVybSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RmFjZXRWYWx1ZXMoaWRzOiBzdHJpbmdbXSkge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5zZWxlY3RDb21wb25lbnQuaXRlbXM7XHJcblxyXG4gICAgICAgIHRoaXMuc2VsZWN0Q29tcG9uZW50LnNlbGVjdGVkSXRlbXMuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNGYWNldFZhbHVlSXRlbShpdGVtLnZhbHVlKSAmJiAhaWRzLmluY2x1ZGVzKGl0ZW0udmFsdWUuZmFjZXRWYWx1ZS5pZCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0Q29tcG9uZW50LnVuc2VsZWN0KGl0ZW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlkcy5tYXAoaWQgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gaXRlbXM/LmZpbmQoaXRlbSA9PiB0aGlzLmlzRmFjZXRWYWx1ZUl0ZW0oaXRlbSkgJiYgaXRlbS5mYWNldFZhbHVlLmlkID09PSBpZCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAgICAgLmZpbHRlcihub3ROdWxsT3JVbmRlZmluZWQpXHJcbiAgICAgICAgICAgIC5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IHRoaXMuc2VsZWN0Q29tcG9uZW50LnNlbGVjdGVkSXRlbXMuZmluZChpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSBpLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzRmFjZXRWYWx1ZUl0ZW0odmFsKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsLmZhY2V0VmFsdWUuaWQgPT09IGl0ZW0uZmFjZXRWYWx1ZS5pZDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWlzU2VsZWN0ZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdENvbXBvbmVudC5zZWxlY3QoeyBsYWJlbDogJycsIHZhbHVlOiBpdGVtIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBmaWx0ZXJGYWNldFJlc3VsdHMgPSAodGVybTogc3RyaW5nLCBpdGVtOiBGYWNldFZhbHVlUmVzdWx0IHwgeyBsYWJlbDogc3RyaW5nIH0pID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNGYWNldFZhbHVlSXRlbShpdGVtKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBjaXggPSB0ZXJtLmluZGV4T2YoJzonKTtcclxuICAgICAgICBjb25zdCBmYWNldE5hbWUgPSBjaXggPiAtMSA/IHRlcm0udG9Mb3dlckNhc2UoKS5zbGljZSgwLCBjaXgpIDogbnVsbDtcclxuICAgICAgICBjb25zdCBmYWNldFZhbCA9IGNpeCA+IC0xID8gdGVybS50b0xvd2VyQ2FzZSgpLnNsaWNlKGNpeCArIDEpIDogdGVybS50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgICAgICBpZiAoZmFjZXROYW1lKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICBpdGVtLmZhY2V0VmFsdWUuZmFjZXQubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZhY2V0TmFtZSkgJiZcclxuICAgICAgICAgICAgICAgIGl0ZW0uZmFjZXRWYWx1ZS5uYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmFjZXRWYWwpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICBpdGVtLmZhY2V0VmFsdWUubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRlcm0udG9Mb3dlckNhc2UoKSkgfHxcclxuICAgICAgICAgICAgaXRlbS5mYWNldFZhbHVlLmZhY2V0Lm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXJtLnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgICAgKTtcclxuICAgIH07XHJcblxyXG4gICAgb25TZWxlY3RDaGFuZ2Uoc2VsZWN0ZWRJdGVtczogQXJyYXk8RmFjZXRWYWx1ZVJlc3VsdCB8IHsgbGFiZWw6IHN0cmluZyB9Pikge1xyXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShzZWxlY3RlZEl0ZW1zKSkge1xyXG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zID0gW3NlbGVjdGVkSXRlbXNdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBzZWFyY2hUZXJtSXRlbSA9IHNlbGVjdGVkSXRlbXMuZmluZChpdGVtID0+ICF0aGlzLmlzRmFjZXRWYWx1ZUl0ZW0oaXRlbSkpIGFzXHJcbiAgICAgICAgICAgIHwgeyBsYWJlbDogc3RyaW5nIH1cclxuICAgICAgICAgICAgfCB1bmRlZmluZWQ7XHJcbiAgICAgICAgY29uc3Qgc2VhcmNoVGVybSA9IHNlYXJjaFRlcm1JdGVtID8gc2VhcmNoVGVybUl0ZW0ubGFiZWwgOiAnJztcclxuXHJcbiAgICAgICAgY29uc3QgZmFjZXRWYWx1ZUlkcyA9IHNlbGVjdGVkSXRlbXMuZmlsdGVyKHRoaXMuaXNGYWNldFZhbHVlSXRlbSkubWFwKGkgPT4gaS5mYWNldFZhbHVlLmlkKTtcclxuXHJcbiAgICAgICAgaWYgKHNlYXJjaFRlcm0gIT09IHRoaXMubGFzdFRlcm0pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hUZXJtQ2hhbmdlLmVtaXQoc2VhcmNoVGVybSk7XHJcbiAgICAgICAgICAgIHRoaXMubGFzdFRlcm0gPSBzZWFyY2hUZXJtO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5sYXN0RmFjZXRWYWx1ZUlkcy5qb2luKCcsJykgIT09IGZhY2V0VmFsdWVJZHMuam9pbignLCcpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmFjZXRWYWx1ZUNoYW5nZS5lbWl0KGZhY2V0VmFsdWVJZHMpO1xyXG4gICAgICAgICAgICB0aGlzLmxhc3RGYWNldFZhbHVlSWRzID0gZmFjZXRWYWx1ZUlkcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYWRkVGFnRm4oaXRlbTogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHsgbGFiZWw6IGl0ZW0gfTtcclxuICAgIH1cclxuXHJcbiAgICBpc1NlYXJjaEhlYWRlclNlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdENvbXBvbmVudC5pdGVtc0xpc3QubWFya2VkSW5kZXggPT09IC0xO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNGYWNldFZhbHVlSXRlbSA9IChpbnB1dDogdW5rbm93bik6IGlucHV0IGlzIEZhY2V0VmFsdWVSZXN1bHQgPT4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgaW5wdXQgPT09ICdvYmplY3QnICYmICEhaW5wdXQgJiYgaW5wdXQuaGFzT3duUHJvcGVydHkoJ2ZhY2V0VmFsdWUnKTtcclxuICAgIH07XHJcbn1cclxuIiwiPG5nLXNlbGVjdFxyXG4gICAgW2FkZFRhZ109XCJhZGRUYWdGblwiXHJcbiAgICBbcGxhY2Vob2xkZXJdPVwiJ2NhdGFsb2cuc2VhcmNoLXByb2R1Y3QtbmFtZS1vci1jb2RlJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICBbaXRlbXNdPVwiZmFjZXRWYWx1ZVJlc3VsdHNcIlxyXG4gICAgW3NlYXJjaEZuXT1cImZpbHRlckZhY2V0UmVzdWx0c1wiXHJcbiAgICBbaGlkZVNlbGVjdGVkXT1cInRydWVcIlxyXG4gICAgW211bHRpcGxlXT1cInRydWVcIlxyXG4gICAgW21hcmtGaXJzdF09XCJmYWxzZVwiXHJcbiAgICAoY2hhbmdlKT1cIm9uU2VsZWN0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgI3NlbGVjdENvbXBvbmVudFxyXG4+XHJcbiAgICA8bmctdGVtcGxhdGUgbmctaGVhZGVyLXRtcD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwic2VhcmNoLWhlYWRlclwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0Q29tcG9uZW50LnNlYXJjaFRlcm1cIlxyXG4gICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiaXNTZWFyY2hIZWFkZXJTZWxlY3RlZCgpXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdENvbXBvbmVudC5zZWxlY3RUYWcoKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyAnY2F0YWxvZy5zZWFyY2gtZm9yLXRlcm0nIHwgdHJhbnNsYXRlIH19OiB7eyBzZWxlY3RDb21wb25lbnQuc2VhcmNoVGVybSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSBuZy1sYWJlbC10bXAgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWNsZWFyPVwiY2xlYXJcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5mYWNldFZhbHVlXCI+XHJcbiAgICAgICAgICAgIDx2ZHItZmFjZXQtdmFsdWUtY2hpcFxyXG4gICAgICAgICAgICAgICAgW2ZhY2V0VmFsdWVdPVwiaXRlbS5mYWNldFZhbHVlXCJcclxuICAgICAgICAgICAgICAgIFtyZW1vdmFibGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAocmVtb3ZlKT1cImNsZWFyKGl0ZW0pXCJcclxuICAgICAgICAgICAgPjwvdmRyLWZhY2V0LXZhbHVlLWNoaXA+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmZhY2V0VmFsdWVcIj5cclxuICAgICAgICAgICAgPHZkci1jaGlwIFtpY29uXT1cIid0aW1lcydcIiAoaWNvbkNsaWNrKT1cImNsZWFyKGl0ZW0pXCI+XCJ7eyBpdGVtLmxhYmVsIH19XCI8L3Zkci1jaGlwPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSBuZy1vcHRpb24tdG1wIGxldC1pdGVtPVwiaXRlbVwiIGxldC1pbmRleD1cImluZGV4XCIgbGV0LXNlYXJjaD1cInNlYXJjaFRlcm1cIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5mYWNldFZhbHVlXCI+XHJcbiAgICAgICAgICAgIDx2ZHItZmFjZXQtdmFsdWUtY2hpcCBbZmFjZXRWYWx1ZV09XCJpdGVtLmZhY2V0VmFsdWVcIiBbcmVtb3ZhYmxlXT1cImZhbHNlXCI+PC92ZHItZmFjZXQtdmFsdWUtY2hpcD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvbmctc2VsZWN0PlxyXG4iXX0=
|