@wavemaker/app-ng-runtime 11.7.5-next.NULL → 11.7.5-rc.166
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.
- app-ng-runtime/build-task/bundles/index.umd.js +13 -1
- app-ng-runtime/build-task/esm2022/navigation/menu/menu.build.mjs +14 -2
- app-ng-runtime/build-task/fesm2022/index.mjs +13 -1
- app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/default/audio/audio.component.d.ts +1 -0
- app-ng-runtime/components/basic/default/bundles/index.umd.js +5 -4
- app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +6 -5
- app-ng-runtime/components/basic/default/fesm2022/index.mjs +5 -4
- app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/progress/bundles/index.umd.js +5 -4
- app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +3 -3
- app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +4 -3
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs +5 -4
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +1 -0
- app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +1 -1
- app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/search/bundles/index.umd.js +2 -2
- app-ng-runtime/components/basic/search/esm2022/search.component.mjs +3 -3
- app-ng-runtime/components/basic/search/fesm2022/index.mjs +2 -2
- app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/bundles/index.umd.js +5 -4
- app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +1 -2
- app-ng-runtime/components/data/form/esm2022/form.component.mjs +2 -2
- app-ng-runtime/components/data/form/esm2022/live-form/live-form.directive.mjs +5 -3
- app-ng-runtime/components/data/form/fesm2022/index.mjs +5 -4
- app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +5 -4
- app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +5 -5
- app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.props.mjs +2 -1
- app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs +5 -4
- app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +5 -4
- app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +5 -5
- app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.props.mjs +2 -1
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs +5 -4
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/default/bundles/index.umd.js +163 -30
- app-ng-runtime/components/dialogs/default/dialog-header/dialog-header.component.d.ts +2 -1
- app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +164 -31
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +163 -30
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +5 -4
- app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +5 -5
- app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.props.mjs +2 -1
- app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +5 -4
- app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +5 -4
- app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +5 -5
- app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.props.mjs +2 -1
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs +5 -4
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +5 -4
- app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +5 -5
- app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.props.mjs +2 -1
- app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs +5 -4
- app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/bundles/index.umd.js +43 -53
- app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +2 -3
- app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +44 -53
- app-ng-runtime/components/input/default/fesm2022/index.mjs +44 -54
- app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/select/select.component.d.ts +1 -2
- app-ng-runtime/components/input/epoch/bundles/index.umd.js +212 -50
- app-ng-runtime/components/input/epoch/date/date.component.d.ts +7 -0
- app-ng-runtime/components/input/epoch/date/imaskUtil.d.ts +92 -0
- app-ng-runtime/components/input/epoch/epoch.module.d.ts +2 -1
- app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +5 -4
- app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +76 -28
- app-ng-runtime/components/input/epoch/esm2022/date/date.props.mjs +3 -2
- app-ng-runtime/components/input/epoch/esm2022/date/imaskUtil.mjs +112 -0
- app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +4 -4
- app-ng-runtime/components/input/epoch/esm2022/epoch.module.mjs +8 -4
- app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +3 -3
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs +205 -41
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/bundles/index.umd.js +1 -1
- app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +2 -2
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +1 -1
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/popover/bundles/index.umd.js +3 -2
- app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +4 -3
- app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +3 -2
- app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/core/bundles/index.umd.js +0 -1
- app-ng-runtime/core/esm2022/utils/expression-parser.mjs +1 -2
- app-ng-runtime/core/fesm2022/index.mjs +0 -1
- app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/core/bundles/index.umd.js +5 -0
- app-ng-runtime/mobile/core/esm2022/native.xhr.mjs +6 -1
- app-ng-runtime/mobile/core/fesm2022/index.mjs +5 -0
- app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/core/native.xhr.d.ts +1 -0
- app-ng-runtime/package.json +1 -1
- app-ng-runtime/runtime/base/bundles/index.umd.js +1 -0
- app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +2 -2
- app-ng-runtime/runtime/base/fesm2022/index.mjs +1 -1
- app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/scripts/datatable/datatable.js +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/dialogs/partial-dialog/src/partial-dialog.props.ts","../../../../../projects/components/widgets/dialogs/partial-dialog/src/partial-dialog.component.html","../../../../../projects/components/widgets/dialogs/partial-dialog/src/partial-dialog.component.ts","../../../../../projects/components/widgets/dialogs/partial-dialog/src/partial-dialog.module.ts","../../../../../projects/components/widgets/dialogs/partial-dialog/src/index.ts"],"sourcesContent":["import { PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-partialdialog',\n new Map(\n [\n ['animation', PROP_STRING],\n ['class', PROP_STRING],\n ['closable', {value: true, PROP_BOOLEAN}],\n ['content', PROP_STRING],\n ['iconclass', {value: 'wi wi-file', PROP_STRING}],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['modal', {value: false, ...PROP_BOOLEAN}],\n ['name', PROP_STRING],\n ['oktext', {value: 'OK', ...PROP_STRING}],\n ['showactions', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['title', {value: 'Page Content', ...PROP_STRING}]\n ]\n )\n );\n};\n","<ng-template #dialogTemplate>\n <div wmDialogHeader [closable]=\"closable\"\n [iconclass]=\"iconclass\"\n [iconurl]=\"iconurl\"\n [iconwidth]=\"iconwidth\"\n [iconheight]=\"iconheight\"\n [iconmargin]=\"iconmargin\"\n [heading]=\"title\"\n [titleid]=\"titleId\"\n ></div>\n <div wmDialogBody>\n <ng-container *ngTemplateOutlet=\"dialogContent\"></ng-container>\n </div>\n <div wmDialogFooter *ngIf=\"showactions\">\n <button wmButton class=\"btn-primary ok-action\" caption.bind=\"oktext\" aria-label=\"Submit button\" (click)=\"onOk($event)\"></button>\n </div>\n</ng-template>\n","import {Attribute, Component, ContentChild, Injector, OnInit, Optional, SkipSelf, TemplateRef, ViewChild} from '@angular/core';\n\nimport {App, toBoolean} from '@wm/core';\nimport { provideAsDialogRef, provideAsWidgetRef } from '@wm/components/base';\nimport { BaseDialog } from '@wm/components/dialogs';\n\nimport { registerProps } from './partial-dialog.props';\n\nconst DIALOG_CLS = 'app-dialog modal-dialog app-page-dialog';\nconst WIDGET_INFO = {widgetType: 'wm-partialdialog'};\n\n@Component({\n selector: 'div[wmPartialDialog]',\n templateUrl: './partial-dialog.component.html',\n providers: [\n provideAsWidgetRef(PartialDialogComponent),\n provideAsDialogRef(PartialDialogComponent)\n ]\n})\nexport class PartialDialogComponent extends BaseDialog implements OnInit {\n static initializeProps = registerProps();\n @ViewChild('dialogTemplate', { static: true }) dialogTemplate: TemplateRef<any>;\n @ContentChild(TemplateRef) dialogContent: TemplateRef<any>;\n @ContentChild('partial') partialRef;\n\n protected app;\n protected Widgets;\n protected Variables;\n protected Actions;\n\n constructor(\n inj: Injector,\n app: App,\n @Attribute('class') dialogClass: string,\n @Attribute('modal') modal: string | boolean,\n @Attribute('closable') closable: string | boolean\n ) {\n if (modal === null || modal === undefined) {\n modal = false;\n }\n\n if (closable === null || closable === undefined) {\n closable = true;\n }\n\n // setting the backdrop to 'static' will not close the dialog on backdrop click\n const backdrop: boolean | 'static' = toBoolean(modal) ? 'static' : true;\n\n super(\n inj,\n WIDGET_INFO,\n {\n class: `${DIALOG_CLS} ${dialogClass || ''}`,\n backdrop,\n keyboard: !toBoolean(modal)\n }\n );\n this.app = app;\n }\n\n protected getTemplateRef(): TemplateRef<any> {\n return this.dialogTemplate;\n }\n\n /**\n * Click event handler for the ok button\n * invokes on-ok event callback\n * @param {Event} $event\n */\n onOk($event: Event) {\n this.invokeEventCallback('ok', {$event});\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.register(this.viewParent);\n }\n\n private setPartialLoadListener() {\n const cancelSubscription = this.app.subscribe('partialLoaded', () => {\n const parEle = this.partialRef.nativeElement;\n let partialScope;\n if (parEle) {\n partialScope = parEle.widget;\n this.Widgets = partialScope.Widgets;\n this.Variables = partialScope.Variables;\n this.Actions = partialScope.Actions;\n }\n cancelSubscription();\n });\n }\n\n public open(initState?: any) {\n super.open(initState);\n // WMS-19410 - Set the partial load listener to access widgets, variables and actions of page dialog\n this.setPartialLoadListener();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\nimport { DialogModule } from '@wm/components/dialogs';\nimport { InputModule } from '@wm/components/input';\n\nimport { PartialDialogComponent } from './partial-dialog.component';\n\nconst components = [\n PartialDialogComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n DialogModule,\n InputModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class PartialDialogModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/dialogs/partial-dialog/src/partial-dialog.props.ts","../../../../../projects/components/widgets/dialogs/partial-dialog/src/partial-dialog.component.html","../../../../../projects/components/widgets/dialogs/partial-dialog/src/partial-dialog.component.ts","../../../../../projects/components/widgets/dialogs/partial-dialog/src/partial-dialog.module.ts","../../../../../projects/components/widgets/dialogs/partial-dialog/src/index.ts"],"sourcesContent":["import { PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-partialdialog',\n new Map(\n [\n ['animation', PROP_STRING],\n ['class', PROP_STRING],\n ['closable', {value: true, PROP_BOOLEAN}],\n ['content', PROP_STRING],\n ['iconclass', {value: 'wi wi-file', PROP_STRING}],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['modal', {value: false, ...PROP_BOOLEAN}],\n ['name', PROP_STRING],\n ['oktext', {value: 'OK', ...PROP_STRING}],\n ['showactions', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['headinglevel', {value: 'h4', ...PROP_STRING}],\n ['title', {value: 'Page Content', ...PROP_STRING}]\n ]\n )\n );\n};\n","<ng-template #dialogTemplate>\n <div wmDialogHeader [closable]=\"closable\"\n [iconclass]=\"iconclass\"\n [iconurl]=\"iconurl\"\n [iconwidth]=\"iconwidth\"\n [iconheight]=\"iconheight\"\n [iconmargin]=\"iconmargin\"\n [heading]=\"title\"\n [headinglevel]=\"headinglevel\"\n [titleid]=\"titleId\"\n ></div>\n <div wmDialogBody>\n <ng-container *ngTemplateOutlet=\"dialogContent\"></ng-container>\n </div>\n <div wmDialogFooter *ngIf=\"showactions\">\n <button wmButton class=\"btn-primary ok-action\" caption.bind=\"oktext\" aria-label=\"Submit button\" (click)=\"onOk($event)\"></button>\n </div>\n</ng-template>\n","import {Attribute, Component, ContentChild, Injector, OnInit, Optional, SkipSelf, TemplateRef, ViewChild} from '@angular/core';\n\nimport {App, toBoolean} from '@wm/core';\nimport { provideAsDialogRef, provideAsWidgetRef } from '@wm/components/base';\nimport { BaseDialog } from '@wm/components/dialogs';\n\nimport { registerProps } from './partial-dialog.props';\n\nconst DIALOG_CLS = 'app-dialog modal-dialog app-page-dialog';\nconst WIDGET_INFO = {widgetType: 'wm-partialdialog'};\n\n@Component({\n selector: 'div[wmPartialDialog]',\n templateUrl: './partial-dialog.component.html',\n providers: [\n provideAsWidgetRef(PartialDialogComponent),\n provideAsDialogRef(PartialDialogComponent)\n ]\n})\nexport class PartialDialogComponent extends BaseDialog implements OnInit {\n static initializeProps = registerProps();\n @ViewChild('dialogTemplate', { static: true }) dialogTemplate: TemplateRef<any>;\n @ContentChild(TemplateRef) dialogContent: TemplateRef<any>;\n @ContentChild('partial') partialRef;\n\n protected app;\n protected Widgets;\n protected Variables;\n protected Actions;\n\n constructor(\n inj: Injector,\n app: App,\n @Attribute('class') dialogClass: string,\n @Attribute('modal') modal: string | boolean,\n @Attribute('closable') closable: string | boolean\n ) {\n if (modal === null || modal === undefined) {\n modal = false;\n }\n\n if (closable === null || closable === undefined) {\n closable = true;\n }\n\n // setting the backdrop to 'static' will not close the dialog on backdrop click\n const backdrop: boolean | 'static' = toBoolean(modal) ? 'static' : true;\n\n super(\n inj,\n WIDGET_INFO,\n {\n class: `${DIALOG_CLS} ${dialogClass || ''}`,\n backdrop,\n keyboard: !toBoolean(modal)\n }\n );\n this.app = app;\n }\n\n protected getTemplateRef(): TemplateRef<any> {\n return this.dialogTemplate;\n }\n\n /**\n * Click event handler for the ok button\n * invokes on-ok event callback\n * @param {Event} $event\n */\n onOk($event: Event) {\n this.invokeEventCallback('ok', {$event});\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.register(this.viewParent);\n }\n\n private setPartialLoadListener() {\n const cancelSubscription = this.app.subscribe('partialLoaded', () => {\n const parEle = this.partialRef.nativeElement;\n let partialScope;\n if (parEle) {\n partialScope = parEle.widget;\n this.Widgets = partialScope.Widgets;\n this.Variables = partialScope.Variables;\n this.Actions = partialScope.Actions;\n }\n cancelSubscription();\n });\n }\n\n public open(initState?: any) {\n super.open(initState);\n // WMS-19410 - Set the partial load listener to access widgets, variables and actions of page dialog\n this.setPartialLoadListener();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\nimport { DialogModule } from '@wm/components/dialogs';\nimport { InputModule } from '@wm/components/input';\n\nimport { PartialDialogComponent } from './partial-dialog.component';\n\nconst components = [\n PartialDialogComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n DialogModule,\n InputModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class PartialDialogModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -2080,51 +2080,45 @@
|
|
|
2080
2080
|
};
|
|
2081
2081
|
|
|
2082
2082
|
const _c0$7 = ["select"];
|
|
2083
|
-
function SelectComponent_option_2_Template(rf, ctx) { if (rf & 1) {
|
|
2084
|
-
i0__namespace.ɵɵelement(0, "option", 4);
|
|
2085
|
-
} if (rf & 2) {
|
|
2086
|
-
const ctx_r1 = i0__namespace.ɵɵnextContext();
|
|
2087
|
-
i0__namespace.ɵɵproperty("textContent", ctx_r1.placeholder)("hidden", !ctx_r1.placeholder);
|
|
2088
|
-
} }
|
|
2089
2083
|
function SelectComponent_ng_container_3_optgroup_1_option_1_Template(rf, ctx) { if (rf & 1) {
|
|
2090
|
-
i0__namespace.ɵɵelement(0, "option",
|
|
2084
|
+
i0__namespace.ɵɵelement(0, "option", 7);
|
|
2091
2085
|
} if (rf & 2) {
|
|
2092
|
-
const
|
|
2093
|
-
i0__namespace.ɵɵproperty("value",
|
|
2086
|
+
const item_r6 = ctx.$implicit;
|
|
2087
|
+
i0__namespace.ɵɵproperty("value", item_r6.key)("selected", item_r6.selected)("textContent", item_r6.label);
|
|
2094
2088
|
} }
|
|
2095
2089
|
function SelectComponent_ng_container_3_optgroup_1_Template(rf, ctx) { if (rf & 1) {
|
|
2096
|
-
i0__namespace.ɵɵelementStart(0, "optgroup",
|
|
2097
|
-
i0__namespace.ɵɵtemplate(1, SelectComponent_ng_container_3_optgroup_1_option_1_Template, 1, 3, "option",
|
|
2090
|
+
i0__namespace.ɵɵelementStart(0, "optgroup", 5);
|
|
2091
|
+
i0__namespace.ɵɵtemplate(1, SelectComponent_ng_container_3_optgroup_1_option_1_Template, 1, 3, "option", 6);
|
|
2098
2092
|
i0__namespace.ɵɵelementEnd();
|
|
2099
2093
|
} if (rf & 2) {
|
|
2100
|
-
const
|
|
2101
|
-
i0__namespace.ɵɵproperty("label",
|
|
2094
|
+
const groupObj_r4 = ctx.$implicit;
|
|
2095
|
+
i0__namespace.ɵɵproperty("label", groupObj_r4.key);
|
|
2102
2096
|
i0__namespace.ɵɵadvance(1);
|
|
2103
|
-
i0__namespace.ɵɵproperty("ngForOf",
|
|
2097
|
+
i0__namespace.ɵɵproperty("ngForOf", groupObj_r4.data);
|
|
2104
2098
|
} }
|
|
2105
2099
|
function SelectComponent_ng_container_3_Template(rf, ctx) { if (rf & 1) {
|
|
2106
2100
|
i0__namespace.ɵɵelementContainerStart(0);
|
|
2107
|
-
i0__namespace.ɵɵtemplate(1, SelectComponent_ng_container_3_optgroup_1_Template, 2, 2, "optgroup",
|
|
2101
|
+
i0__namespace.ɵɵtemplate(1, SelectComponent_ng_container_3_optgroup_1_Template, 2, 2, "optgroup", 4);
|
|
2108
2102
|
i0__namespace.ɵɵelementContainerEnd();
|
|
2109
2103
|
} if (rf & 2) {
|
|
2110
|
-
const
|
|
2104
|
+
const ctx_r1 = i0__namespace.ɵɵnextContext();
|
|
2111
2105
|
i0__namespace.ɵɵadvance(1);
|
|
2112
|
-
i0__namespace.ɵɵproperty("ngForOf",
|
|
2106
|
+
i0__namespace.ɵɵproperty("ngForOf", ctx_r1.groupedData);
|
|
2113
2107
|
} }
|
|
2114
2108
|
function SelectComponent_ng_container_4_option_1_Template(rf, ctx) { if (rf & 1) {
|
|
2115
|
-
i0__namespace.ɵɵelement(0, "option",
|
|
2109
|
+
i0__namespace.ɵɵelement(0, "option", 7);
|
|
2116
2110
|
} if (rf & 2) {
|
|
2117
|
-
const
|
|
2118
|
-
i0__namespace.ɵɵproperty("value",
|
|
2111
|
+
const item_r8 = ctx.$implicit;
|
|
2112
|
+
i0__namespace.ɵɵproperty("value", item_r8.key)("selected", item_r8.selected)("textContent", item_r8.label);
|
|
2119
2113
|
} }
|
|
2120
2114
|
function SelectComponent_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
2121
2115
|
i0__namespace.ɵɵelementContainerStart(0);
|
|
2122
|
-
i0__namespace.ɵɵtemplate(1, SelectComponent_ng_container_4_option_1_Template, 1, 3, "option",
|
|
2116
|
+
i0__namespace.ɵɵtemplate(1, SelectComponent_ng_container_4_option_1_Template, 1, 3, "option", 6);
|
|
2123
2117
|
i0__namespace.ɵɵelementContainerEnd();
|
|
2124
2118
|
} if (rf & 2) {
|
|
2125
|
-
const
|
|
2119
|
+
const ctx_r2 = i0__namespace.ɵɵnextContext();
|
|
2126
2120
|
i0__namespace.ɵɵadvance(1);
|
|
2127
|
-
i0__namespace.ɵɵproperty("ngForOf",
|
|
2121
|
+
i0__namespace.ɵɵproperty("ngForOf", ctx_r2.datasetItems);
|
|
2128
2122
|
} }
|
|
2129
2123
|
const _c1$6 = function (a1) { return ["app-select form-control", a1]; };
|
|
2130
2124
|
const WIDGET_CONFIG$7 = { widgetType: 'wm-select', hostClass: 'app-select-wrapper' };
|
|
@@ -2143,9 +2137,6 @@
|
|
|
2143
2137
|
ngAfterViewInit() {
|
|
2144
2138
|
super.ngAfterViewInit();
|
|
2145
2139
|
i2.styler(this.selectEl.nativeElement, this);
|
|
2146
|
-
setTimeout(() => {
|
|
2147
|
-
this.checkForFloatingLabel(null);
|
|
2148
|
-
}, 10);
|
|
2149
2140
|
}
|
|
2150
2141
|
// Change event is registered from the template, Prevent the framework from registering one more event
|
|
2151
2142
|
handleEvent(node, eventName, eventCallback, locals) {
|
|
@@ -2192,16 +2183,6 @@
|
|
|
2192
2183
|
}
|
|
2193
2184
|
super.onPropertyChange(key, nv, ov);
|
|
2194
2185
|
}
|
|
2195
|
-
isSafariBrowser() {
|
|
2196
|
-
var reg = {
|
|
2197
|
-
MAC: /Mac/i,
|
|
2198
|
-
MACINTEL: /MacIntel/i
|
|
2199
|
-
};
|
|
2200
|
-
return reg.MAC.test(window.navigator.platform) || reg.MACINTEL.test(window.navigator.platform);
|
|
2201
|
-
}
|
|
2202
|
-
isIosPlatform() {
|
|
2203
|
-
return i1$1.isIos() || this.isSafariBrowser();
|
|
2204
|
-
}
|
|
2205
2186
|
/**
|
|
2206
2187
|
* When caption floating is enabled and placeholder is given, do not show placeholder until user focuses on the field
|
|
2207
2188
|
* When focused add the placeholder to the option which is selected
|
|
@@ -2211,23 +2192,33 @@
|
|
|
2211
2192
|
checkForFloatingLabel($event) {
|
|
2212
2193
|
const captionEl = $(this.selectEl.nativeElement).closest('.app-composite-widget.caption-floating');
|
|
2213
2194
|
if (captionEl.length > 0) {
|
|
2214
|
-
if (
|
|
2215
|
-
if (
|
|
2216
|
-
this.
|
|
2195
|
+
if ($event.type === 'focus' && (!this.datavalue || (this.datavalue && $(this.selectEl).find('select option:selected').text() === '' && this.placeholder))) {
|
|
2196
|
+
if (!(this.datavalue || this.placeholder)) {
|
|
2197
|
+
this.removePlaceholderOption();
|
|
2217
2198
|
}
|
|
2218
|
-
|
|
2199
|
+
else {
|
|
2219
2200
|
$(this.selectEl.nativeElement).find('option:first').text(this.placeholder);
|
|
2220
2201
|
}
|
|
2221
2202
|
}
|
|
2222
2203
|
else if (!this.datavalue) {
|
|
2223
|
-
|
|
2224
|
-
|
|
2225
|
-
if (!this.isIosPlatform()) {
|
|
2226
|
-
captionEl.removeClass('float-active');
|
|
2227
|
-
}
|
|
2228
|
-
}
|
|
2204
|
+
$(this.selectEl.nativeElement).find('option:selected').text('');
|
|
2205
|
+
captionEl.removeClass('float-active');
|
|
2229
2206
|
}
|
|
2230
2207
|
}
|
|
2208
|
+
else if (!(this.datavalue || this.placeholder)) {
|
|
2209
|
+
this.removePlaceholderOption();
|
|
2210
|
+
}
|
|
2211
|
+
}
|
|
2212
|
+
/*
|
|
2213
|
+
* Removing the placeholder option if no placeholder is provided.
|
|
2214
|
+
* In html we are hiding the placeholder option using css but in apple devices and safari option is showing.
|
|
2215
|
+
* */
|
|
2216
|
+
removePlaceholderOption() {
|
|
2217
|
+
const hiddenEle = $(this.selectEl.nativeElement).find('#placeholderOption');
|
|
2218
|
+
if (hiddenEle.length) {
|
|
2219
|
+
hiddenEle.remove();
|
|
2220
|
+
this.selectEl.nativeElement.value = '';
|
|
2221
|
+
}
|
|
2231
2222
|
}
|
|
2232
2223
|
static { this.ɵfac = function SelectComponent_Factory(t) { return new (t || SelectComponent)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(i1$1__namespace.App)); }; }
|
|
2233
2224
|
static { this.ɵcmp = /*@__PURE__*/ i0__namespace.ɵɵdefineComponent({ type: SelectComponent, selectors: [["wm-select"]], viewQuery: function SelectComponent_Query(rf, ctx) { if (rf & 1) {
|
|
@@ -2239,18 +2230,18 @@
|
|
|
2239
2230
|
i2.provideAs(SelectComponent, i2$1.NG_VALUE_ACCESSOR, true),
|
|
2240
2231
|
i2.provideAs(SelectComponent, i2$1.NG_VALIDATORS, true),
|
|
2241
2232
|
i2.provideAsWidgetRef(SelectComponent)
|
|
2242
|
-
]), i0__namespace.ɵɵInheritDefinitionFeature], decls: 5, vars:
|
|
2233
|
+
]), i0__namespace.ɵɵInheritDefinitionFeature], decls: 5, vars: 16, consts: [["role", "listbox", "aria-haspopup", "true", "aria-expanded", "false", "focus-target", "", 3, "ngClass", "disabled", "required", "tabindex", "ngModel", "multiple", "autofocus", "ngModelChange", "change", "focus", "blur"], ["select", ""], ["selected", "", "value", "undefined", "id", "placeholderOption", 3, "textContent", "hidden"], [4, "ngIf"], [3, "label", 4, "ngFor", "ngForOf"], [3, "label"], ["role", "option", 3, "value", "selected", "textContent", 4, "ngFor", "ngForOf"], ["role", "option", 3, "value", "selected", "textContent"]], template: function SelectComponent_Template(rf, ctx) { if (rf & 1) {
|
|
2243
2234
|
i0__namespace.ɵɵelementStart(0, "select", 0, 1);
|
|
2244
2235
|
i0__namespace.ɵɵlistener("ngModelChange", function SelectComponent_Template_select_ngModelChange_0_listener($event) { return ctx.modelByKey = $event; })("change", function SelectComponent_Template_select_change_0_listener($event) { return ctx.onSelectValueChange($event); })("focus", function SelectComponent_Template_select_focus_0_listener($event) { return ctx.checkForFloatingLabel($event); })("blur", function SelectComponent_Template_select_blur_0_listener($event) { ctx.invokeOnTouched($event); return ctx.checkForFloatingLabel($event); });
|
|
2245
|
-
i0__namespace.ɵɵ
|
|
2236
|
+
i0__namespace.ɵɵelement(2, "option", 2);
|
|
2246
2237
|
i0__namespace.ɵɵtemplate(3, SelectComponent_ng_container_3_Template, 2, 1, "ng-container", 3);
|
|
2247
2238
|
i0__namespace.ɵɵtemplate(4, SelectComponent_ng_container_4_Template, 2, 1, "ng-container", 3);
|
|
2248
2239
|
i0__namespace.ɵɵelementEnd();
|
|
2249
2240
|
} if (rf & 2) {
|
|
2250
|
-
i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(
|
|
2241
|
+
i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(14, _c1$6, ctx.class))("disabled", ctx.disabled)("required", ctx.required)("tabindex", ctx.tabindex)("ngModel", ctx.modelByKey)("multiple", ctx.multiple)("autofocus", ctx.autofocus);
|
|
2251
2242
|
i0__namespace.ɵɵattribute("name", ctx.name)("aria-label", ctx.hint)("aria-multiselectable", ctx.multiple);
|
|
2252
2243
|
i0__namespace.ɵɵadvance(2);
|
|
2253
|
-
i0__namespace.ɵɵproperty("
|
|
2244
|
+
i0__namespace.ɵɵproperty("textContent", ctx.placeholder)("hidden", !ctx.placeholder);
|
|
2254
2245
|
i0__namespace.ɵɵadvance(1);
|
|
2255
2246
|
i0__namespace.ɵɵproperty("ngIf", ctx.groupby);
|
|
2256
2247
|
i0__namespace.ɵɵadvance(1);
|
|
@@ -2263,7 +2254,7 @@
|
|
|
2263
2254
|
i2.provideAs(SelectComponent, i2$1.NG_VALUE_ACCESSOR, true),
|
|
2264
2255
|
i2.provideAs(SelectComponent, i2$1.NG_VALIDATORS, true),
|
|
2265
2256
|
i2.provideAsWidgetRef(SelectComponent)
|
|
2266
|
-
], template: "<select role=\"listbox\" aria-haspopup=\"true\" aria-expanded=\"false\" #select\n focus-target\n [ngClass]=\"['app-select form-control', class]\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [(ngModel)]=\"modelByKey\"\n [multiple]=\"multiple\"\n (change)=\"onSelectValueChange($event)\"\n (focus)=\"checkForFloatingLabel($event)\"\n (blur)=\"invokeOnTouched($event); checkForFloatingLabel($event)\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\n [attr.aria-multiselectable]=\"multiple\"\n [autofocus]=\"autofocus\"\n
|
|
2257
|
+
], template: "<select role=\"listbox\" aria-haspopup=\"true\" aria-expanded=\"false\" #select\n focus-target\n [ngClass]=\"['app-select form-control', class]\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [(ngModel)]=\"modelByKey\"\n [multiple]=\"multiple\"\n (change)=\"onSelectValueChange($event)\"\n (focus)=\"checkForFloatingLabel($event)\"\n (blur)=\"invokeOnTouched($event); checkForFloatingLabel($event)\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\n [attr.aria-multiselectable]=\"multiple\"\n [autofocus]=\"autofocus\">\n\n <option selected\n value=\"undefined\"\n [textContent]=\"placeholder\"\n id=\"placeholderOption\"\n [hidden]=\"!placeholder\"></option>\n\n <ng-container *ngIf=\"groupby\">\n <optgroup *ngFor=\"let groupObj of groupedData\"\n [label]=\"groupObj.key\">\n <option *ngFor=\"let item of groupObj.data;\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n role=\"option\"></option>\n </optgroup>\n </ng-container>\n\n <ng-container *ngIf=\"!groupby\">\n <option *ngFor=\"let item of datasetItems\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n role=\"option\"></option>\n </ng-container>\n</select>\n" }]
|
|
2267
2258
|
}], function () { return [{ type: i0__namespace.Injector }, { type: i1$1__namespace.App }]; }, { selectEl: [{
|
|
2268
2259
|
type: i0.ViewChild,
|
|
2269
2260
|
args: ['select', { static: true, read: i0.ElementRef }]
|
|
@@ -3149,8 +3140,7 @@
|
|
|
3149
3140
|
// isSelectMultiple is set to true when for select widget, multiple option is enabled
|
|
3150
3141
|
// Checking inputEl focus - when form is represented as dialog and the first field is automatically in focus
|
|
3151
3142
|
const isInputElFocused = this.inputEl && this.inputEl.is(':focus');
|
|
3152
|
-
|
|
3153
|
-
if ((data.isSelect && localName == 'select') || data.displayVal || data.isFocused || data.isSelectMultiple || isInputElFocused) {
|
|
3143
|
+
if (data.displayVal || data.isFocused || data.isSelectMultiple || isInputElFocused) {
|
|
3154
3144
|
data.nativeEl.addClass('float-active');
|
|
3155
3145
|
if (!data.displayVal && isInputElFocused) {
|
|
3156
3146
|
this.inputEl.attr('placeholder', this.placeholder);
|
|
@@ -123,8 +123,7 @@ export class CaptionPositionDirective {
|
|
|
123
123
|
// isSelectMultiple is set to true when for select widget, multiple option is enabled
|
|
124
124
|
// Checking inputEl focus - when form is represented as dialog and the first field is automatically in focus
|
|
125
125
|
const isInputElFocused = this.inputEl && this.inputEl.is(':focus');
|
|
126
|
-
|
|
127
|
-
if ((data.isSelect && localName == 'select') || data.displayVal || data.isFocused || data.isSelectMultiple || isInputElFocused) {
|
|
126
|
+
if (data.displayVal || data.isFocused || data.isSelectMultiple || isInputElFocused) {
|
|
128
127
|
data.nativeEl.addClass('float-active');
|
|
129
128
|
if (!data.displayVal && isInputElFocused) {
|
|
130
129
|
this.inputEl.attr('placeholder', this.placeholder);
|
|
@@ -167,4 +166,4 @@ export class CaptionPositionDirective {
|
|
|
167
166
|
selector: '[wmCaptionPosition]'
|
|
168
167
|
}]
|
|
169
168
|
}], function () { return [{ type: i0.Injector }, { type: i1.App }]; }, null); })();
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwdGlvbi1wb3NpdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvZGVmYXVsdC9zcmMvY2FwdGlvbi1wb3NpdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLFVBQVUsQ0FBQzs7O0FBTTdCLE1BQU0sT0FBTyx3QkFBd0I7SUFjakMsWUFBWSxHQUFhLEVBQUUsR0FBUTtRQUhuQyxrREFBa0Q7UUFDMUMsNkJBQXdCLEdBQWEsQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUd4SixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUM5QyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNuQixDQUFDO0lBRU8sUUFBUTtRQUNaLElBQUksY0FBYyxDQUFDO1FBQ25CLHNHQUFzRztRQUN0RyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNsRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFB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QUksQ0FBQyxhQUFhLENBQUMsQ0FBQzs0QkFDcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7eUJBQzFDO3FCQUNKO2lCQUNKO2FBQ0o7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUU7WUFDakMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7U0FDckM7UUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNuQztJQUNMLENBQUM7eUZBakxRLHdCQUF3QjtvRUFBeEIsd0JBQXdCOzt1RkFBeEIsd0JBQXdCO2NBSHBDLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUscUJBQXFCO2FBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FwcH0gZnJvbSAnQHdtL2NvcmUnO1xuXG5kZWNsYXJlIGNvbnN0IF8sICQ7XG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t3bUNhcHRpb25Qb3NpdGlvbl0nXG59KVxuZXhwb3J0IGNsYXNzIENhcHRpb25Qb3NpdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG4gICAgcHJpdmF0ZSBpbnB1dEVsO1xuICAgIHByaXZhdGUgbmF0aXZlRWw7XG4gICAgcHJpdmF0ZSBjb21wb3NpdGVFbGU7XG4gICAgcHJpdmF0ZSBhcHA6IEFwcDtcbiAgICBwcml2YXRlIGxhYmVsQW5pbWF0aW9uU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgcGxhY2Vob2xkZXI7XG4gICAgcHJpdmF0ZSBfYXR0ck9ic2VydmVyO1xuICAgIHByaXZhdGUgX2lzUGxhY2Vob2xkZXJCb3VuZDtcblxuICAgIC8vIHNraXAgZmxvYXRpbmcgY2FwdGlvbiBmb3IgdGhlIGJlbG93IGZvcm0gZmllbGRzXG4gICAgcHJpdmF0ZSBza2lwRmxvYXRQb3NpdGlvbldpZGdldHM6IHN0cmluZ1tdID0gWydyYWRpb3NldCcsICdjaGVja2JveHNldCcsICdyaWNodGV4dCcsICdzd2l0Y2gnLCAnY2hpcHMnLCAnY2hlY2tib3gnLCAnc2xpZGVyJywgJ3JhdGluZycsICd0b2dnbGUnLCAndXBsb2FkJ107XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBhcHA6IEFwcCkge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYgPSBpbmouZ2V0KEVsZW1lbnRSZWYpO1xuICAgICAgICB0aGlzLm5hdGl2ZUVsID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMuYXBwID0gYXBwO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25CbHVyQ2IoKSB7IC8vIG9uIGJsdXIsIHJlbW92ZSBhbmltYXRpb24gYW5kIHBsYWNlaG9sZGVyIGlmIHRoZXJlIGlzIG5vIHZhbHVlXG4gICAgICAgIGxldCBtb2JpbGVJbnB1dFZhbDtcbiAgICAgICAgLy8gSW4gY2FzZSBvZiBtb2JpbGUgZGF0ZSAvIHRpbWUgcGlja2VyIGNoZWNrIGZvciBpbnB1dCBlbGVtZW50J3MgdmFsdWUgd2hpY2ggaGFzICdtb2JpbGUtaW5wdXQnIGNsYXNzXG4gICAgICAgIGlmICh0aGlzLmlucHV0RWwubGVuZ3RoID4gMSAmJiB0aGlzLmlucHV0RWwuaGFzQ2xhc3MoJ21vYmlsZS1pbnB1dCcpKSB7XG4gICAgICAgICAgICBfLmZvckVhY2godGhpcy5pbnB1dEVsLCAoZWwpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoJChlbCkuaGFzQ2xhc3MoJ21vYmlsZS1pbnB1dCcpICYmIGVsLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIG1vYmlsZUlucHV0VmFsID0gZWwudmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmlucHV0RWwudmFsKCkgJiYgIW1vYmlsZUlucHV0VmFsKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvc2l0ZUVsZS5jbGFzc0xpc3QucmVtb3ZlKCdmbG9hdC1hY3RpdmUnKTtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbC5yZW1vdmVBdHRyKCdwbGFjZWhvbGRlcicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkZvY3VzQ2IoKSB7IC8vICBvbiBmb2N1cywgYWRkIGFuaW1hdGlvbiBjbGFzcyBhbmQgdGhlIHBsYWNlIGhvbGRlclxuICAgICAgICB0aGlzLmNvbXBvc2l0ZUVsZS5jbGFzc0xpc3QuYWRkKCdmbG9hdC1hY3RpdmUnKTtcbiAgICAgICAgdGhpcy5pbnB1dEVsLmF0dHIoJ3BsYWNlaG9sZGVyJywgdGhpcy5wbGFjZWhvbGRlcik7XG4gICAgfVxuXG4gICAgLy8gRm9yIHNlbGVjdCB3aWRnZXQsIGRpc3BsYXkgcGxhY2Vob2xkZXIgb25seSBvbiBmb2N1cyBlbHNlIHJlbW92ZSB0aGUgdGV4dCBvZiB0aGUgb3B0aW9uIHNlbGVjdGVkLlxuICAgIHByaXZhdGUgY2hlY2tGb3JTZWxlY3RQbGFjZWhvbGRlcigpIHtcbiAgICAgICAgaWYgKCQodGhpcy5uYXRpdmVFbCkuZmluZCgnc2VsZWN0IG9wdGlvbjpzZWxlY3RlZCcpLnRleHQoKSAmJiAhJCh0aGlzLm5hdGl2ZUVsKS5maW5kKCdzZWxlY3QnKS5pcygnOmZvY3VzJykgJiZcbiAgICAgICAgICAgICEkKHRoaXMuaW5wdXRFbC5jbG9zZXN0KCdbd2lkZ2V0LWlkXScpKS5hdHRyKCdkYXRhdmFsdWUnKSkge1xuICAgICAgICAgICAgJCh0aGlzLm5hdGl2ZUVsKS5maW5kKCdzZWxlY3Qgb3B0aW9uOnNlbGVjdGVkJykudGV4dCgnJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERlZmF1bHRWYWx1ZUFuaW1hdGlvbigpIHsgLy8gc2V0IGFuaW1hdGlvbiB3aGVuIGRlZmF1bHQgdmFsdWVzIGFyZSBwcmVzZW50XG4gICAgICAgIC8vIHJlbW92ZSBwbGFjZWhvbGRlciB3aGVuIHRoZSBpbnB1dCBlbCBoYXMgcGxhY2Vob2xkZXIgYW5kIHRoZSBwbGFjZWhvbGRlciBpcyBub3QgYm91bmQgdG8gYW55IHZhcmlhYmxlXG4gICAgICAgIGlmICghdGhpcy5faXNQbGFjZWhvbGRlckJvdW5kICYmIHRoaXMuaW5wdXRFbC5hdHRyKCdwbGFjZWhvbGRlcicpKSB7XG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gdGhpcy5pbnB1dEVsLmF0dHIoJ3BsYWNlaG9sZGVyJyk7XG4gICAgICAgICAgICB0aGlzLmlucHV0RWwucmVtb3ZlQXR0cigncGxhY2Vob2xkZXInKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERvIG5vdCBzaG93IHBsYWNlaG9sZGVyIGFzIHNlbGVjdGVkIGJ5IGRlZmF1bHRcbiAgICAgICAgdGhpcy5jaGVja0ZvclNlbGVjdFBsYWNlaG9sZGVyKCk7XG5cbiAgICAgICAgLy8gY2hlY2sgZm9yIGRhdGF2YWx1ZSBhdHRyaWJ1dGUgaW4gY29tcG9zaXRlIGVsZW1lbnQgYW5kIGRlZmF1bHR2YWx1ZSBhdHRyaWJ1dGUgaW4gZm9ybSBmaWVsZCBlbGVtZW50XG4gICAgICAgIC8vIGNoZWNrIGZvciBkYXRhdmFsdWUuYmluZCBhdHRyaWJ1dGUgdG8gc2VlIHdoZXRoZXIgZGVmYXVsdCB2YWx1ZSBpcyBiaW5kZWQgdmlhIGV4cHJlc3Npb24gb3IgYSB2YXJpYWJsZVxuICAgICAgICAvLyBjaGVjayBmb3IgZGlzcGxheWZvcm1hdCBhdHRyaWJ1dGUsIGFzIGluIGZvcm0gZmllbGRzIHVzZXIgY2FuIHNldCBkaXNwbGF5IGZvcm1hdCB0byB0aGUgZmllbGRcbiAgICAgICAgLy8gY2hlY2sgZm9yIGZvcm1kYXRhL2JpbmRmb3JtZGF0YSBhdHRyaWJ1dGUgdG8gc2VlIGlmIGFueSBkZWZhdWx0IHZhbHVlIGlzIGJpbmRlZCB0byB0aGUgZm9ybVxuICAgICAgICAvLyBjaGVjayBmb3Igc2VsZWN0IHRhZyB3aXRoIG11bHRpcGxlIGF0dHJpYnV0ZSBlbmFibGVkXG5cbiAgICAgICAgaWYgKCh0aGlzLmlucHV0RWwudmFsKCkgJiYgIXRoaXMuaW5wdXRFbC5pcygnc2VsZWN0JykpIHx8ICQodGhpcy5pbnB1dEVsLmNsb3Nlc3QoJ1t3aWRnZXQtaWRdJykpLmF0dHIoJ2RhdGF2YWx1ZScpIHx8ICQodGhpcy5pbnB1dEVsLnBhcmVudCgnW3dpZGdldC1pZF0nKSkuYXR0cignZGF0YXZhbHVlLmJpbmQnKSB8fCB0aGlzLm5hdGl2ZUVsLmdldEF0dHJpYnV0ZSgnZGVmYXVsdHZhbHVlJylcbiAgICAgICAgICAgIHx8IHRoaXMubmF0aXZlRWwuZ2V0QXR0cmlidXRlKCdkaXNwbGF5Zm9ybWF0JykgfHwgJCh0aGlzLm5hdGl2ZUVsKS5maW5kKCdzZWxlY3Qgb3B0aW9uOnNlbGVjdGVkJykudGV4dCgpIHx8ICQodGhpcy5uYXRpdmVFbCkuZmluZCgnc2VsZWN0JykuYXR0cignbXVsdGlwbGUnKSkge1xuICAgICAgICAgICAgdGhpcy5jb21wb3NpdGVFbGUuY2xhc3NMaXN0LmFkZCgnZmxvYXQtYWN0aXZlJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPYnNlcnZpbmcgcGxhY2Vob2xkZXIgYXR0cmlidXRlIGNoYW5nZSBvbiBET00gaW5zdGVhZCBvZiBoYXZpbmcgYSBwcm9wQ2hhbmdlSGFuZGxlciBmblxuICAgICAqIEZvciBjb21wb3NpdGUgd2lkZ2V0cyBwcm9wZXJ0eWNoYW5nZWhhbmRsZXIgZnVuY3Rpb24gaXMgaW52b2tlZCBhdCBpbmRlcGVuZGVudCB3aWRnZXRzIHdoZXJlIGFzIHRoZSBkaXJlY3RpdmUgaXMgYXQgY29tcG9zaXRlIGxldmVsXG4gICAgICovXG4gICAgcHJpdmF0ZSBvYnNlcnZlRm9yUGxhY2Vob2xkZXJBdHRyQ2hhbmdlKCkge1xuICAgICAgICB0aGlzLl9hdHRyT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbnMgPT4ge1xuICAgICAgICAgICAgbXV0YXRpb25zLmZvckVhY2goKG11dGF0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09ICdwbGFjZWhvbGRlcicgJiYgdGhpcy5pbnB1dEVsLmF0dHIoJ3BsYWNlaG9sZGVyJykgJiYgIXRoaXMuY29tcG9zaXRlRWxlLmNsYXNzTGlzdC5jb250YWlucygnZmxvYXQtYWN0aXZlJykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMuaW5wdXRFbC5hdHRyKCdwbGFjZWhvbGRlcicpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0RWwucmVtb3ZlQXR0cigncGxhY2Vob2xkZXInKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHsgYXR0cmlidXRlczogdHJ1ZSwgY2hpbGRMaXN0OiBmYWxzZSwgY2hhcmFjdGVyRGF0YTogZmFsc2UgfTtcbiAgICAgICAgdGhpcy5fYXR0ck9ic2VydmVyLm9ic2VydmUodGhpcy5pbnB1dEVsWzBdLCBjb25maWcpO1xuICAgIH1cblxuICAgIC8vIHdoZW4gYSBmb3JtIGlzIHJpZ2h0IGFsaWduZWQgYW5kIGhhdmUgaW5wdXQtZ3JvdXAtYnRuJ3MgbGlrZSBkYXRlIHBpY2tlciwgdGltZSBwaWNrZXIgZXRjLiBhZGp1c3QgdGhlIGNzcyB0byBub3Qgb3ZlcmxhcCB0aGUgbGFiZWwgb24gdGhlIGljb25cbiAgICBwcml2YXRlIGNoZWNrRm9yUmlnaHRBbGlnbmVkRm9ybSgpIHtcbiAgICAgICAgY29uc3QgJGNvbXBvc2l0ZUVsZSA9ICQodGhpcy5jb21wb3NpdGVFbGUpO1xuICAgICAgICBpZiAoJGNvbXBvc2l0ZUVsZS5jbG9zZXN0KCcuYWxpZ24tcmlnaHQnKS5sZW5ndGggJiYgJGNvbXBvc2l0ZUVsZS5maW5kKCcuaW5wdXQtZ3JvdXAtYnRuJykubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCAkbGFiZWwgPSAkY29tcG9zaXRlRWxlLmZpbmQoJ2xhYmVsJyk7XG4gICAgICAgICAgICBpZiAoJGNvbXBvc2l0ZUVsZS5maW5kKCdbd21kYXRldGltZV0nKS5sZW5ndGgpIHsgLy8gZm9yIGRhdGV0aW1lIHBpY2tlciwgYXMgdGhlcmUgd2lsbCBiZSAyIGljb25zIGNzcyBpcyBkaWZmZXJlbnRcbiAgICAgICAgICAgICAgICAkbGFiZWwuYWRkQ2xhc3MoJ2lucHV0LWdycC1kdC1pY29uJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICRsYWJlbC5hZGRDbGFzcygnaW5wdXQtZ3JwLWljb24nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5jb21wb3NpdGVFbGUgPSB0aGlzLm5hdGl2ZUVsO1xuICAgICAgICBjb25zdCB3aWRnZXQgPSB0aGlzLm5hdGl2ZUVsLndpZGdldDtcbiAgICAgICAgbGV0IGNhcHRpb25Qb3NpdGlvbjogc3RyaW5nID0gd2lkZ2V0LiRhdHRycy5nZXQoJ2NhcHRpb25wb3NpdGlvbicpO1xuICAgICAgICBpZiAod2lkZ2V0LmZvcm0pIHtcbiAgICAgICAgICAgIGNhcHRpb25Qb3NpdGlvbiA9IHdpZGdldC5mb3JtLiRhdHRycy5nZXQoJ2NhcHRpb25wb3NpdGlvbicpO1xuICAgICAgICAgICAgdGhpcy5jb21wb3NpdGVFbGUgPSB0aGlzLm5hdGl2ZUVsLnF1ZXJ5U2VsZWN0b3IoJy5hcHAtY29tcG9zaXRlLXdpZGdldCcpO1xuICAgICAgICAgICAgdGhpcy5faXNQbGFjZWhvbGRlckJvdW5kID0gdGhpcy5uYXRpdmVFbC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyLmJpbmQnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FwdGlvblBvc2l0aW9uID09PSAnZmxvYXRpbmcnKSB7XG4gICAgICAgICAgICBpZiAod2lkZ2V0LmZvcm0pIHsgLy8gZm9yIGZvcm0tZmllbGRzIHJlbW92ZSBjYXB0aW9uLWZsb2F0aW5nIGFuZCByZXBsYWNlIGl0IHdpdGggY2FwdGlvbi1mbG9hdCBvciBjYXB0aW9uLXRvcFxuICAgICAgICAgICAgICAgIGNvbnN0IHdpZGdldFR5cGU6IHN0cmluZyA9IHRoaXMubmF0aXZlRWwuZ2V0QXR0cmlidXRlKCd3aWRnZXR0eXBlJyk7IC8vIGZldGNoZXMgdGhlIGZvcm0gZmllbGQgdHlwZVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNraXBGbG9hdFBvc2l0aW9uV2lkZ2V0cy5pbmRleE9mKHdpZGdldFR5cGUpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb3NpdGVFbGUuY2xhc3NMaXN0LnJlbW92ZSgnY2FwdGlvbi1mbG9hdGluZycpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvc2l0ZUVsZS5jbGFzc0xpc3QuYWRkKCdjYXB0aW9uLXRvcCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrRm9yUmlnaHRBbGlnbmVkRm9ybSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pbnB1dEVsID0gJCh0aGlzLm5hdGl2ZUVsKS5maW5kKCdpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYScpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9pc1BsYWNlaG9sZGVyQm91bmQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9pc1BsYWNlaG9sZGVyQm91bmQgPSB0aGlzLmlucHV0RWwuY2xvc2VzdCgnW3dpZGdldC1pZF0nKS5hdHRyKCdwbGFjZWhvbGRlci5iaW5kJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBjYWxsIHRoZSBiZWxvdyBmdW5jdGlvbiB0byBhcHBseSBmbG9hdC1hY3RpdmUgY2xhc3Mgd2hlbiB0aGVyZSBhcmUgZGVmYXVsdCB2YWx1ZXMgdG8gdGhlIGZpZWxkc1xuICAgICAgICAgICAgc2V0VGltZW91dCh0aGlzLnNldERlZmF1bHRWYWx1ZUFuaW1hdGlvbi5iaW5kKHRoaXMpLCAwKTtcblxuICAgICAgICAgICAgdGhpcy5pbnB1dEVsLmZvY3VzKHRoaXMub25Gb2N1c0NiLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgdGhpcy5pbnB1dEVsLmJsdXIodGhpcy5vbkJsdXJDYi5iaW5kKHRoaXMpKTtcblxuICAgICAgICAgICAgLy8gb2JzZXJ2ZSBmb3IgcGxhY2Vob2xkZXIgYXR0cmlidXRlIGNoYW5nZSB3aGVuIHBsYWNlaG9sZGVyIGlzIGJvdW5kIHZpYSBkYiB2YXJpYWJsZSBvciBhbiBleHByZXNzaW9uXG4gICAgICAgICAgICBpZiAodGhpcy5faXNQbGFjZWhvbGRlckJvdW5kKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vYnNlcnZlRm9yUGxhY2Vob2xkZXJBdHRyQ2hhbmdlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBjYXB0aW9uUG9zaXRpb25BbmltYXRlIGlzIG9ubHkgbm90aWZpZWQgZm9yIGRhdGUtdGltZSwgdGltZSBhbmQgc2VhcmNoIHdpZGdldHMgYXMgaW5wdXQgZWwgaXMgbm90IHVwZGF0ZWQgd2l0aCB2YWx1ZSBvbiBzZWxlY3Rpb24gb2YgZHJvcGRvd24vcG9wdXBzXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMubGFiZWxBbmltYXRpb25TdWJzY3JpcHRpb24gPSB0aGlzLmFwcC5zdWJzY3JpYmUoJ2NhcHRpb25Qb3NpdGlvbkFuaW1hdGUnLCAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgLy8gZGlzcGxheVZhbCBpcyB0cnVlIHdoZW4gdGhlcmUgaXMgYSB2YWx1ZSBlbnRlcmVkIGluIHRoZSBpbnB1dCBmaWVsZFxuICAgICAgICAgICAgLy8gSW4gY2FzZSBvZiBmb3JtIGZpZWxkcywgd2hlbiB0aGUgZmllbGQgaXMgaW4gZm9jdXMsIGlzRm9jdXNlZCB3aWxsIGJlIHNldCBhcyB0cnVlXG4gICAgICAgICAgICAvLyBpc1NlbGVjdE11bHRpcGxlIGlzIHNldCB0byB0cnVlIHdoZW4gZm9yIHNlbGVjdCB3aWRnZXQsIG11bHRpcGxlIG9wdGlvbiBpcyBlbmFibGVkXG4gICAgICAgICAgICAvLyBDaGVja2luZyBpbnB1dEVsIGZvY3VzIC0gd2hlbiBmb3JtIGlzIHJlcHJlc2VudGVkIGFzIGRpYWxvZyBhbmQgdGhlIGZpcnN0IGZpZWxkIGlzIGF1dG9tYXRpY2FsbHkgaW4gZm9jdXNcbiAgICAgICAgICAgIGNvbnN0IGlzSW5wdXRFbEZvY3VzZWQgPSB0aGlzLmlucHV0RWwgJiYgdGhpcy5pbnB1dEVsLmlzKCc6Zm9jdXMnKTtcbiAgICAgICAgICAgIGNvbnN0IGxvY2FsTmFtZSA9IHRoaXMuaW5wdXRFbCAmJiB0aGlzLmlucHV0RWwubGVuZ3RoICYmIHRoaXMuaW5wdXRFbFswXS5sb2NhbE5hbWU7XG4gICAgICAgICAgICBpZiAoKGRhdGEuaXNTZWxlY3QgJiYgbG9jYWxOYW1lID09ICdzZWxlY3QnKSB8fCBkYXRhLmRpc3BsYXlWYWwgfHwgZGF0YS5pc0ZvY3VzZWQgfHwgZGF0YS5pc1NlbGVjdE11bHRpcGxlIHx8IGlzSW5wdXRFbEZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICBkYXRhLm5hdGl2ZUVsLmFkZENsYXNzKCdmbG9hdC1hY3RpdmUnKTtcbiAgICAgICAgICAgICAgICBpZiAoIWRhdGEuZGlzcGxheVZhbCAmJiBpc0lucHV0RWxGb2N1c2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbC5hdHRyKCdwbGFjZWhvbGRlcicsIHRoaXMucGxhY2Vob2xkZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZGF0YS5uYXRpdmVFbC5yZW1vdmVDbGFzcygnZmxvYXQtYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHBsYWNlaG9sZGVyIG9uIHJlbW92aW5nIGZsb2F0LWFjdGl2ZSwgaWYgbm90IHRoZSBsYWJlbCBhbmQgcGxhY2Vob2xkZXIgYXJlIGNvbGxpZGVkXG4gICAgICAgICAgICAgICAgLy8gYmVmb3JlIHBsYWNlaG9sZGVyIGlzIHJlbW92ZWQgYXNzaWduIGl0IHRvIHRoZSBwbGFjZWhvbGRlciB2YXJpYWJsZVxuICAgICAgICAgICAgICAgIC8vIGNoZWNrIGZvciBwbGFjZWhvbGRlciBpbiBpbnB1dGVsIGFuZCBzZWxlY3RlbFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlucHV0RWwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0RWwgPSB0aGlzLmlucHV0RWwuZmluZCgnb3B0aW9uOmZpcnN0Jyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlucHV0RWwuYXR0cigncGxhY2Vob2xkZXInKSB8fCBzZWxlY3RFbC50ZXh0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3RFbC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RFbC50ZXh0KCcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMuaW5wdXRFbC5hdHRyKCdwbGFjZWhvbGRlcicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbC5yZW1vdmVBdHRyKCdwbGFjZWhvbGRlcicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMubGFiZWxBbmltYXRpb25TdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMubGFiZWxBbmltYXRpb25TdWJzY3JpcHRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fYXR0ck9ic2VydmVyKSB7XG4gICAgICAgICAgICB0aGlzLl9hdHRyT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwdGlvbi1wb3NpdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvZGVmYXVsdC9zcmMvY2FwdGlvbi1wb3NpdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLFVBQVUsQ0FBQzs7O0FBTTdCLE1BQU0sT0FBTyx3QkFBd0I7SUFjakMsWUFBWSxHQUFhLEVBQUUsR0FBUTtRQUhuQyxrREFBa0Q7UUFDMUMsNkJBQXdCLEdBQWEsQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUd4SixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUM5QyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNuQixDQUFDO0lBRU8sUUFBUTtRQUNaLElBQUksY0FBYyxDQUFDO1FBQ25CLHNHQUFzRztRQUN0RyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNsRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFB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RUFBRTtZQUNqQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztTQUNyQztRQUNELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25DO0lBQ0wsQ0FBQzt5RkFoTFEsd0JBQXdCO29FQUF4Qix3QkFBd0I7O3VGQUF4Qix3QkFBd0I7Y0FIcEMsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxxQkFBcUI7YUFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QXBwfSBmcm9tICdAd20vY29yZSc7XG5cbmRlY2xhcmUgY29uc3QgXywgJDtcbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3dtQ2FwdGlvblBvc2l0aW9uXSdcbn0pXG5leHBvcnQgY2xhc3MgQ2FwdGlvblBvc2l0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjtcbiAgICBwcml2YXRlIGlucHV0RWw7XG4gICAgcHJpdmF0ZSBuYXRpdmVFbDtcbiAgICBwcml2YXRlIGNvbXBvc2l0ZUVsZTtcbiAgICBwcml2YXRlIGFwcDogQXBwO1xuICAgIHByaXZhdGUgbGFiZWxBbmltYXRpb25TdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBwbGFjZWhvbGRlcjtcbiAgICBwcml2YXRlIF9hdHRyT2JzZXJ2ZXI7XG4gICAgcHJpdmF0ZSBfaXNQbGFjZWhvbGRlckJvdW5kO1xuXG4gICAgLy8gc2tpcCBmbG9hdGluZyBjYXB0aW9uIGZvciB0aGUgYmVsb3cgZm9ybSBmaWVsZHNcbiAgICBwcml2YXRlIHNraXBGbG9hdFBvc2l0aW9uV2lkZ2V0czogc3RyaW5nW10gPSBbJ3JhZGlvc2V0JywgJ2NoZWNrYm94c2V0JywgJ3JpY2h0ZXh0JywgJ3N3aXRjaCcsICdjaGlwcycsICdjaGVja2JveCcsICdzbGlkZXInLCAncmF0aW5nJywgJ3RvZ2dsZScsICd1cGxvYWQnXTtcblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIGFwcDogQXBwKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZiA9IGluai5nZXQoRWxlbWVudFJlZik7XG4gICAgICAgIHRoaXMubmF0aXZlRWwgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgdGhpcy5hcHAgPSBhcHA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkJsdXJDYigpIHsgLy8gb24gYmx1ciwgcmVtb3ZlIGFuaW1hdGlvbiBhbmQgcGxhY2Vob2xkZXIgaWYgdGhlcmUgaXMgbm8gdmFsdWVcbiAgICAgICAgbGV0IG1vYmlsZUlucHV0VmFsO1xuICAgICAgICAvLyBJbiBjYXNlIG9mIG1vYmlsZSBkYXRlIC8gdGltZSBwaWNrZXIgY2hlY2sgZm9yIGlucHV0IGVsZW1lbnQncyB2YWx1ZSB3aGljaCBoYXMgJ21vYmlsZS1pbnB1dCcgY2xhc3NcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRFbC5sZW5ndGggPiAxICYmIHRoaXMuaW5wdXRFbC5oYXNDbGFzcygnbW9iaWxlLWlucHV0JykpIHtcbiAgICAgICAgICAgIF8uZm9yRWFjaCh0aGlzLmlucHV0RWwsIChlbCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICgkKGVsKS5oYXNDbGFzcygnbW9iaWxlLWlucHV0JykgJiYgZWwudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgbW9iaWxlSW5wdXRWYWwgPSBlbC52YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuaW5wdXRFbC52YWwoKSAmJiAhbW9iaWxlSW5wdXRWYWwpIHtcbiAgICAgICAgICAgIHRoaXMuY29tcG9zaXRlRWxlLmNsYXNzTGlzdC5yZW1vdmUoJ2Zsb2F0LWFjdGl2ZScpO1xuICAgICAgICAgICAgdGhpcy5pbnB1dEVsLnJlbW92ZUF0dHIoJ3BsYWNlaG9sZGVyJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uRm9jdXNDYigpIHsgLy8gIG9uIGZvY3VzLCBhZGQgYW5pbWF0aW9uIGNsYXNzIGFuZCB0aGUgcGxhY2UgaG9sZGVyXG4gICAgICAgIHRoaXMuY29tcG9zaXRlRWxlLmNsYXNzTGlzdC5hZGQoJ2Zsb2F0LWFjdGl2ZScpO1xuICAgICAgICB0aGlzLmlucHV0RWwuYXR0cigncGxhY2Vob2xkZXInLCB0aGlzLnBsYWNlaG9sZGVyKTtcbiAgICB9XG5cbiAgICAvLyBGb3Igc2VsZWN0IHdpZGdldCwgZGlzcGxheSBwbGFjZWhvbGRlciBvbmx5IG9uIGZvY3VzIGVsc2UgcmVtb3ZlIHRoZSB0ZXh0IG9mIHRoZSBvcHRpb24gc2VsZWN0ZWQuXG4gICAgcHJpdmF0ZSBjaGVja0ZvclNlbGVjdFBsYWNlaG9sZGVyKCkge1xuICAgICAgICBpZiAoJCh0aGlzLm5hdGl2ZUVsKS5maW5kKCdzZWxlY3Qgb3B0aW9uOnNlbGVjdGVkJykudGV4dCgpICYmICEkKHRoaXMubmF0aXZlRWwpLmZpbmQoJ3NlbGVjdCcpLmlzKCc6Zm9jdXMnKSAmJlxuICAgICAgICAgICAgISQodGhpcy5pbnB1dEVsLmNsb3Nlc3QoJ1t3aWRnZXQtaWRdJykpLmF0dHIoJ2RhdGF2YWx1ZScpKSB7XG4gICAgICAgICAgICAkKHRoaXMubmF0aXZlRWwpLmZpbmQoJ3NlbGVjdCBvcHRpb246c2VsZWN0ZWQnKS50ZXh0KCcnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RGVmYXVsdFZhbHVlQW5pbWF0aW9uKCkgeyAvLyBzZXQgYW5pbWF0aW9uIHdoZW4gZGVmYXVsdCB2YWx1ZXMgYXJlIHByZXNlbnRcbiAgICAgICAgLy8gcmVtb3ZlIHBsYWNlaG9sZGVyIHdoZW4gdGhlIGlucHV0IGVsIGhhcyBwbGFjZWhvbGRlciBhbmQgdGhlIHBsYWNlaG9sZGVyIGlzIG5vdCBib3VuZCB0byBhbnkgdmFyaWFibGVcbiAgICAgICAgaWYgKCF0aGlzLl9pc1BsYWNlaG9sZGVyQm91bmQgJiYgdGhpcy5pbnB1dEVsLmF0dHIoJ3BsYWNlaG9sZGVyJykpIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLmlucHV0RWwuYXR0cigncGxhY2Vob2xkZXInKTtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbC5yZW1vdmVBdHRyKCdwbGFjZWhvbGRlcicpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRG8gbm90IHNob3cgcGxhY2Vob2xkZXIgYXMgc2VsZWN0ZWQgYnkgZGVmYXVsdFxuICAgICAgICB0aGlzLmNoZWNrRm9yU2VsZWN0UGxhY2Vob2xkZXIoKTtcblxuICAgICAgICAvLyBjaGVjayBmb3IgZGF0YXZhbHVlIGF0dHJpYnV0ZSBpbiBjb21wb3NpdGUgZWxlbWVudCBhbmQgZGVmYXVsdHZhbHVlIGF0dHJpYnV0ZSBpbiBmb3JtIGZpZWxkIGVsZW1lbnRcbiAgICAgICAgLy8gY2hlY2sgZm9yIGRhdGF2YWx1ZS5iaW5kIGF0dHJpYnV0ZSB0byBzZWUgd2hldGhlciBkZWZhdWx0IHZhbHVlIGlzIGJpbmRlZCB2aWEgZXhwcmVzc2lvbiBvciBhIHZhcmlhYmxlXG4gICAgICAgIC8vIGNoZWNrIGZvciBkaXNwbGF5Zm9ybWF0IGF0dHJpYnV0ZSwgYXMgaW4gZm9ybSBmaWVsZHMgdXNlciBjYW4gc2V0IGRpc3BsYXkgZm9ybWF0IHRvIHRoZSBmaWVsZFxuICAgICAgICAvLyBjaGVjayBmb3IgZm9ybWRhdGEvYmluZGZvcm1kYXRhIGF0dHJpYnV0ZSB0byBzZWUgaWYgYW55IGRlZmF1bHQgdmFsdWUgaXMgYmluZGVkIHRvIHRoZSBmb3JtXG4gICAgICAgIC8vIGNoZWNrIGZvciBzZWxlY3QgdGFnIHdpdGggbXVsdGlwbGUgYXR0cmlidXRlIGVuYWJsZWRcblxuICAgICAgICBpZiAoKHRoaXMuaW5wdXRFbC52YWwoKSAmJiAhdGhpcy5pbnB1dEVsLmlzKCdzZWxlY3QnKSkgfHwgJCh0aGlzLmlucHV0RWwuY2xvc2VzdCgnW3dpZGdldC1pZF0nKSkuYXR0cignZGF0YXZhbHVlJykgfHwgJCh0aGlzLmlucHV0RWwucGFyZW50KCdbd2lkZ2V0LWlkXScpKS5hdHRyKCdkYXRhdmFsdWUuYmluZCcpIHx8IHRoaXMubmF0aXZlRWwuZ2V0QXR0cmlidXRlKCdkZWZhdWx0dmFsdWUnKVxuICAgICAgICAgICAgfHwgdGhpcy5uYXRpdmVFbC5nZXRBdHRyaWJ1dGUoJ2Rpc3BsYXlmb3JtYXQnKSB8fCAkKHRoaXMubmF0aXZlRWwpLmZpbmQoJ3NlbGVjdCBvcHRpb246c2VsZWN0ZWQnKS50ZXh0KCkgfHwgJCh0aGlzLm5hdGl2ZUVsKS5maW5kKCdzZWxlY3QnKS5hdHRyKCdtdWx0aXBsZScpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvc2l0ZUVsZS5jbGFzc0xpc3QuYWRkKCdmbG9hdC1hY3RpdmUnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9ic2VydmluZyBwbGFjZWhvbGRlciBhdHRyaWJ1dGUgY2hhbmdlIG9uIERPTSBpbnN0ZWFkIG9mIGhhdmluZyBhIHByb3BDaGFuZ2VIYW5kbGVyIGZuXG4gICAgICogRm9yIGNvbXBvc2l0ZSB3aWRnZXRzIHByb3BlcnR5Y2hhbmdlaGFuZGxlciBmdW5jdGlvbiBpcyBpbnZva2VkIGF0IGluZGVwZW5kZW50IHdpZGdldHMgd2hlcmUgYXMgdGhlIGRpcmVjdGl2ZSBpcyBhdCBjb21wb3NpdGUgbGV2ZWxcbiAgICAgKi9cbiAgICBwcml2YXRlIG9ic2VydmVGb3JQbGFjZWhvbGRlckF0dHJDaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMuX2F0dHJPYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKG11dGF0aW9ucyA9PiB7XG4gICAgICAgICAgICBtdXRhdGlvbnMuZm9yRWFjaCgobXV0YXRpb24pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobXV0YXRpb24uYXR0cmlidXRlTmFtZSA9PT0gJ3BsYWNlaG9sZGVyJyAmJiB0aGlzLmlucHV0RWwuYXR0cigncGxhY2Vob2xkZXInKSAmJiAhdGhpcy5jb21wb3NpdGVFbGUuY2xhc3NMaXN0LmNvbnRhaW5zKCdmbG9hdC1hY3RpdmUnKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gdGhpcy5pbnB1dEVsLmF0dHIoJ3BsYWNlaG9sZGVyJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbC5yZW1vdmVBdHRyKCdwbGFjZWhvbGRlcicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgY29uZmlnID0geyBhdHRyaWJ1dGVzOiB0cnVlLCBjaGlsZExpc3Q6IGZhbHNlLCBjaGFyYWN0ZXJEYXRhOiBmYWxzZSB9O1xuICAgICAgICB0aGlzLl9hdHRyT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmlucHV0RWxbMF0sIGNvbmZpZyk7XG4gICAgfVxuXG4gICAgLy8gd2hlbiBhIGZvcm0gaXMgcmlnaHQgYWxpZ25lZCBhbmQgaGF2ZSBpbnB1dC1ncm91cC1idG4ncyBsaWtlIGRhdGUgcGlja2VyLCB0aW1lIHBpY2tlciBldGMuIGFkanVzdCB0aGUgY3NzIHRvIG5vdCBvdmVybGFwIHRoZSBsYWJlbCBvbiB0aGUgaWNvblxuICAgIHByaXZhdGUgY2hlY2tGb3JSaWdodEFsaWduZWRGb3JtKCkge1xuICAgICAgICBjb25zdCAkY29tcG9zaXRlRWxlID0gJCh0aGlzLmNvbXBvc2l0ZUVsZSk7XG4gICAgICAgIGlmICgkY29tcG9zaXRlRWxlLmNsb3Nlc3QoJy5hbGlnbi1yaWdodCcpLmxlbmd0aCAmJiAkY29tcG9zaXRlRWxlLmZpbmQoJy5pbnB1dC1ncm91cC1idG4nKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0ICRsYWJlbCA9ICRjb21wb3NpdGVFbGUuZmluZCgnbGFiZWwnKTtcbiAgICAgICAgICAgIGlmICgkY29tcG9zaXRlRWxlLmZpbmQoJ1t3bWRhdGV0aW1lXScpLmxlbmd0aCkgeyAvLyBmb3IgZGF0ZXRpbWUgcGlja2VyLCBhcyB0aGVyZSB3aWxsIGJlIDIgaWNvbnMgY3NzIGlzIGRpZmZlcmVudFxuICAgICAgICAgICAgICAgICRsYWJlbC5hZGRDbGFzcygnaW5wdXQtZ3JwLWR0LWljb24nKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgJGxhYmVsLmFkZENsYXNzKCdpbnB1dC1ncnAtaWNvbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLmNvbXBvc2l0ZUVsZSA9IHRoaXMubmF0aXZlRWw7XG4gICAgICAgIGNvbnN0IHdpZGdldCA9IHRoaXMubmF0aXZlRWwud2lkZ2V0O1xuICAgICAgICBsZXQgY2FwdGlvblBvc2l0aW9uOiBzdHJpbmcgPSB3aWRnZXQuJGF0dHJzLmdldCgnY2FwdGlvbnBvc2l0aW9uJyk7XG4gICAgICAgIGlmICh3aWRnZXQuZm9ybSkge1xuICAgICAgICAgICAgY2FwdGlvblBvc2l0aW9uID0gd2lkZ2V0LmZvcm0uJGF0dHJzLmdldCgnY2FwdGlvbnBvc2l0aW9uJyk7XG4gICAgICAgICAgICB0aGlzLmNvbXBvc2l0ZUVsZSA9IHRoaXMubmF0aXZlRWwucXVlcnlTZWxlY3RvcignLmFwcC1jb21wb3NpdGUtd2lkZ2V0Jyk7XG4gICAgICAgICAgICB0aGlzLl9pc1BsYWNlaG9sZGVyQm91bmQgPSB0aGlzLm5hdGl2ZUVsLmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXIuYmluZCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYXB0aW9uUG9zaXRpb24gPT09ICdmbG9hdGluZycpIHtcbiAgICAgICAgICAgIGlmICh3aWRnZXQuZm9ybSkgeyAvLyBmb3IgZm9ybS1maWVsZHMgcmVtb3ZlIGNhcHRpb24tZmxvYXRpbmcgYW5kIHJlcGxhY2UgaXQgd2l0aCBjYXB0aW9uLWZsb2F0IG9yIGNhcHRpb24tdG9wXG4gICAgICAgICAgICAgICAgY29uc3Qgd2lkZ2V0VHlwZTogc3RyaW5nID0gdGhpcy5uYXRpdmVFbC5nZXRBdHRyaWJ1dGUoJ3dpZGdldHR5cGUnKTsgLy8gZmV0Y2hlcyB0aGUgZm9ybSBmaWVsZCB0eXBlXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2tpcEZsb2F0UG9zaXRpb25XaWRnZXRzLmluZGV4T2Yod2lkZ2V0VHlwZSkgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvc2l0ZUVsZS5jbGFzc0xpc3QucmVtb3ZlKCdjYXB0aW9uLWZsb2F0aW5nJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9zaXRlRWxlLmNsYXNzTGlzdC5hZGQoJ2NhcHRpb24tdG9wJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tGb3JSaWdodEFsaWduZWRGb3JtKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmlucHV0RWwgPSAkKHRoaXMubmF0aXZlRWwpLmZpbmQoJ2lucHV0LCBzZWxlY3QsIHRleHRhcmVhJyk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2lzUGxhY2Vob2xkZXJCb3VuZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2lzUGxhY2Vob2xkZXJCb3VuZCA9IHRoaXMuaW5wdXRFbC5jbG9zZXN0KCdbd2lkZ2V0LWlkXScpLmF0dHIoJ3BsYWNlaG9sZGVyLmJpbmQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGNhbGwgdGhlIGJlbG93IGZ1bmN0aW9uIHRvIGFwcGx5IGZsb2F0LWFjdGl2ZSBjbGFzcyB3aGVuIHRoZXJlIGFyZSBkZWZhdWx0IHZhbHVlcyB0byB0aGUgZmllbGRzXG4gICAgICAgICAgICBzZXRUaW1lb3V0KHRoaXMuc2V0RGVmYXVsdFZhbHVlQW5pbWF0aW9uLmJpbmQodGhpcyksIDApO1xuXG4gICAgICAgICAgICB0aGlzLmlucHV0RWwuZm9jdXModGhpcy5vbkZvY3VzQ2IuYmluZCh0aGlzKSk7XG4gICAgICAgICAgICB0aGlzLmlucHV0RWwuYmx1cih0aGlzLm9uQmx1ckNiLmJpbmQodGhpcykpO1xuXG4gICAgICAgICAgICAvLyBvYnNlcnZlIGZvciBwbGFjZWhvbGRlciBhdHRyaWJ1dGUgY2hhbmdlIHdoZW4gcGxhY2Vob2xkZXIgaXMgYm91bmQgdmlhIGRiIHZhcmlhYmxlIG9yIGFuIGV4cHJlc3Npb25cbiAgICAgICAgICAgIGlmICh0aGlzLl9pc1BsYWNlaG9sZGVyQm91bmQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9ic2VydmVGb3JQbGFjZWhvbGRlckF0dHJDaGFuZ2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGNhcHRpb25Qb3NpdGlvbkFuaW1hdGUgaXMgb25seSBub3RpZmllZCBmb3IgZGF0ZS10aW1lLCB0aW1lIGFuZCBzZWFyY2ggd2lkZ2V0cyBhcyBpbnB1dCBlbCBpcyBub3QgdXBkYXRlZCB3aXRoIHZhbHVlIG9uIHNlbGVjdGlvbiBvZiBkcm9wZG93bi9wb3B1cHNcbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5sYWJlbEFuaW1hdGlvblN1YnNjcmlwdGlvbiA9IHRoaXMuYXBwLnN1YnNjcmliZSgnY2FwdGlvblBvc2l0aW9uQW5pbWF0ZScsIChkYXRhKSA9PiB7XG4gICAgICAgICAgICAvLyBkaXNwbGF5VmFsIGlzIHRydWUgd2hlbiB0aGVyZSBpcyBhIHZhbHVlIGVudGVyZWQgaW4gdGhlIGlucHV0IGZpZWxkXG4gICAgICAgICAgICAvLyBJbiBjYXNlIG9mIGZvcm0gZmllbGRzLCB3aGVuIHRoZSBmaWVsZCBpcyBpbiBmb2N1cywgaXNGb2N1c2VkIHdpbGwgYmUgc2V0IGFzIHRydWVcbiAgICAgICAgICAgIC8vIGlzU2VsZWN0TXVsdGlwbGUgaXMgc2V0IHRvIHRydWUgd2hlbiBmb3Igc2VsZWN0IHdpZGdldCwgbXVsdGlwbGUgb3B0aW9uIGlzIGVuYWJsZWRcbiAgICAgICAgICAgIC8vIENoZWNraW5nIGlucHV0RWwgZm9jdXMgLSB3aGVuIGZvcm0gaXMgcmVwcmVzZW50ZWQgYXMgZGlhbG9nIGFuZCB0aGUgZmlyc3QgZmllbGQgaXMgYXV0b21hdGljYWxseSBpbiBmb2N1c1xuICAgICAgICAgICAgY29uc3QgaXNJbnB1dEVsRm9jdXNlZCA9IHRoaXMuaW5wdXRFbCAmJiB0aGlzLmlucHV0RWwuaXMoJzpmb2N1cycpO1xuICAgICAgICAgICAgaWYgKGRhdGEuZGlzcGxheVZhbCB8fCBkYXRhLmlzRm9jdXNlZCB8fCBkYXRhLmlzU2VsZWN0TXVsdGlwbGUgfHwgaXNJbnB1dEVsRm9jdXNlZCkge1xuICAgICAgICAgICAgICAgIGRhdGEubmF0aXZlRWwuYWRkQ2xhc3MoJ2Zsb2F0LWFjdGl2ZScpO1xuICAgICAgICAgICAgICAgIGlmICghZGF0YS5kaXNwbGF5VmFsICYmIGlzSW5wdXRFbEZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dEVsLmF0dHIoJ3BsYWNlaG9sZGVyJywgdGhpcy5wbGFjZWhvbGRlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkYXRhLm5hdGl2ZUVsLnJlbW92ZUNsYXNzKCdmbG9hdC1hY3RpdmUnKTtcbiAgICAgICAgICAgICAgICAvLyBSZW1vdmUgcGxhY2Vob2xkZXIgb24gcmVtb3ZpbmcgZmxvYXQtYWN0aXZlLCBpZiBub3QgdGhlIGxhYmVsIGFuZCBwbGFjZWhvbGRlciBhcmUgY29sbGlkZWRcbiAgICAgICAgICAgICAgICAvLyBiZWZvcmUgcGxhY2Vob2xkZXIgaXMgcmVtb3ZlZCBhc3NpZ24gaXQgdG8gdGhlIHBsYWNlaG9sZGVyIHZhcmlhYmxlXG4gICAgICAgICAgICAgICAgLy8gY2hlY2sgZm9yIHBsYWNlaG9sZGVyIGluIGlucHV0ZWwgYW5kIHNlbGVjdGVsXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXRFbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RFbCA9IHRoaXMuaW5wdXRFbC5maW5kKCdvcHRpb246Zmlyc3QnKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXRFbC5hdHRyKCdwbGFjZWhvbGRlcicpIHx8IHNlbGVjdEVsLnRleHQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdEVsLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdEVsLnRleHQoJycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gdGhpcy5pbnB1dEVsLmF0dHIoJ3BsYWNlaG9sZGVyJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dEVsLnJlbW92ZUF0dHIoJ3BsYWNlaG9sZGVyJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5sYWJlbEFuaW1hdGlvblN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5sYWJlbEFuaW1hdGlvblN1YnNjcmlwdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9hdHRyT2JzZXJ2ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2F0dHJPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|