@dignite-ng/expand.cms 3.1.8 → 3.1.11
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/admin/entries/create.component.mjs +2 -2
- package/esm2022/lib/components/admin/entries/entries.component.mjs +7 -7
- package/esm2022/lib/components/admin/fields/create-or-edit-field.component.mjs +23 -4
- package/esm2022/lib/components/admin/fields/edit-field.component.mjs +1 -2
- package/esm2022/lib/components/dynamic-form/entry/entry-control.component.mjs +11 -2
- package/fesm2022/dignite-ng-expand.cms.mjs +39 -12
- package/fesm2022/dignite-ng-expand.cms.mjs.map +1 -1
- package/lib/components/admin/fields/create-or-edit-field.component.d.ts +3 -0
- package/package.json +1 -1
|
@@ -20,7 +20,7 @@ export class CreateOrEditFieldComponent {
|
|
|
20
20
|
this.fromControlList = [];
|
|
21
21
|
}
|
|
22
22
|
set selected(v) {
|
|
23
|
-
this._selected = v;
|
|
23
|
+
this._selected = JSON.parse(JSON.stringify(v));
|
|
24
24
|
}
|
|
25
25
|
set form(v) {
|
|
26
26
|
this.formEntity = v;
|
|
@@ -34,6 +34,7 @@ export class CreateOrEditFieldComponent {
|
|
|
34
34
|
if (!this.formControlNameInput.value && this.fromControlList.length > 0) {
|
|
35
35
|
this.formControlNameInput.patchValue(this.fromControlList[0].name);
|
|
36
36
|
}
|
|
37
|
+
console.log(this._selected, '_selected');
|
|
37
38
|
this.submitclick.nativeElement.click();
|
|
38
39
|
}
|
|
39
40
|
get nameInput() {
|
|
@@ -42,6 +43,9 @@ export class CreateOrEditFieldComponent {
|
|
|
42
43
|
get formControlNameInput() {
|
|
43
44
|
return this.formEntity?.get('formControlName');
|
|
44
45
|
}
|
|
46
|
+
get formConfigurationInput() {
|
|
47
|
+
return this.formEntity?.get('formConfiguration');
|
|
48
|
+
}
|
|
45
49
|
/**字段标签input失去标点生成字段名字 */
|
|
46
50
|
disPlayNameInputBlur(event) {
|
|
47
51
|
const value = event.target.value;
|
|
@@ -72,12 +76,27 @@ export class CreateOrEditFieldComponent {
|
|
|
72
76
|
});
|
|
73
77
|
};
|
|
74
78
|
}
|
|
79
|
+
/** */
|
|
80
|
+
changeFormControlName(e) {
|
|
81
|
+
console.log(this._selected, '_selected');
|
|
82
|
+
// for (const element in this.formConfigurationInput.controls) {
|
|
83
|
+
// const control = this.formConfigurationInput.controls[element];
|
|
84
|
+
// const value = control.value;
|
|
85
|
+
// if (Array.isArray(value)) {
|
|
86
|
+
// control.patchValue([]);
|
|
87
|
+
// } else if (typeof value === 'boolean') {
|
|
88
|
+
// control.patchValue(false);
|
|
89
|
+
// } else {
|
|
90
|
+
// control.patchValue('');
|
|
91
|
+
// }
|
|
92
|
+
// }
|
|
93
|
+
}
|
|
75
94
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CreateOrEditFieldComponent, deps: [{ token: i1.ToPinyinService }, { token: i2.LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
76
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.5", type: CreateOrEditFieldComponent, selector: "cms-create-or-edit-field", inputs: { selected: "selected", service: "service", form: "form" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"formEntity\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"groupId\">{{'Cms::FieldGroup' | abpLocalization}}</label>\r\n <select class=\"form-select\" formControlName=\"groupId\">\r\n <option value=\"\">{{'Cms::OptionalGrouping' | abpLocalization}}</option>\r\n <ng-container *ngFor=\"let item of getfieldGroupsList\">\r\n <option [value]=\"item.id\">{{item.name}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"displayName\">*{{'AbpDynamicForm::FieldDisplayName' |\r\n abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" required\r\n (blur)=\"disPlayNameInputBlur($event)\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"name\">*{{'AbpDynamicForm::FieldName' | abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" required>\r\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\r\n {{nameInput.errors?.repetition}}\r\n </div>\r\n <small class=\"form-text text-muted d-block \">{{'AbpDynamicForm::FieldNameHelpText' |\r\n abpLocalization}}</small>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"formControlName\">*{{'Cms::FieldType' | abpLocalization}}</label>\r\n <select class=\"form-select\" formControlName=\"formControlName\">\r\n <ng-container *ngFor=\"let item of fromControlList;let i =index\">\r\n <option [value]=\"item.name\">{{item.displayName|abpLocalization}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n @if(formControlNameInput.value&&formEntity){\r\n <df-dynamic-config [formGroup]=\"formEntity\" [selected]=\"_selected\" [type]=\"formControlNameInput.value\"\r\n [form]=\"formEntity\"></df-dynamic-config>\r\n }\r\n <button form-type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n </form>\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i5.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i6.DynamicConfigComponent, selector: "df-dynamic-config", inputs: ["type", "selected", "form"] }, { kind: "pipe", type: i2.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
95
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.5", type: CreateOrEditFieldComponent, selector: "cms-create-or-edit-field", inputs: { selected: "selected", service: "service", form: "form" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"formEntity\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"groupId\">{{'Cms::FieldGroup' | abpLocalization}}</label>\r\n <select class=\"form-select\" formControlName=\"groupId\">\r\n <option value=\"\">{{'Cms::OptionalGrouping' | abpLocalization}}</option>\r\n <ng-container *ngFor=\"let item of getfieldGroupsList\">\r\n <option [value]=\"item.id\">{{item.name}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"displayName\">*{{'AbpDynamicForm::FieldDisplayName' |\r\n abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" required\r\n (blur)=\"disPlayNameInputBlur($event)\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"name\">*{{'AbpDynamicForm::FieldName' | abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" required>\r\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\r\n {{nameInput.errors?.repetition}}\r\n </div>\r\n <small class=\"form-text text-muted d-block \">{{'AbpDynamicForm::FieldNameHelpText' |\r\n abpLocalization}}</small>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"formControlName\">*{{'Cms::FieldType' | abpLocalization}}</label>\r\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"changeFormControlName($event)\">\r\n <ng-container *ngFor=\"let item of fromControlList;let i =index\">\r\n <option [value]=\"item.name\">{{item.displayName|abpLocalization}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n @if(formControlNameInput.value&&formEntity){\r\n <df-dynamic-config [formGroup]=\"formEntity\" [selected]=\"_selected\" [type]=\"formControlNameInput.value\"\r\n [form]=\"formEntity\"></df-dynamic-config>\r\n }\r\n <button form-type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n </form>\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i5.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i6.DynamicConfigComponent, selector: "df-dynamic-config", inputs: ["type", "selected", "form"] }, { kind: "pipe", type: i2.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
77
96
|
}
|
|
78
97
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CreateOrEditFieldComponent, decorators: [{
|
|
79
98
|
type: Component,
|
|
80
|
-
args: [{ selector: 'cms-create-or-edit-field', template: "<div class=\"card\">\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"formEntity\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"groupId\">{{'Cms::FieldGroup' | abpLocalization}}</label>\r\n <select class=\"form-select\" formControlName=\"groupId\">\r\n <option value=\"\">{{'Cms::OptionalGrouping' | abpLocalization}}</option>\r\n <ng-container *ngFor=\"let item of getfieldGroupsList\">\r\n <option [value]=\"item.id\">{{item.name}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"displayName\">*{{'AbpDynamicForm::FieldDisplayName' |\r\n abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" required\r\n (blur)=\"disPlayNameInputBlur($event)\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"name\">*{{'AbpDynamicForm::FieldName' | abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" required>\r\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\r\n {{nameInput.errors?.repetition}}\r\n </div>\r\n <small class=\"form-text text-muted d-block \">{{'AbpDynamicForm::FieldNameHelpText' |\r\n abpLocalization}}</small>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"formControlName\">*{{'Cms::FieldType' | abpLocalization}}</label>\r\n <select class=\"form-select\" formControlName=\"formControlName\">\r\n <ng-container *ngFor=\"let item of fromControlList;let i =index\">\r\n <option [value]=\"item.name\">{{item.displayName|abpLocalization}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n @if(formControlNameInput.value&&formEntity){\r\n <df-dynamic-config [formGroup]=\"formEntity\" [selected]=\"_selected\" [type]=\"formControlNameInput.value\"\r\n [form]=\"formEntity\"></df-dynamic-config>\r\n }\r\n <button form-type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n </form>\r\n </div>\r\n</div>" }]
|
|
99
|
+
args: [{ selector: 'cms-create-or-edit-field', template: "<div class=\"card\">\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"formEntity\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"groupId\">{{'Cms::FieldGroup' | abpLocalization}}</label>\r\n <select class=\"form-select\" formControlName=\"groupId\">\r\n <option value=\"\">{{'Cms::OptionalGrouping' | abpLocalization}}</option>\r\n <ng-container *ngFor=\"let item of getfieldGroupsList\">\r\n <option [value]=\"item.id\">{{item.name}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"displayName\">*{{'AbpDynamicForm::FieldDisplayName' |\r\n abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" required\r\n (blur)=\"disPlayNameInputBlur($event)\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"name\">*{{'AbpDynamicForm::FieldName' | abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" required>\r\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\r\n {{nameInput.errors?.repetition}}\r\n </div>\r\n <small class=\"form-text text-muted d-block \">{{'AbpDynamicForm::FieldNameHelpText' |\r\n abpLocalization}}</small>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"formControlName\">*{{'Cms::FieldType' | abpLocalization}}</label>\r\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"changeFormControlName($event)\">\r\n <ng-container *ngFor=\"let item of fromControlList;let i =index\">\r\n <option [value]=\"item.name\">{{item.displayName|abpLocalization}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n @if(formControlNameInput.value&&formEntity){\r\n <df-dynamic-config [formGroup]=\"formEntity\" [selected]=\"_selected\" [type]=\"formControlNameInput.value\"\r\n [form]=\"formEntity\"></df-dynamic-config>\r\n }\r\n <button form-type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n </form>\r\n </div>\r\n</div>" }]
|
|
81
100
|
}], ctorParameters: () => [{ type: i1.ToPinyinService }, { type: i2.LocalizationService }], propDecorators: { selected: [{
|
|
82
101
|
type: Input
|
|
83
102
|
}], service: [{
|
|
@@ -88,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
88
107
|
type: ViewChild,
|
|
89
108
|
args: ['submitclick', { static: true }]
|
|
90
109
|
}] } });
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBb0IsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUcsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBZ0MsU0FBUyxFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7O0FBT25ELE1BQU0sT0FBTywwQkFBMEI7SUFDckMsWUFBb0IsZ0JBQWlDLEVBQVMsb0JBQXdDO1FBQWxGLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFBUyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQW9CO1FBOEJ0RyxZQUFZO1FBQ1osdUJBQWtCLEdBQVUsRUFBRSxDQUFDO1FBQy9CLFlBQVk7UUFDWixvQkFBZSxHQUFVLEVBQUUsQ0FBQztJQWpDNkUsQ0FBQztJQUcxRyxJQUNXLFFBQVEsQ0FBQyxDQUFNO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFLRCxJQUNXLElBQUksQ0FBQyxDQUF3QjtRQUN0QyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBSUQsS0FB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KiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yICovXHJcbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsICBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUb1BpbnlpblNlcnZpY2UgfSBmcm9tICdAZGlnbml0ZS1uZy9leHBhbmQuY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Ntcy1jcmVhdGUtb3ItZWRpdC1maWVsZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1vci1lZGl0LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3JlYXRlT3JFZGl0RmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9Ub1BpbnlpblNlcnZpY2U6IFRvUGlueWluU2VydmljZSxwcml2YXRlIF9Mb2NhbGl6YXRpb25TZXJ2aWNlOkxvY2FsaXphdGlvblNlcnZpY2UpIHt9XHJcblxyXG4gIF9zZWxlY3RlZDogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBzZWxlY3RlZCh2OiBhbnkpIHtcclxuICAgIHRoaXMuX3NlbGVjdGVkID0gdjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXJ2aWNlOiBhbnk7XHJcblxyXG4gIGZvcm1FbnRpdHk6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgZm9ybSh2OiBGb3JtR3JvdXAgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuZm9ybUVudGl0eSA9IHY7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGFzeW5jIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vQ2FsbGVkIGFmdGVyIG5nT25Jbml0IHdoZW4gdGhlIGNvbXBvbmVudCdzIG9yIGRpcmVjdGl2ZSdzIGNvbnRlbnQgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuXHJcbiAgICAvL0FkZCAnaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0JyB0byB0aGUgY2xhc3MuXHJcbiAgICB0aGlzLmdldGZpZWxkR3JvdXBzTGlzdCA9IGF3YWl0IHRoaXMuc2VydmljZS5nZXRmaWVsZEdyb3VwcygpO1xyXG4gICAgdGhpcy5mcm9tQ29udHJvbExpc3QgPSBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0Q29udHJvbHNmaWVsZFR5cGVzKCk7XHJcbiAgICB0aGlzLm5hbWVJbnB1dC5hZGRBc3luY1ZhbGlkYXRvcnMoW3RoaXMucmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCldKVxyXG4gICAgaWYoIXRoaXMuZm9ybUNvbnRyb2xOYW1lSW5wdXQudmFsdWUmJnRoaXMuZnJvbUNvbnRyb2xMaXN0Lmxlbmd0aD4wKXtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbE5hbWVJbnB1dC5wYXRjaFZhbHVlKHRoaXMuZnJvbUNvbnRyb2xMaXN0WzBdLm5hbWUpXHJcbiAgICB9XHJcbiAgICB0aGlzLnN1Ym1pdGNsaWNrLm5hdGl2ZUVsZW1lbnQuY2xpY2soKVxyXG4gIH1cclxuXHJcbiAgLyoq5a2X5q615YiG57uE5YiX6KGoICovXHJcbiAgZ2V0ZmllbGRHcm91cHNMaXN0OiBhbnlbXSA9IFtdO1xyXG4gIC8qKuihqOWNleaOp+S7tuWIl+ihqCAqL1xyXG4gIGZyb21Db250cm9sTGlzdDogYW55W10gPSBbXTtcclxuXHJcbiAgZ2V0IG5hbWVJbnB1dCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1FbnRpdHk/LmdldCgnbmFtZScpIGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxuICBnZXQgZm9ybUNvbnRyb2xOYW1lSW5wdXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtRW50aXR5Py5nZXQoJ2Zvcm1Db250cm9sTmFtZScpIGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgLyoq6I635Y+W5o+Q5Lqk5oyJ6ZKu5pu/6Lqr77yM55So5LqO55yf5a6e6Kem5Y+R6KGo5Y2V5o+Q5LqkICovXHJcbiAgQFZpZXdDaGlsZCgnc3VibWl0Y2xpY2snLCB7IHN0YXRpYzogdHJ1ZSB9KSBzdWJtaXRjbGljazogRWxlbWVudFJlZjtcclxuXHJcbiAgLyoq5a2X5q615qCH562+aW5wdXTlpLHljrvmoIfngrnnlJ/miJDlrZfmrrXlkI3lrZcgKi9cclxuICBkaXNQbGF5TmFtZUlucHV0Qmx1cihldmVudCkge1xyXG4gICAgY29uc3QgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICBjb25zdCBwaW55aW4gPSB0aGlzLl9Ub1BpbnlpblNlcnZpY2UuZ2V0KHZhbHVlKTtcclxuICAgIGNvbnN0IG5hbWVJbnB1dCA9IHRoaXMubmFtZUlucHV0O1xyXG4gICAgaWYgKG5hbWVJbnB1dC52YWx1ZSkgcmV0dXJuO1xyXG4gICAgbmFtZUlucHV0LnBhdGNoVmFsdWUocGlueWluKTtcclxuICB9XHJcblxyXG4gIC8qKuW8guatpemqjOivge+8jOmqjOivgeWIq+WQjSAqL1xyXG4gIHJlcGV0aXRpb25Bc3luY1ZhbGlkYXRvcigpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIGN0cmw6IEFic3RyYWN0Q29udHJvbCxcclxuICAgICk6IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+IHwgT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gPT4ge1xyXG4gICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgaWYgKGN0cmwudmFsdWUgPT0gdGhpcy5fc2VsZWN0ZWQ/Lm5hbWUgfHwgIWN0cmwudmFsdWUpIHtcclxuICAgICAgICAgIHJlc29sdmUobnVsbCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2VydmljZS5uYW1lRXhpc3RzKGN0cmwudmFsdWUpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHtcclxuICAgICAgICAgICAgICByZXBldGl0aW9uOiB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgICBgQ21zOjpGaWVsZE5hbWV7MH1BbHJlYWR5RXhpc3RgLFxyXG4gICAgICAgICAgICAgICAgY3RybC52YWx1ZSxcclxuICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1FbnRpdHlcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJncm91cElkXCI+e3snQ21zOjpGaWVsZEdyb3VwJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIGZvcm1Db250cm9sTmFtZT1cImdyb3VwSWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+e3snQ21zOjpPcHRpb25hbEdyb3VwaW5nJyB8IGFicExvY2FsaXphdGlvbn19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRmaWVsZEdyb3Vwc0xpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZFwiPnt7aXRlbS5uYW1lfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJkaXNwbGF5TmFtZVwiPip7eydBYnBEeW5hbWljRm9ybTo6RmllbGREaXNwbGF5TmFtZScgfFxyXG4gICAgICAgICAgICAgICAgICAgIGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGlzcGxheU5hbWVcIiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgIChibHVyKT1cImRpc1BsYXlOYW1lSW5wdXRCbHVyKCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibmFtZVwiPip7eydBYnBEeW5hbWljRm9ybTo6RmllbGROYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHJlcXVpcmVkPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyIGludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cIm5hbWVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICB7e25hbWVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb259fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1tdXRlZCBkLWJsb2NrIFwiPnt7J0FicER5bmFtaWNGb3JtOjpGaWVsZE5hbWVIZWxwVGV4dCcgfFxyXG4gICAgICAgICAgICAgICAgICAgIGFicExvY2FsaXphdGlvbn19PC9zbWFsbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZGVzY3JpcHRpb25cIj57eydDbXM6OkRlc2NyaXB0aW9uJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZm9ybUNvbnRyb2xOYW1lXCI+Knt7J0Ntczo6RmllbGRUeXBlJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIGZvcm1Db250cm9sTmFtZT1cImZvcm1Db250cm9sTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZnJvbUNvbnRyb2xMaXN0O2xldCBpID1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJpdGVtLm5hbWVcIj57e2l0ZW0uZGlzcGxheU5hbWV8YWJwTG9jYWxpemF0aW9ufX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgQGlmKGZvcm1Db250cm9sTmFtZUlucHV0LnZhbHVlJiZmb3JtRW50aXR5KXtcclxuICAgICAgICAgICAgPGRmLWR5bmFtaWMtY29uZmlnIFtmb3JtR3JvdXBdPVwiZm9ybUVudGl0eVwiIFtzZWxlY3RlZF09XCJfc2VsZWN0ZWRcIiBbdHlwZV09XCJmb3JtQ29udHJvbE5hbWVJbnB1dC52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBbZm9ybV09XCJmb3JtRW50aXR5XCI+PC9kZi1keW5hbWljLWNvbmZpZz5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8YnV0dG9uIGZvcm0tdHlwZT1cInN1Ym1pdFwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiAjc3VibWl0Y2xpY2s+PC9idXR0b24+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBb0IsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUcsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBZ0MsU0FBUyxFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7O0FBT25ELE1BQU0sT0FBTywwQkFBMEI7SUFDckMsWUFBb0IsZ0JBQWlDLEVBQVMsb0JBQXdDO1FBQWxGLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFBUyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQW9CO1FBK0J0RyxZQUFZO1FBQ1osdUJBQWtCLEdBQVUsRUFBRSxDQUFDO1FBQy9CLFlBQVk7UUFDWixvQkFBZSxHQUFVLEVBQUUsQ0FBQztJQWxDNkUsQ0FBQztJQUcxRyxJQUNXLFFBQVEsQ0FBQyxDQUFNO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUtELElBQ1csSUFBSSxDQUFDLENBQXdCO1FBQ3RD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LENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUMsV0FBVyxDQUFDLENBQUE7UUFDekMsaUVBQWlFO1FBQ2pFLHFFQUFxRTtRQUNyRSxtQ0FBbUM7UUFDbkMsa0NBQWtDO1FBQ2xDLGdDQUFnQztRQUNoQywrQ0FBK0M7UUFDL0MsbUNBQW1DO1FBQ25DLGVBQWU7UUFDZixnQ0FBZ0M7UUFDaEMsUUFBUTtRQUNSLE1BQU07SUFDTixDQUFDOzhHQWxHVSwwQkFBMEI7a0dBQTFCLDBCQUEwQiw4UENadkMsczFGQThDTTs7MkZEbENPLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSwwQkFBMEI7c0hBU3pCLFFBQVE7c0JBRGxCLEtBQUs7Z0JBS1UsT0FBTztzQkFBdEIsS0FBSztnQkFJSyxJQUFJO3NCQURkLEtBQUs7Z0JBb0NzQyxXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yICovXHJcbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsICBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUb1BpbnlpblNlcnZpY2UgfSBmcm9tICdAZGlnbml0ZS1uZy9leHBhbmQuY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Ntcy1jcmVhdGUtb3ItZWRpdC1maWVsZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1vci1lZGl0LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3JlYXRlT3JFZGl0RmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9Ub1BpbnlpblNlcnZpY2U6IFRvUGlueWluU2VydmljZSxwcml2YXRlIF9Mb2NhbGl6YXRpb25TZXJ2aWNlOkxvY2FsaXphdGlvblNlcnZpY2UpIHt9XHJcblxyXG4gIF9zZWxlY3RlZDogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBzZWxlY3RlZCh2OiBhbnkpIHtcclxuICAgIHRoaXMuX3NlbGVjdGVkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh2KSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgc2VydmljZTogYW55O1xyXG5cclxuICBmb3JtRW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGZvcm0odjogRm9ybUdyb3VwIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLmZvcm1FbnRpdHkgPSB2O1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBhc3luYyBuZ0FmdGVyQ29udGVudEluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvL0NhbGxlZCBhZnRlciBuZ09uSW5pdCB3aGVuIHRoZSBjb21wb25lbnQncyBvciBkaXJlY3RpdmUncyBjb250ZW50IGhhcyBiZWVuIGluaXRpYWxpemVkLlxyXG4gICAgLy9BZGQgJ2ltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCcgdG8gdGhlIGNsYXNzLlxyXG4gICAgdGhpcy5nZXRmaWVsZEdyb3Vwc0xpc3QgPSBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0ZmllbGRHcm91cHMoKTtcclxuICAgIHRoaXMuZnJvbUNvbnRyb2xMaXN0ID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldENvbnRyb2xzZmllbGRUeXBlcygpO1xyXG4gICAgdGhpcy5uYW1lSW5wdXQuYWRkQXN5bmNWYWxpZGF0b3JzKFt0aGlzLnJlcGV0aXRpb25Bc3luY1ZhbGlkYXRvcigpXSlcclxuICAgIGlmKCF0aGlzLmZvcm1Db250cm9sTmFtZUlucHV0LnZhbHVlJiZ0aGlzLmZyb21Db250cm9sTGlzdC5sZW5ndGg+MCl7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2xOYW1lSW5wdXQucGF0Y2hWYWx1ZSh0aGlzLmZyb21Db250cm9sTGlzdFswXS5uYW1lKVxyXG4gICAgfVxyXG4gICAgIGNvbnNvbGUubG9nKHRoaXMuX3NlbGVjdGVkLCdfc2VsZWN0ZWQnKVxyXG4gICAgdGhpcy5zdWJtaXRjbGljay5uYXRpdmVFbGVtZW50LmNsaWNrKClcclxuICB9XHJcblxyXG4gIC8qKuWtl+auteWIhue7hOWIl+ihqCAqL1xyXG4gIGdldGZpZWxkR3JvdXBzTGlzdDogYW55W10gPSBbXTtcclxuICAvKirooajljZXmjqfku7bliJfooaggKi9cclxuICBmcm9tQ29udHJvbExpc3Q6IGFueVtdID0gW107XHJcblxyXG4gIGdldCBuYW1lSW5wdXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtRW50aXR5Py5nZXQoJ25hbWUnKSBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcbiAgZ2V0IGZvcm1Db250cm9sTmFtZUlucHV0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybUVudGl0eT8uZ2V0KCdmb3JtQ29udHJvbE5hbWUnKSBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcbiAgZ2V0IGZvcm1Db25maWd1cmF0aW9uSW5wdXQoKXtcclxuICAgIHJldHVybiB0aGlzLmZvcm1FbnRpdHk/LmdldCgnZm9ybUNvbmZpZ3VyYXRpb24nKSBhcyBGb3JtR3JvdXA7XHJcbiAgfVxyXG5cclxuICAvKirojrflj5bmj5DkuqTmjInpkq7mm7/ouqvvvIznlKjkuo7nnJ/lrp7op6blj5HooajljZXmj5DkuqQgKi9cclxuICBAVmlld0NoaWxkKCdzdWJtaXRjbGljaycsIHsgc3RhdGljOiB0cnVlIH0pIHN1Ym1pdGNsaWNrOiBFbGVtZW50UmVmO1xyXG5cclxuICAvKirlrZfmrrXmoIfnrb5pbnB1dOWkseWOu+agh+eCueeUn+aIkOWtl+auteWQjeWtlyAqL1xyXG4gIGRpc1BsYXlOYW1lSW5wdXRCbHVyKGV2ZW50KSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgIGNvbnN0IHBpbnlpbiA9IHRoaXMuX1RvUGlueWluU2VydmljZS5nZXQodmFsdWUpO1xyXG4gICAgY29uc3QgbmFtZUlucHV0ID0gdGhpcy5uYW1lSW5wdXQ7XHJcbiAgICBpZiAobmFtZUlucHV0LnZhbHVlKSByZXR1cm47XHJcbiAgICBuYW1lSW5wdXQucGF0Y2hWYWx1ZShwaW55aW4pO1xyXG4gIH1cclxuXHJcbiAgLyoq5byC5q2l6aqM6K+B77yM6aqM6K+B5Yir5ZCNICovXHJcbiAgcmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgY3RybDogQWJzdHJhY3RDb250cm9sLFxyXG4gICAgKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gfCBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiA9PiB7XHJcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuICAgICAgICBpZiAoY3RybC52YWx1ZSA9PSB0aGlzLl9zZWxlY3RlZD8ubmFtZSB8fCAhY3RybC52YWx1ZSkge1xyXG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlLm5hbWVFeGlzdHMoY3RybC52YWx1ZSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUoe1xyXG4gICAgICAgICAgICAgIHJlcGV0aXRpb246IHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChcclxuICAgICAgICAgICAgICAgIGBDbXM6OkZpZWxkTmFtZXswfUFscmVhZHlFeGlzdGAsXHJcbiAgICAgICAgICAgICAgICBjdHJsLnZhbHVlLFxyXG4gICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gIH1cclxuICAvKiogKi9cclxuICBjaGFuZ2VGb3JtQ29udHJvbE5hbWUoZSl7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLl9zZWxlY3RlZCwnX3NlbGVjdGVkJylcclxuICAvLyAgZm9yIChjb25zdCBlbGVtZW50IGluIHRoaXMuZm9ybUNvbmZpZ3VyYXRpb25JbnB1dC5jb250cm9scykge1xyXG4gIC8vICAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtQ29uZmlndXJhdGlvbklucHV0LmNvbnRyb2xzW2VsZW1lbnRdO1xyXG4gIC8vICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XHJcbiAgLy8gICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gIC8vICAgICAgIGNvbnRyb2wucGF0Y2hWYWx1ZShbXSk7XHJcbiAgLy8gICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcclxuICAvLyAgICAgICBjb250cm9sLnBhdGNoVmFsdWUoZmFsc2UpO1xyXG4gIC8vICAgICB9IGVsc2Uge1xyXG4gIC8vICAgICAgIGNvbnRyb2wucGF0Y2hWYWx1ZSgnJyk7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1FbnRpdHlcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJncm91cElkXCI+e3snQ21zOjpGaWVsZEdyb3VwJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIGZvcm1Db250cm9sTmFtZT1cImdyb3VwSWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+e3snQ21zOjpPcHRpb25hbEdyb3VwaW5nJyB8IGFicExvY2FsaXphdGlvbn19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRmaWVsZEdyb3Vwc0xpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZFwiPnt7aXRlbS5uYW1lfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJkaXNwbGF5TmFtZVwiPip7eydBYnBEeW5hbWljRm9ybTo6RmllbGREaXNwbGF5TmFtZScgfFxyXG4gICAgICAgICAgICAgICAgICAgIGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGlzcGxheU5hbWVcIiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgIChibHVyKT1cImRpc1BsYXlOYW1lSW5wdXRCbHVyKCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibmFtZVwiPip7eydBYnBEeW5hbWljRm9ybTo6RmllbGROYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHJlcXVpcmVkPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyIGludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cIm5hbWVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICB7e25hbWVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb259fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1tdXRlZCBkLWJsb2NrIFwiPnt7J0FicER5bmFtaWNGb3JtOjpGaWVsZE5hbWVIZWxwVGV4dCcgfFxyXG4gICAgICAgICAgICAgICAgICAgIGFicExvY2FsaXphdGlvbn19PC9zbWFsbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZGVzY3JpcHRpb25cIj57eydDbXM6OkRlc2NyaXB0aW9uJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZm9ybUNvbnRyb2xOYW1lXCI+Knt7J0Ntczo6RmllbGRUeXBlJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIGZvcm1Db250cm9sTmFtZT1cImZvcm1Db250cm9sTmFtZVwiIChjaGFuZ2UpPVwiY2hhbmdlRm9ybUNvbnRyb2xOYW1lKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZyb21Db250cm9sTGlzdDtsZXQgaSA9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiaXRlbS5uYW1lXCI+e3tpdGVtLmRpc3BsYXlOYW1lfGFicExvY2FsaXphdGlvbn19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIEBpZihmb3JtQ29udHJvbE5hbWVJbnB1dC52YWx1ZSYmZm9ybUVudGl0eSl7XHJcbiAgICAgICAgICAgIDxkZi1keW5hbWljLWNvbmZpZyBbZm9ybUdyb3VwXT1cImZvcm1FbnRpdHlcIiBbc2VsZWN0ZWRdPVwiX3NlbGVjdGVkXCIgW3R5cGVdPVwiZm9ybUNvbnRyb2xOYW1lSW5wdXQudmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgW2Zvcm1dPVwiZm9ybUVudGl0eVwiPjwvZGYtZHluYW1pYy1jb25maWc+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPGJ1dHRvbiBmb3JtLXR5cGU9XCJzdWJtaXRcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgI3N1Ym1pdGNsaWNrPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZm9ybT5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
@@ -127,7 +127,6 @@ export class EditFieldComponent {
|
|
|
127
127
|
return;
|
|
128
128
|
}
|
|
129
129
|
console.log(this.formEntity.value, '提交表单', this.formEntity);
|
|
130
|
-
// return
|
|
131
130
|
if (this.isSubmitted)
|
|
132
131
|
return;
|
|
133
132
|
this.isSubmitted = true;
|
|
@@ -171,4 +170,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
171
170
|
type: ViewChild,
|
|
172
171
|
args: ['submitclick', { static: true }]
|
|
173
172
|
}] } });
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2ZpZWxkcy9lZGl0LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvYWRtaW4vZmllbGRzL2VkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUEwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQix3QkFBd0IsR0FDekIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFhN0UsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUNVLEVBQWUsRUFDaEIsUUFBMkIsRUFDMUIsT0FBdUIsRUFDeEIsb0JBQXlDLEVBQ3pDLG9CQUF5QyxFQUN4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QUUsRUFBRSxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDOUQsSUFBSSxFQUFFLEdBQUcsRUFBRTtnQkFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQztnQkFDcEYsb0NBQW9DO2dCQUNwQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDO29CQUMvQixHQUFHLEVBQUUsbUJBQW1CO29CQUN4QixTQUFTLEVBQUUsT0FBTztpQkFDbkIsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN2QyxDQUFDO1lBQ0QsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDYixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFVBQVU7SUFDVixLQUFLO1FBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQzs4R0F4SlUsa0JBQWtCO2tHQUFsQixrQkFBa0IseUNBUGxCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLHFCQUFxQjtnQkFDOUIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxVQUFVO2FBQ25DO1NBQ0Ysb0pDekJILGtlQU9XOzsyRkRvQkUsa0JBQWtCO2tCQVg5QixTQUFTOytCQUNFLGdCQUFnQixhQUdmO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFFBQVEsRUFBRSxhQUFhLENBQUMsVUFBVTt5QkFDbkM7cUJBQ0Y7cVRBeUQyQyxXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yICovXHJcbmltcG9ydCB7IEVYVEVOU0lPTlNfSURFTlRJRklFUiB9IGZyb20gJ0BhYnAvbmcuY29tcG9uZW50cy9leHRlbnNpYmxlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFQ21zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZW51bXMnO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7XHJcbiAgTG9jYXRpb25CYWNrU2VydmljZSxcclxuICBVcGRhdGVMaXN0U2VydmljZSxcclxuICBEaWduaXRlVmFsaWRhdG9yc1NlcnZpY2UsXHJcbn0gZnJvbSAnQGRpZ25pdGUtbmcvZXhwYW5kLmNvcmUnO1xyXG5pbXBvcnQgeyBGaWVsZHNEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpZWxkcy1kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGaWVsZHNGb3JtQ29uZmlnLCBmaWVsZFRvRm9ybUxhYmVsTWFwIH0gZnJvbSAnLi9maWVsZHMtZm9ybS1jb25maWcnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjbXMtZWRpdC1maWVsZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9lZGl0LWZpZWxkLmNvbXBvbmVudC5zY3NzJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogRVhURU5TSU9OU19JREVOVElGSUVSLFxyXG4gICAgICB1c2VWYWx1ZTogRUNtc0NvbXBvbmVudC5GaWVsZHNFZGl0LFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWRpdEZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHVibGljIF9zZXJ2aWNlOiBGaWVsZHNEYXRhU2VydmljZSxcclxuICAgIHByaXZhdGUgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgX0xvY2F0aW9uQmFja1NlcnZpY2U6IExvY2F0aW9uQmFja1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgX1VwZGF0ZUxpc3RTZXJ2aWNlOiBVcGRhdGVMaXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgX0RpZ25pdGVWYWxpZGF0b3JzU2VydmljZTogRGlnbml0ZVZhbGlkYXRvcnNTZXJ2aWNlLFxyXG4gICkge31cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvL0NhbGxlZCBhZnRlciB0aGUgY29uc3RydWN0b3IsIGluaXRpYWxpemluZyBpbnB1dCBwcm9wZXJ0aWVzLCBhbmQgdGhlIGZpcnN0IGNhbGwgdG8gbmdPbkNoYW5nZXMuXHJcbiAgICAvL0FkZCAnaW1wbGVtZW50cyBPbkluaXQnIHRvIHRoZSBjbGFzcy5cclxuICAgIGNvbnN0IHsgaWQgfSA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zO1xyXG4gICAgdGhpcy5mb3JtRW50aXR5ID0gdGhpcy5mYi5ncm91cChuZXcgRmllbGRzRm9ybUNvbmZpZygpKTtcclxuICAgIGF3YWl0IHRoaXMuZ2V0RmllbGREZXRhaWxzKGlkKTtcclxuICAgIGlmICh0aGlzLmZpZWxkRGV0YWlsKSB7XHJcbiAgICAgIHRoaXMuZm9ybUVudGl0eS5wYXRjaFZhbHVlKHtcclxuICAgICAgICAuLi50aGlzLmZpZWxkRGV0YWlsLFxyXG4gICAgICAgIGdyb3VwSWQ6IHRoaXMuZmllbGREZXRhaWwuZ3JvdXBJZCB8fCAnJyxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKirojrflj5blrZfmrrXor6bmg4UgKi9cclxuICBnZXRGaWVsZERldGFpbHMoaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5fc2VydmljZS5nZXRGaWVsZERldGFpbChpZCkuc3Vic2NyaWJlKFxyXG4gICAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZpZWxkRGV0YWlsID0gcmVzO1xyXG4gICAgICAgICAgcmVzb2x2ZShyZXMpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgIHJlc29sdmUoJycpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKuWtl+auteivpuaDhSAqL1xyXG4gIGZpZWxkRGV0YWlsOiBhbnkgPSAnJztcclxuXHJcbiAgLypcclxuICAvKirooajljZXlrp7kvZMgKi9cclxuICBmb3JtRW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8qKuihqOWNleaYr+WQpuinpuWPkemqjOivgSAqL1xyXG4gIGZvcm1WYWxpZGF0aW9uID0gZmFsc2U7XHJcblxyXG4gIC8qKuaYr+WQpuaPkOS6pCAqL1xyXG4gIGlzU3VibWl0dGVkID0gZmFsc2U7XHJcblxyXG4gIC8qKuiOt+WPluaPkOS6pOaMiemSruabv+i6q++8jOeUqOS6juecn+WunuinpuWPkeihqOWNleaPkOS6pCAqL1xyXG4gIEBWaWV3Q2hpbGQoJ3N1Ym1pdGNsaWNrJywgeyBzdGF0aWM6IHRydWUgfSkgc3VibWl0Y2xpY2s6IEVsZW1lbnRSZWY7XHJcblxyXG4gIC8qKuWtl+auteWIhue7hOaOp+S7tiAqL1xyXG4gIGdldCBncm91cElkSW5wdXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtRW50aXR5Py5nZXQoJ2dyb3VwSWQnKSBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcbiBcclxuICAvLyDojrflj5bplJnor6/kv6Hmga9cclxuICBnZXRFcnJvck1lc3NhZ2UoZXJyb3I6IGFueSxtYXA6YW55KTogc3RyaW5nIHtcclxuICAgIC8vIOiOt+WPluacrOWcsOWMluagh+etvlxyXG4gICAgY29uc3QgZ2V0TG9jYWxpemVkTGFiZWwgPSAocGF0aDogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQobWFwW3BhdGggYXMga2V5b2YgdHlwZW9mIG1hcF0pO1xyXG4gICAgfTtcclxuICBcclxuICAgIC8vIOagvOW8j+WMluaVsOe7hOe0ouW8lVxyXG4gICAgY29uc3QgZm9ybWF0QXJyYXlJbmRleCA9IChpdGVtOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgcmVnZXggPSAvXFxbWzAtOV0rXFxdL2c7XHJcbiAgICAgIGNvbnN0IGluZGV4TWF0Y2ggPSBpdGVtLm1hdGNoKHJlZ2V4KTtcclxuICAgICAgY29uc3QgW2Jhc2VQYXRoXSA9IGl0ZW0uc3BsaXQocmVnZXgpO1xyXG4gICAgICByZXR1cm4gZ2V0TG9jYWxpemVkTGFiZWwoYmFzZVBhdGgpICsgKGluZGV4TWF0Y2ggPyBpbmRleE1hdGNoWzBdIDogJycpO1xyXG4gICAgfTtcclxuICBcclxuICAgIGxldCBlcnJvck1lc3NhZ2UgPSAnJztcclxuICAgIC8vIOWmguaenOmUmeivr+i3r+W+hOWMheWQq2Zvcm1Db25maWd1cmF0aW9uXHJcbiAgICBpZiAoZXJyb3IucGF0aC5pbmNsdWRlcygnZm9ybUNvbmZpZ3VyYXRpb24nKSkge1xyXG4gICAgICAvLyDlsIbplJnor6/ot6/lvoTkuK3nmoRmb3JtQ29uZmlndXJhdGlvbi3mm7/mjaLmjonvvIzlubbmjIkt5YiG5YmyXHJcbiAgICAgIGNvbnN0IHBhdGhQYXJ0cyA9IGVycm9yLnBhdGgucmVwbGFjZUFsbCgnZm9ybUNvbmZpZ3VyYXRpb24tJywgJycpLnNwbGl0KCctJyk7XHJcbiAgICAgIC8vIOWvueWIhuWJsuWQjueahOi3r+W+hOi/m+ihjOagvOW8j+WMllxyXG4gICAgICBjb25zdCBmb3JtYXR0ZWRQYXJ0cyA9IHBhdGhQYXJ0cy5tYXAoKHBhcnQsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgLy8g5aaC5p6c5piv5pyA5ZCO5LiA5Liq6Lev5b6E5LiU5LiN5piv56ys5LiA5Liq6Lev5b6EXHJcbiAgICAgICAgaWYgKGluZGV4ID09PSBwYXRoUGFydHMubGVuZ3RoIC0gMSAmJiBpbmRleCA+IDApIHtcclxuICAgICAgICAgIC8vIOiOt+WPluWJjeS4gOS4qui3r+W+hFxyXG4gICAgICAgICAgY29uc3QgcHJldlBhcnQgPSBwYXRoUGFydHNbaW5kZXggLSAxXTtcclxuICAgICAgICAgIC8vIOWwhuWJjeS4gOS4qui3r+W+hOaMieaVsOe7hOe0ouW8leWIhuWJslxyXG4gICAgICAgICAgY29uc3QgW3ByZXZCYXNlUGF0aF0gPSBwcmV2UGFydC5zcGxpdCgvXFxbWzAtOV0rXFxdLyk7XHJcbiAgICAgICAgICAvLyDlsIblvZPliY3ot6/lvoTmjInmlbDnu4TntKLlvJXliIblibJcclxuICAgICAgICAgIGNvbnN0IFtjdXJyZW50QmFzZVBhdGhdID0gcGFydC5zcGxpdCgvXFxbWzAtOV0rXFxdLyk7XHJcbiAgICAgICAgICAvLyDnu4TlkIjliY3kuIDkuKrot6/lvoTlkozlvZPliY3ot6/lvoRcclxuICAgICAgICAgIGNvbnN0IGNvbWJpbmVkS2V5ID0gYCR7cHJldkJhc2VQYXRofS0ke2N1cnJlbnRCYXNlUGF0aH1gO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvLyDlpoLmnpxtYXDkuK3lrZjlnKjnu4TlkIjlkI7nmoTot6/lvoTvvIzliJnov5Tlm57mnKzlnLDljJbmoIfnrb7vvIzlkKbliJnov5Tlm57moLzlvI/ljJblkI7nmoTmlbDnu4TntKLlvJVcclxuICAgICAgICAgIHJldHVybiBtYXBbY29tYmluZWRLZXkgYXMga2V5b2YgdHlwZW9mIG1hcF1cclxuICAgICAgICAgICAgPyBnZXRMb2NhbGl6ZWRMYWJlbChjb21iaW5lZEtleSlcclxuICAgICAgICAgICAgOiBmb3JtYXRBcnJheUluZGV4KHBhcnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyDlkKbliJnov5Tlm57moLzlvI/ljJblkI7nmoTmlbDnu4TntKLlvJVcclxuICAgICAgICByZXR1cm4gZm9ybWF0QXJyYXlJbmRleChwYXJ0KTtcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKGZvcm1hdHRlZFBhcnRzLCAnZm9ybWF0dGVkUGFydHMnLHBhdGhQYXJ0cyk7XHJcbiAgICAgIC8vIOWwhuagvOW8j+WMluWQjueahOi3r+W+hOeUqC3ov57mjqXotbfmnaVcclxuICAgICAgZXJyb3JNZXNzYWdlID0gZm9ybWF0dGVkUGFydHMuam9pbignLScpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8g5ZCm5YiZ6L+U5Zue5pys5Zyw5YyW5qCH562+XHJcbiAgICAgIGVycm9yTWVzc2FnZSA9IGdldExvY2FsaXplZExhYmVsKGVycm9yLnBhdGgpO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgLy8g5re75Yqg6ZSZ6K+v5L+h5oGvXHJcbiAgICBlcnJvck1lc3NhZ2UgPSBgJHtlcnJvck1lc3NhZ2V9ICR7dGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KCdBYnBWYWxpZGF0aW9uOjpUaGlzRmllbGRJc05vdFZhbGlkLicpfWA7XHJcbiAgICAvLyDmmL7npLrorablkYrkv6Hmga9cclxuICAgIHRoaXMudG9hc3Rlci53YXJuKGVycm9yTWVzc2FnZSk7XHJcbiAgICByZXR1cm4gZXJyb3JNZXNzYWdlO1xyXG4gIH1cclxuXHJcbiAgLyoq5o+Q5Lqk6KGo5Y2VICovXHJcbiAgc2F2ZSgpIHtcclxuICBcclxuICAgIHRoaXMuZm9ybVZhbGlkYXRpb24gPSB0cnVlO1xyXG4gICAgaWYgKCF0aGlzLmZvcm1FbnRpdHkudmFsaWQpIHtcclxuICAgICAgdGhpcy5fRGlnbml0ZVZhbGlkYXRvcnNTZXJ2aWNlLmdldEVycm9yTWVzc2FnZSh7XHJcbiAgICAgICAgZm9ybTp0aGlzLmZvcm1FbnRpdHksXHJcbiAgICAgICAgbWFwOmZpZWxkVG9Gb3JtTGFiZWxNYXBcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgICAgY29uc29sZS5sb2codGhpcy5mb3JtRW50aXR5LnZhbHVlLCAn5o+Q5Lqk6KGo5Y2VJywgdGhpcy5mb3JtRW50aXR5KTtcclxuICAgIC8vIHJldHVyblxyXG4gICAgaWYgKHRoaXMuaXNTdWJtaXR0ZWQpIHJldHVybjtcclxuICAgIHRoaXMuaXNTdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLmZvcm1FbnRpdHkudmFsdWU7XHJcbiAgICB0aGlzLl9zZXJ2aWNlLnVwZGF0ZUZpZWxkKHRoaXMuZmllbGREZXRhaWwuaWQsIGlucHV0KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6U2F2ZWRTdWNjZXNzZnVsbHlgKSk7XHJcbiAgICAgICAgLy8gdGhpcy5fTG9jYXRpb25CYWNrU2VydmljZS5iYWNrKCk7XHJcbiAgICAgICAgdGhpcy5fTG9jYXRpb25CYWNrU2VydmljZS5iYWNrVG8oe1xyXG4gICAgICAgICAgdXJsOiBgL2Ntcy9hZG1pbi9maWVsZHNgLFxyXG4gICAgICAgICAgcmVwbGVuaXNoOiAnL2VkaXQnLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX1VwZGF0ZUxpc3RTZXJ2aWNlLnVwZGF0ZUxpc3QoKTtcclxuICAgICAgfSxcclxuICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoq6YeN572u6KGo5Y2VICovXHJcbiAgcmVzZXQoKSB7XHJcbiAgICB0aGlzLmlzU3VibWl0dGVkID0gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ0Ntczo6RWRpdEZpZWxkJyB8IGFicExvY2FsaXphdGlvblwiIFt0b29sYmFyXT1cInRydWVcIj5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybUVudGl0eVwiIFtjbGFzcy53YXMtdmFsaWRhdGVkXT1cImZvcm1WYWxpZGF0aW9uXCIgKHN1Ym1pdCk9XCJzYXZlKClcIj5cclxuICAgICAgICA8YnV0dG9uIGZvcm0tdHlwZT1cInN1Ym1pdFwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiAjc3VibWl0Y2xpY2s+PC9idXR0b24+XHJcbiAgICAgICAgQGlmKGZpZWxkRGV0YWlsKXtcclxuICAgICAgICAgICAgPGNtcy1jcmVhdGUtb3ItZWRpdC1maWVsZCAgW3NlbGVjdGVkXT1cImZpZWxkRGV0YWlsXCIgW3NlcnZpY2VdPVwiX3NlcnZpY2VcIiBbZm9ybV09XCJmb3JtRW50aXR5XCI+PC9jbXMtY3JlYXRlLW9yLWVkaXQtZmllbGQ+XHJcbiAgICAgICAgfVxyXG4gICAgPC9mb3JtPlxyXG48L2FicC1wYWdlPiJdfQ==
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2ZpZWxkcy9lZGl0LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvYWRtaW4vZmllbGRzL2VkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUEwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQix3QkFBd0IsR0FDekIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFhN0UsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUNVLEVBQWUsRUFDaEIsUUFBMkIsRUFDMUIsT0FBdUIsRUFDeEIsb0JBQXlDLEVBQ3pDLG9CQUF5QyxFQUN4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QUssQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM5RCxJQUFJLEVBQUUsR0FBRyxFQUFFO2dCQUNULElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO2dCQUNwRixvQ0FBb0M7Z0JBQ3BDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7b0JBQy9CLEdBQUcsRUFBRSxtQkFBbUI7b0JBQ3hCLFNBQVMsRUFBRSxPQUFPO2lCQUNuQixDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3ZDLENBQUM7WUFDRCxRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUNiLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsVUFBVTtJQUNWLEtBQUs7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDOzhHQXZKVSxrQkFBa0I7a0dBQWxCLGtCQUFrQix5Q0FQbEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixRQUFRLEVBQUUsYUFBYSxDQUFDLFVBQVU7YUFDbkM7U0FDRixvSkN6Qkgsa2VBT1c7OzJGRG9CRSxrQkFBa0I7a0JBWDlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGFBR2Y7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxVQUFVO3lCQUNuQztxQkFDRjtxVEF5RDJDLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cclxuaW1wb3J0IHsgRVhURU5TSU9OU19JREVOVElGSUVSIH0gZnJvbSAnQGFicC9uZy5jb21wb25lbnRzL2V4dGVuc2libGUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVDbXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9lbnVtcyc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHtcclxuICBMb2NhdGlvbkJhY2tTZXJ2aWNlLFxyXG4gIFVwZGF0ZUxpc3RTZXJ2aWNlLFxyXG4gIERpZ25pdGVWYWxpZGF0b3JzU2VydmljZSxcclxufSBmcm9tICdAZGlnbml0ZS1uZy9leHBhbmQuY29yZSc7XHJcbmltcG9ydCB7IEZpZWxkc0RhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmllbGRzLWRhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpZWxkc0Zvcm1Db25maWcsIGZpZWxkVG9Gb3JtTGFiZWxNYXAgfSBmcm9tICcuL2ZpZWxkcy1mb3JtLWNvbmZpZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Ntcy1lZGl0LWZpZWxkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdC1maWVsZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2VkaXQtZmllbGQuY29tcG9uZW50LnNjc3MnLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBFWFRFTlNJT05TX0lERU5USUZJRVIsXHJcbiAgICAgIHVzZVZhbHVlOiBFQ21zQ29tcG9uZW50LkZpZWxkc0VkaXQsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGl0RmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwdWJsaWMgX3NlcnZpY2U6IEZpZWxkc0RhdGFTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2FzdGVyOiBUb2FzdGVyU2VydmljZSxcclxuICAgIHB1YmxpYyBfTG9jYXRpb25CYWNrU2VydmljZTogTG9jYXRpb25CYWNrU2VydmljZSxcclxuICAgIHB1YmxpYyBfTG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBfVXBkYXRlTGlzdFNlcnZpY2U6IFVwZGF0ZUxpc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfRGlnbml0ZVZhbGlkYXRvcnNTZXJ2aWNlOiBEaWduaXRlVmFsaWRhdG9yc1NlcnZpY2UsXHJcbiAgKSB7fVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vQ2FsbGVkIGFmdGVyIHRoZSBjb25zdHJ1Y3RvciwgaW5pdGlhbGl6aW5nIGlucHV0IHByb3BlcnRpZXMsIGFuZCB0aGUgZmlyc3QgY2FsbCB0byBuZ09uQ2hhbmdlcy5cclxuICAgIC8vQWRkICdpbXBsZW1lbnRzIE9uSW5pdCcgdG8gdGhlIGNsYXNzLlxyXG4gICAgY29uc3QgeyBpZCB9ID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXM7XHJcbiAgICB0aGlzLmZvcm1FbnRpdHkgPSB0aGlzLmZiLmdyb3VwKG5ldyBGaWVsZHNGb3JtQ29uZmlnKCkpO1xyXG4gICAgYXdhaXQgdGhpcy5nZXRGaWVsZERldGFpbHMoaWQpO1xyXG4gICAgaWYgKHRoaXMuZmllbGREZXRhaWwpIHtcclxuICAgICAgdGhpcy5mb3JtRW50aXR5LnBhdGNoVmFsdWUoe1xyXG4gICAgICAgIC4uLnRoaXMuZmllbGREZXRhaWwsXHJcbiAgICAgICAgZ3JvdXBJZDogdGhpcy5maWVsZERldGFpbC5ncm91cElkIHx8ICcnLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKuiOt+WPluWtl+auteivpuaDhSAqL1xyXG4gIGdldEZpZWxkRGV0YWlscyhpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB0aGlzLl9zZXJ2aWNlLmdldEZpZWxkRGV0YWlsKGlkKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgcmVzID0+IHtcclxuICAgICAgICAgIHRoaXMuZmllbGREZXRhaWwgPSByZXM7XHJcbiAgICAgICAgICByZXNvbHZlKHJlcyk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgcmVzb2x2ZSgnJyk7XHJcbiAgICAgICAgfSxcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoq5a2X5q616K+m5oOFICovXHJcbiAgZmllbGREZXRhaWw6IGFueSA9ICcnO1xyXG5cclxuICAvKlxyXG4gIC8qKuihqOWNleWunuS9kyAqL1xyXG4gIGZvcm1FbnRpdHk6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoq6KGo5Y2V5piv5ZCm6Kem5Y+R6aqM6K+BICovXHJcbiAgZm9ybVZhbGlkYXRpb24gPSBmYWxzZTtcclxuXHJcbiAgLyoq5piv5ZCm5o+Q5LqkICovXHJcbiAgaXNTdWJtaXR0ZWQgPSBmYWxzZTtcclxuXHJcbiAgLyoq6I635Y+W5o+Q5Lqk5oyJ6ZKu5pu/6Lqr77yM55So5LqO55yf5a6e6Kem5Y+R6KGo5Y2V5o+Q5LqkICovXHJcbiAgQFZpZXdDaGlsZCgnc3VibWl0Y2xpY2snLCB7IHN0YXRpYzogdHJ1ZSB9KSBzdWJtaXRjbGljazogRWxlbWVudFJlZjtcclxuXHJcbiAgLyoq5a2X5q615YiG57uE5o6n5Lu2ICovXHJcbiAgZ2V0IGdyb3VwSWRJbnB1dCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1FbnRpdHk/LmdldCgnZ3JvdXBJZCcpIGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxuIFxyXG4gIC8vIOiOt+WPlumUmeivr+S/oeaBr1xyXG4gIGdldEVycm9yTWVzc2FnZShlcnJvcjogYW55LG1hcDphbnkpOiBzdHJpbmcge1xyXG4gICAgLy8g6I635Y+W5pys5Zyw5YyW5qCH562+XHJcbiAgICBjb25zdCBnZXRMb2NhbGl6ZWRMYWJlbCA9IChwYXRoOiBzdHJpbmcpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChtYXBbcGF0aCBhcyBrZXlvZiB0eXBlb2YgbWFwXSk7XHJcbiAgICB9O1xyXG4gIFxyXG4gICAgLy8g5qC85byP5YyW5pWw57uE57Si5byVXHJcbiAgICBjb25zdCBmb3JtYXRBcnJheUluZGV4ID0gKGl0ZW06IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zdCByZWdleCA9IC9cXFtbMC05XStcXF0vZztcclxuICAgICAgY29uc3QgaW5kZXhNYXRjaCA9IGl0ZW0ubWF0Y2gocmVnZXgpO1xyXG4gICAgICBjb25zdCBbYmFzZVBhdGhdID0gaXRlbS5zcGxpdChyZWdleCk7XHJcbiAgICAgIHJldHVybiBnZXRMb2NhbGl6ZWRMYWJlbChiYXNlUGF0aCkgKyAoaW5kZXhNYXRjaCA/IGluZGV4TWF0Y2hbMF0gOiAnJyk7XHJcbiAgICB9O1xyXG4gIFxyXG4gICAgbGV0IGVycm9yTWVzc2FnZSA9ICcnO1xyXG4gICAgLy8g5aaC5p6c6ZSZ6K+v6Lev5b6E5YyF5ZCrZm9ybUNvbmZpZ3VyYXRpb25cclxuICAgIGlmIChlcnJvci5wYXRoLmluY2x1ZGVzKCdmb3JtQ29uZmlndXJhdGlvbicpKSB7XHJcbiAgICAgIC8vIOWwhumUmeivr+i3r+W+hOS4reeahGZvcm1Db25maWd1cmF0aW9uLeabv+aNouaOie+8jOW5tuaMiS3liIblibJcclxuICAgICAgY29uc3QgcGF0aFBhcnRzID0gZXJyb3IucGF0aC5yZXBsYWNlQWxsKCdmb3JtQ29uZmlndXJhdGlvbi0nLCAnJykuc3BsaXQoJy0nKTtcclxuICAgICAgLy8g5a+55YiG5Ymy5ZCO55qE6Lev5b6E6L+b6KGM5qC85byP5YyWXHJcbiAgICAgIGNvbnN0IGZvcm1hdHRlZFBhcnRzID0gcGF0aFBhcnRzLm1hcCgocGFydCwgaW5kZXgpID0+IHtcclxuICAgICAgICAvLyDlpoLmnpzmmK/mnIDlkI7kuIDkuKrot6/lvoTkuJTkuI3mmK/nrKzkuIDkuKrot6/lvoRcclxuICAgICAgICBpZiAoaW5kZXggPT09IHBhdGhQYXJ0cy5sZW5ndGggLSAxICYmIGluZGV4ID4gMCkge1xyXG4gICAgICAgICAgLy8g6I635Y+W5YmN5LiA5Liq6Lev5b6EXHJcbiAgICAgICAgICBjb25zdCBwcmV2UGFydCA9IHBhdGhQYXJ0c1tpbmRleCAtIDFdO1xyXG4gICAgICAgICAgLy8g5bCG5YmN5LiA5Liq6Lev5b6E5oyJ5pWw57uE57Si5byV5YiG5YmyXHJcbiAgICAgICAgICBjb25zdCBbcHJldkJhc2VQYXRoXSA9IHByZXZQYXJ0LnNwbGl0KC9cXFtbMC05XStcXF0vKTtcclxuICAgICAgICAgIC8vIOWwhuW9k+WJjei3r+W+hOaMieaVsOe7hOe0ouW8leWIhuWJslxyXG4gICAgICAgICAgY29uc3QgW2N1cnJlbnRCYXNlUGF0aF0gPSBwYXJ0LnNwbGl0KC9cXFtbMC05XStcXF0vKTtcclxuICAgICAgICAgIC8vIOe7hOWQiOWJjeS4gOS4qui3r+W+hOWSjOW9k+WJjei3r+W+hFxyXG4gICAgICAgICAgY29uc3QgY29tYmluZWRLZXkgPSBgJHtwcmV2QmFzZVBhdGh9LSR7Y3VycmVudEJhc2VQYXRofWA7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vIOWmguaenG1hcOS4reWtmOWcqOe7hOWQiOWQjueahOi3r+W+hO+8jOWImei/lOWbnuacrOWcsOWMluagh+etvu+8jOWQpuWImei/lOWbnuagvOW8j+WMluWQjueahOaVsOe7hOe0ouW8lVxyXG4gICAgICAgICAgcmV0dXJuIG1hcFtjb21iaW5lZEtleSBhcyBrZXlvZiB0eXBlb2YgbWFwXVxyXG4gICAgICAgICAgICA/IGdldExvY2FsaXplZExhYmVsKGNvbWJpbmVkS2V5KVxyXG4gICAgICAgICAgICA6IGZvcm1hdEFycmF5SW5kZXgocGFydCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIOWQpuWImei/lOWbnuagvOW8j+WMluWQjueahOaVsOe7hOe0ouW8lVxyXG4gICAgICAgIHJldHVybiBmb3JtYXRBcnJheUluZGV4KHBhcnQpO1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc29sZS5sb2coZm9ybWF0dGVkUGFydHMsICdmb3JtYXR0ZWRQYXJ0cycscGF0aFBhcnRzKTtcclxuICAgICAgLy8g5bCG5qC85byP5YyW5ZCO55qE6Lev5b6E55SoLei/nuaOpei1t+adpVxyXG4gICAgICBlcnJvck1lc3NhZ2UgPSBmb3JtYXR0ZWRQYXJ0cy5qb2luKCctJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyDlkKbliJnov5Tlm57mnKzlnLDljJbmoIfnrb5cclxuICAgICAgZXJyb3JNZXNzYWdlID0gZ2V0TG9jYWxpemVkTGFiZWwoZXJyb3IucGF0aCk7XHJcbiAgICB9XHJcbiAgXHJcbiAgICAvLyDmt7vliqDplJnor6/kv6Hmga9cclxuICAgIGVycm9yTWVzc2FnZSA9IGAke2Vycm9yTWVzc2FnZX0gJHt0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoJ0FicFZhbGlkYXRpb246OlRoaXNGaWVsZElzTm90VmFsaWQuJyl9YDtcclxuICAgIC8vIOaYvuekuuitpuWRiuS/oeaBr1xyXG4gICAgdGhpcy50b2FzdGVyLndhcm4oZXJyb3JNZXNzYWdlKTtcclxuICAgIHJldHVybiBlcnJvck1lc3NhZ2U7XHJcbiAgfVxyXG5cclxuICAvKirmj5DkuqTooajljZUgKi9cclxuICBzYXZlKCkge1xyXG4gIFxyXG4gICAgdGhpcy5mb3JtVmFsaWRhdGlvbiA9IHRydWU7XHJcbiAgICBpZiAoIXRoaXMuZm9ybUVudGl0eS52YWxpZCkge1xyXG4gICAgICB0aGlzLl9EaWduaXRlVmFsaWRhdG9yc1NlcnZpY2UuZ2V0RXJyb3JNZXNzYWdlKHtcclxuICAgICAgICBmb3JtOnRoaXMuZm9ybUVudGl0eSxcclxuICAgICAgICBtYXA6ZmllbGRUb0Zvcm1MYWJlbE1hcFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmZvcm1FbnRpdHkudmFsdWUsICfmj5DkuqTooajljZUnLCB0aGlzLmZvcm1FbnRpdHkpO1xyXG4gICAgaWYgKHRoaXMuaXNTdWJtaXR0ZWQpIHJldHVybjtcclxuICAgIHRoaXMuaXNTdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLmZvcm1FbnRpdHkudmFsdWU7XHJcbiAgICB0aGlzLl9zZXJ2aWNlLnVwZGF0ZUZpZWxkKHRoaXMuZmllbGREZXRhaWwuaWQsIGlucHV0KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6U2F2ZWRTdWNjZXNzZnVsbHlgKSk7XHJcbiAgICAgICAgLy8gdGhpcy5fTG9jYXRpb25CYWNrU2VydmljZS5iYWNrKCk7XHJcbiAgICAgICAgdGhpcy5fTG9jYXRpb25CYWNrU2VydmljZS5iYWNrVG8oe1xyXG4gICAgICAgICAgdXJsOiBgL2Ntcy9hZG1pbi9maWVsZHNgLFxyXG4gICAgICAgICAgcmVwbGVuaXNoOiAnL2VkaXQnLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX1VwZGF0ZUxpc3RTZXJ2aWNlLnVwZGF0ZUxpc3QoKTtcclxuICAgICAgfSxcclxuICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoq6YeN572u6KGo5Y2VICovXHJcbiAgcmVzZXQoKSB7XHJcbiAgICB0aGlzLmlzU3VibWl0dGVkID0gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ0Ntczo6RWRpdEZpZWxkJyB8IGFicExvY2FsaXphdGlvblwiIFt0b29sYmFyXT1cInRydWVcIj5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybUVudGl0eVwiIFtjbGFzcy53YXMtdmFsaWRhdGVkXT1cImZvcm1WYWxpZGF0aW9uXCIgKHN1Ym1pdCk9XCJzYXZlKClcIj5cclxuICAgICAgICA8YnV0dG9uIGZvcm0tdHlwZT1cInN1Ym1pdFwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiAjc3VibWl0Y2xpY2s+PC9idXR0b24+XHJcbiAgICAgICAgQGlmKGZpZWxkRGV0YWlsKXtcclxuICAgICAgICAgICAgPGNtcy1jcmVhdGUtb3ItZWRpdC1maWVsZCAgW3NlbGVjdGVkXT1cImZpZWxkRGV0YWlsXCIgW3NlcnZpY2VdPVwiX3NlcnZpY2VcIiBbZm9ybV09XCJmb3JtRW50aXR5XCI+PC9jbXMtY3JlYXRlLW9yLWVkaXQtZmllbGQ+XHJcbiAgICAgICAgfVxyXG4gICAgPC9mb3JtPlxyXG48L2FicC1wYWdlPiJdfQ==
|
|
@@ -122,7 +122,7 @@ export class EntryControlComponent {
|
|
|
122
122
|
const map = new Map();
|
|
123
123
|
const roots = [];
|
|
124
124
|
items.forEach(item => {
|
|
125
|
-
map.set(item.id, { title: item.slug, key: item.id, isLeaf: true, children: [] });
|
|
125
|
+
map.set(item.id, { title: item.slug, key: item.id, isLeaf: true, children: [], order: item.order || 0 });
|
|
126
126
|
});
|
|
127
127
|
items.forEach(item => {
|
|
128
128
|
const node = map.get(item.id);
|
|
@@ -140,6 +140,15 @@ export class EntryControlComponent {
|
|
|
140
140
|
roots.push(node);
|
|
141
141
|
}
|
|
142
142
|
});
|
|
143
|
+
const sortNodes = (nodes) => {
|
|
144
|
+
nodes.sort((a, b) => a.order - b.order);
|
|
145
|
+
nodes.forEach(node => {
|
|
146
|
+
if (node.children.length > 0) {
|
|
147
|
+
sortNodes(node.children);
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
};
|
|
151
|
+
sortNodes(roots);
|
|
143
152
|
return roots;
|
|
144
153
|
}
|
|
145
154
|
onTreeSelectChange(value) {
|
|
@@ -179,4 +188,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
179
188
|
type: ViewChild,
|
|
180
189
|
args: ['submitclick', { static: true }]
|
|
181
190
|
}] } });
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9lbnRyeS9lbnRyeS1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2VudHJ5L2VudHJ5LWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxXQUFXLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7O0FBQ2xFLG9FQUFvRTtBQUNwRSwwRUFBMEU7QUFPMUUsTUFBTSxPQUFPLHFCQUFxQjtJQUxsQztRQU1VLE9BQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekIsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0MseUJBQW9CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDbkQseUJBQW9CLEdBQUcsTUFB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QUFZLENBQUMsS0FBSztRQUN0QixNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsYUFBYTtJQUNiLGNBQWM7UUFDWixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQU8sRUFBRSxFQUFFO2dCQUMzRyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztnQkFDdkIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hCLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQWhMVSxxQkFBcUI7a0dBQXJCLHFCQUFxQixpVENoQmxDLGl3R0FvRE87OzJGRHBDTSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1COzhCQWVsQixNQUFNO3NCQURoQixLQUFLO2dCQVVLLE1BQU07c0JBRGhCLEtBQUs7Z0JBUUssZUFBZTtzQkFEekIsS0FBSztnQkFPSyxRQUFRO3NCQURsQixLQUFLO2dCQU9LLE9BQU87c0JBRGpCLEtBQUs7Z0JBT3NDLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFbnRyeUFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2RpZ25pdGUvY21zL2FkbWluL2VudHJpZXMvZW50cnktYWRtaW4uc2VydmljZSc7XG5pbXBvcnQgeyBFbnRyeVN0YXR1cyB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2RpZ25pdGUvY21zL2VudHJpZXMnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBTZWN0aW9uQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvZGlnbml0ZS9jbXMvYWRtaW4vc2VjdGlvbnMnO1xuaW1wb3J0IHsgU2VjdGlvblR5cGUgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9kaWduaXRlL2Ntcy9zZWN0aW9ucyc7XG4vLyBpbXBvcnQgeyBFbnRyeUFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2FkbWluL2VudHJpZXMnO1xuLy8gaW1wb3J0IHsgRW50cnlTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9lbnRyaWVzL2VudHJ5LXN0YXR1cy5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY21zLWVudHJ5LWNvbnRyb2wnLFxuICB0ZW1wbGF0ZVVybDogJy4vZW50cnktY29udHJvbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VudHJ5LWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRW50cnlDb250cm9sQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBmYiA9IGluamVjdChGb3JtQnVpbGRlcik7XG4gIHByaXZhdGUgX0VudHJ5QWRtaW5TZXJ2aWNlID0gaW5qZWN0KEVudHJ5QWRtaW5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfU2VjdGlvbkFkbWluU2VydmljZSA9IGluamVjdChTZWN0aW9uQWRtaW5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfTG9jYWxpemF0aW9uU2VydmljZSA9IGluamVjdChMb2NhbGl6YXRpb25TZXJ2aWNlKTtcblxuICBTZWN0aW9uVHlwZSA9IFNlY3Rpb25UeXBlO1xuXG4gIC8qKuihqOWNleWunuS9kyAqL1xuICBfZW50aXR5OiBGb3JtR3JvdXAgfCBhbnk7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZW50aXR5KHY6IGFueSkge1xuICAgIHRoaXMuX2VudGl0eSA9IHY7XG5cbiAgICBpZiAodikgdGhpcy5kYXRhTG9hZGVkKCk7XG4gIH1cblxuICAvKirlrZfmrrXphY3nva7liJfooaggKi9cbiAgX2ZpZWxkczogYW55ID0gJyc7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZmllbGRzKHY6IGFueSkge1xuICAgIHRoaXMuX2ZpZWxkcyA9IHY7XG4gIH1cblxuICAvKirniLbnuqflrZfmrrXlkI3np7DvvIznlKjkuo7kuLrooajljZXorr7nva7mjqfku7botYvlgLwgKi9cbiAgX3BhcmVudEZpbGVkTmFtZTogYW55O1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBhcmVudEZpbGVkTmFtZSh2OiBhbnkpIHtcbiAgICB0aGlzLl9wYXJlbnRGaWxlZE5hbWUgPSB2O1xuICB9XG4gIC8qKueItue6p+Wtl+auteWQjeensO+8jOeUqOS6juS4uuihqOWNleiuvue9ruaOp+S7tui1i+WAvCAqL1xuICBfc2VsZWN0ZWQ6IGFueTtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWxlY3RlZCh2OiBhbnlbXSkge1xuICAgIHRoaXMuX3NlbGVjdGVkID0gdiB8fCBbXTtcbiAgfVxuICAvKiror63oqIAgKi9cbiAgX2N1bHR1cmU6IGFueTtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjdWx0dXJlKHY6IGFueSkge1xuICAgIGlmICh2KSB7XG4gICAgICB0aGlzLl9jdWx0dXJlID0gdjtcbiAgICAgIC8vIHRoaXMuZGF0YUxvYWRlZCgpXG4gICAgfVxuICB9XG4gIEBWaWV3Q2hpbGQoJ3N1Ym1pdGNsaWNrJywgeyBzdGF0aWM6IHRydWUgfSkgc3VibWl0Y2xpY2s6IEVsZW1lbnRSZWY7XG5cbiAgZXh0cmFQcm9wZXJ0aWVzOiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XG5cbiAgLyoq5p2/5Z2X5L+h5oGvICovXG4gIHNlY3Rpb25JbmZvOmFueT1udWxsO1xuXG4gIC8qKiAqL1xuICBsaXN0T2ZPcHRpb246IGFueVtdID0gW107XG4gIFxuICAvKirmoJHlvaLoioLngrkgKi9cbiAgdHJlZU5vZGVzOiBhbnlbXSA9IFtdO1xuICB0cmVlU2VsZWN0VmFsdWU6IGFueTtcbiAgc2VsZWN0VmFsdWU6IGFueTtcbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBhc3luYyBkYXRhTG9hZGVkKCkge1xuICAgIGlmICh0aGlzLl9maWVsZHMgJiYgdGhpcy5fZW50aXR5ICYmIHRoaXMuX3BhcmVudEZpbGVkTmFtZSAmJiB0aGlzLl9jdWx0dXJlKSB7XG4gICAgICBhd2FpdCB0aGlzLkFmdGVySW5pdCgpO1xuICAgICAgYXdhaXQgdGhpcy5nZXRTZWN0aW9uQnlJZCgpO1xuICAgICAgYXdhaXQgdGhpcy5nZXRFbnRyeUFzc2lnbkxpc3QoKTtcbiAgICAgIGlmICh0aGlzLmlzU3RydWN0dXJlVHlwZSgpKSB7XG4gICAgICAgIHRoaXMudHJlZVNlbGVjdFZhbHVlID0gdGhpcy5fZmllbGRzLmZpZWxkLmZvcm1Db25maWd1cmF0aW9uWydFbnRyeS5NdWx0aXBsZSddID8gdGhpcy5fc2VsZWN0ZWQgOiB0aGlzLl9zZWxlY3RlZD8uWzBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RWYWx1ZSA9IHRoaXMuX2ZpZWxkcy5maWVsZC5mb3JtQ29uZmlndXJhdGlvblsnRW50cnkuTXVsdGlwbGUnXSA/IHRoaXMuX3NlbGVjdGVkIDogdGhpcy5fc2VsZWN0ZWQ/LlswXTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHRoaXMuc3VibWl0Y2xpY2s/Lm5hdGl2ZUVsZW1lbnQ/LmNsaWNrKCk7XG4gICAgfVxuICB9XG5cblxuXG4gIEFmdGVySW5pdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdHMpID0+IHtcbiAgICAgIGNvbnN0IFZhbGlkYXRvcnNBcnJheTphbnlbXSA9IFtdO1xuICAgICAgaWYgKHRoaXMuX2ZpZWxkcy5yZXF1aXJlZCkge1xuICAgICAgICBWYWxpZGF0b3JzQXJyYXkucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGlzTXVsdGlwbGU9dGhpcy5fZmllbGRzLmZpZWxkLmZvcm1Db25maWd1cmF0aW9uWydFbnRyeS5NdWx0aXBsZSddXG4gICAgICAvLyBsZXQgc2VsZWN0VmFsdWU9aXNNdWx0aXBsZT90aGlzLl9zZWxlY3RlZDp0aGlzLl9zZWxlY3RlZDtcbiAgICAgIC8vIGlmKCF0aGlzLl9maWVsZHMuZmllbGQuZm9ybUNvbmZpZ3VyYXRpb25bJ0VudHJ5Lk11bHRpcGxlJ10pe1xuICAgICAgLy8gICB0aGlzLmxpc3RPZlNlbGVjdGVkVmFsdWUgPSB0aGlzLl9zZWxlY3RlZFswXTtcbiAgICAgIC8vIH1cbiAgICAgIC8vIHRoaXMuX3NlbGVjdGVkPXNlbGVjdFZhbHVlO1xuICAgICAgY29uc3QgbmV3Q29udHJvbCA9IHRoaXMuZmIuY29udHJvbCh0aGlzLl9zZWxlY3RlZCwgVmFsaWRhdG9yc0FycmF5KTtcbiAgICAgIC8vIG5ld0NvbnRyb2wuYWRkVmFsaWRhdG9ycyh0aGlzLmFycnBhbmR1YW4oKSlcbiAgICAgIGNvbnN0IGV4dHJhUHJvcGVydGllczphbnkgPSB0aGlzLl9lbnRpdHkuZ2V0KHRoaXMuX3BhcmVudEZpbGVkTmFtZSkgYXMgRm9ybUdyb3VwO1xuICAgICAgZXh0cmFQcm9wZXJ0aWVzLnNldENvbnRyb2wodGhpcy5fZmllbGRzLmZpZWxkLm5hbWUsIG5ld0NvbnRyb2wpO1xuICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICB9KTtcbiAgfVxuXG5cbiAgZ2V0IHNlbGVjdElucHV0KCl7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eT8uZ2V0KHRoaXMuX3BhcmVudEZpbGVkTmFtZSk/LmdldCh0aGlzLl9maWVsZHMuZmllbGQubmFtZSkgYXMgRm9ybUNvbnRyb2w7XG4gIH1cbiAgb25TZWxlY3RDaGFuZ2UodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGFycmF5VmFsdWUgPSB0aGlzLl9maWVsZHMuZmllbGQuZm9ybUNvbmZpZ3VyYXRpb25bJ0VudHJ5Lk11bHRpcGxlJ10gPyB2YWx1ZSA6ICh2YWx1ZSA/IFt2YWx1ZV0gOiBbXSk7XG4gICAgdGhpcy5zZWxlY3RJbnB1dD8uc2V0VmFsdWUoYXJyYXlWYWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICB9XG4gIC8qKuiOt+WPluWvueW6lOeahOadoeebriAqL1xuICBnZXRFbnRyeUFzc2lnbkxpc3QoZmlsdGVyID0gJycpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdHMpID0+IHtcbiAgICAgIHRoaXMuX0VudHJ5QWRtaW5TZXJ2aWNlXG4gICAgICAgIC5nZXRMaXN0KHtcbiAgICAgICAgICBjdWx0dXJlOiB0aGlzLl9jdWx0dXJlLFxuICAgICAgICAgIHNlY3Rpb25JZDogdGhpcy5fZmllbGRzLmZpZWxkLmZvcm1Db25maWd1cmF0aW9uWydFbnRyeS5TZWN0aW9uSWQnXSxcbiAgICAgICAgICBza2lwQ291bnQ6IDAsXG4gICAgICAgICAgbWF4UmVzdWx0Q291bnQ6IDEwMDAsXG4gICAgICAgICAgc3RhdHVzOiBFbnRyeVN0YXR1cy5QdWJsaXNoZWQsXG4gICAgICAgICAgLy8gZmlsdGVyOiBmaWx0ZXIsXG4gICAgICAgIH0pXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlczphbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmxpc3RPZk9wdGlvbiA9IHJlcy5pdGVtcztcbiAgICAgICAgICBpZiAodGhpcy5pc1N0cnVjdHVyZVR5cGUoKSkge1xuICAgICAgICAgICAgdGhpcy50cmVlTm9kZXMgPSB0aGlzLmNvbnZlcnRUb1RyZWVOb2RlcyhyZXMuaXRlbXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICBcbiAgLyoq5Yik5pat5piv5ZCm5Li657uT5p6E57G75Z6LICovXG4gIGlzU3RydWN0dXJlVHlwZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWN0aW9uSW5mbz8udHlwZSA9PT0gMSB8fCB0aGlzLnNlY3Rpb25JbmZvPy50eXBlID09PSBTZWN0aW9uVHlwZS5TdHJ1Y3R1cmU7XG4gIH1cbiAgXG4gIC8qKui9rOaNouS4uuagkeW9ouiKgueCuSAqL1xuICBwcml2YXRlIGNvbnZlcnRUb1RyZWVOb2RlcyhpdGVtczogYW55W10pOiBhbnlbXSB7XG4gICAgY29uc3QgbWFwID0gbmV3IE1hcCgpO1xuICAgIGNvbnN0IHJvb3RzOiBhbnlbXSA9IFtdO1xuICAgIFxuICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBtYXAuc2V0KGl0ZW0uaWQsIHsgdGl0bGU6IGl0ZW0uc2x1Zywga2V5OiBpdGVtLmlkLCBpc0xlYWY6IHRydWUsIGNoaWxkcmVuOiBbXSB9KTtcbiAgICB9KTtcbiAgICBcbiAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9IG1hcC5nZXQoaXRlbS5pZCk7XG4gICAgICBpZiAoaXRlbS5wYXJlbnRJZCkge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSBtYXAuZ2V0KGl0ZW0ucGFyZW50SWQpO1xuICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgcGFyZW50LmNoaWxkcmVuLnB1c2gobm9kZSk7XG4gICAgICAgICAgcGFyZW50LmlzTGVhZiA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJvb3RzLnB1c2gobm9kZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJvb3RzLnB1c2gobm9kZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgXG4gICAgcmV0dXJuIHJvb3RzO1xuICB9XG5cbiAgb25UcmVlU2VsZWN0Q2hhbmdlKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBhcnJheVZhbHVlID0gdGhpcy5fZmllbGRzLmZpZWxkLmZvcm1Db25maWd1cmF0aW9uWydFbnRyeS5NdWx0aXBsZSddID8gdmFsdWUgOiAodmFsdWUgPyBbdmFsdWVdIDogW10pO1xuICAgIHRoaXMuc2VsZWN0SW5wdXQ/LnNldFZhbHVlKGFycmF5VmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgfVxuXG4gIC8qKiAqL1xuICBhc3luYyBTZWxlY3RDaGFuZ2UoZXZlbnQpIHtcbiAgICBhd2FpdCB0aGlzLmdldEVudHJ5QXNzaWduTGlzdChldmVudCk7XG4gIH1cbiAgLyoq6I635Y+W5a+55bqU55qE5p2/5Z2XICovXG4gIGdldFNlY3Rpb25CeUlkKCl7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICB0aGlzLl9TZWN0aW9uQWRtaW5TZXJ2aWNlLmdldCh0aGlzLl9maWVsZHMuZmllbGQuZm9ybUNvbmZpZ3VyYXRpb25bJ0VudHJ5LlNlY3Rpb25JZCddKS5zdWJzY3JpYmUoKHJlczphbnkpID0+IHtcbiAgICAgICAgdGhpcy5zZWN0aW9uSW5mbyA9IHJlcztcbiAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgIH0pXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiX2VudGl0eVwiPlxyXG4gICAgPGRpdiBbZm9ybUdyb3VwTmFtZV09XCJfcGFyZW50RmlsZWROYW1lXCIgY2xhc3M9XCJlbnRyeS1jb250cm9sLXBhZ2VcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgKm5nSWY9XCJfZmllbGRzLmRpc3BsYXlOYW1lXCI+e3sgX2ZpZWxkcy5kaXNwbGF5TmFtZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1N0cnVjdHVyZVR5cGUoKTsgZWxzZSBub3JtYWxTZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgIDxuei10cmVlLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1zZWxlY3QgZGlnbml0ZS1mb3JtLXRyZWUtc2VsZWN0XCJcclxuICAgICAgICAgICAgICAgICAgICBbbnpNYXhUYWdDb3VudF09XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICBbbnpQbGFjZUhvbGRlcl09XCJfZmllbGRzLmZpZWxkLmZvcm1Db25maWd1cmF0aW9uWydFbnRyeS5QbGFjZWhvbGRlciddXCJcclxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRyZWVTZWxlY3RWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW256Tm9kZXNdPVwidHJlZU5vZGVzXCJcclxuICAgICAgICAgICAgICAgICAgICBbbnpNdWx0aXBsZV09XCJfZmllbGRzLmZpZWxkLmZvcm1Db25maWd1cmF0aW9uWydFbnRyeS5NdWx0aXBsZSddIHx8IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBbbnpTaG93U2VhcmNoXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuekRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbbnpEcm9wZG93bkNsYXNzTmFtZV09XCInZGlnbml0ZS1mb3JtLXRyZWUtc2VsZWN0LWRyb3Bkb3duJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWxlY3RDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbnpEZWZhdWx0RXhwYW5kQWxsPlxyXG4gICAgICAgICAgICAgICAgPC9uei10cmVlLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vcm1hbFNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfZmllbGRzLmZpZWxkLmZvcm1Db25maWd1cmF0aW9uWydFbnRyeS5NdWx0aXBsZSddOyBlbHNlIGVsc2VUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuei1zZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCBkaWduaXRlLWZvcm0tc2VsZWN0IGZvcm0tc2VsZWN0LW11bHRpcGxlXCIgW256TWF4VGFnQ291bnRdPVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBuek1vZGU9XCJtdWx0aXBsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuelBsYWNlSG9sZGVyXT1cIl9maWVsZHMuZmllbGQuZm9ybUNvbmZpZ3VyYXRpb25bJ0VudHJ5LlBsYWNlaG9sZGVyJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdFZhbHVlXCIgbnpBbGxvd0NsZWFyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblNlbGVjdENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW256RHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbnpEcm9wZG93bkNsYXNzTmFtZV09XCInZGlnbml0ZS1mb3JtLXNlbGVjdC1kcm9wZG93bidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG56LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsaXN0T2ZPcHRpb25cIiBbbnpMYWJlbF09XCJpdGVtLnNsdWdcIiBbbnpWYWx1ZV09XCJpdGVtLmlkXCI+PC9uei1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uei1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZVRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuei1zZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCBkaWduaXRlLWZvcm0tc2VsZWN0IGZvcm0tc2VsZWN0LW11bHRpcGxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW256UGxhY2VIb2xkZXJdPVwiX2ZpZWxkcy5maWVsZC5mb3JtQ29uZmlndXJhdGlvblsnRW50cnkuUGxhY2Vob2xkZXInXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0VmFsdWVcIiBuekFsbG93Q2xlYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VsZWN0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbnpEcm9wZG93bk1hdGNoU2VsZWN0V2lkdGhdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuekRyb3Bkb3duQ2xhc3NOYW1lXT1cIidkaWduaXRlLWZvcm0tc2VsZWN0LWRyb3Bkb3duJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bnotb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxpc3RPZk9wdGlvblwiIFtuekxhYmVsXT1cIml0ZW0uc2x1Z1wiIFtuelZhbHVlXT1cIml0ZW0uaWRcIj48L256LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L256LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1tdXRlZCBkLWJsb2NrXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiX2ZpZWxkcy5maWVsZC5kZXNjcmlwdGlvblwiPnt7X2ZpZWxkcy5maWVsZC5kZXNjcmlwdGlvbn19PC9zbWFsbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiICNzdWJtaXRjbGljaz48L2J1dHRvbj5cclxuPC9mb3JtPiJdfQ==
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9lbnRyeS9lbnRyeS1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2VudHJ5L2VudHJ5LWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxXQUFXLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7O0FBQ2xFLG9FQUFvRTtBQUNwRSwwRUFBMEU7QUFPMUUsTUFBTSxPQUFPLHFCQUFxQjtJQUxsQztRQU1VLE9BQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekIsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0MseUJBQW9CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDbkQseUJBQW9CLEdBQUcsTUFB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c0JBRGhCLEtBQUs7Z0JBVUssTUFBTTtzQkFEaEIsS0FBSztnQkFRSyxlQUFlO3NCQUR6QixLQUFLO2dCQU9LLFFBQVE7c0JBRGxCLEtBQUs7Z0JBT0ssT0FBTztzQkFEakIsS0FBSztnQkFPc0MsV0FBVztzQkFBdEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAqL1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVudHJ5QWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvZGlnbml0ZS9jbXMvYWRtaW4vZW50cmllcy9lbnRyeS1hZG1pbi5zZXJ2aWNlJztcbmltcG9ydCB7IEVudHJ5U3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvZGlnbml0ZS9jbXMvZW50cmllcyc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFNlY3Rpb25BZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9kaWduaXRlL2Ntcy9hZG1pbi9zZWN0aW9ucyc7XG5pbXBvcnQgeyBTZWN0aW9uVHlwZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2RpZ25pdGUvY21zL3NlY3Rpb25zJztcbi8vIGltcG9ydCB7IEVudHJ5QWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvYWRtaW4vZW50cmllcyc7XG4vLyBpbXBvcnQgeyBFbnRyeVN0YXR1cyB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2VudHJpZXMvZW50cnktc3RhdHVzLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbXMtZW50cnktY29udHJvbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbnRyeS1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZW50cnktY29udHJvbC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBFbnRyeUNvbnRyb2xDb21wb25lbnQge1xuICBwcml2YXRlIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcbiAgcHJpdmF0ZSBfRW50cnlBZG1pblNlcnZpY2UgPSBpbmplY3QoRW50cnlBZG1pblNlcnZpY2UpO1xuICBwcml2YXRlIF9TZWN0aW9uQWRtaW5TZXJ2aWNlID0gaW5qZWN0KFNlY3Rpb25BZG1pblNlcnZpY2UpO1xuICBwcml2YXRlIF9Mb2NhbGl6YXRpb25TZXJ2aWNlID0gaW5qZWN0KExvY2FsaXphdGlvblNlcnZpY2UpO1xuXG4gIFNlY3Rpb25UeXBlID0gU2VjdGlvblR5cGU7XG5cbiAgLyoq6KGo5Y2V5a6e5L2TICovXG4gIF9lbnRpdHk6IEZvcm1Hcm91cCB8IGFueTtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBlbnRpdHkodjogYW55KSB7XG4gICAgdGhpcy5fZW50aXR5ID0gdjtcblxuICAgIGlmICh2KSB0aGlzLmRhdGFMb2FkZWQoKTtcbiAgfVxuXG4gIC8qKuWtl+autemFjee9ruWIl+ihqCAqL1xuICBfZmllbGRzOiBhbnkgPSAnJztcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBmaWVsZHModjogYW55KSB7XG4gICAgdGhpcy5fZmllbGRzID0gdjtcbiAgfVxuXG4gIC8qKueItue6p+Wtl+auteWQjeensO+8jOeUqOS6juS4uuihqOWNleiuvue9ruaOp+S7tui1i+WAvCAqL1xuICBfcGFyZW50RmlsZWROYW1lOiBhbnk7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGFyZW50RmlsZWROYW1lKHY6IGFueSkge1xuICAgIHRoaXMuX3BhcmVudEZpbGVkTmFtZSA9IHY7XG4gIH1cbiAgLyoq54i257qn5a2X5q615ZCN56ew77yM55So5LqO5Li66KGo5Y2V6K6+572u5o6n5Lu26LWL5YC8ICovXG4gIF9zZWxlY3RlZDogYW55O1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkKHY6IGFueVtdKSB7XG4gICAgdGhpcy5fc2VsZWN0ZWQgPSB2IHx8IFtdO1xuICB9XG4gIC8qKuivreiogCAqL1xuICBfY3VsdHVyZTogYW55O1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGN1bHR1cmUodjogYW55KSB7XG4gICAgaWYgKHYpIHtcbiAgICAgIHRoaXMuX2N1bHR1cmUgPSB2O1xuICAgICAgLy8gdGhpcy5kYXRhTG9hZGVkKClcbiAgICB9XG4gIH1cbiAgQFZpZXdDaGlsZCgnc3VibWl0Y2xpY2snLCB7IHN0YXRpYzogdHJ1ZSB9KSBzdWJtaXRjbGljazogRWxlbWVudFJlZjtcblxuICBleHRyYVByb3BlcnRpZXM6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcblxuICAvKirmnb/lnZfkv6Hmga8gKi9cbiAgc2VjdGlvbkluZm86YW55PW51bGw7XG5cbiAgLyoqICovXG4gIGxpc3RPZk9wdGlvbjogYW55W10gPSBbXTtcbiAgXG4gIC8qKuagkeW9ouiKgueCuSAqL1xuICB0cmVlTm9kZXM6IGFueVtdID0gW107XG4gIHRyZWVTZWxlY3RWYWx1ZTogYW55O1xuICBzZWxlY3RWYWx1ZTogYW55O1xuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIGFzeW5jIGRhdGFMb2FkZWQoKSB7XG4gICAgaWYgKHRoaXMuX2ZpZWxkcyAmJiB0aGlzLl9lbnRpdHkgJiYgdGhpcy5fcGFyZW50RmlsZWROYW1lICYmIHRoaXMuX2N1bHR1cmUpIHtcbiAgICAgIGF3YWl0IHRoaXMuQWZ0ZXJJbml0KCk7XG4gICAgICBhd2FpdCB0aGlzLmdldFNlY3Rpb25CeUlkKCk7XG4gICAgICBhd2FpdCB0aGlzLmdldEVudHJ5QXNzaWduTGlzdCgpO1xuICAgICAgaWYgKHRoaXMuaXNTdHJ1Y3R1cmVUeXBlKCkpIHtcbiAgICAgICAgdGhpcy50cmVlU2VsZWN0VmFsdWUgPSB0aGlzLl9maWVsZHMuZmllbGQuZm9ybUNvbmZpZ3VyYXRpb25bJ0VudHJ5Lk11bHRpcGxlJ10gPyB0aGlzLl9zZWxlY3RlZCA6IHRoaXMuX3NlbGVjdGVkPy5bMF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdFZhbHVlID0gdGhpcy5fZmllbGRzLmZpZWxkLmZvcm1Db25maWd1cmF0aW9uWydFbnRyeS5NdWx0aXBsZSddID8gdGhpcy5fc2VsZWN0ZWQgOiB0aGlzLl9zZWxlY3RlZD8uWzBdO1xuICAgICAgfVxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgdGhpcy5zdWJtaXRjbGljaz8ubmF0aXZlRWxlbWVudD8uY2xpY2soKTtcbiAgICB9XG4gIH1cblxuXG5cbiAgQWZ0ZXJJbml0KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgY29uc3QgVmFsaWRhdG9yc0FycmF5OmFueVtdID0gW107XG4gICAgICBpZiAodGhpcy5fZmllbGRzLnJlcXVpcmVkKSB7XG4gICAgICAgIFZhbGlkYXRvcnNBcnJheS5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgfVxuICAgICAgY29uc3QgaXNNdWx0aXBsZT10aGlzLl9maWVsZHMuZmllbGQuZm9ybUNvbmZpZ3VyYXRpb25bJ0VudHJ5Lk11bHRpcGxlJ11cbiAgICAgIC8vIGxldCBzZWxlY3RWYWx1ZT1pc011bHRpcGxlP3RoaXMuX3NlbGVjdGVkOnRoaXMuX3NlbGVjdGVkO1xuICAgICAgLy8gaWYoIXRoaXMuX2ZpZWxkcy5maWVsZC5mb3JtQ29uZmlndXJhdGlvblsnRW50cnkuTXVsdGlwbGUnXSl7XG4gICAgICAvLyAgIHRoaXMubGlzdE9mU2VsZWN0ZWRWYWx1ZSA9IHRoaXMuX3NlbGVjdGVkWzBdO1xuICAgICAgLy8gfVxuICAgICAgLy8gdGhpcy5fc2VsZWN0ZWQ9c2VsZWN0VmFsdWU7XG4gICAgICBjb25zdCBuZXdDb250cm9sID0gdGhpcy5mYi5jb250cm9sKHRoaXMuX3NlbGVjdGVkLCBWYWxpZGF0b3JzQXJyYXkpO1xuICAgICAgLy8gbmV3Q29udHJvbC5hZGRWYWxpZGF0b3JzKHRoaXMuYXJycGFuZHVhbigpKVxuICAgICAgY29uc3QgZXh0cmFQcm9wZXJ0aWVzOmFueSA9IHRoaXMuX2VudGl0eS5nZXQodGhpcy5fcGFyZW50RmlsZWROYW1lKSBhcyBGb3JtR3JvdXA7XG4gICAgICBleHRyYVByb3BlcnRpZXMuc2V0Q29udHJvbCh0aGlzLl9maWVsZHMuZmllbGQubmFtZSwgbmV3Q29udHJvbCk7XG4gICAgICByZXNvbHZlKHRydWUpO1xuICAgIH0pO1xuICB9XG5cblxuICBnZXQgc2VsZWN0SW5wdXQoKXtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5Py5nZXQodGhpcy5fcGFyZW50RmlsZWROYW1lKT8uZ2V0KHRoaXMuX2ZpZWxkcy5maWVsZC5uYW1lKSBhcyBGb3JtQ29udHJvbDtcbiAgfVxuICBvblNlbGVjdENoYW5nZSh2YWx1ZTogYW55KSB7XG4gICAgY29uc3QgYXJyYXlWYWx1ZSA9IHRoaXMuX2ZpZWxkcy5maWVsZC5mb3JtQ29uZmlndXJhdGlvblsnRW50cnkuTXVsdGlwbGUnXSA/IHZhbHVlIDogKHZhbHVlID8gW3ZhbHVlXSA6IFtdKTtcbiAgICB0aGlzLnNlbGVjdElucHV0Py5zZXRWYWx1ZShhcnJheVZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gIH1cbiAgLyoq6I635Y+W5a+55bqU55qE5p2h55uuICovXG4gIGdldEVudHJ5QXNzaWduTGlzdChmaWx0ZXIgPSAnJykge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgdGhpcy5fRW50cnlBZG1pblNlcnZpY2VcbiAgICAgICAgLmdldExpc3Qoe1xuICAgICAgICAgIGN1bHR1cmU6IHRoaXMuX2N1bHR1cmUsXG4gICAgICAgICAgc2VjdGlvbklkOiB0aGlzLl9maWVsZHMuZmllbGQuZm9ybUNvbmZpZ3VyYXRpb25bJ0VudHJ5LlNlY3Rpb25JZCddLFxuICAgICAgICAgIHNraXBDb3VudDogMCxcbiAgICAgICAgICBtYXhSZXN1bHRDb3VudDogMTAwMCxcbiAgICAgICAgICBzdGF0dXM6IEVudHJ5U3RhdHVzLlB1Ymxpc2hlZCxcbiAgICAgICAgICAvLyBmaWx0ZXI6IGZpbHRlcixcbiAgICAgICAgfSlcbiAgICAgICAgLnN1YnNjcmliZSgocmVzOmFueSkgPT4ge1xuICAgICAgICAgIHRoaXMubGlzdE9mT3B0aW9uID0gcmVzLml0ZW1zO1xuICAgICAgICAgIGlmICh0aGlzLmlzU3RydWN0dXJlVHlwZSgpKSB7XG4gICAgICAgICAgICB0aGlzLnRyZWVOb2RlcyA9IHRoaXMuY29udmVydFRvVHJlZU5vZGVzKHJlcy5pdGVtcyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIFxuICAvKirliKTmlq3mmK/lkKbkuLrnu5PmnoTnsbvlnosgKi9cbiAgaXNTdHJ1Y3R1cmVUeXBlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlY3Rpb25JbmZvPy50eXBlID09PSAxIHx8IHRoaXMuc2VjdGlvbkluZm8/LnR5cGUgPT09IFNlY3Rpb25UeXBlLlN0cnVjdHVyZTtcbiAgfVxuICBcbiAgLyoq6L2s5o2i5Li65qCR5b2i6IqC54K5ICovXG4gIHByaXZhdGUgY29udmVydFRvVHJlZU5vZGVzKGl0ZW1zOiBhbnlbXSk6IGFueVtdIHtcbiAgICBjb25zdCBtYXAgPSBuZXcgTWFwKCk7XG4gICAgY29uc3Qgcm9vdHM6IGFueVtdID0gW107XG4gICAgXG4gICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIG1hcC5zZXQoaXRlbS5pZCwgeyB0aXRsZTogaXRlbS5zbHVnLCBrZXk6IGl0ZW0uaWQsIGlzTGVhZjogdHJ1ZSwgY2hpbGRyZW46IFtdLCBvcmRlcjogaXRlbS5vcmRlciB8fCAwIH0pO1xuICAgIH0pO1xuICAgIFxuICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBjb25zdCBub2RlID0gbWFwLmdldChpdGVtLmlkKTtcbiAgICAgIGlmIChpdGVtLnBhcmVudElkKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IG1hcC5nZXQoaXRlbS5wYXJlbnRJZCk7XG4gICAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgICBwYXJlbnQuY2hpbGRyZW4ucHVzaChub2RlKTtcbiAgICAgICAgICBwYXJlbnQuaXNMZWFmID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcm9vdHMucHVzaChub2RlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcm9vdHMucHVzaChub2RlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBcbiAgICBjb25zdCBzb3J0Tm9kZXMgPSAobm9kZXM6IGFueVtdKSA9PiB7XG4gICAgICBub2Rlcy5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gICAgICBub2Rlcy5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICBpZiAobm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgc29ydE5vZGVzKG5vZGUuY2hpbGRyZW4pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuICAgIFxuICAgIHNvcnROb2Rlcyhyb290cyk7XG4gICAgcmV0dXJuIHJvb3RzO1xuICB9XG5cbiAgb25UcmVlU2VsZWN0Q2hhbmdlKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBhcnJheVZhbHVlID0gdGhpcy5fZmllbGRzLmZpZWxkLmZvcm1Db25maWd1cmF0aW9uWydFbnRyeS5NdWx0aXBsZSddID8gdmFsdWUgOiAodmFsdWUgPyBbdmFsdWVdIDogW10pO1xuICAgIHRoaXMuc2VsZWN0SW5wdXQ/LnNldFZhbHVlKGFycmF5VmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgfVxuXG4gIC8qKiAqL1xuICBhc3luYyBTZWxlY3RDaGFuZ2UoZXZlbnQpIHtcbiAgICBhd2FpdCB0aGlzLmdldEVudHJ5QXNzaWduTGlzdChldmVudCk7XG4gIH1cbiAgLyoq6I635Y+W5a+55bqU55qE5p2/5Z2XICovXG4gIGdldFNlY3Rpb25CeUlkKCl7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICB0aGlzLl9TZWN0aW9uQWRtaW5TZXJ2aWNlLmdldCh0aGlzLl9maWVsZHMuZmllbGQuZm9ybUNvbmZpZ3VyYXRpb25bJ0VudHJ5LlNlY3Rpb25JZCddKS5zdWJzY3JpYmUoKHJlczphbnkpID0+IHtcbiAgICAgICAgdGhpcy5zZWN0aW9uSW5mbyA9IHJlcztcbiAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgIH0pXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiX2VudGl0eVwiPlxyXG4gICAgPGRpdiBbZm9ybUdyb3VwTmFtZV09XCJfcGFyZW50RmlsZWROYW1lXCIgY2xhc3M9XCJlbnRyeS1jb250cm9sLXBhZ2VcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgKm5nSWY9XCJfZmllbGRzLmRpc3BsYXlOYW1lXCI+e3sgX2ZpZWxkcy5kaXNwbGF5TmFtZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1N0cnVjdHVyZVR5cGUoKTsgZWxzZSBub3JtYWxTZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgIDxuei10cmVlLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1zZWxlY3QgZGlnbml0ZS1mb3JtLXRyZWUtc2VsZWN0XCJcclxuICAgICAgICAgICAgICAgICAgICBbbnpNYXhUYWdDb3VudF09XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICBbbnpQbGFjZUhvbGRlcl09XCJfZmllbGRzLmZpZWxkLmZvcm1Db25maWd1cmF0aW9uWydFbnRyeS5QbGFjZWhvbGRlciddXCJcclxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRyZWVTZWxlY3RWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW256Tm9kZXNdPVwidHJlZU5vZGVzXCJcclxuICAgICAgICAgICAgICAgICAgICBbbnpNdWx0aXBsZV09XCJfZmllbGRzLmZpZWxkLmZvcm1Db25maWd1cmF0aW9uWydFbnRyeS5NdWx0aXBsZSddIHx8IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBbbnpTaG93U2VhcmNoXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuekRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbbnpEcm9wZG93bkNsYXNzTmFtZV09XCInZGlnbml0ZS1mb3JtLXRyZWUtc2VsZWN0LWRyb3Bkb3duJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWxlY3RDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbnpEZWZhdWx0RXhwYW5kQWxsPlxyXG4gICAgICAgICAgICAgICAgPC9uei10cmVlLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vcm1hbFNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfZmllbGRzLmZpZWxkLmZvcm1Db25maWd1cmF0aW9uWydFbnRyeS5NdWx0aXBsZSddOyBlbHNlIGVsc2VUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuei1zZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCBkaWduaXRlLWZvcm0tc2VsZWN0IGZvcm0tc2VsZWN0LW11bHRpcGxlXCIgW256TWF4VGFnQ291bnRdPVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBuek1vZGU9XCJtdWx0aXBsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuelBsYWNlSG9sZGVyXT1cIl9maWVsZHMuZmllbGQuZm9ybUNvbmZpZ3VyYXRpb25bJ0VudHJ5LlBsYWNlaG9sZGVyJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdFZhbHVlXCIgbnpBbGxvd0NsZWFyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblNlbGVjdENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW256RHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbnpEcm9wZG93bkNsYXNzTmFtZV09XCInZGlnbml0ZS1mb3JtLXNlbGVjdC1kcm9wZG93bidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG56LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsaXN0T2ZPcHRpb25cIiBbbnpMYWJlbF09XCJpdGVtLnNsdWdcIiBbbnpWYWx1ZV09XCJpdGVtLmlkXCI+PC9uei1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uei1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZVRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuei1zZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCBkaWduaXRlLWZvcm0tc2VsZWN0IGZvcm0tc2VsZWN0LW11bHRpcGxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW256UGxhY2VIb2xkZXJdPVwiX2ZpZWxkcy5maWVsZC5mb3JtQ29uZmlndXJhdGlvblsnRW50cnkuUGxhY2Vob2xkZXInXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0VmFsdWVcIiBuekFsbG93Q2xlYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VsZWN0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbnpEcm9wZG93bk1hdGNoU2VsZWN0V2lkdGhdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuekRyb3Bkb3duQ2xhc3NOYW1lXT1cIidkaWduaXRlLWZvcm0tc2VsZWN0LWRyb3Bkb3duJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bnotb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxpc3RPZk9wdGlvblwiIFtuekxhYmVsXT1cIml0ZW0uc2x1Z1wiIFtuelZhbHVlXT1cIml0ZW0uaWRcIj48L256LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L256LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1tdXRlZCBkLWJsb2NrXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiX2ZpZWxkcy5maWVsZC5kZXNjcmlwdGlvblwiPnt7X2ZpZWxkcy5maWVsZC5kZXNjcmlwdGlvbn19PC9zbWFsbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiICNzdWJtaXRjbGljaz48L2J1dHRvbj5cclxuPC9mb3JtPiJdfQ==
|
|
@@ -941,12 +941,6 @@ class EntriesComponent {
|
|
|
941
941
|
}
|
|
942
942
|
// 在原始平铺数据中查找目标节点
|
|
943
943
|
const targetItem = this.findItemById(this.copylistItem, this.dropTargetId);
|
|
944
|
-
// 验证目标节点存在且不是自己或子节点
|
|
945
|
-
if (!targetItem || this.isDescendantOrSelf(draggedItem.id, targetItem.id)) {
|
|
946
|
-
this.toaster.warn(this._LocalizationService.instant('Cms::CannotDragToSelfOrDescendant'));
|
|
947
|
-
this.clearDropState();
|
|
948
|
-
return;
|
|
949
|
-
}
|
|
950
944
|
console.log('拖拽节点:', draggedItem);
|
|
951
945
|
/*
|
|
952
946
|
拖拽位置:above-上方, below-下方, inside-内部
|
|
@@ -954,6 +948,12 @@ class EntriesComponent {
|
|
|
954
948
|
*/
|
|
955
949
|
console.log('目标节点:', targetItem);
|
|
956
950
|
console.log('位置:', this.dropPosition);
|
|
951
|
+
// 验证目标节点存在且不是自己或子节点
|
|
952
|
+
if (!targetItem || this.isDescendantOrSelf(draggedItem.id, targetItem.id)) {
|
|
953
|
+
this.toaster.warn(this._LocalizationService.instant('Cms::CannotDragToSelfOrDescendant'));
|
|
954
|
+
this.clearDropState();
|
|
955
|
+
return;
|
|
956
|
+
}
|
|
957
957
|
// 构建移动参数
|
|
958
958
|
const moveParams = {};
|
|
959
959
|
// 如果是放置到内部,设置parentId为目标节点ID
|
|
@@ -1577,7 +1577,7 @@ class CreateComponent {
|
|
|
1577
1577
|
input.publishTime = new Date(new Date(input.publishTime).getTime() + 8 * 60 * 60 * 1000).toISOString();
|
|
1578
1578
|
this.formEntity.markAllAsTouched();
|
|
1579
1579
|
this.formValidation = true;
|
|
1580
|
-
|
|
1580
|
+
console.log(input, '提交', this.formEntity);
|
|
1581
1581
|
if (!this.formEntity.valid) {
|
|
1582
1582
|
for (const item of this.showEntryTypeInfo.fieldTabs) {
|
|
1583
1583
|
for (const el of item.fields) {
|
|
@@ -2189,7 +2189,7 @@ class CreateOrEditFieldComponent {
|
|
|
2189
2189
|
this.fromControlList = [];
|
|
2190
2190
|
}
|
|
2191
2191
|
set selected(v) {
|
|
2192
|
-
this._selected = v;
|
|
2192
|
+
this._selected = JSON.parse(JSON.stringify(v));
|
|
2193
2193
|
}
|
|
2194
2194
|
set form(v) {
|
|
2195
2195
|
this.formEntity = v;
|
|
@@ -2203,6 +2203,7 @@ class CreateOrEditFieldComponent {
|
|
|
2203
2203
|
if (!this.formControlNameInput.value && this.fromControlList.length > 0) {
|
|
2204
2204
|
this.formControlNameInput.patchValue(this.fromControlList[0].name);
|
|
2205
2205
|
}
|
|
2206
|
+
console.log(this._selected, '_selected');
|
|
2206
2207
|
this.submitclick.nativeElement.click();
|
|
2207
2208
|
}
|
|
2208
2209
|
get nameInput() {
|
|
@@ -2211,6 +2212,9 @@ class CreateOrEditFieldComponent {
|
|
|
2211
2212
|
get formControlNameInput() {
|
|
2212
2213
|
return this.formEntity?.get('formControlName');
|
|
2213
2214
|
}
|
|
2215
|
+
get formConfigurationInput() {
|
|
2216
|
+
return this.formEntity?.get('formConfiguration');
|
|
2217
|
+
}
|
|
2214
2218
|
/**字段标签input失去标点生成字段名字 */
|
|
2215
2219
|
disPlayNameInputBlur(event) {
|
|
2216
2220
|
const value = event.target.value;
|
|
@@ -2241,12 +2245,27 @@ class CreateOrEditFieldComponent {
|
|
|
2241
2245
|
});
|
|
2242
2246
|
};
|
|
2243
2247
|
}
|
|
2248
|
+
/** */
|
|
2249
|
+
changeFormControlName(e) {
|
|
2250
|
+
console.log(this._selected, '_selected');
|
|
2251
|
+
// for (const element in this.formConfigurationInput.controls) {
|
|
2252
|
+
// const control = this.formConfigurationInput.controls[element];
|
|
2253
|
+
// const value = control.value;
|
|
2254
|
+
// if (Array.isArray(value)) {
|
|
2255
|
+
// control.patchValue([]);
|
|
2256
|
+
// } else if (typeof value === 'boolean') {
|
|
2257
|
+
// control.patchValue(false);
|
|
2258
|
+
// } else {
|
|
2259
|
+
// control.patchValue('');
|
|
2260
|
+
// }
|
|
2261
|
+
// }
|
|
2262
|
+
}
|
|
2244
2263
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CreateOrEditFieldComponent, deps: [{ token: i4.ToPinyinService }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2245
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.5", type: CreateOrEditFieldComponent, selector: "cms-create-or-edit-field", inputs: { selected: "selected", service: "service", form: "form" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"formEntity\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"groupId\">{{'Cms::FieldGroup' | abpLocalization}}</label>\r\n <select class=\"form-select\" formControlName=\"groupId\">\r\n <option value=\"\">{{'Cms::OptionalGrouping' | abpLocalization}}</option>\r\n <ng-container *ngFor=\"let item of getfieldGroupsList\">\r\n <option [value]=\"item.id\">{{item.name}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"displayName\">*{{'AbpDynamicForm::FieldDisplayName' |\r\n abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" required\r\n (blur)=\"disPlayNameInputBlur($event)\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"name\">*{{'AbpDynamicForm::FieldName' | abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" required>\r\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\r\n {{nameInput.errors?.repetition}}\r\n </div>\r\n <small class=\"form-text text-muted d-block \">{{'AbpDynamicForm::FieldNameHelpText' |\r\n abpLocalization}}</small>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"formControlName\">*{{'Cms::FieldType' | abpLocalization}}</label>\r\n <select class=\"form-select\" formControlName=\"formControlName\">\r\n <ng-container *ngFor=\"let item of fromControlList;let i =index\">\r\n <option [value]=\"item.name\">{{item.displayName|abpLocalization}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n @if(formControlNameInput.value&&formEntity){\r\n <df-dynamic-config [formGroup]=\"formEntity\" [selected]=\"_selected\" [type]=\"formControlNameInput.value\"\r\n [form]=\"formEntity\"></df-dynamic-config>\r\n }\r\n <button form-type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n </form>\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.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$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6$1.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i6$1.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i6$2.DynamicConfigComponent, selector: "df-dynamic-config", inputs: ["type", "selected", "form"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
2264
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.5", type: CreateOrEditFieldComponent, selector: "cms-create-or-edit-field", inputs: { selected: "selected", service: "service", form: "form" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"formEntity\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"groupId\">{{'Cms::FieldGroup' | abpLocalization}}</label>\r\n <select class=\"form-select\" formControlName=\"groupId\">\r\n <option value=\"\">{{'Cms::OptionalGrouping' | abpLocalization}}</option>\r\n <ng-container *ngFor=\"let item of getfieldGroupsList\">\r\n <option [value]=\"item.id\">{{item.name}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"displayName\">*{{'AbpDynamicForm::FieldDisplayName' |\r\n abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" required\r\n (blur)=\"disPlayNameInputBlur($event)\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"name\">*{{'AbpDynamicForm::FieldName' | abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" required>\r\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\r\n {{nameInput.errors?.repetition}}\r\n </div>\r\n <small class=\"form-text text-muted d-block \">{{'AbpDynamicForm::FieldNameHelpText' |\r\n abpLocalization}}</small>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"formControlName\">*{{'Cms::FieldType' | abpLocalization}}</label>\r\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"changeFormControlName($event)\">\r\n <ng-container *ngFor=\"let item of fromControlList;let i =index\">\r\n <option [value]=\"item.name\">{{item.displayName|abpLocalization}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n @if(formControlNameInput.value&&formEntity){\r\n <df-dynamic-config [formGroup]=\"formEntity\" [selected]=\"_selected\" [type]=\"formControlNameInput.value\"\r\n [form]=\"formEntity\"></df-dynamic-config>\r\n }\r\n <button form-type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n </form>\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.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$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6$1.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i6$1.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i6$2.DynamicConfigComponent, selector: "df-dynamic-config", inputs: ["type", "selected", "form"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
2246
2265
|
}
|
|
2247
2266
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CreateOrEditFieldComponent, decorators: [{
|
|
2248
2267
|
type: Component,
|
|
2249
|
-
args: [{ selector: 'cms-create-or-edit-field', template: "<div class=\"card\">\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"formEntity\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"groupId\">{{'Cms::FieldGroup' | abpLocalization}}</label>\r\n <select class=\"form-select\" formControlName=\"groupId\">\r\n <option value=\"\">{{'Cms::OptionalGrouping' | abpLocalization}}</option>\r\n <ng-container *ngFor=\"let item of getfieldGroupsList\">\r\n <option [value]=\"item.id\">{{item.name}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"displayName\">*{{'AbpDynamicForm::FieldDisplayName' |\r\n abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" required\r\n (blur)=\"disPlayNameInputBlur($event)\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"name\">*{{'AbpDynamicForm::FieldName' | abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" required>\r\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\r\n {{nameInput.errors?.repetition}}\r\n </div>\r\n <small class=\"form-text text-muted d-block \">{{'AbpDynamicForm::FieldNameHelpText' |\r\n abpLocalization}}</small>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"formControlName\">*{{'Cms::FieldType' | abpLocalization}}</label>\r\n <select class=\"form-select\" formControlName=\"formControlName\">\r\n <ng-container *ngFor=\"let item of fromControlList;let i =index\">\r\n <option [value]=\"item.name\">{{item.displayName|abpLocalization}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n @if(formControlNameInput.value&&formEntity){\r\n <df-dynamic-config [formGroup]=\"formEntity\" [selected]=\"_selected\" [type]=\"formControlNameInput.value\"\r\n [form]=\"formEntity\"></df-dynamic-config>\r\n }\r\n <button form-type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n </form>\r\n </div>\r\n</div>" }]
|
|
2268
|
+
args: [{ selector: 'cms-create-or-edit-field', template: "<div class=\"card\">\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"formEntity\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"groupId\">{{'Cms::FieldGroup' | abpLocalization}}</label>\r\n <select class=\"form-select\" formControlName=\"groupId\">\r\n <option value=\"\">{{'Cms::OptionalGrouping' | abpLocalization}}</option>\r\n <ng-container *ngFor=\"let item of getfieldGroupsList\">\r\n <option [value]=\"item.id\">{{item.name}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"displayName\">*{{'AbpDynamicForm::FieldDisplayName' |\r\n abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" required\r\n (blur)=\"disPlayNameInputBlur($event)\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"name\">*{{'AbpDynamicForm::FieldName' | abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" required>\r\n <div class=\"text-danger invalid-feedback\" *ngIf=\"nameInput.errors?.repetition\">\r\n {{nameInput.errors?.repetition}}\r\n </div>\r\n <small class=\"form-text text-muted d-block \">{{'AbpDynamicForm::FieldNameHelpText' |\r\n abpLocalization}}</small>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"description\">{{'Cms::Description' | abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"description\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"formControlName\">*{{'Cms::FieldType' | abpLocalization}}</label>\r\n <select class=\"form-select\" formControlName=\"formControlName\" (change)=\"changeFormControlName($event)\">\r\n <ng-container *ngFor=\"let item of fromControlList;let i =index\">\r\n <option [value]=\"item.name\">{{item.displayName|abpLocalization}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n @if(formControlNameInput.value&&formEntity){\r\n <df-dynamic-config [formGroup]=\"formEntity\" [selected]=\"_selected\" [type]=\"formControlNameInput.value\"\r\n [form]=\"formEntity\"></df-dynamic-config>\r\n }\r\n <button form-type=\"submit\" style=\"display: none;\" #submitclick></button>\r\n </form>\r\n </div>\r\n</div>" }]
|
|
2250
2269
|
}], ctorParameters: () => [{ type: i4.ToPinyinService }, { type: i1.LocalizationService }], propDecorators: { selected: [{
|
|
2251
2270
|
type: Input
|
|
2252
2271
|
}], service: [{
|
|
@@ -2450,7 +2469,6 @@ class EditFieldComponent {
|
|
|
2450
2469
|
return;
|
|
2451
2470
|
}
|
|
2452
2471
|
console.log(this.formEntity.value, '提交表单', this.formEntity);
|
|
2453
|
-
// return
|
|
2454
2472
|
if (this.isSubmitted)
|
|
2455
2473
|
return;
|
|
2456
2474
|
this.isSubmitted = true;
|
|
@@ -3586,7 +3604,7 @@ class EntryControlComponent {
|
|
|
3586
3604
|
const map = new Map();
|
|
3587
3605
|
const roots = [];
|
|
3588
3606
|
items.forEach(item => {
|
|
3589
|
-
map.set(item.id, { title: item.slug, key: item.id, isLeaf: true, children: [] });
|
|
3607
|
+
map.set(item.id, { title: item.slug, key: item.id, isLeaf: true, children: [], order: item.order || 0 });
|
|
3590
3608
|
});
|
|
3591
3609
|
items.forEach(item => {
|
|
3592
3610
|
const node = map.get(item.id);
|
|
@@ -3604,6 +3622,15 @@ class EntryControlComponent {
|
|
|
3604
3622
|
roots.push(node);
|
|
3605
3623
|
}
|
|
3606
3624
|
});
|
|
3625
|
+
const sortNodes = (nodes) => {
|
|
3626
|
+
nodes.sort((a, b) => a.order - b.order);
|
|
3627
|
+
nodes.forEach(node => {
|
|
3628
|
+
if (node.children.length > 0) {
|
|
3629
|
+
sortNodes(node.children);
|
|
3630
|
+
}
|
|
3631
|
+
});
|
|
3632
|
+
};
|
|
3633
|
+
sortNodes(roots);
|
|
3607
3634
|
return roots;
|
|
3608
3635
|
}
|
|
3609
3636
|
onTreeSelectChange(value) {
|