@acorex/platform 18.1.2 → 18.1.3
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/layout/builder/lib/builder/widget-catalog.mjs +2 -1
- package/esm2022/layout/builder/lib/builder/widget.types.mjs +5 -2
- package/esm2022/layout/designer/lib/designer/index.mjs +5 -4
- package/esm2022/layout/entity/lib/entity.module.mjs +4 -3
- package/esm2022/layout/entity/lib/widgets/widget-selector/index.mjs +4 -0
- package/esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget-edit.component.mjs +130 -0
- package/esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget-view.component.mjs +18 -0
- package/esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget.config.mjs +19 -0
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +2 -2
- package/esm2022/themes/default/lib/layouts/entity-layouts/index.mjs +1 -2
- package/esm2022/themes/shared/acorex-platform-themes-shared.mjs +5 -0
- package/esm2022/themes/shared/index.mjs +6 -0
- package/esm2022/themes/shared/lib/comments/comment-list-view.component.mjs +397 -0
- package/esm2022/themes/{default/lib/layouts/entity-layouts/entity-master-single-view → shared/lib}/comments/comment-lookup-popup.component.mjs +1 -1
- package/esm2022/themes/shared/lib/comments/comments.service.mjs +3 -0
- package/esm2022/themes/shared/lib/comments/comments.type.mjs +2 -0
- package/esm2022/themes/shared/lib/shared.module.mjs +16 -0
- package/esm2022/widgets/lib/widgets/editors/contact/contact-widget-edit.component.mjs +24 -8
- package/fesm2022/acorex-platform-layout-builder.mjs +5 -1
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +190 -100
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +157 -5
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-LyEomIA6.mjs → acorex-platform-themes-default-entity-master-create-view.component-Q8eTfAVx.mjs} +3 -3
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-LyEomIA6.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-Q8eTfAVx.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-CKRwvJTp.mjs → acorex-platform-themes-default-entity-master-list-view.component-fZ6QEYcd.mjs} +8 -8
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-CKRwvJTp.mjs.map → acorex-platform-themes-default-entity-master-list-view.component-fZ6QEYcd.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-CMRfspMB.mjs → acorex-platform-themes-default-entity-master-modify-view.component-BijYXMme.mjs} +3 -3
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-CMRfspMB.mjs.map → acorex-platform-themes-default-entity-master-modify-view.component-BijYXMme.mjs.map} +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Bnrabotu.mjs +145 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Bnrabotu.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +11 -14
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-shared.mjs +469 -0
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets.mjs +23 -7
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/layout/builder/lib/builder/widget.types.d.ts +1 -0
- package/layout/designer/lib/designer/index.d.ts +4 -3
- package/layout/entity/lib/widgets/widget-selector/index.d.ts +3 -0
- package/layout/entity/lib/widgets/widget-selector/widget-selector-widget-edit.component.d.ts +25 -0
- package/layout/entity/lib/widgets/widget-selector/widget-selector-widget-view.component.d.ts +6 -0
- package/layout/entity/lib/widgets/widget-selector/widget-selector-widget.config.d.ts +7 -0
- package/package.json +23 -17
- package/themes/default/lib/layouts/entity-layouts/index.d.ts +0 -1
- package/themes/shared/README.md +4 -0
- package/themes/shared/index.d.ts +5 -0
- package/themes/{default/lib/layouts/entity-layouts/entity-master-single-view → shared/lib}/comments/comment-list-view.component.d.ts +21 -16
- package/themes/shared/lib/shared.module.d.ts +6 -0
- package/widgets/lib/widgets/editors/contact/contact-widget-edit.component.d.ts +3 -1
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comment-list-view.component.mjs +0 -284
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comments.service.mjs +0 -3
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comments.type.mjs +0 -2
- package/fesm2022/acorex-platform-layout-designer-widget-picker.component-BZryrCyh.mjs +0 -100
- package/fesm2022/acorex-platform-layout-designer-widget-picker.component-BZryrCyh.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DhcKSyrX.mjs +0 -457
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DhcKSyrX.mjs.map +0 -1
- /package/themes/{default/lib/layouts/entity-layouts/entity-master-single-view → shared/lib}/comments/comment-lookup-popup.component.d.ts +0 -0
- /package/themes/{default/lib/layouts/entity-layouts/entity-master-single-view → shared/lib}/comments/comments.service.d.ts +0 -0
- /package/themes/{default/lib/layouts/entity-layouts/entity-master-single-view → shared/lib}/comments/comments.type.d.ts +0 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class AXPSharedModule {
|
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
5
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXPSharedModule }); }
|
|
6
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSharedModule }); }
|
|
7
|
+
}
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSharedModule, decorators: [{
|
|
9
|
+
type: NgModule,
|
|
10
|
+
args: [{
|
|
11
|
+
imports: [],
|
|
12
|
+
exports: [],
|
|
13
|
+
declarations: [],
|
|
14
|
+
}]
|
|
15
|
+
}] });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vdGhlbWVzL3NoYXJlZC9zcmMvbGliL3NoYXJlZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNekMsTUFBTSxPQUFPLGVBQWU7OEdBQWYsZUFBZTsrR0FBZixlQUFlOytHQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBTDNCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsWUFBWSxFQUFFLEVBQUU7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtdLFxuICBleHBvcnRzOiBbXSxcbiAgZGVjbGFyYXRpb25zOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQU2hhcmVkTW9kdWxlIHt9XG4iXX0=
|
|
@@ -9,7 +9,7 @@ import { AXTranslationModule } from '@acorex/core/translation';
|
|
|
9
9
|
import { AXValidationModule, AXValidationService } from '@acorex/core/validation';
|
|
10
10
|
import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
|
|
11
11
|
import { CommonModule } from '@angular/common';
|
|
12
|
-
import { ChangeDetectionStrategy, Component, HostBinding, computed, inject } from '@angular/core';
|
|
12
|
+
import { ChangeDetectionStrategy, Component, HostBinding, computed, inject, signal, } from '@angular/core';
|
|
13
13
|
import { FormsModule } from '@angular/forms';
|
|
14
14
|
import { popupComponent } from './popup-component';
|
|
15
15
|
import * as i0 from "@angular/core";
|
|
@@ -32,6 +32,7 @@ export class AXPContactWidgetEditComponent extends AXPWidgetComponent {
|
|
|
32
32
|
this.hasIcon = computed(() => this.options()['hasIcon']);
|
|
33
33
|
this.disabled = computed(() => this.options()['disabled']);
|
|
34
34
|
this.placeholder = computed(() => this.options()['placeholder'] ?? `Enter ${this.type()} ...`);
|
|
35
|
+
this.format = signal(undefined);
|
|
35
36
|
this.popup = inject(AXPopupService);
|
|
36
37
|
this.dataSource = new AXDataSource({
|
|
37
38
|
pageSize: this.labelList().length,
|
|
@@ -77,11 +78,11 @@ export class AXPContactWidgetEditComponent extends AXPWidgetComponent {
|
|
|
77
78
|
}
|
|
78
79
|
addItem() {
|
|
79
80
|
const newValues = [...this.internalValue(), this.emptyValue()];
|
|
80
|
-
this.setValue(newValues);
|
|
81
|
+
this.setValue(this.setFormatedValue(newValues));
|
|
81
82
|
}
|
|
82
83
|
deleteItem(deletedIndex) {
|
|
83
84
|
const newValues = this.internalValue().filter((_, index) => index != deletedIndex);
|
|
84
|
-
this.setValue(newValues);
|
|
85
|
+
this.setValue(this.setFormatedValue(newValues));
|
|
85
86
|
}
|
|
86
87
|
async handleValueChange(e, selectedIndex) {
|
|
87
88
|
let { name, value, isUserInteraction } = e;
|
|
@@ -106,10 +107,11 @@ export class AXPContactWidgetEditComponent extends AXPWidgetComponent {
|
|
|
106
107
|
}
|
|
107
108
|
}
|
|
108
109
|
const newValues = this.internalValue().map((item, index) => selectedIndex === index ? { ...item, [name]: value } : item);
|
|
109
|
-
if (this.multiple())
|
|
110
|
-
this.setValue(newValues);
|
|
110
|
+
if (this.multiple()) {
|
|
111
|
+
this.setValue(this.setFormatedValue(newValues));
|
|
112
|
+
}
|
|
111
113
|
else
|
|
112
|
-
this.setValue(newValues[0]);
|
|
114
|
+
this.setValue(this.setFormatedValue(newValues[0]));
|
|
113
115
|
}
|
|
114
116
|
}
|
|
115
117
|
generateClasses(element) {
|
|
@@ -151,12 +153,18 @@ export class AXPContactWidgetEditComponent extends AXPWidgetComponent {
|
|
|
151
153
|
this._validationRules = v;
|
|
152
154
|
}
|
|
153
155
|
valueToArray() {
|
|
156
|
+
if (this.hasIcon() || this.hasLabel()) {
|
|
157
|
+
this.format.set('object');
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
this.format.set('string');
|
|
161
|
+
}
|
|
154
162
|
const value = this.getValue();
|
|
155
163
|
if (Array.isArray(value)) {
|
|
156
164
|
return value.map((item) => this.itemToArray(item));
|
|
157
165
|
}
|
|
158
166
|
else {
|
|
159
|
-
return [this.itemToArray(value)];
|
|
167
|
+
return [this.itemToArray(value ?? '')];
|
|
160
168
|
}
|
|
161
169
|
}
|
|
162
170
|
emptyValue() {
|
|
@@ -164,6 +172,14 @@ export class AXPContactWidgetEditComponent extends AXPWidgetComponent {
|
|
|
164
172
|
value: '',
|
|
165
173
|
};
|
|
166
174
|
}
|
|
175
|
+
setFormatedValue(items) {
|
|
176
|
+
if (this.format() === 'string') {
|
|
177
|
+
return Array.isArray(items) ? items.map((x) => x.value) : items.value;
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
return items;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
167
183
|
get __class() {
|
|
168
184
|
const cls = {};
|
|
169
185
|
cls[`ax-block`] = true;
|
|
@@ -305,4 +321,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
305
321
|
type: HostBinding,
|
|
306
322
|
args: ['class']
|
|
307
323
|
}] } });
|
|
308
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC13aWRnZXQtZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpZGdldHMvc3JjL2xpYi93aWRnZXRzL2VkaXRvcnMvY29udGFjdC9jb250YWN0LXdpZGdldC1lZGl0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBdUIsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFpQixjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7OztBQTBFbkQsTUFBTSxPQUFPLDZCQUE4QixTQUFRLGtCQUF1QjtJQWN4RTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBZFYsWUFBWTtRQUNGLFNBQUksR0FBRyxRQUFRLENBQ3ZCLEdBQUcsRUFBRSxDQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFpQyxJQUFJLE9BQU8sQ0FDNUUsQ0FBQztRQUNRLGNBQVMsR0FBRyxRQUFRLENBQVcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3pHLGFBQVEsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBWSxDQUFDLENBQUM7UUFDMUUsYUFBUSxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFZLENBQUMsQ0FBQztRQUMxRSxZQUFPLEdBQUcsUUFBUSxDQUFVLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQVksQ0FBQyxDQUFDO1FBQ3hFLGFBQVEsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBWSxDQUFDLENBQUM7UUFDMUUsZ0JBQVcsR0FBRyxRQUFRLENBQzlCLEdBQUcsRUFBRSxDQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQVksSUFBSSxTQUFTLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUM5RSxDQUFDO1FBS00sVUFBSyxHQUFtQixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDN0MsZUFBVSxHQUFHLElBQUksWUFBWSxDQUFDO1lBQ3RDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsTUFBTTtZQUNqQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDVixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUM7b0JBQ3JCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDcEUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNO2lCQUMvQixDQUFDLENBQUM7WUFDTCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLENBQUM7U0FDRixDQUFDLENBQUM7UUFDTyxrQkFBYSxHQUFpQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFpRWxGLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2xELHFCQUFnQixHQUF1QixFQUFFLENBQUM7UUFlMUMsZ0JBQVcsR0FBRyxDQUFDLElBQWlDLEVBQXNCLEVBQUU7WUFDOUUsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO2dCQUMxQixPQUFPO29CQUNMLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUU7b0JBQ3hCLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO29CQUN2RSxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztpQkFDbkUsQ0FBQzs7Z0JBRUYsT0FBTztvQkFDTCxLQUFLLEVBQUUsSUFBSTtvQkFDWCxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7b0JBQ3hELElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztpQkFDckQsQ0FBQztRQUNOLENBQUMsQ0FBQztRQU1NLGVBQVUsR0FBRyxHQUFXLEVBQUU7WUFDaEMsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDcEIsS0FBSyxPQUFPO29CQUNWLE9BQU8sU0FBUyxDQUFDO2dCQUNuQixLQUFLLE1BQU07b0JBQ1QsT0FBTyxhQUFhLENBQUM7Z0JBQ3ZCLEtBQUssT0FBTztvQkFDVixPQUFPLFVBQVUsQ0FBQztnQkFDcEI7b0JBQ0UsT0FBTyxTQUFTLENBQUM7WUFDckIsQ0FBQztRQUNILENBQUMsQ0FBQztJQTdIRixDQUFDO0lBZVMsT0FBTztRQUNmLE1BQU0sU0FBUyxHQUF5QixDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNTLFVBQVUsQ0FBQyxZQUFvQjtRQUN2QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLFlBQVksQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNTLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFzQixFQUFFLGFBQXFCO1FBQzdFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDMUIsTUFBTSxPQUFPLEdBQWtCO3dCQUM3QixLQUFLLEVBQUUsZ0JBQWdCO3dCQUN2QixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsSUFBSSxFQUFFLElBQUk7d0JBQ1YsU0FBUyxFQUFFLElBQUk7d0JBQ2YscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLDhCQUE4QjtxQkFDL0IsQ0FBQztvQkFDRixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDM0YsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDdkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7b0JBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzVCLENBQUM7WUFDSCxDQUFDO1lBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUN6RCxhQUFhLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsSUFBYyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDdEUsQ0FBQztZQUNGLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDOztnQkFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQztJQUNTLGVBQWUsQ0FBQyxPQUEwQjtRQUNsRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7Z0JBQ3BCLElBQUksT0FBTyxLQUFLLE9BQU8sRUFBRSxDQUFDO29CQUN4QixPQUFPLDhDQUE4QyxDQUFDO2dCQUN4RCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxrRUFBa0UsQ0FBQztnQkFDNUUsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLE9BQU8sS0FBSyxPQUFPLEVBQUUsQ0FBQztvQkFDeEIsT0FBTyw4QkFBOEIsQ0FBQztnQkFDeEMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7Z0JBQ3BCLElBQUksT0FBTyxLQUFLLE9BQU8sRUFBRSxDQUFDO29CQUN4QixPQUFPLDhDQUE4QyxDQUFDO2dCQUN4RCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxpRUFBaUUsQ0FBQztnQkFDM0UsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLE9BQU8sS0FBSyxPQUFPLEVBQUUsQ0FBQztvQkFDeEIsT0FBTyw4QkFBOEIsQ0FBQztnQkFDeEMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUdELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBQ0QsSUFBVyxlQUFlLENBQUMsQ0FBcUI7UUFDOUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ08sWUFBWTtRQUNsQixNQUFNLEtBQUssR0FBZ0MsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3JELENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQztJQWVPLFVBQVU7UUFDaEIsT0FBTztZQUNMLEtBQUssRUFBRSxFQUFFO1NBQ1YsQ0FBQztJQUNKLENBQUM7SUFjRCxJQUNZLE9BQU87UUFDakIsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDdkIsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN4QixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7OEdBckpVLDZCQUE2QjtrR0FBN0IsNkJBQTZCLGtKQXZFOUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztVQXNERiwyREFJTixZQUFZLGlMQUNaLFdBQVcsOFZBQ1gsaUJBQWlCLHlpQkFDakIsWUFBWSxpS0FDWixjQUFjLHVaQUNkLGlCQUFpQix1VkFFakIsZUFBZSxxYkFDZixrQkFBa0IsOEJBQ2xCLG1CQUFtQjs7MkZBSVYsNkJBQTZCO2tCQXhFekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztVQXNERjtvQkFDUixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixtQkFBbUI7cUJBQ3BCO29CQUNELE1BQU0sRUFBRSxFQUFFO2lCQUNYO3dEQWlKYSxPQUFPO3NCQURsQixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEYXRhU291cmNlLCBBWFZhbHVlQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcbmltcG9ydCB7IEFYUG9wdXBDb25maWcsIEFYUG9wdXBTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYU2VsZWN0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlbGVjdC1ib3gnO1xuaW1wb3J0IHsgQVhUZXh0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RleHQtYm94JztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uTW9kdWxlLCBBWFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgQVhQVmFsaWRhdGlvblJ1bGVzIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUFdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBTaWduYWwsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhQQ29udGFjdERhdGFUeXBlIH0gZnJvbSAnLi9jb250YWN0LnR5cGUnO1xuaW1wb3J0IHsgcG9wdXBDb21wb25lbnQgfSBmcm9tICcuL3BvcHVwLWNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJsZzpheC1ncmlkIGxnOmF4LWdyaWQtY29scy0xMiBsZzpheC1nYXAtNFwiPlxuICAgIEBmb3IoaXRlbSBvZiBpbnRlcm5hbFZhbHVlKCk7dHJhY2sgJGluZGV4KSB7XG4gICAgPGF4LXRleHQtYm94XG4gICAgICBbbmdNb2RlbF09XCJpdGVtLnZhbHVlXCJcbiAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJoYW5kbGVWYWx1ZUNoYW5nZSgkZXZlbnQsICRpbmRleClcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgbmFtZT1cInZhbHVlXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcbiAgICAgIFtuZ0NsYXNzXT1cImdlbmVyYXRlQ2xhc3NlcygndmFsdWUnKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgPlxuICAgICAgQGZvciAodmFsaWRhdGlvbiBvZiB2YWxpZGF0aW9uUnVsZXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGF4LXZhbGlkYXRpb24tcnVsZVxuICAgICAgICBbcnVsZV09XCJ2YWxpZGF0aW9uLnJ1bGVcIlxuICAgICAgICBbbWVzc2FnZV09XCJ2YWxpZGF0aW9uLm9wdGlvbnM/Lm1lc3NhZ2VcIlxuICAgICAgICBbb3B0aW9uc109XCJ2YWxpZGF0aW9uLm9wdGlvbnNcIlxuICAgICAgPjwvYXgtdmFsaWRhdGlvbi1ydWxlPlxuICAgICAgfVxuICAgIDwvYXgtdGV4dC1ib3g+XG4gICAgQGlmKGhhc0xhYmVsKCkpe1xuICAgIDxheC1zZWxlY3QtYm94XG4gICAgICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcbiAgICAgIFtuZ01vZGVsXT1cIml0ZW0ubGFiZWxcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZVZhbHVlQ2hhbmdlKCRldmVudCwgJGluZGV4KVwiXG4gICAgICBwbGFjZWhvbGRlcj1cInt7ICdzZWxlY3Rib3gucG9wb3Zlci50aXRsZScgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVwiXG4gICAgICBuYW1lPVwibGFiZWxcIlxuICAgICAgW25nQ2xhc3NdPVwiZ2VuZXJhdGVDbGFzc2VzKCdsYWJlbCcpXCJcbiAgICA+XG4gICAgPC9heC1zZWxlY3QtYm94PlxuICAgIH0gQGlmKG11bHRpcGxlKCkpe1xuICAgIDxheC1idXR0b25cbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgIGxvb2s9XCJ0d290b25lXCJcbiAgICAgIGNvbG9yPVwiZGFuZ2VyXCJcbiAgICAgIChvbkNsaWNrKT1cImRlbGV0ZUl0ZW0oJGluZGV4KVwiXG4gICAgICBjbGFzcz1cImF4LWNvbC1zdGFydC0xMiBheC1jb2wtZW5kLTEzIGF4LWp1c3RpZnktc2VsZi1lbmRcIlxuICAgID5cbiAgICAgIDxheC1pY29uIGljb249XCJmYS1yZWd1bGFyIGZhLXhtYXJrXCI+PC9heC1pY29uPlxuICAgIDwvYXgtYnV0dG9uPlxuICAgIH0gfSBAaWYobXVsdGlwbGUoKSl7XG5cbiAgICA8YXgtYnV0dG9uXG4gICAgICBbdGV4dF09XCJpbnRlcm5hbFZhbHVlKCkubGVuZ3RoID09IDAgPyAnQWRkIE5ldycgOiAnQWRkIEFub3RoZXInXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgIGxvb2s9XCJ0d290b25lXCJcbiAgICAgIChvbkNsaWNrKT1cImFkZEl0ZW0oKVwiXG4gICAgICBjbGFzcz1cImF4LWNvbC1zdGFydC02IGF4LWNvbC1lbmQtMTMgbGc6YXgtY29sLXN0YXJ0LTggeGw6YXgtY29sLXN0YXJ0LTEwIFwiXG4gICAgPlxuICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1hZGRcIj48L2F4LWljb24+XG4gICAgICA8L2F4LXByZWZpeD5cbiAgICA8L2F4LWJ1dHRvbj5cbiAgICB9XG4gIDwvZGl2PiBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBBWFNlbGVjdEJveE1vZHVsZSxcbiAgICBBWEZvcm1Nb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhTZWxlY3RCb3hNb2R1bGUsXG4gICAgQVhUZXh0Qm94TW9kdWxlLFxuICAgIEFYVmFsaWRhdGlvbk1vZHVsZSxcbiAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICBdLFxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBDb250YWN0V2lkZ2V0RWRpdENvbXBvbmVudCBleHRlbmRzIEFYUFdpZGdldENvbXBvbmVudDxhbnk+IHtcbiAgLy9wcm9wZXJ0aWVzXG4gIHByb3RlY3RlZCB0eXBlID0gY29tcHV0ZWQ8J2xpbmsnIHwgJ3Bob25lJyB8ICdlbWFpbCc+KFxuICAgICgpID0+ICh0aGlzLm9wdGlvbnMoKVsndHlwZSddPy5pZCBhcyAnbGluaycgfCAncGhvbmUnIHwgJ2VtYWlsJykgPz8gJ2VtYWlsJ1xuICApO1xuICBwcm90ZWN0ZWQgbGFiZWxMaXN0ID0gY29tcHV0ZWQ8c3RyaW5nW10+KCgpID0+IHRoaXMub3B0aW9ucygpWydsYWJlbExpc3QnXSB8fCBbJ3ByaW1hcnknLCAnc2Vjb25kYXJ5JywgJ0FkZCBOZXcnXSk7XG4gIHByb3RlY3RlZCBoYXNMYWJlbCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMub3B0aW9ucygpWydoYXNMYWJlbCddIGFzIGJvb2xlYW4pO1xuICBwcm90ZWN0ZWQgbXVsdGlwbGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnbXVsdGlwbGUnXSBhcyBib29sZWFuKTtcbiAgcHJvdGVjdGVkIGhhc0ljb24gPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnaGFzSWNvbiddIGFzIGJvb2xlYW4pO1xuICBwcm90ZWN0ZWQgZGlzYWJsZWQgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnZGlzYWJsZWQnXSBhcyBib29sZWFuKTtcbiAgcHJvdGVjdGVkIHBsYWNlaG9sZGVyID0gY29tcHV0ZWQ8c3RyaW5nPihcbiAgICAoKSA9PiAodGhpcy5vcHRpb25zKClbJ3BsYWNlaG9sZGVyJ10gYXMgc3RyaW5nKSA/PyBgRW50ZXIgJHt0aGlzLnR5cGUoKX0gLi4uYFxuICApO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbiAgcHJpdmF0ZSBwb3B1cDogQVhQb3B1cFNlcnZpY2UgPSBpbmplY3QoQVhQb3B1cFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgZGF0YVNvdXJjZSA9IG5ldyBBWERhdGFTb3VyY2Uoe1xuICAgIHBhZ2VTaXplOiB0aGlzLmxhYmVsTGlzdCgpLmxlbmd0aCxcbiAgICBsb2FkOiAoZSkgPT4ge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgIGl0ZW1zOiB0aGlzLmxhYmVsTGlzdCgpLnNsaWNlKGUuc2tpcCwgKGUuc2tpcCA/PyAwKSArIChlLnRha2UgPz8gMCkpLFxuICAgICAgICB0b3RhbDogdGhpcy5sYWJlbExpc3QoKS5sZW5ndGgsXG4gICAgICB9KTtcbiAgICB9LFxuICAgIGJ5S2V5OiAoa2V5KSA9PiB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMubGFiZWxMaXN0KCkuZmluZCgoaSkgPT4gaSA9PT0ga2V5KSk7XG4gICAgfSxcbiAgfSk7XG4gIHByb3RlY3RlZCBpbnRlcm5hbFZhbHVlOiBTaWduYWw8QVhQQ29udGFjdERhdGFUeXBlW10+ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy52YWx1ZVRvQXJyYXkoKSk7XG4gIHByb3RlY3RlZCBhZGRJdGVtKCkge1xuICAgIGNvbnN0IG5ld1ZhbHVlczogQVhQQ29udGFjdERhdGFUeXBlW10gPSBbLi4udGhpcy5pbnRlcm5hbFZhbHVlKCksIHRoaXMuZW1wdHlWYWx1ZSgpXTtcbiAgICB0aGlzLnNldFZhbHVlKG5ld1ZhbHVlcyk7XG4gIH1cbiAgcHJvdGVjdGVkIGRlbGV0ZUl0ZW0oZGVsZXRlZEluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBuZXdWYWx1ZXMgPSB0aGlzLmludGVybmFsVmFsdWUoKS5maWx0ZXIoKF8sIGluZGV4KSA9PiBpbmRleCAhPSBkZWxldGVkSW5kZXgpO1xuICAgIHRoaXMuc2V0VmFsdWUobmV3VmFsdWVzKTtcbiAgfVxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlVmFsdWVDaGFuZ2UoZTogQVhWYWx1ZUNoYW5nZWRFdmVudCwgc2VsZWN0ZWRJbmRleDogbnVtYmVyKSB7XG4gICAgbGV0IHsgbmFtZSwgdmFsdWUsIGlzVXNlckludGVyYWN0aW9uIH0gPSBlO1xuICAgIGlmIChpc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgaWYgKGUubmFtZSA9PT0gJ2xhYmVsJykge1xuICAgICAgICBpZiAoZS52YWx1ZSA9PT0gJ0FkZCBOZXcnKSB7XG4gICAgICAgICAgY29uc3Qgb3B0aW9uczogQVhQb3B1cENvbmZpZyA9IHtcbiAgICAgICAgICAgIHRpdGxlOiAnRW50ZXIgTGFiZWwuLi4nLFxuICAgICAgICAgICAgLy8gaGVhZGVyOiBmYWxzZSxcbiAgICAgICAgICAgIC8vIGZvb3RlcjogdHJ1ZSxcbiAgICAgICAgICAgIHNpemU6ICdzbScsXG4gICAgICAgICAgICBkcmFnZ2FibGU6IHRydWUsXG4gICAgICAgICAgICAvLyBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgICAgIC8vIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgICAgICAgLy8gY2xvc2VPbkJhY2tkcm9wQ2xpY2s6IHRydWUsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGF3YWl0IHRoaXMucG9wdXAub3Blbihwb3B1cENvbXBvbmVudCwgeyAuLi5vcHRpb25zIH0pLnRoZW4oKGUpID0+IGUuZGF0YSk7XG4gICAgICAgICAgdmFsdWUgPSBuZXdWYWx1ZS52YWx1ZTtcbiAgICAgICAgICB0aGlzLmxhYmVsTGlzdCgpLnBvcCgpO1xuICAgICAgICAgIHRoaXMubGFiZWxMaXN0KCkucHVzaCh2YWx1ZSwgJ0FkZCBOZXcnKTtcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UucmVmcmVzaCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCBuZXdWYWx1ZXMgPSB0aGlzLmludGVybmFsVmFsdWUoKS5tYXAoKGl0ZW0sIGluZGV4KSA9PlxuICAgICAgICBzZWxlY3RlZEluZGV4ID09PSBpbmRleCA/IHsgLi4uaXRlbSwgW25hbWUgYXMgc3RyaW5nXTogdmFsdWUgfSA6IGl0ZW1cbiAgICAgICk7XG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSgpKSB0aGlzLnNldFZhbHVlKG5ld1ZhbHVlcyk7XG4gICAgICBlbHNlIHRoaXMuc2V0VmFsdWUobmV3VmFsdWVzWzBdKTtcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIGdlbmVyYXRlQ2xhc3NlcyhlbGVtZW50OiAndmFsdWUnIHwgJ2xhYmVsJyk6IHN0cmluZyB8IGFueSB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUoKSkge1xuICAgICAgaWYgKHRoaXMuaGFzTGFiZWwoKSkge1xuICAgICAgICBpZiAoZWxlbWVudCA9PT0gJ3ZhbHVlJykge1xuICAgICAgICAgIHJldHVybiAnYXgtY29sLXN0YXJ0LTEgYXgtY29sLWVuZC0xMyBsZzpheC1jb2wtZW5kLTcnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiAnYXgtY29sLXN0YXJ0LTEgYXgtY29sLWVuZC0xMSBsZzpheC1jb2wtc3RhcnQtNyBsZzpheC1jb2wtZW5kLTEyICc7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChlbGVtZW50ID09PSAndmFsdWUnKSB7XG4gICAgICAgICAgcmV0dXJuICdheC1jb2wtc3RhcnQtMSBheC1jb2wtZW5kLTEyJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5oYXNMYWJlbCgpKSB7XG4gICAgICAgIGlmIChlbGVtZW50ID09PSAndmFsdWUnKSB7XG4gICAgICAgICAgcmV0dXJuICdheC1jb2wtc3RhcnQtMSBheC1jb2wtZW5kLTEzIGxnOmF4LWNvbC1lbmQtNyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuICdheC1jb2wtc3RhcnQtMSBheC1jb2wtZW5kLTEzIGxnOmF4LWNvbC1zdGFydC03IGxnOmF4LWNvbC1lbmQtMTMnO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZWxlbWVudCA9PT0gJ3ZhbHVlJykge1xuICAgICAgICAgIHJldHVybiAnYXgtY29sLXN0YXJ0LTEgYXgtY29sLWVuZC0xMyc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIHZhbGlkYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYVmFsaWRhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIF92YWxpZGF0aW9uUnVsZXM6IEFYUFZhbGlkYXRpb25SdWxlcyA9IFtdO1xuICBwdWJsaWMgZ2V0IHZhbGlkYXRpb25SdWxlcygpOiBBWFBWYWxpZGF0aW9uUnVsZXMge1xuICAgIHJldHVybiB0aGlzLl92YWxpZGF0aW9uUnVsZXM7XG4gIH1cbiAgcHVibGljIHNldCB2YWxpZGF0aW9uUnVsZXModjogQVhQVmFsaWRhdGlvblJ1bGVzKSB7XG4gICAgdGhpcy5fdmFsaWRhdGlvblJ1bGVzID0gdjtcbiAgfVxuICBwcml2YXRlIHZhbHVlVG9BcnJheSgpOiBBWFBDb250YWN0RGF0YVR5cGVbXSB7XG4gICAgY29uc3QgdmFsdWU6IEFYUENvbnRhY3REYXRhVHlwZSB8IHN0cmluZyA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5tYXAoKGl0ZW0pID0+IHRoaXMuaXRlbVRvQXJyYXkoaXRlbSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW3RoaXMuaXRlbVRvQXJyYXkodmFsdWUpXTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBpdGVtVG9BcnJheSA9IChpdGVtOiBBWFBDb250YWN0RGF0YVR5cGUgfCBzdHJpbmcpOiBBWFBDb250YWN0RGF0YVR5cGUgPT4ge1xuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcpXG4gICAgICByZXR1cm4ge1xuICAgICAgICB2YWx1ZTogaXRlbT8udmFsdWUgPz8gJycsXG4gICAgICAgIGxhYmVsOiB0aGlzLmhhc0xhYmVsKCkgPyBpdGVtPy5sYWJlbCB8fCB0aGlzLmxhYmVsTGlzdCgpWzBdIDogdW5kZWZpbmVkLFxuICAgICAgICBpY29uOiB0aGlzLmhhc0ljb24oKSA/IGl0ZW0/Lmljb24gfHwgdGhpcy5jaG9vc2VJY29uKCkgOiB1bmRlZmluZWQsXG4gICAgICB9O1xuICAgIGVsc2VcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhbHVlOiBpdGVtLFxuICAgICAgICBsYWJlbDogdGhpcy5oYXNMYWJlbCgpID8gdGhpcy5sYWJlbExpc3QoKVswXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgaWNvbjogdGhpcy5oYXNJY29uKCkgPyB0aGlzLmNob29zZUljb24oKSA6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gIH07XG4gIHByaXZhdGUgZW1wdHlWYWx1ZSgpOiBBWFBDb250YWN0RGF0YVR5cGUge1xuICAgIHJldHVybiB7XG4gICAgICB2YWx1ZTogJycsXG4gICAgfTtcbiAgfVxuICBwcml2YXRlIGNob29zZUljb24gPSAoKTogc3RyaW5nID0+IHtcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSgpKSB7XG4gICAgICBjYXNlICdlbWFpbCc6XG4gICAgICAgIHJldHVybiAnZmEtbGluayc7XG4gICAgICBjYXNlICdsaW5rJzpcbiAgICAgICAgcmV0dXJuICdmYS1lbnZlbG9wZSc7XG4gICAgICBjYXNlICdwaG9uZSc6XG4gICAgICAgIHJldHVybiAnZmEtcGhvbmUnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdmYS1pbmZvJztcbiAgICB9XG4gIH07XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHByaXZhdGUgZ2V0IF9fY2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjbHM6IGFueSA9IHt9O1xuICAgIGNsc1tgYXgtYmxvY2tgXSA9IHRydWU7XG4gICAgY2xzW2BheC1mbGV4LTFgXSA9IHRydWU7XG4gICAgcmV0dXJuIGNscztcbiAgfVxufVxuIl19
|
|
324
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC13aWRnZXQtZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpZGdldHMvc3JjL2xpYi93aWRnZXRzL2VkaXRvcnMvY29udGFjdC9jb250YWN0LXdpZGdldC1lZGl0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBdUIsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFpQixjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFdBQVcsRUFHWCxRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7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a0JBQWtCO3dCQUNsQixtQkFBbUI7cUJBQ3BCO29CQUNELE1BQU0sRUFBRSxFQUFFO2lCQUNYO3dEQXdLYSxPQUFPO3NCQURsQixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEYXRhU291cmNlLCBBWFZhbHVlQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcbmltcG9ydCB7IEFYUG9wdXBDb25maWcsIEFYUG9wdXBTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYU2VsZWN0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlbGVjdC1ib3gnO1xuaW1wb3J0IHsgQVhUZXh0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RleHQtYm94JztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uTW9kdWxlLCBBWFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgQVhQVmFsaWRhdGlvblJ1bGVzIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUFdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEhvc3RCaW5kaW5nLFxuICBTaWduYWwsXG4gIFdyaXRhYmxlU2lnbmFsLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBWFBDb250YWN0RGF0YVR5cGUgfSBmcm9tICcuL2NvbnRhY3QudHlwZSc7XG5pbXBvcnQgeyBwb3B1cENvbXBvbmVudCB9IGZyb20gJy4vcG9wdXAtY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cImxnOmF4LWdyaWQgbGc6YXgtZ3JpZC1jb2xzLTEyIGxnOmF4LWdhcC00XCI+XG4gICAgQGZvcihpdGVtIG9mIGludGVybmFsVmFsdWUoKTt0cmFjayAkaW5kZXgpIHtcbiAgICA8YXgtdGV4dC1ib3hcbiAgICAgIFtuZ01vZGVsXT1cIml0ZW0udmFsdWVcIlxuICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZVZhbHVlQ2hhbmdlKCRldmVudCwgJGluZGV4KVwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBuYW1lPVwidmFsdWVcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIlxuICAgICAgW25nQ2xhc3NdPVwiZ2VuZXJhdGVDbGFzc2VzKCd2YWx1ZScpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICA+XG4gICAgICBAZm9yICh2YWxpZGF0aW9uIG9mIHZhbGlkYXRpb25SdWxlczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlXG4gICAgICAgIFtydWxlXT1cInZhbGlkYXRpb24ucnVsZVwiXG4gICAgICAgIFttZXNzYWdlXT1cInZhbGlkYXRpb24ub3B0aW9ucz8ubWVzc2FnZVwiXG4gICAgICAgIFtvcHRpb25zXT1cInZhbGlkYXRpb24ub3B0aW9uc1wiXG4gICAgICA+PC9heC12YWxpZGF0aW9uLXJ1bGU+XG4gICAgICB9XG4gICAgPC9heC10ZXh0LWJveD5cbiAgICBAaWYoaGFzTGFiZWwoKSl7XG4gICAgPGF4LXNlbGVjdC1ib3hcbiAgICAgIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIlxuICAgICAgW25nTW9kZWxdPVwiaXRlbS5sYWJlbFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAob25WYWx1ZUNoYW5nZWQpPVwiaGFuZGxlVmFsdWVDaGFuZ2UoJGV2ZW50LCAkaW5kZXgpXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ3NlbGVjdGJveC5wb3BvdmVyLnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XCJcbiAgICAgIG5hbWU9XCJsYWJlbFwiXG4gICAgICBbbmdDbGFzc109XCJnZW5lcmF0ZUNsYXNzZXMoJ2xhYmVsJylcIlxuICAgID5cbiAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgfSBAaWYobXVsdGlwbGUoKSl7XG4gICAgPGF4LWJ1dHRvblxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgbG9vaz1cInR3b3RvbmVcIlxuICAgICAgY29sb3I9XCJkYW5nZXJcIlxuICAgICAgKG9uQ2xpY2spPVwiZGVsZXRlSXRlbSgkaW5kZXgpXCJcbiAgICAgIGNsYXNzPVwiYXgtY29sLXN0YXJ0LTEyIGF4LWNvbC1lbmQtMTMgYXgtanVzdGlmeS1zZWxmLWVuZFwiXG4gICAgPlxuICAgICAgPGF4LWljb24gaWNvbj1cImZhLXJlZ3VsYXIgZmEteG1hcmtcIj48L2F4LWljb24+XG4gICAgPC9heC1idXR0b24+XG4gICAgfSB9IEBpZihtdWx0aXBsZSgpKXtcblxuICAgIDxheC1idXR0b25cbiAgICAgIFt0ZXh0XT1cImludGVybmFsVmFsdWUoKS5sZW5ndGggPT0gMCA/ICdBZGQgTmV3JyA6ICdBZGQgQW5vdGhlcidcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgbG9vaz1cInR3b3RvbmVcIlxuICAgICAgKG9uQ2xpY2spPVwiYWRkSXRlbSgpXCJcbiAgICAgIGNsYXNzPVwiYXgtY29sLXN0YXJ0LTYgYXgtY29sLWVuZC0xMyBsZzpheC1jb2wtc3RhcnQtOCB4bDpheC1jb2wtc3RhcnQtMTAgXCJcbiAgICA+XG4gICAgICA8YXgtcHJlZml4PlxuICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWFkZFwiPjwvYXgtaWNvbj5cbiAgICAgIDwvYXgtcHJlZml4PlxuICAgIDwvYXgtYnV0dG9uPlxuICAgIH1cbiAgPC9kaXY+IGAsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEFYU2VsZWN0Qm94TW9kdWxlLFxuICAgIEFYRm9ybU1vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWFNlbGVjdEJveE1vZHVsZSxcbiAgICBBWFRleHRCb3hNb2R1bGUsXG4gICAgQVhWYWxpZGF0aW9uTW9kdWxlLFxuICAgIEFYVHJhbnNsYXRpb25Nb2R1bGUsXG4gIF0sXG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUENvbnRhY3RXaWRnZXRFZGl0Q29tcG9uZW50IGV4dGVuZHMgQVhQV2lkZ2V0Q29tcG9uZW50PFxuICBzdHJpbmcgfCBzdHJpbmdbXSB8IEFYUENvbnRhY3REYXRhVHlwZSB8IEFYUENvbnRhY3REYXRhVHlwZVtdIHwgdW5kZWZpbmVkXG4+IHtcbiAgLy9wcm9wZXJ0aWVzXG4gIHByb3RlY3RlZCB0eXBlID0gY29tcHV0ZWQ8J2xpbmsnIHwgJ3Bob25lJyB8ICdlbWFpbCc+KFxuICAgICgpID0+ICh0aGlzLm9wdGlvbnMoKVsndHlwZSddPy5pZCBhcyAnbGluaycgfCAncGhvbmUnIHwgJ2VtYWlsJykgPz8gJ2VtYWlsJ1xuICApO1xuICBwcm90ZWN0ZWQgbGFiZWxMaXN0ID0gY29tcHV0ZWQ8c3RyaW5nW10+KCgpID0+IHRoaXMub3B0aW9ucygpWydsYWJlbExpc3QnXSB8fCBbJ3ByaW1hcnknLCAnc2Vjb25kYXJ5JywgJ0FkZCBOZXcnXSk7XG4gIHByb3RlY3RlZCBoYXNMYWJlbCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMub3B0aW9ucygpWydoYXNMYWJlbCddIGFzIGJvb2xlYW4pO1xuICBwcm90ZWN0ZWQgbXVsdGlwbGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnbXVsdGlwbGUnXSBhcyBib29sZWFuKTtcbiAgcHJvdGVjdGVkIGhhc0ljb24gPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnaGFzSWNvbiddIGFzIGJvb2xlYW4pO1xuICBwcm90ZWN0ZWQgZGlzYWJsZWQgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnZGlzYWJsZWQnXSBhcyBib29sZWFuKTtcbiAgcHJvdGVjdGVkIHBsYWNlaG9sZGVyID0gY29tcHV0ZWQ8c3RyaW5nPihcbiAgICAoKSA9PiAodGhpcy5vcHRpb25zKClbJ3BsYWNlaG9sZGVyJ10gYXMgc3RyaW5nKSA/PyBgRW50ZXIgJHt0aGlzLnR5cGUoKX0gLi4uYFxuICApO1xuXG4gIHByaXZhdGUgZm9ybWF0OiBXcml0YWJsZVNpZ25hbDx1bmRlZmluZWQgfCAnb2JqZWN0JyB8ICdzdHJpbmcnPiA9IHNpZ25hbCh1bmRlZmluZWQpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbiAgcHJpdmF0ZSBwb3B1cDogQVhQb3B1cFNlcnZpY2UgPSBpbmplY3QoQVhQb3B1cFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgZGF0YVNvdXJjZSA9IG5ldyBBWERhdGFTb3VyY2Uoe1xuICAgIHBhZ2VTaXplOiB0aGlzLmxhYmVsTGlzdCgpLmxlbmd0aCxcbiAgICBsb2FkOiAoZSkgPT4ge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgIGl0ZW1zOiB0aGlzLmxhYmVsTGlzdCgpLnNsaWNlKGUuc2tpcCwgKGUuc2tpcCA/PyAwKSArIChlLnRha2UgPz8gMCkpLFxuICAgICAgICB0b3RhbDogdGhpcy5sYWJlbExpc3QoKS5sZW5ndGgsXG4gICAgICB9KTtcbiAgICB9LFxuICAgIGJ5S2V5OiAoa2V5KSA9PiB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMubGFiZWxMaXN0KCkuZmluZCgoaSkgPT4gaSA9PT0ga2V5KSk7XG4gICAgfSxcbiAgfSk7XG4gIHByb3RlY3RlZCBpbnRlcm5hbFZhbHVlOiBTaWduYWw8QVhQQ29udGFjdERhdGFUeXBlW10+ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy52YWx1ZVRvQXJyYXkoKSk7XG5cbiAgcHJvdGVjdGVkIGFkZEl0ZW0oKSB7XG4gICAgY29uc3QgbmV3VmFsdWVzOiBBWFBDb250YWN0RGF0YVR5cGVbXSA9IFsuLi50aGlzLmludGVybmFsVmFsdWUoKSwgdGhpcy5lbXB0eVZhbHVlKCldO1xuICAgIHRoaXMuc2V0VmFsdWUodGhpcy5zZXRGb3JtYXRlZFZhbHVlKG5ld1ZhbHVlcykpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRlbGV0ZUl0ZW0oZGVsZXRlZEluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBuZXdWYWx1ZXMgPSB0aGlzLmludGVybmFsVmFsdWUoKS5maWx0ZXIoKF8sIGluZGV4KSA9PiBpbmRleCAhPSBkZWxldGVkSW5kZXgpO1xuICAgIHRoaXMuc2V0VmFsdWUodGhpcy5zZXRGb3JtYXRlZFZhbHVlKG5ld1ZhbHVlcykpO1xuICB9XG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVWYWx1ZUNoYW5nZShlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50LCBzZWxlY3RlZEluZGV4OiBudW1iZXIpIHtcbiAgICBsZXQgeyBuYW1lLCB2YWx1ZSwgaXNVc2VySW50ZXJhY3Rpb24gfSA9IGU7XG4gICAgaWYgKGlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICBpZiAoZS5uYW1lID09PSAnbGFiZWwnKSB7XG4gICAgICAgIGlmIChlLnZhbHVlID09PSAnQWRkIE5ldycpIHtcbiAgICAgICAgICBjb25zdCBvcHRpb25zOiBBWFBvcHVwQ29uZmlnID0ge1xuICAgICAgICAgICAgdGl0bGU6ICdFbnRlciBMYWJlbC4uLicsXG4gICAgICAgICAgICAvLyBoZWFkZXI6IGZhbHNlLFxuICAgICAgICAgICAgLy8gZm9vdGVyOiB0cnVlLFxuICAgICAgICAgICAgc2l6ZTogJ3NtJyxcbiAgICAgICAgICAgIGRyYWdnYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIC8vIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgICAgLy8gY2xvc2VCdXR0b246IHRydWUsXG4gICAgICAgICAgICAvLyBjbG9zZU9uQmFja2Ryb3BDbGljazogdHJ1ZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gYXdhaXQgdGhpcy5wb3B1cC5vcGVuKHBvcHVwQ29tcG9uZW50LCB7IC4uLm9wdGlvbnMgfSkudGhlbigoZSkgPT4gZS5kYXRhKTtcbiAgICAgICAgICB2YWx1ZSA9IG5ld1ZhbHVlLnZhbHVlO1xuICAgICAgICAgIHRoaXMubGFiZWxMaXN0KCkucG9wKCk7XG4gICAgICAgICAgdGhpcy5sYWJlbExpc3QoKS5wdXNoKHZhbHVlLCAnQWRkIE5ldycpO1xuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5yZWZyZXNoKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IG5ld1ZhbHVlcyA9IHRoaXMuaW50ZXJuYWxWYWx1ZSgpLm1hcCgoaXRlbSwgaW5kZXgpID0+XG4gICAgICAgIHNlbGVjdGVkSW5kZXggPT09IGluZGV4ID8geyAuLi5pdGVtLCBbbmFtZSBhcyBzdHJpbmddOiB2YWx1ZSB9IDogaXRlbVxuICAgICAgKTtcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlKCkpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLnNldEZvcm1hdGVkVmFsdWUobmV3VmFsdWVzKSk7XG4gICAgICB9IGVsc2UgdGhpcy5zZXRWYWx1ZSh0aGlzLnNldEZvcm1hdGVkVmFsdWUobmV3VmFsdWVzWzBdKSk7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBnZW5lcmF0ZUNsYXNzZXMoZWxlbWVudDogJ3ZhbHVlJyB8ICdsYWJlbCcpOiBzdHJpbmcgfCBhbnkge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKCkpIHtcbiAgICAgIGlmICh0aGlzLmhhc0xhYmVsKCkpIHtcbiAgICAgICAgaWYgKGVsZW1lbnQgPT09ICd2YWx1ZScpIHtcbiAgICAgICAgICByZXR1cm4gJ2F4LWNvbC1zdGFydC0xIGF4LWNvbC1lbmQtMTMgbGc6YXgtY29sLWVuZC03JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gJ2F4LWNvbC1zdGFydC0xIGF4LWNvbC1lbmQtMTEgbGc6YXgtY29sLXN0YXJ0LTcgbGc6YXgtY29sLWVuZC0xMiAnO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZWxlbWVudCA9PT0gJ3ZhbHVlJykge1xuICAgICAgICAgIHJldHVybiAnYXgtY29sLXN0YXJ0LTEgYXgtY29sLWVuZC0xMic7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuaGFzTGFiZWwoKSkge1xuICAgICAgICBpZiAoZWxlbWVudCA9PT0gJ3ZhbHVlJykge1xuICAgICAgICAgIHJldHVybiAnYXgtY29sLXN0YXJ0LTEgYXgtY29sLWVuZC0xMyBsZzpheC1jb2wtZW5kLTcnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiAnYXgtY29sLXN0YXJ0LTEgYXgtY29sLWVuZC0xMyBsZzpheC1jb2wtc3RhcnQtNyBsZzpheC1jb2wtZW5kLTEzJztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGVsZW1lbnQgPT09ICd2YWx1ZScpIHtcbiAgICAgICAgICByZXR1cm4gJ2F4LWNvbC1zdGFydC0xIGF4LWNvbC1lbmQtMTMnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCB2YWxpZGF0aW9uU2VydmljZSA9IGluamVjdChBWFZhbGlkYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfdmFsaWRhdGlvblJ1bGVzOiBBWFBWYWxpZGF0aW9uUnVsZXMgPSBbXTtcbiAgcHVibGljIGdldCB2YWxpZGF0aW9uUnVsZXMoKTogQVhQVmFsaWRhdGlvblJ1bGVzIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGlvblJ1bGVzO1xuICB9XG4gIHB1YmxpYyBzZXQgdmFsaWRhdGlvblJ1bGVzKHY6IEFYUFZhbGlkYXRpb25SdWxlcykge1xuICAgIHRoaXMuX3ZhbGlkYXRpb25SdWxlcyA9IHY7XG4gIH1cbiAgcHJpdmF0ZSB2YWx1ZVRvQXJyYXkoKTogQVhQQ29udGFjdERhdGFUeXBlW10ge1xuICAgIGlmICh0aGlzLmhhc0ljb24oKSB8fCB0aGlzLmhhc0xhYmVsKCkpIHtcbiAgICAgIHRoaXMuZm9ybWF0LnNldCgnb2JqZWN0Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybWF0LnNldCgnc3RyaW5nJyk7XG4gICAgfVxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlLm1hcCgoaXRlbSkgPT4gdGhpcy5pdGVtVG9BcnJheShpdGVtKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbdGhpcy5pdGVtVG9BcnJheSh2YWx1ZSA/PyAnJyldO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGl0ZW1Ub0FycmF5ID0gKGl0ZW06IEFYUENvbnRhY3REYXRhVHlwZSB8IHN0cmluZyk6IEFYUENvbnRhY3REYXRhVHlwZSA9PiB7XG4gICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JylcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhbHVlOiBpdGVtPy52YWx1ZSA/PyAnJyxcbiAgICAgICAgbGFiZWw6IHRoaXMuaGFzTGFiZWwoKSA/IGl0ZW0/LmxhYmVsIHx8IHRoaXMubGFiZWxMaXN0KClbMF0gOiB1bmRlZmluZWQsXG4gICAgICAgIGljb246IHRoaXMuaGFzSWNvbigpID8gaXRlbT8uaWNvbiB8fCB0aGlzLmNob29zZUljb24oKSA6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgZWxzZVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFsdWU6IGl0ZW0sXG4gICAgICAgIGxhYmVsOiB0aGlzLmhhc0xhYmVsKCkgPyB0aGlzLmxhYmVsTGlzdCgpWzBdIDogdW5kZWZpbmVkLFxuICAgICAgICBpY29uOiB0aGlzLmhhc0ljb24oKSA/IHRoaXMuY2hvb3NlSWNvbigpIDogdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgfTtcbiAgcHJpdmF0ZSBlbXB0eVZhbHVlKCk6IEFYUENvbnRhY3REYXRhVHlwZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiAnJyxcbiAgICB9O1xuICB9XG5cbiAgc2V0Rm9ybWF0ZWRWYWx1ZShcbiAgICBpdGVtczogQVhQQ29udGFjdERhdGFUeXBlIHwgQVhQQ29udGFjdERhdGFUeXBlW11cbiAgKTogc3RyaW5nIHwgc3RyaW5nW10gfCBBWFBDb250YWN0RGF0YVR5cGUgfCBBWFBDb250YWN0RGF0YVR5cGVbXSB7XG4gICAgaWYgKHRoaXMuZm9ybWF0KCkgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShpdGVtcykgPyBpdGVtcy5tYXAoKHgpID0+IHgudmFsdWUpIDogaXRlbXMudmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBpdGVtcztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNob29zZUljb24gPSAoKTogc3RyaW5nID0+IHtcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSgpKSB7XG4gICAgICBjYXNlICdlbWFpbCc6XG4gICAgICAgIHJldHVybiAnZmEtbGluayc7XG4gICAgICBjYXNlICdsaW5rJzpcbiAgICAgICAgcmV0dXJuICdmYS1lbnZlbG9wZSc7XG4gICAgICBjYXNlICdwaG9uZSc6XG4gICAgICAgIHJldHVybiAnZmEtcGhvbmUnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdmYS1pbmZvJztcbiAgICB9XG4gIH07XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHByaXZhdGUgZ2V0IF9fY2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjbHM6IGFueSA9IHt9O1xuICAgIGNsc1tgYXgtYmxvY2tgXSA9IHRydWU7XG4gICAgY2xzW2BheC1mbGV4LTFgXSA9IHRydWU7XG4gICAgcmV0dXJuIGNscztcbiAgfVxufVxuIl19
|
|
@@ -175,6 +175,7 @@ const AXPWidgetsCatalog = {
|
|
|
175
175
|
grid: 'grid-layout',
|
|
176
176
|
gridItem: 'grid-item-layout',
|
|
177
177
|
gridRow: 'grid-row-layout',
|
|
178
|
+
widgetSelector: 'widget-selector',
|
|
178
179
|
};
|
|
179
180
|
|
|
180
181
|
function cloneProperty(property, values) {
|
|
@@ -254,7 +255,10 @@ class AXPWidgetComponent extends AXPLayoutElement {
|
|
|
254
255
|
this._options = signal(this.token.options ?? {});
|
|
255
256
|
this.options = this._options.asReadonly();
|
|
256
257
|
this.contextService = inject(AXPLayoutBuilderService);
|
|
257
|
-
this.rawValue = computed(() =>
|
|
258
|
+
this.rawValue = computed(() => {
|
|
259
|
+
debugger;
|
|
260
|
+
return this._fullPath ? get(this.contextService.context, this._fullPath) : null;
|
|
261
|
+
});
|
|
258
262
|
this.onReady = new Subject();
|
|
259
263
|
this.isRendered = false;
|
|
260
264
|
this.nextRender = afterNextRender(() => {
|