@rolatech/angular-product 17.1.6 → 17.1.8
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/esm2022/lib/components/product-action/product-action.component.mjs +13 -6
- package/esm2022/lib/components/product-info/product-info.component.mjs +7 -5
- package/esm2022/lib/components/product-item/product-item.component.mjs +3 -3
- package/esm2022/lib/components/product-manage-option-add/product-manage-option-add.component.mjs +5 -5
- package/esm2022/lib/components/product-manage-option-item/product-manage-option-item.component.mjs +3 -3
- package/esm2022/lib/components/product-manage-variant/product-manage-variant.component.mjs +5 -5
- package/esm2022/lib/components/product-mange-option-action/product-manage-option-action.component.mjs +3 -3
- package/esm2022/lib/components/product-mange-section-item/product-mange-section-item.component.mjs +3 -3
- package/esm2022/lib/components/product-media/product-media.component.mjs +3 -3
- package/esm2022/lib/components/product-option/product-option.component.mjs +3 -3
- package/esm2022/lib/components/product-owner-renderer/product-owner-renderer.component.mjs +5 -5
- package/esm2022/lib/components/product-pricing/product-pricing.component.mjs +3 -3
- package/esm2022/lib/components/product-section/product-section.component.mjs +5 -5
- package/esm2022/lib/interfaces/product.mjs +8 -4
- package/esm2022/lib/pages/product/product-category/product-category.component.mjs +3 -3
- package/esm2022/lib/pages/product/product-details/product-details.component.mjs +13 -18
- package/esm2022/lib/pages/product/product-details/selected.pipe.mjs +3 -3
- package/esm2022/lib/pages/product/product-index/product-index.component.mjs +3 -3
- package/esm2022/lib/pages/product/product-layout/product-layout.component.mjs +3 -3
- package/esm2022/lib/pages/product-manage/product-manage-content/product-manage-content.component.mjs +3 -3
- package/esm2022/lib/pages/product-manage/product-manage-create/product-manage-create.component.mjs +3 -3
- package/esm2022/lib/pages/product-manage/product-manage-index/product-manage-index.component.mjs +3 -3
- package/esm2022/lib/pages/product-manage/product-manage-info/product-manage-info.component.mjs +19 -11
- package/esm2022/lib/pages/product-manage/product-manage-inventory/product-manage-inventory.component.mjs +3 -3
- package/esm2022/lib/pages/product-manage/product-manage-item/product-manage-item.component.mjs +5 -5
- package/esm2022/lib/pages/product-manage/product-manage-item-header/product-manage-item-header.component.mjs +3 -3
- package/esm2022/lib/pages/product-manage/product-manage-layout/product-manage-layout.component.mjs +3 -3
- package/esm2022/lib/pages/product-manage/product-manage-media/product-manage-media.component.mjs +3 -3
- package/esm2022/lib/pages/product-manage/product-manage-options/product-manage-options.component.mjs +3 -3
- package/esm2022/lib/pages/product-manage/product-manage-pricing/product-manage-pricing.component.mjs +3 -3
- package/esm2022/lib/pages/product-manage/product-manage-schedule/product-manage-schedule.component.mjs +3 -3
- package/esm2022/lib/pages/product-manage/product-manage-sections/product-manage-sections.component.mjs +3 -3
- package/esm2022/lib/pages/product-manage/product-manage-variants/product-manage-variants.component.mjs +4 -4
- package/esm2022/lib/services/product-category.service.mjs +3 -3
- package/fesm2022/{rolatech-angular-product-product-index.component-D-issq94.mjs → rolatech-angular-product-product-index.component-xWe-TZCa.mjs} +4 -28
- package/fesm2022/{rolatech-angular-product-product-index.component-D-issq94.mjs.map → rolatech-angular-product-product-index.component-xWe-TZCa.mjs.map} +1 -1
- package/fesm2022/rolatech-angular-product.mjs +144 -129
- package/fesm2022/rolatech-angular-product.mjs.map +1 -1
- package/lib/components/product-action/product-action.component.d.ts +4 -1
- package/lib/interfaces/product.d.ts +8 -0
- package/lib/pages/product-manage/product-manage-info/product-manage-info.component.d.ts +5 -5
- package/package.json +1 -1
- package/themes/_default.scss +1 -1
package/esm2022/lib/pages/product-manage/product-manage-info/product-manage-info.component.mjs
CHANGED
|
@@ -9,9 +9,10 @@ import { MatInputModule } from '@angular/material/input';
|
|
|
9
9
|
import { MatSelectModule } from '@angular/material/select';
|
|
10
10
|
import { BaseComponent, ToolbarComponent } from '@rolatech/angular-components';
|
|
11
11
|
import { ProductService } from '@rolatech/angular-services';
|
|
12
|
-
import { ProductStatus, ProductType } from '../../../interfaces';
|
|
12
|
+
import { ProductPriceType, ProductStatus, ProductType } from '../../../interfaces';
|
|
13
13
|
import { DecimalDirective } from '@rolatech/angular-common';
|
|
14
14
|
import { ProductCategoryService } from '../../../services';
|
|
15
|
+
import { KeyValuePipe } from '@angular/common';
|
|
15
16
|
import * as i0 from "@angular/core";
|
|
16
17
|
import * as i1 from "@angular/forms";
|
|
17
18
|
import * as i2 from "@angular/material/form-field";
|
|
@@ -27,10 +28,9 @@ export class ProductManageInfoComponent extends BaseComponent {
|
|
|
27
28
|
this.categoryService = inject(ProductCategoryService);
|
|
28
29
|
this.status = ProductStatus;
|
|
29
30
|
this.productType = ProductType;
|
|
30
|
-
this.
|
|
31
|
-
this.enumKeys = Object.keys(this.productType).filter((key) => isNaN(Number(key)));
|
|
32
|
-
this.enumValues = Object.values(this.productType);
|
|
31
|
+
this.priceType = ProductPriceType;
|
|
33
32
|
this.price = model();
|
|
33
|
+
this.deposit = model();
|
|
34
34
|
}
|
|
35
35
|
ngOnInit() {
|
|
36
36
|
this.id = this.route.parent?.snapshot.paramMap.get('id');
|
|
@@ -47,11 +47,16 @@ export class ProductManageInfoComponent extends BaseComponent {
|
|
|
47
47
|
this.product = res.data;
|
|
48
48
|
let price = (this.product.price / 100).toFixed(2);
|
|
49
49
|
this.price.set(price);
|
|
50
|
+
let deposit = (this.product.deposit / 100).toFixed(2);
|
|
51
|
+
this.deposit.set(deposit);
|
|
50
52
|
},
|
|
51
53
|
});
|
|
52
54
|
}
|
|
53
55
|
typeCompareFn(t1, t2) {
|
|
54
|
-
return t1 ===
|
|
56
|
+
return t1 === t2;
|
|
57
|
+
}
|
|
58
|
+
priceTypeCompareFn(t1, t2) {
|
|
59
|
+
return t1 === t2;
|
|
55
60
|
}
|
|
56
61
|
compareFn(o1, o2) {
|
|
57
62
|
return o1.id === o2?.id;
|
|
@@ -63,13 +68,15 @@ export class ProductManageInfoComponent extends BaseComponent {
|
|
|
63
68
|
this.selectedCategoyIds = event.value;
|
|
64
69
|
}
|
|
65
70
|
update() {
|
|
66
|
-
const { name, description, categories } = this.product;
|
|
71
|
+
const { name, description, categories, priceType } = this.product;
|
|
67
72
|
const data = {
|
|
68
73
|
name,
|
|
69
74
|
description,
|
|
70
75
|
categories,
|
|
71
76
|
price: Number(this.price()) * 100,
|
|
72
77
|
type: this.product.type,
|
|
78
|
+
priceType,
|
|
79
|
+
deposit: Number(this.deposit()) * 100,
|
|
73
80
|
};
|
|
74
81
|
this.productService.update(this.id, data).subscribe({
|
|
75
82
|
next: (res) => {
|
|
@@ -80,10 +87,10 @@ export class ProductManageInfoComponent extends BaseComponent {
|
|
|
80
87
|
},
|
|
81
88
|
});
|
|
82
89
|
}
|
|
83
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1
|
|
84
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1
|
|
90
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProductManageInfoComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
91
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ProductManageInfoComponent, isStandalone: true, selector: "rolatech-product-manage-info", inputs: { price: { classPropertyName: "price", publicName: "price", isSignal: true, isRequired: false, transformFunction: null }, deposit: { classPropertyName: "deposit", publicName: "deposit", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { price: "priceChange", deposit: "depositChange" }, usesInheritance: true, ngImport: i0, template: "<rolatech-product-manage-content>\n <rolatech-toolbar title=\"\u57FA\u672C\u4FE1\u606F\" class=\"hidden md:block\" divider></rolatech-toolbar>\n @if (product) {\n <div class=\"flex flex-col\">\n <form #productForm=\"ngForm\">\n <mat-form-field appearance=\"fill\">\n <mat-label> \u5546\u54C1\u540D\u79F0 </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"product.name\" name=\"name\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u5546\u54C1\u63CF\u8FF0 </mat-label>\n <textarea\n matInput\n type=\"text\"\n [(ngModel)]=\"product.description\"\n name=\"description\"\n required\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n ></textarea>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" required>\n <mat-label>\u7C7B\u578B</mat-label>\n <mat-select\n name=\"type\"\n [compareWith]=\"typeCompareFn\"\n (selectionChange)=\"onTypeChange($event)\"\n [(ngModel)]=\"product.type\"\n >\n @for (type of productType | keyvalue; track type) {\n <mat-option [value]=\"type.key\">\n {{ type.value }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" ngModelGroup=\"categories\" required>\n <mat-label>\u5206\u7C7B</mat-label>\n <mat-select\n multiple\n name=\"id\"\n [compareWith]=\"compareFn\"\n [(ngModel)]=\"product.categories\"\n #select=\"matSelect\"\n (selectionChange)=\"onCategoryChange($event)\"\n >\n @for (item of categories; track item) {\n <mat-option [value]=\"item\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" required>\n <mat-label>\u4EF7\u683C\u7C7B\u578B</mat-label>\n <mat-select name=\"priceType\" [compareWith]=\"priceTypeCompareFn\" [(ngModel)]=\"product.priceType\">\n @for (type of priceType | keyvalue; track type) {\n <mat-option [value]=\"type.key\">\n {{ type.value }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u4EF7\u683C </mat-label>\n <input matInput rolatechDecimal type=\"text\" [(ngModel)]=\"price\" name=\"price\" required />\n </mat-form-field>\n @if (product.priceType && product.priceType.toString() === 'PARTIAL') {\n <mat-form-field appearance=\"fill\">\n <mat-label> \u5B9A\u91D1 </mat-label>\n <input matInput rolatechDecimal type=\"text\" [(ngModel)]=\"deposit\" name=\"deposit\" required />\n </mat-form-field>\n }\n </form>\n </div>\n <div>\n <button mat-flat-button type=\"primary\" (click)=\"update()\">\u4FDD\u5B58</button>\n </div>\n }\n</rolatech-product-manage-content>\n", styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgModelGroup, selector: "[ngModelGroup]", inputs: ["ngModelGroup"], exportAs: ["ngModelGroup"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i4.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: TextFieldModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: ProductManageContentComponent, selector: "rolatech-product-manage-content" }, { kind: "directive", type: DecimalDirective, selector: "[rolatechDecimal]" }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }] }); }
|
|
85
92
|
}
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1
|
|
93
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProductManageInfoComponent, decorators: [{
|
|
87
94
|
type: Component,
|
|
88
95
|
args: [{ selector: 'rolatech-product-manage-info', standalone: true, imports: [
|
|
89
96
|
FormsModule,
|
|
@@ -97,6 +104,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
|
|
|
97
104
|
ProductManageContentComponent,
|
|
98
105
|
DecimalDirective,
|
|
99
106
|
MatSelectModule,
|
|
100
|
-
|
|
107
|
+
KeyValuePipe,
|
|
108
|
+
], template: "<rolatech-product-manage-content>\n <rolatech-toolbar title=\"\u57FA\u672C\u4FE1\u606F\" class=\"hidden md:block\" divider></rolatech-toolbar>\n @if (product) {\n <div class=\"flex flex-col\">\n <form #productForm=\"ngForm\">\n <mat-form-field appearance=\"fill\">\n <mat-label> \u5546\u54C1\u540D\u79F0 </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"product.name\" name=\"name\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u5546\u54C1\u63CF\u8FF0 </mat-label>\n <textarea\n matInput\n type=\"text\"\n [(ngModel)]=\"product.description\"\n name=\"description\"\n required\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n ></textarea>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" required>\n <mat-label>\u7C7B\u578B</mat-label>\n <mat-select\n name=\"type\"\n [compareWith]=\"typeCompareFn\"\n (selectionChange)=\"onTypeChange($event)\"\n [(ngModel)]=\"product.type\"\n >\n @for (type of productType | keyvalue; track type) {\n <mat-option [value]=\"type.key\">\n {{ type.value }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" ngModelGroup=\"categories\" required>\n <mat-label>\u5206\u7C7B</mat-label>\n <mat-select\n multiple\n name=\"id\"\n [compareWith]=\"compareFn\"\n [(ngModel)]=\"product.categories\"\n #select=\"matSelect\"\n (selectionChange)=\"onCategoryChange($event)\"\n >\n @for (item of categories; track item) {\n <mat-option [value]=\"item\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" required>\n <mat-label>\u4EF7\u683C\u7C7B\u578B</mat-label>\n <mat-select name=\"priceType\" [compareWith]=\"priceTypeCompareFn\" [(ngModel)]=\"product.priceType\">\n @for (type of priceType | keyvalue; track type) {\n <mat-option [value]=\"type.key\">\n {{ type.value }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u4EF7\u683C </mat-label>\n <input matInput rolatechDecimal type=\"text\" [(ngModel)]=\"price\" name=\"price\" required />\n </mat-form-field>\n @if (product.priceType && product.priceType.toString() === 'PARTIAL') {\n <mat-form-field appearance=\"fill\">\n <mat-label> \u5B9A\u91D1 </mat-label>\n <input matInput rolatechDecimal type=\"text\" [(ngModel)]=\"deposit\" name=\"deposit\" required />\n </mat-form-field>\n }\n </form>\n </div>\n <div>\n <button mat-flat-button type=\"primary\" (click)=\"update()\">\u4FDD\u5B58</button>\n </div>\n }\n</rolatech-product-manage-content>\n", styles: ["mat-form-field{width:100%}\n"] }]
|
|
101
109
|
}] });
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tYW5hZ2UtaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL3BhZ2VzL3Byb2R1Y3QtbWFuYWdlL3Byb2R1Y3QtbWFuYWdlLWluZm8vcHJvZHVjdC1tYW5hZ2UtaW5mby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL3BhZ2VzL3Byb2R1Y3QtbWFuYWdlL3Byb2R1Y3QtbWFuYWdlLWluZm8vcHJvZHVjdC1tYW5hZ2UtaW5mby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDM0csT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQW1CLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUE0QixhQUFhLEVBQUUs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QU0sSUFBSSxHQUFHO1lBQ1gsSUFBSTtZQUNKLFdBQVc7WUFDWCxVQUFVO1lBQ1YsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFHO1lBQ2pDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUk7U0FDeEIsQ0FBQztRQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2xELElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNaLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDWCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBM0RVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLHNSQ2xDdkMseTVFQWdFQSxxRkQ3Q0ksV0FBVyxvNENBQ1gsa0JBQWtCLDBTQUNsQixjQUFjLHlrQkFDZCxlQUFlLDhCQUNmLGVBQWUsbXJCQUNmLGVBQWUsOEJBQ2YsZUFBZSw0TkFDZixnQkFBZ0IsZ0lBQ2hCLDZCQUE2Qiw0RUFDN0IsZ0JBQWdCOzsyRkFNUCwwQkFBMEI7a0JBbkJ0QyxTQUFTOytCQUNFLDhCQUE4QixjQUM1QixJQUFJLFdBQ1A7d0JBQ1AsV0FBVzt3QkFDWCxrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLDZCQUE2Qjt3QkFDN0IsZ0JBQWdCO3dCQUNoQixlQUFlO3FCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBtb2RlbCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL3Byb2R1Y3QtbWFuYWdlLWNvbnRlbnQvcHJvZHVjdC1tYW5hZ2UtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dEZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RleHQtZmllbGQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlLCBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgUHJvZHVjdFNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBQcm9kdWN0LCBQcm9kdWN0Q2F0ZWdvcnksIFByb2R1Y3RTdGF0dXMsIFByb2R1Y3RUeXBlIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBEZWNpbWFsRGlyZWN0aXZlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IFByb2R1Y3RDYXRlZ29yeVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb2R1Y3QtbWFuYWdlLWluZm8nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIFRleHRGaWVsZE1vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgTWF0T3B0aW9uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgIFByb2R1Y3RNYW5hZ2VDb250ZW50Q29tcG9uZW50LFxuICAgIERlY2ltYWxEaXJlY3RpdmUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdC1tYW5hZ2UtaW5mby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9kdWN0LW1hbmFnZS1pbmZvLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZHVjdE1hbmFnZUluZm9Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvZHVjdFNlcnZpY2UgPSBpbmplY3QoUHJvZHVjdFNlcnZpY2UpO1xuICBjYXRlZ29yeVNlcnZpY2UgPSBpbmplY3QoUHJvZHVjdENhdGVnb3J5U2VydmljZSk7XG4gIHByb2R1Y3QhOiBQcm9kdWN0O1xuICBzdGF0dXMgPSBQcm9kdWN0U3RhdHVzO1xuICBjYXRlZ29yaWVzITogUHJvZHVjdENhdGVnb3J5W107XG4gIHNlbGVjdGVkQ2F0ZWdveUlkcyE6IHN0cmluZ1tdO1xuICBwcm9kdWN0VHlwZSA9IFByb2R1Y3RUeXBlO1xuICBzZWxlY3RlZFR5cGU/ID0gJyc7XG4gIGVudW1LZXlzID0gT2JqZWN0LmtleXModGhpcy5wcm9kdWN0VHlwZSkuZmlsdGVyKChrZXkpID0+IGlzTmFOKE51bWJlcihrZXkpKSk7XG4gIGVudW1WYWx1ZXMgPSBPYmplY3QudmFsdWVzKHRoaXMucHJvZHVjdFR5cGUpO1xuICBwcmljZSA9IG1vZGVsPHN0cmluZz4oKTtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pZCA9IHRoaXMucm91dGUucGFyZW50Py5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgc3RyaW5nO1xuICAgIHRoaXMuZmluZCgpO1xuICAgIHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmZpbmQoe30pLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jYXRlZ29yaWVzID0gcmVzLmRhdGE7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGZpbmQoKSB7XG4gICAgdGhpcy5wcm9kdWN0U2VydmljZS5nZXQodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnByb2R1Y3QgPSByZXMuZGF0YTtcbiAgICAgICAgbGV0IHByaWNlID0gKHRoaXMucHJvZHVjdC5wcmljZSAvIDEwMCkudG9GaXhlZCgyKTtcbiAgICAgICAgdGhpcy5wcmljZS5zZXQocHJpY2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICB0eXBlQ29tcGFyZUZuKHQxOiBhbnksIHQyOiBhbnkpIHtcbiAgICByZXR1cm4gdDEgPT09IFByb2R1Y3RUeXBlW3QyXTtcbiAgfVxuICBjb21wYXJlRm4obzE6IFByb2R1Y3RDYXRlZ29yeSwgbzI6IFByb2R1Y3RDYXRlZ29yeSkge1xuICAgIHJldHVybiBvMS5pZCA9PT0gbzI/LmlkO1xuICB9XG4gIG9uVHlwZUNoYW5nZShldmVudDogTWF0U2VsZWN0Q2hhbmdlKSB7XG4gICAgdGhpcy5wcm9kdWN0LnR5cGUgPSBPYmplY3Qua2V5cyh0aGlzLnByb2R1Y3RUeXBlKS5maW5kKChrZXkpID0+IHRoaXMucHJvZHVjdFR5cGVba2V5XSA9PT0gZXZlbnQudmFsdWUpITtcbiAgfVxuICBvbkNhdGVnb3J5Q2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdveUlkcyA9IGV2ZW50LnZhbHVlO1xuICB9XG4gIHVwZGF0ZSgpIHtcbiAgICBjb25zdCB7IG5hbWUsIGRlc2NyaXB0aW9uLCBjYXRlZ29yaWVzIH0gPSB0aGlzLnByb2R1Y3Q7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIG5hbWUsXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIGNhdGVnb3JpZXMsXG4gICAgICBwcmljZTogTnVtYmVyKHRoaXMucHJpY2UoKSkgKiAxMDAsXG4gICAgICB0eXBlOiB0aGlzLnByb2R1Y3QudHlwZSxcbiAgICB9O1xuICAgIHRoaXMucHJvZHVjdFNlcnZpY2UudXBkYXRlKHRoaXMuaWQsIGRhdGEpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ+S/neWtmOaIkOWKnycpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGUubWVzc2FnZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCI8cm9sYXRlY2gtcHJvZHVjdC1tYW5hZ2UtY29udGVudD5cbiAgPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCLln7rmnKzkv6Hmga9cIiBjbGFzcz1cImhpZGRlbiBtZDpibG9ja1wiIGRpdmlkZXI+PC9yb2xhdGVjaC10b29sYmFyPlxuICBAaWYgKHByb2R1Y3QpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgPGZvcm0gI3Byb2R1Y3RGb3JtPVwibmdGb3JtXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+IOWVhuWTgeWQjeensCA8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInByb2R1Y3QubmFtZVwiIG5hbWU9XCJuYW1lXCIgcmVxdWlyZWQgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbD4g5ZWG5ZOB5o+P6L+wIDwvbWF0LWxhYmVsPlxuICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwicHJvZHVjdC5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICBuYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgIGNka1RleHRhcmVhQXV0b3NpemVcbiAgICAgICAgICAgIGNka0F1dG9zaXplTWluUm93cz1cIjNcIlxuICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiByZXF1aXJlZD5cbiAgICAgICAgICA8bWF0LWxhYmVsPuexu+WeizwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICBuYW1lPVwidHlwZVwiXG4gICAgICAgICAgICBbY29tcGFyZVdpdGhdPVwidHlwZUNvbXBhcmVGblwiXG4gICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uVHlwZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwicHJvZHVjdC50eXBlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAZm9yIChrZXkgb2YgZW51bUtleXM7IHRyYWNrIGtleSkge1xuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwicHJvZHVjdFR5cGVba2V5XVwiPlxuICAgICAgICAgICAgICAgIHt7IHByb2R1Y3RUeXBlW2tleV0gfX1cbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgbmdNb2RlbEdyb3VwPVwiY2F0ZWdvcmllc1wiIHJlcXVpcmVkPlxuICAgICAgICAgIDxtYXQtbGFiZWw+5YiG57G7PC9tYXQtbGFiZWw+XG4gICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgIG11bHRpcGxlXG4gICAgICAgICAgICBuYW1lPVwiaWRcIlxuICAgICAgICAgICAgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVGblwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInByb2R1Y3QuY2F0ZWdvcmllc1wiXG4gICAgICAgICAgICAjc2VsZWN0PVwibWF0U2VsZWN0XCJcbiAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25DYXRlZ29yeUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIGNhdGVnb3JpZXM7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIml0ZW1cIj5cbiAgICAgICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbD4g5Lu35qC8IDwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCByb2xhdGVjaERlY2ltYWwgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInByaWNlXCIgbmFtZT1cInByaWNlXCIgcmVxdWlyZWQgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZm9ybT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gdHlwZT1cInByaW1hcnlcIiAoY2xpY2spPVwidXBkYXRlKClcIj7kv53lrZg8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9yb2xhdGVjaC1wcm9kdWN0LW1hbmFnZS1jb250ZW50PlxuIl19
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tYW5hZ2UtaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL3BhZ2VzL3Byb2R1Y3QtbWFuYWdlL3Byb2R1Y3QtbWFuYWdlLWluZm8vcHJvZHVjdC1tYW5hZ2UtaW5mby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL3BhZ2VzL3Byb2R1Y3QtbWFuYWdlL3Byb2R1Y3QtbWFuYWdlLWluZm8vcHJvZHVjdC1tYW5hZ2UtaW5mby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDM0csT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQW1CLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUE0QixnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0csT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFzQi9DLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxhQUFhO0lBcEI3RDs7UUFxQkUsbUJBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEMsb0JBQWUsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUVqRCxXQUFNLEdBQUcsYUFBYSxDQUFDO1FBR3ZCLGdCQUFXLEdBQUcsV0FBVyxDQUFDO1FBQzFCLGNBQVMsR0FBRyxnQkFBZ0IsQ0FBQztRQUM3QixVQUFLLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDeEIsWUFBTyxHQUFHLEtBQUssRUFBVSxDQUFDO0tBeUQzQjtJQXhEQyxRQUFRO1FBQ04sSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQVcsQ0FBQztRQUNuRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDdEMsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztZQUM3QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUk7UUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3pDLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFdEIsSUFBSSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLEVBQU8sRUFBRSxFQUFPO1FBQzVCLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsRUFBTyxFQUFFLEVBQU87UUFDakMsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFDRCxTQUFTLENBQUMsRUFBbUIsRUFBRSxFQUFtQjtRQUNoRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBQ0QsWUFBWSxDQUFDLEtBQXNCO1FBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFFLENBQUM7SUFDMUcsQ0FBQztJQUNELGdCQUFnQixDQUFDLEtBQVU7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDeEMsQ0FBQztJQUNELE1BQU07UUFDSixNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNsRSxNQUFNLElBQUksR0FBRztZQUNYLElBQUk7WUFDSixXQUFXO1lBQ1gsVUFBVTtZQUNWLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBRztZQUNqQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJO1lBQ3ZCLFNBQVM7WUFDVCxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEdBQUc7U0FDdEMsQ0FBQztRQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2xELElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNaLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDWCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBbEVVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLDhhQ3BDdkMsNnJHQWdGQSxxRkQ1REksV0FBVyxvNENBQ1gsa0JBQWtCLDBTQUNsQixjQUFjLHlrQkFDZCxlQUFlLDhCQUNmLGVBQWUsbXJCQUNmLGVBQWUsOEJBQ2YsZUFBZSw0TkFDZixnQkFBZ0IsZ0lBQ2hCLDZCQUE2Qiw0RUFDN0IsZ0JBQWdCLHlEQUVoQixZQUFZOzsyRkFLSCwwQkFBMEI7a0JBcEJ0QyxTQUFTOytCQUNFLDhCQUE4QixjQUM1QixJQUFJLFdBQ1A7d0JBQ1AsV0FBVzt3QkFDWCxrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLDZCQUE2Qjt3QkFDN0IsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLFlBQVk7cUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgbW9kZWwsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvZHVjdE1hbmFnZUNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi9wcm9kdWN0LW1hbmFnZS1jb250ZW50L3Byb2R1Y3QtbWFuYWdlLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRGaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXh0LWZpZWxkJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNlbGVjdENoYW5nZSwgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFByb2R1Y3RTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgUHJvZHVjdCwgUHJvZHVjdENhdGVnb3J5LCBQcm9kdWN0UHJpY2VUeXBlLCBQcm9kdWN0U3RhdHVzLCBQcm9kdWN0VHlwZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgRGVjaW1hbERpcmVjdGl2ZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBQcm9kdWN0Q2F0ZWdvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgS2V5VmFsdWVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvZHVjdC1tYW5hZ2UtaW5mbycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgVGV4dEZpZWxkTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXRPcHRpb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgUHJvZHVjdE1hbmFnZUNvbnRlbnRDb21wb25lbnQsXG4gICAgRGVjaW1hbERpcmVjdGl2ZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgS2V5VmFsdWVQaXBlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdC1tYW5hZ2UtaW5mby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9kdWN0LW1hbmFnZS1pbmZvLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZHVjdE1hbmFnZUluZm9Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvZHVjdFNlcnZpY2UgPSBpbmplY3QoUHJvZHVjdFNlcnZpY2UpO1xuICBjYXRlZ29yeVNlcnZpY2UgPSBpbmplY3QoUHJvZHVjdENhdGVnb3J5U2VydmljZSk7XG4gIHByb2R1Y3QhOiBQcm9kdWN0O1xuICBzdGF0dXMgPSBQcm9kdWN0U3RhdHVzO1xuICBjYXRlZ29yaWVzITogUHJvZHVjdENhdGVnb3J5W107XG4gIHNlbGVjdGVkQ2F0ZWdveUlkcyE6IHN0cmluZ1tdO1xuICBwcm9kdWN0VHlwZSA9IFByb2R1Y3RUeXBlO1xuICBwcmljZVR5cGUgPSBQcm9kdWN0UHJpY2VUeXBlO1xuICBwcmljZSA9IG1vZGVsPHN0cmluZz4oKTtcbiAgZGVwb3NpdCA9IG1vZGVsPHN0cmluZz4oKTtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pZCA9IHRoaXMucm91dGUucGFyZW50Py5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgc3RyaW5nO1xuICAgIHRoaXMuZmluZCgpO1xuICAgIHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmZpbmQoe30pLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jYXRlZ29yaWVzID0gcmVzLmRhdGE7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGZpbmQoKSB7XG4gICAgdGhpcy5wcm9kdWN0U2VydmljZS5nZXQodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnByb2R1Y3QgPSByZXMuZGF0YTtcbiAgICAgICAgbGV0IHByaWNlID0gKHRoaXMucHJvZHVjdC5wcmljZSAvIDEwMCkudG9GaXhlZCgyKTtcbiAgICAgICAgdGhpcy5wcmljZS5zZXQocHJpY2UpO1xuXG4gICAgICAgIGxldCBkZXBvc2l0ID0gKHRoaXMucHJvZHVjdC5kZXBvc2l0IC8gMTAwKS50b0ZpeGVkKDIpO1xuICAgICAgICB0aGlzLmRlcG9zaXQuc2V0KGRlcG9zaXQpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICB0eXBlQ29tcGFyZUZuKHQxOiBhbnksIHQyOiBhbnkpIHtcbiAgICByZXR1cm4gdDEgPT09IHQyO1xuICB9XG4gIHByaWNlVHlwZUNvbXBhcmVGbih0MTogYW55LCB0MjogYW55KSB7XG4gICAgcmV0dXJuIHQxID09PSB0MjtcbiAgfVxuICBjb21wYXJlRm4obzE6IFByb2R1Y3RDYXRlZ29yeSwgbzI6IFByb2R1Y3RDYXRlZ29yeSkge1xuICAgIHJldHVybiBvMS5pZCA9PT0gbzI/LmlkO1xuICB9XG4gIG9uVHlwZUNoYW5nZShldmVudDogTWF0U2VsZWN0Q2hhbmdlKSB7XG4gICAgdGhpcy5wcm9kdWN0LnR5cGUgPSBPYmplY3Qua2V5cyh0aGlzLnByb2R1Y3RUeXBlKS5maW5kKChrZXkpID0+IHRoaXMucHJvZHVjdFR5cGVba2V5XSA9PT0gZXZlbnQudmFsdWUpITtcbiAgfVxuICBvbkNhdGVnb3J5Q2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdveUlkcyA9IGV2ZW50LnZhbHVlO1xuICB9XG4gIHVwZGF0ZSgpIHtcbiAgICBjb25zdCB7IG5hbWUsIGRlc2NyaXB0aW9uLCBjYXRlZ29yaWVzLCBwcmljZVR5cGUgfSA9IHRoaXMucHJvZHVjdDtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgbmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgY2F0ZWdvcmllcyxcbiAgICAgIHByaWNlOiBOdW1iZXIodGhpcy5wcmljZSgpKSAqIDEwMCxcbiAgICAgIHR5cGU6IHRoaXMucHJvZHVjdC50eXBlLFxuICAgICAgcHJpY2VUeXBlLFxuICAgICAgZGVwb3NpdDogTnVtYmVyKHRoaXMuZGVwb3NpdCgpKSAqIDEwMCxcbiAgICB9O1xuICAgIHRoaXMucHJvZHVjdFNlcnZpY2UudXBkYXRlKHRoaXMuaWQsIGRhdGEpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ+S/neWtmOaIkOWKnycpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGUubWVzc2FnZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCI8cm9sYXRlY2gtcHJvZHVjdC1tYW5hZ2UtY29udGVudD5cbiAgPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCLln7rmnKzkv6Hmga9cIiBjbGFzcz1cImhpZGRlbiBtZDpibG9ja1wiIGRpdmlkZXI+PC9yb2xhdGVjaC10b29sYmFyPlxuICBAaWYgKHByb2R1Y3QpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgPGZvcm0gI3Byb2R1Y3RGb3JtPVwibmdGb3JtXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+IOWVhuWTgeWQjeensCA8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInByb2R1Y3QubmFtZVwiIG5hbWU9XCJuYW1lXCIgcmVxdWlyZWQgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbD4g5ZWG5ZOB5o+P6L+wIDwvbWF0LWxhYmVsPlxuICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwicHJvZHVjdC5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICBuYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgIGNka1RleHRhcmVhQXV0b3NpemVcbiAgICAgICAgICAgIGNka0F1dG9zaXplTWluUm93cz1cIjNcIlxuICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiByZXF1aXJlZD5cbiAgICAgICAgICA8bWF0LWxhYmVsPuexu+WeizwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICBuYW1lPVwidHlwZVwiXG4gICAgICAgICAgICBbY29tcGFyZVdpdGhdPVwidHlwZUNvbXBhcmVGblwiXG4gICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uVHlwZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwicHJvZHVjdC50eXBlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAZm9yICh0eXBlIG9mIHByb2R1Y3RUeXBlIHwga2V5dmFsdWU7IHRyYWNrIHR5cGUpIHtcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInR5cGUua2V5XCI+XG4gICAgICAgICAgICAgICAge3sgdHlwZS52YWx1ZSB9fVxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBuZ01vZGVsR3JvdXA9XCJjYXRlZ29yaWVzXCIgcmVxdWlyZWQ+XG4gICAgICAgICAgPG1hdC1sYWJlbD7liIbnsbs8L21hdC1sYWJlbD5cbiAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgbXVsdGlwbGVcbiAgICAgICAgICAgIG5hbWU9XCJpZFwiXG4gICAgICAgICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUZuXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwicHJvZHVjdC5jYXRlZ29yaWVzXCJcbiAgICAgICAgICAgICNzZWxlY3Q9XCJtYXRTZWxlY3RcIlxuICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbkNhdGVnb3J5Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgY2F0ZWdvcmllczsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbVwiPlxuICAgICAgICAgICAgICAgIHt7IGl0ZW0ubmFtZSB9fVxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiByZXF1aXJlZD5cbiAgICAgICAgICA8bWF0LWxhYmVsPuS7t+agvOexu+WeizwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxtYXQtc2VsZWN0IG5hbWU9XCJwcmljZVR5cGVcIiBbY29tcGFyZVdpdGhdPVwicHJpY2VUeXBlQ29tcGFyZUZuXCIgWyhuZ01vZGVsKV09XCJwcm9kdWN0LnByaWNlVHlwZVwiPlxuICAgICAgICAgICAgQGZvciAodHlwZSBvZiBwcmljZVR5cGUgfCBrZXl2YWx1ZTsgdHJhY2sgdHlwZSkge1xuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwidHlwZS5rZXlcIj5cbiAgICAgICAgICAgICAgICB7eyB0eXBlLnZhbHVlIH19XG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+IOS7t+agvCA8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcm9sYXRlY2hEZWNpbWFsIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJwcmljZVwiIG5hbWU9XCJwcmljZVwiIHJlcXVpcmVkIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIEBpZiAocHJvZHVjdC5wcmljZVR5cGUgJiYgcHJvZHVjdC5wcmljZVR5cGUudG9TdHJpbmcoKSA9PT0gJ1BBUlRJQUwnKSB7XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPiDlrprph5EgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcm9sYXRlY2hEZWNpbWFsIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJkZXBvc2l0XCIgbmFtZT1cImRlcG9zaXRcIiByZXF1aXJlZCAvPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIH1cbiAgICAgIDwvZm9ybT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gdHlwZT1cInByaW1hcnlcIiAoY2xpY2spPVwidXBkYXRlKClcIj7kv53lrZg8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9yb2xhdGVjaC1wcm9kdWN0LW1hbmFnZS1jb250ZW50PlxuIl19
|
|
@@ -4,10 +4,10 @@ import { AngularComponentsModule, ToolbarComponent } from '@rolatech/angular-com
|
|
|
4
4
|
import { ProductManageContentComponent } from '../product-manage-content/product-manage-content.component';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class ProductManageInventoryComponent {
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1
|
|
8
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProductManageInventoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: ProductManageInventoryComponent, isStandalone: true, selector: "rolatech-product-manage-inventory", ngImport: i0, template: "<rolatech-product-manage-content>\n <rolatech-toolbar title=\"\u5E93\u5B58\u8BBE\u7F6E\" class=\"hidden md:block\" divider></rolatech-toolbar>\n</rolatech-product-manage-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: ProductManageContentComponent, selector: "rolatech-product-manage-content" }] }); }
|
|
9
9
|
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProductManageInventoryComponent, decorators: [{
|
|
11
11
|
type: Component,
|
|
12
12
|
args: [{ selector: 'rolatech-product-manage-inventory', standalone: true, imports: [AngularCommonModule, AngularComponentsModule, ToolbarComponent, ProductManageContentComponent], template: "<rolatech-product-manage-content>\n <rolatech-toolbar title=\"\u5E93\u5B58\u8BBE\u7F6E\" class=\"hidden md:block\" divider></rolatech-toolbar>\n</rolatech-product-manage-content>\n" }]
|
|
13
13
|
}] });
|
package/esm2022/lib/pages/product-manage/product-manage-item/product-manage-item.component.mjs
CHANGED
|
@@ -17,11 +17,11 @@ export class ProductManageItemComponent {
|
|
|
17
17
|
publish() { }
|
|
18
18
|
archived() { }
|
|
19
19
|
delete() { }
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1
|
|
21
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProductManageItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ProductManageItemComponent, isStandalone: true, selector: "rolatech-product-manage-item", inputs: { product: { classPropertyName: "product", publicName: "product", isSignal: true, isRequired: true, transformFunction: null }, thumbnail: { classPropertyName: "thumbnail", publicName: "thumbnail", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"flex p-3 items-center hover:bg-[--rt-raised-background] cursor-pointer\">\n <div>\n @if (product().media) {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n @defer (on viewport()) {\n <rolatech-thumbnail [src]=\"product().media[0].url + '!w400'\" size=\"medium\"> </rolatech-thumbnail>\n } @placeholder {\n <div class=\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\"></div>\n }\n </div>\n } @else {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n <rolatech-image-placeholder></rolatech-image-placeholder>\n </div>\n }\n </div>\n <div class=\"px-3\">\n {{ product().name }}\n </div>\n <div class=\"flex-1\"></div>\n <div class=\"px-3 min-w-28 w-28\">\n {{ status[product().status] }}\n </div>\n <div class=\"px-3 min-w-28 w-28\">\u00A5{{ (product().price / 100).toFixed(2) }}</div>\n <div class=\"pr-4\">\n <button\n mat-icon-button\n [matMenuTriggerFor]=\"menu\"\n aria-label=\"Example icon-button with a menu\"\n (click)=\"$event.stopPropagation()\"\n >\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\" xPosition=\"before\">\n @if (product().status === 'DRAFT') {\n <button mat-menu-item (click)=\"publish()\">\n <span> \u4E0A\u67B6 </span>\n </button>\n }\n @if (product().status === 'STARTED') {\n <button mat-menu-item (click)=\"archived()\">\n <span> \u7ED3\u675F </span>\n </button>\n }\n @if (product().status !== 'ACTIVE') {\n <button mat-menu-item (click)=\"delete()\">\n <span> \u5220\u9664 </span>\n </button>\n }\n </mat-menu>\n </div>\n</div>\n<div class=\"h-[1px] px-3 bg-[--rt-raised-background]\"></div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ImagePlaceholderComponent, selector: "rolatech-image-placeholder" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [ThumbnailComponent]] }); }
|
|
22
22
|
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProductManageItemComponent, decorators: [{
|
|
24
24
|
type: Component,
|
|
25
|
-
args: [{ selector: 'rolatech-product-manage-item', standalone: true, imports: [CommonModule, ThumbnailComponent, ImagePlaceholderComponent, MatButtonModule, MatMenuModule, MatIcon], encapsulation: ViewEncapsulation.None, template: "<div class=\"flex p-3 items-center hover:bg-[--rt-raised-background] cursor-pointer\">\n <div>\n @if (product().media) {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n @defer (on viewport()) {\n <rolatech-thumbnail [src]=\"product().media[0].url + '!w400'\" size=\"medium\"> </rolatech-thumbnail>\n } @placeholder {\n <div class=\"bg-
|
|
25
|
+
args: [{ selector: 'rolatech-product-manage-item', standalone: true, imports: [CommonModule, ThumbnailComponent, ImagePlaceholderComponent, MatButtonModule, MatMenuModule, MatIcon], encapsulation: ViewEncapsulation.None, template: "<div class=\"flex p-3 items-center hover:bg-[--rt-raised-background] cursor-pointer\">\n <div>\n @if (product().media) {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n @defer (on viewport()) {\n <rolatech-thumbnail [src]=\"product().media[0].url + '!w400'\" size=\"medium\"> </rolatech-thumbnail>\n } @placeholder {\n <div class=\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\"></div>\n }\n </div>\n } @else {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n <rolatech-image-placeholder></rolatech-image-placeholder>\n </div>\n }\n </div>\n <div class=\"px-3\">\n {{ product().name }}\n </div>\n <div class=\"flex-1\"></div>\n <div class=\"px-3 min-w-28 w-28\">\n {{ status[product().status] }}\n </div>\n <div class=\"px-3 min-w-28 w-28\">\u00A5{{ (product().price / 100).toFixed(2) }}</div>\n <div class=\"pr-4\">\n <button\n mat-icon-button\n [matMenuTriggerFor]=\"menu\"\n aria-label=\"Example icon-button with a menu\"\n (click)=\"$event.stopPropagation()\"\n >\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\" xPosition=\"before\">\n @if (product().status === 'DRAFT') {\n <button mat-menu-item (click)=\"publish()\">\n <span> \u4E0A\u67B6 </span>\n </button>\n }\n @if (product().status === 'STARTED') {\n <button mat-menu-item (click)=\"archived()\">\n <span> \u7ED3\u675F </span>\n </button>\n }\n @if (product().status !== 'ACTIVE') {\n <button mat-menu-item (click)=\"delete()\">\n <span> \u5220\u9664 </span>\n </button>\n }\n </mat-menu>\n </div>\n</div>\n<div class=\"h-[1px] px-3 bg-[--rt-raised-background]\"></div>\n" }]
|
|
26
26
|
}] });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tYW5hZ2UtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL3BhZ2VzL3Byb2R1Y3QtbWFuYWdlL3Byb2R1Y3QtbWFuYWdlLWl0ZW0vcHJvZHVjdC1tYW5hZ2UtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL3BhZ2VzL3Byb2R1Y3QtbWFuYWdlL3Byb2R1Y3QtbWFuYWdlLWl0ZW0vcHJvZHVjdC1tYW5hZ2UtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFXLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBVWpELE1BQU0sT0FBTywwQkFBMEI7SUFSdkM7UUFTRSxZQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVyxDQUFDO1FBQ3BDLGNBQVMsR0FBRyxLQUFLLEVBQUUsQ0FBQztRQUNwQixXQUFNLEdBQUcsYUFBYSxDQUFDO0tBSXhCO0lBSEMsT0FBTyxLQUFJLENBQUM7SUFDWixRQUFRLEtBQUksQ0FBQztJQUNiLE1BQU0sS0FBSSxDQUFDOzhHQU5BLDBCQUEwQjtrR0FBMUIsMEJBQTBCLHFXQ2hCdkMseTFEQXFEQSx5REQxQ1ksWUFBWSwrQkFBc0IseUJBQXlCLHNFQUFFLGVBQWUsMklBQUUsYUFBYSw4dkJBQUUsT0FBTywyTEFBdEYsa0JBQWtCOzsyRkFLL0IsMEJBQTBCO2tCQVJ0QyxTQUFTOytCQUNFLDhCQUE4QixjQUM1QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUseUJBQXlCLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxPQUFPLENBQUMsaUJBR2hHLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFByb2R1Y3QsIFByb2R1Y3RTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEltYWdlUGxhY2Vob2xkZXJDb21wb25lbnQsIFRodW1ibmFpbENvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvZHVjdC1tYW5hZ2UtaXRlbScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRodW1ibmFpbENvbXBvbmVudCwgSW1hZ2VQbGFjZWhvbGRlckNvbXBvbmVudCwgTWF0QnV0dG9uTW9kdWxlLCBNYXRNZW51TW9kdWxlLCBNYXRJY29uXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtbWFuYWdlLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvZHVjdC1tYW5hZ2UtaXRlbS5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1Y3RNYW5hZ2VJdGVtQ29tcG9uZW50IHtcbiAgcHJvZHVjdCA9IGlucHV0LnJlcXVpcmVkPFByb2R1Y3Q+KCk7XG4gIHRodW1ibmFpbCA9IGlucHV0KCk7XG4gIHN0YXR1cyA9IFByb2R1Y3RTdGF0dXM7XG4gIHB1Ymxpc2goKSB7fVxuICBhcmNoaXZlZCgpIHt9XG4gIGRlbGV0ZSgpIHt9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBwLTMgaXRlbXMtY2VudGVyIGhvdmVyOmJnLVstLXJ0LXJhaXNlZC1iYWNrZ3JvdW5kXSBjdXJzb3ItcG9pbnRlclwiPlxuICA8ZGl2PlxuICAgIEBpZiAocHJvZHVjdCgpLm1lZGlhKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwibWluLXctMjQgdy0zNiBvYmplY3QtY292ZXIgYXNwZWN0LXZpZGVvIHJvdW5kZWQtbGcgbXItM1wiPlxuICAgICAgICBAZGVmZXIgKG9uIHZpZXdwb3J0KCkpIHtcbiAgICAgICAgICA8cm9sYXRlY2gtdGh1bWJuYWlsIFtzcmNdPVwicHJvZHVjdCgpLm1lZGlhWzBdLnVybCArICchdzQwMCdcIiBzaXplPVwibWVkaXVtXCI+IDwvcm9sYXRlY2gtdGh1bWJuYWlsPlxuICAgICAgICB9IEBwbGFjZWhvbGRlciB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJnLVstLXJ0LXJhaXNlZC1iYWNrZ3JvdW5kXSBoLWZ1bGwgdy1mdWxsIG9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gcm91bmRlZC1sZ1wiPjwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJtaW4tdy0yNCB3LTM2IG9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gcm91bmRlZC1sZyBtci0zXCI+XG4gICAgICAgIDxyb2xhdGVjaC1pbWFnZS1wbGFjZWhvbGRlcj48L3JvbGF0ZWNoLWltYWdlLXBsYWNlaG9sZGVyPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInB4LTNcIj5cbiAgICB7eyBwcm9kdWN0KCkubmFtZSB9fVxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXgtMVwiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicHgtMyBtaW4tdy0yOCB3LTI4XCI+XG4gICAge3sgc3RhdHVzW3Byb2R1Y3QoKS5zdGF0dXNdIH19XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicHgtMyBtaW4tdy0yOCB3LTI4XCI+wqV7eyAocHJvZHVjdCgpLnByaWNlIC8gMTAwKS50b0ZpeGVkKDIpIH19PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJwci00XCI+XG4gICAgPGJ1dHRvblxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXG4gICAgICBhcmlhLWxhYmVsPVwiRXhhbXBsZSBpY29uLWJ1dHRvbiB3aXRoIGEgbWVudVwiXG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICA+XG4gICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgeFBvc2l0aW9uPVwiYmVmb3JlXCI+XG4gICAgICBAaWYgKHByb2R1Y3QoKS5zdGF0dXMgPT09ICdEUkFGVCcpIHtcbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJwdWJsaXNoKClcIj5cbiAgICAgICAgICA8c3Bhbj4g5LiK5p62IDwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG4gICAgICBAaWYgKHByb2R1Y3QoKS5zdGF0dXMgPT09ICdTVEFSVEVEJykge1xuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImFyY2hpdmVkKClcIj5cbiAgICAgICAgICA8c3Bhbj4g57uT5p2fIDwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG4gICAgICBAaWYgKHByb2R1Y3QoKS5zdGF0dXMgIT09ICdBQ1RJVkUnKSB7XG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiZGVsZXRlKClcIj5cbiAgICAgICAgICA8c3Bhbj4g5Yig6ZmkIDwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG4gICAgPC9tYXQtbWVudT5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJoLVsxcHhdIHB4LTMgYmctWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdXCI+PC9kaXY+XG4iXX0=
|
|
@@ -2,10 +2,10 @@ import { Component } from '@angular/core';
|
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class ProductManageItemHeaderComponent {
|
|
5
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1
|
|
6
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProductManageItemHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: ProductManageItemHeaderComponent, isStandalone: true, selector: "rolatech-product-manage-item-header", ngImport: i0, template: "<div class=\"flex h-11 items-center\">\n <div class=\"text-md font-bold px-3 min-w-[320px]\">\u5546\u54C1</div>\n <div class=\"flex-1\"></div>\n <div class=\"text-md font-bold px-3 w-28\">\u72B6\u6001</div>\n <div class=\"text-md font-bold px-3 w-28\">\u4EF7\u683C</div>\n <div class=\"text-md px-3 w-16\"></div>\n</div>\n<div class=\"h-[1px] px-3 bg-[--rt-raised-background]\"></div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
7
7
|
}
|
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProductManageItemHeaderComponent, decorators: [{
|
|
9
9
|
type: Component,
|
|
10
10
|
args: [{ selector: 'rolatech-product-manage-item-header', standalone: true, imports: [CommonModule], template: "<div class=\"flex h-11 items-center\">\n <div class=\"text-md font-bold px-3 min-w-[320px]\">\u5546\u54C1</div>\n <div class=\"flex-1\"></div>\n <div class=\"text-md font-bold px-3 w-28\">\u72B6\u6001</div>\n <div class=\"text-md font-bold px-3 w-28\">\u4EF7\u683C</div>\n <div class=\"text-md px-3 w-16\"></div>\n</div>\n<div class=\"h-[1px] px-3 bg-[--rt-raised-background]\"></div>\n" }]
|
|
11
11
|
}] });
|
package/esm2022/lib/pages/product-manage/product-manage-layout/product-manage-layout.component.mjs
CHANGED
|
@@ -45,10 +45,10 @@ export class ProductManageLayoutComponent {
|
|
|
45
45
|
},
|
|
46
46
|
});
|
|
47
47
|
}
|
|
48
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1
|
|
49
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1
|
|
48
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProductManageLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
49
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ProductManageLayoutComponent, isStandalone: true, selector: "rolatech-product-manage-layout", ngImport: i0, template: "<div class=\"flex flex-col md:flex-row m-auto\">\n <div\n class=\"min-w-[256px] px-3 md:px-0 flex flex-row md:flex-col md:h-full items-center md:items-start h-16 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\"\n >\n <div class=\"flex flex-row md:flex-col md:w-full\">\n <div class=\"hidden md:flex text-xl font-bold h-14 items-center px-2\">\u5546\u54C1\u4FE1\u606F</div>\n <a routerLink=\"./info\" routerLinkActive=\"manage-active\" class=\"p-2\">\u57FA\u672C\u4FE1\u606F</a>\n <a routerLink=\"./media\" routerLinkActive=\"manage-active\" class=\"p-2\">\u56FE\u7247</a>\n <a routerLink=\"./sections\" routerLinkActive=\"manage-active\" class=\"p-2\">\u8BE6\u60C5</a>\n <a routerLink=\"./options\" routerLinkActive=\"manage-active\" class=\"p-2\">\u9009\u9879</a>\n </div>\n <div class=\"flex flex-row md:flex-col md:w-full\">\n <div class=\"hidden md:flex text-xl font-bold h-14 items-center px-2\">\u5546\u54C1\u8BBE\u7F6E</div>\n <a routerLink=\"./variants\" routerLinkActive=\"manage-active\" class=\"p-2\">\u4EF7\u683C\u7B56\u7565</a>\n <a routerLink=\"./inventory\" routerLinkActive=\"manage-active\" class=\"p-2\">\u5E93\u5B58\u8BBE\u7F6E</a>\n <a routerLink=\"./schedule\" routerLinkActive=\"manage-active\" class=\"p-2\">\u53D1\u5E03\u8BBE\u7F6E</a>\n </div>\n <div class=\"flex flex-row md:flex-col md:w-full\">\n <div class=\"hidden md:flex text-xl font-bold h-14 items-center px-2\">\u5176\u4ED6\u4FE1\u606F</div>\n <a routerLink=\"./pricing\" routerLinkActive=\"manage-active\" class=\"p-2\">\u4EF7\u683C</a>\n </div>\n\n @if (isDraft) {\n <div class=\"md:mt-6 md:ml-2\">\n <button mat-flat-button color=\"primary\" (click)=\"publish()\">\u53D1\u5E03\u5546\u54C1</button>\n </div>\n }\n </div>\n <div class=\"w-full\">\n <router-outlet></router-outlet>\n </div>\n</div>\n", styles: [".manage-active{background-color:var(--rt-10-percent-layer, rgba(0, 0, 0, .05));box-shadow:4px 0 var(--rt-base-background-inverse, #000) inset;font-weight:600}@media (max-width: 768px){.manage-active{box-shadow:inset 0 -4px 0 0 var(--rt-base-background-inverse, #000)}}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
|
|
50
50
|
}
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProductManageLayoutComponent, decorators: [{
|
|
52
52
|
type: Component,
|
|
53
53
|
args: [{ selector: 'rolatech-product-manage-layout', standalone: true, imports: [RouterLink, RouterLinkActive, MatButtonModule, RouterOutlet, ProductManageContentComponent], template: "<div class=\"flex flex-col md:flex-row m-auto\">\n <div\n class=\"min-w-[256px] px-3 md:px-0 flex flex-row md:flex-col md:h-full items-center md:items-start h-16 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\"\n >\n <div class=\"flex flex-row md:flex-col md:w-full\">\n <div class=\"hidden md:flex text-xl font-bold h-14 items-center px-2\">\u5546\u54C1\u4FE1\u606F</div>\n <a routerLink=\"./info\" routerLinkActive=\"manage-active\" class=\"p-2\">\u57FA\u672C\u4FE1\u606F</a>\n <a routerLink=\"./media\" routerLinkActive=\"manage-active\" class=\"p-2\">\u56FE\u7247</a>\n <a routerLink=\"./sections\" routerLinkActive=\"manage-active\" class=\"p-2\">\u8BE6\u60C5</a>\n <a routerLink=\"./options\" routerLinkActive=\"manage-active\" class=\"p-2\">\u9009\u9879</a>\n </div>\n <div class=\"flex flex-row md:flex-col md:w-full\">\n <div class=\"hidden md:flex text-xl font-bold h-14 items-center px-2\">\u5546\u54C1\u8BBE\u7F6E</div>\n <a routerLink=\"./variants\" routerLinkActive=\"manage-active\" class=\"p-2\">\u4EF7\u683C\u7B56\u7565</a>\n <a routerLink=\"./inventory\" routerLinkActive=\"manage-active\" class=\"p-2\">\u5E93\u5B58\u8BBE\u7F6E</a>\n <a routerLink=\"./schedule\" routerLinkActive=\"manage-active\" class=\"p-2\">\u53D1\u5E03\u8BBE\u7F6E</a>\n </div>\n <div class=\"flex flex-row md:flex-col md:w-full\">\n <div class=\"hidden md:flex text-xl font-bold h-14 items-center px-2\">\u5176\u4ED6\u4FE1\u606F</div>\n <a routerLink=\"./pricing\" routerLinkActive=\"manage-active\" class=\"p-2\">\u4EF7\u683C</a>\n </div>\n\n @if (isDraft) {\n <div class=\"md:mt-6 md:ml-2\">\n <button mat-flat-button color=\"primary\" (click)=\"publish()\">\u53D1\u5E03\u5546\u54C1</button>\n </div>\n }\n </div>\n <div class=\"w-full\">\n <router-outlet></router-outlet>\n </div>\n</div>\n", styles: [".manage-active{background-color:var(--rt-10-percent-layer, rgba(0, 0, 0, .05));box-shadow:4px 0 var(--rt-base-background-inverse, #000) inset;font-weight:600}@media (max-width: 768px){.manage-active{box-shadow:inset 0 -4px 0 0 var(--rt-base-background-inverse, #000)}}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\n"] }]
|
|
54
54
|
}], ctorParameters: () => [] });
|
package/esm2022/lib/pages/product-manage/product-manage-media/product-manage-media.component.mjs
CHANGED
|
@@ -127,10 +127,10 @@ export class ProductManageMediaComponent {
|
|
|
127
127
|
}
|
|
128
128
|
});
|
|
129
129
|
}
|
|
130
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1
|
|
131
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1
|
|
130
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProductManageMediaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
131
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ProductManageMediaComponent, isStandalone: true, selector: "rolatech-product-manage-media", ngImport: i0, template: "<rolatech-product-manage-content>\n <rolatech-toolbar title=\"\u56FE\u7247\u4FE1\u606F\" class=\"hidden md:block\" divider></rolatech-toolbar>\n <div>\n <p>*\u56FE\u7247\u6587\u4EF6\u5927\u5C0F\u9650\u5236\u57285MB\u4EE5\u4E0B*</p>\n <rolatech-media-list (upload)=\"onUploadMedia($event)\" [isUploading]=\"isUploading\">\n @for (item of media; track item; let i = $index) {\n <rolatech-media-list-item\n [media]=\"item\"\n (mediaItemClick)=\"onImageClick(i)\"\n (deleteMedia)=\"onMediaDelete(item)\"\n ></rolatech-media-list-item>\n }\n </rolatech-media-list>\n </div>\n</rolatech-product-manage-content>\n", styles: [""], dependencies: [{ kind: "component", type: MediaListComponent, selector: "rolatech-media-list", inputs: ["isUploading", "media", "showAdd"], outputs: ["mediaItemClick", "upload"] }, { kind: "component", type: MediaListItemComponent, selector: "rolatech-media-list-item", inputs: ["media", "uploadProgress"], outputs: ["mediaItemClick", "deleteMedia"] }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: ProductManageContentComponent, selector: "rolatech-product-manage-content" }] }); }
|
|
132
132
|
}
|
|
133
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1
|
|
133
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProductManageMediaComponent, decorators: [{
|
|
134
134
|
type: Component,
|
|
135
135
|
args: [{ selector: 'rolatech-product-manage-media', standalone: true, imports: [MediaListComponent, MediaListItemComponent, ToolbarComponent, ProductManageContentComponent], template: "<rolatech-product-manage-content>\n <rolatech-toolbar title=\"\u56FE\u7247\u4FE1\u606F\" class=\"hidden md:block\" divider></rolatech-toolbar>\n <div>\n <p>*\u56FE\u7247\u6587\u4EF6\u5927\u5C0F\u9650\u5236\u57285MB\u4EE5\u4E0B*</p>\n <rolatech-media-list (upload)=\"onUploadMedia($event)\" [isUploading]=\"isUploading\">\n @for (item of media; track item; let i = $index) {\n <rolatech-media-list-item\n [media]=\"item\"\n (mediaItemClick)=\"onImageClick(i)\"\n (deleteMedia)=\"onMediaDelete(item)\"\n ></rolatech-media-list-item>\n }\n </rolatech-media-list>\n </div>\n</rolatech-product-manage-content>\n" }]
|
|
136
136
|
}], ctorParameters: () => [] });
|
package/esm2022/lib/pages/product-manage/product-manage-options/product-manage-options.component.mjs
CHANGED
|
@@ -80,10 +80,10 @@ export class ProductManageOptionsComponent extends BaseComponent {
|
|
|
80
80
|
}
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1
|
|
84
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1
|
|
83
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProductManageOptionsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
84
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ProductManageOptionsComponent, isStandalone: true, selector: "rolatech-product-manage-options", usesInheritance: true, ngImport: i0, template: "<rolatech-product-manage-content>\n <rolatech-toolbar title=\"\u9009\u9879\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n <div>\n @for (item of options; track $index) {\n <rolatech-product-manage-option-item\n [option]=\"item\"\n (delete)=\"onDeleteOption($event)\"\n (edit)=\"onUpdateOption($event)\"\n ></rolatech-product-manage-option-item>\n }\n <div class=\"mt-3\">\n @if (add) {\n <rolatech-product-manage-option-add\n (save)=\"saveOption($event)\"\n (cancel)=\"add = false\"\n ></rolatech-product-manage-option-add>\n } @else {\n <button mat-stroked-button (click)=\"add = true\">\n <mat-icon>add</mat-icon>\n <span>\u589E\u52A0</span>\n </button>\n }\n </div>\n </div>\n</rolatech-product-manage-content>\n", styles: [""], dependencies: [{ kind: "component", type: ProductManageContentComponent, selector: "rolatech-product-manage-content" }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: AngularCommonModule }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: ProductManageOptionItemComponent, selector: "rolatech-product-manage-option-item", inputs: ["option"], outputs: ["delete", "save", "edit"] }, { kind: "component", type: ProductManageOptionAddComponent, selector: "rolatech-product-manage-option-add", outputs: ["cancel", "save", "output"] }] }); }
|
|
85
85
|
}
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1
|
|
86
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProductManageOptionsComponent, decorators: [{
|
|
87
87
|
type: Component,
|
|
88
88
|
args: [{ selector: 'rolatech-product-manage-options', standalone: true, imports: [
|
|
89
89
|
ProductManageContentComponent,
|
package/esm2022/lib/pages/product-manage/product-manage-pricing/product-manage-pricing.component.mjs
CHANGED
|
@@ -2,10 +2,10 @@ import { Component } from '@angular/core';
|
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class ProductManagePricingComponent {
|
|
5
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1
|
|
6
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProductManagePricingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: ProductManagePricingComponent, isStandalone: true, selector: "rolatech-product-manage-pricing", ngImport: i0, template: "<p>product-manage-pricing works!</p>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
7
7
|
}
|
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProductManagePricingComponent, decorators: [{
|
|
9
9
|
type: Component,
|
|
10
10
|
args: [{ selector: 'rolatech-product-manage-pricing', standalone: true, imports: [CommonModule], template: "<p>product-manage-pricing works!</p>\n" }]
|
|
11
11
|
}] });
|
|
@@ -4,10 +4,10 @@ import { AngularComponentsModule, ToolbarComponent } from '@rolatech/angular-com
|
|
|
4
4
|
import { ProductManageContentComponent } from '../product-manage-content/product-manage-content.component';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class ProductManageScheduleComponent {
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1
|
|
8
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProductManageScheduleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: ProductManageScheduleComponent, isStandalone: true, selector: "rolatech-product-manage-schedule", ngImport: i0, template: "<rolatech-product-manage-content>\n <rolatech-toolbar title=\"\u53D1\u5E03\u8BBE\u7F6E\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n <div></div>\n</rolatech-product-manage-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: ProductManageContentComponent, selector: "rolatech-product-manage-content" }] }); }
|
|
9
9
|
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProductManageScheduleComponent, decorators: [{
|
|
11
11
|
type: Component,
|
|
12
12
|
args: [{ selector: 'rolatech-product-manage-schedule', standalone: true, imports: [AngularCommonModule, AngularComponentsModule, ToolbarComponent, ProductManageContentComponent], template: "<rolatech-product-manage-content>\n <rolatech-toolbar title=\"\u53D1\u5E03\u8BBE\u7F6E\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n <div></div>\n</rolatech-product-manage-content>\n" }]
|
|
13
13
|
}] });
|
|
@@ -162,10 +162,10 @@ export class ProductManageSectionsComponent {
|
|
|
162
162
|
}
|
|
163
163
|
});
|
|
164
164
|
}
|
|
165
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1
|
|
166
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1
|
|
165
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProductManageSectionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
166
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ProductManageSectionsComponent, isStandalone: true, selector: "rolatech-product-manage-sections", ngImport: i0, template: "<rolatech-product-manage-content>\n <rolatech-toolbar title=\"\u8BE6\u60C5\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n <div>\n <div>\n @for (section of sections; track section) {\n <rolatech-product-manage-section-item\n [section]=\"section\"\n (upload)=\"onUploadSectionMedia($event)\"\n (deleteMedia)=\"onDeleteSectionMedia($event)\"\n (save)=\"onSectionSave($event)\"\n (delete)=\"onSectionDelete($event)\"\n [actions]=\"true\"\n ></rolatech-product-manage-section-item>\n }\n </div>\n <button mat-stroked-button (click)=\"addSection()\" class=\"mt-3\">\n <mat-icon>add</mat-icon>\n <span>\u6DFB\u52A0\u8BE6\u60C5</span>\n </button>\n </div>\n</rolatech-product-manage-content>\n", styles: [""], dependencies: [{ kind: "component", type: ProductManageSectionItemComponent, selector: "rolatech-product-manage-section-item", inputs: ["isUploading", "section", "actions", "selectMedia"], outputs: ["upload", "delete", "save", "deleteMedia"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: ProductManageContentComponent, selector: "rolatech-product-manage-content" }] }); }
|
|
167
167
|
}
|
|
168
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1
|
|
168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProductManageSectionsComponent, decorators: [{
|
|
169
169
|
type: Component,
|
|
170
170
|
args: [{ selector: 'rolatech-product-manage-sections', standalone: true, imports: [ProductManageSectionItemComponent, MatButtonModule, MatIconModule, ToolbarComponent, ProductManageContentComponent], template: "<rolatech-product-manage-content>\n <rolatech-toolbar title=\"\u8BE6\u60C5\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n <div>\n <div>\n @for (section of sections; track section) {\n <rolatech-product-manage-section-item\n [section]=\"section\"\n (upload)=\"onUploadSectionMedia($event)\"\n (deleteMedia)=\"onDeleteSectionMedia($event)\"\n (save)=\"onSectionSave($event)\"\n (delete)=\"onSectionDelete($event)\"\n [actions]=\"true\"\n ></rolatech-product-manage-section-item>\n }\n </div>\n <button mat-stroked-button (click)=\"addSection()\" class=\"mt-3\">\n <mat-icon>add</mat-icon>\n <span>\u6DFB\u52A0\u8BE6\u60C5</span>\n </button>\n </div>\n</rolatech-product-manage-content>\n" }]
|
|
171
171
|
}], ctorParameters: () => [] });
|
|
@@ -112,10 +112,10 @@ export class ProductManageVariantsComponent extends BaseComponent {
|
|
|
112
112
|
},
|
|
113
113
|
});
|
|
114
114
|
}
|
|
115
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1
|
|
116
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1
|
|
115
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProductManageVariantsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
116
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: ProductManageVariantsComponent, isStandalone: true, selector: "rolatech-product-manage-variants", inputs: { productPrice: { classPropertyName: "productPrice", publicName: "productPrice", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { productPrice: "productPriceChange" }, usesInheritance: true, ngImport: i0, template: "<rolatech-product-manage-content>\n <rolatech-toolbar title=\"\u4EF7\u683C\u7B56\u7565\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n @if (loading) {\n <rolatech-spinner></rolatech-spinner>\n } @else {\n <div class=\"flex items-center\">\n <mat-slide-toggle\n #slide\n [checked]=\"variantPriceChecked\"\n (change)=\"onVariantSlideToggle($event)\"\n [disabled]=\"options().length <= 0\"\n ></mat-slide-toggle>\n <div>\u6839\u636E\u5546\u54C1\u9009\u9879\u8BBE\u7F6E\u4E0D\u540C\u7684\u4EF7\u683C\u548C\u5E93\u5B58</div>\n </div>\n <div class=\"flex items-center\">\n <mat-slide-toggle #inventorySlide (change)=\"onInventorySlideToggle($event)\"></mat-slide-toggle>\n <div>\u8DDF\u8E2A\u5E93\u5B58</div>\n </div>\n\n @if (slide.checked) {\n <div>\n <div class=\"header flex gap-3 h-14 items-center\">\n <div class=\"px-3\">\u540D\u79F0</div>\n <div class=\"flex-1\"></div>\n <div class=\"w-[160px]\">\u4EF7\u683C</div>\n <div class=\"w-[160px]\">\u72B6\u6001</div>\n @if (inventorySlide.checked) {\n <div class=\"w-[160px]\">\u5E93\u5B58</div>\n }\n\n <div class=\"block w-20 text-right\">\u5C55\u5F00/\u6298\u53E0</div>\n </div>\n @for (item of variants; track $index) {\n <rolatech-product-manage-variant [variant]=\"item\" (upload)=\"onUpload(item, $event)\"></rolatech-product-manage-variant>\n }\n </div>\n <div class=\"mt-3\">\n <button mat-button (click)=\"saveVariants()\">\u4FDD\u5B58</button>\n </div>\n }\n }\n</rolatech-product-manage-content>\n", styles: ["mat-slide-toggle{scale:.8}mat-form-field{width:72px}\n"], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: ProductManageContentComponent, selector: "rolatech-product-manage-content" }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: ProductManageVariantComponent, selector: "rolatech-product-manage-variant", inputs: ["variant"], outputs: ["variantChange", "upload"] }, { kind: "component", type: SpinnerComponent, selector: "rolatech-spinner", inputs: ["title"] }] }); }
|
|
117
117
|
}
|
|
118
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1
|
|
118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ProductManageVariantsComponent, decorators: [{
|
|
119
119
|
type: Component,
|
|
120
120
|
args: [{ selector: 'rolatech-product-manage-variants', standalone: true, imports: [
|
|
121
121
|
AngularCommonModule,
|
|
@@ -130,4 +130,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
|
|
|
130
130
|
SpinnerComponent,
|
|
131
131
|
], template: "<rolatech-product-manage-content>\n <rolatech-toolbar title=\"\u4EF7\u683C\u7B56\u7565\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n @if (loading) {\n <rolatech-spinner></rolatech-spinner>\n } @else {\n <div class=\"flex items-center\">\n <mat-slide-toggle\n #slide\n [checked]=\"variantPriceChecked\"\n (change)=\"onVariantSlideToggle($event)\"\n [disabled]=\"options().length <= 0\"\n ></mat-slide-toggle>\n <div>\u6839\u636E\u5546\u54C1\u9009\u9879\u8BBE\u7F6E\u4E0D\u540C\u7684\u4EF7\u683C\u548C\u5E93\u5B58</div>\n </div>\n <div class=\"flex items-center\">\n <mat-slide-toggle #inventorySlide (change)=\"onInventorySlideToggle($event)\"></mat-slide-toggle>\n <div>\u8DDF\u8E2A\u5E93\u5B58</div>\n </div>\n\n @if (slide.checked) {\n <div>\n <div class=\"header flex gap-3 h-14 items-center\">\n <div class=\"px-3\">\u540D\u79F0</div>\n <div class=\"flex-1\"></div>\n <div class=\"w-[160px]\">\u4EF7\u683C</div>\n <div class=\"w-[160px]\">\u72B6\u6001</div>\n @if (inventorySlide.checked) {\n <div class=\"w-[160px]\">\u5E93\u5B58</div>\n }\n\n <div class=\"block w-20 text-right\">\u5C55\u5F00/\u6298\u53E0</div>\n </div>\n @for (item of variants; track $index) {\n <rolatech-product-manage-variant [variant]=\"item\" (upload)=\"onUpload(item, $event)\"></rolatech-product-manage-variant>\n }\n </div>\n <div class=\"mt-3\">\n <button mat-button (click)=\"saveVariants()\">\u4FDD\u5B58</button>\n </div>\n }\n }\n</rolatech-product-manage-content>\n", styles: ["mat-slide-toggle{scale:.8}mat-form-field{width:72px}\n"] }]
|
|
132
132
|
}] });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tYW5hZ2UtdmFyaWFudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXByb2R1Y3Qvc3JjL2xpYi9wYWdlcy9wcm9kdWN0LW1hbmFnZS9wcm9kdWN0LW1hbmFnZS12YXJpYW50cy9wcm9kdWN0LW1hbmFnZS12YXJpYW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL3BhZ2VzL3Byb2R1Y3QtbWFuYWdlL3Byb2R1Y3QtbWFuYWdlLXZhcmlhbnRzL3Byb2R1Y3QtbWFuYWdlLXZhcmlhbnRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDM0csT0FBTyxFQUNMLHVCQUF1QixFQUN2QixhQUFhLEVBQ2IsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEdBQ2pCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFMUQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNkVBQTZFLENBQUM7Ozs7QUFvQjVILE1BQU0sT0FB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bEIsY0FBYzt3QkFDZCw2QkFBNkI7d0JBQzdCLGdCQUFnQjtxQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBpbmplY3QsIG1vZGVsLCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvZHVjdE1hbmFnZUNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi9wcm9kdWN0LW1hbmFnZS1jb250ZW50L3Byb2R1Y3QtbWFuYWdlLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLFxuICBCYXNlQ29tcG9uZW50LFxuICBJbWFnZUNvbXBvbmVudCxcbiAgU3Bpbm5lckNvbXBvbmVudCxcbiAgVGh1bWJuYWlsQ29tcG9uZW50LFxuICBUb29sYmFyQ29tcG9uZW50LFxufSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFByb2R1Y3QsIFByb2R1Y3RPcHRpb24sIFByb2R1Y3RWYXJpYW50IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQcm9kdWN0U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgQW5ndWxhckNvbW1vbk1vZHVsZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlVmFyaWFudENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvcHJvZHVjdC1tYW5hZ2UtdmFyaWFudC9wcm9kdWN0LW1hbmFnZS12YXJpYW50LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb2R1Y3QtbWFuYWdlLXZhcmlhbnRzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEFuZ3VsYXJDb21tb25Nb2R1bGUsXG4gICAgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsXG4gICAgUHJvZHVjdE1hbmFnZUNvbnRlbnRDb21wb25lbnQsXG4gICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICBNYXRJY29uLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBUaHVtYm5haWxDb21wb25lbnQsXG4gICAgSW1hZ2VDb21wb25lbnQsXG4gICAgUHJvZHVjdE1hbmFnZVZhcmlhbnRDb21wb25lbnQsXG4gICAgU3Bpbm5lckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtbWFuYWdlLXZhcmlhbnRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb2R1Y3QtbWFuYWdlLXZhcmlhbnRzLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZHVjdE1hbmFnZVZhcmlhbnRzQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb2R1Y3RTZXJ2aWNlID0gaW5qZWN0KFByb2R1Y3RTZXJ2aWNlKTtcbiAgY2hhbmdlRGV0ZWN0b3JSZWZzID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgb3B0aW9ucyA9IHNpZ25hbDxQcm9kdWN0T3B0aW9uW10+KFtdKTtcbiAgc25hY2tCYXIgPSBpbmplY3QoTWF0U25hY2tCYXIpO1xuICBwcm9kdWN0UHJpY2UgPSBtb2RlbDxzdHJpbmc+KCk7XG4gIHZhcmlhbnRzOiBhbnk7XG4gIHZhcmlhbnRQcmljZUNoZWNrZWQgPSBmYWxzZTtcbiAgcHJvZHVjdCE6IFByb2R1Y3Q7XG4gIGxvYWRpbmcgPSBmYWxzZTtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pZCA9IHRoaXMucm91dGUucGFyZW50Py5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgc3RyaW5nO1xuICAgIHRoaXMuZ2V0UHJvZHVjdCgpO1xuICB9XG4gIG9uVmFyaWFudFNsaWRlVG9nZ2xlKGV2ZW50OiBNYXRTbGlkZVRvZ2dsZUNoYW5nZSkge1xuICAgIGNvbnN0IG5ld1N0YXRlID0gZXZlbnQuY2hlY2tlZDtcbiAgICBpZiAobmV3U3RhdGUpIHtcbiAgICAgIHRoaXMucHJvZHVjdFNlcnZpY2UudXBkYXRlVmFyaWFudFByaWNlKHRoaXMuaWQsIHRydWUpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICB0aGlzLnZhcmlhbnRzID0gcmVzLmRhdGE7XG4gICAgICAgICAgdGhpcy52YXJpYW50UHJpY2VDaGVja2VkID0gbmV3U3RhdGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgdGl0bGU6ICfnoa7orqTliKDpmaTlkJcnLFxuICAgICAgICBtZXNzYWdlOiAn5Yig6Zmk6L+Z5Liq56ug6IqC5ZCXPycsXG4gICAgICAgIGNhbmNlbFRleHQ6ICflj5bmtognLFxuICAgICAgICBjb25maXJtVGV4dDogJ+ehruiupCcsXG4gICAgICB9O1xuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4ob3B0aW9ucyk7XG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY29uZmlybWVkKCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgIHRoaXMucHJvZHVjdFNlcnZpY2UudXBkYXRlVmFyaWFudFByaWNlKHRoaXMuaWQsIGZhbHNlKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy52YXJpYW50UHJpY2VDaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy52YXJpYW50cyA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV2ZW50LnNvdXJjZS5jaGVja2VkID0gIW5ld1N0YXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBvbkludmVudG9yeVNsaWRlVG9nZ2xlKGU6IE1hdFNsaWRlVG9nZ2xlQ2hhbmdlKSB7XG4gICAgaWYgKGUuY2hlY2tlZCkge1xuICAgIH1cbiAgfVxuXG4gIHNhdmVWYXJpYW50cygpIHtcbiAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLnVwZGF0ZVZhcmlhbnRzKHRoaXMuaWQsIHRoaXMudmFyaWFudHMpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ+S/neWtmOaIkOWKnycpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihlcnJvci5tZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgb25VcGxvYWQodmFyaWFudDogYW55LCBkYXRhOiBhbnkpIHtcbiAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLnVwbG9hZFZhcmlhbnRNZWRpYSh2YXJpYW50LmlkLCBkYXRhKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHZhcmlhbnQubWVkaWFbdmFyaWFudC5tZWRpYS5sZW5ndGggLSAxXSA9IHtcbiAgICAgICAgICBpZDogcmVzLmRhdGEuaWQsXG4gICAgICAgICAgdXJsOiByZXMuZGF0YS51cmwgKyAnIXcyMDAnLFxuICAgICAgICAgIHVwbG9hZGluZzogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCfkuIrkvKDlpLHotKU6ICcgKyBlLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBmaW5kVmFyaWFudHMoKSB7XG4gICAgdGhpcy5wcm9kdWN0U2VydmljZS5maW5kVmFyaWFudHModGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgaWYgKHJlcy5kYXRhKSB7XG4gICAgICAgICAgdGhpcy52YXJpYW50UHJpY2VDaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhcmlhbnRzID0gcmVzLmRhdGE7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGdldFByb2R1Y3QoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLmdldCh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucHJvZHVjdCA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLnZhcmlhbnRzID0gdGhpcy5wcm9kdWN0LnZhcmlhbnRzO1xuICAgICAgICB0aGlzLnZhcmlhbnRQcmljZUNoZWNrZWQgPSB0aGlzLnZhcmlhbnRzID8gdGhpcy52YXJpYW50cy5sZW5ndGggPiAwIDogZmFsc2U7XG4gICAgICAgIHRoaXMub3B0aW9ucy5zZXQocmVzLmRhdGEub3B0aW9ucyB8fCBbXSk7XG4gICAgICAgIGxldCBwcmljZSA9IChyZXMuZGF0YS5wcmljZSAvIDEwMCkudG9GaXhlZCgyKTtcbiAgICAgICAgdGhpcy5wcm9kdWN0UHJpY2Uuc2V0KHByaWNlKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCI8cm9sYXRlY2gtcHJvZHVjdC1tYW5hZ2UtY29udGVudD5cbiAgPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCLku7fmoLznrZbnlaVcIiBjbGFzcz1cImhpZGRlbiBtZDpibG9ja1wiIGRpdmlkZXI+IDwvcm9sYXRlY2gtdG9vbGJhcj5cbiAgQGlmIChsb2FkaW5nKSB7XG4gICAgPHJvbGF0ZWNoLXNwaW5uZXI+PC9yb2xhdGVjaC1zcGlubmVyPlxuICB9IEBlbHNlIHtcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlXG4gICAgICAgICNzbGlkZVxuICAgICAgICBbY2hlY2tlZF09XCJ2YXJpYW50UHJpY2VDaGVja2VkXCJcbiAgICAgICAgKGNoYW5nZSk9XCJvblZhcmlhbnRTbGlkZVRvZ2dsZSgkZXZlbnQpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbnMoKS5sZW5ndGggPD0gMFwiXG4gICAgICA+PC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgPGRpdj7moLnmja7llYblk4HpgInpobnorr7nva7kuI3lkIznmoTku7fmoLzlkozlupPlrZg8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlICNpbnZlbnRvcnlTbGlkZSAoY2hhbmdlKT1cIm9uSW52ZW50b3J5U2xpZGVUb2dnbGUoJGV2ZW50KVwiPjwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgIDxkaXY+6Lef6Liq5bqT5a2YPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKHNsaWRlLmNoZWNrZWQpIHtcbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXIgZmxleCBnYXAtMyBoLTE0IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0zXCI+5ZCN56ewPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMVwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LVsxNjBweF1cIj7ku7fmoLw8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1bMTYwcHhdXCI+54q25oCBPC9kaXY+XG4gICAgICAgICAgQGlmIChpbnZlbnRvcnlTbGlkZS5jaGVja2VkKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1bMTYwcHhdXCI+5bqT5a2YPC9kaXY+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJsb2NrIHctMjAgdGV4dC1yaWdodFwiPuWxleW8gC/mipjlj6A8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgdmFyaWFudHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIDxyb2xhdGVjaC1wcm9kdWN0LW1hbmFnZS12YXJpYW50IFt2YXJpYW50XT1cIml0ZW1cIiAodXBsb2FkKT1cIm9uVXBsb2FkKGl0ZW0sICRldmVudClcIj48L3JvbGF0ZWNoLXByb2R1Y3QtbWFuYWdlLXZhcmlhbnQ+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJzYXZlVmFyaWFudHMoKVwiPuS/neWtmDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICB9XG48L3JvbGF0ZWNoLXByb2R1Y3QtbWFuYWdlLWNvbnRlbnQ+XG4iXX0=
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tYW5hZ2UtdmFyaWFudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXByb2R1Y3Qvc3JjL2xpYi9wYWdlcy9wcm9kdWN0LW1hbmFnZS9wcm9kdWN0LW1hbmFnZS12YXJpYW50cy9wcm9kdWN0LW1hbmFnZS12YXJpYW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL3BhZ2VzL3Byb2R1Y3QtbWFuYWdlL3Byb2R1Y3QtbWFuYWdlLXZhcmlhbnRzL3Byb2R1Y3QtbWFuYWdlLXZhcmlhbnRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDM0csT0FBTyxFQUNMLHVCQUF1QixFQUN2QixhQUFhLEVBQ2IsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEdBQ2pCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFMUQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNkVBQTZFLENBQUM7Ozs7QUFvQjVILE1BQU0sT0FB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bEIsY0FBYzt3QkFDZCw2QkFBNkI7d0JBQzdCLGdCQUFnQjtxQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBpbmplY3QsIG1vZGVsLCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvZHVjdE1hbmFnZUNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi9wcm9kdWN0LW1hbmFnZS1jb250ZW50L3Byb2R1Y3QtbWFuYWdlLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLFxuICBCYXNlQ29tcG9uZW50LFxuICBJbWFnZUNvbXBvbmVudCxcbiAgU3Bpbm5lckNvbXBvbmVudCxcbiAgVGh1bWJuYWlsQ29tcG9uZW50LFxuICBUb29sYmFyQ29tcG9uZW50LFxufSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFByb2R1Y3QsIFByb2R1Y3RPcHRpb24sIFByb2R1Y3RWYXJpYW50IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQcm9kdWN0U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgQW5ndWxhckNvbW1vbk1vZHVsZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlVmFyaWFudENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvcHJvZHVjdC1tYW5hZ2UtdmFyaWFudC9wcm9kdWN0LW1hbmFnZS12YXJpYW50LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb2R1Y3QtbWFuYWdlLXZhcmlhbnRzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEFuZ3VsYXJDb21tb25Nb2R1bGUsXG4gICAgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsXG4gICAgUHJvZHVjdE1hbmFnZUNvbnRlbnRDb21wb25lbnQsXG4gICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICBNYXRJY29uLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBUaHVtYm5haWxDb21wb25lbnQsXG4gICAgSW1hZ2VDb21wb25lbnQsXG4gICAgUHJvZHVjdE1hbmFnZVZhcmlhbnRDb21wb25lbnQsXG4gICAgU3Bpbm5lckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtbWFuYWdlLXZhcmlhbnRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb2R1Y3QtbWFuYWdlLXZhcmlhbnRzLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZHVjdE1hbmFnZVZhcmlhbnRzQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb2R1Y3RTZXJ2aWNlID0gaW5qZWN0KFByb2R1Y3RTZXJ2aWNlKTtcbiAgY2hhbmdlRGV0ZWN0b3JSZWZzID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgb3B0aW9ucyA9IHNpZ25hbDxQcm9kdWN0T3B0aW9uW10+KFtdKTtcbiAgc25hY2tCYXIgPSBpbmplY3QoTWF0U25hY2tCYXIpO1xuICBwcm9kdWN0UHJpY2UgPSBtb2RlbDxzdHJpbmc+KCk7XG4gIHZhcmlhbnRzOiBhbnk7XG4gIHZhcmlhbnRQcmljZUNoZWNrZWQgPSBmYWxzZTtcbiAgcHJvZHVjdCE6IFByb2R1Y3Q7XG4gIGxvYWRpbmcgPSBmYWxzZTtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pZCA9IHRoaXMucm91dGUucGFyZW50Py5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgc3RyaW5nO1xuICAgIHRoaXMuZ2V0UHJvZHVjdCgpO1xuICB9XG4gIG9uVmFyaWFudFNsaWRlVG9nZ2xlKGV2ZW50OiBNYXRTbGlkZVRvZ2dsZUNoYW5nZSkge1xuICAgIGNvbnN0IG5ld1N0YXRlID0gZXZlbnQuY2hlY2tlZDtcbiAgICBpZiAobmV3U3RhdGUpIHtcbiAgICAgIHRoaXMucHJvZHVjdFNlcnZpY2UudXBkYXRlVmFyaWFudFByaWNlKHRoaXMuaWQsIHRydWUpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICB0aGlzLnZhcmlhbnRzID0gcmVzLmRhdGE7XG4gICAgICAgICAgdGhpcy52YXJpYW50UHJpY2VDaGVja2VkID0gbmV3U3RhdGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgdGl0bGU6ICfnoa7orqTliKDpmaTlkJcnLFxuICAgICAgICBtZXNzYWdlOiAn5Yig6Zmk6L+Z5Liq56ug6IqC5ZCXPycsXG4gICAgICAgIGNhbmNlbFRleHQ6ICflj5bmtognLFxuICAgICAgICBjb25maXJtVGV4dDogJ+ehruiupCcsXG4gICAgICB9O1xuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4ob3B0aW9ucyk7XG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY29uZmlybWVkKCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgIHRoaXMucHJvZHVjdFNlcnZpY2UudXBkYXRlVmFyaWFudFByaWNlKHRoaXMuaWQsIGZhbHNlKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy52YXJpYW50UHJpY2VDaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy52YXJpYW50cyA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV2ZW50LnNvdXJjZS5jaGVja2VkID0gIW5ld1N0YXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBvbkludmVudG9yeVNsaWRlVG9nZ2xlKGU6IE1hdFNsaWRlVG9nZ2xlQ2hhbmdlKSB7XG4gICAgaWYgKGUuY2hlY2tlZCkge1xuICAgIH1cbiAgfVxuXG4gIHNhdmVWYXJpYW50cygpIHtcbiAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLnVwZGF0ZVZhcmlhbnRzKHRoaXMuaWQsIHRoaXMudmFyaWFudHMpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ+S/neWtmOaIkOWKnycpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihlcnJvci5tZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgb25VcGxvYWQodmFyaWFudDogYW55LCBkYXRhOiBhbnkpIHtcbiAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLnVwbG9hZFZhcmlhbnRNZWRpYSh2YXJpYW50LmlkLCBkYXRhKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHZhcmlhbnQubWVkaWFbdmFyaWFudC5tZWRpYS5sZW5ndGggLSAxXSA9IHtcbiAgICAgICAgICBpZDogcmVzLmRhdGEuaWQsXG4gICAgICAgICAgdXJsOiByZXMuZGF0YS51cmwgKyAnIXcyMDAnLFxuICAgICAgICAgIHVwbG9hZGluZzogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCfkuIrkvKDlpLHotKU6ICcgKyBlLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBmaW5kVmFyaWFudHMoKSB7XG4gICAgdGhpcy5wcm9kdWN0U2VydmljZS5maW5kVmFyaWFudHModGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgaWYgKHJlcy5kYXRhKSB7XG4gICAgICAgICAgdGhpcy52YXJpYW50UHJpY2VDaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhcmlhbnRzID0gcmVzLmRhdGE7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGdldFByb2R1Y3QoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLmdldCh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucHJvZHVjdCA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLnZhcmlhbnRzID0gdGhpcy5wcm9kdWN0LnZhcmlhbnRzO1xuICAgICAgICB0aGlzLnZhcmlhbnRQcmljZUNoZWNrZWQgPSB0aGlzLnZhcmlhbnRzID8gdGhpcy52YXJpYW50cy5sZW5ndGggPiAwIDogZmFsc2U7XG4gICAgICAgIHRoaXMub3B0aW9ucy5zZXQocmVzLmRhdGEub3B0aW9ucyB8fCBbXSk7XG4gICAgICAgIGxldCBwcmljZSA9IChyZXMuZGF0YS5wcmljZSAvIDEwMCkudG9GaXhlZCgyKTtcbiAgICAgICAgdGhpcy5wcm9kdWN0UHJpY2Uuc2V0KHByaWNlKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCI8cm9sYXRlY2gtcHJvZHVjdC1tYW5hZ2UtY29udGVudD5cbiAgPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCLku7fmoLznrZbnlaVcIiBjbGFzcz1cImhpZGRlbiBtZDpibG9ja1wiIGRpdmlkZXI+IDwvcm9sYXRlY2gtdG9vbGJhcj5cbiAgQGlmIChsb2FkaW5nKSB7XG4gICAgPHJvbGF0ZWNoLXNwaW5uZXI+PC9yb2xhdGVjaC1zcGlubmVyPlxuICB9IEBlbHNlIHtcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlXG4gICAgICAgICNzbGlkZVxuICAgICAgICBbY2hlY2tlZF09XCJ2YXJpYW50UHJpY2VDaGVja2VkXCJcbiAgICAgICAgKGNoYW5nZSk9XCJvblZhcmlhbnRTbGlkZVRvZ2dsZSgkZXZlbnQpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbnMoKS5sZW5ndGggPD0gMFwiXG4gICAgICA+PC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgPGRpdj7moLnmja7llYblk4HpgInpobnorr7nva7kuI3lkIznmoTku7fmoLzlkozlupPlrZg8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlICNpbnZlbnRvcnlTbGlkZSAoY2hhbmdlKT1cIm9uSW52ZW50b3J5U2xpZGVUb2dnbGUoJGV2ZW50KVwiPjwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgIDxkaXY+6Lef6Liq5bqT5a2YPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKHNsaWRlLmNoZWNrZWQpIHtcbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXIgZmxleCBnYXAtMyBoLTE0IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0zXCI+5ZCN56ewPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMVwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LVsxNjBweF1cIj7ku7fmoLw8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1bMTYwcHhdXCI+54q25oCBPC9kaXY+XG4gICAgICAgICAgQGlmIChpbnZlbnRvcnlTbGlkZS5jaGVja2VkKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1bMTYwcHhdXCI+5bqT5a2YPC9kaXY+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJsb2NrIHctMjAgdGV4dC1yaWdodFwiPuWxleW8gC/mipjlj6A8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgdmFyaWFudHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIDxyb2xhdGVjaC1wcm9kdWN0LW1hbmFnZS12YXJpYW50IFt2YXJpYW50XT1cIml0ZW1cIiAodXBsb2FkKT1cIm9uVXBsb2FkKGl0ZW0sICRldmVudClcIj48L3JvbGF0ZWNoLXByb2R1Y3QtbWFuYWdlLXZhcmlhbnQ+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJzYXZlVmFyaWFudHMoKVwiPuS/neWtmDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICB9XG48L3JvbGF0ZWNoLXByb2R1Y3QtbWFuYWdlLWNvbnRlbnQ+XG4iXX0=
|