@wavemaker/app-ng-runtime 11.10.3-rc.6079 → 11.10.4-rc.6083

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/build-task/bundles/index.umd.js +6 -1
  2. package/build-task/esm2022/advanced/carousel/carousel.build.mjs +7 -2
  3. package/build-task/fesm2022/index.mjs +6 -1
  4. package/build-task/fesm2022/index.mjs.map +1 -1
  5. package/components/base/bundles/index.umd.js +1 -1
  6. package/components/base/esm2022/utils/widget-utils.mjs +2 -2
  7. package/components/base/fesm2022/index.mjs +1 -1
  8. package/components/base/fesm2022/index.mjs.map +1 -1
  9. package/components/containers/wizard/bundles/index.umd.js +8 -5
  10. package/components/containers/wizard/esm2022/wizard.component.mjs +9 -6
  11. package/components/containers/wizard/fesm2022/index.mjs +8 -5
  12. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  13. package/components/containers/wizard/wizard.component.d.ts +2 -2
  14. package/components/data/pagination/bundles/index.umd.js +139 -102
  15. package/components/data/pagination/esm2022/pagination.component.mjs +140 -103
  16. package/components/data/pagination/fesm2022/index.mjs +139 -102
  17. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  18. package/components/data/table/bundles/index.umd.js +2 -2
  19. package/components/data/table/esm2022/table.component.mjs +3 -3
  20. package/components/data/table/fesm2022/index.mjs +2 -2
  21. package/components/data/table/fesm2022/index.mjs.map +1 -1
  22. package/components/input/default/bundles/index.umd.js +10 -4
  23. package/components/input/default/esm2022/base-form.component.mjs +5 -1
  24. package/components/input/default/esm2022/switch/switch.component.mjs +3 -3
  25. package/components/input/default/esm2022/text/base/base-input.mjs +2 -2
  26. package/components/input/default/esm2022/text/locale/number-locale.mjs +4 -2
  27. package/components/input/default/fesm2022/index.mjs +10 -4
  28. package/components/input/default/fesm2022/index.mjs.map +1 -1
  29. package/components/navigation/popover/bundles/index.umd.js +16 -2
  30. package/components/navigation/popover/esm2022/popover.component.mjs +17 -3
  31. package/components/navigation/popover/fesm2022/index.mjs +16 -2
  32. package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  33. package/components/navigation/popover/popover.component.d.ts +2 -1
  34. package/core/bundles/index.umd.js +2 -2
  35. package/core/esm2022/utils/utils.mjs +3 -3
  36. package/core/fesm2022/index.mjs +2 -2
  37. package/core/fesm2022/index.mjs.map +1 -1
  38. package/npm-shrinkwrap.json +2 -2
  39. package/package-lock.json +2 -2
  40. package/package.json +1 -1
@@ -455,18 +455,20 @@
455
455
  }
456
456
  }
457
457
  // Method to navigate to next step
458
- next(eventName = 'next') {
458
+ async next(eventName = 'next') {
459
459
  const currentStep = this.currentStep;
460
460
  const currentStepIndex = this.getCurrentStepIndex();
461
461
  // abort if onSkip method returns false
462
462
  if (eventName === 'skip') {
463
- if (currentStep.invokeSkipCB(currentStepIndex) === false) {
463
+ const response = await currentStep.invokeSkipCB(currentStepIndex);
464
+ if (response === false) {
464
465
  return;
465
466
  }
466
467
  this.extendNextFn(currentStep, currentStepIndex);
467
468
  }
468
469
  else if (this.currentStep.isValid && eventName === 'next') {
469
- if (currentStep.invokeNextCB(currentStepIndex) === false) {
470
+ const response = await currentStep.invokeNextCB(currentStepIndex);
471
+ if (response === false) {
470
472
  return;
471
473
  }
472
474
  this.extendNextFn(currentStep, currentStepIndex);
@@ -491,12 +493,13 @@
491
493
  this.addMoreText();
492
494
  }
493
495
  // Method to navigate to previous step
494
- prev() {
496
+ async prev() {
495
497
  const currentStep = this.currentStep;
496
498
  const currentStepIndex = this.getCurrentStepIndex();
497
499
  let prevStep;
498
500
  // abort if onPrev method returns false.
499
- if (currentStep.invokePrevCB(currentStepIndex) === false) {
501
+ const response = await currentStep.invokePrevCB(currentStepIndex);
502
+ if (response === false) {
500
503
  return;
501
504
  }
502
505
  prevStep = this.getPreviousValidStepFormIndex(currentStepIndex - 1);
@@ -272,18 +272,20 @@ export class WizardComponent extends StylableComponent {
272
272
  }
273
273
  }
274
274
  // Method to navigate to next step
275
- next(eventName = 'next') {
275
+ async next(eventName = 'next') {
276
276
  const currentStep = this.currentStep;
277
277
  const currentStepIndex = this.getCurrentStepIndex();
278
278
  // abort if onSkip method returns false
279
279
  if (eventName === 'skip') {
280
- if (currentStep.invokeSkipCB(currentStepIndex) === false) {
280
+ const response = await currentStep.invokeSkipCB(currentStepIndex);
281
+ if (response === false) {
281
282
  return;
282
283
  }
283
284
  this.extendNextFn(currentStep, currentStepIndex);
284
285
  }
285
286
  else if (this.currentStep.isValid && eventName === 'next') {
286
- if (currentStep.invokeNextCB(currentStepIndex) === false) {
287
+ const response = await currentStep.invokeNextCB(currentStepIndex);
288
+ if (response === false) {
287
289
  return;
288
290
  }
289
291
  this.extendNextFn(currentStep, currentStepIndex);
@@ -308,12 +310,13 @@ export class WizardComponent extends StylableComponent {
308
310
  this.addMoreText();
309
311
  }
310
312
  // Method to navigate to previous step
311
- prev() {
313
+ async prev() {
312
314
  const currentStep = this.currentStep;
313
315
  const currentStepIndex = this.getCurrentStepIndex();
314
316
  let prevStep;
315
317
  // abort if onPrev method returns false.
316
- if (currentStep.invokePrevCB(currentStepIndex) === false) {
318
+ const response = await currentStep.invokePrevCB(currentStepIndex);
319
+ if (response === false) {
317
320
  return;
318
321
  }
319
322
  prevStep = this.getPreviousValidStepFormIndex(currentStepIndex - 1);
@@ -497,4 +500,4 @@ export class WizardComponent extends StylableComponent {
497
500
  args: ['wizardAction', { read: TemplateRef, descendants: false }]
498
501
  }] }); })();
499
502
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WizardComponent, { className: "WizardComponent", filePath: "wizard.component.ts", lineNumber: 43 }); })();
500
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9jb250YWluZXJzL3dpemFyZC9zcmMvd2l6YXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9jb250YWluZXJzL3dpemFyZC9zcmMvd2l6YXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixNQUFNLEVBQ04sUUFBUSxFQUVSLFFBQVEsRUFDUixTQUFTLEVBQ1QsSUFBSSxFQUNKLFdBQVcsRUFDZCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzlCLE9BQU8sRUFDSCxpQkFBaUIsRUFFakIsa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsT0FBTyxFQUNWLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7O0lDbEIxRCwyQkFBc0U7OztJQUVsRSxnQ0FBOEU7SUFBQSxZQUFPO0lBQUEsaUJBQU87OztJQUFkLGNBQU87SUFBUCw4QkFBTzs7O0lBQ3JGLHdCQUFtSzs7O0lBQ25LLHdCQUFpSTs7O0lBQ2pJLG9CQUFpTTs7O0lBQTlMLDZEQUFtQzs7O0lBQ3RDLG9CQUFxSTs7O0lBQWxJLGlFQUF1Qzs7O0lBRzFDLDRCQUFxRDtJQUFBLFlBQWU7SUFBQSxpQkFBTzs7O0lBQXRCLGNBQWU7SUFBZixzQ0FBZTs7OztJQUd4RSxnQ0FBa0Y7SUFDOUUsMkJBQThEO0lBQzlELDZCQUF1RTtJQUFsRCw4S0FBUyx5QkFB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QUFVLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztpQkFDbkU7O3NCQTREMkIsSUFBSTs7c0JBQUksTUFBTTt1QkFBQyxPQUFPOztzQkFBeUIsTUFBTTt1QkFBQyxrQkFBa0I7O3NCQUFHLFFBQVE7cUJBdkR6RSxLQUFLO2tCQUExQyxlQUFlO21CQUFDLG1CQUFtQjtZQUNxQyxZQUFZO2tCQUFwRixZQUFZO21CQUFDLGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTs7a0ZBSjlELGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTZWxmLFxuICAgIFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge25vb3B9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7XG4gICAgQVBQTFlfU1RZTEVTX1RZUEUsXG4gICAgSVdpZGdldENvbmZpZyxcbiAgICBwcm92aWRlQXNXaWRnZXRSZWYsXG4gICAgc3R5bGVyLFxuICAgIFN0eWxhYmxlQ29tcG9uZW50LFxuICAgIENvbnRleHRcbn0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL3dpemFyZC5wcm9wcyc7XG5pbXBvcnQgeyBXaXphcmRTdGVwRGlyZWN0aXZlIH0gZnJvbSAnLi93aXphcmQtc3RlcC93aXphcmQtc3RlcC5kaXJlY3RpdmUnO1xuXG5jb25zdCBERUZBVUxUX0NMUyA9ICdhcHAtd2l6YXJkIHBhbmVsIGNsZWFyZml4JztcbmNvbnN0IFdJREdFVF9DT05GSUc6IElXaWRnZXRDb25maWcgPSB7XG4gICAgd2lkZ2V0VHlwZTogJ3dtLXdpemFyZCcsXG4gICAgaG9zdENsYXNzOiBERUZBVUxUX0NMU1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkaXZbd21XaXphcmRdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vd2l6YXJkLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKFdpemFyZENvbXBvbmVudCksXG4gICAgICAgIHtwcm92aWRlOiBDb250ZXh0LCB1c2VGYWN0b3J5OiAoKSA9PiB7IHJldHVybiB7fSB9LCBtdWx0aTogdHJ1ZX1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFdpemFyZENvbXBvbmVudCBleHRlbmRzIFN0eWxhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihXaXphcmRTdGVwRGlyZWN0aXZlKSBzdGVwczogUXVlcnlMaXN0PFdpemFyZFN0ZXBEaXJlY3RpdmU+O1xuICAgIEBDb250ZW50Q2hpbGQoJ3dpemFyZEFjdGlvbicsIHsgcmVhZDogVGVtcGxhdGVSZWYsIGRlc2NlbmRhbnRzOiBmYWxzZSB9KSB3aXphcmRBY3Rpb246IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBwdWJsaWMgbWVzc2FnZToge2NhcHRpb246IHN0cmluZywgdHlwZTogc3RyaW5nfTtcbiAgICBwdWJsaWMgY3VycmVudFN0ZXA6IFdpemFyZFN0ZXBEaXJlY3RpdmU7XG5cbiAgICBwdWJsaWMgc3RlcENsYXNzOiBzdHJpbmc7XG4gICAgcHVibGljIGNsYXNzO1xuICAgIHB1YmxpYyBuYW1lO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvbWlzZVJlc29sdmVyRm46IEZ1bmN0aW9uO1xuICAgIHB1YmxpYyBhY3Rpb25zYWxpZ25tZW50OiBhbnk7XG4gICAgcHVibGljIGNhbmNlbGFibGU6IGFueTtcbiAgICBwdWJsaWMgZW5hYmxlbmV4dDogYW55O1xuICAgIHB1YmxpYyB3aXpDb250ZXh0OiBhbnk7XG4gICAgcHVibGljIGNhbmNlbGJ0bmxhYmVsOiBhbnk7XG4gICAgcHVibGljIGRvbmVidG5sYWJlbDogYW55O1xuICAgIHB1YmxpYyBwcmV2aW91c2J0bmxhYmVsOiBhbnk7XG4gICAgcHVibGljIG5leHRidG5sYWJlbDogYW55O1xuXG4gICAgZ2V0IGhhc1ByZXZTdGVwKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNGaXJzdFN0ZXAodGhpcy5jdXJyZW50U3RlcCk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc05leHRTdGVwKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNMYXN0U3RlcCh0aGlzLmN1cnJlbnRTdGVwKTtcbiAgICB9XG5cbiAgICBnZXQgc2hvd0RvbmVCdG4oKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5jdXJyZW50U3RlcCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhdGhpcy5oYXNOZXh0U3RlcCAmJiB0aGlzLmN1cnJlbnRTdGVwLmVuYWJsZURvbmU7XG4gICAgfVxuXG4gICAgZ2V0IGVuYWJsZVByZXYoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5jdXJyZW50U3RlcCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTdGVwLmVuYWJsZVByZXY7XG4gICAgfVxuXG4gICAgZ2V0IGVuYWJsZU5leHQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5jdXJyZW50U3RlcCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmVuYWJsZW5leHQgPyB0cnVlIDogKHRoaXMuY3VycmVudFN0ZXAuZW5hYmxlTmV4dCAmJiB0aGlzLmN1cnJlbnRTdGVwLmlzVmFsaWQpO1xuICAgIH1cblxuICAgIGdldCBlbmFibGVEb25lKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuY3VycmVudFN0ZXApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50U3RlcC5lbmFibGVEb25lICYmIHRoaXMuY3VycmVudFN0ZXAuaXNWYWxpZDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBAU2VsZigpIEBJbmplY3QoQ29udGV4dCkgY29udGV4dHM6IEFycmF5PGFueT4sIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSkge1xuICAgICAgICBsZXQgcmVzb2x2ZUZuOiBGdW5jdGlvbiA9IG5vb3A7XG5cbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQsIG5ldyBQcm9taXNlKHJlcyA9PiByZXNvbHZlRm4gPSByZXMpKTtcbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcywgQVBQTFlfU1RZTEVTX1RZUEUuU0hFTEwpO1xuXG4gICAgICAgIHRoaXMucHJvbWlzZVJlc29sdmVyRm4gPSByZXNvbHZlRm47XG5cbiAgICAgICAgLy8gaW5pdGlhbGl6ZSB0aGUgbWVzc2FnZSBvYmplY3Qgd2l0aCBkZWZhdWx0IHZhbHVlc1xuICAgICAgICB0aGlzLm1lc3NhZ2UgPSB7XG4gICAgICAgICAgICBjYXB0aW9uOiAnJyxcbiAgICAgICAgICAgIHR5cGU6ICcnXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMud2l6Q29udGV4dCA9IGNvbnRleHRzWzBdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgbmV4dCB2YWxpZCBzdGVwLiB0aGUgaW5kZXggcGFzc2VkIGlzIGFsc28gY2hlY2tlZCBpZiBpdHMgdmFsaWQgc3RlcFxuICAgICAqIEBwYXJhbSBpbmRleFxuICAgICAqIEByZXR1cm5zIHtXaXphcmRTdGVwRGlyZWN0aXZlfVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0TmV4dFZhbGlkU3RlcEZvcm1JbmRleChpbmRleDogbnVtYmVyKTogV2l6YXJkU3RlcERpcmVjdGl2ZSB7XG4gICAgICAgIGZvciAobGV0IGkgPSBpbmRleDsgaSA8IHRoaXMuc3RlcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHN0ZXAgPSB0aGlzLmdldFN0ZXBSZWZCeUluZGV4KGkpO1xuICAgICAgICAgICAgaWYgKHN0ZXAuc2hvdykge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdGVwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyBwcmV2aW91cyB2YWxpZCBzdGVwLiB0aGUgaW5kZXggcGFzc2VkIGlzIGFsc28gY2hlY2tlZCBpZiBpdHMgdmFsaWQgc3RlcFxuICAgICAqIEBwYXJhbSBpbmRleFxuICAgICAqIEByZXR1cm5zIHtXaXphcmRTdGVwRGlyZWN0aXZlfVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0UHJldmlvdXNWYWxpZFN0ZXBGb3JtSW5kZXgoaW5kZXg6IG51bWJlcik6IFdpemFyZFN0ZXBEaXJlY3RpdmUge1xuICAgICAgICBmb3IgKGxldCBpID0gaW5kZXg7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCBzdGVwID0gdGhpcy5nZXRTdGVwUmVmQnlJbmRleChpKTtcbiAgICAgICAgICAgIGlmIChzdGVwLnNob3cpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RlcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgY3VycmVudCBzdGVwIGluZGV4IHZhbHVlLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9XG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRDdXJyZW50U3RlcEluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFN0ZXBJbmRleEJ5UmVmKHRoaXMuY3VycmVudFN0ZXApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgc3RlcFJlZiB3aGVuIGluZGV4IGlzIHBhc3NlZC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAgICAgKiBAcmV0dXJucyB7V2l6YXJkU3RlcERpcmVjdGl2ZX1cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFN0ZXBSZWZCeUluZGV4KGluZGV4OiBudW1iZXIpOiBXaXphcmRTdGVwRGlyZWN0aXZlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RlcHMudG9BcnJheSgpW2luZGV4XTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIHRoZSBpbmRleCB2YWx1ZSBvZiB0aGUgc3RlcC5cbiAgICAgKiBAcGFyYW0ge1dpemFyZFN0ZXBEaXJlY3RpdmV9IHdpemFyZFN0ZXBcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0U3RlcEluZGV4QnlSZWYod2l6YXJkU3RlcDogV2l6YXJkU3RlcERpcmVjdGl2ZSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0ZXBzLnRvQXJyYXkoKS5pbmRleE9mKHdpemFyZFN0ZXApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldHMgc3RlcFJlZiBieSBzZWFyY2hpbmcgb24gdGhlIG5hbWUgcHJvcGVydHkuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAgICAgKiBAcmV0dXJucyB7V2l6YXJkU3RlcERpcmVjdGl2ZX1cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFN0ZXBSZWZCeU5hbWUobmFtZTogc3RyaW5nKTogV2l6YXJkU3RlcERpcmVjdGl2ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0ZXBzLmZpbmQoc3RlcCA9PiBzdGVwLm5hbWUgPT09IG5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHNldHMgZGVmYXVsdCBzdGVwIGFzIGN1cnJlbnQgc3RlcCBpZiBjb25maWd1cmVkXG4gICAgICogb3IgZmluZHMgZmlyc3QgdmFsaWQgc3RlcCBhbmQgc2V0IGl0IGFzIGN1cnJlbnQgc3RlcC5cbiAgICAgKiBAcGFyYW0ge1dpemFyZFN0ZXBEaXJlY3RpdmV9IHN0ZXBcbiAgICAgKi9cbiAgICBwcml2YXRlIHNldERlZmF1bHRTdGVwKHN0ZXA6IFdpemFyZFN0ZXBEaXJlY3RpdmUpIHtcbiAgICAgICAgLy8gSWYgdGhlIGRlZmF1bHQgc3RlcCBoYXMgc2hvdyB0cnVlIHRoZW4gb25seSB1cGRhdGUgdGhlIGN1cnJlbnRTdGVwXG4gICAgICAgIGlmIChzdGVwICYmIHN0ZXAuc2hvdykge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50U3RlcCA9IHN0ZXA7XG4gICAgICAgICAgICBzdGVwLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICBzdGVwLmlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICAgICAgLy8gTWFyayBhbGwgcHJldmlvdXMgc3RlcCBzdGF0dXMgQ09NUExFVEVEXG4gICAgICAgICAgICBsZXQgaW5kZXggPSB0aGlzLmdldFN0ZXBJbmRleEJ5UmVmKHN0ZXApIC0gMTtcbiAgICAgICAgICAgIHdoaWxlIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJldlN0ZXAgPSB0aGlzLmdldFN0ZXBSZWZCeUluZGV4KGluZGV4KTtcbiAgICAgICAgICAgICAgICBwcmV2U3RlcC5kb25lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBwcmV2U3RlcC5pc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpbmRleC0tO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gc2V0IG5leHQgdmFsaWQgc3RlcCBhcyBjdXJyZW50IHN0ZXBcbiAgICAgICAgICAgIHN0ZXAgPSB0aGlzLmdldE5leHRWYWxpZFN0ZXBGb3JtSW5kZXgoMCk7XG4gICAgICAgICAgICBpZiAoc3RlcCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0RGVmYXVsdFN0ZXAoc3RlcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hZGRNb3JlVGV4dCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlbGVjdHMgdGhlIGFzc29jaWF0ZWQgc3RlcCB3aGVuIHRoZSB3aXphcmQgaGVhZGVyIGlzIGNsaWNrZWQuXG4gICAgICogQHBhcmFtICRldmVudFxuICAgICAqIEBwYXJhbSB7V2l6YXJkU3RlcERpcmVjdGl2ZX0gY3VycmVudFN0ZXBcbiAgICAgKi9cbiAgICBwcml2YXRlIG9uV2l6YXJkSGVhZGVyQ2xpY2soJGV2ZW50OiBFdmVudCwgY3VycmVudFN0ZXA6IFdpemFyZFN0ZXBEaXJlY3RpdmUpIHtcbiAgICAgICAgLy8gc2VsZWN0IHRoZSBzdGVwIGlmIGl0J3Mgc3RhdHVzIGlzIGRvbmVcbiAgICAgICAgaWYgKGN1cnJlbnRTdGVwLmRvbmUpIHtcbiAgICAgICAgICAgIC8vIHNldCBhbGwgdGhlIG5leHQgc3RlcHMgc3RhdHVzIGFzIGRpc2FibGVkIGFuZCBwcmV2aW91cyBzdGVwcyBhcyBkb25lXG4gICAgICAgICAgICB0aGlzLnN0ZXBzLmZvckVhY2goKHN0ZXAsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGluZGV4IDwgdGhpcy5nZXRTdGVwSW5kZXhCeVJlZihjdXJyZW50U3RlcCkpIHtcbiAgICAgICAgICAgICAgICAgICBzdGVwLmRvbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgIHN0ZXAuaXNEb25lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzdGVwLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgc3RlcC5pc0RvbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIHNldCB0aGUgc2VsZWN0ZWQgc3RlcCBhcyBjdXJyZW50IHN0ZXAgYW5kIG1ha2UgaXQgYWN0aXZlXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTdGVwID0gY3VycmVudFN0ZXA7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTdGVwLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmFkZE1vcmVUZXh0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNZXRob2QgdG8gbmF2aWdhdGUgdG8gbmV4dCBzdGVwXG4gICAgcHVibGljIG5leHQoZXZlbnROYW1lOiBzdHJpbmcgPSAnbmV4dCcpIHtcbiAgICAgICAgY29uc3QgY3VycmVudFN0ZXAgPSB0aGlzLmN1cnJlbnRTdGVwO1xuICAgICAgICBjb25zdCBjdXJyZW50U3RlcEluZGV4ID0gdGhpcy5nZXRDdXJyZW50U3RlcEluZGV4KCk7XG5cbiAgICAgICAgLy8gYWJvcnQgaWYgb25Ta2lwIG1ldGhvZCByZXR1cm5zIGZhbHNlXG4gICAgICAgIGlmIChldmVudE5hbWUgPT09ICdza2lwJykge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRTdGVwLmludm9rZVNraXBDQihjdXJyZW50U3RlcEluZGV4KSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmV4dGVuZE5leHRGbihjdXJyZW50U3RlcCwgY3VycmVudFN0ZXBJbmRleCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW50U3RlcC5pc1ZhbGlkICYmIGV2ZW50TmFtZSA9PT0gJ25leHQnKSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudFN0ZXAuaW52b2tlTmV4dENCKGN1cnJlbnRTdGVwSW5kZXgpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZXh0ZW5kTmV4dEZuKGN1cnJlbnRTdGVwLCBjdXJyZW50U3RlcEluZGV4KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmVuYWJsZW5leHQgJiYgIXRoaXMuY3VycmVudFN0ZXAuaXNWYWxpZCl7XG4gICAgICAgICAgICBBcnJheS5mcm9tKCg8YW55PnRoaXMpLmN1cnJlbnRTdGVwLmdldEFsbEVtYmVkZGVkRm9ybXMoKSk/LmZvckVhY2goKGZvcm06YW55KSA9PiB7XG4gICAgICAgICAgICAgICAgZm9ybS53aWRnZXQuaGlnaGxpZ2h0SW52YWxpZEZpZWxkcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBleHRlbmROZXh0Rm4oY3VycmVudFN0ZXAsIGN1cnJlbnRTdGVwSW5kZXgpe1xuICAgICAgICBsZXQgbmV4dFN0ZXA6IFdpemFyZFN0ZXBEaXJlY3RpdmU7XG4gICAgICAgIG5leHRTdGVwID0gdGhpcy5nZXROZXh0VmFsaWRTdGVwRm9ybUluZGV4KGN1cnJlbnRTdGVwSW5kZXggKyAxKTtcbiAgICAgICAgbmV4dFN0ZXAuaXNJbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICAgICAgLy8gSWYgdGhlcmUgYXJlIGFueSBzdGVwcyB3aGljaCBoYXMgc2hvdyB0aGVuIG9ubHkgY2hhbmdlIHN0YXRlIG9mIGN1cnJlbnQgc3RlcCBlbHNlIHJlbWFpbiBzYW1lXG4gICAgICAgIGlmIChuZXh0U3RlcCkge1xuICAgICAgICAgICAgY3VycmVudFN0ZXAuaXNEb25lID0gdHJ1ZTtcbiAgICAgICAgICAgIGN1cnJlbnRTdGVwLmRvbmUgPSB0cnVlO1xuICAgICAgICAgICAgbmV4dFN0ZXAuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFN0ZXAgPSBuZXh0U3RlcDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFkZE1vcmVUZXh0KCk7XG4gICAgfVxuICAgIC8vIE1ldGhvZCB0byBuYXZpZ2F0ZSB0byBwcmV2aW91cyBzdGVwXG4gICAgcHVibGljIHByZXYoKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTdGVwID0gdGhpcy5jdXJyZW50U3RlcDtcbiAgICAgICAgY29uc3QgY3VycmVudFN0ZXBJbmRleCA9IHRoaXMuZ2V0Q3VycmVudFN0ZXBJbmRleCgpO1xuXG4gICAgICAgIGxldCBwcmV2U3RlcDogV2l6YXJkU3RlcERpcmVjdGl2ZTtcblxuICAgICAgICAvLyBhYm9ydCBpZiBvblByZXYgbWV0aG9kIHJldHVybnMgZmFsc2UuXG4gICAgICAgIGlmIChjdXJyZW50U3RlcC5pbnZva2VQcmV2Q0IoY3VycmVudFN0ZXBJbmRleCkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBwcmV2U3RlcCA9IHRoaXMuZ2V0UHJldmlvdXNWYWxpZFN0ZXBGb3JtSW5kZXgoY3VycmVudFN0ZXBJbmRleCAtIDEpO1xuXG4gICAgICAgIC8vIElmIHRoZXJlIGFyZSBhbnkgc3RlcHMgd2hpY2ggaGFzIHNob3cgdGhlbiBvbmx5IGNoYW5nZSBzdGF0ZSBvZiBjdXJyZW50IHN0ZXAgZWxzZSByZW1haW4gc2FtZVxuICAgICAgICBpZiAocHJldlN0ZXApIHtcbiAgICAgICAgICAgIGN1cnJlbnRTdGVwLmlzRG9uZSA9IGZhbHNlO1xuICAgICAgICAgICAgY3VycmVudFN0ZXAuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgcHJldlN0ZXAuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFN0ZXAgPSBwcmV2U3RlcDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFkZE1vcmVUZXh0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNraXAoKSB7XG4gICAgICAgIHRoaXMubmV4dCgnc2tpcCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnb3RvU3RlcChzdGVwTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmKHN0ZXBOYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBnb3RvU3RlcEluZGV4ID0gdGhpcy5zdGVwcy50b0FycmF5KCkubWFwKHN0ZXAgPT4gc3RlcC5uYW1lKS5pbmRleE9mKHN0ZXBOYW1lKTtcbiAgICAgICAgICAgIGlmKGdvdG9TdGVwSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZ290b1N0ZXA6IFdpemFyZFN0ZXBEaXJlY3RpdmUgPSB0aGlzLmdldFN0ZXBSZWZCeUluZGV4KGdvdG9TdGVwSW5kZXgpO1xuICAgICAgICAgICAgICAgIGlmKGdvdG9TdGVwPy5zaG93KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25XaXphcmRIZWFkZXJDbGljayhldmVudCwgZ290b1N0ZXApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJUaGUgZ290b1N0ZXAgZnVuY3Rpb24gY2Fubm90IG5hdmlnYXRlIHRvIGhpZGRlbiBzdGVwc1wiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYENvdWxkIG5vdCBmaW5kIHN0ZXAgJyR7c3RlcE5hbWV9J2ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWV0aG9kIHRvIGludm9rZSBvbi1Eb25lIGV2ZW50IG9uIHdpemFyZFxuICAgIHB1YmxpYyBkb25lKCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRTdGVwLmlzRG9uZSA9IHRydWU7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnZG9uZScsIHtzdGVwczogdGhpcy5zdGVwcy50b0FycmF5KCl9KTtcbiAgICB9XG4gICAgLy8gTWV0aG9kIHRvIGludm9rZSBvbi1DYW5jZWwgZXZlbnQgb24gd2l6YXJkXG4gICAgcHVibGljIGNhbmNlbCAoKSB7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnY2FuY2VsJywge3N0ZXBzOiB0aGlzLnN0ZXBzLnRvQXJyYXkoKX0pO1xuICAgIH1cbiAgICBwdWJsaWMgYWRkTW9yZVRleHQoKXtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG5cblxuICAgICAgICB2YXIgbmV3V2luZG93V2lkdGggPSAkKHdpbmRvdykud2lkdGgoKTtcbiAgICAgICAgaWYobmV3V2luZG93V2lkdGggPCA3Njgpe1xuICAgICAgICAkKFwiLmFwcC13aXphcmQtc3RlcC5jdXJyZW50IC5zdWJ0aXRsZS13cmFwcGVyIC5zdGVwLXRpdGxlXCIpLmNzcyh7XCJoZWlnaHRcIjpcImF1dG9cIixcImRpc3BsYXlcIjpcImJsb2NrXCJ9KTtcbiAgICAgICAgdmFyIHN1YnRpdGxlVGV4dExlbmd0aCA9ICQoXCIuYXBwLXdpemFyZC1zdGVwLmN1cnJlbnQgLnN1YnRpdGxlLXdyYXBwZXIgLnN0ZXAtdGl0bGVcIikuaGVpZ2h0KCk7XG4gICAgICAgICQoXCIucmVhZF9tb3JlXCIpLmNzcyhcImRpc3BsYXlcIixcIm5vbmVcIik7XG4gICAgICAgICQoXCIuY3VycmVudCAuc3VidGl0bGUtd3JhcHBlclwiKS5yZW1vdmVDbGFzcyhcInJlYWRtb3JlX3N1YnRpdGxlXCIpO1xuXG4gICAgICAgIGlmKHN1YnRpdGxlVGV4dExlbmd0aD40NCl7XG4gICAgICAgICAgICAkKFwiLmFwcC13aXphcmQtc3RlcC5jdXJyZW50IC5zdWJ0aXRsZS13cmFwcGVyIC5zdGVwLXRpdGxlXCIpLmNzcyh7XCJoZWlnaHRcIjpcIjQ0cHhcIixcImRpc3BsYXlcIjpcIi13ZWJraXQtYm94XCJ9KTtcbiAgICAgICAgICAgICQoXCIuY3VycmVudCAucmVhZF9tb3JlXCIpLmNzcyhcImRpc3BsYXlcIixcImJsb2NrXCIpO1xuICAgICAgICAgICAgJChcIi5hY3RpdmUgLnJlYWRfbW9yZVwiKS5jc3MoXCJkaXNwbGF5XCIsXCJub25lXCIpO1xuICAgICAgICAgICAgJChcIi5kaXNhYmxlIC5yZWFkX21vcmVcIikuY3NzKFwiZGlzcGxheVwiLFwibm9uZVwiKTtcbiAgICAgICAgICAgICQoXCIuYXBwLXdpemFyZC1zdGVwPmFcIikuY3NzKFwiaGVpZ2h0XCIsXCIxMDBweFwiKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICB9XG4gICAgcHVibGljIHJlYWRNb3JlU3VidGl0bGUoKXtcbiAgICAgICAgJChcIi5jdXJyZW50IC5zdWJ0aXRsZS13cmFwcGVyXCIpLmFkZENsYXNzKFwicmVhZG1vcmVfc3VidGl0bGVcIik7XG4gICAgICAgICQoXCIuY3VycmVudCAucmVhZF9tb3JlXCIpLmNzcyhcImRpc3BsYXlcIixcIm5vbmVcIik7XG4gICAgICAgICQoZG9jdW1lbnQpLm9uKFwibW91c2V1cFwiLGZ1bmN0aW9uKGU6YW55KVxuICAgICAgICB7XG4gICAgICAgICAgICB2YXIgY29udGFpbmVyID0gJChcIi5zdWJ0aXRsZS13cmFwcGVyXCIpO1xuICAgICAgICAgICAgLy8gaWYgdGhlIHRhcmdldCBvZiB0aGUgY2xpY2sgaXNuJ3QgdGhlIGNvbnRhaW5lciBub3IgYSBkZXNjZW5kYW50IG9mIHRoZSBjb250YWluZXJcbiAgICAgICAgICAgIGlmICghY29udGFpbmVyLmlzKGUudGFyZ2V0KSAmJiBjb250YWluZXIuaGFzKGUudGFyZ2V0KS5sZW5ndGggPT09IDApXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgJChcIi5jdXJyZW50IC5zdWJ0aXRsZS13cmFwcGVyXCIpLnJlbW92ZUNsYXNzKFwicmVhZG1vcmVfc3VidGl0bGVcIik7XG4gICAgICAgICAgICAgICAgJChcIi5jdXJyZW50IC5yZWFkX21vcmVcIikuY3NzKFwiZGlzcGxheVwiLFwiYmxvY2tcIik7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub2ZmKFwibW91c2V1cFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0ZpcnN0U3RlcChzdGVwUmVmOiBXaXphcmRTdGVwRGlyZWN0aXZlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0ZXBzLmZpcnN0ID09PSBzdGVwUmVmO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNMYXN0U3RlcChzdGVwUmVmOiBXaXphcmRTdGVwRGlyZWN0aXZlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0ZXBzLmxhc3QgPT09IHN0ZXBSZWY7XG4gICAgfVxuXG5cbiAgICAvLyBEZWZpbmUgdGhlIHByb3BlcnR5IGNoYW5nZSBoYW5kbGVyLiBUaGlzIE1ldGhvZCB3aWxsIGJlIHRyaWdnZXJlZCB3aGVuIHRoZXJlIGlzIGEgY2hhbmdlIGluIHRoZSB3aWRnZXQgcHJvcGVydHlcbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleTogc3RyaW5nLCBudjogYW55LCBvdj86IGFueSkge1xuICAgICAgICAvLyBNb25pdG9yaW5nIGNoYW5nZXMgZm9yIHByb3BlcnRpZXMgYW5kIGFjY29yZGluZ2x5IGhhbmRsaW5nIHJlc3BlY3RpdmUgY2hhbmdlc1xuXG4gICAgICAgIGlmIChrZXkgPT09ICdzdGVwc3R5bGUnKSB7XG4gICAgICAgICAgICB0aGlzLnN0ZXBDbGFzcyA9ICBudiA9PT0gJ2p1c3RpZmllZCcgPyAnbmF2LWp1c3RpZmllZCcgOiAnJztcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdkZWZhdWx0c3RlcCcpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0RGVmYXVsdFN0ZXAodGhpcy5nZXRTdGVwUmVmQnlOYW1lKG52KSk7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnYWN0aW9uc2FsaWdubWVudCcpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdkaXYuYXBwLXdpemFyZC1hY3Rpb25zJyk/LmNsYXNzTGlzdC5yZXBsYWNlKG92LCBudik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlckNvbnRlbnRJbml0KCk7XG4gICAgICAgIHRoaXMucHJvbWlzZVJlc29sdmVyRm4oKTtcbiAgICAgICAgdGhpcy53aXpDb250ZXh0Lmhhc05leHRTdGVwID0gKCkgPT4gdGhpcy5oYXNOZXh0U3RlcDtcbiAgICAgICAgdGhpcy53aXpDb250ZXh0Lmhhc1ByZXZpb3VzU3RlcCA9ICgpID0+IHRoaXMuaGFzUHJldlN0ZXA7XG4gICAgICAgIHRoaXMud2l6Q29udGV4dC5oYXNOb05leHRTdGVwID0gKCkgPT4gdGhpcy5zaG93RG9uZUJ0bjtcbiAgICAgICAgdGhpcy53aXpDb250ZXh0LmNhbmNlbGFibGUgPSAoKSA9PiB0aGlzLmNhbmNlbGFibGU7XG4gICAgICAgIHRoaXMud2l6Q29udGV4dC5za2lwcGFibGUgPSAoKSA9PiB0aGlzLmN1cnJlbnRTdGVwPy5lbmFibGVza2lwO1xuICAgICAgICB0aGlzLndpekNvbnRleHQubmV4dCA9ICgpID0+IHRoaXMubmV4dCgpO1xuICAgICAgICB0aGlzLndpekNvbnRleHQucHJldmlvdXMgPSAoKSA9PiB0aGlzLnByZXYoKTtcbiAgICAgICAgdGhpcy53aXpDb250ZXh0LmRvbmUgPSAoKSA9PiB0aGlzLmRvbmUoKTtcbiAgICAgICAgdGhpcy53aXpDb250ZXh0LmNhbmNlbCA9ICgpID0+IHRoaXMuY2FuY2VsKCk7XG4gICAgICAgIHRoaXMud2l6Q29udGV4dC5za2lwID0gKCkgPT4gdGhpcy5za2lwKCk7XG4gICAgICAgIHRoaXMud2l6Q29udGV4dC5uZXh0YnRubGFiZWwgPSAoKSA9PiB0aGlzLm5leHRidG5sYWJlbDtcbiAgICAgICAgdGhpcy53aXpDb250ZXh0LnByZXZpb3VzYnRubGFiZWwgPSAoKSA9PiB0aGlzLnByZXZpb3VzYnRubGFiZWw7XG4gICAgICAgIHRoaXMud2l6Q29udGV4dC5kb25lYnRubGFiZWwgPSAoKSA9PiB0aGlzLmRvbmVidG5sYWJlbDtcbiAgICAgICAgdGhpcy53aXpDb250ZXh0LmNhbmNlbGJ0bmxhYmVsID0gKCkgPT4gdGhpcy5jYW5jZWxidG5sYWJlbDtcbiAgICAgICAgdGhpcy53aXpDb250ZXh0LmFjdGlvbnNhbGlnbm1lbnQgPSAoKSA9PiB0aGlzLmFjdGlvbnNhbGlnbm1lbnQ7XG4gICAgICAgIHRoaXMud2l6Q29udGV4dC5kaXNhYmxlTmV4dCA9ICgpID0+ICF0aGlzLmVuYWJsZU5leHQ7XG4gICAgICAgIHRoaXMud2l6Q29udGV4dC5kaXNhYmxlUHJldmlvdXMgPSAoKSA9PiAhdGhpcy5lbmFibGVQcmV2O1xuICAgICAgICB0aGlzLndpekNvbnRleHQuZGlzYWJsZURvbmUgPSAoKSA9PiAhdGhpcy5lbmFibGVEb25lO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIHN0eWxlcihcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcucGFuZWwtYm9keScpIGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICAgIEFQUExZX1NUWUxFU19UWVBFLklOTkVSX1NIRUxMXG4gICAgICAgICk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyBpZigkKHdpbmRvdykud2lkdGgoKTw3NjgpIHtcbiAgICAgICAgICAgICQoXCIuYXBwLXdpemFyZFwiKS5yZW1vdmVDbGFzcyhcInZlcnRpY2FsXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdkaXYuYXBwLXdpemFyZC1hY3Rpb25zLXJpZ2h0Jyk/LmNsYXNzTGlzdC5yZW1vdmUoJ2FwcC1jb250YWluZXInKTtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2Rpdi5hcHAtd2l6YXJkLWFjdGlvbnMnKT8uY2xhc3NMaXN0LmFkZCh0aGlzLmFjdGlvbnNhbGlnbm1lbnQpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXBwLXdpemFyZC1oZWFkaW5nXCI+XG4gICAgPHVsIGNsYXNzPVwiYXBwLXdpemFyZC1zdGVwcyBuYXYgbmF2LXBpbGxzIHt7c3RlcENsYXNzfX1cIj5cbiAgICAgICAgPGxpIGNsYXNzPVwiYXBwLXdpemFyZC1zdGVwXCIgKm5nRm9yPVwibGV0IHN0ZXAgb2Ygc3RlcHM7IGxldCBpID0gaW5kZXhcIiBbaGlkZGVuXT1cIiFzdGVwLnNob3dcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie2FjdGl2ZTogc3RlcC5kb25lLCBjdXJyZW50OiBzdGVwLmFjdGl2ZSwgZGlzYWJsZWQ6IHN0ZXAuZGlzYWJsZWR9XCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbldpemFyZEhlYWRlckNsaWNrKCRldmVudCwgc3RlcClcIj5cbiAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiBbYXR0ci5hcmlhLWN1cnJlbnRdPVwic3RlcC5hY3RpdmUgPyAnc3RlcCcgOiBudWxsXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwic3RlcC5kaXNhYmxlZFwiIFthdHRyLnRpdGxlXT1cInN0ZXAudGl0bGVcIlxuICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyd0aXRsZS1jZW50ZXItYWxpZ24nOmNsYXNzICYmIGNsYXNzLmluY2x1ZGVzKCdjbGFzc2ljJykgJiYgIXN0ZXAuc3VidGl0bGV9XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcnJvd1wiICpuZ0lmPVwiY2xhc3MgJiYgY2xhc3MuaW5jbHVkZXMoJ2NsYXNzaWMnKVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndpemFyZC1zdGVwLW51bWJlclwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50XCIgKm5nSWY9XCJjbGFzcyAmJiBjbGFzcy5pbmNsdWRlcygnbnVtYmVyJykgJiYgIXN0ZXAuaXNEb25lXCI+e3tpKzF9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJkb3R0ZWRzdGVwcGVyXCIgKm5nSWY9XCJjbGFzcyAmJiAoY2xhc3MuaW5jbHVkZXMoJ2RvdHRlZHN0ZXBwZXInKSB8fCBjbGFzcy5pbmNsdWRlcygndGV4dC1pbmxpbmUnKSAmJiAhY2xhc3MuaW5jbHVkZXMoJ2ljb25zdGVwcGVyJykpICYmICFzdGVwLmlzRG9uZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJhcHAtaWNvbiB3aSB3aS1kb25lXCIgKm5nSWY9XCJjbGFzcyAmJiAoY2xhc3MuaW5jbHVkZXMoJ2RvdHRlZHN0ZXBwZXInKSB8fCBjbGFzcy5pbmNsdWRlcygnbnVtYmVyJykpICYmIHN0ZXAuaXNEb25lXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImFwcC1pY29uIHt7c3RlcC5pY29uY2xhc3N9fVwiICpuZ0lmPVwiKGNsYXNzICYmIGNsYXNzLmluY2x1ZGVzKCdpY29uc3RlcHBlcicpKSAmJiAoKHN0ZXAuaWNvbmNsYXNzICYmICFzdGVwLmlzRG9uZSkgfHwgKHN0ZXAuaWNvbmNsYXNzICYmIHN0ZXAuaXNEb25lICYmIHN0ZXAuZG9uZWljb25jbGFzcyA9PT0nJykpXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImFwcC1pY29uIHt7c3RlcC5kb25laWNvbmNsYXNzfX1cIiAqbmdJZj1cInN0ZXAuZG9uZWljb25jbGFzcyAmJiBzdGVwLmlzRG9uZSAmJiAoY2xhc3MgJiYgY2xhc3MuaW5jbHVkZXMoJ2ljb25zdGVwcGVyJykpXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjbGFzcyAmJiBjbGFzcy5pbmNsdWRlcygndGV4dC1pbmxpbmUnKVwiPnt7JzAnICsgKGkrMSl9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGVwLXRpdGxlXCIgW3RleHRDb250ZW50XT1cInN0ZXAudGl0bGVcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VidGl0bGUtd3JhcHBlclwiIFthdHRyLnRpdGxlXT1cInN0ZXAuc3VidGl0bGVcIiAqbmdJZj1cInN0ZXAuc3VidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGVwLXRpdGxlXCIgW3RleHRDb250ZW50XT1cInN0ZXAuc3VidGl0bGVcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwicmVhZF9tb3JlXCIgKGNsaWNrKT1cInJlYWRNb3JlU3VidGl0bGUoKVwiIHN0eWxlPVwiZGlzcGxheTpub25lXCI+bW9yZTwvYT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgPC91bD5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImFwcC13aXphcmQtYm9keSBwYW5lbC1ib2R5XCI+XG4gICAgPHAgd21NZXNzYWdlICpuZ0lmPVwibWVzc2FnZS5jYXB0aW9uXCIgY2FwdGlvbi5iaW5kPVwibWVzc2FnZS5jYXB0aW9uXCIgdHlwZS5iaW5kPVwibWVzc2FnZS50eXBlXCI+PC9wPlxuICAgIDxuZy1jb250ZW50IG5nUHJvamVjdEFzPVwiZm9ybVt3bVdpemFyZFN0ZXBdXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwid2l6YXJkQWN0aW9uXCI+PC9uZy1jb250YWluZXI+XG4iXX0=
503
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9jb250YWluZXJzL3dpemFyZC9zcmMvd2l6YXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9jb250YWluZXJzL3dpemFyZC9zcmMvd2l6YXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixNQUFNLEVBQ04sUUFBUSxFQUVSLFFBQVEsRUFDUixTQUFTLEVBQ1QsSUFBSSxFQUNKLFdBQVcsRUFDZCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzlCLE9BQU8sRUFDSCxpQkFBaUIsRUFFakIsa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsT0FBTyxFQUNWLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7O0lDbEIxRCwyQkFBc0U7OztJQUVsRSxnQ0FBOEU7SUFBQSxZQUFPO0lBQUEsaUJBQU87OztJQUFkLGNBQU87SUFBUCw4QkFBTzs7O0lBQ3JGLHdCQUFtSzs7O0lBQ25LLHdCQUFpSTs7O0lBQ2pJLG9CQUFpTTs7O0lBQTlMLDZEQUFtQzs7O0lBQ3RDLG9CQUFxSTs7O0lBQWxJLGlFQUF1Qzs7O0lBRzFDLDRCQUFxRDtJQUFBLFlBQWU7SUFBQSxpQkFBTzs7O0lBQXRCLGNBQWU7SUFBZixzQ0FBZTs7OztJQUd4RSxnQ0FBa0Y7SUFDOUUsMkJBQThEO0lBQzlELDZCQUF1RTtJQUFsRCw4S0FBUyx5QkFB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QiwwQ0FBcUI7WUFHeEIsZUFBOEI7WUFBOUIsbURBQThCOzs7aUZEVWhDLGVBQWU7Y0FSM0IsU0FBUzsyQkFDSSxlQUFlLGFBRWQ7b0JBQ1Asa0JBQWtCLGlCQUFpQjtvQkFDbkMsRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO2lCQUNuRTs7c0JBNEQyQixJQUFJOztzQkFBSSxNQUFNO3VCQUFDLE9BQU87O3NCQUF5QixNQUFNO3VCQUFDLGtCQUFrQjs7c0JBQUcsUUFBUTtxQkF2RHpFLEtBQUs7a0JBQTFDLGVBQWU7bUJBQUMsbUJBQW1CO1lBQ3FDLFlBQVk7a0JBQXBGLFlBQVk7bUJBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFOztrRkFKOUQsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNlbGYsXG4gICAgVGVtcGxhdGVSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7bm9vcH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBUFBMWV9TVFlMRVNfVFlQRSxcbiAgICBJV2lkZ2V0Q29uZmlnLFxuICAgIHByb3ZpZGVBc1dpZGdldFJlZixcbiAgICBzdHlsZXIsXG4gICAgU3R5bGFibGVDb21wb25lbnQsXG4gICAgQ29udGV4dFxufSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4vd2l6YXJkLnByb3BzJztcbmltcG9ydCB7IFdpemFyZFN0ZXBEaXJlY3RpdmUgfSBmcm9tICcuL3dpemFyZC1zdGVwL3dpemFyZC1zdGVwLmRpcmVjdGl2ZSc7XG5cbmNvbnN0IERFRkFVTFRfQ0xTID0gJ2FwcC13aXphcmQgcGFuZWwgY2xlYXJmaXgnO1xuY29uc3QgV0lER0VUX0NPTkZJRzogSVdpZGdldENvbmZpZyA9IHtcbiAgICB3aWRnZXRUeXBlOiAnd20td2l6YXJkJyxcbiAgICBob3N0Q2xhc3M6IERFRkFVTFRfQ0xTXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2Rpdlt3bVdpemFyZF0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi93aXphcmQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoV2l6YXJkQ29tcG9uZW50KSxcbiAgICAgICAge3Byb3ZpZGU6IENvbnRleHQsIHVzZUZhY3Rvcnk6ICgpID0+IHsgcmV0dXJuIHt9IH0sIG11bHRpOiB0cnVlfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgV2l6YXJkQ29tcG9uZW50IGV4dGVuZHMgU3R5bGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFdpemFyZFN0ZXBEaXJlY3RpdmUpIHN0ZXBzOiBRdWVyeUxpc3Q8V2l6YXJkU3RlcERpcmVjdGl2ZT47XG4gICAgQENvbnRlbnRDaGlsZCgnd2l6YXJkQWN0aW9uJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgZGVzY2VuZGFudHM6IGZhbHNlIH0pIHdpemFyZEFjdGlvbjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIHB1YmxpYyBtZXNzYWdlOiB7Y2FwdGlvbjogc3RyaW5nLCB0eXBlOiBzdHJpbmd9O1xuICAgIHB1YmxpYyBjdXJyZW50U3RlcDogV2l6YXJkU3RlcERpcmVjdGl2ZTtcblxuICAgIHB1YmxpYyBzdGVwQ2xhc3M6IHN0cmluZztcbiAgICBwdWJsaWMgY2xhc3M7XG4gICAgcHVibGljIG5hbWU7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9taXNlUmVzb2x2ZXJGbjogRnVuY3Rpb247XG4gICAgcHVibGljIGFjdGlvbnNhbGlnbm1lbnQ6IGFueTtcbiAgICBwdWJsaWMgY2FuY2VsYWJsZTogYW55O1xuICAgIHB1YmxpYyBlbmFibGVuZXh0OiBhbnk7XG4gICAgcHVibGljIHdpekNvbnRleHQ6IGFueTtcbiAgICBwdWJsaWMgY2FuY2VsYnRubGFiZWw6IGFueTtcbiAgICBwdWJsaWMgZG9uZWJ0bmxhYmVsOiBhbnk7XG4gICAgcHVibGljIHByZXZpb3VzYnRubGFiZWw6IGFueTtcbiAgICBwdWJsaWMgbmV4dGJ0bmxhYmVsOiBhbnk7XG5cbiAgICBnZXQgaGFzUHJldlN0ZXAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pc0ZpcnN0U3RlcCh0aGlzLmN1cnJlbnRTdGVwKTtcbiAgICB9XG5cbiAgICBnZXQgaGFzTmV4dFN0ZXAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pc0xhc3RTdGVwKHRoaXMuY3VycmVudFN0ZXApO1xuICAgIH1cblxuICAgIGdldCBzaG93RG9uZUJ0bigpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRTdGVwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICF0aGlzLmhhc05leHRTdGVwICYmIHRoaXMuY3VycmVudFN0ZXAuZW5hYmxlRG9uZTtcbiAgICB9XG5cbiAgICBnZXQgZW5hYmxlUHJldigpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRTdGVwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFN0ZXAuZW5hYmxlUHJldjtcbiAgICB9XG5cbiAgICBnZXQgZW5hYmxlTmV4dCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRTdGVwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZW5hYmxlbmV4dCA/IHRydWUgOiAodGhpcy5jdXJyZW50U3RlcC5lbmFibGVOZXh0ICYmIHRoaXMuY3VycmVudFN0ZXAuaXNWYWxpZCk7XG4gICAgfVxuXG4gICAgZ2V0IGVuYWJsZURvbmUoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5jdXJyZW50U3RlcCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTdGVwLmVuYWJsZURvbmUgJiYgdGhpcy5jdXJyZW50U3RlcC5pc1ZhbGlkO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIEBTZWxmKCkgQEluamVjdChDb250ZXh0KSBjb250ZXh0czogQXJyYXk8YW55PiwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55KSB7XG4gICAgICAgIGxldCByZXNvbHZlRm46IEZ1bmN0aW9uID0gbm9vcDtcblxuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCwgbmV3IFByb21pc2UocmVzID0+IHJlc29sdmVGbiA9IHJlcykpO1xuICAgICAgICBzdHlsZXIodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzLCBBUFBMWV9TVFlMRVNfVFlQRS5TSEVMTCk7XG5cbiAgICAgICAgdGhpcy5wcm9taXNlUmVzb2x2ZXJGbiA9IHJlc29sdmVGbjtcblxuICAgICAgICAvLyBpbml0aWFsaXplIHRoZSBtZXNzYWdlIG9iamVjdCB3aXRoIGRlZmF1bHQgdmFsdWVzXG4gICAgICAgIHRoaXMubWVzc2FnZSA9IHtcbiAgICAgICAgICAgIGNhcHRpb246ICcnLFxuICAgICAgICAgICAgdHlwZTogJydcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy53aXpDb250ZXh0ID0gY29udGV4dHNbMF07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyBuZXh0IHZhbGlkIHN0ZXAuIHRoZSBpbmRleCBwYXNzZWQgaXMgYWxzbyBjaGVja2VkIGlmIGl0cyB2YWxpZCBzdGVwXG4gICAgICogQHBhcmFtIGluZGV4XG4gICAgICogQHJldHVybnMge1dpemFyZFN0ZXBEaXJlY3RpdmV9XG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXROZXh0VmFsaWRTdGVwRm9ybUluZGV4KGluZGV4OiBudW1iZXIpOiBXaXphcmRTdGVwRGlyZWN0aXZlIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IGluZGV4OyBpIDwgdGhpcy5zdGVwcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgc3RlcCA9IHRoaXMuZ2V0U3RlcFJlZkJ5SW5kZXgoaSk7XG4gICAgICAgICAgICBpZiAoc3RlcC5zaG93KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0ZXA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIHByZXZpb3VzIHZhbGlkIHN0ZXAuIHRoZSBpbmRleCBwYXNzZWQgaXMgYWxzbyBjaGVja2VkIGlmIGl0cyB2YWxpZCBzdGVwXG4gICAgICogQHBhcmFtIGluZGV4XG4gICAgICogQHJldHVybnMge1dpemFyZFN0ZXBEaXJlY3RpdmV9XG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRQcmV2aW91c1ZhbGlkU3RlcEZvcm1JbmRleChpbmRleDogbnVtYmVyKTogV2l6YXJkU3RlcERpcmVjdGl2ZSB7XG4gICAgICAgIGZvciAobGV0IGkgPSBpbmRleDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHN0ZXAgPSB0aGlzLmdldFN0ZXBSZWZCeUluZGV4KGkpO1xuICAgICAgICAgICAgaWYgKHN0ZXAuc2hvdykge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdGVwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyBjdXJyZW50IHN0ZXAgaW5kZXggdmFsdWUuXG4gICAgICogQHJldHVybnMge251bWJlcn1cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldEN1cnJlbnRTdGVwSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RlcEluZGV4QnlSZWYodGhpcy5jdXJyZW50U3RlcCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyBzdGVwUmVmIHdoZW4gaW5kZXggaXMgcGFzc2VkLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICAgICAqIEByZXR1cm5zIHtXaXphcmRTdGVwRGlyZWN0aXZlfVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0U3RlcFJlZkJ5SW5kZXgoaW5kZXg6IG51bWJlcik6IFdpemFyZFN0ZXBEaXJlY3RpdmUge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGVwcy50b0FycmF5KClbaW5kZXhdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgdGhlIGluZGV4IHZhbHVlIG9mIHRoZSBzdGVwLlxuICAgICAqIEBwYXJhbSB7V2l6YXJkU3RlcERpcmVjdGl2ZX0gd2l6YXJkU3RlcFxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9XG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRTdGVwSW5kZXhCeVJlZih3aXphcmRTdGVwOiBXaXphcmRTdGVwRGlyZWN0aXZlKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RlcHMudG9BcnJheSgpLmluZGV4T2Yod2l6YXJkU3RlcCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0cyBzdGVwUmVmIGJ5IHNlYXJjaGluZyBvbiB0aGUgbmFtZSBwcm9wZXJ0eS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICAgICAqIEByZXR1cm5zIHtXaXphcmRTdGVwRGlyZWN0aXZlfVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0U3RlcFJlZkJ5TmFtZShuYW1lOiBzdHJpbmcpOiBXaXphcmRTdGVwRGlyZWN0aXZlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RlcHMuZmluZChzdGVwID0+IHN0ZXAubmFtZSA9PT0gbmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2V0cyBkZWZhdWx0IHN0ZXAgYXMgY3VycmVudCBzdGVwIGlmIGNvbmZpZ3VyZWRcbiAgICAgKiBvciBmaW5kcyBmaXJzdCB2YWxpZCBzdGVwIGFuZCBzZXQgaXQgYXMgY3VycmVudCBzdGVwLlxuICAgICAqIEBwYXJhbSB7V2l6YXJkU3RlcERpcmVjdGl2ZX0gc3RlcFxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0RGVmYXVsdFN0ZXAoc3RlcDogV2l6YXJkU3RlcERpcmVjdGl2ZSkge1xuICAgICAgICAvLyBJZiB0aGUgZGVmYXVsdCBzdGVwIGhhcyBzaG93IHRydWUgdGhlbiBvbmx5IHVwZGF0ZSB0aGUgY3VycmVudFN0ZXBcbiAgICAgICAgaWYgKHN0ZXAgJiYgc3RlcC5zaG93KSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTdGVwID0gc3RlcDtcbiAgICAgICAgICAgIHN0ZXAuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIHN0ZXAuaXNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgICAgICAvLyBNYXJrIGFsbCBwcmV2aW91cyBzdGVwIHN0YXR1cyBDT01QTEVURURcbiAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMuZ2V0U3RlcEluZGV4QnlSZWYoc3RlcCkgLSAxO1xuICAgICAgICAgICAgd2hpbGUgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmV2U3RlcCA9IHRoaXMuZ2V0U3RlcFJlZkJ5SW5kZXgoaW5kZXgpO1xuICAgICAgICAgICAgICAgIHByZXZTdGVwLmRvbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHByZXZTdGVwLmlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGluZGV4LS07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBzZXQgbmV4dCB2YWxpZCBzdGVwIGFzIGN1cnJlbnQgc3RlcFxuICAgICAgICAgICAgc3RlcCA9IHRoaXMuZ2V0TmV4dFZhbGlkU3RlcEZvcm1JbmRleCgwKTtcbiAgICAgICAgICAgIGlmIChzdGVwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0U3RlcChzdGVwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFkZE1vcmVUZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VsZWN0cyB0aGUgYXNzb2NpYXRlZCBzdGVwIHdoZW4gdGhlIHdpemFyZCBoZWFkZXIgaXMgY2xpY2tlZC5cbiAgICAgKiBAcGFyYW0gJGV2ZW50XG4gICAgICogQHBhcmFtIHtXaXphcmRTdGVwRGlyZWN0aXZlfSBjdXJyZW50U3RlcFxuICAgICAqL1xuICAgIHByaXZhdGUgb25XaXphcmRIZWFkZXJDbGljaygkZXZlbnQ6IEV2ZW50LCBjdXJyZW50U3RlcDogV2l6YXJkU3RlcERpcmVjdGl2ZSkge1xuICAgICAgICAvLyBzZWxlY3QgdGhlIHN0ZXAgaWYgaXQncyBzdGF0dXMgaXMgZG9uZVxuICAgICAgICBpZiAoY3VycmVudFN0ZXAuZG9uZSkge1xuICAgICAgICAgICAgLy8gc2V0IGFsbCB0aGUgbmV4dCBzdGVwcyBzdGF0dXMgYXMgZGlzYWJsZWQgYW5kIHByZXZpb3VzIHN0ZXBzIGFzIGRvbmVcbiAgICAgICAgICAgIHRoaXMuc3RlcHMuZm9yRWFjaCgoc3RlcCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPCB0aGlzLmdldFN0ZXBJbmRleEJ5UmVmKGN1cnJlbnRTdGVwKSkge1xuICAgICAgICAgICAgICAgICAgIHN0ZXAuZG9uZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgc3RlcC5pc0RvbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHN0ZXAuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBzdGVwLmlzRG9uZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gc2V0IHRoZSBzZWxlY3RlZCBzdGVwIGFzIGN1cnJlbnQgc3RlcCBhbmQgbWFrZSBpdCBhY3RpdmVcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFN0ZXAgPSBjdXJyZW50U3RlcDtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFN0ZXAuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuYWRkTW9yZVRleHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1ldGhvZCB0byBuYXZpZ2F0ZSB0byBuZXh0IHN0ZXBcbiAgICBwdWJsaWMgYXN5bmMgbmV4dChldmVudE5hbWU6IHN0cmluZyA9ICduZXh0Jykge1xuICAgICAgICBjb25zdCBjdXJyZW50U3RlcCA9IHRoaXMuY3VycmVudFN0ZXA7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTdGVwSW5kZXggPSB0aGlzLmdldEN1cnJlbnRTdGVwSW5kZXgoKTtcblxuICAgICAgICAvLyBhYm9ydCBpZiBvblNraXAgbWV0aG9kIHJldHVybnMgZmFsc2VcbiAgICAgICAgaWYgKGV2ZW50TmFtZSA9PT0gJ3NraXAnKSB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGN1cnJlbnRTdGVwLmludm9rZVNraXBDQihjdXJyZW50U3RlcEluZGV4KTtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmV4dGVuZE5leHRGbihjdXJyZW50U3RlcCwgY3VycmVudFN0ZXBJbmRleCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW50U3RlcC5pc1ZhbGlkICYmIGV2ZW50TmFtZSA9PT0gJ25leHQnKSB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSAgPSBhd2FpdCBjdXJyZW50U3RlcC5pbnZva2VOZXh0Q0IoY3VycmVudFN0ZXBJbmRleCk7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2UgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5leHRlbmROZXh0Rm4oY3VycmVudFN0ZXAsIGN1cnJlbnRTdGVwSW5kZXgpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZW5hYmxlbmV4dCAmJiAhdGhpcy5jdXJyZW50U3RlcC5pc1ZhbGlkKXtcbiAgICAgICAgICAgIEFycmF5LmZyb20oKDxhbnk+dGhpcykuY3VycmVudFN0ZXAuZ2V0QWxsRW1iZWRkZWRGb3JtcygpKT8uZm9yRWFjaCgoZm9ybTphbnkpID0+IHtcbiAgICAgICAgICAgICAgICBmb3JtLndpZGdldC5oaWdobGlnaHRJbnZhbGlkRmllbGRzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGV4dGVuZE5leHRGbihjdXJyZW50U3RlcCwgY3VycmVudFN0ZXBJbmRleCl7XG4gICAgICAgIGxldCBuZXh0U3RlcDogV2l6YXJkU3RlcERpcmVjdGl2ZTtcbiAgICAgICAgbmV4dFN0ZXAgPSB0aGlzLmdldE5leHRWYWxpZFN0ZXBGb3JtSW5kZXgoY3VycmVudFN0ZXBJbmRleCArIDEpO1xuICAgICAgICBuZXh0U3RlcC5pc0luaXRpYWxpemVkID0gdHJ1ZTtcblxuICAgICAgICAvLyBJZiB0aGVyZSBhcmUgYW55IHN0ZXBzIHdoaWNoIGhhcyBzaG93IHRoZW4gb25seSBjaGFuZ2Ugc3RhdGUgb2YgY3VycmVudCBzdGVwIGVsc2UgcmVtYWluIHNhbWVcbiAgICAgICAgaWYgKG5leHRTdGVwKSB7XG4gICAgICAgICAgICBjdXJyZW50U3RlcC5pc0RvbmUgPSB0cnVlO1xuICAgICAgICAgICAgY3VycmVudFN0ZXAuZG9uZSA9IHRydWU7XG4gICAgICAgICAgICBuZXh0U3RlcC5hY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50U3RlcCA9IG5leHRTdGVwO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWRkTW9yZVRleHQoKTtcbiAgICB9XG4gICAgLy8gTWV0aG9kIHRvIG5hdmlnYXRlIHRvIHByZXZpb3VzIHN0ZXBcbiAgICBwdWJsaWMgYXN5bmMgcHJldigpIHtcbiAgICAgICAgY29uc3QgY3VycmVudFN0ZXAgPSB0aGlzLmN1cnJlbnRTdGVwO1xuICAgICAgICBjb25zdCBjdXJyZW50U3RlcEluZGV4ID0gdGhpcy5nZXRDdXJyZW50U3RlcEluZGV4KCk7XG5cbiAgICAgICAgbGV0IHByZXZTdGVwOiBXaXphcmRTdGVwRGlyZWN0aXZlO1xuXG4gICAgICAgIC8vIGFib3J0IGlmIG9uUHJldiBtZXRob2QgcmV0dXJucyBmYWxzZS5cbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjdXJyZW50U3RlcC5pbnZva2VQcmV2Q0IoY3VycmVudFN0ZXBJbmRleCk7XG4gICAgICAgIGlmIChyZXNwb25zZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHByZXZTdGVwID0gdGhpcy5nZXRQcmV2aW91c1ZhbGlkU3RlcEZvcm1JbmRleChjdXJyZW50U3RlcEluZGV4IC0gMSk7XG5cbiAgICAgICAgLy8gSWYgdGhlcmUgYXJlIGFueSBzdGVwcyB3aGljaCBoYXMgc2hvdyB0aGVuIG9ubHkgY2hhbmdlIHN0YXRlIG9mIGN1cnJlbnQgc3RlcCBlbHNlIHJlbWFpbiBzYW1lXG4gICAgICAgIGlmIChwcmV2U3RlcCkge1xuICAgICAgICAgICAgY3VycmVudFN0ZXAuaXNEb25lID0gZmFsc2U7XG4gICAgICAgICAgICBjdXJyZW50U3RlcC5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICBwcmV2U3RlcC5hY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50U3RlcCA9IHByZXZTdGVwO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWRkTW9yZVRleHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2tpcCgpIHtcbiAgICAgICAgdGhpcy5uZXh0KCdza2lwJyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdvdG9TdGVwKHN0ZXBOYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgaWYoc3RlcE5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGdvdG9TdGVwSW5kZXggPSB0aGlzLnN0ZXBzLnRvQXJyYXkoKS5tYXAoc3RlcCA9PiBzdGVwLm5hbWUpLmluZGV4T2Yoc3RlcE5hbWUpO1xuICAgICAgICAgICAgaWYoZ290b1N0ZXBJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBnb3RvU3RlcDogV2l6YXJkU3RlcERpcmVjdGl2ZSA9IHRoaXMuZ2V0U3RlcFJlZkJ5SW5kZXgoZ290b1N0ZXBJbmRleCk7XG4gICAgICAgICAgICAgICAgaWYoZ290b1N0ZXA/LnNob3cpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbldpemFyZEhlYWRlckNsaWNrKGV2ZW50LCBnb3RvU3RlcCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIlRoZSBnb3RvU3RlcCBmdW5jdGlvbiBjYW5ub3QgbmF2aWdhdGUgdG8gaGlkZGVuIHN0ZXBzXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgQ291bGQgbm90IGZpbmQgc3RlcCAnJHtzdGVwTmFtZX0nYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNZXRob2QgdG8gaW52b2tlIG9uLURvbmUgZXZlbnQgb24gd2l6YXJkXG4gICAgcHVibGljIGRvbmUoKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFN0ZXAuaXNEb25lID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdkb25lJywge3N0ZXBzOiB0aGlzLnN0ZXBzLnRvQXJyYXkoKX0pO1xuICAgIH1cbiAgICAvLyBNZXRob2QgdG8gaW52b2tlIG9uLUNhbmNlbCBldmVudCBvbiB3aXphcmRcbiAgICBwdWJsaWMgY2FuY2VsICgpIHtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdjYW5jZWwnLCB7c3RlcHM6IHRoaXMuc3RlcHMudG9BcnJheSgpfSk7XG4gICAgfVxuICAgIHB1YmxpYyBhZGRNb3JlVGV4dCgpe1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcblxuXG4gICAgICAgIHZhciBuZXdXaW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0aCgpO1xuICAgICAgICBpZihuZXdXaW5kb3dXaWR0aCA8IDc2OCl7XG4gICAgICAgICQoXCIuYXBwLXdpemFyZC1zdGVwLmN1cnJlbnQgLnN1YnRpdGxlLXdyYXBwZXIgLnN0ZXAtdGl0bGVcIikuY3NzKHtcImhlaWdodFwiOlwiYXV0b1wiLFwiZGlzcGxheVwiOlwiYmxvY2tcIn0pO1xuICAgICAgICB2YXIgc3VidGl0bGVUZXh0TGVuZ3RoID0gJChcIi5hcHAtd2l6YXJkLXN0ZXAuY3VycmVudCAuc3VidGl0bGUtd3JhcHBlciAuc3RlcC10aXRsZVwiKS5oZWlnaHQoKTtcbiAgICAgICAgJChcIi5yZWFkX21vcmVcIikuY3NzKFwiZGlzcGxheVwiLFwibm9uZVwiKTtcbiAgICAgICAgJChcIi5jdXJyZW50IC5zdWJ0aXRsZS13cmFwcGVyXCIpLnJlbW92ZUNsYXNzKFwicmVhZG1vcmVfc3VidGl0bGVcIik7XG5cbiAgICAgICAgaWYoc3VidGl0bGVUZXh0TGVuZ3RoPjQ0KXtcbiAgICAgICAgICAgICQoXCIuYXBwLXdpemFyZC1zdGVwLmN1cnJlbnQgLnN1YnRpdGxlLXdyYXBwZXIgLnN0ZXAtdGl0bGVcIikuY3NzKHtcImhlaWdodFwiOlwiNDRweFwiLFwiZGlzcGxheVwiOlwiLXdlYmtpdC1ib3hcIn0pO1xuICAgICAgICAgICAgJChcIi5jdXJyZW50IC5yZWFkX21vcmVcIikuY3NzKFwiZGlzcGxheVwiLFwiYmxvY2tcIik7XG4gICAgICAgICAgICAkKFwiLmFjdGl2ZSAucmVhZF9tb3JlXCIpLmNzcyhcImRpc3BsYXlcIixcIm5vbmVcIik7XG4gICAgICAgICAgICAkKFwiLmRpc2FibGUgLnJlYWRfbW9yZVwiKS5jc3MoXCJkaXNwbGF5XCIsXCJub25lXCIpO1xuICAgICAgICAgICAgJChcIi5hcHAtd2l6YXJkLXN0ZXA+YVwiKS5jc3MoXCJoZWlnaHRcIixcIjEwMHB4XCIpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIH1cbiAgICBwdWJsaWMgcmVhZE1vcmVTdWJ0aXRsZSgpe1xuICAgICAgICAkKFwiLmN1cnJlbnQgLnN1YnRpdGxlLXdyYXBwZXJcIikuYWRkQ2xhc3MoXCJyZWFkbW9yZV9zdWJ0aXRsZVwiKTtcbiAgICAgICAgJChcIi5jdXJyZW50IC5yZWFkX21vcmVcIikuY3NzKFwiZGlzcGxheVwiLFwibm9uZVwiKTtcbiAgICAgICAgJChkb2N1bWVudCkub24oXCJtb3VzZXVwXCIsZnVuY3Rpb24oZTphbnkpXG4gICAgICAgIHtcbiAgICAgICAgICAgIHZhciBjb250YWluZXIgPSAkKFwiLnN1YnRpdGxlLXdyYXBwZXJcIik7XG4gICAgICAgICAgICAvLyBpZiB0aGUgdGFyZ2V0IG9mIHRoZSBjbGljayBpc24ndCB0aGUgY29udGFpbmVyIG5vciBhIGRlc2NlbmRhbnQgb2YgdGhlIGNvbnRhaW5lclxuICAgICAgICAgICAgaWYgKCFjb250YWluZXIuaXMoZS50YXJnZXQpICYmIGNvbnRhaW5lci5oYXMoZS50YXJnZXQpLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAkKFwiLmN1cnJlbnQgLnN1YnRpdGxlLXdyYXBwZXJcIikucmVtb3ZlQ2xhc3MoXCJyZWFkbW9yZV9zdWJ0aXRsZVwiKTtcbiAgICAgICAgICAgICAgICAkKFwiLmN1cnJlbnQgLnJlYWRfbW9yZVwiKS5jc3MoXCJkaXNwbGF5XCIsXCJibG9ja1wiKTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vZmYoXCJtb3VzZXVwXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRmlyc3RTdGVwKHN0ZXBSZWY6IFdpemFyZFN0ZXBEaXJlY3RpdmUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RlcHMuZmlyc3QgPT09IHN0ZXBSZWY7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0xhc3RTdGVwKHN0ZXBSZWY6IFdpemFyZFN0ZXBEaXJlY3RpdmUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RlcHMubGFzdCA9PT0gc3RlcFJlZjtcbiAgICB9XG5cblxuICAgIC8vIERlZmluZSB0aGUgcHJvcGVydHkgY2hhbmdlIGhhbmRsZXIuIFRoaXMgTWV0aG9kIHdpbGwgYmUgdHJpZ2dlcmVkIHdoZW4gdGhlcmUgaXMgYSBjaGFuZ2UgaW4gdGhlIHdpZGdldCBwcm9wZXJ0eVxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG4gICAgICAgIC8vIE1vbml0b3JpbmcgY2hhbmdlcyBmb3IgcHJvcGVydGllcyBhbmQgYWNjb3JkaW5nbHkgaGFuZGxpbmcgcmVzcGVjdGl2ZSBjaGFuZ2VzXG5cbiAgICAgICAgaWYgKGtleSA9PT0gJ3N0ZXBzdHlsZScpIHtcbiAgICAgICAgICAgIHRoaXMuc3RlcENsYXNzID0gIG52ID09PSAnanVzdGlmaWVkJyA/ICduYXYtanVzdGlmaWVkJyA6ICcnO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2RlZmF1bHRzdGVwJykge1xuICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0U3RlcCh0aGlzLmdldFN0ZXBSZWZCeU5hbWUobnYpKTtcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdhY3Rpb25zYWxpZ25tZW50Jykge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2Rpdi5hcHAtd2l6YXJkLWFjdGlvbnMnKT8uY2xhc3NMaXN0LnJlcGxhY2Uob3YsIG52KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICBzdXBlci5uZ0FmdGVyQ29udGVudEluaXQoKTtcbiAgICAgICAgdGhpcy5wcm9taXNlUmVzb2x2ZXJGbigpO1xuICAgICAgICB0aGlzLndpekNvbnRleHQuaGFzTmV4dFN0ZXAgPSAoKSA9PiB0aGlzLmhhc05leHRTdGVwO1xuICAgICAgICB0aGlzLndpekNvbnRleHQuaGFzUHJldmlvdXNTdGVwID0gKCkgPT4gdGhpcy5oYXNQcmV2U3RlcDtcbiAgICAgICAgdGhpcy53aXpDb250ZXh0Lmhhc05vTmV4dFN0ZXAgPSAoKSA9PiB0aGlzLnNob3dEb25lQnRuO1xuICAgICAgICB0aGlzLndpekNvbnRleHQuY2FuY2VsYWJsZSA9ICgpID0+IHRoaXMuY2FuY2VsYWJsZTtcbiAgICAgICAgdGhpcy53aXpDb250ZXh0LnNraXBwYWJsZSA9ICgpID0+IHRoaXMuY3VycmVudFN0ZXA/LmVuYWJsZXNraXA7XG4gICAgICAgIHRoaXMud2l6Q29udGV4dC5uZXh0ID0gKCkgPT4gdGhpcy5uZXh0KCk7XG4gICAgICAgIHRoaXMud2l6Q29udGV4dC5wcmV2aW91cyA9ICgpID0+IHRoaXMucHJldigpO1xuICAgICAgICB0aGlzLndpekNvbnRleHQuZG9uZSA9ICgpID0+IHRoaXMuZG9uZSgpO1xuICAgICAgICB0aGlzLndpekNvbnRleHQuY2FuY2VsID0gKCkgPT4gdGhpcy5jYW5jZWwoKTtcbiAgICAgICAgdGhpcy53aXpDb250ZXh0LnNraXAgPSAoKSA9PiB0aGlzLnNraXAoKTtcbiAgICAgICAgdGhpcy53aXpDb250ZXh0Lm5leHRidG5sYWJlbCA9ICgpID0+IHRoaXMubmV4dGJ0bmxhYmVsO1xuICAgICAgICB0aGlzLndpekNvbnRleHQucHJldmlvdXNidG5sYWJlbCA9ICgpID0+IHRoaXMucHJldmlvdXNidG5sYWJlbDtcbiAgICAgICAgdGhpcy53aXpDb250ZXh0LmRvbmVidG5sYWJlbCA9ICgpID0+IHRoaXMuZG9uZWJ0bmxhYmVsO1xuICAgICAgICB0aGlzLndpekNvbnRleHQuY2FuY2VsYnRubGFiZWwgPSAoKSA9PiB0aGlzLmNhbmNlbGJ0bmxhYmVsO1xuICAgICAgICB0aGlzLndpekNvbnRleHQuYWN0aW9uc2FsaWdubWVudCA9ICgpID0+IHRoaXMuYWN0aW9uc2FsaWdubWVudDtcbiAgICAgICAgdGhpcy53aXpDb250ZXh0LmRpc2FibGVOZXh0ID0gKCkgPT4gIXRoaXMuZW5hYmxlTmV4dDtcbiAgICAgICAgdGhpcy53aXpDb250ZXh0LmRpc2FibGVQcmV2aW91cyA9ICgpID0+ICF0aGlzLmVuYWJsZVByZXY7XG4gICAgICAgIHRoaXMud2l6Q29udGV4dC5kaXNhYmxlRG9uZSA9ICgpID0+ICF0aGlzLmVuYWJsZURvbmU7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgc3R5bGVyKFxuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wYW5lbC1ib2R5JykgYXMgSFRNTEVsZW1lbnQsXG4gICAgICAgICAgICB0aGlzLFxuICAgICAgICAgICAgQVBQTFlfU1RZTEVTX1RZUEUuSU5ORVJfU0hFTExcbiAgICAgICAgKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IGlmKCQod2luZG93KS53aWR0aCgpPDc2OCkge1xuICAgICAgICAgICAgJChcIi5hcHAtd2l6YXJkXCIpLnJlbW92ZUNsYXNzKFwidmVydGljYWxcIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2Rpdi5hcHAtd2l6YXJkLWFjdGlvbnMtcmlnaHQnKT8uY2xhc3NMaXN0LnJlbW92ZSgnYXBwLWNvbnRhaW5lcicpO1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignZGl2LmFwcC13aXphcmQtYWN0aW9ucycpPy5jbGFzc0xpc3QuYWRkKHRoaXMuYWN0aW9uc2FsaWdubWVudCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhcHAtd2l6YXJkLWhlYWRpbmdcIj5cbiAgICA8dWwgY2xhc3M9XCJhcHAtd2l6YXJkLXN0ZXBzIG5hdiBuYXYtcGlsbHMge3tzdGVwQ2xhc3N9fVwiPlxuICAgICAgICA8bGkgY2xhc3M9XCJhcHAtd2l6YXJkLXN0ZXBcIiAqbmdGb3I9XCJsZXQgc3RlcCBvZiBzdGVwczsgbGV0IGkgPSBpbmRleFwiIFtoaWRkZW5dPVwiIXN0ZXAuc2hvd1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7YWN0aXZlOiBzdGVwLmRvbmUsIGN1cnJlbnQ6IHN0ZXAuYWN0aXZlLCBkaXNhYmxlZDogc3RlcC5kaXNhYmxlZH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uV2l6YXJkSGVhZGVyQ2xpY2soJGV2ZW50LCBzdGVwKVwiPlxuICAgICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIFthdHRyLmFyaWEtY3VycmVudF09XCJzdGVwLmFjdGl2ZSA/ICdzdGVwJyA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJzdGVwLmRpc2FibGVkXCIgW2F0dHIudGl0bGVdPVwic3RlcC50aXRsZVwiXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3RpdGxlLWNlbnRlci1hbGlnbic6Y2xhc3MgJiYgY2xhc3MuaW5jbHVkZXMoJ2NsYXNzaWMnKSAmJiAhc3RlcC5zdWJ0aXRsZX1cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFycm93XCIgKm5nSWY9XCJjbGFzcyAmJiBjbGFzcy5pbmNsdWRlcygnY2xhc3NpYycpXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2l6YXJkLXN0ZXAtbnVtYmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRcIiAqbmdJZj1cImNsYXNzICYmIGNsYXNzLmluY2x1ZGVzKCdudW1iZXInKSAmJiAhc3RlcC5pc0RvbmVcIj57e2krMX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImRvdHRlZHN0ZXBwZXJcIiAqbmdJZj1cImNsYXNzICYmIChjbGFzcy5pbmNsdWRlcygnZG90dGVkc3RlcHBlcicpIHx8IGNsYXNzLmluY2x1ZGVzKCd0ZXh0LWlubGluZScpICYmICFjbGFzcy5pbmNsdWRlcygnaWNvbnN0ZXBwZXInKSkgJiYgIXN0ZXAuaXNEb25lXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImFwcC1pY29uIHdpIHdpLWRvbmVcIiAqbmdJZj1cImNsYXNzICYmIChjbGFzcy5pbmNsdWRlcygnZG90dGVkc3RlcHBlcicpIHx8IGNsYXNzLmluY2x1ZGVzKCdudW1iZXInKSkgJiYgc3RlcC5pc0RvbmVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYXBwLWljb24ge3tzdGVwLmljb25jbGFzc319XCIgKm5nSWY9XCIoY2xhc3MgJiYgY2xhc3MuaW5jbHVkZXMoJ2ljb25zdGVwcGVyJykpICYmICgoc3RlcC5pY29uY2xhc3MgJiYgIXN0ZXAuaXNEb25lKSB8fCAoc3RlcC5pY29uY2xhc3MgJiYgc3RlcC5pc0RvbmUgJiYgc3RlcC5kb25laWNvbmNsYXNzID09PScnKSlcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYXBwLWljb24ge3tzdGVwLmRvbmVpY29uY2xhc3N9fVwiICpuZ0lmPVwic3RlcC5kb25laWNvbmNsYXNzICYmIHN0ZXAuaXNEb25lICYmIChjbGFzcyAmJiBjbGFzcy5pbmNsdWRlcygnaWNvbnN0ZXBwZXInKSlcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGUtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNsYXNzICYmIGNsYXNzLmluY2x1ZGVzKCd0ZXh0LWlubGluZScpXCI+e3snMCcgKyAoaSsxKX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0ZXAtdGl0bGVcIiBbdGV4dENvbnRlbnRdPVwic3RlcC50aXRsZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWJ0aXRsZS13cmFwcGVyXCIgW2F0dHIudGl0bGVdPVwic3RlcC5zdWJ0aXRsZVwiICpuZ0lmPVwic3RlcC5zdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0ZXAtdGl0bGVcIiBbdGV4dENvbnRlbnRdPVwic3RlcC5zdWJ0aXRsZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJyZWFkX21vcmVcIiAoY2xpY2spPVwicmVhZE1vcmVTdWJ0aXRsZSgpXCIgc3R5bGU9XCJkaXNwbGF5Om5vbmVcIj5tb3JlPC9hPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICA8L3VsPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiYXBwLXdpemFyZC1ib2R5IHBhbmVsLWJvZHlcIj5cbiAgICA8cCB3bU1lc3NhZ2UgKm5nSWY9XCJtZXNzYWdlLmNhcHRpb25cIiBjYXB0aW9uLmJpbmQ9XCJtZXNzYWdlLmNhcHRpb25cIiB0eXBlLmJpbmQ9XCJtZXNzYWdlLnR5cGVcIj48L3A+XG4gICAgPG5nLWNvbnRlbnQgbmdQcm9qZWN0QXM9XCJmb3JtW3dtV2l6YXJkU3RlcF1cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ3aXphcmRBY3Rpb25cIj48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -437,18 +437,20 @@ class WizardComponent extends StylableComponent {
437
437
  }
438
438
  }
439
439
  // Method to navigate to next step
440
- next(eventName = 'next') {
440
+ async next(eventName = 'next') {
441
441
  const currentStep = this.currentStep;
442
442
  const currentStepIndex = this.getCurrentStepIndex();
443
443
  // abort if onSkip method returns false
444
444
  if (eventName === 'skip') {
445
- if (currentStep.invokeSkipCB(currentStepIndex) === false) {
445
+ const response = await currentStep.invokeSkipCB(currentStepIndex);
446
+ if (response === false) {
446
447
  return;
447
448
  }
448
449
  this.extendNextFn(currentStep, currentStepIndex);
449
450
  }
450
451
  else if (this.currentStep.isValid && eventName === 'next') {
451
- if (currentStep.invokeNextCB(currentStepIndex) === false) {
452
+ const response = await currentStep.invokeNextCB(currentStepIndex);
453
+ if (response === false) {
452
454
  return;
453
455
  }
454
456
  this.extendNextFn(currentStep, currentStepIndex);
@@ -473,12 +475,13 @@ class WizardComponent extends StylableComponent {
473
475
  this.addMoreText();
474
476
  }
475
477
  // Method to navigate to previous step
476
- prev() {
478
+ async prev() {
477
479
  const currentStep = this.currentStep;
478
480
  const currentStepIndex = this.getCurrentStepIndex();
479
481
  let prevStep;
480
482
  // abort if onPrev method returns false.
481
- if (currentStep.invokePrevCB(currentStepIndex) === false) {
483
+ const response = await currentStep.invokePrevCB(currentStepIndex);
484
+ if (response === false) {
482
485
  return;
483
486
  }
484
487
  prevStep = this.getPreviousValidStepFormIndex(currentStepIndex - 1);
@@ -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-action/wizard-action.props.ts","../../../../../projects/components/widgets/containers/wizard/src/wizard-action/wizard-action.directive.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 for (const form of this.getAllEmbeddedForms()) {\n if (form.widget && form.widget.ngform && !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\">\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-current]=\"step.active ? 'step' : null\"\n [attr.aria-disabled]=\"step.disabled\" [attr.title]=\"step.title\"\n [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\">\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<ng-container *ngTemplateOutlet=\"wizardAction\"></ng-container>\n","import {\n AfterContentInit,\n AfterViewInit,\n Component,\n ContentChild,\n ContentChildren,\n Inject,\n Injector,\n OnInit,\n Optional,\n QueryList,\n Self,\n TemplateRef\n} from '@angular/core';\n\nimport {noop} from '@wm/core';\nimport {\n APPLY_STYLES_TYPE,\n IWidgetConfig,\n provideAsWidgetRef,\n styler,\n StylableComponent,\n Context\n} 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 {provide: Context, useFactory: () => { return {} }, multi: true}\n ]\n})\nexport class WizardComponent extends StylableComponent implements OnInit, AfterContentInit, AfterViewInit {\n static initializeProps = registerProps();\n\n @ContentChildren(WizardStepDirective) steps: QueryList<WizardStepDirective>;\n @ContentChild('wizardAction', { read: TemplateRef, descendants: false }) wizardAction: TemplateRef<any>;\n\n public message: {caption: string, type: string};\n public currentStep: WizardStepDirective;\n\n public stepClass: string;\n public class;\n public name;\n private readonly promiseResolverFn: Function;\n public actionsalignment: any;\n public cancelable: any;\n public enablenext: any;\n public wizContext: any;\n public cancelbtnlabel: any;\n public donebtnlabel: any;\n public previousbtnlabel: any;\n public nextbtnlabel: 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, @Self() @Inject(Context) contexts: Array<any>, @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 this.wizContext = contexts[0];\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\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 if (key === 'actionsalignment') {\n this.nativeElement.querySelector('div.app-wizard-actions')?.classList.replace(ov, nv);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n this.promiseResolverFn();\n this.wizContext.hasNextStep = () => this.hasNextStep;\n this.wizContext.hasPreviousStep = () => this.hasPrevStep;\n this.wizContext.hasNoNextStep = () => this.showDoneBtn;\n this.wizContext.cancelable = () => this.cancelable;\n this.wizContext.skippable = () => this.currentStep?.enableskip;\n this.wizContext.next = () => this.next();\n this.wizContext.previous = () => this.prev();\n this.wizContext.done = () => this.done();\n this.wizContext.cancel = () => this.cancel();\n this.wizContext.skip = () => this.skip();\n this.wizContext.nextbtnlabel = () => this.nextbtnlabel;\n this.wizContext.previousbtnlabel = () => this.previousbtnlabel;\n this.wizContext.donebtnlabel = () => this.donebtnlabel;\n this.wizContext.cancelbtnlabel = () => this.cancelbtnlabel;\n this.wizContext.actionsalignment = () => this.actionsalignment;\n this.wizContext.disableNext = () => !this.enableNext;\n this.wizContext.disablePrevious = () => !this.enablePrev;\n this.wizContext.disableDone = () => !this.enableDone;\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 this.nativeElement.querySelector('div.app-wizard-actions-right')?.classList.remove('app-container');\n this.nativeElement.querySelector('div.app-wizard-actions')?.classList.add(this.actionsalignment);\n });\n }\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-wizardaction',\n new Map([\n ['class', PROP_STRING],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ])\n );\n};\n","import {Directive, Inject, Injector, Optional} from '@angular/core';\nimport { BaseComponent, IWidgetConfig, provideAsWidgetRef } from '@wm/components/base';\nimport {registerProps} from \"./wizard-action.props\";\n\nconst WIDGET_INFO: IWidgetConfig = {\n widgetType: 'wm-wizardaction',\n hostClass: 'app-wizard-actions panel-footer '\n};\n\n@Directive({\n selector: 'div[wmWizardAction]',\n providers: [\n provideAsWidgetRef(WizardActionDirective)\n ],\n exportAs: 'wmWizardAction',\n})\nexport class WizardActionDirective extends BaseComponent {\n static initializeProps = registerProps();\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_INFO, explicitContext);\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';\nimport { WizardActionDirective } from './wizard-action/wizard-action.directive';\n\nconst components = [\n WizardActionDirective,\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-action/wizard-action.props.ts","../../../../../projects/components/widgets/containers/wizard/src/wizard-action/wizard-action.directive.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 for (const form of this.getAllEmbeddedForms()) {\n if (form.widget && form.widget.ngform && !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\">\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-current]=\"step.active ? 'step' : null\"\n [attr.aria-disabled]=\"step.disabled\" [attr.title]=\"step.title\"\n [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\">\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<ng-container *ngTemplateOutlet=\"wizardAction\"></ng-container>\n","import {\n AfterContentInit,\n AfterViewInit,\n Component,\n ContentChild,\n ContentChildren,\n Inject,\n Injector,\n OnInit,\n Optional,\n QueryList,\n Self,\n TemplateRef\n} from '@angular/core';\n\nimport {noop} from '@wm/core';\nimport {\n APPLY_STYLES_TYPE,\n IWidgetConfig,\n provideAsWidgetRef,\n styler,\n StylableComponent,\n Context\n} 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 {provide: Context, useFactory: () => { return {} }, multi: true}\n ]\n})\nexport class WizardComponent extends StylableComponent implements OnInit, AfterContentInit, AfterViewInit {\n static initializeProps = registerProps();\n\n @ContentChildren(WizardStepDirective) steps: QueryList<WizardStepDirective>;\n @ContentChild('wizardAction', { read: TemplateRef, descendants: false }) wizardAction: TemplateRef<any>;\n\n public message: {caption: string, type: string};\n public currentStep: WizardStepDirective;\n\n public stepClass: string;\n public class;\n public name;\n private readonly promiseResolverFn: Function;\n public actionsalignment: any;\n public cancelable: any;\n public enablenext: any;\n public wizContext: any;\n public cancelbtnlabel: any;\n public donebtnlabel: any;\n public previousbtnlabel: any;\n public nextbtnlabel: 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, @Self() @Inject(Context) contexts: Array<any>, @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 this.wizContext = contexts[0];\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 async 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 const response = await currentStep.invokeSkipCB(currentStepIndex);\n if (response === false) {\n return;\n }\n this.extendNextFn(currentStep, currentStepIndex);\n } else if (this.currentStep.isValid && eventName === 'next') {\n const response = await currentStep.invokeNextCB(currentStepIndex);\n if (response === 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 async 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 const response = await currentStep.invokePrevCB(currentStepIndex);\n if (response === 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\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 if (key === 'actionsalignment') {\n this.nativeElement.querySelector('div.app-wizard-actions')?.classList.replace(ov, nv);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n this.promiseResolverFn();\n this.wizContext.hasNextStep = () => this.hasNextStep;\n this.wizContext.hasPreviousStep = () => this.hasPrevStep;\n this.wizContext.hasNoNextStep = () => this.showDoneBtn;\n this.wizContext.cancelable = () => this.cancelable;\n this.wizContext.skippable = () => this.currentStep?.enableskip;\n this.wizContext.next = () => this.next();\n this.wizContext.previous = () => this.prev();\n this.wizContext.done = () => this.done();\n this.wizContext.cancel = () => this.cancel();\n this.wizContext.skip = () => this.skip();\n this.wizContext.nextbtnlabel = () => this.nextbtnlabel;\n this.wizContext.previousbtnlabel = () => this.previousbtnlabel;\n this.wizContext.donebtnlabel = () => this.donebtnlabel;\n this.wizContext.cancelbtnlabel = () => this.cancelbtnlabel;\n this.wizContext.actionsalignment = () => this.actionsalignment;\n this.wizContext.disableNext = () => !this.enableNext;\n this.wizContext.disablePrevious = () => !this.enablePrev;\n this.wizContext.disableDone = () => !this.enableDone;\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 this.nativeElement.querySelector('div.app-wizard-actions-right')?.classList.remove('app-container');\n this.nativeElement.querySelector('div.app-wizard-actions')?.classList.add(this.actionsalignment);\n });\n }\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-wizardaction',\n new Map([\n ['class', PROP_STRING],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ])\n );\n};\n","import {Directive, Inject, Injector, Optional} from '@angular/core';\nimport { BaseComponent, IWidgetConfig, provideAsWidgetRef } from '@wm/components/base';\nimport {registerProps} from \"./wizard-action.props\";\n\nconst WIDGET_INFO: IWidgetConfig = {\n widgetType: 'wm-wizardaction',\n hostClass: 'app-wizard-actions panel-footer '\n};\n\n@Directive({\n selector: 'div[wmWizardAction]',\n providers: [\n provideAsWidgetRef(WizardActionDirective)\n ],\n exportAs: 'wmWizardAction',\n})\nexport class WizardActionDirective extends BaseComponent {\n static initializeProps = registerProps();\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_INFO, explicitContext);\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';\nimport { WizardActionDirective } from './wizard-action/wizard-action.directive';\n\nconst components = [\n WizardActionDirective,\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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"}
@@ -77,9 +77,9 @@ export declare class WizardComponent extends StylableComponent implements OnInit
77
77
  * @param {WizardStepDirective} currentStep
78
78
  */
79
79
  private onWizardHeaderClick;
80
- next(eventName?: string): void;
80
+ next(eventName?: string): Promise<void>;
81
81
  extendNextFn(currentStep: any, currentStepIndex: any): void;
82
- prev(): void;
82
+ prev(): Promise<void>;
83
83
  skip(): void;
84
84
  gotoStep(stepName: string): void;
85
85
  done(): void;