@gravitee/ui-particles-angular 13.5.3-renovate-angular-ecdc544 → 13.6.0-renovate-angular-071cc78
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/gio-asciidoctor/gio-asciidoctor.component.mjs +3 -3
- package/esm2022/gio-asciidoctor/gio-asciidoctor.module.mjs +4 -4
- package/esm2022/gio-asciidoctor/gio-asciidoctor.service.mjs +3 -3
- package/esm2022/gio-el/gio-el-editor/gio-el-editor-condition-group/gio-el-editor-condition-group.component.mjs +16 -17
- package/esm2022/gio-el/gio-el-editor/gio-el-editor-condition-group/gio-el-editor-condition-group.harness.mjs +7 -7
- package/esm2022/gio-el/gio-el-editor/gio-el-editor.component.mjs +20 -17
- package/esm2022/gio-el/gio-el-editor/gio-el-editor.harness.mjs +5 -2
- package/esm2022/gio-el/gio-el-editor/gio-el-field/gio-el-field.component.mjs +271 -0
- package/esm2022/gio-el/gio-el-editor/gio-el-field/gio-el-field.harness.mjs +53 -0
- package/esm2022/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type-boolean/gio-el-editor-type-boolean.component.mjs +5 -5
- package/esm2022/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type-date/gio-el-editor-type-date.component.mjs +5 -5
- package/esm2022/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type-number/gio-el-editor-type-number.component.mjs +5 -5
- package/esm2022/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type-string/gio-el-editor-type-string.component.mjs +7 -7
- package/esm2022/gio-el/models/Condition.mjs +1 -1
- package/esm2022/gio-el/models/ConditionGroup.mjs +1 -1
- package/esm2022/gio-el/models/ConditionModel.mjs +16 -1
- package/esm2022/gio-el/models/ExpressionLanguageBuilder.mjs +25 -12
- package/esm2022/lib/gio-avatar/gio-avatar.component.mjs +3 -3
- package/esm2022/lib/gio-avatar/gio-avatar.module.mjs +4 -4
- package/esm2022/lib/gio-banner/gio-banner.component.mjs +21 -21
- package/esm2022/lib/gio-banner/gio-banner.module.mjs +4 -4
- package/esm2022/lib/gio-breadcrumb/gio-breadcrumb-item.directive.mjs +3 -3
- package/esm2022/lib/gio-breadcrumb/gio-breadcrumb.component.mjs +3 -3
- package/esm2022/lib/gio-breadcrumb/gio-breadcrumb.module.mjs +4 -4
- package/esm2022/lib/gio-card-empty-state/gio-card-empty-state.component.mjs +3 -3
- package/esm2022/lib/gio-card-empty-state/gio-card-empty-state.module.mjs +4 -4
- package/esm2022/lib/gio-clipboard/gio-clipboard-copy-icon.component.mjs +3 -3
- package/esm2022/lib/gio-clipboard/gio-clipboard-copy-wrapper.component.mjs +3 -3
- package/esm2022/lib/gio-clipboard/gio-clipboard.base.component.mjs +3 -3
- package/esm2022/lib/gio-clipboard/gio-clipboard.module.mjs +4 -4
- package/esm2022/lib/gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.component.mjs +3 -3
- package/esm2022/lib/gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.module.mjs +4 -4
- package/esm2022/lib/gio-confirm-dialog/gio-confirm-dialog.component.mjs +3 -3
- package/esm2022/lib/gio-confirm-dialog/gio-confirm-dialog.module.mjs +4 -4
- package/esm2022/lib/gio-form-cron/gio-form-cron-hint.component.mjs +3 -3
- package/esm2022/lib/gio-form-cron/gio-form-cron-label.component.mjs +3 -3
- package/esm2022/lib/gio-form-cron/gio-form-cron.component.mjs +3 -3
- package/esm2022/lib/gio-form-cron/gio-form-cron.module.mjs +4 -4
- package/esm2022/lib/gio-form-file-picker/gio-form-file-picker-add-button/gio-form-file-picker-add-button.component.mjs +3 -3
- package/esm2022/lib/gio-form-file-picker/gio-form-file-picker-empty/gio-form-file-picker-empty.component.mjs +3 -3
- package/esm2022/lib/gio-form-file-picker/gio-form-file-picker-label/gio-form-file-picker-label.component.mjs +3 -3
- package/esm2022/lib/gio-form-file-picker/gio-form-file-picker.component.mjs +3 -3
- package/esm2022/lib/gio-form-file-picker/gio-form-file-picker.module.mjs +4 -4
- package/esm2022/lib/gio-form-focus-first-invalid/gio-form-focus-first-invalid-ignore.directive.mjs +3 -3
- package/esm2022/lib/gio-form-focus-first-invalid/gio-form-focus-first-invalid.directive.mjs +9 -9
- package/esm2022/lib/gio-form-focus-first-invalid/gio-form-focus-first-invalid.module.mjs +4 -4
- package/esm2022/lib/gio-form-headers/gio-form-headers-label.component.mjs +3 -3
- package/esm2022/lib/gio-form-headers/gio-form-headers.component.mjs +3 -3
- package/esm2022/lib/gio-form-headers/gio-form-headers.module.mjs +4 -4
- package/esm2022/lib/gio-form-json-schema/gio-form-json-schema.component.mjs +3 -3
- package/esm2022/lib/gio-form-json-schema/gio-form-json-schema.module.mjs +4 -4
- package/esm2022/lib/gio-form-json-schema/gio-formly-json-schema.service.mjs +3 -3
- package/esm2022/lib/gio-form-json-schema/type-component/array-type.component.mjs +3 -3
- package/esm2022/lib/gio-form-json-schema/type-component/code-editor-type.component.mjs +3 -3
- package/esm2022/lib/gio-form-json-schema/type-component/cron-type.component.mjs +3 -3
- package/esm2022/lib/gio-form-json-schema/type-component/headers-type.component.mjs +3 -3
- package/esm2022/lib/gio-form-json-schema/type-component/multischema-type.component.mjs +3 -3
- package/esm2022/lib/gio-form-json-schema/type-component/null-type.component.mjs +3 -3
- package/esm2022/lib/gio-form-json-schema/type-component/object-type.component.mjs +3 -3
- package/esm2022/lib/gio-form-json-schema/type-component/toggle-type.component.mjs +3 -3
- package/esm2022/lib/gio-form-json-schema/wrappers/gio-banner-wrapper.component.mjs +3 -3
- package/esm2022/lib/gio-form-json-schema/wrappers/gio-password-eye.component.mjs +3 -3
- package/esm2022/lib/gio-form-selection-inline/gio-form-selection-inline-card-content/gio-form-selection-inline-card-content.component.mjs +9 -9
- package/esm2022/lib/gio-form-selection-inline/gio-form-selection-inline-card.component.mjs +3 -3
- package/esm2022/lib/gio-form-selection-inline/gio-form-selection-inline.component.mjs +3 -3
- package/esm2022/lib/gio-form-selection-inline/gio-form-selection-inline.module.mjs +4 -4
- package/esm2022/lib/gio-form-slide-toggle/gio-form-label.directive.mjs +9 -9
- package/esm2022/lib/gio-form-slide-toggle/gio-form-slide-toggle.component.mjs +3 -3
- package/esm2022/lib/gio-form-slide-toggle/gio-form-slide-toggle.module.mjs +4 -4
- package/esm2022/lib/gio-form-tags-input/gio-form-tags-input.component.mjs +3 -3
- package/esm2022/lib/gio-form-tags-input/gio-form-tags-input.module.mjs +4 -4
- package/esm2022/lib/gio-icons/gio-icons.module.mjs +4 -4
- package/esm2022/lib/gio-license/gio-license-dialog/gio-license-dialog.component.mjs +3 -3
- package/esm2022/lib/gio-license/gio-license-dialog/gio-license-dialog.module.mjs +4 -4
- package/esm2022/lib/gio-license/gio-license.directive.mjs +3 -3
- package/esm2022/lib/gio-license/gio-license.module.mjs +4 -4
- package/esm2022/lib/gio-license/gio-license.service.mjs +3 -3
- package/esm2022/lib/gio-license/gio-license.testing.module.mjs +4 -4
- package/esm2022/lib/gio-license-expiration-notification/gio-license-expiration-notification.component.mjs +3 -3
- package/esm2022/lib/gio-license-expiration-notification/gio-license-expiration-notification.module.mjs +4 -4
- package/esm2022/lib/gio-loader/gio-loader.component.mjs +3 -3
- package/esm2022/lib/gio-loader/gio-loader.module.mjs +4 -4
- package/esm2022/lib/gio-mat-config/gio-mat-config.module.mjs +4 -4
- package/esm2022/lib/gio-monaco-editor/gio-monaco-editor-form-field.directive.mjs +3 -3
- package/esm2022/lib/gio-monaco-editor/gio-monaco-editor.component.mjs +3 -3
- package/esm2022/lib/gio-monaco-editor/gio-monaco-editor.module.mjs +4 -4
- package/esm2022/lib/gio-monaco-editor/gio-monaco-editor.testing.component.mjs +3 -3
- package/esm2022/lib/gio-monaco-editor/services/gio-language-el.service.mjs +3 -3
- package/esm2022/lib/gio-monaco-editor/services/gio-language-json.service.mjs +3 -3
- package/esm2022/lib/gio-monaco-editor/services/gio-monaco-editor.service.mjs +3 -3
- package/esm2022/lib/gio-pipe/gio.pipe.module.mjs +4 -4
- package/esm2022/lib/gio-pipe/safe.pipe.mjs +3 -3
- package/esm2022/lib/gio-prismjs/gio-prismjs.service.mjs +3 -3
- package/esm2022/lib/gio-save-bar/gio-save-bar.component.mjs +3 -3
- package/esm2022/lib/gio-save-bar/gio-save-bar.module.mjs +4 -4
- package/esm2022/lib/oem-theme/gio-menu/gio-menu-footer/gio-menu-footer.component.mjs +3 -3
- package/esm2022/lib/oem-theme/gio-menu/gio-menu-header/gio-menu-header.component.mjs +3 -3
- package/esm2022/lib/oem-theme/gio-menu/gio-menu-item/gio-menu-item.component.mjs +3 -3
- package/esm2022/lib/oem-theme/gio-menu/gio-menu-license-expiration-notification/gio-menu-license-expiration-notification.component.mjs +3 -3
- package/esm2022/lib/oem-theme/gio-menu/gio-menu-list/gio-menu-list.component.mjs +3 -3
- package/esm2022/lib/oem-theme/gio-menu/gio-menu-search/gio-menu-search.component.mjs +3 -3
- package/esm2022/lib/oem-theme/gio-menu/gio-menu-search/gio-menu-search.service.mjs +3 -3
- package/esm2022/lib/oem-theme/gio-menu/gio-menu-selector/gio-menu-selector.component.mjs +3 -3
- package/esm2022/lib/oem-theme/gio-menu/gio-menu.component.mjs +3 -3
- package/esm2022/lib/oem-theme/gio-menu/gio-menu.module.mjs +4 -4
- package/esm2022/lib/oem-theme/gio-menu/gio-menu.service.mjs +3 -3
- package/esm2022/lib/oem-theme/gio-submenu/gio-submenu-group/gio-submenu-group.component.mjs +3 -3
- package/esm2022/lib/oem-theme/gio-submenu/gio-submenu-item/gio-submenu-item.component.mjs +3 -3
- package/esm2022/lib/oem-theme/gio-submenu/gio-submenu.component.mjs +6 -6
- package/esm2022/lib/oem-theme/gio-submenu/gio-submenu.module.mjs +4 -4
- package/esm2022/lib/oem-theme/gio-top-bar/gio-top-bar-content/gio-top-bar-content.component.mjs +3 -3
- package/esm2022/lib/oem-theme/gio-top-bar/gio-top-bar-link/gio-top-bar-link.component.mjs +3 -3
- package/esm2022/lib/oem-theme/gio-top-bar/gio-top-bar-link/gio-top-bar-link.module.mjs +4 -4
- package/esm2022/lib/oem-theme/gio-top-bar/gio-top-bar-menu/gio-top-bar-menu.component.mjs +3 -3
- package/esm2022/lib/oem-theme/gio-top-bar/gio-top-bar-menu/gio-top-bar-menu.module.mjs +4 -4
- package/esm2022/lib/oem-theme/gio-top-bar/gio-top-bar.component.mjs +3 -3
- package/esm2022/lib/oem-theme/gio-top-bar/gio-top-bar.module.mjs +4 -4
- package/fesm2022/gravitee-ui-particles-angular-gio-asciidoctor.mjs +10 -10
- package/fesm2022/gravitee-ui-particles-angular-gio-el.mjs +407 -68
- package/fesm2022/gravitee-ui-particles-angular-gio-el.mjs.map +1 -1
- package/fesm2022/gravitee-ui-particles-angular.mjs +369 -369
- package/gio-el/gio-el-editor/gio-el-editor-condition-group/gio-el-editor-condition-group.component.d.ts +4 -4
- package/gio-el/gio-el-editor/gio-el-editor-condition-group/gio-el-editor-condition-group.harness.d.ts +6 -2
- package/gio-el/gio-el-editor/gio-el-editor.component.d.ts +3 -4
- package/gio-el/gio-el-editor/gio-el-editor.harness.d.ts +2 -1
- package/gio-el/gio-el-editor/gio-el-field/gio-el-field.component.d.ts +70 -0
- package/gio-el/gio-el-editor/gio-el-field/gio-el-field.harness.d.ts +14 -0
- package/gio-el/gio-el-editor/gio-el-type/gio-el-editor-type-string/gio-el-editor-type-string.component.d.ts +6 -1
- package/gio-el/models/Condition.d.ts +13 -4
- package/gio-el/models/ConditionGroup.d.ts +3 -2
- package/gio-el/models/ConditionModel.d.ts +19 -2
- package/gio-el/models/ExpressionLanguageBuilder.d.ts +1 -0
- package/package.json +7 -7
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { ComponentHarness, HarnessPredicate, parallel } from '@angular/cdk/testing';
|
|
17
17
|
import { MatMenuHarness } from '@angular/material/menu/testing';
|
|
18
|
-
import { MatSelectHarness } from '@angular/material/select/testing';
|
|
19
18
|
import { MatButtonToggleGroupHarness } from '@angular/material/button-toggle/testing';
|
|
20
19
|
import { DivHarness } from '@gravitee/ui-particles-angular/testing';
|
|
21
20
|
import { GioElEditorTypeBooleanHarness } from '../gio-el-type/gio-el-editor-type-boolean/gio-el-editor-type-boolean.harness';
|
|
22
21
|
import { GioElEditorTypeStringHarness } from '../gio-el-type/gio-el-editor-type-string/gio-el-editor-type-string.harness';
|
|
23
22
|
import { GioElEditorTypeNumberHarness } from '../gio-el-type/gio-el-editor-type-number/gio-el-editor-type-number.harness';
|
|
24
23
|
import { GioElEditorTypeDateHarness } from '../gio-el-type/gio-el-editor-type-date/gio-el-editor-type-date.harness';
|
|
24
|
+
import { GioElFieldHarness } from '../gio-el-field/gio-el-field.harness';
|
|
25
25
|
export class GioElEditorConditionGroupHarness extends ComponentHarness {
|
|
26
26
|
constructor() {
|
|
27
27
|
super(...arguments);
|
|
@@ -41,7 +41,7 @@ export class GioElEditorConditionGroupHarness extends ComponentHarness {
|
|
|
41
41
|
};
|
|
42
42
|
this.getConditionHarness = async (index) => (await this.getConditionsHarness()).at(index);
|
|
43
43
|
this.getConditionTypeHarness = (divHarness) => divHarness.childLocatorForOptional(GioElEditorTypeStringHarness, GioElEditorTypeBooleanHarness, GioElEditorTypeNumberHarness, GioElEditorTypeDateHarness)();
|
|
44
|
-
this.getConditionField = (divHarness) => divHarness.childLocatorFor(
|
|
44
|
+
this.getConditionField = (divHarness) => divHarness.childLocatorFor(GioElFieldHarness.with({ selector: '[formControlName="field"]' }))();
|
|
45
45
|
}
|
|
46
46
|
static { this.hostSelector = 'gio-el-editor-condition-group'; }
|
|
47
47
|
static with(options = {}) {
|
|
@@ -73,13 +73,13 @@ export class GioElEditorConditionGroupHarness extends ComponentHarness {
|
|
|
73
73
|
}
|
|
74
74
|
return toggles[0].check();
|
|
75
75
|
}
|
|
76
|
-
async selectConditionField(index, field) {
|
|
76
|
+
async selectConditionField(index, field, key1, key2) {
|
|
77
77
|
const conditionDiv = await this.getConditionHarness(index);
|
|
78
78
|
if (!conditionDiv || !(conditionDiv instanceof DivHarness)) {
|
|
79
79
|
throw new Error(`Condition with index ${index} not found`);
|
|
80
80
|
}
|
|
81
|
-
const
|
|
82
|
-
await
|
|
81
|
+
const conditionField = await this.getConditionField(conditionDiv);
|
|
82
|
+
await conditionField.setValue(field, key1, key2);
|
|
83
83
|
}
|
|
84
84
|
async selectConditionOperator(index, operator) {
|
|
85
85
|
const conditionDiv = await this.getConditionHarness(index);
|
|
@@ -144,7 +144,7 @@ export class GioElEditorConditionGroupHarness extends ComponentHarness {
|
|
|
144
144
|
const conditionField = await this.getConditionField(condition);
|
|
145
145
|
const conditionType = await this.getConditionTypeHarness(condition);
|
|
146
146
|
return {
|
|
147
|
-
field: await conditionField.
|
|
147
|
+
field: await conditionField.getValue(),
|
|
148
148
|
operator: await conditionType?.getOperatorValue(),
|
|
149
149
|
value: await conditionType?.getValue(),
|
|
150
150
|
};
|
|
@@ -155,4 +155,4 @@ export class GioElEditorConditionGroupHarness extends ComponentHarness {
|
|
|
155
155
|
};
|
|
156
156
|
}
|
|
157
157
|
}
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWVsLWVkaXRvci1jb25kaXRpb24tZ3JvdXAuaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBhcnRpY2xlcy1hbmd1bGFyL2dpby1lbC9naW8tZWwtZWRpdG9yL2dpby1lbC1lZGl0b3ItY29uZGl0aW9uLWdyb3VwL2dpby1lbC1lZGl0b3ItY29uZGl0aW9uLWdyb3VwLmhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQXNCLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFcEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOEVBQThFLENBQUM7QUFDN0gsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNEVBQTRFLENBQUM7QUFDMUgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNEVBQTRFLENBQUM7QUFDMUgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFZcEgsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLGdCQUFnQjtJQUF0RTs7UUFPUyxlQUFVLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUUxRSxxQkFBZ0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLGtDQUE2QixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLCtCQUErQixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pJLHlCQUFvQixHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ3hDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDYixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDMUMsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FDdkIsVUFBVSxDQUFDLElBQUksQ0FBQztnQkFDZCxRQUFRLEVBQUUsb0RBQW9ELE9BQU8sSUFBSTthQUMxRSxDQUFDLEVBQ0YsZ0NBQWdDLENBQUMsSUFBSSxDQUFDO2dCQUNwQyxRQUFRLEVBQUUseURBQXlELE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUk7YUFDM0YsQ0FBQyxDQUNILEVBQUUsQ0FBQztRQUNOLENBQUMsQ0FBQztRQUVNLHdCQUFtQixHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3Riw0QkFBdUIsR0FBRyxDQUFDLFVBQXNCLEVBQUUsRUFBRSxDQUMzRCxVQUFVLENBQUMsdUJBQXVCLENBQ2hDLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0IsNEJBQTRCLEVBQzVCLDBCQUEwQixDQUMzQixFQUFFLENBQUM7UUFDRSxzQkFBaUIsR0FBRyxDQUFDLFVBQXNCLEVBQUUsRUFBRSxDQUNyRCxVQUFVLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSwyQkFBMkIsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO0lBK0huRyxDQUFDO2FBaktlLGlCQUFZLEdBQUcsK0JBQStCLEFBQWxDLENBQW1DO0lBRXRELE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBOEIsRUFBRTtRQUNqRCxPQUFPLElBQUksZ0JBQWdCLENBQUMsZ0NBQWdDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQWdDTSxLQUFLLENBQUMsMEJBQTBCO1FBQ3JDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVNLEtBQUssQ0FBQyxzQkFBc0I7UUFDakMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sS0FBSyxDQUFDLGlCQUFpQjtRQUM1QixNQUFNLDBCQUEwQixHQUFHLE1BQU0sSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7UUFDOUUsTUFBTSxlQUFlLEdBQUcsTUFBTSwwQkFBMEIsQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN2RixJQUFJLGVBQWUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxNQUFNLFFBQVEsR0FBaUM7WUFDN0MsR0FBRyxFQUFFLEtBQUs7WUFDVixFQUFFLEVBQUUsSUFBSTtTQUNULENBQUM7UUFFRixPQUFPLFFBQVEsQ0FBQyxNQUFNLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxLQUFLLENBQUMsb0JBQW9CLENBQUMsUUFBc0I7UUFDdEQsTUFBTSwwQkFBMEIsR0FBRyxNQUFNLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1FBQzlFLE1BQU0sT0FBTyxHQUFHLE1BQU0sMEJBQTBCLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDaEYsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxLQUFhLEVBQUUsS0FBYTtRQUM1RCxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxZQUFZLFlBQVksVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUMzRCxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixLQUFLLFlBQVksQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvRCxNQUFNLFdBQVcsQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0sS0FBSyxDQUFDLHVCQUF1QixDQUFDLEtBQWEsRUFBRSxRQUFnQjtRQUNsRSxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxZQUFZLFlBQVksVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUMzRCxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixLQUFLLFlBQVksQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFFRCxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFFRCxNQUFNLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxLQUFhO1FBQ3ZELE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLFlBQVksWUFBWSxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzNELE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLEtBQUssWUFBWSxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUNELE9BQU8sYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVNLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFhLEVBQUUsS0FBdUM7UUFDbkYsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsWUFBWSxZQUFZLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDM0QsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsS0FBSyxZQUFZLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztRQUNsRSxDQUFDO1FBRUQsSUFBSSxhQUFhLFlBQVksNEJBQTRCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdkYsTUFBTSxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLENBQUM7YUFBTSxJQUFJLGFBQWEsWUFBWSw2QkFBNkIsSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoRyxNQUFNLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsQ0FBQzthQUFNLElBQUksYUFBYSxZQUFZLDRCQUE0QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlGLE1BQU0sYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QyxDQUFDO2FBQU0sSUFBSSxhQUFhLFlBQVksMEJBQTBCLElBQUksS0FBSyxZQUFZLElBQUksRUFBRSxDQUFDO1lBQ3hGLE1BQU0sYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QyxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUN0RCxDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFhO1FBQzFDLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdELElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxDQUFDLGNBQWMsWUFBWSxnQ0FBZ0MsQ0FBQyxFQUFFLENBQUM7WUFDckYsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsS0FBSyxZQUFZLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVNLEtBQUssQ0FBQyxhQUFhO1FBQ3hCLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUUzRCxNQUFNLFVBQVUsR0FBRyxNQUFNLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDckMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsRUFBRTtZQUNyQyxJQUFJLFNBQVMsWUFBWSxnQ0FBZ0MsRUFBRSxDQUFDO2dCQUMxRCxPQUFPLE1BQU0sU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3pDLENBQUM7WUFDRCxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUUvRCxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwRSxPQUFPO2dCQUNMLEtBQUssRUFBRSxNQUFNLGNBQWMsQ0FBQyxZQUFZLEVBQUU7Z0JBQzFDLFFBQVEsRUFBRSxNQUFNLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDakQsS0FBSyxFQUFFLE1BQU0sYUFBYSxFQUFFLFFBQVEsRUFBRTthQUN2QyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLE9BQU87WUFDTCxTQUFTLEVBQUUsTUFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDekMsVUFBVTtTQUNYLENBQUM7SUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyNCBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IEJhc2VIYXJuZXNzRmlsdGVycywgQ29tcG9uZW50SGFybmVzcywgSGFybmVzc1ByZWRpY2F0ZSwgcGFyYWxsZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBNYXRNZW51SGFybmVzcyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUvdGVzdGluZyc7XG5pbXBvcnQgeyBNYXRTZWxlY3RIYXJuZXNzIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0L3Rlc3RpbmcnO1xuaW1wb3J0IHsgTWF0QnV0dG9uVG9nZ2xlR3JvdXBIYXJuZXNzIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZS90ZXN0aW5nJztcbmltcG9ydCB7IERpdkhhcm5lc3MgfSBmcm9tICdAZ3Jhdml0ZWUvdWktcGFydGljbGVzLWFuZ3VsYXIvdGVzdGluZyc7XG5cbmltcG9ydCB7IEdpb0VsRWRpdG9yVHlwZUJvb2xlYW5IYXJuZXNzIH0gZnJvbSAnLi4vZ2lvLWVsLXR5cGUvZ2lvLWVsLWVkaXRvci10eXBlLWJvb2xlYW4vZ2lvLWVsLWVkaXRvci10eXBlLWJvb2xlYW4uaGFybmVzcyc7XG5pbXBvcnQgeyBHaW9FbEVkaXRvclR5cGVTdHJpbmdIYXJuZXNzIH0gZnJvbSAnLi4vZ2lvLWVsLXR5cGUvZ2lvLWVsLWVkaXRvci10eXBlLXN0cmluZy9naW8tZWwtZWRpdG9yLXR5cGUtc3RyaW5nLmhhcm5lc3MnO1xuaW1wb3J0IHsgR2lvRWxFZGl0b3JUeXBlTnVtYmVySGFybmVzcyB9IGZyb20gJy4uL2dpby1lbC10eXBlL2dpby1lbC1lZGl0b3ItdHlwZS1udW1iZXIvZ2lvLWVsLWVkaXRvci10eXBlLW51bWJlci5oYXJuZXNzJztcbmltcG9ydCB7IEdpb0VsRWRpdG9yVHlwZURhdGVIYXJuZXNzIH0gZnJvbSAnLi4vZ2lvLWVsLXR5cGUvZ2lvLWVsLWVkaXRvci10eXBlLWRhdGUvZ2lvLWVsLWVkaXRvci10eXBlLWRhdGUuaGFybmVzcyc7XG5cbnR5cGUgQ29uZGl0aW9uR3JvdXBIYXJuZXNzVmFsdWVzID0ge1xuICBjb25kaXRpb246ICdBTkQnIHwgJ09SJztcbiAgY29uZGl0aW9uczogKENvbmRpdGlvbkdyb3VwSGFybmVzc1ZhbHVlcyB8IENvbmRpdGlvbkhhcm5lc3NWYWx1ZXMpW107XG59O1xudHlwZSBDb25kaXRpb25IYXJuZXNzVmFsdWVzID0ge1xuICBmaWVsZDogc3RyaW5nO1xuICBvcGVyYXRvcj86IHN0cmluZztcbiAgdmFsdWU/OiBzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyO1xufTtcblxuZXhwb3J0IGNsYXNzIEdpb0VsRWRpdG9yQ29uZGl0aW9uR3JvdXBIYXJuZXNzIGV4dGVuZHMgQ29tcG9uZW50SGFybmVzcyB7XG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ2dpby1lbC1lZGl0b3ItY29uZGl0aW9uLWdyb3VwJztcblxuICBwdWJsaWMgc3RhdGljIHdpdGgob3B0aW9uczogQmFzZUhhcm5lc3NGaWx0ZXJzID0ge30pOiBIYXJuZXNzUHJlZGljYXRlPEdpb0VsRWRpdG9yQ29uZGl0aW9uR3JvdXBIYXJuZXNzPiB7XG4gICAgcmV0dXJuIG5ldyBIYXJuZXNzUHJlZGljYXRlKEdpb0VsRWRpdG9yQ29uZGl0aW9uR3JvdXBIYXJuZXNzLCBvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXROb2RlTHZsID0gKCkgPT4gdGhpcy5ob3N0KCkudGhlbihob3N0ID0+IGhvc3QuZ2V0QXR0cmlidXRlKCdub2RlLWx2bCcpKTtcblxuICBwcml2YXRlIGdldEFkZE1lbnVCdXR0b24gPSB0aGlzLmxvY2F0b3JGb3IoTWF0TWVudUhhcm5lc3Mud2l0aCh7IHRyaWdnZXJUZXh0OiAvQWRkLyB9KSk7XG4gIHByaXZhdGUgZ2V0Q29uZGl0aW9uQnV0dG9uVG9nZ2xlR3JvdXAgPSB0aGlzLmxvY2F0b3JGb3IoTWF0QnV0dG9uVG9nZ2xlR3JvdXBIYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogJ1tmb3JtQ29udHJvbE5hbWU9XCJjb25kaXRpb25cIl0nIH0pKTtcbiAgcHJpdmF0ZSBnZXRDb25kaXRpb25zSGFybmVzcyA9IGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBub2RlTHZsID0gYXdhaXQgdGhpcy5nZXROb2RlTHZsKCk7XG4gICAgaWYgKCFub2RlTHZsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vZGUgbGV2ZWwgbm90IGZvdW5kJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmxvY2F0b3JGb3JBbGwoXG4gICAgICBEaXZIYXJuZXNzLndpdGgoe1xuICAgICAgICBzZWxlY3RvcjogYC5jb25kaXRpb25Hcm91cF9fY29uZGl0aW9uc19fY29uZGl0aW9uW25vZGUtbHZsPVwiJHtub2RlTHZsfVwiXWAsXG4gICAgICB9KSxcbiAgICAgIEdpb0VsRWRpdG9yQ29uZGl0aW9uR3JvdXBIYXJuZXNzLndpdGgoe1xuICAgICAgICBzZWxlY3RvcjogYC5jb25kaXRpb25Hcm91cF9fY29uZGl0aW9uc19fY29uZGl0aW9uR3JvdXBbbm9kZS1sdmw9XCIke051bWJlcihub2RlTHZsKSArIDF9XCJdYCxcbiAgICAgIH0pLFxuICAgICkoKTtcbiAgfTtcblxuICBwcml2YXRlIGdldENvbmRpdGlvbkhhcm5lc3MgPSBhc3luYyAoaW5kZXg6IG51bWJlcikgPT4gKGF3YWl0IHRoaXMuZ2V0Q29uZGl0aW9uc0hhcm5lc3MoKSkuYXQoaW5kZXgpO1xuICBwcml2YXRlIGdldENvbmRpdGlvblR5cGVIYXJuZXNzID0gKGRpdkhhcm5lc3M6IERpdkhhcm5lc3MpID0+XG4gICAgZGl2SGFybmVzcy5jaGlsZExvY2F0b3JGb3JPcHRpb25hbChcbiAgICAgIEdpb0VsRWRpdG9yVHlwZVN0cmluZ0hhcm5lc3MsXG4gICAgICBHaW9FbEVkaXRvclR5cGVCb29sZWFuSGFybmVzcyxcbiAgICAgIEdpb0VsRWRpdG9yVHlwZU51bWJlckhhcm5lc3MsXG4gICAgICBHaW9FbEVkaXRvclR5cGVEYXRlSGFybmVzcyxcbiAgICApKCk7XG4gIHByaXZhdGUgZ2V0Q29uZGl0aW9uRmllbGQgPSAoZGl2SGFybmVzczogRGl2SGFybmVzcykgPT5cbiAgICBkaXZIYXJuZXNzLmNoaWxkTG9jYXRvckZvcihNYXRTZWxlY3RIYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogJ1tmb3JtQ29udHJvbE5hbWU9XCJmaWVsZFwiXScgfSkpKCk7XG5cbiAgcHVibGljIGFzeW5jIGNsaWNrQWRkTmV3Q29uZGl0aW9uQnV0dG9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IChhd2FpdCB0aGlzLmdldEFkZE1lbnVCdXR0b24oKSkuY2xpY2tJdGVtKHsgdGV4dDogL0FkZCBDb25kaXRpb24vIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNsaWNrQWRkTmV3R3JvdXBCdXR0b24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgKGF3YWl0IHRoaXMuZ2V0QWRkTWVudUJ1dHRvbigpKS5jbGlja0l0ZW0oeyB0ZXh0OiAvQWRkIEdyb3VwLyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRDb25kaXRpb25WYWx1ZSgpOiBQcm9taXNlPCdBTkQnIHwgJ09SJz4ge1xuICAgIGNvbnN0IGNvbmRpdGlvbkJ1dHRvblRvZ2dsZUdyb3VwID0gYXdhaXQgdGhpcy5nZXRDb25kaXRpb25CdXR0b25Ub2dnbGVHcm91cCgpO1xuICAgIGNvbnN0IHNlbGVjdGVkVG9nZ2xlcyA9IGF3YWl0IGNvbmRpdGlvbkJ1dHRvblRvZ2dsZUdyb3VwLmdldFRvZ2dsZXMoeyBjaGVja2VkOiB0cnVlIH0pO1xuICAgIGlmIChzZWxlY3RlZFRvZ2dsZXMubGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIG9wZXJhdG9yIHNlbGVjdGVkJyk7XG4gICAgfVxuICAgIGNvbnN0IGFuZE9yTWFwOiBSZWNvcmQ8c3RyaW5nLCAnQU5EJyB8ICdPUic+ID0ge1xuICAgICAgQU5EOiAnQU5EJyxcbiAgICAgIE9SOiAnT1InLFxuICAgIH07XG5cbiAgICByZXR1cm4gYW5kT3JNYXBbYXdhaXQgc2VsZWN0ZWRUb2dnbGVzWzBdLmdldFRleHQoKV07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2VsZWN0Q29uZGl0aW9uVmFsdWUob3BlcmF0b3I6ICdBTkQnIHwgJ09SJyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvbmRpdGlvbkJ1dHRvblRvZ2dsZUdyb3VwID0gYXdhaXQgdGhpcy5nZXRDb25kaXRpb25CdXR0b25Ub2dnbGVHcm91cCgpO1xuICAgIGNvbnN0IHRvZ2dsZXMgPSBhd2FpdCBjb25kaXRpb25CdXR0b25Ub2dnbGVHcm91cC5nZXRUb2dnbGVzKHsgdGV4dDogb3BlcmF0b3IgfSk7XG4gICAgaWYgKHRvZ2dsZXMubGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIG9wZXJhdG9yIHNlbGVjdGVkJyk7XG4gICAgfVxuICAgIHJldHVybiB0b2dnbGVzWzBdLmNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2VsZWN0Q29uZGl0aW9uRmllbGQoaW5kZXg6IG51bWJlciwgZmllbGQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvbmRpdGlvbkRpdiA9IGF3YWl0IHRoaXMuZ2V0Q29uZGl0aW9uSGFybmVzcyhpbmRleCk7XG4gICAgaWYgKCFjb25kaXRpb25EaXYgfHwgIShjb25kaXRpb25EaXYgaW5zdGFuY2VvZiBEaXZIYXJuZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb25kaXRpb24gd2l0aCBpbmRleCAke2luZGV4fSBub3QgZm91bmRgKTtcbiAgICB9XG5cbiAgICBjb25zdCBmaWVsZFNlbGVjdCA9IGF3YWl0IHRoaXMuZ2V0Q29uZGl0aW9uRmllbGQoY29uZGl0aW9uRGl2KTtcbiAgICBhd2FpdCBmaWVsZFNlbGVjdC5jbGlja09wdGlvbnMoeyB0ZXh0OiBmaWVsZCB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZWxlY3RDb25kaXRpb25PcGVyYXRvcihpbmRleDogbnVtYmVyLCBvcGVyYXRvcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY29uZGl0aW9uRGl2ID0gYXdhaXQgdGhpcy5nZXRDb25kaXRpb25IYXJuZXNzKGluZGV4KTtcbiAgICBpZiAoIWNvbmRpdGlvbkRpdiB8fCAhKGNvbmRpdGlvbkRpdiBpbnN0YW5jZW9mIERpdkhhcm5lc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbmRpdGlvbiB3aXRoIGluZGV4ICR7aW5kZXh9IG5vdCBmb3VuZGApO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbmRpdGlvblR5cGUgPSBhd2FpdCB0aGlzLmdldENvbmRpdGlvblR5cGVIYXJuZXNzKGNvbmRpdGlvbkRpdik7XG4gICAgaWYgKCFjb25kaXRpb25UeXBlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbmRpdGlvbiB0eXBlIG5vdCBmb3VuZC4gU2VsZWN0IGZpZWxkIGZpcnN0YCk7XG4gICAgfVxuXG4gICAgYXdhaXQgY29uZGl0aW9uVHlwZS5zZWxlY3RPcGVyYXRvcihvcGVyYXRvcik7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0Q29uZGl0aW9uQXZhaWxhYmxlT3BlcmF0b3JzKGluZGV4OiBudW1iZXIpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgY29uc3QgY29uZGl0aW9uRGl2ID0gYXdhaXQgdGhpcy5nZXRDb25kaXRpb25IYXJuZXNzKGluZGV4KTtcbiAgICBpZiAoIWNvbmRpdGlvbkRpdiB8fCAhKGNvbmRpdGlvbkRpdiBpbnN0YW5jZW9mIERpdkhhcm5lc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbmRpdGlvbiB3aXRoIGluZGV4ICR7aW5kZXh9IG5vdCBmb3VuZGApO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbmRpdGlvblR5cGUgPSBhd2FpdCB0aGlzLmdldENvbmRpdGlvblR5cGVIYXJuZXNzKGNvbmRpdGlvbkRpdik7XG4gICAgaWYgKCFjb25kaXRpb25UeXBlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbmRpdGlvbiB0eXBlIG5vdCBmb3VuZC4gU2VsZWN0IGZpZWxkIGZpcnN0YCk7XG4gICAgfVxuICAgIHJldHVybiBjb25kaXRpb25UeXBlLmdldEF2YWlsYWJsZU9wZXJhdG9ycygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNldENvbmRpdGlvblZhbHVlKGluZGV4OiBudW1iZXIsIHZhbHVlOiBzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyIHwgRGF0ZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvbmRpdGlvbkRpdiA9IGF3YWl0IHRoaXMuZ2V0Q29uZGl0aW9uSGFybmVzcyhpbmRleCk7XG4gICAgaWYgKCFjb25kaXRpb25EaXYgfHwgIShjb25kaXRpb25EaXYgaW5zdGFuY2VvZiBEaXZIYXJuZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb25kaXRpb24gd2l0aCBpbmRleCAke2luZGV4fSBub3QgZm91bmRgKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb25kaXRpb25UeXBlID0gYXdhaXQgdGhpcy5nZXRDb25kaXRpb25UeXBlSGFybmVzcyhjb25kaXRpb25EaXYpO1xuICAgIGlmICghY29uZGl0aW9uVHlwZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb25kaXRpb24gdHlwZSBub3QgZm91bmQuIFNlbGVjdCBmaWVsZCBmaXJzdGApO1xuICAgIH1cblxuICAgIGlmIChjb25kaXRpb25UeXBlIGluc3RhbmNlb2YgR2lvRWxFZGl0b3JUeXBlU3RyaW5nSGFybmVzcyAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBhd2FpdCBjb25kaXRpb25UeXBlLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKGNvbmRpdGlvblR5cGUgaW5zdGFuY2VvZiBHaW9FbEVkaXRvclR5cGVCb29sZWFuSGFybmVzcyAmJiB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgICAgYXdhaXQgY29uZGl0aW9uVHlwZS5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfSBlbHNlIGlmIChjb25kaXRpb25UeXBlIGluc3RhbmNlb2YgR2lvRWxFZGl0b3JUeXBlTnVtYmVySGFybmVzcyAmJiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICBhd2FpdCBjb25kaXRpb25UeXBlLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKGNvbmRpdGlvblR5cGUgaW5zdGFuY2VvZiBHaW9FbEVkaXRvclR5cGVEYXRlSGFybmVzcyAmJiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIGF3YWl0IGNvbmRpdGlvblR5cGUuc2V0VmFsdWUodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdmFsdWUgZm9yIGNvbmRpdGlvbiB0eXBlYCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldENvbmRpdGlvbkdyb3VwKGluZGV4OiBudW1iZXIpOiBQcm9taXNlPEdpb0VsRWRpdG9yQ29uZGl0aW9uR3JvdXBIYXJuZXNzPiB7XG4gICAgY29uc3QgY29uZGl0aW9uR3JvdXAgPSBhd2FpdCB0aGlzLmdldENvbmRpdGlvbkhhcm5lc3MoaW5kZXgpO1xuXG4gICAgaWYgKCFjb25kaXRpb25Hcm91cCB8fCAhKGNvbmRpdGlvbkdyb3VwIGluc3RhbmNlb2YgR2lvRWxFZGl0b3JDb25kaXRpb25Hcm91cEhhcm5lc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbmRpdGlvbiBncm91cCB3aXRoIGluZGV4ICR7aW5kZXh9IG5vdCBmb3VuZGApO1xuICAgIH1cbiAgICByZXR1cm4gY29uZGl0aW9uR3JvdXA7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0Q29uZGl0aW9ucygpOiBQcm9taXNlPENvbmRpdGlvbkdyb3VwSGFybmVzc1ZhbHVlcz4ge1xuICAgIGNvbnN0IGdldENvbmRpdGlvbnNEaXYgPSBhd2FpdCB0aGlzLmdldENvbmRpdGlvbnNIYXJuZXNzKCk7XG5cbiAgICBjb25zdCBjb25kaXRpb25zID0gYXdhaXQgcGFyYWxsZWwoKCkgPT5cbiAgICAgIGdldENvbmRpdGlvbnNEaXYubWFwKGFzeW5jIGNvbmRpdGlvbiA9PiB7XG4gICAgICAgIGlmIChjb25kaXRpb24gaW5zdGFuY2VvZiBHaW9FbEVkaXRvckNvbmRpdGlvbkdyb3VwSGFybmVzcykge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBjb25kaXRpb24uZ2V0Q29uZGl0aW9ucygpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbmRpdGlvbkZpZWxkID0gYXdhaXQgdGhpcy5nZXRDb25kaXRpb25GaWVsZChjb25kaXRpb24pO1xuXG4gICAgICAgIGNvbnN0IGNvbmRpdGlvblR5cGUgPSBhd2FpdCB0aGlzLmdldENvbmRpdGlvblR5cGVIYXJuZXNzKGNvbmRpdGlvbik7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZmllbGQ6IGF3YWl0IGNvbmRpdGlvbkZpZWxkLmdldFZhbHVlVGV4dCgpLFxuICAgICAgICAgIG9wZXJhdG9yOiBhd2FpdCBjb25kaXRpb25UeXBlPy5nZXRPcGVyYXRvclZhbHVlKCksXG4gICAgICAgICAgdmFsdWU6IGF3YWl0IGNvbmRpdGlvblR5cGU/LmdldFZhbHVlKCksXG4gICAgICAgIH07XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbmRpdGlvbjogYXdhaXQgdGhpcy5nZXRDb25kaXRpb25WYWx1ZSgpLFxuICAgICAgY29uZGl0aW9ucyxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWVsLWVkaXRvci1jb25kaXRpb24tZ3JvdXAuaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBhcnRpY2xlcy1hbmd1bGFyL2dpby1lbC9naW8tZWwtZWRpdG9yL2dpby1lbC1lZGl0b3ItY29uZGl0aW9uLWdyb3VwL2dpby1lbC1lZGl0b3ItY29uZGl0aW9uLWdyb3VwLmhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQXNCLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFcEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOEVBQThFLENBQUM7QUFDN0gsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNEVBQTRFLENBQUM7QUFDMUgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNEVBQTRFLENBQUM7QUFDMUgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDcEgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFZekUsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLGdCQUFnQjtJQUF0RTs7UUFPUyxlQUFVLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUUxRSxxQkFBZ0IsR0FBRyxJQUFJLENBQUMsVUFB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QUM7UUFDRCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRU0sS0FBSyxDQUFDLGFBQWE7UUFDeEIsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBRTNELE1BQU0sVUFBVSxHQUFHLE1BQU0sUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUNyQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxFQUFFO1lBQ3JDLElBQUksU0FBUyxZQUFZLGdDQUFnQyxFQUFFLENBQUM7Z0JBQzFELE9BQU8sTUFBTSxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDekMsQ0FBQztZQUNELE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRS9ELE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3BFLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUFDLFFBQVEsRUFBRTtnQkFDdEMsUUFBUSxFQUFFLE1BQU0sYUFBYSxFQUFFLGdCQUFnQixFQUFFO2dCQUNqRCxLQUFLLEVBQUUsTUFBTSxhQUFhLEVBQUUsUUFBUSxFQUFFO2FBQ3ZDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsT0FBTztZQUNMLFNBQVMsRUFBRSxNQUFNLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN6QyxVQUFVO1NBQ1gsQ0FBQztJQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDI0IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQmFzZUhhcm5lc3NGaWx0ZXJzLCBDb21wb25lbnRIYXJuZXNzLCBIYXJuZXNzUHJlZGljYXRlLCBwYXJhbGxlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcbmltcG9ydCB7IE1hdE1lbnVIYXJuZXNzIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudS90ZXN0aW5nJztcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZUdyb3VwSGFybmVzcyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUvdGVzdGluZyc7XG5pbXBvcnQgeyBEaXZIYXJuZXNzIH0gZnJvbSAnQGdyYXZpdGVlL3VpLXBhcnRpY2xlcy1hbmd1bGFyL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBHaW9FbEVkaXRvclR5cGVCb29sZWFuSGFybmVzcyB9IGZyb20gJy4uL2dpby1lbC10eXBlL2dpby1lbC1lZGl0b3ItdHlwZS1ib29sZWFuL2dpby1lbC1lZGl0b3ItdHlwZS1ib29sZWFuLmhhcm5lc3MnO1xuaW1wb3J0IHsgR2lvRWxFZGl0b3JUeXBlU3RyaW5nSGFybmVzcyB9IGZyb20gJy4uL2dpby1lbC10eXBlL2dpby1lbC1lZGl0b3ItdHlwZS1zdHJpbmcvZ2lvLWVsLWVkaXRvci10eXBlLXN0cmluZy5oYXJuZXNzJztcbmltcG9ydCB7IEdpb0VsRWRpdG9yVHlwZU51bWJlckhhcm5lc3MgfSBmcm9tICcuLi9naW8tZWwtdHlwZS9naW8tZWwtZWRpdG9yLXR5cGUtbnVtYmVyL2dpby1lbC1lZGl0b3ItdHlwZS1udW1iZXIuaGFybmVzcyc7XG5pbXBvcnQgeyBHaW9FbEVkaXRvclR5cGVEYXRlSGFybmVzcyB9IGZyb20gJy4uL2dpby1lbC10eXBlL2dpby1lbC1lZGl0b3ItdHlwZS1kYXRlL2dpby1lbC1lZGl0b3ItdHlwZS1kYXRlLmhhcm5lc3MnO1xuaW1wb3J0IHsgR2lvRWxGaWVsZEhhcm5lc3MgfSBmcm9tICcuLi9naW8tZWwtZmllbGQvZ2lvLWVsLWZpZWxkLmhhcm5lc3MnO1xuXG50eXBlIENvbmRpdGlvbkdyb3VwSGFybmVzc1ZhbHVlcyA9IHtcbiAgY29uZGl0aW9uOiAnQU5EJyB8ICdPUic7XG4gIGNvbmRpdGlvbnM6IChDb25kaXRpb25Hcm91cEhhcm5lc3NWYWx1ZXMgfCBDb25kaXRpb25IYXJuZXNzVmFsdWVzKVtdO1xufTtcbnR5cGUgQ29uZGl0aW9uSGFybmVzc1ZhbHVlcyA9IHtcbiAgZmllbGQ6IHsgZmllbGQ6IHN0cmluZzsga2V5MT86IHN0cmluZzsga2V5Mj86IHN0cmluZyB9O1xuICBvcGVyYXRvcj86IHN0cmluZztcbiAgdmFsdWU/OiBzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyO1xufTtcblxuZXhwb3J0IGNsYXNzIEdpb0VsRWRpdG9yQ29uZGl0aW9uR3JvdXBIYXJuZXNzIGV4dGVuZHMgQ29tcG9uZW50SGFybmVzcyB7XG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ2dpby1lbC1lZGl0b3ItY29uZGl0aW9uLWdyb3VwJztcblxuICBwdWJsaWMgc3RhdGljIHdpdGgob3B0aW9uczogQmFzZUhhcm5lc3NGaWx0ZXJzID0ge30pOiBIYXJuZXNzUHJlZGljYXRlPEdpb0VsRWRpdG9yQ29uZGl0aW9uR3JvdXBIYXJuZXNzPiB7XG4gICAgcmV0dXJuIG5ldyBIYXJuZXNzUHJlZGljYXRlKEdpb0VsRWRpdG9yQ29uZGl0aW9uR3JvdXBIYXJuZXNzLCBvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXROb2RlTHZsID0gKCkgPT4gdGhpcy5ob3N0KCkudGhlbihob3N0ID0+IGhvc3QuZ2V0QXR0cmlidXRlKCdub2RlLWx2bCcpKTtcblxuICBwcml2YXRlIGdldEFkZE1lbnVCdXR0b24gPSB0aGlzLmxvY2F0b3JGb3IoTWF0TWVudUhhcm5lc3Mud2l0aCh7IHRyaWdnZXJUZXh0OiAvQWRkLyB9KSk7XG4gIHByaXZhdGUgZ2V0Q29uZGl0aW9uQnV0dG9uVG9nZ2xlR3JvdXAgPSB0aGlzLmxvY2F0b3JGb3IoTWF0QnV0dG9uVG9nZ2xlR3JvdXBIYXJuZXNzLndpdGgoeyBzZWxlY3RvcjogJ1tmb3JtQ29udHJvbE5hbWU9XCJjb25kaXRpb25cIl0nIH0pKTtcbiAgcHJpdmF0ZSBnZXRDb25kaXRpb25zSGFybmVzcyA9IGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBub2RlTHZsID0gYXdhaXQgdGhpcy5nZXROb2RlTHZsKCk7XG4gICAgaWYgKCFub2RlTHZsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vZGUgbGV2ZWwgbm90IGZvdW5kJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmxvY2F0b3JGb3JBbGwoXG4gICAgICBEaXZIYXJuZXNzLndpdGgoe1xuICAgICAgICBzZWxlY3RvcjogYC5jb25kaXRpb25Hcm91cF9fY29uZGl0aW9uc19fY29uZGl0aW9uW25vZGUtbHZsPVwiJHtub2RlTHZsfVwiXWAsXG4gICAgICB9KSxcbiAgICAgIEdpb0VsRWRpdG9yQ29uZGl0aW9uR3JvdXBIYXJuZXNzLndpdGgoe1xuICAgICAgICBzZWxlY3RvcjogYC5jb25kaXRpb25Hcm91cF9fY29uZGl0aW9uc19fY29uZGl0aW9uR3JvdXBbbm9kZS1sdmw9XCIke051bWJlcihub2RlTHZsKSArIDF9XCJdYCxcbiAgICAgIH0pLFxuICAgICkoKTtcbiAgfTtcblxuICBwcml2YXRlIGdldENvbmRpdGlvbkhhcm5lc3MgPSBhc3luYyAoaW5kZXg6IG51bWJlcikgPT4gKGF3YWl0IHRoaXMuZ2V0Q29uZGl0aW9uc0hhcm5lc3MoKSkuYXQoaW5kZXgpO1xuICBwcml2YXRlIGdldENvbmRpdGlvblR5cGVIYXJuZXNzID0gKGRpdkhhcm5lc3M6IERpdkhhcm5lc3MpID0+XG4gICAgZGl2SGFybmVzcy5jaGlsZExvY2F0b3JGb3JPcHRpb25hbChcbiAgICAgIEdpb0VsRWRpdG9yVHlwZVN0cmluZ0hhcm5lc3MsXG4gICAgICBHaW9FbEVkaXRvclR5cGVCb29sZWFuSGFybmVzcyxcbiAgICAgIEdpb0VsRWRpdG9yVHlwZU51bWJlckhhcm5lc3MsXG4gICAgICBHaW9FbEVkaXRvclR5cGVEYXRlSGFybmVzcyxcbiAgICApKCk7XG4gIHByaXZhdGUgZ2V0Q29uZGl0aW9uRmllbGQgPSAoZGl2SGFybmVzczogRGl2SGFybmVzcykgPT5cbiAgICBkaXZIYXJuZXNzLmNoaWxkTG9jYXRvckZvcihHaW9FbEZpZWxkSGFybmVzcy53aXRoKHsgc2VsZWN0b3I6ICdbZm9ybUNvbnRyb2xOYW1lPVwiZmllbGRcIl0nIH0pKSgpO1xuXG4gIHB1YmxpYyBhc3luYyBjbGlja0FkZE5ld0NvbmRpdGlvbkJ1dHRvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCAoYXdhaXQgdGhpcy5nZXRBZGRNZW51QnV0dG9uKCkpLmNsaWNrSXRlbSh7IHRleHQ6IC9BZGQgQ29uZGl0aW9uLyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjbGlja0FkZE5ld0dyb3VwQnV0dG9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IChhd2FpdCB0aGlzLmdldEFkZE1lbnVCdXR0b24oKSkuY2xpY2tJdGVtKHsgdGV4dDogL0FkZCBHcm91cC8gfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0Q29uZGl0aW9uVmFsdWUoKTogUHJvbWlzZTwnQU5EJyB8ICdPUic+IHtcbiAgICBjb25zdCBjb25kaXRpb25CdXR0b25Ub2dnbGVHcm91cCA9IGF3YWl0IHRoaXMuZ2V0Q29uZGl0aW9uQnV0dG9uVG9nZ2xlR3JvdXAoKTtcbiAgICBjb25zdCBzZWxlY3RlZFRvZ2dsZXMgPSBhd2FpdCBjb25kaXRpb25CdXR0b25Ub2dnbGVHcm91cC5nZXRUb2dnbGVzKHsgY2hlY2tlZDogdHJ1ZSB9KTtcbiAgICBpZiAoc2VsZWN0ZWRUb2dnbGVzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBvcGVyYXRvciBzZWxlY3RlZCcpO1xuICAgIH1cbiAgICBjb25zdCBhbmRPck1hcDogUmVjb3JkPHN0cmluZywgJ0FORCcgfCAnT1InPiA9IHtcbiAgICAgIEFORDogJ0FORCcsXG4gICAgICBPUjogJ09SJyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGFuZE9yTWFwW2F3YWl0IHNlbGVjdGVkVG9nZ2xlc1swXS5nZXRUZXh0KCldO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNlbGVjdENvbmRpdGlvblZhbHVlKG9wZXJhdG9yOiAnQU5EJyB8ICdPUicpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjb25kaXRpb25CdXR0b25Ub2dnbGVHcm91cCA9IGF3YWl0IHRoaXMuZ2V0Q29uZGl0aW9uQnV0dG9uVG9nZ2xlR3JvdXAoKTtcbiAgICBjb25zdCB0b2dnbGVzID0gYXdhaXQgY29uZGl0aW9uQnV0dG9uVG9nZ2xlR3JvdXAuZ2V0VG9nZ2xlcyh7IHRleHQ6IG9wZXJhdG9yIH0pO1xuICAgIGlmICh0b2dnbGVzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBvcGVyYXRvciBzZWxlY3RlZCcpO1xuICAgIH1cbiAgICByZXR1cm4gdG9nZ2xlc1swXS5jaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNlbGVjdENvbmRpdGlvbkZpZWxkKGluZGV4OiBudW1iZXIsIGZpZWxkOiBzdHJpbmcsIGtleTE/OiBzdHJpbmcsIGtleTI/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjb25kaXRpb25EaXYgPSBhd2FpdCB0aGlzLmdldENvbmRpdGlvbkhhcm5lc3MoaW5kZXgpO1xuICAgIGlmICghY29uZGl0aW9uRGl2IHx8ICEoY29uZGl0aW9uRGl2IGluc3RhbmNlb2YgRGl2SGFybmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29uZGl0aW9uIHdpdGggaW5kZXggJHtpbmRleH0gbm90IGZvdW5kYCk7XG4gICAgfVxuXG4gICAgY29uc3QgY29uZGl0aW9uRmllbGQgPSBhd2FpdCB0aGlzLmdldENvbmRpdGlvbkZpZWxkKGNvbmRpdGlvbkRpdik7XG4gICAgYXdhaXQgY29uZGl0aW9uRmllbGQuc2V0VmFsdWUoZmllbGQsIGtleTEsIGtleTIpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNlbGVjdENvbmRpdGlvbk9wZXJhdG9yKGluZGV4OiBudW1iZXIsIG9wZXJhdG9yOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjb25kaXRpb25EaXYgPSBhd2FpdCB0aGlzLmdldENvbmRpdGlvbkhhcm5lc3MoaW5kZXgpO1xuICAgIGlmICghY29uZGl0aW9uRGl2IHx8ICEoY29uZGl0aW9uRGl2IGluc3RhbmNlb2YgRGl2SGFybmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29uZGl0aW9uIHdpdGggaW5kZXggJHtpbmRleH0gbm90IGZvdW5kYCk7XG4gICAgfVxuXG4gICAgY29uc3QgY29uZGl0aW9uVHlwZSA9IGF3YWl0IHRoaXMuZ2V0Q29uZGl0aW9uVHlwZUhhcm5lc3MoY29uZGl0aW9uRGl2KTtcbiAgICBpZiAoIWNvbmRpdGlvblR5cGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29uZGl0aW9uIHR5cGUgbm90IGZvdW5kLiBTZWxlY3QgZmllbGQgZmlyc3RgKTtcbiAgICB9XG5cbiAgICBhd2FpdCBjb25kaXRpb25UeXBlLnNlbGVjdE9wZXJhdG9yKG9wZXJhdG9yKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRDb25kaXRpb25BdmFpbGFibGVPcGVyYXRvcnMoaW5kZXg6IG51bWJlcik6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBjb25zdCBjb25kaXRpb25EaXYgPSBhd2FpdCB0aGlzLmdldENvbmRpdGlvbkhhcm5lc3MoaW5kZXgpO1xuICAgIGlmICghY29uZGl0aW9uRGl2IHx8ICEoY29uZGl0aW9uRGl2IGluc3RhbmNlb2YgRGl2SGFybmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29uZGl0aW9uIHdpdGggaW5kZXggJHtpbmRleH0gbm90IGZvdW5kYCk7XG4gICAgfVxuXG4gICAgY29uc3QgY29uZGl0aW9uVHlwZSA9IGF3YWl0IHRoaXMuZ2V0Q29uZGl0aW9uVHlwZUhhcm5lc3MoY29uZGl0aW9uRGl2KTtcbiAgICBpZiAoIWNvbmRpdGlvblR5cGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29uZGl0aW9uIHR5cGUgbm90IGZvdW5kLiBTZWxlY3QgZmllbGQgZmlyc3RgKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbmRpdGlvblR5cGUuZ2V0QXZhaWxhYmxlT3BlcmF0b3JzKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2V0Q29uZGl0aW9uVmFsdWUoaW5kZXg6IG51bWJlciwgdmFsdWU6IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIgfCBEYXRlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY29uZGl0aW9uRGl2ID0gYXdhaXQgdGhpcy5nZXRDb25kaXRpb25IYXJuZXNzKGluZGV4KTtcbiAgICBpZiAoIWNvbmRpdGlvbkRpdiB8fCAhKGNvbmRpdGlvbkRpdiBpbnN0YW5jZW9mIERpdkhhcm5lc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbmRpdGlvbiB3aXRoIGluZGV4ICR7aW5kZXh9IG5vdCBmb3VuZGApO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbmRpdGlvblR5cGUgPSBhd2FpdCB0aGlzLmdldENvbmRpdGlvblR5cGVIYXJuZXNzKGNvbmRpdGlvbkRpdik7XG4gICAgaWYgKCFjb25kaXRpb25UeXBlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbmRpdGlvbiB0eXBlIG5vdCBmb3VuZC4gU2VsZWN0IGZpZWxkIGZpcnN0YCk7XG4gICAgfVxuXG4gICAgaWYgKGNvbmRpdGlvblR5cGUgaW5zdGFuY2VvZiBHaW9FbEVkaXRvclR5cGVTdHJpbmdIYXJuZXNzICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGF3YWl0IGNvbmRpdGlvblR5cGUuc2V0VmFsdWUodmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoY29uZGl0aW9uVHlwZSBpbnN0YW5jZW9mIEdpb0VsRWRpdG9yVHlwZUJvb2xlYW5IYXJuZXNzICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICBhd2FpdCBjb25kaXRpb25UeXBlLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKGNvbmRpdGlvblR5cGUgaW5zdGFuY2VvZiBHaW9FbEVkaXRvclR5cGVOdW1iZXJIYXJuZXNzICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGF3YWl0IGNvbmRpdGlvblR5cGUuc2V0VmFsdWUodmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoY29uZGl0aW9uVHlwZSBpbnN0YW5jZW9mIEdpb0VsRWRpdG9yVHlwZURhdGVIYXJuZXNzICYmIHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgYXdhaXQgY29uZGl0aW9uVHlwZS5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB2YWx1ZSBmb3IgY29uZGl0aW9uIHR5cGVgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0Q29uZGl0aW9uR3JvdXAoaW5kZXg6IG51bWJlcik6IFByb21pc2U8R2lvRWxFZGl0b3JDb25kaXRpb25Hcm91cEhhcm5lc3M+IHtcbiAgICBjb25zdCBjb25kaXRpb25Hcm91cCA9IGF3YWl0IHRoaXMuZ2V0Q29uZGl0aW9uSGFybmVzcyhpbmRleCk7XG5cbiAgICBpZiAoIWNvbmRpdGlvbkdyb3VwIHx8ICEoY29uZGl0aW9uR3JvdXAgaW5zdGFuY2VvZiBHaW9FbEVkaXRvckNvbmRpdGlvbkdyb3VwSGFybmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29uZGl0aW9uIGdyb3VwIHdpdGggaW5kZXggJHtpbmRleH0gbm90IGZvdW5kYCk7XG4gICAgfVxuICAgIHJldHVybiBjb25kaXRpb25Hcm91cDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRDb25kaXRpb25zKCk6IFByb21pc2U8Q29uZGl0aW9uR3JvdXBIYXJuZXNzVmFsdWVzPiB7XG4gICAgY29uc3QgZ2V0Q29uZGl0aW9uc0RpdiA9IGF3YWl0IHRoaXMuZ2V0Q29uZGl0aW9uc0hhcm5lc3MoKTtcblxuICAgIGNvbnN0IGNvbmRpdGlvbnMgPSBhd2FpdCBwYXJhbGxlbCgoKSA9PlxuICAgICAgZ2V0Q29uZGl0aW9uc0Rpdi5tYXAoYXN5bmMgY29uZGl0aW9uID0+IHtcbiAgICAgICAgaWYgKGNvbmRpdGlvbiBpbnN0YW5jZW9mIEdpb0VsRWRpdG9yQ29uZGl0aW9uR3JvdXBIYXJuZXNzKSB7XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IGNvbmRpdGlvbi5nZXRDb25kaXRpb25zKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29uZGl0aW9uRmllbGQgPSBhd2FpdCB0aGlzLmdldENvbmRpdGlvbkZpZWxkKGNvbmRpdGlvbik7XG5cbiAgICAgICAgY29uc3QgY29uZGl0aW9uVHlwZSA9IGF3YWl0IHRoaXMuZ2V0Q29uZGl0aW9uVHlwZUhhcm5lc3MoY29uZGl0aW9uKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBmaWVsZDogYXdhaXQgY29uZGl0aW9uRmllbGQuZ2V0VmFsdWUoKSxcbiAgICAgICAgICBvcGVyYXRvcjogYXdhaXQgY29uZGl0aW9uVHlwZT8uZ2V0T3BlcmF0b3JWYWx1ZSgpLFxuICAgICAgICAgIHZhbHVlOiBhd2FpdCBjb25kaXRpb25UeXBlPy5nZXRWYWx1ZSgpLFxuICAgICAgICB9O1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBjb25kaXRpb246IGF3YWl0IHRoaXMuZ2V0Q29uZGl0aW9uVmFsdWUoKSxcbiAgICAgIGNvbmRpdGlvbnMsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { ChangeDetectionStrategy, Component, DestroyRef, inject, Input } from '@angular/core';
|
|
16
|
+
import { ChangeDetectionStrategy, Component, DestroyRef, EventEmitter, inject, Input, Output } from '@angular/core';
|
|
17
17
|
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
18
18
|
import { FormArray, FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
19
19
|
import { MatButtonModule } from '@angular/material/button';
|
|
@@ -24,9 +24,8 @@ import { CommonModule } from '@angular/common';
|
|
|
24
24
|
import { MatSelectModule } from '@angular/material/select';
|
|
25
25
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
26
26
|
import { map } from 'rxjs/operators';
|
|
27
|
-
import { has, isEmpty, isNil } from 'lodash';
|
|
27
|
+
import { get, has, isEmpty, isNil } from 'lodash';
|
|
28
28
|
import { GioIconsModule } from '@gravitee/ui-particles-angular';
|
|
29
|
-
import { isConditionModel } from '../models/ConditionsModel';
|
|
30
29
|
import { ExpressionLanguageBuilder } from '../models/ExpressionLanguageBuilder';
|
|
31
30
|
import { ConditionGroup } from '../models/ConditionGroup';
|
|
32
31
|
import { Condition } from '../models/Condition';
|
|
@@ -40,17 +39,10 @@ export class GioElEditorComponent {
|
|
|
40
39
|
constructor() {
|
|
41
40
|
this.destroyRef = inject(DestroyRef);
|
|
42
41
|
this.conditionsModel = [];
|
|
43
|
-
this.
|
|
42
|
+
this.elChange = new EventEmitter();
|
|
44
43
|
this.conditionGroupFormGroup = newConditionGroupFormGroup();
|
|
45
|
-
this.fields = [];
|
|
46
44
|
}
|
|
47
45
|
ngOnInit() {
|
|
48
|
-
for (const conditionModel of this.conditionsModel) {
|
|
49
|
-
if (isConditionModel(conditionModel)) {
|
|
50
|
-
// TOTO: Impl Deep Tree for conditions Limit to fist Node for fist impl
|
|
51
|
-
this.fields.push(conditionModel);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
46
|
this.conditionGroupFormGroup.valueChanges
|
|
55
47
|
.pipe(takeUntilDestroyed(this.destroyRef), map(() => this.conditionGroupFormGroup.getRawValue()), map(value => {
|
|
56
48
|
const toCondition = (conditionValue) => {
|
|
@@ -63,7 +55,15 @@ export class GioElEditorComponent {
|
|
|
63
55
|
isNil(conditionValue.value)) {
|
|
64
56
|
return null;
|
|
65
57
|
}
|
|
66
|
-
|
|
58
|
+
let field = conditionValue.field.field;
|
|
59
|
+
if (conditionValue.field.map) {
|
|
60
|
+
field = {
|
|
61
|
+
field: conditionValue.field.field,
|
|
62
|
+
key1Value: get(conditionValue.field.map, 'key1Value') ?? undefined,
|
|
63
|
+
key2Value: get(conditionValue.field.map, 'key2Value') ?? undefined,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
return new Condition(field, conditionValue.field.type, conditionValue.operator, conditionValue.value);
|
|
67
67
|
};
|
|
68
68
|
const toConditionGroup = (conditionGroupValue) => {
|
|
69
69
|
const conditions = [];
|
|
@@ -84,14 +84,15 @@ export class GioElEditorComponent {
|
|
|
84
84
|
const conditionGroupValue = toConditionGroup(value);
|
|
85
85
|
if (conditionGroupValue) {
|
|
86
86
|
this.elOutput = new ExpressionLanguageBuilder(conditionGroupValue).build();
|
|
87
|
+
this.elChange.emit(this.elOutput);
|
|
87
88
|
}
|
|
88
89
|
}))
|
|
89
90
|
.subscribe();
|
|
90
91
|
}
|
|
91
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
92
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
92
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: GioElEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
93
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: GioElEditorComponent, isStandalone: true, selector: "gio-el-editor", inputs: { conditionsModel: "conditionsModel" }, outputs: { elChange: "elChange" }, ngImport: i0, template: "<!--\n\n Copyright (C) 2024 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n\n<gio-el-editor-condition-group\n [conditionGroupFormGroup]=\"conditionGroupFormGroup\"\n [conditionsModel]=\"conditionsModel\"\n></gio-el-editor-condition-group>\n\n@if (elOutput) {\n <div class=\"preview\">\n {{ elOutput }}\n </div>\n}\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.conditionGroup{display:flex;flex-direction:column;gap:8px}.conditionGroup__header{display:flex;flex-direction:row;align-items:center;gap:8px}.conditionGroup__conditions{display:flex;flex-direction:column;gap:8px}.condition{display:flex;align-items:flex-start;gap:8px}.condition__removeBtn{align-self:center}.preview{display:flex;flex-direction:column;align-items:center;padding:8px;border-radius:4px;background-color:#e7e8ef;color:#000}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: GioIconsModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: GioElEditorConditionGroupComponent, selector: "gio-el-editor-condition-group", inputs: ["conditionGroupFormGroup", "conditionsModel", "nodeLvl"], outputs: ["remove"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
93
94
|
}
|
|
94
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: GioElEditorComponent, decorators: [{
|
|
95
96
|
type: Component,
|
|
96
97
|
args: [{ selector: 'gio-el-editor', standalone: true, imports: [
|
|
97
98
|
CommonModule,
|
|
@@ -108,10 +109,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImpo
|
|
|
108
109
|
GioElEditorTypeNumberComponent,
|
|
109
110
|
GioElEditorTypeDateComponent,
|
|
110
111
|
GioElEditorConditionGroupComponent,
|
|
111
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n\n Copyright (C) 2024 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n\n<gio-el-editor-condition-group\n [conditionGroupFormGroup]=\"conditionGroupFormGroup\"\n [
|
|
112
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n\n Copyright (C) 2024 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n\n<gio-el-editor-condition-group\n [conditionGroupFormGroup]=\"conditionGroupFormGroup\"\n [conditionsModel]=\"conditionsModel\"\n></gio-el-editor-condition-group>\n\n@if (elOutput) {\n <div class=\"preview\">\n {{ elOutput }}\n </div>\n}\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.conditionGroup{display:flex;flex-direction:column;gap:8px}.conditionGroup__header{display:flex;flex-direction:row;align-items:center;gap:8px}.conditionGroup__conditions{display:flex;flex-direction:column;gap:8px}.condition{display:flex;align-items:flex-start;gap:8px}.condition__removeBtn{align-self:center}.preview{display:flex;flex-direction:column;align-items:center;padding:8px;border-radius:4px;background-color:#e7e8ef;color:#000}\n"] }]
|
|
112
113
|
}], propDecorators: { conditionsModel: [{
|
|
113
114
|
type: Input,
|
|
114
115
|
args: [{ required: true }]
|
|
116
|
+
}], elChange: [{
|
|
117
|
+
type: Output
|
|
115
118
|
}] } });
|
|
116
119
|
const newConditionGroupFormGroup = () => {
|
|
117
120
|
return new FormGroup({
|
|
@@ -125,4 +128,4 @@ const isConditionGroupValue = (value) => {
|
|
|
125
128
|
const isConditionValue = (value) => {
|
|
126
129
|
return !!value && has(value, 'field') && has(value, 'operator') && has(value, 'value');
|
|
127
130
|
};
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWVsLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9naW8tZWwvZ2lvLWVsLWVkaXRvci9naW8tZWwtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBhcnRpY2xlcy1hbmd1bGFyL2dpby1lbC9naW8tZWwtZWRpdG9yL2dpby1lbC1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR2hFLE9BQU8sRUFBbUIsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR2hELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDZFQUE2RSxDQUFDO0FBQzdILE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLCtFQUErRSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDZFQUE2RSxDQUFDO0FBQzdILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlFQUF5RSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHlFQUF5RSxDQUFDOztBQW9DN0gsTUFBTSxPQUFPLG9CQUFvQjtJQXZCakM7UUF3Qm1CLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFHMUMsb0JBQWUsR0FBb0IsRUFBRSxDQUFDO1FBRW5DLDZCQUF3QixHQUFHLElBQUksU0FBUyxDQUFnQyxFQUFFLENBQUMsQ0FBQztRQUM1RSw0QkFBdUIsR0FBRywwQkFBMEIsRUFBRSxDQUFDO1FBRXZELFdBQU0sR0FBcUIsRUFBRSxDQUFDO0tBK0R6QztJQTNEUSxRQUFRO1FBQ2IsS0FBSyxNQUFNLGNBQWMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDbEQsSUFBSSxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO2dCQUNyQyx1RUFBdUU7Z0JBQ3ZFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ25DLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVk7YUFDdEMsSUFBSSxDQUNILGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFDbkMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUNyRCxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFJVixNQUFNLFdBQVcsR0FBRyxDQUNsQixjQUE4QixFQUMrQyxFQUFFO2dCQUMvRSxJQUFJLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7b0JBQzFDLE9BQU8sZ0JBQWdCLENBQUMsY0FBcUMsQ0FBQyxDQUFDO2dCQUNqRSxDQUFDO2dCQUNELElBQ0UsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUM7b0JBQ2pDLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO29CQUMzQixLQUFLLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztvQkFDOUIsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFDM0IsQ0FBQztvQkFDRCxPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO2dCQUNELE9BQU8sSUFBSSxTQUFTLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0gsQ0FBQyxDQUFDO1lBRUYsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLG1CQUF3QyxFQUF5QixFQUFFO2dCQUMzRixNQUFNLFVBQVUsR0FBaUMsRUFBRSxDQUFDO2dCQUNwRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO29CQUNqSCxPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO2dCQUNELEtBQUssTUFBTSxjQUFjLElBQUksbUJBQW1CLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQzVELE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztvQkFDOUMsSUFBSSxTQUFTLEVBQUUsQ0FBQzt3QkFDZCxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUM3QixDQUFDO2dCQUNILENBQUM7Z0JBQ0QsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztvQkFDeEIsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQztnQkFFRCxPQUFPLElBQUksY0FBYyxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUN2RSxDQUFDLENBQUM7WUFFRixNQUFNLG1CQUFtQixHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BELElBQUksbUJBQW1CLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHlCQUF5QixDQUFDLG1CQUFtQixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDN0UsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQzsrR0F2RVUsb0JBQW9CO21HQUFwQixvQkFBb0IseUhDNUVqQyxnNUJBNEJBLCtXRDZCSSxZQUFZLDhCQUNaLHFCQUFxQiw4QkFDckIsbUJBQW1CLDhCQUNuQixlQUFlLDhCQUNmLGNBQWMsOEJBQ2QsYUFBYSw4QkFDYixrQkFBa0IsOEJBQ2xCLGNBQWMsOEJBQ2QsZUFBZSwrQkFLZixrQ0FBa0M7OzRGQU16QixvQkFBb0I7a0JBdkJoQyxTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsOEJBQThCO3dCQUM5QiwrQkFBK0I7d0JBQy9CLDhCQUE4Qjt3QkFDOUIsNEJBQTRCO3dCQUM1QixrQ0FBa0M7cUJBQ25DLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQU14QyxlQUFlO3NCQURyQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTs7QUF1RTNCLE1BQU0sMEJBQTBCLEdBQUcsR0FBa0MsRUFBRTtJQUNyRSxPQUFPLElBQUksU0FBUyxDQUFxQjtRQUN2QyxTQUFTLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNwSCxVQUFVLEVBQUUsSUFBSSxTQUFTLENBQTJELEVBQUUsQ0FBQztLQUN4RixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLHFCQUFxQixHQUFHLENBQzVCLEtBQWMsRUFJZCxFQUFFO0lBQ0YsT0FBTyxDQUFDLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztBQUN4RSxDQUFDLENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUFHLENBQ3ZCLEtBQWMsRUFLZCxFQUFFO0lBQ0YsT0FBTyxDQUFDLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjQgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBpbmplY3QsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGhhcywgaXNFbXB0eSwgaXNOaWwgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgR2lvSWNvbnNNb2R1bGUgfSBmcm9tICdAZ3Jhdml0ZWUvdWktcGFydGljbGVzLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBDb25kaXRpb25Nb2RlbCB9IGZyb20gJy4uL21vZGVscy9Db25kaXRpb25Nb2RlbCc7XG5pbXBvcnQgeyBDb25kaXRpb25zTW9kZWwsIGlzQ29uZGl0aW9uTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvQ29uZGl0aW9uc01vZGVsJztcbmltcG9ydCB7IEV4cHJlc3Npb25MYW5ndWFnZUJ1aWxkZXIgfSBmcm9tICcuLi9tb2RlbHMvRXhwcmVzc2lvbkxhbmd1YWdlQnVpbGRlcic7XG5pbXBvcnQgeyBDb25kaXRpb25Hcm91cCB9IGZyb20gJy4uL21vZGVscy9Db25kaXRpb25Hcm91cCc7XG5pbXBvcnQgeyBDb25kaXRpb24gfSBmcm9tICcuLi9tb2RlbHMvQ29uZGl0aW9uJztcbmltcG9ydCB7IE9wZXJhdG9yIH0gZnJvbSAnLi4vbW9kZWxzL09wZXJhdG9yJztcblxuaW1wb3J0IHsgR2lvRWxFZGl0b3JUeXBlU3RyaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9naW8tZWwtdHlwZS9naW8tZWwtZWRpdG9yLXR5cGUtc3RyaW5nL2dpby1lbC1lZGl0b3ItdHlwZS1zdHJpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IEdpb0VsRWRpdG9yVHlwZUJvb2xlYW5Db21wb25lbnQgfSBmcm9tICcuL2dpby1lbC10eXBlL2dpby1lbC1lZGl0b3ItdHlwZS1ib29sZWFuL2dpby1lbC1lZGl0b3ItdHlwZS1ib29sZWFuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHaW9FbEVkaXRvclR5cGVOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuL2dpby1lbC10eXBlL2dpby1lbC1lZGl0b3ItdHlwZS1udW1iZXIvZ2lvLWVsLWVkaXRvci10eXBlLW51bWJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2lvRWxFZGl0b3JUeXBlRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vZ2lvLWVsLXR5cGUvZ2lvLWVsLWVkaXRvci10eXBlLWRhdGUvZ2lvLWVsLWVkaXRvci10eXBlLWRhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEdpb0VsRWRpdG9yQ29uZGl0aW9uR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2dpby1lbC1lZGl0b3ItY29uZGl0aW9uLWdyb3VwL2dpby1lbC1lZGl0b3ItY29uZGl0aW9uLWdyb3VwLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIENvbmRpdGlvbkZvcm0gPSB7XG4gIGZpZWxkOiBGb3JtQ29udHJvbDxDb25kaXRpb25Nb2RlbCB8IG51bGw+O1xuICBvcGVyYXRvcjogRm9ybUNvbnRyb2w8T3BlcmF0b3IgfCBudWxsPjtcbiAgdmFsdWU6IEZvcm1Db250cm9sPHN0cmluZyB8IGJvb2xlYW4gfCBEYXRlIHwgbnVtYmVyIHwgbnVsbD47XG59O1xuXG5leHBvcnQgdHlwZSBDb25kaXRpb25Hcm91cEZvcm0gPSB7XG4gIGNvbmRpdGlvbjogRm9ybUNvbnRyb2w8J0FORCcgfCAnT1InPjtcbiAgY29uZGl0aW9uczogRm9ybUFycmF5PEZvcm1Hcm91cDxDb25kaXRpb25Gb3JtPiB8IEZvcm1Hcm91cDxDb25kaXRpb25Hcm91cEZvcm0+Pjtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dpby1lbC1lZGl0b3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBHaW9JY29uc01vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgR2lvRWxFZGl0b3JUeXBlU3RyaW5nQ29tcG9uZW50LFxuICAgIEdpb0VsRWRpdG9yVHlwZUJvb2xlYW5Db21wb25lbnQsXG4gICAgR2lvRWxFZGl0b3JUeXBlTnVtYmVyQ29tcG9uZW50LFxuICAgIEdpb0VsRWRpdG9yVHlwZURhdGVDb21wb25lbnQsXG4gICAgR2lvRWxFZGl0b3JDb25kaXRpb25Hcm91cENvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2dpby1lbC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZ2lvLWVsLWVkaXRvci5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9FbEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBwdWJsaWMgY29uZGl0aW9uc01vZGVsOiBDb25kaXRpb25zTW9kZWwgPSBbXTtcblxuICBwcm90ZWN0ZWQgY29uZGl0aW9uc0dyb3VwRm9ybUFycmF5ID0gbmV3IEZvcm1BcnJheTxGb3JtR3JvdXA8Q29uZGl0aW9uR3JvdXBGb3JtPj4oW10pO1xuICBwcm90ZWN0ZWQgY29uZGl0aW9uR3JvdXBGb3JtR3JvdXAgPSBuZXdDb25kaXRpb25Hcm91cEZvcm1Hcm91cCgpO1xuXG4gIHByb3RlY3RlZCBmaWVsZHM6IENvbmRpdGlvbk1vZGVsW10gPSBbXTtcblxuICBwcm90ZWN0ZWQgZWxPdXRwdXQ/OiBzdHJpbmc7XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIGZvciAoY29uc3QgY29uZGl0aW9uTW9kZWwgb2YgdGhpcy5jb25kaXRpb25zTW9kZWwpIHtcbiAgICAgIGlmIChpc0NvbmRpdGlvbk1vZGVsKGNvbmRpdGlvbk1vZGVsKSkge1xuICAgICAgICAvLyBUT1RPOiBJbXBsIERlZXAgVHJlZSBmb3IgY29uZGl0aW9ucyBMaW1pdCB0byBmaXN0IE5vZGUgZm9yIGZpc3QgaW1wbFxuICAgICAgICB0aGlzLmZpZWxkcy5wdXNoKGNvbmRpdGlvbk1vZGVsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmNvbmRpdGlvbkdyb3VwRm9ybUdyb3VwLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5jb25kaXRpb25Hcm91cEZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpKSxcbiAgICAgICAgbWFwKHZhbHVlID0+IHtcbiAgICAgICAgICB0eXBlIENvbmRpdGlvbkdyb3VwVmFsdWUgPSB0eXBlb2YgdmFsdWU7XG4gICAgICAgICAgdHlwZSBDb25kaXRpb25WYWx1ZSA9IEV4Y2x1ZGU8Q29uZGl0aW9uR3JvdXBWYWx1ZVsnY29uZGl0aW9ucyddLCB1bmRlZmluZWQ+W251bWJlcl07XG5cbiAgICAgICAgICBjb25zdCB0b0NvbmRpdGlvbiA9IChcbiAgICAgICAgICAgIGNvbmRpdGlvblZhbHVlOiBDb25kaXRpb25WYWx1ZSxcbiAgICAgICAgICApOiBDb25kaXRpb248J3N0cmluZycgfCAnbnVtYmVyJyB8ICdkYXRlJyB8ICdib29sZWFuJz4gfCBDb25kaXRpb25Hcm91cCB8IG51bGwgPT4ge1xuICAgICAgICAgICAgaWYgKGlzQ29uZGl0aW9uR3JvdXBWYWx1ZShjb25kaXRpb25WYWx1ZSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRvQ29uZGl0aW9uR3JvdXAoY29uZGl0aW9uVmFsdWUgYXMgQ29uZGl0aW9uR3JvdXBWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICFpc0NvbmRpdGlvblZhbHVlKGNvbmRpdGlvblZhbHVlKSB8fFxuICAgICAgICAgICAgICBpc05pbChjb25kaXRpb25WYWx1ZS5maWVsZCkgfHxcbiAgICAgICAgICAgICAgaXNOaWwoY29uZGl0aW9uVmFsdWUub3BlcmF0b3IpIHx8XG4gICAgICAgICAgICAgIGlzTmlsKGNvbmRpdGlvblZhbHVlLnZhbHVlKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBDb25kaXRpb24oY29uZGl0aW9uVmFsdWUuZmllbGQuZmllbGQsIGNvbmRpdGlvblZhbHVlLmZpZWxkLnR5cGUsIGNvbmRpdGlvblZhbHVlLm9wZXJhdG9yLCBjb25kaXRpb25WYWx1ZS52YWx1ZSk7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnN0IHRvQ29uZGl0aW9uR3JvdXAgPSAoY29uZGl0aW9uR3JvdXBWYWx1ZTogQ29uZGl0aW9uR3JvdXBWYWx1ZSk6IENvbmRpdGlvbkdyb3VwIHwgbnVsbCA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb25kaXRpb25zOiBDb25kaXRpb25Hcm91cFsnY29uZGl0aW9ucyddID0gW107XG4gICAgICAgICAgICBpZiAoIWNvbmRpdGlvbkdyb3VwVmFsdWUuY29uZGl0aW9uIHx8ICFjb25kaXRpb25Hcm91cFZhbHVlLmNvbmRpdGlvbnMgfHwgaXNFbXB0eShjb25kaXRpb25Hcm91cFZhbHVlLmNvbmRpdGlvbnMpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChjb25zdCBjb25kaXRpb25WYWx1ZSBvZiBjb25kaXRpb25Hcm91cFZhbHVlLmNvbmRpdGlvbnMpIHtcbiAgICAgICAgICAgICAgY29uc3QgY29uZGl0aW9uID0gdG9Db25kaXRpb24oY29uZGl0aW9uVmFsdWUpO1xuICAgICAgICAgICAgICBpZiAoY29uZGl0aW9uKSB7XG4gICAgICAgICAgICAgICAgY29uZGl0aW9ucy5wdXNoKGNvbmRpdGlvbik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0VtcHR5KGNvbmRpdGlvbnMpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbmRpdGlvbkdyb3VwKGNvbmRpdGlvbkdyb3VwVmFsdWUuY29uZGl0aW9uLCBjb25kaXRpb25zKTtcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgY29uc3QgY29uZGl0aW9uR3JvdXBWYWx1ZSA9IHRvQ29uZGl0aW9uR3JvdXAodmFsdWUpO1xuICAgICAgICAgIGlmIChjb25kaXRpb25Hcm91cFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmVsT3V0cHV0ID0gbmV3IEV4cHJlc3Npb25MYW5ndWFnZUJ1aWxkZXIoY29uZGl0aW9uR3JvdXBWYWx1ZSkuYnVpbGQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG59XG5cbmNvbnN0IG5ld0NvbmRpdGlvbkdyb3VwRm9ybUdyb3VwID0gKCk6IEZvcm1Hcm91cDxDb25kaXRpb25Hcm91cEZvcm0+ID0+IHtcbiAgcmV0dXJuIG5ldyBGb3JtR3JvdXA8Q29uZGl0aW9uR3JvdXBGb3JtPih7XG4gICAgY29uZGl0aW9uOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogJ0FORCcsIGRpc2FibGVkOiB0cnVlIH0sIHsgbm9uTnVsbGFibGU6IHRydWUsIHZhbGlkYXRvcnM6IFZhbGlkYXRvcnMucmVxdWlyZWQgfSksXG4gICAgY29uZGl0aW9uczogbmV3IEZvcm1BcnJheTxGb3JtR3JvdXA8Q29uZGl0aW9uRm9ybT4gfCBGb3JtR3JvdXA8Q29uZGl0aW9uR3JvdXBGb3JtPj4oW10pLFxuICB9KTtcbn07XG5cbmNvbnN0IGlzQ29uZGl0aW9uR3JvdXBWYWx1ZSA9IChcbiAgdmFsdWU6IHVua25vd24sXG4pOiB2YWx1ZSBpcyB7XG4gIGNvbmRpdGlvbjogJ0FORCcgfCAnT1InO1xuICBjb25kaXRpb25zOiB1bmtub3duW107XG59ID0+IHtcbiAgcmV0dXJuICEhdmFsdWUgJiYgaGFzKHZhbHVlLCAnY29uZGl0aW9uJykgJiYgaGFzKHZhbHVlLCAnY29uZGl0aW9ucycpO1xufTtcblxuY29uc3QgaXNDb25kaXRpb25WYWx1ZSA9IChcbiAgdmFsdWU6IHVua25vd24sXG4pOiB2YWx1ZSBpcyB7XG4gIGZpZWxkOiBDb25kaXRpb25Nb2RlbDtcbiAgb3BlcmF0b3I6IE9wZXJhdG9yO1xuICB2YWx1ZTogc3RyaW5nIHwgYm9vbGVhbiB8IERhdGUgfCBudW1iZXI7XG59ID0+IHtcbiAgcmV0dXJuICEhdmFsdWUgJiYgaGFzKHZhbHVlLCAnZmllbGQnKSAmJiBoYXModmFsdWUsICdvcGVyYXRvcicpICYmIGhhcyh2YWx1ZSwgJ3ZhbHVlJyk7XG59O1xuIiwiPCEtLVxuXG4gICAgQ29weXJpZ2h0IChDKSAyMDI0IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gICAgXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gICAgXG4gICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAgICBcbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cblxuLS0+XG5cbjxnaW8tZWwtZWRpdG9yLWNvbmRpdGlvbi1ncm91cFxuICBbY29uZGl0aW9uR3JvdXBGb3JtR3JvdXBdPVwiY29uZGl0aW9uR3JvdXBGb3JtR3JvdXBcIlxuICBbY29uZGl0aW9uTW9kZWxzXT1cImZpZWxkc1wiXG4+PC9naW8tZWwtZWRpdG9yLWNvbmRpdGlvbi1ncm91cD5cblxuQGlmIChlbE91dHB1dCkge1xuICA8ZGl2IGNsYXNzPVwiZWxPdXRwdXRcIj5cbiAgICB7eyBlbE91dHB1dCB9fVxuICA8L2Rpdj5cbn1cbiJdfQ==
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWVsLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9naW8tZWwvZ2lvLWVsLWVkaXRvci9naW8tZWwtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBhcnRpY2xlcy1hbmd1bGFyL2dpby1lbC9naW8tZWwtZWRpdG9yL2dpby1lbC1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JD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QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjQgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Ub2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBnZXQsIGhhcywgaXNFbXB0eSwgaXNOaWwgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgR2lvSWNvbnNNb2R1bGUgfSBmcm9tICdAZ3Jhdml0ZWUvdWktcGFydGljbGVzLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBDb25kaXRpb25Nb2RlbCwgQ29uZGl0aW9uVHlwZSB9IGZyb20gJy4uL21vZGVscy9Db25kaXRpb25Nb2RlbCc7XG5pbXBvcnQgeyBDb25kaXRpb25zTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvQ29uZGl0aW9uc01vZGVsJztcbmltcG9ydCB7IEV4cHJlc3Npb25MYW5ndWFnZUJ1aWxkZXIgfSBmcm9tICcuLi9tb2RlbHMvRXhwcmVzc2lvbkxhbmd1YWdlQnVpbGRlcic7XG5pbXBvcnQgeyBDb25kaXRpb25Hcm91cCB9IGZyb20gJy4uL21vZGVscy9Db25kaXRpb25Hcm91cCc7XG5pbXBvcnQgeyBDb25kaXRpb24gfSBmcm9tICcuLi9tb2RlbHMvQ29uZGl0aW9uJztcbmltcG9ydCB7IE9wZXJhdG9yIH0gZnJvbSAnLi4vbW9kZWxzL09wZXJhdG9yJztcblxuaW1wb3J0IHsgR2lvRWxFZGl0b3JUeXBlU3RyaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9naW8tZWwtdHlwZS9naW8tZWwtZWRpdG9yLXR5cGUtc3RyaW5nL2dpby1lbC1lZGl0b3ItdHlwZS1zdHJpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IEdpb0VsRWRpdG9yVHlwZUJvb2xlYW5Db21wb25lbnQgfSBmcm9tICcuL2dpby1lbC10eXBlL2dpby1lbC1lZGl0b3ItdHlwZS1ib29sZWFuL2dpby1lbC1lZGl0b3ItdHlwZS1ib29sZWFuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHaW9FbEVkaXRvclR5cGVOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuL2dpby1lbC10eXBlL2dpby1lbC1lZGl0b3ItdHlwZS1udW1iZXIvZ2lvLWVsLWVkaXRvci10eXBlLW51bWJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2lvRWxFZGl0b3JUeXBlRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vZ2lvLWVsLXR5cGUvZ2lvLWVsLWVkaXRvci10eXBlLWRhdGUvZ2lvLWVsLWVkaXRvci10eXBlLWRhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEdpb0VsRWRpdG9yQ29uZGl0aW9uR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2dpby1lbC1lZGl0b3ItY29uZGl0aW9uLWdyb3VwL2dpby1lbC1lZGl0b3ItY29uZGl0aW9uLWdyb3VwLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIENvbmRpdGlvbkZvcm0gPSB7XG4gIGZpZWxkOiBGb3JtQ29udHJvbDxDb25kaXRpb25Nb2RlbCB8IG51bGw+O1xuICBvcGVyYXRvcjogRm9ybUNvbnRyb2w8T3BlcmF0b3IgfCBudWxsPjtcbiAgdmFsdWU6IEZvcm1Db250cm9sPHN0cmluZyB8IGJvb2xlYW4gfCBEYXRlIHwgbnVtYmVyIHwgbnVsbD47XG59O1xuXG5leHBvcnQgdHlwZSBDb25kaXRpb25Hcm91cEZvcm0gPSB7XG4gIGNvbmRpdGlvbjogRm9ybUNvbnRyb2w8J0FORCcgfCAnT1InPjtcbiAgY29uZGl0aW9uczogRm9ybUFycmF5PEZvcm1Hcm91cDxDb25kaXRpb25Gb3JtPiB8IEZvcm1Hcm91cDxDb25kaXRpb25Hcm91cEZvcm0+Pjtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dpby1lbC1lZGl0b3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBHaW9JY29uc01vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgR2lvRWxFZGl0b3JUeXBlU3RyaW5nQ29tcG9uZW50LFxuICAgIEdpb0VsRWRpdG9yVHlwZUJvb2xlYW5Db21wb25lbnQsXG4gICAgR2lvRWxFZGl0b3JUeXBlTnVtYmVyQ29tcG9uZW50LFxuICAgIEdpb0VsRWRpdG9yVHlwZURhdGVDb21wb25lbnQsXG4gICAgR2lvRWxFZGl0b3JDb25kaXRpb25Hcm91cENvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2dpby1lbC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZ2lvLWVsLWVkaXRvci5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9FbEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBwdWJsaWMgY29uZGl0aW9uc01vZGVsOiBDb25kaXRpb25zTW9kZWwgPSBbXTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgcHJvdGVjdGVkIGNvbmRpdGlvbkdyb3VwRm9ybUdyb3VwID0gbmV3Q29uZGl0aW9uR3JvdXBGb3JtR3JvdXAoKTtcblxuICBwcm90ZWN0ZWQgZWxPdXRwdXQ/OiBzdHJpbmc7XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29uZGl0aW9uR3JvdXBGb3JtR3JvdXAudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzLmNvbmRpdGlvbkdyb3VwRm9ybUdyb3VwLmdldFJhd1ZhbHVlKCkpLFxuICAgICAgICBtYXAodmFsdWUgPT4ge1xuICAgICAgICAgIHR5cGUgQ29uZGl0aW9uR3JvdXBWYWx1ZSA9IHR5cGVvZiB2YWx1ZTtcbiAgICAgICAgICB0eXBlIENvbmRpdGlvblZhbHVlID0gRXhjbHVkZTxDb25kaXRpb25Hcm91cFZhbHVlWydjb25kaXRpb25zJ10sIHVuZGVmaW5lZD5bbnVtYmVyXTtcblxuICAgICAgICAgIGNvbnN0IHRvQ29uZGl0aW9uID0gKGNvbmRpdGlvblZhbHVlOiBDb25kaXRpb25WYWx1ZSk6IENvbmRpdGlvbjxDb25kaXRpb25UeXBlPiB8IENvbmRpdGlvbkdyb3VwIHwgbnVsbCA9PiB7XG4gICAgICAgICAgICBpZiAoaXNDb25kaXRpb25Hcm91cFZhbHVlKGNvbmRpdGlvblZhbHVlKSkge1xuICAgICAgICAgICAgICByZXR1cm4gdG9Db25kaXRpb25Hcm91cChjb25kaXRpb25WYWx1ZSBhcyBDb25kaXRpb25Hcm91cFZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgIWlzQ29uZGl0aW9uVmFsdWUoY29uZGl0aW9uVmFsdWUpIHx8XG4gICAgICAgICAgICAgIGlzTmlsKGNvbmRpdGlvblZhbHVlLmZpZWxkKSB8fFxuICAgICAgICAgICAgICBpc05pbChjb25kaXRpb25WYWx1ZS5vcGVyYXRvcikgfHxcbiAgICAgICAgICAgICAgaXNOaWwoY29uZGl0aW9uVmFsdWUudmFsdWUpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgZmllbGQ6IENvbmRpdGlvbjxDb25kaXRpb25UeXBlPlsnZmllbGQnXSA9IGNvbmRpdGlvblZhbHVlLmZpZWxkLmZpZWxkO1xuICAgICAgICAgICAgaWYgKGNvbmRpdGlvblZhbHVlLmZpZWxkLm1hcCkge1xuICAgICAgICAgICAgICBmaWVsZCA9IHtcbiAgICAgICAgICAgICAgICBmaWVsZDogY29uZGl0aW9uVmFsdWUuZmllbGQuZmllbGQsXG4gICAgICAgICAgICAgICAga2V5MVZhbHVlOiBnZXQoY29uZGl0aW9uVmFsdWUuZmllbGQubWFwLCAna2V5MVZhbHVlJykgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGtleTJWYWx1ZTogZ2V0KGNvbmRpdGlvblZhbHVlLmZpZWxkLm1hcCwgJ2tleTJWYWx1ZScpID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG5ldyBDb25kaXRpb24oZmllbGQsIGNvbmRpdGlvblZhbHVlLmZpZWxkLnR5cGUsIGNvbmRpdGlvblZhbHVlLm9wZXJhdG9yLCBjb25kaXRpb25WYWx1ZS52YWx1ZSk7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnN0IHRvQ29uZGl0aW9uR3JvdXAgPSAoY29uZGl0aW9uR3JvdXBWYWx1ZTogQ29uZGl0aW9uR3JvdXBWYWx1ZSk6IENvbmRpdGlvbkdyb3VwIHwgbnVsbCA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb25kaXRpb25zOiBDb25kaXRpb25Hcm91cFsnY29uZGl0aW9ucyddID0gW107XG4gICAgICAgICAgICBpZiAoIWNvbmRpdGlvbkdyb3VwVmFsdWUuY29uZGl0aW9uIHx8ICFjb25kaXRpb25Hcm91cFZhbHVlLmNvbmRpdGlvbnMgfHwgaXNFbXB0eShjb25kaXRpb25Hcm91cFZhbHVlLmNvbmRpdGlvbnMpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChjb25zdCBjb25kaXRpb25WYWx1ZSBvZiBjb25kaXRpb25Hcm91cFZhbHVlLmNvbmRpdGlvbnMpIHtcbiAgICAgICAgICAgICAgY29uc3QgY29uZGl0aW9uID0gdG9Db25kaXRpb24oY29uZGl0aW9uVmFsdWUpO1xuICAgICAgICAgICAgICBpZiAoY29uZGl0aW9uKSB7XG4gICAgICAgICAgICAgICAgY29uZGl0aW9ucy5wdXNoKGNvbmRpdGlvbik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0VtcHR5KGNvbmRpdGlvbnMpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbmRpdGlvbkdyb3VwKGNvbmRpdGlvbkdyb3VwVmFsdWUuY29uZGl0aW9uLCBjb25kaXRpb25zKTtcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgY29uc3QgY29uZGl0aW9uR3JvdXBWYWx1ZSA9IHRvQ29uZGl0aW9uR3JvdXAodmFsdWUpO1xuICAgICAgICAgIGlmIChjb25kaXRpb25Hcm91cFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmVsT3V0cHV0ID0gbmV3IEV4cHJlc3Npb25MYW5ndWFnZUJ1aWxkZXIoY29uZGl0aW9uR3JvdXBWYWx1ZSkuYnVpbGQoKTtcbiAgICAgICAgICAgIHRoaXMuZWxDaGFuZ2UuZW1pdCh0aGlzLmVsT3V0cHV0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG59XG5cbmNvbnN0IG5ld0NvbmRpdGlvbkdyb3VwRm9ybUdyb3VwID0gKCk6IEZvcm1Hcm91cDxDb25kaXRpb25Hcm91cEZvcm0+ID0+IHtcbiAgcmV0dXJuIG5ldyBGb3JtR3JvdXA8Q29uZGl0aW9uR3JvdXBGb3JtPih7XG4gICAgY29uZGl0aW9uOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogJ0FORCcsIGRpc2FibGVkOiB0cnVlIH0sIHsgbm9uTnVsbGFibGU6IHRydWUsIHZhbGlkYXRvcnM6IFZhbGlkYXRvcnMucmVxdWlyZWQgfSksXG4gICAgY29uZGl0aW9uczogbmV3IEZvcm1BcnJheTxGb3JtR3JvdXA8Q29uZGl0aW9uRm9ybT4gfCBGb3JtR3JvdXA8Q29uZGl0aW9uR3JvdXBGb3JtPj4oW10pLFxuICB9KTtcbn07XG5cbmNvbnN0IGlzQ29uZGl0aW9uR3JvdXBWYWx1ZSA9IChcbiAgdmFsdWU6IHVua25vd24sXG4pOiB2YWx1ZSBpcyB7XG4gIGNvbmRpdGlvbjogJ0FORCcgfCAnT1InO1xuICBjb25kaXRpb25zOiB1bmtub3duW107XG59ID0+IHtcbiAgcmV0dXJuICEhdmFsdWUgJiYgaGFzKHZhbHVlLCAnY29uZGl0aW9uJykgJiYgaGFzKHZhbHVlLCAnY29uZGl0aW9ucycpO1xufTtcblxuY29uc3QgaXNDb25kaXRpb25WYWx1ZSA9IChcbiAgdmFsdWU6IHVua25vd24sXG4pOiB2YWx1ZSBpcyB7XG4gIGZpZWxkOiBDb25kaXRpb25Nb2RlbDtcbiAgb3BlcmF0b3I6IE9wZXJhdG9yO1xuICB2YWx1ZTogc3RyaW5nIHwgYm9vbGVhbiB8IERhdGUgfCBudW1iZXI7XG59ID0+IHtcbiAgcmV0dXJuICEhdmFsdWUgJiYgaGFzKHZhbHVlLCAnZmllbGQnKSAmJiBoYXModmFsdWUsICdvcGVyYXRvcicpICYmIGhhcyh2YWx1ZSwgJ3ZhbHVlJyk7XG59O1xuIiwiPCEtLVxuXG4gICAgQ29weXJpZ2h0IChDKSAyMDI0IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gICAgXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gICAgXG4gICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAgICBcbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cblxuLS0+XG5cbjxnaW8tZWwtZWRpdG9yLWNvbmRpdGlvbi1ncm91cFxuICBbY29uZGl0aW9uR3JvdXBGb3JtR3JvdXBdPVwiY29uZGl0aW9uR3JvdXBGb3JtR3JvdXBcIlxuICBbY29uZGl0aW9uc01vZGVsXT1cImNvbmRpdGlvbnNNb2RlbFwiXG4+PC9naW8tZWwtZWRpdG9yLWNvbmRpdGlvbi1ncm91cD5cblxuQGlmIChlbE91dHB1dCkge1xuICA8ZGl2IGNsYXNzPVwicHJldmlld1wiPlxuICAgIHt7IGVsT3V0cHV0IH19XG4gIDwvZGl2PlxufVxuIl19
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { ComponentHarness } from '@angular/cdk/testing';
|
|
16
|
+
import { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
|
|
17
17
|
import { GioElEditorConditionGroupHarness } from './gio-el-editor-condition-group/gio-el-editor-condition-group.harness';
|
|
18
18
|
export class GioElEditorHarness extends ComponentHarness {
|
|
19
19
|
constructor() {
|
|
@@ -21,5 +21,8 @@ export class GioElEditorHarness extends ComponentHarness {
|
|
|
21
21
|
this.getMainConditionGroup = this.locatorFor(GioElEditorConditionGroupHarness);
|
|
22
22
|
}
|
|
23
23
|
static { this.hostSelector = 'gio-el-editor'; }
|
|
24
|
+
static with(options = {}) {
|
|
25
|
+
return new HarnessPredicate(GioElEditorHarness, options);
|
|
26
|
+
}
|
|
24
27
|
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWVsLWVkaXRvci5oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcGFydGljbGVzLWFuZ3VsYXIvZ2lvLWVsL2dpby1lbC1lZGl0b3IvZ2lvLWVsLWVkaXRvci5oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFzQixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTlGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBRXpILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxnQkFBZ0I7SUFBeEQ7O1FBR1MsMEJBQXFCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0lBS25GLENBQUM7YUFQZSxpQkFBWSxHQUFHLGVBQWUsQUFBbEIsQ0FBbUI7SUFJdEMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUE4QixFQUFFO1FBQ2pELE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyNCBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IEJhc2VIYXJuZXNzRmlsdGVycywgQ29tcG9uZW50SGFybmVzcywgSGFybmVzc1ByZWRpY2F0ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcblxuaW1wb3J0IHsgR2lvRWxFZGl0b3JDb25kaXRpb25Hcm91cEhhcm5lc3MgfSBmcm9tICcuL2dpby1lbC1lZGl0b3ItY29uZGl0aW9uLWdyb3VwL2dpby1lbC1lZGl0b3ItY29uZGl0aW9uLWdyb3VwLmhhcm5lc3MnO1xuXG5leHBvcnQgY2xhc3MgR2lvRWxFZGl0b3JIYXJuZXNzIGV4dGVuZHMgQ29tcG9uZW50SGFybmVzcyB7XG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ2dpby1lbC1lZGl0b3InO1xuXG4gIHB1YmxpYyBnZXRNYWluQ29uZGl0aW9uR3JvdXAgPSB0aGlzLmxvY2F0b3JGb3IoR2lvRWxFZGl0b3JDb25kaXRpb25Hcm91cEhhcm5lc3MpO1xuXG4gIHB1YmxpYyBzdGF0aWMgd2l0aChvcHRpb25zOiBCYXNlSGFybmVzc0ZpbHRlcnMgPSB7fSk6IEhhcm5lc3NQcmVkaWNhdGU8R2lvRWxFZGl0b3JIYXJuZXNzPiB7XG4gICAgcmV0dXJuIG5ldyBIYXJuZXNzUHJlZGljYXRlKEdpb0VsRWRpdG9ySGFybmVzcywgb3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==
|