@wavemaker/app-ng-runtime 12.0.0-next.45032 → 12.0.0-next.45503

Sign up to get free protection for your applications and to get access to all the features.
Files changed (119) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +405 -451
  2. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +2 -3
  3. app-ng-runtime/build-task/esm2022/public_api.mjs +1 -3
  4. app-ng-runtime/build-task/fesm2022/index.mjs +406 -454
  5. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  6. app-ng-runtime/build-task/public_api.d.ts +0 -2
  7. app-ng-runtime/components/base/bundles/index.umd.js +14 -62
  8. app-ng-runtime/components/base/components.module.d.ts +11 -12
  9. app-ng-runtime/components/base/esm2022/components.module.mjs +1 -5
  10. app-ng-runtime/components/base/esm2022/public_api.mjs +1 -2
  11. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +15 -25
  12. app-ng-runtime/components/base/fesm2022/index.mjs +15 -62
  13. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  14. app-ng-runtime/components/base/public_api.d.ts +0 -1
  15. app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +5 -10
  16. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +17 -0
  17. app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +18 -1
  18. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +17 -0
  19. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  20. app-ng-runtime/components/containers/wizard/wizard.component.d.ts +1 -0
  21. app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +1 -3
  22. app-ng-runtime/components/data/form/fesm2022/index.mjs +0 -2
  23. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  24. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +11 -0
  25. app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +12 -1
  26. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +11 -0
  27. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  28. app-ng-runtime/components/input/default/bundles/index.umd.js +63 -39
  29. app-ng-runtime/components/input/default/checkboxset/checkboxset.component.d.ts +0 -1
  30. app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +5 -8
  31. app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +5 -8
  32. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +57 -29
  33. app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +1 -4
  34. app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +2 -2
  35. app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +4 -1
  36. app-ng-runtime/components/input/default/fesm2022/index.mjs +63 -39
  37. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  38. app-ng-runtime/components/input/default/radioset/radioset.component.d.ts +0 -1
  39. app-ng-runtime/components/input/default/select/select.component.d.ts +2 -4
  40. app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +3 -2
  41. app-ng-runtime/components/input/epoch/bundles/index.umd.js +3 -0
  42. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +4 -1
  43. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +3 -0
  44. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  45. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +31 -5
  46. app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +34 -8
  47. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +32 -6
  48. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  49. app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +6 -2
  50. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +2 -2
  51. app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +2 -2
  52. app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +2 -2
  53. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +2 -2
  54. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  55. app-ng-runtime/core/bundles/index.umd.js +6 -16
  56. app-ng-runtime/core/enums/enums.d.ts +1 -2
  57. app-ng-runtime/core/esm2022/enums/enums.mjs +1 -2
  58. app-ng-runtime/core/esm2022/types/types.mjs +1 -4
  59. app-ng-runtime/core/esm2022/utils/build-utils.mjs +1 -6
  60. app-ng-runtime/core/esm2022/utils/utils.mjs +4 -3
  61. app-ng-runtime/core/fesm2022/index.mjs +4 -12
  62. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  63. app-ng-runtime/core/types/types.d.ts +1 -5
  64. app-ng-runtime/core/utils/utils.d.ts +1 -0
  65. app-ng-runtime/mobile/core/bundles/index.umd.js +18 -2
  66. app-ng-runtime/mobile/core/esm2022/native.xhr.mjs +19 -3
  67. app-ng-runtime/mobile/core/fesm2022/index.mjs +18 -2
  68. app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
  69. app-ng-runtime/package.json +1 -1
  70. app-ng-runtime/runtime/base/bundles/index.umd.js +5 -288
  71. app-ng-runtime/runtime/base/esm2022/public_api.mjs +1 -2
  72. app-ng-runtime/runtime/base/esm2022/runtime-base.module.mjs +1 -6
  73. app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +2 -2
  74. app-ng-runtime/runtime/base/esm2022/types/types.mjs +1 -2
  75. app-ng-runtime/runtime/base/fesm2022/index.mjs +4 -287
  76. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  77. app-ng-runtime/runtime/base/public_api.d.ts +0 -1
  78. app-ng-runtime/runtime/base/runtime-base.module.d.ts +8 -9
  79. app-ng-runtime/runtime/base/types/types.d.ts +1 -2
  80. app-ng-runtime/runtime/dynamic/bundles/index.umd.js +9 -27
  81. app-ng-runtime/runtime/dynamic/esm2022/app/app.module.mjs +2 -5
  82. app-ng-runtime/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +7 -23
  83. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +7 -26
  84. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  85. app-ng-runtime/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -1
  86. app-ng-runtime/scripts/datatable/datatable.js +6 -3
  87. app-ng-runtime/scripts/summernote/dist/summernote-lite.min.js +2 -3
  88. app-ng-runtime/transpiler/bundles/index.umd.js +0 -5
  89. app-ng-runtime/transpiler/esm2022/build.mjs +1 -4
  90. app-ng-runtime/transpiler/esm2022/imports.mjs +1 -3
  91. app-ng-runtime/transpiler/fesm2022/index.mjs +0 -5
  92. app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
  93. app-ng-runtime/build-task/advanced/custom-widget-container/custom-widget-container.build.d.ts +0 -2
  94. app-ng-runtime/build-task/advanced/custom-widget-wrapper/custom-widget-wrapper.build.d.ts +0 -2
  95. app-ng-runtime/build-task/esm2022/advanced/custom-widget-container/custom-widget-container.build.mjs +0 -15
  96. app-ng-runtime/build-task/esm2022/advanced/custom-widget-wrapper/custom-widget-wrapper.build.mjs +0 -26
  97. app-ng-runtime/components/advanced/custom/.npmignore +0 -2
  98. app-ng-runtime/components/advanced/custom/bundles/index.umd.js +0 -232
  99. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +0 -19
  100. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget.props.d.ts +0 -2
  101. app-ng-runtime/components/advanced/custom/custom-widget-prop.d.ts +0 -1
  102. app-ng-runtime/components/advanced/custom/custom-widget.directive.d.ts +0 -19
  103. app-ng-runtime/components/advanced/custom/custom-widget.module.d.ts +0 -10
  104. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +0 -102
  105. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget.props.mjs +0 -12
  106. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-prop.mjs +0 -8
  107. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.directive.mjs +0 -68
  108. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.module.mjs +0 -32
  109. app-ng-runtime/components/advanced/custom/esm2022/index.mjs +0 -5
  110. app-ng-runtime/components/advanced/custom/esm2022/public_api.mjs +0 -4
  111. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs +0 -215
  112. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs.map +0 -1
  113. app-ng-runtime/components/advanced/custom/index.d.ts +0 -5
  114. app-ng-runtime/components/advanced/custom/package.json +0 -23
  115. app-ng-runtime/components/advanced/custom/public_api.d.ts +0 -3
  116. app-ng-runtime/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +0 -39
  117. app-ng-runtime/components/base/widgets/common/base/custom-widget-container.directive.d.ts +0 -14
  118. app-ng-runtime/runtime/base/components/base-custom-widget.component.d.ts +0 -72
  119. app-ng-runtime/runtime/base/esm2022/components/base-custom-widget.component.mjs +0 -288
@@ -7,7 +7,6 @@ export { BaseComponent } from './widgets/common/base/base.component';
7
7
  export * from './widgets/common/base/base-container.component';
8
8
  export { DatasetAwareNavComponent, NavNode } from './widgets/common/base/dataset-aware-nav.component';
9
9
  export * from './widgets/common/base/partial-container.directive';
10
- export * from './widgets/common/base/custom-widget-container.directive';
11
10
  export * from './widgets/common/base/base-field-validations';
12
11
  export * from './widgets/common/item-template/item-template.directive';
13
12
  export * from './widgets/common/repeat-template/repeat-template.directive';
@@ -3,10 +3,6 @@ import { EventManager } from '@angular/platform-browser';
3
3
  import { App } from '@wm/core';
4
4
  import { ChangeListener, IWidgetConfig } from '../../framework/types';
5
5
  import * as i0 from "@angular/core";
6
- interface Child {
7
- widget: any;
8
- nativeElement: any;
9
- }
10
6
  export declare abstract class BaseComponent implements OnDestroy, OnInit, AfterViewInit, AfterContentInit {
11
7
  protected inj: Injector;
12
8
  /**
@@ -105,7 +101,7 @@ export declare abstract class BaseComponent implements OnDestroy, OnInit, AfterV
105
101
  * (for List, Dynamic Tabs, Accordion, Nav, Carousel)
106
102
  */
107
103
  trackId: string;
108
- protected constructor(inj: Injector, config: IWidgetConfig, explicitContext?: any, initPromise?: Promise<any>);
104
+ protected constructor(inj: Injector, config: IWidgetConfig, explicitContext: any, initPromise?: Promise<any>);
109
105
  getNativeElement(): HTMLElement;
110
106
  getWidgetType(): string;
111
107
  getWidgetSubType(): string;
@@ -176,12 +172,12 @@ export declare abstract class BaseComponent implements OnDestroy, OnInit, AfterV
176
172
  * @param {string} eventName
177
173
  * @param {string} expr
178
174
  */
179
- protected processEventAttr(eventName: string, expr: string, meta?: string, child?: Child): void;
175
+ protected processEventAttr(eventName: string, expr: string, meta?: string): void;
180
176
  /**
181
177
  * Process the bound property
182
178
  * Register a watch on the bound expression
183
179
  */
184
- protected processBindAttr(propName: string, expr: string, child?: any): void;
180
+ protected processBindAttr(propName: string, expr: string): void;
185
181
  /**
186
182
  * Remove watch on the bound property
187
183
  */
@@ -198,7 +194,7 @@ export declare abstract class BaseComponent implements OnDestroy, OnInit, AfterV
198
194
  * and keep in eventHandlers
199
195
  * If the attribute is a bound expression, register a watch on the expression
200
196
  */
201
- protected processAttr(attrName: string, attrValue: string, child?: Child): void;
197
+ protected processAttr(attrName: string, attrValue: string): void;
202
198
  /**
203
199
  * This is required as the native element attributes are case insensitive(camelcase) like customExpressions becomes customexpression
204
200
  * and our logic to check like these changes will fail. Before IVY changes, angular maintains a separate object with these attributes
@@ -206,7 +202,7 @@ export declare abstract class BaseComponent implements OnDestroy, OnInit, AfterV
206
202
  * @private
207
203
  * _tNode.attrs attributes are stored in array(even index: key, odd index: value)
208
204
  */
209
- protected getAttributes(): string[];
205
+ private getAttributes;
210
206
  /**
211
207
  * Process the attributes
212
208
  */
@@ -272,4 +268,3 @@ export declare abstract class BaseComponent implements OnDestroy, OnInit, AfterV
272
268
  static ɵfac: i0.ɵɵFactoryDeclaration<BaseComponent, [null, null, { optional: true; }, null]>;
273
269
  static ɵprov: i0.ɵɵInjectableDeclaration<BaseComponent>;
274
270
  }
275
- export {};
@@ -567,6 +567,23 @@
567
567
  skip() {
568
568
  this.next('skip');
569
569
  }
570
+ gotoStep(stepName) {
571
+ if (stepName) {
572
+ const gotoStepIndex = this.steps.toArray().map(step => step.name).indexOf(stepName);
573
+ if (gotoStepIndex !== -1) {
574
+ const gotoStep = this.getStepRefByIndex(gotoStepIndex);
575
+ if (gotoStep?.show) {
576
+ this.onWizardHeaderClick(event, gotoStep);
577
+ }
578
+ else {
579
+ console.error("The gotoStep function cannot navigate to hidden steps");
580
+ }
581
+ }
582
+ else {
583
+ console.error(`Could not find step '${stepName}'`);
584
+ }
585
+ }
586
+ }
570
587
  // Method to invoke on-Done event on wizard
571
588
  done() {
572
589
  this.currentStep.isDone = true;
@@ -383,6 +383,23 @@ export class WizardComponent extends StylableComponent {
383
383
  skip() {
384
384
  this.next('skip');
385
385
  }
386
+ gotoStep(stepName) {
387
+ if (stepName) {
388
+ const gotoStepIndex = this.steps.toArray().map(step => step.name).indexOf(stepName);
389
+ if (gotoStepIndex !== -1) {
390
+ const gotoStep = this.getStepRefByIndex(gotoStepIndex);
391
+ if (gotoStep?.show) {
392
+ this.onWizardHeaderClick(event, gotoStep);
393
+ }
394
+ else {
395
+ console.error("The gotoStep function cannot navigate to hidden steps");
396
+ }
397
+ }
398
+ else {
399
+ console.error(`Could not find step '${stepName}'`);
400
+ }
401
+ }
402
+ }
386
403
  // Method to invoke on-Done event on wizard
387
404
  done() {
388
405
  this.currentStep.isDone = true;
@@ -513,4 +530,4 @@ export class WizardComponent extends StylableComponent {
513
530
  args: [WizardStepDirective]
514
531
  }] }); })();
515
532
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WizardComponent, { className: "WizardComponent", filePath: "wizard.component.ts", lineNumber: 32 }); })();
516
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9jb250YWluZXJzL3dpemFyZC9zcmMvd2l6YXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9jb250YWluZXJzL3dpemFyZC9zcmMvd2l6YXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBQ1QsZUFBZSxFQUNmLE1BQU0sRUFDTixRQUFRLEVBRVIsUUFBUSxFQUNSLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxpQkFBaUIsRUFBaUIsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7SUNWMUQsMkJBQXNFOzs7SUFFbEUsZ0NBQThFO0lBQUEsWUFBTztJQUFBLGlCQUFPOzs7SUFBZCxjQUFPO0lBQVAsOEJBQU87OztJQUNyRix3QkFBbUs7OztJQUNuSyx3QkFBaUk7OztJQUNqSSxvQkFBaU07OztJQUE5TCw2REFBbUM7OztJQUN0QyxvQkFBcUk7OztJQUFsSSxpRUFBdUM7OztJQUcxQyw0QkFBcUQ7SUFBQSxZQUFlO0lBQUEsaUJBQU87OztJQUF0QixjQUFlO0lBQWYsc0NBQWU7Ozs7SUFHeEUsZ0NBQWtGO0lBQzlFLDJCQUE4RDtJQUM5RCw2QkFBdUU7SUFBbEQsOEtBQVMseUJBQWtCLEtBQUM7SUFBc0Isb0JBQUk7SUFDL0UsQUFEK0UsaUJBQUksRUFDNUU7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QUFTOzJCQUNJLGVBQWUsYUFFZDtvQkFDUCxrQkFBa0IsaUJBQWlCO2lCQUN0Qzs7c0JBcUQyQixNQUFNO3VCQUFDLGtCQUFrQjs7c0JBQUcsUUFBUTtxQkFoRDFCLEtBQUs7a0JBQTFDLGVBQWU7bUJBQUMsbUJBQW1COztrRkFIM0IsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBRdWVyeUxpc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7bm9vcH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgQVBQTFlfU1RZTEVTX1RZUEUsIElXaWRnZXRDb25maWcsIHByb3ZpZGVBc1dpZGdldFJlZiwgc3R5bGVyLCBTdHlsYWJsZUNvbXBvbmVudCB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuXG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi93aXphcmQucHJvcHMnO1xuaW1wb3J0IHsgV2l6YXJkU3RlcERpcmVjdGl2ZSB9IGZyb20gJy4vd2l6YXJkLXN0ZXAvd2l6YXJkLXN0ZXAuZGlyZWN0aXZlJztcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLXdpemFyZCBwYW5lbCBjbGVhcmZpeCc7XG5jb25zdCBXSURHRVRfQ09ORklHOiBJV2lkZ2V0Q29uZmlnID0ge1xuICAgIHdpZGdldFR5cGU6ICd3bS13aXphcmQnLFxuICAgIGhvc3RDbGFzczogREVGQVVMVF9DTFNcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZGl2W3dtV2l6YXJkXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3dpemFyZC5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihXaXphcmRDb21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBXaXphcmRDb21wb25lbnQgZXh0ZW5kcyBTdHlsYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oV2l6YXJkU3RlcERpcmVjdGl2ZSkgc3RlcHM6IFF1ZXJ5TGlzdDxXaXphcmRTdGVwRGlyZWN0aXZlPjtcblxuICAgIHB1YmxpYyBtZXNzYWdlOiB7Y2FwdGlvbjogc3RyaW5nLCB0eXBlOiBzdHJpbmd9O1xuICAgIHB1YmxpYyBjdXJyZW50U3RlcDogV2l6YXJkU3RlcERpcmVjdGl2ZTtcblxuICAgIHB1YmxpYyBzdGVwQ2xhc3M6IHN0cmluZztcbiAgICBwdWJsaWMgY2xhc3M7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9taXNlUmVzb2x2ZXJGbjogRnVuY3Rpb247XG4gICAgcHVibGljIGFjdGlvbnNhbGlnbm1lbnQ6IGFueTtcbiAgICBwdWJsaWMgY2FuY2VsYWJsZTogYW55O1xuICAgIHB1YmxpYyBlbmFibGVuZXh0OiBhbnk7XG5cbiAgICBnZXQgaGFzUHJldlN0ZXAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pc0ZpcnN0U3RlcCh0aGlzLmN1cnJlbnRTdGVwKTtcbiAgICB9XG5cbiAgICBnZXQgaGFzTmV4dFN0ZXAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pc0xhc3RTdGVwKHRoaXMuY3VycmVudFN0ZXApO1xuICAgIH1cblxuICAgIGdldCBzaG93RG9uZUJ0bigpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRTdGVwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICF0aGlzLmhhc05leHRTdGVwICYmIHRoaXMuY3VycmVudFN0ZXAuZW5hYmxlRG9uZTtcbiAgICB9XG5cbiAgICBnZXQgZW5hYmxlUHJldigpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRTdGVwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFN0ZXAuZW5hYmxlUHJldjtcbiAgICB9XG5cbiAgICBnZXQgZW5hYmxlTmV4dCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRTdGVwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZW5hYmxlbmV4dCA/IHRydWUgOiAodGhpcy5jdXJyZW50U3RlcC5lbmFibGVOZXh0ICYmIHRoaXMuY3VycmVudFN0ZXAuaXNWYWxpZCk7XG4gICAgfVxuXG4gICAgZ2V0IGVuYWJsZURvbmUoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5jdXJyZW50U3RlcCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTdGVwLmVuYWJsZURvbmUgJiYgdGhpcy5jdXJyZW50U3RlcC5pc1ZhbGlkO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSkge1xuICAgICAgICBsZXQgcmVzb2x2ZUZuOiBGdW5jdGlvbiA9IG5vb3A7XG5cbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQsIG5ldyBQcm9taXNlKHJlcyA9PiByZXNvbHZlRm4gPSByZXMpKTtcbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcywgQVBQTFlfU1RZTEVTX1RZUEUuU0hFTEwpO1xuXG4gICAgICAgIHRoaXMucHJvbWlzZVJlc29sdmVyRm4gPSByZXNvbHZlRm47XG5cbiAgICAgICAgLy8gaW5pdGlhbGl6ZSB0aGUgbWVzc2FnZSBvYmplY3Qgd2l0aCBkZWZhdWx0IHZhbHVlc1xuICAgICAgICB0aGlzLm1lc3NhZ2UgPSB7XG4gICAgICAgICAgICBjYXB0aW9uOiAnJyxcbiAgICAgICAgICAgIHR5cGU6ICcnXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyBuZXh0IHZhbGlkIHN0ZXAuIHRoZSBpbmRleCBwYXNzZWQgaXMgYWxzbyBjaGVja2VkIGlmIGl0cyB2YWxpZCBzdGVwXG4gICAgICogQHBhcmFtIGluZGV4XG4gICAgICogQHJldHVybnMge1dpemFyZFN0ZXBEaXJlY3RpdmV9XG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXROZXh0VmFsaWRTdGVwRm9ybUluZGV4KGluZGV4OiBudW1iZXIpOiBXaXphcmRTdGVwRGlyZWN0aXZlIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IGluZGV4OyBpIDwgdGhpcy5zdGVwcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgc3RlcCA9IHRoaXMuZ2V0U3RlcFJlZkJ5SW5kZXgoaSk7XG4gICAgICAgICAgICBpZiAoc3RlcC5zaG93KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0ZXA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIHByZXZpb3VzIHZhbGlkIHN0ZXAuIHRoZSBpbmRleCBwYXNzZWQgaXMgYWxzbyBjaGVja2VkIGlmIGl0cyB2YWxpZCBzdGVwXG4gICAgICogQHBhcmFtIGluZGV4XG4gICAgICogQHJldHVybnMge1dpemFyZFN0ZXBEaXJlY3RpdmV9XG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRQcmV2aW91c1ZhbGlkU3RlcEZvcm1JbmRleChpbmRleDogbnVtYmVyKTogV2l6YXJkU3RlcERpcmVjdGl2ZSB7XG4gICAgICAgIGZvciAobGV0IGkgPSBpbmRleDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHN0ZXAgPSB0aGlzLmdldFN0ZXBSZWZCeUluZGV4KGkpO1xuICAgICAgICAgICAgaWYgKHN0ZXAuc2hvdykge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdGVwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyBjdXJyZW50IHN0ZXAgaW5kZXggdmFsdWUuXG4gICAgICogQHJldHVybnMge251bWJlcn1cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldEN1cnJlbnRTdGVwSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RlcEluZGV4QnlSZWYodGhpcy5jdXJyZW50U3RlcCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyBzdGVwUmVmIHdoZW4gaW5kZXggaXMgcGFzc2VkLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICAgICAqIEByZXR1cm5zIHtXaXphcmRTdGVwRGlyZWN0aXZlfVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0U3RlcFJlZkJ5SW5kZXgoaW5kZXg6IG51bWJlcik6IFdpemFyZFN0ZXBEaXJlY3RpdmUge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGVwcy50b0FycmF5KClbaW5kZXhdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgdGhlIGluZGV4IHZhbHVlIG9mIHRoZSBzdGVwLlxuICAgICAqIEBwYXJhbSB7V2l6YXJkU3RlcERpcmVjdGl2ZX0gd2l6YXJkU3RlcFxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9XG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRTdGVwSW5kZXhCeVJlZih3aXphcmRTdGVwOiBXaXphcmRTdGVwRGlyZWN0aXZlKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RlcHMudG9BcnJheSgpLmluZGV4T2Yod2l6YXJkU3RlcCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0cyBzdGVwUmVmIGJ5IHNlYXJjaGluZyBvbiB0aGUgbmFtZSBwcm9wZXJ0eS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICAgICAqIEByZXR1cm5zIHtXaXphcmRTdGVwRGlyZWN0aXZlfVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0U3RlcFJlZkJ5TmFtZShuYW1lOiBzdHJpbmcpOiBXaXphcmRTdGVwRGlyZWN0aXZlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RlcHMuZmluZChzdGVwID0+IHN0ZXAubmFtZSA9PT0gbmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2V0cyBkZWZhdWx0IHN0ZXAgYXMgY3VycmVudCBzdGVwIGlmIGNvbmZpZ3VyZWRcbiAgICAgKiBvciBmaW5kcyBmaXJzdCB2YWxpZCBzdGVwIGFuZCBzZXQgaXQgYXMgY3VycmVudCBzdGVwLlxuICAgICAqIEBwYXJhbSB7V2l6YXJkU3RlcERpcmVjdGl2ZX0gc3RlcFxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0RGVmYXVsdFN0ZXAoc3RlcDogV2l6YXJkU3RlcERpcmVjdGl2ZSkge1xuICAgICAgICAvLyBJZiB0aGUgZGVmYXVsdCBzdGVwIGhhcyBzaG93IHRydWUgdGhlbiBvbmx5IHVwZGF0ZSB0aGUgY3VycmVudFN0ZXBcbiAgICAgICAgaWYgKHN0ZXAgJiYgc3RlcC5zaG93KSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTdGVwID0gc3RlcDtcbiAgICAgICAgICAgIHN0ZXAuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIHN0ZXAuaXNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgICAgICAvLyBNYXJrIGFsbCBwcmV2aW91cyBzdGVwIHN0YXR1cyBDT01QTEVURURcbiAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMuZ2V0U3RlcEluZGV4QnlSZWYoc3RlcCkgLSAxO1xuICAgICAgICAgICAgd2hpbGUgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmV2U3RlcCA9IHRoaXMuZ2V0U3RlcFJlZkJ5SW5kZXgoaW5kZXgpO1xuICAgICAgICAgICAgICAgIHByZXZTdGVwLmRvbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHByZXZTdGVwLmlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGluZGV4LS07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBzZXQgbmV4dCB2YWxpZCBzdGVwIGFzIGN1cnJlbnQgc3RlcFxuICAgICAgICAgICAgc3RlcCA9IHRoaXMuZ2V0TmV4dFZhbGlkU3RlcEZvcm1JbmRleCgwKTtcbiAgICAgICAgICAgIGlmIChzdGVwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0U3RlcChzdGVwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFkZE1vcmVUZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VsZWN0cyB0aGUgYXNzb2NpYXRlZCBzdGVwIHdoZW4gdGhlIHdpemFyZCBoZWFkZXIgaXMgY2xpY2tlZC5cbiAgICAgKiBAcGFyYW0gJGV2ZW50XG4gICAgICogQHBhcmFtIHtXaXphcmRTdGVwRGlyZWN0aXZlfSBjdXJyZW50U3RlcFxuICAgICAqL1xuICAgIHByaXZhdGUgb25XaXphcmRIZWFkZXJDbGljaygkZXZlbnQ6IEV2ZW50LCBjdXJyZW50U3RlcDogV2l6YXJkU3RlcERpcmVjdGl2ZSkge1xuICAgICAgICAvLyBzZWxlY3QgdGhlIHN0ZXAgaWYgaXQncyBzdGF0dXMgaXMgZG9uZVxuICAgICAgICBpZiAoY3VycmVudFN0ZXAuZG9uZSkge1xuICAgICAgICAgICAgLy8gc2V0IGFsbCB0aGUgbmV4dCBzdGVwcyBzdGF0dXMgYXMgZGlzYWJsZWQgYW5kIHByZXZpb3VzIHN0ZXBzIGFzIGRvbmVcbiAgICAgICAgICAgIHRoaXMuc3RlcHMuZm9yRWFjaCgoc3RlcCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPCB0aGlzLmdldFN0ZXBJbmRleEJ5UmVmKGN1cnJlbnRTdGVwKSkge1xuICAgICAgICAgICAgICAgICAgIHN0ZXAuZG9uZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgc3RlcC5pc0RvbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHN0ZXAuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBzdGVwLmlzRG9uZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gc2V0IHRoZSBzZWxlY3RlZCBzdGVwIGFzIGN1cnJlbnQgc3RlcCBhbmQgbWFrZSBpdCBhY3RpdmVcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFN0ZXAgPSBjdXJyZW50U3RlcDtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFN0ZXAuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuYWRkTW9yZVRleHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1ldGhvZCB0byBuYXZpZ2F0ZSB0byBuZXh0IHN0ZXBcbiAgICBwdWJsaWMgbmV4dChldmVudE5hbWU6IHN0cmluZyA9ICduZXh0Jykge1xuICAgICAgICBjb25zdCBjdXJyZW50U3RlcCA9IHRoaXMuY3VycmVudFN0ZXA7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTdGVwSW5kZXggPSB0aGlzLmdldEN1cnJlbnRTdGVwSW5kZXgoKTtcblxuICAgICAgICAvLyBhYm9ydCBpZiBvblNraXAgbWV0aG9kIHJldHVybnMgZmFsc2VcbiAgICAgICAgaWYgKGV2ZW50TmFtZSA9PT0gJ3NraXAnKSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudFN0ZXAuaW52b2tlU2tpcENCKGN1cnJlbnRTdGVwSW5kZXgpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZXh0ZW5kTmV4dEZuKGN1cnJlbnRTdGVwLCBjdXJyZW50U3RlcEluZGV4KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnRTdGVwLmlzVmFsaWQgJiYgZXZlbnROYW1lID09PSAnbmV4dCcpIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50U3RlcC5pbnZva2VOZXh0Q0IoY3VycmVudFN0ZXBJbmRleCkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5leHRlbmROZXh0Rm4oY3VycmVudFN0ZXAsIGN1cnJlbnRTdGVwSW5kZXgpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZW5hYmxlbmV4dCAmJiAhdGhpcy5jdXJyZW50U3RlcC5pc1ZhbGlkKXtcbiAgICAgICAgICAgIEFycmF5LmZyb20oKDxhbnk+dGhpcykuY3VycmVudFN0ZXAuZ2V0QWxsRW1iZWRkZWRGb3JtcygpKT8uZm9yRWFjaCgoZm9ybTphbnkpID0+IHtcbiAgICAgICAgICAgICAgICBmb3JtLndpZGdldC5oaWdobGlnaHRJbnZhbGlkRmllbGRzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGV4dGVuZE5leHRGbihjdXJyZW50U3RlcCwgY3VycmVudFN0ZXBJbmRleCl7XG4gICAgICAgIGxldCBuZXh0U3RlcDogV2l6YXJkU3RlcERpcmVjdGl2ZTtcbiAgICAgICAgbmV4dFN0ZXAgPSB0aGlzLmdldE5leHRWYWxpZFN0ZXBGb3JtSW5kZXgoY3VycmVudFN0ZXBJbmRleCArIDEpO1xuICAgICAgICBuZXh0U3RlcC5pc0luaXRpYWxpemVkID0gdHJ1ZTtcblxuICAgICAgICAvLyBJZiB0aGVyZSBhcmUgYW55IHN0ZXBzIHdoaWNoIGhhcyBzaG93IHRoZW4gb25seSBjaGFuZ2Ugc3RhdGUgb2YgY3VycmVudCBzdGVwIGVsc2UgcmVtYWluIHNhbWVcbiAgICAgICAgaWYgKG5leHRTdGVwKSB7XG4gICAgICAgICAgICBjdXJyZW50U3RlcC5pc0RvbmUgPSB0cnVlO1xuICAgICAgICAgICAgY3VycmVudFN0ZXAuZG9uZSA9IHRydWU7XG4gICAgICAgICAgICBuZXh0U3RlcC5hY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50U3RlcCA9IG5leHRTdGVwO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWRkTW9yZVRleHQoKTtcbiAgICB9XG4gICAgLy8gTWV0aG9kIHRvIG5hdmlnYXRlIHRvIHByZXZpb3VzIHN0ZXBcbiAgICBwdWJsaWMgcHJldigpIHtcbiAgICAgICAgY29uc3QgY3VycmVudFN0ZXAgPSB0aGlzLmN1cnJlbnRTdGVwO1xuICAgICAgICBjb25zdCBjdXJyZW50U3RlcEluZGV4ID0gdGhpcy5nZXRDdXJyZW50U3RlcEluZGV4KCk7XG5cbiAgICAgICAgbGV0IHByZXZTdGVwOiBXaXphcmRTdGVwRGlyZWN0aXZlO1xuXG4gICAgICAgIC8vIGFib3J0IGlmIG9uUHJldiBtZXRob2QgcmV0dXJucyBmYWxzZS5cbiAgICAgICAgaWYgKGN1cnJlbnRTdGVwLmludm9rZVByZXZDQihjdXJyZW50U3RlcEluZGV4KSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHByZXZTdGVwID0gdGhpcy5nZXRQcmV2aW91c1ZhbGlkU3RlcEZvcm1JbmRleChjdXJyZW50U3RlcEluZGV4IC0gMSk7XG5cbiAgICAgICAgLy8gSWYgdGhlcmUgYXJlIGFueSBzdGVwcyB3aGljaCBoYXMgc2hvdyB0aGVuIG9ubHkgY2hhbmdlIHN0YXRlIG9mIGN1cnJlbnQgc3RlcCBlbHNlIHJlbWFpbiBzYW1lXG4gICAgICAgIGlmIChwcmV2U3RlcCkge1xuICAgICAgICAgICAgY3VycmVudFN0ZXAuaXNEb25lID0gZmFsc2U7XG4gICAgICAgICAgICBjdXJyZW50U3RlcC5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICBwcmV2U3RlcC5hY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50U3RlcCA9IHByZXZTdGVwO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWRkTW9yZVRleHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2tpcCgpIHtcbiAgICAgICAgdGhpcy5uZXh0KCdza2lwJyk7XG4gICAgfVxuXG4gICAgLy8gTWV0aG9kIHRvIGludm9rZSBvbi1Eb25lIGV2ZW50IG9uIHdpemFyZFxuICAgIHB1YmxpYyBkb25lKCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRTdGVwLmlzRG9uZSA9IHRydWU7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnZG9uZScsIHtzdGVwczogdGhpcy5zdGVwcy50b0FycmF5KCl9KTtcbiAgICB9XG4gICAgLy8gTWV0aG9kIHRvIGludm9rZSBvbi1DYW5jZWwgZXZlbnQgb24gd2l6YXJkXG4gICAgcHVibGljIGNhbmNlbCAoKSB7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnY2FuY2VsJywge3N0ZXBzOiB0aGlzLnN0ZXBzLnRvQXJyYXkoKX0pO1xuICAgIH1cbiAgICBwdWJsaWMgYWRkTW9yZVRleHQoKXtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG5cblxuICAgICAgICB2YXIgbmV3V2luZG93V2lkdGggPSAkKHdpbmRvdykud2lkdGgoKTtcbiAgICAgICAgaWYobmV3V2luZG93V2lkdGggPCA3Njgpe1xuICAgICAgICAkKFwiLmFwcC13aXphcmQtc3RlcC5jdXJyZW50IC5zdWJ0aXRsZS13cmFwcGVyIC5zdGVwLXRpdGxlXCIpLmNzcyh7XCJoZWlnaHRcIjpcImF1dG9cIixcImRpc3BsYXlcIjpcImJsb2NrXCJ9KTtcbiAgICAgICAgdmFyIHN1YnRpdGxlVGV4dExlbmd0aCA9ICQoXCIuYXBwLXdpemFyZC1zdGVwLmN1cnJlbnQgLnN1YnRpdGxlLXdyYXBwZXIgLnN0ZXAtdGl0bGVcIikuaGVpZ2h0KCk7XG4gICAgICAgICQoXCIucmVhZF9tb3JlXCIpLmNzcyhcImRpc3BsYXlcIixcIm5vbmVcIik7XG4gICAgICAgICQoXCIuY3VycmVudCAuc3VidGl0bGUtd3JhcHBlclwiKS5yZW1vdmVDbGFzcyhcInJlYWRtb3JlX3N1YnRpdGxlXCIpO1xuXG4gICAgICAgIGlmKHN1YnRpdGxlVGV4dExlbmd0aD40NCl7XG4gICAgICAgICAgICAkKFwiLmFwcC13aXphcmQtc3RlcC5jdXJyZW50IC5zdWJ0aXRsZS13cmFwcGVyIC5zdGVwLXRpdGxlXCIpLmNzcyh7XCJoZWlnaHRcIjpcIjQ0cHhcIixcImRpc3BsYXlcIjpcIi13ZWJraXQtYm94XCJ9KTtcbiAgICAgICAgICAgICQoXCIuY3VycmVudCAucmVhZF9tb3JlXCIpLmNzcyhcImRpc3BsYXlcIixcImJsb2NrXCIpO1xuICAgICAgICAgICAgJChcIi5hY3RpdmUgLnJlYWRfbW9yZVwiKS5jc3MoXCJkaXNwbGF5XCIsXCJub25lXCIpO1xuICAgICAgICAgICAgJChcIi5kaXNhYmxlIC5yZWFkX21vcmVcIikuY3NzKFwiZGlzcGxheVwiLFwibm9uZVwiKTtcbiAgICAgICAgICAgICQoXCIuYXBwLXdpemFyZC1zdGVwPmFcIikuY3NzKFwiaGVpZ2h0XCIsXCIxMDBweFwiKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICB9XG4gICAgcHVibGljIHJlYWRNb3JlU3VidGl0bGUoKXtcbiAgICAgICAgJChcIi5jdXJyZW50IC5zdWJ0aXRsZS13cmFwcGVyXCIpLmFkZENsYXNzKFwicmVhZG1vcmVfc3VidGl0bGVcIik7XG4gICAgICAgICQoXCIuY3VycmVudCAucmVhZF9tb3JlXCIpLmNzcyhcImRpc3BsYXlcIixcIm5vbmVcIik7XG4gICAgICAgICQoZG9jdW1lbnQpLm9uKFwibW91c2V1cFwiLGZ1bmN0aW9uKGU6YW55KVxuICAgICAgICB7XG4gICAgICAgICAgICB2YXIgY29udGFpbmVyID0gJChcIi5zdWJ0aXRsZS13cmFwcGVyXCIpO1xuICAgICAgICAgICAgLy8gaWYgdGhlIHRhcmdldCBvZiB0aGUgY2xpY2sgaXNuJ3QgdGhlIGNvbnRhaW5lciBub3IgYSBkZXNjZW5kYW50IG9mIHRoZSBjb250YWluZXJcbiAgICAgICAgICAgIGlmICghY29udGFpbmVyLmlzKGUudGFyZ2V0KSAmJiBjb250YWluZXIuaGFzKGUudGFyZ2V0KS5sZW5ndGggPT09IDApXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgJChcIi5jdXJyZW50IC5zdWJ0aXRsZS13cmFwcGVyXCIpLnJlbW92ZUNsYXNzKFwicmVhZG1vcmVfc3VidGl0bGVcIik7XG4gICAgICAgICAgICAgICAgJChcIi5jdXJyZW50IC5yZWFkX21vcmVcIikuY3NzKFwiZGlzcGxheVwiLFwiYmxvY2tcIik7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub2ZmKFwibW91c2V1cFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0ZpcnN0U3RlcChzdGVwUmVmOiBXaXphcmRTdGVwRGlyZWN0aXZlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0ZXBzLmZpcnN0ID09PSBzdGVwUmVmO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNMYXN0U3RlcChzdGVwUmVmOiBXaXphcmRTdGVwRGlyZWN0aXZlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0ZXBzLmxhc3QgPT09IHN0ZXBSZWY7XG4gICAgfVxuXG4gICAgLy8gRGVmaW5lIHRoZSBwcm9wZXJ0eSBjaGFuZ2UgaGFuZGxlci4gVGhpcyBNZXRob2Qgd2lsbCBiZSB0cmlnZ2VyZWQgd2hlbiB0aGVyZSBpcyBhIGNoYW5nZSBpbiB0aGUgd2lkZ2V0IHByb3BlcnR5XG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXk6IHN0cmluZywgbnY6IGFueSwgb3Y/OiBhbnkpIHtcbiAgICAgICAgLy8gTW9uaXRvcmluZyBjaGFuZ2VzIGZvciBwcm9wZXJ0aWVzIGFuZCBhY2NvcmRpbmdseSBoYW5kbGluZyByZXNwZWN0aXZlIGNoYW5nZXNcblxuICAgICAgICBpZiAoa2V5ID09PSAnc3RlcHN0eWxlJykge1xuICAgICAgICAgICAgdGhpcy5zdGVwQ2xhc3MgPSAgbnYgPT09ICdqdXN0aWZpZWQnID8gJ25hdi1qdXN0aWZpZWQnIDogJyc7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnZGVmYXVsdHN0ZXAnKSB7XG4gICAgICAgICAgICB0aGlzLnNldERlZmF1bHRTdGVwKHRoaXMuZ2V0U3RlcFJlZkJ5TmFtZShudikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJDb250ZW50SW5pdCgpO1xuICAgICAgICB0aGlzLnByb21pc2VSZXNvbHZlckZuKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgc3R5bGVyKFxuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wYW5lbC1ib2R5JykgYXMgSFRNTEVsZW1lbnQsXG4gICAgICAgICAgICB0aGlzLFxuICAgICAgICAgICAgQVBQTFlfU1RZTEVTX1RZUEUuSU5ORVJfU0hFTExcbiAgICAgICAgKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IGlmKCQod2luZG93KS53aWR0aCgpPDc2OCl7XG4gICAgICAgICAgICAkKFwiLmFwcC13aXphcmRcIikucmVtb3ZlQ2xhc3MoXCJ2ZXJ0aWNhbFwiKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXBwLXdpemFyZC1oZWFkaW5nXCIgcm9sZT1cInRhYlwiPlxuICAgIDx1bCBjbGFzcz1cImFwcC13aXphcmQtc3RlcHMgbmF2IG5hdi1waWxscyB7e3N0ZXBDbGFzc319XCI+XG4gICAgICAgIDxsaSBjbGFzcz1cImFwcC13aXphcmQtc3RlcFwiICpuZ0Zvcj1cImxldCBzdGVwIG9mIHN0ZXBzOyBsZXQgaSA9IGluZGV4XCIgW2hpZGRlbl09XCIhc3RlcC5zaG93XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInthY3RpdmU6IHN0ZXAuZG9uZSwgY3VycmVudDogc3RlcC5hY3RpdmUsIGRpc2FibGVkOiBzdGVwLmRpc2FibGVkfVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25XaXphcmRIZWFkZXJDbGljaygkZXZlbnQsIHN0ZXApXCI+XG4gICAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJzdGVwLnRpdGxlXCIgW2F0dHIudGl0bGVdPVwic3RlcC50aXRsZVwiIFtuZ0NsYXNzXT1cInsndGl0bGUtY2VudGVyLWFsaWduJzpjbGFzcyAmJiBjbGFzcy5pbmNsdWRlcygnY2xhc3NpYycpICYmICFzdGVwLnN1YnRpdGxlfVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXJyb3dcIiAqbmdJZj1cImNsYXNzICYmIGNsYXNzLmluY2x1ZGVzKCdjbGFzc2ljJylcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3aXphcmQtc3RlcC1udW1iZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudFwiICpuZ0lmPVwiY2xhc3MgJiYgY2xhc3MuaW5jbHVkZXMoJ251bWJlcicpICYmICFzdGVwLmlzRG9uZVwiPnt7aSsxfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZG90dGVkc3RlcHBlclwiICpuZ0lmPVwiY2xhc3MgJiYgKGNsYXNzLmluY2x1ZGVzKCdkb3R0ZWRzdGVwcGVyJykgfHwgY2xhc3MuaW5jbHVkZXMoJ3RleHQtaW5saW5lJykgJiYgIWNsYXNzLmluY2x1ZGVzKCdpY29uc3RlcHBlcicpKSAmJiAhc3RlcC5pc0RvbmVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYXBwLWljb24gd2kgd2ktZG9uZVwiICpuZ0lmPVwiY2xhc3MgJiYgKGNsYXNzLmluY2x1ZGVzKCdkb3R0ZWRzdGVwcGVyJykgfHwgY2xhc3MuaW5jbHVkZXMoJ251bWJlcicpKSAmJiBzdGVwLmlzRG9uZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJhcHAtaWNvbiB7e3N0ZXAuaWNvbmNsYXNzfX1cIiAqbmdJZj1cIihjbGFzcyAmJiBjbGFzcy5pbmNsdWRlcygnaWNvbnN0ZXBwZXInKSkgJiYgKChzdGVwLmljb25jbGFzcyAmJiAhc3RlcC5pc0RvbmUpIHx8IChzdGVwLmljb25jbGFzcyAmJiBzdGVwLmlzRG9uZSAmJiBzdGVwLmRvbmVpY29uY2xhc3MgPT09JycpKVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJhcHAtaWNvbiB7e3N0ZXAuZG9uZWljb25jbGFzc319XCIgKm5nSWY9XCJzdGVwLmRvbmVpY29uY2xhc3MgJiYgc3RlcC5pc0RvbmUgJiYgKGNsYXNzICYmIGNsYXNzLmluY2x1ZGVzKCdpY29uc3RlcHBlcicpKVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZS13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY2xhc3MgJiYgY2xhc3MuaW5jbHVkZXMoJ3RleHQtaW5saW5lJylcIj57eycwJyArIChpKzEpfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RlcC10aXRsZVwiIFt0ZXh0Q29udGVudF09XCJzdGVwLnRpdGxlXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YnRpdGxlLXdyYXBwZXJcIiBbYXR0ci50aXRsZV09XCJzdGVwLnN1YnRpdGxlXCIgKm5nSWY9XCJzdGVwLnN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RlcC10aXRsZVwiIFt0ZXh0Q29udGVudF09XCJzdGVwLnN1YnRpdGxlXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cInJlYWRfbW9yZVwiIChjbGljayk9XCJyZWFkTW9yZVN1YnRpdGxlKClcIiBzdHlsZT1cImRpc3BsYXk6bm9uZVwiPm1vcmU8L2E+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9hPiAgICBcbiAgICAgICAgPC9saT5cbiAgICA8L3VsPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiYXBwLXdpemFyZC1ib2R5IHBhbmVsLWJvZHlcIiByb2xlPVwidGFicGFuZWxcIj5cbiAgICA8cCB3bU1lc3NhZ2UgKm5nSWY9XCJtZXNzYWdlLmNhcHRpb25cIiBjYXB0aW9uLmJpbmQ9XCJtZXNzYWdlLmNhcHRpb25cIiB0eXBlLmJpbmQ9XCJtZXNzYWdlLnR5cGVcIj48L3A+XG4gICAgPG5nLWNvbnRlbnQgbmdQcm9qZWN0QXM9XCJmb3JtW3dtV2l6YXJkU3RlcF1cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJhcHAtd2l6YXJkLWFjdGlvbnMgcGFuZWwtZm9vdGVyIHt7YWN0aW9uc2FsaWdubWVudH19XCI+XG4gICAgPGEgY2xhc3M9XCJhcHAtd2l6YXJkLXNraXBcIiBuYW1lPVwic2tpcFN0ZXBfe3tuYW1lfX1cIiAqbmdJZj1cImN1cnJlbnRTdGVwPy5lbmFibGVza2lwXCIgdGl0bGU9XCJTa2lwIHN0ZXBcIiAoY2xpY2spPVwic2tpcCgpXCI+U2tpcCAmcmFxdW87PC9hPlxuICAgIDxkaXYgY2xhc3M9XCJhcHAtd2l6YXJkLWFjdGlvbnMtcmlnaHRcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbmFtZT1cImNhbmNlbEJ0bl97e25hbWV9fVwiIGNsYXNzPVwiYnRuIGFwcC1idXR0b24gYnRuLWRlZmF1bHRcIiAqbmdJZj1cImNhbmNlbGFibGVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjYW5jZWwoKVwiIFt0aXRsZV09XCJjYW5jZWxidG5sYWJlbFwiIFt0ZXh0Q29udGVudF09XCJjYW5jZWxidG5sYWJlbFwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBuYW1lPVwicHJldmlvdXNCdG5fe3tuYW1lfX1cIiBjbGFzcz1cImJ0biBhcHAtYnV0dG9uIGJ0bi1kZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImhhc1ByZXZTdGVwXCIgKGNsaWNrKT1cInByZXYoKVwiIFtkaXNhYmxlZF09XCIhZW5hYmxlUHJldlwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJhcHAtaWNvbiB3aSB3aS1jaGV2cm9uLWxlZnRcIj48L2k+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ0bi1jYXB0aW9uXCIgW3RleHRDb250ZW50XT1cInByZXZpb3VzYnRubGFiZWxcIj48L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBuYW1lPVwibmV4dEJ0bl97e25hbWV9fVwiIGNsYXNzPVwiYnRuIGFwcC1idXR0b24gYnRuLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzTmV4dFN0ZXBcIiAoY2xpY2spPVwibmV4dCgpXCIgW2Rpc2FibGVkXT1cIiFlbmFibGVOZXh0XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ0bi1jYXB0aW9uXCIgW3RleHRDb250ZW50XT1cIm5leHRidG5sYWJlbFwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiYXBwLWljb24gd2kgd2ktY2hldnJvbi1yaWdodFwiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG5hbWU9XCJkb25lQnRuX3t7bmFtZX19XCIgY2xhc3M9XCJidG4gYXBwLWJ1dHRvbiBidG4tc3VjY2Vzc1wiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93RG9uZUJ0blwiIChjbGljayk9XCJkb25lKClcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZW5hYmxlRG9uZVwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJhcHAtaWNvbiB3bS1zbC1sIHNsLWNoZWNrXCI+PC9pPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJidG4tY2FwdGlvblwiIFt0ZXh0Q29udGVudF09XCJkb25lYnRubGFiZWxcIj48L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
533
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9jb250YWluZXJzL3dpemFyZC9zcmMvd2l6YXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9jb250YWluZXJzL3dpemFyZC9zcmMvd2l6YXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBQ1QsZUFBZSxFQUNmLE1BQU0sRUFDTixRQUFRLEVBRVIsUUFBUSxFQUNSLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxpQkFBaUIsRUFBaUIsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7SUNWMUQsMkJBQXNFOzs7SUFFbEUsZ0NBQThFO0lBQUEsWUFBTztJQUFBLGlCQUFPOzs7SUFBZCxjQUFPO0lBQVAsOEJBQU87OztJQUNyRix3QkFBbUs7OztJQUNuSyx3QkFBaUk7OztJQUNqSSxvQkFBaU07OztJQUE5TCw2REFBbUM7OztJQUN0QyxvQkFBcUk7OztJQUFsSSxpRUFBdUM7OztJQUcxQyw0QkFBcUQ7SUFBQSxZQUFlO0lBQUEsaUJBQU87OztJQUF0QixjQUFlO0lBQWYsc0NBQWU7Ozs7SUFHeEUsZ0NBQWtGO0lBQzlFLDJCQUE4RDtJQUM5RCw2QkFBdUU7SUFBbEQsOEtBQVMseUJBQWtCLEtBQUM7SUFBc0Isb0JBQUk7SUFDL0UsQUFEK0UsaUJBQUksRUFDNUU7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O2dGQTVWUSxlQUFlLDBEQW1EVyxrQkFBa0I7b0VBbkQ1QyxlQUFlO3dDQUdQLG1CQUFtQjs7Ozs4Q0FQekI7Z0JBQ1Asa0JBQWtCLENBQUMsZUFBZSxDQUFDO2FBQ3RDOztZQzVCRCxBQURKLDhCQUEyQyxTQUNrQjtZQUNyRCxnRUFFZ0Q7WUFxQnhELEFBREksaUJBQUssRUFDSDtZQUNOLDhCQUF3RDtZQUNwRCw0REFBNkY7WUFDN0YsNkZBQTBEO1lBQzlELGlCQUFNO1lBQ04sMkJBQWtFO1lBQzlELDREQUF1SDtZQUN2SCw4QkFBc0M7WUFhbEMsQUFMQSxBQUxBLEFBRkEsc0VBQ21GLDJEQUViLDJEQUtBLDJEQU1yQztZQUt6QyxBQURJLGlCQUFNLEVBQ0o7O1lBbkRFLGNBQW9EO1lBQXBELCtFQUFvRDtZQUNQLGNBQVU7WUFBVixtQ0FBVTtZQXlCN0MsZUFBcUI7WUFBckIsMENBQXFCO1lBR2xDLGVBQTREO1lBQTVELHVGQUE0RDtZQUNSLGNBQTZCO1lBQTdCLGtGQUE2QjtZQUVNLGVBQWdCO1lBQWhCLHFDQUFnQjtZQUczRixjQUFpQjtZQUFqQixzQ0FBaUI7WUFLakIsY0FBaUI7WUFBakIsc0NBQWlCO1lBS2pCLGNBQWlCO1lBQWpCLHNDQUFpQjs7O2lGRGZyQixlQUFlO2NBUDNCLFNBQVM7MkJBQ0ksZUFBZSxhQUVkO29CQUNQLGtCQUFrQixpQkFBaUI7aUJBQ3RDOztzQkFxRDJCLE1BQU07dUJBQUMsa0JBQWtCOztzQkFBRyxRQUFRO3FCQWhEMUIsS0FBSztrQkFBMUMsZUFBZTttQkFBQyxtQkFBbUI7O2tGQUgzQixlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFF1ZXJ5TGlzdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtub29wfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBBUFBMWV9TVFlMRVNfVFlQRSwgSVdpZGdldENvbmZpZywgcHJvdmlkZUFzV2lkZ2V0UmVmLCBzdHlsZXIsIFN0eWxhYmxlQ29tcG9uZW50IH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL3dpemFyZC5wcm9wcyc7XG5pbXBvcnQgeyBXaXphcmRTdGVwRGlyZWN0aXZlIH0gZnJvbSAnLi93aXphcmQtc3RlcC93aXphcmQtc3RlcC5kaXJlY3RpdmUnO1xuXG5jb25zdCBERUZBVUxUX0NMUyA9ICdhcHAtd2l6YXJkIHBhbmVsIGNsZWFyZml4JztcbmNvbnN0IFdJREdFVF9DT05GSUc6IElXaWRnZXRDb25maWcgPSB7XG4gICAgd2lkZ2V0VHlwZTogJ3dtLXdpemFyZCcsXG4gICAgaG9zdENsYXNzOiBERUZBVUxUX0NMU1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkaXZbd21XaXphcmRdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vd2l6YXJkLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKFdpemFyZENvbXBvbmVudClcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFdpemFyZENvbXBvbmVudCBleHRlbmRzIFN0eWxhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihXaXphcmRTdGVwRGlyZWN0aXZlKSBzdGVwczogUXVlcnlMaXN0PFdpemFyZFN0ZXBEaXJlY3RpdmU+O1xuXG4gICAgcHVibGljIG1lc3NhZ2U6IHtjYXB0aW9uOiBzdHJpbmcsIHR5cGU6IHN0cmluZ307XG4gICAgcHVibGljIGN1cnJlbnRTdGVwOiBXaXphcmRTdGVwRGlyZWN0aXZlO1xuXG4gICAgcHVibGljIHN0ZXBDbGFzczogc3RyaW5nO1xuICAgIHB1YmxpYyBjbGFzcztcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb21pc2VSZXNvbHZlckZuOiBGdW5jdGlvbjtcbiAgICBwdWJsaWMgYWN0aW9uc2FsaWdubWVudDogYW55O1xuICAgIHB1YmxpYyBjYW5jZWxhYmxlOiBhbnk7XG4gICAgcHVibGljIGVuYWJsZW5leHQ6IGFueTtcblxuICAgIGdldCBoYXNQcmV2U3RlcCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzRmlyc3RTdGVwKHRoaXMuY3VycmVudFN0ZXApO1xuICAgIH1cblxuICAgIGdldCBoYXNOZXh0U3RlcCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzTGFzdFN0ZXAodGhpcy5jdXJyZW50U3RlcCk7XG4gICAgfVxuXG4gICAgZ2V0IHNob3dEb25lQnRuKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuY3VycmVudFN0ZXApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gIXRoaXMuaGFzTmV4dFN0ZXAgJiYgdGhpcy5jdXJyZW50U3RlcC5lbmFibGVEb25lO1xuICAgIH1cblxuICAgIGdldCBlbmFibGVQcmV2KCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuY3VycmVudFN0ZXApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50U3RlcC5lbmFibGVQcmV2O1xuICAgIH1cblxuICAgIGdldCBlbmFibGVOZXh0KCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuY3VycmVudFN0ZXApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5lbmFibGVuZXh0ID8gdHJ1ZSA6ICh0aGlzLmN1cnJlbnRTdGVwLmVuYWJsZU5leHQgJiYgdGhpcy5jdXJyZW50U3RlcC5pc1ZhbGlkKTtcbiAgICB9XG5cbiAgICBnZXQgZW5hYmxlRG9uZSgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRTdGVwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFN0ZXAuZW5hYmxlRG9uZSAmJiB0aGlzLmN1cnJlbnRTdGVwLmlzVmFsaWQ7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoaW5qOiBJbmplY3RvciwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55KSB7XG4gICAgICAgIGxldCByZXNvbHZlRm46IEZ1bmN0aW9uID0gbm9vcDtcblxuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCwgbmV3IFByb21pc2UocmVzID0+IHJlc29sdmVGbiA9IHJlcykpO1xuICAgICAgICBzdHlsZXIodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzLCBBUFBMWV9TVFlMRVNfVFlQRS5TSEVMTCk7XG5cbiAgICAgICAgdGhpcy5wcm9taXNlUmVzb2x2ZXJGbiA9IHJlc29sdmVGbjtcblxuICAgICAgICAvLyBpbml0aWFsaXplIHRoZSBtZXNzYWdlIG9iamVjdCB3aXRoIGRlZmF1bHQgdmFsdWVzXG4gICAgICAgIHRoaXMubWVzc2FnZSA9IHtcbiAgICAgICAgICAgIGNhcHRpb246ICcnLFxuICAgICAgICAgICAgdHlwZTogJydcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIG5leHQgdmFsaWQgc3RlcC4gdGhlIGluZGV4IHBhc3NlZCBpcyBhbHNvIGNoZWNrZWQgaWYgaXRzIHZhbGlkIHN0ZXBcbiAgICAgKiBAcGFyYW0gaW5kZXhcbiAgICAgKiBAcmV0dXJucyB7V2l6YXJkU3RlcERpcmVjdGl2ZX1cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldE5leHRWYWxpZFN0ZXBGb3JtSW5kZXgoaW5kZXg6IG51bWJlcik6IFdpemFyZFN0ZXBEaXJlY3RpdmUge1xuICAgICAgICBmb3IgKGxldCBpID0gaW5kZXg7IGkgPCB0aGlzLnN0ZXBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBzdGVwID0gdGhpcy5nZXRTdGVwUmVmQnlJbmRleChpKTtcbiAgICAgICAgICAgIGlmIChzdGVwLnNob3cpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RlcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgcHJldmlvdXMgdmFsaWQgc3RlcC4gdGhlIGluZGV4IHBhc3NlZCBpcyBhbHNvIGNoZWNrZWQgaWYgaXRzIHZhbGlkIHN0ZXBcbiAgICAgKiBAcGFyYW0gaW5kZXhcbiAgICAgKiBAcmV0dXJucyB7V2l6YXJkU3RlcERpcmVjdGl2ZX1cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFByZXZpb3VzVmFsaWRTdGVwRm9ybUluZGV4KGluZGV4OiBudW1iZXIpOiBXaXphcmRTdGVwRGlyZWN0aXZlIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IGluZGV4OyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3Qgc3RlcCA9IHRoaXMuZ2V0U3RlcFJlZkJ5SW5kZXgoaSk7XG4gICAgICAgICAgICBpZiAoc3RlcC5zaG93KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0ZXA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIGN1cnJlbnQgc3RlcCBpbmRleCB2YWx1ZS5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0Q3VycmVudFN0ZXBJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGVwSW5kZXhCeVJlZih0aGlzLmN1cnJlbnRTdGVwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIHN0ZXBSZWYgd2hlbiBpbmRleCBpcyBwYXNzZWQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gICAgICogQHJldHVybnMge1dpemFyZFN0ZXBEaXJlY3RpdmV9XG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRTdGVwUmVmQnlJbmRleChpbmRleDogbnVtYmVyKTogV2l6YXJkU3RlcERpcmVjdGl2ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0ZXBzLnRvQXJyYXkoKVtpbmRleF07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyB0aGUgaW5kZXggdmFsdWUgb2YgdGhlIHN0ZXAuXG4gICAgICogQHBhcmFtIHtXaXphcmRTdGVwRGlyZWN0aXZlfSB3aXphcmRTdGVwXG4gICAgICogQHJldHVybnMge251bWJlcn1cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFN0ZXBJbmRleEJ5UmVmKHdpemFyZFN0ZXA6IFdpemFyZFN0ZXBEaXJlY3RpdmUpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGVwcy50b0FycmF5KCkuaW5kZXhPZih3aXphcmRTdGVwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZXRzIHN0ZXBSZWYgYnkgc2VhcmNoaW5nIG9uIHRoZSBuYW1lIHByb3BlcnR5LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gICAgICogQHJldHVybnMge1dpemFyZFN0ZXBEaXJlY3RpdmV9XG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRTdGVwUmVmQnlOYW1lKG5hbWU6IHN0cmluZyk6IFdpemFyZFN0ZXBEaXJlY3RpdmUge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGVwcy5maW5kKHN0ZXAgPT4gc3RlcC5uYW1lID09PSBuYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXRzIGRlZmF1bHQgc3RlcCBhcyBjdXJyZW50IHN0ZXAgaWYgY29uZmlndXJlZFxuICAgICAqIG9yIGZpbmRzIGZpcnN0IHZhbGlkIHN0ZXAgYW5kIHNldCBpdCBhcyBjdXJyZW50IHN0ZXAuXG4gICAgICogQHBhcmFtIHtXaXphcmRTdGVwRGlyZWN0aXZlfSBzdGVwXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXREZWZhdWx0U3RlcChzdGVwOiBXaXphcmRTdGVwRGlyZWN0aXZlKSB7XG4gICAgICAgIC8vIElmIHRoZSBkZWZhdWx0IHN0ZXAgaGFzIHNob3cgdHJ1ZSB0aGVuIG9ubHkgdXBkYXRlIHRoZSBjdXJyZW50U3RlcFxuICAgICAgICBpZiAoc3RlcCAmJiBzdGVwLnNob3cpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFN0ZXAgPSBzdGVwO1xuICAgICAgICAgICAgc3RlcC5hY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgc3RlcC5pc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgICAgIC8vIE1hcmsgYWxsIHByZXZpb3VzIHN0ZXAgc3RhdHVzIENPTVBMRVRFRFxuICAgICAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5nZXRTdGVwSW5kZXhCeVJlZihzdGVwKSAtIDE7XG4gICAgICAgICAgICB3aGlsZSAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHByZXZTdGVwID0gdGhpcy5nZXRTdGVwUmVmQnlJbmRleChpbmRleCk7XG4gICAgICAgICAgICAgICAgcHJldlN0ZXAuZG9uZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgcHJldlN0ZXAuaXNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgaW5kZXgtLTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHNldCBuZXh0IHZhbGlkIHN0ZXAgYXMgY3VycmVudCBzdGVwXG4gICAgICAgICAgICBzdGVwID0gdGhpcy5nZXROZXh0VmFsaWRTdGVwRm9ybUluZGV4KDApO1xuICAgICAgICAgICAgaWYgKHN0ZXApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldERlZmF1bHRTdGVwKHN0ZXApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWRkTW9yZVRleHQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3RzIHRoZSBhc3NvY2lhdGVkIHN0ZXAgd2hlbiB0aGUgd2l6YXJkIGhlYWRlciBpcyBjbGlja2VkLlxuICAgICAqIEBwYXJhbSAkZXZlbnRcbiAgICAgKiBAcGFyYW0ge1dpemFyZFN0ZXBEaXJlY3RpdmV9IGN1cnJlbnRTdGVwXG4gICAgICovXG4gICAgcHJpdmF0ZSBvbldpemFyZEhlYWRlckNsaWNrKCRldmVudDogRXZlbnQsIGN1cnJlbnRTdGVwOiBXaXphcmRTdGVwRGlyZWN0aXZlKSB7XG4gICAgICAgIC8vIHNlbGVjdCB0aGUgc3RlcCBpZiBpdCdzIHN0YXR1cyBpcyBkb25lXG4gICAgICAgIGlmIChjdXJyZW50U3RlcC5kb25lKSB7XG4gICAgICAgICAgICAvLyBzZXQgYWxsIHRoZSBuZXh0IHN0ZXBzIHN0YXR1cyBhcyBkaXNhYmxlZCBhbmQgcHJldmlvdXMgc3RlcHMgYXMgZG9uZVxuICAgICAgICAgICAgdGhpcy5zdGVwcy5mb3JFYWNoKChzdGVwLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCA8IHRoaXMuZ2V0U3RlcEluZGV4QnlSZWYoY3VycmVudFN0ZXApKSB7XG4gICAgICAgICAgICAgICAgICAgc3RlcC5kb25lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICBzdGVwLmlzRG9uZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3RlcC5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHN0ZXAuaXNEb25lID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBzZXQgdGhlIHNlbGVjdGVkIHN0ZXAgYXMgY3VycmVudCBzdGVwIGFuZCBtYWtlIGl0IGFjdGl2ZVxuICAgICAgICAgICAgdGhpcy5jdXJyZW50U3RlcCA9IGN1cnJlbnRTdGVwO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50U3RlcC5hY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5hZGRNb3JlVGV4dCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWV0aG9kIHRvIG5hdmlnYXRlIHRvIG5leHQgc3RlcFxuICAgIHB1YmxpYyBuZXh0KGV2ZW50TmFtZTogc3RyaW5nID0gJ25leHQnKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTdGVwID0gdGhpcy5jdXJyZW50U3RlcDtcbiAgICAgICAgY29uc3QgY3VycmVudFN0ZXBJbmRleCA9IHRoaXMuZ2V0Q3VycmVudFN0ZXBJbmRleCgpO1xuXG4gICAgICAgIC8vIGFib3J0IGlmIG9uU2tpcCBtZXRob2QgcmV0dXJucyBmYWxzZVxuICAgICAgICBpZiAoZXZlbnROYW1lID09PSAnc2tpcCcpIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50U3RlcC5pbnZva2VTa2lwQ0IoY3VycmVudFN0ZXBJbmRleCkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5leHRlbmROZXh0Rm4oY3VycmVudFN0ZXAsIGN1cnJlbnRTdGVwSW5kZXgpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVudFN0ZXAuaXNWYWxpZCAmJiBldmVudE5hbWUgPT09ICduZXh0Jykge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRTdGVwLmludm9rZU5leHRDQihjdXJyZW50U3RlcEluZGV4KSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmV4dGVuZE5leHRGbihjdXJyZW50U3RlcCwgY3VycmVudFN0ZXBJbmRleCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5lbmFibGVuZXh0ICYmICF0aGlzLmN1cnJlbnRTdGVwLmlzVmFsaWQpe1xuICAgICAgICAgICAgQXJyYXkuZnJvbSgoPGFueT50aGlzKS5jdXJyZW50U3RlcC5nZXRBbGxFbWJlZGRlZEZvcm1zKCkpPy5mb3JFYWNoKChmb3JtOmFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGZvcm0ud2lkZ2V0LmhpZ2hsaWdodEludmFsaWRGaWVsZHMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZXh0ZW5kTmV4dEZuKGN1cnJlbnRTdGVwLCBjdXJyZW50U3RlcEluZGV4KXtcbiAgICAgICAgbGV0IG5leHRTdGVwOiBXaXphcmRTdGVwRGlyZWN0aXZlO1xuICAgICAgICBuZXh0U3RlcCA9IHRoaXMuZ2V0TmV4dFZhbGlkU3RlcEZvcm1JbmRleChjdXJyZW50U3RlcEluZGV4ICsgMSk7XG4gICAgICAgIG5leHRTdGVwLmlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgICAgIC8vIElmIHRoZXJlIGFyZSBhbnkgc3RlcHMgd2hpY2ggaGFzIHNob3cgdGhlbiBvbmx5IGNoYW5nZSBzdGF0ZSBvZiBjdXJyZW50IHN0ZXAgZWxzZSByZW1haW4gc2FtZVxuICAgICAgICBpZiAobmV4dFN0ZXApIHtcbiAgICAgICAgICAgIGN1cnJlbnRTdGVwLmlzRG9uZSA9IHRydWU7XG4gICAgICAgICAgICBjdXJyZW50U3RlcC5kb25lID0gdHJ1ZTtcbiAgICAgICAgICAgIG5leHRTdGVwLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTdGVwID0gbmV4dFN0ZXA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hZGRNb3JlVGV4dCgpO1xuICAgIH1cbiAgICAvLyBNZXRob2QgdG8gbmF2aWdhdGUgdG8gcHJldmlvdXMgc3RlcFxuICAgIHB1YmxpYyBwcmV2KCkge1xuICAgICAgICBjb25zdCBjdXJyZW50U3RlcCA9IHRoaXMuY3VycmVudFN0ZXA7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTdGVwSW5kZXggPSB0aGlzLmdldEN1cnJlbnRTdGVwSW5kZXgoKTtcblxuICAgICAgICBsZXQgcHJldlN0ZXA6IFdpemFyZFN0ZXBEaXJlY3RpdmU7XG5cbiAgICAgICAgLy8gYWJvcnQgaWYgb25QcmV2IG1ldGhvZCByZXR1cm5zIGZhbHNlLlxuICAgICAgICBpZiAoY3VycmVudFN0ZXAuaW52b2tlUHJldkNCKGN1cnJlbnRTdGVwSW5kZXgpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJldlN0ZXAgPSB0aGlzLmdldFByZXZpb3VzVmFsaWRTdGVwRm9ybUluZGV4KGN1cnJlbnRTdGVwSW5kZXggLSAxKTtcblxuICAgICAgICAvLyBJZiB0aGVyZSBhcmUgYW55IHN0ZXBzIHdoaWNoIGhhcyBzaG93IHRoZW4gb25seSBjaGFuZ2Ugc3RhdGUgb2YgY3VycmVudCBzdGVwIGVsc2UgcmVtYWluIHNhbWVcbiAgICAgICAgaWYgKHByZXZTdGVwKSB7XG4gICAgICAgICAgICBjdXJyZW50U3RlcC5pc0RvbmUgPSBmYWxzZTtcbiAgICAgICAgICAgIGN1cnJlbnRTdGVwLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHByZXZTdGVwLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTdGVwID0gcHJldlN0ZXA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hZGRNb3JlVGV4dCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBza2lwKCkge1xuICAgICAgICB0aGlzLm5leHQoJ3NraXAnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ290b1N0ZXAoc3RlcE5hbWU6IHN0cmluZykge1xuICAgICAgICBpZihzdGVwTmFtZSkge1xuICAgICAgICAgICAgY29uc3QgZ290b1N0ZXBJbmRleCA9IHRoaXMuc3RlcHMudG9BcnJheSgpLm1hcChzdGVwID0+IHN0ZXAubmFtZSkuaW5kZXhPZihzdGVwTmFtZSk7XG4gICAgICAgICAgICBpZihnb3RvU3RlcEluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGdvdG9TdGVwOiBXaXphcmRTdGVwRGlyZWN0aXZlID0gdGhpcy5nZXRTdGVwUmVmQnlJbmRleChnb3RvU3RlcEluZGV4KTtcbiAgICAgICAgICAgICAgICBpZihnb3RvU3RlcD8uc2hvdykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uV2l6YXJkSGVhZGVyQ2xpY2soZXZlbnQsIGdvdG9TdGVwKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiVGhlIGdvdG9TdGVwIGZ1bmN0aW9uIGNhbm5vdCBuYXZpZ2F0ZSB0byBoaWRkZW4gc3RlcHNcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBDb3VsZCBub3QgZmluZCBzdGVwICcke3N0ZXBOYW1lfSdgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1ldGhvZCB0byBpbnZva2Ugb24tRG9uZSBldmVudCBvbiB3aXphcmRcbiAgICBwdWJsaWMgZG9uZSgpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50U3RlcC5pc0RvbmUgPSB0cnVlO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2RvbmUnLCB7c3RlcHM6IHRoaXMuc3RlcHMudG9BcnJheSgpfSk7XG4gICAgfVxuICAgIC8vIE1ldGhvZCB0byBpbnZva2Ugb24tQ2FuY2VsIGV2ZW50IG9uIHdpemFyZFxuICAgIHB1YmxpYyBjYW5jZWwgKCkge1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2NhbmNlbCcsIHtzdGVwczogdGhpcy5zdGVwcy50b0FycmF5KCl9KTtcbiAgICB9XG4gICAgcHVibGljIGFkZE1vcmVUZXh0KCl7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuXG5cbiAgICAgICAgdmFyIG5ld1dpbmRvd1dpZHRoID0gJCh3aW5kb3cpLndpZHRoKCk7XG4gICAgICAgIGlmKG5ld1dpbmRvd1dpZHRoIDwgNzY4KXtcbiAgICAgICAgJChcIi5hcHAtd2l6YXJkLXN0ZXAuY3VycmVudCAuc3VidGl0bGUtd3JhcHBlciAuc3RlcC10aXRsZVwiKS5jc3Moe1wiaGVpZ2h0XCI6XCJhdXRvXCIsXCJkaXNwbGF5XCI6XCJibG9ja1wifSk7XG4gICAgICAgIHZhciBzdWJ0aXRsZVRleHRMZW5ndGggPSAkKFwiLmFwcC13aXphcmQtc3RlcC5jdXJyZW50IC5zdWJ0aXRsZS13cmFwcGVyIC5zdGVwLXRpdGxlXCIpLmhlaWdodCgpO1xuICAgICAgICAkKFwiLnJlYWRfbW9yZVwiKS5jc3MoXCJkaXNwbGF5XCIsXCJub25lXCIpO1xuICAgICAgICAkKFwiLmN1cnJlbnQgLnN1YnRpdGxlLXdyYXBwZXJcIikucmVtb3ZlQ2xhc3MoXCJyZWFkbW9yZV9zdWJ0aXRsZVwiKTtcblxuICAgICAgICBpZihzdWJ0aXRsZVRleHRMZW5ndGg+NDQpe1xuICAgICAgICAgICAgJChcIi5hcHAtd2l6YXJkLXN0ZXAuY3VycmVudCAuc3VidGl0bGUtd3JhcHBlciAuc3RlcC10aXRsZVwiKS5jc3Moe1wiaGVpZ2h0XCI6XCI0NHB4XCIsXCJkaXNwbGF5XCI6XCItd2Via2l0LWJveFwifSk7XG4gICAgICAgICAgICAkKFwiLmN1cnJlbnQgLnJlYWRfbW9yZVwiKS5jc3MoXCJkaXNwbGF5XCIsXCJibG9ja1wiKTtcbiAgICAgICAgICAgICQoXCIuYWN0aXZlIC5yZWFkX21vcmVcIikuY3NzKFwiZGlzcGxheVwiLFwibm9uZVwiKTtcbiAgICAgICAgICAgICQoXCIuZGlzYWJsZSAucmVhZF9tb3JlXCIpLmNzcyhcImRpc3BsYXlcIixcIm5vbmVcIik7XG4gICAgICAgICAgICAkKFwiLmFwcC13aXphcmQtc3RlcD5hXCIpLmNzcyhcImhlaWdodFwiLFwiMTAwcHhcIilcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgfVxuICAgIHB1YmxpYyByZWFkTW9yZVN1YnRpdGxlKCl7XG4gICAgICAgICQoXCIuY3VycmVudCAuc3VidGl0bGUtd3JhcHBlclwiKS5hZGRDbGFzcyhcInJlYWRtb3JlX3N1YnRpdGxlXCIpO1xuICAgICAgICAkKFwiLmN1cnJlbnQgLnJlYWRfbW9yZVwiKS5jc3MoXCJkaXNwbGF5XCIsXCJub25lXCIpO1xuICAgICAgICAkKGRvY3VtZW50KS5vbihcIm1vdXNldXBcIixmdW5jdGlvbihlOmFueSlcbiAgICAgICAge1xuICAgICAgICAgICAgdmFyIGNvbnRhaW5lciA9ICQoXCIuc3VidGl0bGUtd3JhcHBlclwiKTtcbiAgICAgICAgICAgIC8vIGlmIHRoZSB0YXJnZXQgb2YgdGhlIGNsaWNrIGlzbid0IHRoZSBjb250YWluZXIgbm9yIGEgZGVzY2VuZGFudCBvZiB0aGUgY29udGFpbmVyXG4gICAgICAgICAgICBpZiAoIWNvbnRhaW5lci5pcyhlLnRhcmdldCkgJiYgY29udGFpbmVyLmhhcyhlLnRhcmdldCkubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICQoXCIuY3VycmVudCAuc3VidGl0bGUtd3JhcHBlclwiKS5yZW1vdmVDbGFzcyhcInJlYWRtb3JlX3N1YnRpdGxlXCIpO1xuICAgICAgICAgICAgICAgICQoXCIuY3VycmVudCAucmVhZF9tb3JlXCIpLmNzcyhcImRpc3BsYXlcIixcImJsb2NrXCIpO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9mZihcIm1vdXNldXBcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGaXJzdFN0ZXAoc3RlcFJlZjogV2l6YXJkU3RlcERpcmVjdGl2ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGVwcy5maXJzdCA9PT0gc3RlcFJlZjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTGFzdFN0ZXAoc3RlcFJlZjogV2l6YXJkU3RlcERpcmVjdGl2ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGVwcy5sYXN0ID09PSBzdGVwUmVmO1xuICAgIH1cblxuICAgIC8vIERlZmluZSB0aGUgcHJvcGVydHkgY2hhbmdlIGhhbmRsZXIuIFRoaXMgTWV0aG9kIHdpbGwgYmUgdHJpZ2dlcmVkIHdoZW4gdGhlcmUgaXMgYSBjaGFuZ2UgaW4gdGhlIHdpZGdldCBwcm9wZXJ0eVxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG4gICAgICAgIC8vIE1vbml0b3JpbmcgY2hhbmdlcyBmb3IgcHJvcGVydGllcyBhbmQgYWNjb3JkaW5nbHkgaGFuZGxpbmcgcmVzcGVjdGl2ZSBjaGFuZ2VzXG5cbiAgICAgICAgaWYgKGtleSA9PT0gJ3N0ZXBzdHlsZScpIHtcbiAgICAgICAgICAgIHRoaXMuc3RlcENsYXNzID0gIG52ID09PSAnanVzdGlmaWVkJyA/ICduYXYtanVzdGlmaWVkJyA6ICcnO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2RlZmF1bHRzdGVwJykge1xuICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0U3RlcCh0aGlzLmdldFN0ZXBSZWZCeU5hbWUobnYpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICBzdXBlci5uZ0FmdGVyQ29udGVudEluaXQoKTtcbiAgICAgICAgdGhpcy5wcm9taXNlUmVzb2x2ZXJGbigpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIHN0eWxlcihcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcucGFuZWwtYm9keScpIGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICAgIEFQUExZX1NUWUxFU19UWVBFLklOTkVSX1NIRUxMXG4gICAgICAgICk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyBpZigkKHdpbmRvdykud2lkdGgoKTw3Njgpe1xuICAgICAgICAgICAgJChcIi5hcHAtd2l6YXJkXCIpLnJlbW92ZUNsYXNzKFwidmVydGljYWxcIik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImFwcC13aXphcmQtaGVhZGluZ1wiIHJvbGU9XCJ0YWJcIj5cbiAgICA8dWwgY2xhc3M9XCJhcHAtd2l6YXJkLXN0ZXBzIG5hdiBuYXYtcGlsbHMge3tzdGVwQ2xhc3N9fVwiPlxuICAgICAgICA8bGkgY2xhc3M9XCJhcHAtd2l6YXJkLXN0ZXBcIiAqbmdGb3I9XCJsZXQgc3RlcCBvZiBzdGVwczsgbGV0IGkgPSBpbmRleFwiIFtoaWRkZW5dPVwiIXN0ZXAuc2hvd1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7YWN0aXZlOiBzdGVwLmRvbmUsIGN1cnJlbnQ6IHN0ZXAuYWN0aXZlLCBkaXNhYmxlZDogc3RlcC5kaXNhYmxlZH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uV2l6YXJkSGVhZGVyQ2xpY2soJGV2ZW50LCBzdGVwKVwiPlxuICAgICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIFthdHRyLmFyaWEtbGFiZWxdPVwic3RlcC50aXRsZVwiIFthdHRyLnRpdGxlXT1cInN0ZXAudGl0bGVcIiBbbmdDbGFzc109XCJ7J3RpdGxlLWNlbnRlci1hbGlnbic6Y2xhc3MgJiYgY2xhc3MuaW5jbHVkZXMoJ2NsYXNzaWMnKSAmJiAhc3RlcC5zdWJ0aXRsZX1cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFycm93XCIgKm5nSWY9XCJjbGFzcyAmJiBjbGFzcy5pbmNsdWRlcygnY2xhc3NpYycpXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2l6YXJkLXN0ZXAtbnVtYmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRcIiAqbmdJZj1cImNsYXNzICYmIGNsYXNzLmluY2x1ZGVzKCdudW1iZXInKSAmJiAhc3RlcC5pc0RvbmVcIj57e2krMX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImRvdHRlZHN0ZXBwZXJcIiAqbmdJZj1cImNsYXNzICYmIChjbGFzcy5pbmNsdWRlcygnZG90dGVkc3RlcHBlcicpIHx8IGNsYXNzLmluY2x1ZGVzKCd0ZXh0LWlubGluZScpICYmICFjbGFzcy5pbmNsdWRlcygnaWNvbnN0ZXBwZXInKSkgJiYgIXN0ZXAuaXNEb25lXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImFwcC1pY29uIHdpIHdpLWRvbmVcIiAqbmdJZj1cImNsYXNzICYmIChjbGFzcy5pbmNsdWRlcygnZG90dGVkc3RlcHBlcicpIHx8IGNsYXNzLmluY2x1ZGVzKCdudW1iZXInKSkgJiYgc3RlcC5pc0RvbmVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYXBwLWljb24ge3tzdGVwLmljb25jbGFzc319XCIgKm5nSWY9XCIoY2xhc3MgJiYgY2xhc3MuaW5jbHVkZXMoJ2ljb25zdGVwcGVyJykpICYmICgoc3RlcC5pY29uY2xhc3MgJiYgIXN0ZXAuaXNEb25lKSB8fCAoc3RlcC5pY29uY2xhc3MgJiYgc3RlcC5pc0RvbmUgJiYgc3RlcC5kb25laWNvbmNsYXNzID09PScnKSlcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYXBwLWljb24ge3tzdGVwLmRvbmVpY29uY2xhc3N9fVwiICpuZ0lmPVwic3RlcC5kb25laWNvbmNsYXNzICYmIHN0ZXAuaXNEb25lICYmIChjbGFzcyAmJiBjbGFzcy5pbmNsdWRlcygnaWNvbnN0ZXBwZXInKSlcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGUtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNsYXNzICYmIGNsYXNzLmluY2x1ZGVzKCd0ZXh0LWlubGluZScpXCI+e3snMCcgKyAoaSsxKX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0ZXAtdGl0bGVcIiBbdGV4dENvbnRlbnRdPVwic3RlcC50aXRsZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWJ0aXRsZS13cmFwcGVyXCIgW2F0dHIudGl0bGVdPVwic3RlcC5zdWJ0aXRsZVwiICpuZ0lmPVwic3RlcC5zdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0ZXAtdGl0bGVcIiBbdGV4dENvbnRlbnRdPVwic3RlcC5zdWJ0aXRsZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJyZWFkX21vcmVcIiAoY2xpY2spPVwicmVhZE1vcmVTdWJ0aXRsZSgpXCIgc3R5bGU9XCJkaXNwbGF5Om5vbmVcIj5tb3JlPC9hPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT4gICAgXG4gICAgICAgIDwvbGk+XG4gICAgPC91bD5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImFwcC13aXphcmQtYm9keSBwYW5lbC1ib2R5XCIgcm9sZT1cInRhYnBhbmVsXCI+XG4gICAgPHAgd21NZXNzYWdlICpuZ0lmPVwibWVzc2FnZS5jYXB0aW9uXCIgY2FwdGlvbi5iaW5kPVwibWVzc2FnZS5jYXB0aW9uXCIgdHlwZS5iaW5kPVwibWVzc2FnZS50eXBlXCI+PC9wPlxuICAgIDxuZy1jb250ZW50IG5nUHJvamVjdEFzPVwiZm9ybVt3bVdpemFyZFN0ZXBdXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiYXBwLXdpemFyZC1hY3Rpb25zIHBhbmVsLWZvb3RlciB7e2FjdGlvbnNhbGlnbm1lbnR9fVwiPlxuICAgIDxhIGNsYXNzPVwiYXBwLXdpemFyZC1za2lwXCIgbmFtZT1cInNraXBTdGVwX3t7bmFtZX19XCIgKm5nSWY9XCJjdXJyZW50U3RlcD8uZW5hYmxlc2tpcFwiIHRpdGxlPVwiU2tpcCBzdGVwXCIgKGNsaWNrKT1cInNraXAoKVwiPlNraXAgJnJhcXVvOzwvYT5cbiAgICA8ZGl2IGNsYXNzPVwiYXBwLXdpemFyZC1hY3Rpb25zLXJpZ2h0XCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG5hbWU9XCJjYW5jZWxCdG5fe3tuYW1lfX1cIiBjbGFzcz1cImJ0biBhcHAtYnV0dG9uIGJ0bi1kZWZhdWx0XCIgKm5nSWY9XCJjYW5jZWxhYmxlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsKClcIiBbdGl0bGVdPVwiY2FuY2VsYnRubGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiY2FuY2VsYnRubGFiZWxcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbmFtZT1cInByZXZpb3VzQnRuX3t7bmFtZX19XCIgY2xhc3M9XCJidG4gYXBwLWJ1dHRvbiBidG4tZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNQcmV2U3RlcFwiIChjbGljayk9XCJwcmV2KClcIiBbZGlzYWJsZWRdPVwiIWVuYWJsZVByZXZcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiYXBwLWljb24gd2kgd2ktY2hldnJvbi1sZWZ0XCI+PC9pPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJidG4tY2FwdGlvblwiIFt0ZXh0Q29udGVudF09XCJwcmV2aW91c2J0bmxhYmVsXCI+PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbmFtZT1cIm5leHRCdG5fe3tuYW1lfX1cIiBjbGFzcz1cImJ0biBhcHAtYnV0dG9uIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImhhc05leHRTdGVwXCIgKGNsaWNrKT1cIm5leHQoKVwiIFtkaXNhYmxlZF09XCIhZW5hYmxlTmV4dFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJidG4tY2FwdGlvblwiIFt0ZXh0Q29udGVudF09XCJuZXh0YnRubGFiZWxcIj48L3NwYW4+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImFwcC1pY29uIHdpIHdpLWNoZXZyb24tcmlnaHRcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBuYW1lPVwiZG9uZUJ0bl97e25hbWV9fVwiIGNsYXNzPVwiYnRuIGFwcC1idXR0b24gYnRuLXN1Y2Nlc3NcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd0RvbmVCdG5cIiAoY2xpY2spPVwiZG9uZSgpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVuYWJsZURvbmVcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiYXBwLWljb24gd20tc2wtbCBzbC1jaGVja1wiPjwvaT5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnRuLWNhcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiZG9uZWJ0bmxhYmVsXCI+PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -549,6 +549,23 @@ class WizardComponent extends StylableComponent {
549
549
  skip() {
550
550
  this.next('skip');
551
551
  }
552
+ gotoStep(stepName) {
553
+ if (stepName) {
554
+ const gotoStepIndex = this.steps.toArray().map(step => step.name).indexOf(stepName);
555
+ if (gotoStepIndex !== -1) {
556
+ const gotoStep = this.getStepRefByIndex(gotoStepIndex);
557
+ if (gotoStep?.show) {
558
+ this.onWizardHeaderClick(event, gotoStep);
559
+ }
560
+ else {
561
+ console.error("The gotoStep function cannot navigate to hidden steps");
562
+ }
563
+ }
564
+ else {
565
+ console.error(`Could not find step '${stepName}'`);
566
+ }
567
+ }
568
+ }
552
569
  // Method to invoke on-Done event on wizard
553
570
  done() {
554
571
  this.currentStep.isDone = true;
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/containers/wizard/src/wizard.props.ts","../../../../../projects/components/widgets/containers/wizard/src/wizard-step/wizard-step.props.ts","../../../../../projects/components/widgets/containers/wizard/src/wizard-step/wizard-step.directive.ts","../../../../../projects/components/widgets/containers/wizard/src/wizard.component.html","../../../../../projects/components/widgets/containers/wizard/src/wizard.component.ts","../../../../../projects/components/widgets/containers/wizard/src/wizard.module.ts","../../../../../projects/components/widgets/containers/wizard/src/index.ts"],"sourcesContent":["import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-wizard',\n new Map(\n [\n ['actionsalignment', {value: 'right', ...PROP_STRING}],\n ['cancelable', {value: true, ...PROP_BOOLEAN}],\n ['enablenext', {value: false, ...PROP_BOOLEAN}],\n ['cancelbtnlabel', {value: 'Cancel', ...PROP_STRING}],\n ['class', {value: 'classic', ...PROP_STRING}],\n ['defaultstep', {value: 'none', ...PROP_STRING}],\n ['donebtnlabel', {value: 'Done', ...PROP_STRING}],\n ['name', PROP_STRING],\n ['nextbtnlabel', {value: 'Next', ...PROP_STRING}],\n ['previousbtnlabel', {value: 'Previous', ...PROP_STRING}],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['stepstyle', {value: 'auto', ...PROP_STRING}]\n ]\n )\n );\n};\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-wizardstep',\n new Map(\n [\n ['class', PROP_STRING],\n ['enableskip', {value: false, ...PROP_BOOLEAN}],\n ['iconclass', {value: 'wi wi-person', ...PROP_STRING}],\n ['doneiconclass', {value: 'wi wi-done', ...PROP_STRING}],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['title', {value: 'Step Title', ...PROP_STRING}],\n ['subtitle', PROP_STRING]\n ]\n )\n );\n};\n","import {ContentChildren, Directive, HostBinding, Inject, Injector, Optional, Self} from '@angular/core';\nimport { NgForm } from '@angular/forms';\n\nimport { BaseComponent, IWidgetConfig, provideAsWidgetRef, RedrawableDirective } from '@wm/components/base';\nimport { WizardComponent } from '../wizard.component';\n\nimport { registerProps } from './wizard-step.props';\n\nconst DEFAULT_CLS = 'app-wizard-step-content';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-wizardstep',\n hostClass: DEFAULT_CLS,\n};\n\nconst enum STEP_STATUS {\n CURRENT = 1,\n DISABLED,\n COMPLETED\n}\n\n@Directive({\n selector: 'form[wmWizardStep]',\n providers: [\n provideAsWidgetRef(WizardStepDirective),\n NgForm\n ],\n exportAs: 'wmWizardStep'\n})\nexport class WizardStepDirective extends BaseComponent {\n static initializeProps = registerProps();\n\n public show: boolean;\n public name: string;\n public enableskip: any;\n public disablenext: boolean;\n public disabledone: boolean;\n public disableprevious: boolean;\n public isInitialized: boolean;\n isDone: boolean = false ;\n\n private status: STEP_STATUS = STEP_STATUS.DISABLED;\n private wizardComponent: WizardComponent;\n\n // reference to the components which needs a redraw(eg, grid, chart) when the height of this component changes\n @ContentChildren(RedrawableDirective, {descendants: true}) reDrawableComponents;\n\n @HostBinding('class.current')\n get isCurrent() {\n return this.active;\n }\n\n /**\n * along with the wizard form , also validate the forms\n * if there are any inside the wizard\n * @returns {boolean}\n */\n public get isValid() {\n return (this.ngForm.valid || this.ngForm.disabled) && this.areEmbeddedFormsValid();\n }\n\n /**\n * get all the forms inside the wizard if any and validate\n * @returns {boolean}\n */\n private areEmbeddedFormsValid() {\n let embeddedForms = this.getAllEmbeddedForms();\n for (let form of embeddedForms) {\n if (form.widget && !form.widget.ngform.valid) {\n return false;\n }\n }\n return true;\n }\n\n private getAllEmbeddedForms() {\n return this.$element.find('form');\n }\n\n public get enableNext() {\n return !this.disablenext;\n }\n\n public get enableDone() {\n return !this.disabledone;\n }\n\n public get enablePrev() {\n return !this.disableprevious;\n }\n\n public set active(nv: boolean) {\n const isActive = this.active;\n this.status = STEP_STATUS.CURRENT;\n if (nv && !isActive) {\n this.redrawChildren();\n }\n }\n\n public get active(): boolean {\n return this.status === STEP_STATUS.CURRENT;\n }\n\n public set done(nv: boolean) {\n if (nv) {\n this.status = STEP_STATUS.COMPLETED;\n }\n }\n\n public get done(): boolean {\n return this.status === STEP_STATUS.COMPLETED;\n }\n\n public set disabled(nv: boolean) {\n if (nv) {\n this.status = STEP_STATUS.DISABLED;\n }\n }\n\n public get disabled(): boolean {\n return this.status === STEP_STATUS.DISABLED;\n }\n\n constructor(inj: Injector, @Self() private ngForm: NgForm, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n // If we inject directly as a param in the constructor, getting circular dependency error in unit testcases\n this.wizardComponent = this.inj.get(WizardComponent);\n }\n\n public invokeNextCB(index: number): boolean {\n return this.invokeEventCallback('next', {currentStep: this, stepIndex: index});\n }\n\n public invokePrevCB(index: number): boolean {\n return this.invokeEventCallback('prev', {currentStep: this, stepIndex: index});\n }\n\n public invokeSkipCB(index: number): boolean {\n return this.invokeEventCallback('skip', {currentStep: this, stepIndex: index});\n }\n\n // redraw all the projected components which are projected.\n private redrawChildren() {\n setTimeout(() => {\n if (this.reDrawableComponents) {\n this.reDrawableComponents.forEach(c => c.redraw());\n }\n const stepIndex = (this as any).wizardComponent.getCurrentStepIndex();\n this.invokeEventCallback('load', { stepIndex });\n }, 100);\n }\n}\n","<div class=\"app-wizard-heading\" role=\"tab\">\n <ul class=\"app-wizard-steps nav nav-pills {{stepClass}}\">\n <li class=\"app-wizard-step\" *ngFor=\"let step of steps; let i = index\" [hidden]=\"!step.show\"\n [ngClass]=\"{active: step.done, current: step.active, disabled: step.disabled}\"\n (click)=\"onWizardHeaderClick($event, step)\">\n <a href=\"javascript:void(0)\" [attr.aria-label]=\"step.title\" [attr.title]=\"step.title\" [ngClass]=\"{'title-center-align':class && class.includes('classic') && !step.subtitle}\">\n <span class=\"arrow\" *ngIf=\"class && class.includes('classic')\"></span>\n <span class=\"wizard-step-number\">\n <span class=\"count\" *ngIf=\"class && class.includes('number') && !step.isDone\">{{i+1}}</span>\n <i class=\"dottedstepper\" *ngIf=\"class && (class.includes('dottedstepper') || class.includes('text-inline') && !class.includes('iconstepper')) && !step.isDone\"></i>\n <i class=\"app-icon wi wi-done\" *ngIf=\"class && (class.includes('dottedstepper') || class.includes('number')) && step.isDone\"></i>\n <i class=\"app-icon {{step.iconclass}}\" *ngIf=\"(class && class.includes('iconstepper')) && ((step.iconclass && !step.isDone) || (step.iconclass && step.isDone && step.doneiconclass ===''))\"></i>\n <i class=\"app-icon {{step.doneiconclass}}\" *ngIf=\"step.doneiconclass && step.isDone && (class && class.includes('iconstepper'))\"></i>\n </span>\n <span class=\"title-wrapper\">\n <span *ngIf=\"class && class.includes('text-inline')\">{{'0' + (i+1)}}</span>\n <span class=\"step-title\" [textContent]=\"step.title\"></span>\n </span>\n <span class=\"subtitle-wrapper\" [attr.title]=\"step.subtitle\" *ngIf=\"step.subtitle\">\n <span class=\"step-title\" [textContent]=\"step.subtitle\"></span>\n <a class=\"read_more\" (click)=\"readMoreSubtitle()\" style=\"display:none\">more</a>\n </span>\n </a> \n </li>\n </ul>\n</div>\n<div class=\"app-wizard-body panel-body\" role=\"tabpanel\">\n <p wmMessage *ngIf=\"message.caption\" caption.bind=\"message.caption\" type.bind=\"message.type\"></p>\n <ng-content ngProjectAs=\"form[wmWizardStep]\"></ng-content>\n</div>\n<div class=\"app-wizard-actions panel-footer {{actionsalignment}}\">\n <a class=\"app-wizard-skip\" name=\"skipStep_{{name}}\" *ngIf=\"currentStep?.enableskip\" title=\"Skip step\" (click)=\"skip()\">Skip &raquo;</a>\n <div class=\"app-wizard-actions-right\">\n <button type=\"button\" name=\"cancelBtn_{{name}}\" class=\"btn app-button btn-default\" *ngIf=\"cancelable\"\n (click)=\"cancel()\" [title]=\"cancelbtnlabel\" [textContent]=\"cancelbtnlabel\"></button>\n <button type=\"button\" name=\"previousBtn_{{name}}\" class=\"btn app-button btn-default\"\n *ngIf=\"hasPrevStep\" (click)=\"prev()\" [disabled]=\"!enablePrev\">\n <i class=\"app-icon wi wi-chevron-left\"></i>\n <span class=\"btn-caption\" [textContent]=\"previousbtnlabel\"></span>\n </button>\n <button type=\"button\" name=\"nextBtn_{{name}}\" class=\"btn app-button btn-primary\"\n *ngIf=\"hasNextStep\" (click)=\"next()\" [disabled]=\"!enableNext\">\n <span class=\"btn-caption\" [textContent]=\"nextbtnlabel\"></span>\n <i class=\"app-icon wi wi-chevron-right\"></i>\n </button>\n <button type=\"button\" name=\"doneBtn_{{name}}\" class=\"btn app-button btn-success\"\n *ngIf=\"showDoneBtn\" (click)=\"done()\"\n [disabled]=\"!enableDone\">\n <i class=\"app-icon wm-sl-l sl-check\"></i>\n <span class=\"btn-caption\" [textContent]=\"donebtnlabel\"></span>\n </button>\n </div>\n</div>\n","import {\n AfterContentInit,\n AfterViewInit,\n Component,\n ContentChildren,\n Inject,\n Injector,\n OnInit,\n Optional,\n QueryList\n} from '@angular/core';\n\nimport {noop} from '@wm/core';\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, styler, StylableComponent } from '@wm/components/base';\n\nimport { registerProps } from './wizard.props';\nimport { WizardStepDirective } from './wizard-step/wizard-step.directive';\n\nconst DEFAULT_CLS = 'app-wizard panel clearfix';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-wizard',\n hostClass: DEFAULT_CLS\n};\n\n@Component({\n selector: 'div[wmWizard]',\n templateUrl: './wizard.component.html',\n providers: [\n provideAsWidgetRef(WizardComponent)\n ]\n})\nexport class WizardComponent extends StylableComponent implements OnInit, AfterContentInit, AfterViewInit {\n static initializeProps = registerProps();\n\n @ContentChildren(WizardStepDirective) steps: QueryList<WizardStepDirective>;\n\n public message: {caption: string, type: string};\n public currentStep: WizardStepDirective;\n\n public stepClass: string;\n public class;\n private readonly promiseResolverFn: Function;\n public actionsalignment: any;\n public cancelable: any;\n public enablenext: any;\n\n get hasPrevStep(): boolean {\n return !this.isFirstStep(this.currentStep);\n }\n\n get hasNextStep(): boolean {\n return !this.isLastStep(this.currentStep);\n }\n\n get showDoneBtn(): boolean {\n if (!this.currentStep) {\n return;\n }\n return !this.hasNextStep && this.currentStep.enableDone;\n }\n\n get enablePrev(): boolean {\n if (!this.currentStep) {\n return;\n }\n return this.currentStep.enablePrev;\n }\n\n get enableNext(): boolean {\n if (!this.currentStep) {\n return;\n }\n return this.enablenext ? true : (this.currentStep.enableNext && this.currentStep.isValid);\n }\n\n get enableDone(): boolean {\n if (!this.currentStep) {\n return;\n }\n return this.currentStep.enableDone && this.currentStep.isValid;\n }\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n let resolveFn: Function = noop;\n\n super(inj, WIDGET_CONFIG, explicitContext, new Promise(res => resolveFn = res));\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.SHELL);\n\n this.promiseResolverFn = resolveFn;\n\n // initialize the message object with default values\n this.message = {\n caption: '',\n type: ''\n };\n }\n\n /**\n * returns next valid step. the index passed is also checked if its valid step\n * @param index\n * @returns {WizardStepDirective}\n */\n private getNextValidStepFormIndex(index: number): WizardStepDirective {\n for (let i = index; i < this.steps.length; i++) {\n const step = this.getStepRefByIndex(i);\n if (step.show) {\n return step;\n }\n }\n }\n\n /**\n * returns previous valid step. the index passed is also checked if its valid step\n * @param index\n * @returns {WizardStepDirective}\n */\n private getPreviousValidStepFormIndex(index: number): WizardStepDirective {\n for (let i = index; i >= 0; i--) {\n const step = this.getStepRefByIndex(i);\n if (step.show) {\n return step;\n }\n }\n }\n\n /**\n * returns current step index value.\n * @returns {number}\n */\n private getCurrentStepIndex(): number {\n return this.getStepIndexByRef(this.currentStep);\n }\n\n /**\n * returns stepRef when index is passed.\n * @param {number} index\n * @returns {WizardStepDirective}\n */\n private getStepRefByIndex(index: number): WizardStepDirective {\n return this.steps.toArray()[index];\n }\n\n /**\n * returns the index value of the step.\n * @param {WizardStepDirective} wizardStep\n * @returns {number}\n */\n private getStepIndexByRef(wizardStep: WizardStepDirective): number {\n return this.steps.toArray().indexOf(wizardStep);\n }\n\n /**\n * gets stepRef by searching on the name property.\n * @param {string} name\n * @returns {WizardStepDirective}\n */\n private getStepRefByName(name: string): WizardStepDirective {\n return this.steps.find(step => step.name === name);\n }\n\n /**\n * sets default step as current step if configured\n * or finds first valid step and set it as current step.\n * @param {WizardStepDirective} step\n */\n private setDefaultStep(step: WizardStepDirective) {\n // If the default step has show true then only update the currentStep\n if (step && step.show) {\n this.currentStep = step;\n step.active = true;\n step.isInitialized = true;\n // Mark all previous step status COMPLETED\n let index = this.getStepIndexByRef(step) - 1;\n while (index >= 0) {\n const prevStep = this.getStepRefByIndex(index);\n prevStep.done = true;\n prevStep.isInitialized = true;\n index--;\n }\n } else {\n // set next valid step as current step\n step = this.getNextValidStepFormIndex(0);\n if (step) {\n this.setDefaultStep(step);\n }\n }\n this.addMoreText();\n }\n\n /**\n * Selects the associated step when the wizard header is clicked.\n * @param $event\n * @param {WizardStepDirective} currentStep\n */\n private onWizardHeaderClick($event: Event, currentStep: WizardStepDirective) {\n // select the step if it's status is done\n if (currentStep.done) {\n // set all the next steps status as disabled and previous steps as done\n this.steps.forEach((step, index) => {\n if (index < this.getStepIndexByRef(currentStep)) {\n step.done = true;\n step.isDone = true;\n } else {\n step.disabled = true;\n step.isDone = false;\n }\n });\n // set the selected step as current step and make it active\n this.currentStep = currentStep;\n this.currentStep.active = true;\n this.addMoreText();\n }\n }\n\n // Method to navigate to next step\n public next(eventName: string = 'next') {\n const currentStep = this.currentStep;\n const currentStepIndex = this.getCurrentStepIndex();\n\n // abort if onSkip method returns false\n if (eventName === 'skip') {\n if (currentStep.invokeSkipCB(currentStepIndex) === false) {\n return;\n }\n this.extendNextFn(currentStep, currentStepIndex);\n } else if (this.currentStep.isValid && eventName === 'next') {\n if (currentStep.invokeNextCB(currentStepIndex) === false) {\n return;\n }\n this.extendNextFn(currentStep, currentStepIndex);\n } else if (this.enablenext && !this.currentStep.isValid){\n Array.from((<any>this).currentStep.getAllEmbeddedForms())?.forEach((form:any) => {\n form.widget.highlightInvalidFields();\n });\n }\n }\n\n extendNextFn(currentStep, currentStepIndex){\n let nextStep: WizardStepDirective;\n nextStep = this.getNextValidStepFormIndex(currentStepIndex + 1);\n nextStep.isInitialized = true;\n\n // If there are any steps which has show then only change state of current step else remain same\n if (nextStep) {\n currentStep.isDone = true;\n currentStep.done = true;\n nextStep.active = true;\n this.currentStep = nextStep;\n }\n this.addMoreText();\n }\n // Method to navigate to previous step\n public prev() {\n const currentStep = this.currentStep;\n const currentStepIndex = this.getCurrentStepIndex();\n\n let prevStep: WizardStepDirective;\n\n // abort if onPrev method returns false.\n if (currentStep.invokePrevCB(currentStepIndex) === false) {\n return;\n }\n\n prevStep = this.getPreviousValidStepFormIndex(currentStepIndex - 1);\n\n // If there are any steps which has show then only change state of current step else remain same\n if (prevStep) {\n currentStep.isDone = false;\n currentStep.disabled = true;\n prevStep.active = true;\n this.currentStep = prevStep;\n }\n this.addMoreText();\n }\n\n public skip() {\n this.next('skip');\n }\n\n // Method to invoke on-Done event on wizard\n public done() {\n this.currentStep.isDone = true;\n this.invokeEventCallback('done', {steps: this.steps.toArray()});\n }\n // Method to invoke on-Cancel event on wizard\n public cancel () {\n this.invokeEventCallback('cancel', {steps: this.steps.toArray()});\n }\n public addMoreText(){\n setTimeout(() => {\n\n\n var newWindowWidth = $(window).width();\n if(newWindowWidth < 768){\n $(\".app-wizard-step.current .subtitle-wrapper .step-title\").css({\"height\":\"auto\",\"display\":\"block\"});\n var subtitleTextLength = $(\".app-wizard-step.current .subtitle-wrapper .step-title\").height();\n $(\".read_more\").css(\"display\",\"none\");\n $(\".current .subtitle-wrapper\").removeClass(\"readmore_subtitle\");\n\n if(subtitleTextLength>44){\n $(\".app-wizard-step.current .subtitle-wrapper .step-title\").css({\"height\":\"44px\",\"display\":\"-webkit-box\"});\n $(\".current .read_more\").css(\"display\",\"block\");\n $(\".active .read_more\").css(\"display\",\"none\");\n $(\".disable .read_more\").css(\"display\",\"none\");\n $(\".app-wizard-step>a\").css(\"height\",\"100px\")\n }\n }\n });\n\n }\n public readMoreSubtitle(){\n $(\".current .subtitle-wrapper\").addClass(\"readmore_subtitle\");\n $(\".current .read_more\").css(\"display\",\"none\");\n $(document).on(\"mouseup\",function(e:any)\n {\n var container = $(\".subtitle-wrapper\");\n // if the target of the click isn't the container nor a descendant of the container\n if (!container.is(e.target) && container.has(e.target).length === 0)\n {\n $(\".current .subtitle-wrapper\").removeClass(\"readmore_subtitle\");\n $(\".current .read_more\").css(\"display\",\"block\");\n $(document).off(\"mouseup\");\n }\n });\n }\n\n private isFirstStep(stepRef: WizardStepDirective) {\n return this.steps.first === stepRef;\n }\n\n private isLastStep(stepRef: WizardStepDirective) {\n return this.steps.last === stepRef;\n }\n\n // Define the property change handler. This Method will be triggered when there is a change in the widget property\n onPropertyChange(key: string, nv: any, ov?: any) {\n // Monitoring changes for properties and accordingly handling respective changes\n\n if (key === 'stepstyle') {\n this.stepClass = nv === 'justified' ? 'nav-justified' : '';\n } else if (key === 'defaultstep') {\n this.setDefaultStep(this.getStepRefByName(nv));\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n this.promiseResolverFn();\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(\n this.nativeElement.querySelector('.panel-body') as HTMLElement,\n this,\n APPLY_STYLES_TYPE.INNER_SHELL\n );\n setTimeout(() => { if($(window).width()<768){\n $(\".app-wizard\").removeClass(\"vertical\");\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { WizardComponent } from './wizard.component';\nimport { WizardStepDirective} from './wizard-step/wizard-step.directive';\n\nconst components = [\n WizardStepDirective,\n WizardComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n WmComponentsModule,\n FormsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class WizardModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","DEFAULT_CLS","WIDGET_CONFIG"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/containers/wizard/src/wizard.props.ts","../../../../../projects/components/widgets/containers/wizard/src/wizard-step/wizard-step.props.ts","../../../../../projects/components/widgets/containers/wizard/src/wizard-step/wizard-step.directive.ts","../../../../../projects/components/widgets/containers/wizard/src/wizard.component.html","../../../../../projects/components/widgets/containers/wizard/src/wizard.component.ts","../../../../../projects/components/widgets/containers/wizard/src/wizard.module.ts","../../../../../projects/components/widgets/containers/wizard/src/index.ts"],"sourcesContent":["import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-wizard',\n new Map(\n [\n ['actionsalignment', {value: 'right', ...PROP_STRING}],\n ['cancelable', {value: true, ...PROP_BOOLEAN}],\n ['enablenext', {value: false, ...PROP_BOOLEAN}],\n ['cancelbtnlabel', {value: 'Cancel', ...PROP_STRING}],\n ['class', {value: 'classic', ...PROP_STRING}],\n ['defaultstep', {value: 'none', ...PROP_STRING}],\n ['donebtnlabel', {value: 'Done', ...PROP_STRING}],\n ['name', PROP_STRING],\n ['nextbtnlabel', {value: 'Next', ...PROP_STRING}],\n ['previousbtnlabel', {value: 'Previous', ...PROP_STRING}],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['stepstyle', {value: 'auto', ...PROP_STRING}]\n ]\n )\n );\n};\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-wizardstep',\n new Map(\n [\n ['class', PROP_STRING],\n ['enableskip', {value: false, ...PROP_BOOLEAN}],\n ['iconclass', {value: 'wi wi-person', ...PROP_STRING}],\n ['doneiconclass', {value: 'wi wi-done', ...PROP_STRING}],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['title', {value: 'Step Title', ...PROP_STRING}],\n ['subtitle', PROP_STRING]\n ]\n )\n );\n};\n","import {ContentChildren, Directive, HostBinding, Inject, Injector, Optional, Self} from '@angular/core';\nimport { NgForm } from '@angular/forms';\n\nimport { BaseComponent, IWidgetConfig, provideAsWidgetRef, RedrawableDirective } from '@wm/components/base';\nimport { WizardComponent } from '../wizard.component';\n\nimport { registerProps } from './wizard-step.props';\n\nconst DEFAULT_CLS = 'app-wizard-step-content';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-wizardstep',\n hostClass: DEFAULT_CLS,\n};\n\nconst enum STEP_STATUS {\n CURRENT = 1,\n DISABLED,\n COMPLETED\n}\n\n@Directive({\n selector: 'form[wmWizardStep]',\n providers: [\n provideAsWidgetRef(WizardStepDirective),\n NgForm\n ],\n exportAs: 'wmWizardStep'\n})\nexport class WizardStepDirective extends BaseComponent {\n static initializeProps = registerProps();\n\n public show: boolean;\n public name: string;\n public enableskip: any;\n public disablenext: boolean;\n public disabledone: boolean;\n public disableprevious: boolean;\n public isInitialized: boolean;\n isDone: boolean = false ;\n\n private status: STEP_STATUS = STEP_STATUS.DISABLED;\n private wizardComponent: WizardComponent;\n\n // reference to the components which needs a redraw(eg, grid, chart) when the height of this component changes\n @ContentChildren(RedrawableDirective, {descendants: true}) reDrawableComponents;\n\n @HostBinding('class.current')\n get isCurrent() {\n return this.active;\n }\n\n /**\n * along with the wizard form , also validate the forms\n * if there are any inside the wizard\n * @returns {boolean}\n */\n public get isValid() {\n return (this.ngForm.valid || this.ngForm.disabled) && this.areEmbeddedFormsValid();\n }\n\n /**\n * get all the forms inside the wizard if any and validate\n * @returns {boolean}\n */\n private areEmbeddedFormsValid() {\n let embeddedForms = this.getAllEmbeddedForms();\n for (let form of embeddedForms) {\n if (form.widget && !form.widget.ngform.valid) {\n return false;\n }\n }\n return true;\n }\n\n private getAllEmbeddedForms() {\n return this.$element.find('form');\n }\n\n public get enableNext() {\n return !this.disablenext;\n }\n\n public get enableDone() {\n return !this.disabledone;\n }\n\n public get enablePrev() {\n return !this.disableprevious;\n }\n\n public set active(nv: boolean) {\n const isActive = this.active;\n this.status = STEP_STATUS.CURRENT;\n if (nv && !isActive) {\n this.redrawChildren();\n }\n }\n\n public get active(): boolean {\n return this.status === STEP_STATUS.CURRENT;\n }\n\n public set done(nv: boolean) {\n if (nv) {\n this.status = STEP_STATUS.COMPLETED;\n }\n }\n\n public get done(): boolean {\n return this.status === STEP_STATUS.COMPLETED;\n }\n\n public set disabled(nv: boolean) {\n if (nv) {\n this.status = STEP_STATUS.DISABLED;\n }\n }\n\n public get disabled(): boolean {\n return this.status === STEP_STATUS.DISABLED;\n }\n\n constructor(inj: Injector, @Self() private ngForm: NgForm, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n // If we inject directly as a param in the constructor, getting circular dependency error in unit testcases\n this.wizardComponent = this.inj.get(WizardComponent);\n }\n\n public invokeNextCB(index: number): boolean {\n return this.invokeEventCallback('next', {currentStep: this, stepIndex: index});\n }\n\n public invokePrevCB(index: number): boolean {\n return this.invokeEventCallback('prev', {currentStep: this, stepIndex: index});\n }\n\n public invokeSkipCB(index: number): boolean {\n return this.invokeEventCallback('skip', {currentStep: this, stepIndex: index});\n }\n\n // redraw all the projected components which are projected.\n private redrawChildren() {\n setTimeout(() => {\n if (this.reDrawableComponents) {\n this.reDrawableComponents.forEach(c => c.redraw());\n }\n const stepIndex = (this as any).wizardComponent.getCurrentStepIndex();\n this.invokeEventCallback('load', { stepIndex });\n }, 100);\n }\n}\n","<div class=\"app-wizard-heading\" role=\"tab\">\n <ul class=\"app-wizard-steps nav nav-pills {{stepClass}}\">\n <li class=\"app-wizard-step\" *ngFor=\"let step of steps; let i = index\" [hidden]=\"!step.show\"\n [ngClass]=\"{active: step.done, current: step.active, disabled: step.disabled}\"\n (click)=\"onWizardHeaderClick($event, step)\">\n <a href=\"javascript:void(0)\" [attr.aria-label]=\"step.title\" [attr.title]=\"step.title\" [ngClass]=\"{'title-center-align':class && class.includes('classic') && !step.subtitle}\">\n <span class=\"arrow\" *ngIf=\"class && class.includes('classic')\"></span>\n <span class=\"wizard-step-number\">\n <span class=\"count\" *ngIf=\"class && class.includes('number') && !step.isDone\">{{i+1}}</span>\n <i class=\"dottedstepper\" *ngIf=\"class && (class.includes('dottedstepper') || class.includes('text-inline') && !class.includes('iconstepper')) && !step.isDone\"></i>\n <i class=\"app-icon wi wi-done\" *ngIf=\"class && (class.includes('dottedstepper') || class.includes('number')) && step.isDone\"></i>\n <i class=\"app-icon {{step.iconclass}}\" *ngIf=\"(class && class.includes('iconstepper')) && ((step.iconclass && !step.isDone) || (step.iconclass && step.isDone && step.doneiconclass ===''))\"></i>\n <i class=\"app-icon {{step.doneiconclass}}\" *ngIf=\"step.doneiconclass && step.isDone && (class && class.includes('iconstepper'))\"></i>\n </span>\n <span class=\"title-wrapper\">\n <span *ngIf=\"class && class.includes('text-inline')\">{{'0' + (i+1)}}</span>\n <span class=\"step-title\" [textContent]=\"step.title\"></span>\n </span>\n <span class=\"subtitle-wrapper\" [attr.title]=\"step.subtitle\" *ngIf=\"step.subtitle\">\n <span class=\"step-title\" [textContent]=\"step.subtitle\"></span>\n <a class=\"read_more\" (click)=\"readMoreSubtitle()\" style=\"display:none\">more</a>\n </span>\n </a> \n </li>\n </ul>\n</div>\n<div class=\"app-wizard-body panel-body\" role=\"tabpanel\">\n <p wmMessage *ngIf=\"message.caption\" caption.bind=\"message.caption\" type.bind=\"message.type\"></p>\n <ng-content ngProjectAs=\"form[wmWizardStep]\"></ng-content>\n</div>\n<div class=\"app-wizard-actions panel-footer {{actionsalignment}}\">\n <a class=\"app-wizard-skip\" name=\"skipStep_{{name}}\" *ngIf=\"currentStep?.enableskip\" title=\"Skip step\" (click)=\"skip()\">Skip &raquo;</a>\n <div class=\"app-wizard-actions-right\">\n <button type=\"button\" name=\"cancelBtn_{{name}}\" class=\"btn app-button btn-default\" *ngIf=\"cancelable\"\n (click)=\"cancel()\" [title]=\"cancelbtnlabel\" [textContent]=\"cancelbtnlabel\"></button>\n <button type=\"button\" name=\"previousBtn_{{name}}\" class=\"btn app-button btn-default\"\n *ngIf=\"hasPrevStep\" (click)=\"prev()\" [disabled]=\"!enablePrev\">\n <i class=\"app-icon wi wi-chevron-left\"></i>\n <span class=\"btn-caption\" [textContent]=\"previousbtnlabel\"></span>\n </button>\n <button type=\"button\" name=\"nextBtn_{{name}}\" class=\"btn app-button btn-primary\"\n *ngIf=\"hasNextStep\" (click)=\"next()\" [disabled]=\"!enableNext\">\n <span class=\"btn-caption\" [textContent]=\"nextbtnlabel\"></span>\n <i class=\"app-icon wi wi-chevron-right\"></i>\n </button>\n <button type=\"button\" name=\"doneBtn_{{name}}\" class=\"btn app-button btn-success\"\n *ngIf=\"showDoneBtn\" (click)=\"done()\"\n [disabled]=\"!enableDone\">\n <i class=\"app-icon wm-sl-l sl-check\"></i>\n <span class=\"btn-caption\" [textContent]=\"donebtnlabel\"></span>\n </button>\n </div>\n</div>\n","import {\n AfterContentInit,\n AfterViewInit,\n Component,\n ContentChildren,\n Inject,\n Injector,\n OnInit,\n Optional,\n QueryList\n} from '@angular/core';\n\nimport {noop} from '@wm/core';\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, styler, StylableComponent } from '@wm/components/base';\n\nimport { registerProps } from './wizard.props';\nimport { WizardStepDirective } from './wizard-step/wizard-step.directive';\n\nconst DEFAULT_CLS = 'app-wizard panel clearfix';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-wizard',\n hostClass: DEFAULT_CLS\n};\n\n@Component({\n selector: 'div[wmWizard]',\n templateUrl: './wizard.component.html',\n providers: [\n provideAsWidgetRef(WizardComponent)\n ]\n})\nexport class WizardComponent extends StylableComponent implements OnInit, AfterContentInit, AfterViewInit {\n static initializeProps = registerProps();\n\n @ContentChildren(WizardStepDirective) steps: QueryList<WizardStepDirective>;\n\n public message: {caption: string, type: string};\n public currentStep: WizardStepDirective;\n\n public stepClass: string;\n public class;\n private readonly promiseResolverFn: Function;\n public actionsalignment: any;\n public cancelable: any;\n public enablenext: any;\n\n get hasPrevStep(): boolean {\n return !this.isFirstStep(this.currentStep);\n }\n\n get hasNextStep(): boolean {\n return !this.isLastStep(this.currentStep);\n }\n\n get showDoneBtn(): boolean {\n if (!this.currentStep) {\n return;\n }\n return !this.hasNextStep && this.currentStep.enableDone;\n }\n\n get enablePrev(): boolean {\n if (!this.currentStep) {\n return;\n }\n return this.currentStep.enablePrev;\n }\n\n get enableNext(): boolean {\n if (!this.currentStep) {\n return;\n }\n return this.enablenext ? true : (this.currentStep.enableNext && this.currentStep.isValid);\n }\n\n get enableDone(): boolean {\n if (!this.currentStep) {\n return;\n }\n return this.currentStep.enableDone && this.currentStep.isValid;\n }\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n let resolveFn: Function = noop;\n\n super(inj, WIDGET_CONFIG, explicitContext, new Promise(res => resolveFn = res));\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.SHELL);\n\n this.promiseResolverFn = resolveFn;\n\n // initialize the message object with default values\n this.message = {\n caption: '',\n type: ''\n };\n }\n\n /**\n * returns next valid step. the index passed is also checked if its valid step\n * @param index\n * @returns {WizardStepDirective}\n */\n private getNextValidStepFormIndex(index: number): WizardStepDirective {\n for (let i = index; i < this.steps.length; i++) {\n const step = this.getStepRefByIndex(i);\n if (step.show) {\n return step;\n }\n }\n }\n\n /**\n * returns previous valid step. the index passed is also checked if its valid step\n * @param index\n * @returns {WizardStepDirective}\n */\n private getPreviousValidStepFormIndex(index: number): WizardStepDirective {\n for (let i = index; i >= 0; i--) {\n const step = this.getStepRefByIndex(i);\n if (step.show) {\n return step;\n }\n }\n }\n\n /**\n * returns current step index value.\n * @returns {number}\n */\n private getCurrentStepIndex(): number {\n return this.getStepIndexByRef(this.currentStep);\n }\n\n /**\n * returns stepRef when index is passed.\n * @param {number} index\n * @returns {WizardStepDirective}\n */\n private getStepRefByIndex(index: number): WizardStepDirective {\n return this.steps.toArray()[index];\n }\n\n /**\n * returns the index value of the step.\n * @param {WizardStepDirective} wizardStep\n * @returns {number}\n */\n private getStepIndexByRef(wizardStep: WizardStepDirective): number {\n return this.steps.toArray().indexOf(wizardStep);\n }\n\n /**\n * gets stepRef by searching on the name property.\n * @param {string} name\n * @returns {WizardStepDirective}\n */\n private getStepRefByName(name: string): WizardStepDirective {\n return this.steps.find(step => step.name === name);\n }\n\n /**\n * sets default step as current step if configured\n * or finds first valid step and set it as current step.\n * @param {WizardStepDirective} step\n */\n private setDefaultStep(step: WizardStepDirective) {\n // If the default step has show true then only update the currentStep\n if (step && step.show) {\n this.currentStep = step;\n step.active = true;\n step.isInitialized = true;\n // Mark all previous step status COMPLETED\n let index = this.getStepIndexByRef(step) - 1;\n while (index >= 0) {\n const prevStep = this.getStepRefByIndex(index);\n prevStep.done = true;\n prevStep.isInitialized = true;\n index--;\n }\n } else {\n // set next valid step as current step\n step = this.getNextValidStepFormIndex(0);\n if (step) {\n this.setDefaultStep(step);\n }\n }\n this.addMoreText();\n }\n\n /**\n * Selects the associated step when the wizard header is clicked.\n * @param $event\n * @param {WizardStepDirective} currentStep\n */\n private onWizardHeaderClick($event: Event, currentStep: WizardStepDirective) {\n // select the step if it's status is done\n if (currentStep.done) {\n // set all the next steps status as disabled and previous steps as done\n this.steps.forEach((step, index) => {\n if (index < this.getStepIndexByRef(currentStep)) {\n step.done = true;\n step.isDone = true;\n } else {\n step.disabled = true;\n step.isDone = false;\n }\n });\n // set the selected step as current step and make it active\n this.currentStep = currentStep;\n this.currentStep.active = true;\n this.addMoreText();\n }\n }\n\n // Method to navigate to next step\n public next(eventName: string = 'next') {\n const currentStep = this.currentStep;\n const currentStepIndex = this.getCurrentStepIndex();\n\n // abort if onSkip method returns false\n if (eventName === 'skip') {\n if (currentStep.invokeSkipCB(currentStepIndex) === false) {\n return;\n }\n this.extendNextFn(currentStep, currentStepIndex);\n } else if (this.currentStep.isValid && eventName === 'next') {\n if (currentStep.invokeNextCB(currentStepIndex) === false) {\n return;\n }\n this.extendNextFn(currentStep, currentStepIndex);\n } else if (this.enablenext && !this.currentStep.isValid){\n Array.from((<any>this).currentStep.getAllEmbeddedForms())?.forEach((form:any) => {\n form.widget.highlightInvalidFields();\n });\n }\n }\n\n extendNextFn(currentStep, currentStepIndex){\n let nextStep: WizardStepDirective;\n nextStep = this.getNextValidStepFormIndex(currentStepIndex + 1);\n nextStep.isInitialized = true;\n\n // If there are any steps which has show then only change state of current step else remain same\n if (nextStep) {\n currentStep.isDone = true;\n currentStep.done = true;\n nextStep.active = true;\n this.currentStep = nextStep;\n }\n this.addMoreText();\n }\n // Method to navigate to previous step\n public prev() {\n const currentStep = this.currentStep;\n const currentStepIndex = this.getCurrentStepIndex();\n\n let prevStep: WizardStepDirective;\n\n // abort if onPrev method returns false.\n if (currentStep.invokePrevCB(currentStepIndex) === false) {\n return;\n }\n\n prevStep = this.getPreviousValidStepFormIndex(currentStepIndex - 1);\n\n // If there are any steps which has show then only change state of current step else remain same\n if (prevStep) {\n currentStep.isDone = false;\n currentStep.disabled = true;\n prevStep.active = true;\n this.currentStep = prevStep;\n }\n this.addMoreText();\n }\n\n public skip() {\n this.next('skip');\n }\n\n public gotoStep(stepName: string) {\n if(stepName) {\n const gotoStepIndex = this.steps.toArray().map(step => step.name).indexOf(stepName);\n if(gotoStepIndex !== -1) {\n const gotoStep: WizardStepDirective = this.getStepRefByIndex(gotoStepIndex);\n if(gotoStep?.show) {\n this.onWizardHeaderClick(event, gotoStep);\n } else {\n console.error(\"The gotoStep function cannot navigate to hidden steps\");\n }\n } else {\n console.error(`Could not find step '${stepName}'`);\n }\n }\n }\n\n // Method to invoke on-Done event on wizard\n public done() {\n this.currentStep.isDone = true;\n this.invokeEventCallback('done', {steps: this.steps.toArray()});\n }\n // Method to invoke on-Cancel event on wizard\n public cancel () {\n this.invokeEventCallback('cancel', {steps: this.steps.toArray()});\n }\n public addMoreText(){\n setTimeout(() => {\n\n\n var newWindowWidth = $(window).width();\n if(newWindowWidth < 768){\n $(\".app-wizard-step.current .subtitle-wrapper .step-title\").css({\"height\":\"auto\",\"display\":\"block\"});\n var subtitleTextLength = $(\".app-wizard-step.current .subtitle-wrapper .step-title\").height();\n $(\".read_more\").css(\"display\",\"none\");\n $(\".current .subtitle-wrapper\").removeClass(\"readmore_subtitle\");\n\n if(subtitleTextLength>44){\n $(\".app-wizard-step.current .subtitle-wrapper .step-title\").css({\"height\":\"44px\",\"display\":\"-webkit-box\"});\n $(\".current .read_more\").css(\"display\",\"block\");\n $(\".active .read_more\").css(\"display\",\"none\");\n $(\".disable .read_more\").css(\"display\",\"none\");\n $(\".app-wizard-step>a\").css(\"height\",\"100px\")\n }\n }\n });\n\n }\n public readMoreSubtitle(){\n $(\".current .subtitle-wrapper\").addClass(\"readmore_subtitle\");\n $(\".current .read_more\").css(\"display\",\"none\");\n $(document).on(\"mouseup\",function(e:any)\n {\n var container = $(\".subtitle-wrapper\");\n // if the target of the click isn't the container nor a descendant of the container\n if (!container.is(e.target) && container.has(e.target).length === 0)\n {\n $(\".current .subtitle-wrapper\").removeClass(\"readmore_subtitle\");\n $(\".current .read_more\").css(\"display\",\"block\");\n $(document).off(\"mouseup\");\n }\n });\n }\n\n private isFirstStep(stepRef: WizardStepDirective) {\n return this.steps.first === stepRef;\n }\n\n private isLastStep(stepRef: WizardStepDirective) {\n return this.steps.last === stepRef;\n }\n\n // Define the property change handler. This Method will be triggered when there is a change in the widget property\n onPropertyChange(key: string, nv: any, ov?: any) {\n // Monitoring changes for properties and accordingly handling respective changes\n\n if (key === 'stepstyle') {\n this.stepClass = nv === 'justified' ? 'nav-justified' : '';\n } else if (key === 'defaultstep') {\n this.setDefaultStep(this.getStepRefByName(nv));\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n this.promiseResolverFn();\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(\n this.nativeElement.querySelector('.panel-body') as HTMLElement,\n this,\n APPLY_STYLES_TYPE.INNER_SHELL\n );\n setTimeout(() => { if($(window).width()<768){\n $(\".app-wizard\").removeClass(\"vertical\");\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { WizardComponent } from './wizard.component';\nimport { WizardStepDirective} from './wizard-step/wizard-step.directive';\n\nconst components = [\n WizardStepDirective,\n WizardComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n WmComponentsModule,\n FormsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class WizardModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","DEFAULT_CLS","WIDGET_CONFIG"],"mappings":"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"}
@@ -74,6 +74,7 @@ export declare class WizardComponent extends StylableComponent implements OnInit
74
74
  extendNextFn(currentStep: any, currentStepIndex: any): void;
75
75
  prev(): void;
76
76
  skip(): void;
77
+ gotoStep(stepName: string): void;
77
78
  done(): void;
78
79
  cancel(): void;
79
80
  addMoreText(): void;