@wavemaker/app-ng-runtime 11.4.0-next.28151 → 11.4.0-next.28701

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 (77) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +1 -1
  2. app-ng-runtime/build-task/bundles/index.umd.js.map +1 -1
  3. app-ng-runtime/build-task/esm2015/data/form/form-field/form-field.build.js +2 -2
  4. app-ng-runtime/build-task/fesm2015/index.js +1 -1
  5. app-ng-runtime/build-task/fesm2015/index.js.map +1 -1
  6. app-ng-runtime/components/base/bundles/index.umd.js +23 -1
  7. app-ng-runtime/components/base/bundles/index.umd.js.map +1 -1
  8. app-ng-runtime/components/base/esm2015/public_api.js +2 -2
  9. app-ng-runtime/components/base/esm2015/utils/widget-utils.js +16 -1
  10. app-ng-runtime/components/base/esm2015/widgets/common/base/base-field-validations.js +3 -2
  11. app-ng-runtime/components/base/esm2015/widgets/common/dialog/dialog.service.js +7 -1
  12. app-ng-runtime/components/base/fesm2015/index.js +23 -2
  13. app-ng-runtime/components/base/fesm2015/index.js.map +1 -1
  14. app-ng-runtime/components/base/index.metadata.json +1 -1
  15. app-ng-runtime/components/base/public_api.d.ts +1 -1
  16. app-ng-runtime/components/base/utils/widget-utils.d.ts +7 -0
  17. app-ng-runtime/components/data/form/bundles/index.umd.js +37 -13
  18. app-ng-runtime/components/data/form/bundles/index.umd.js.map +1 -1
  19. app-ng-runtime/components/data/form/esm2015/form-field/form-field.directive.js +26 -7
  20. app-ng-runtime/components/data/form/esm2015/form.component.js +10 -5
  21. app-ng-runtime/components/data/form/fesm2015/index.js +34 -10
  22. app-ng-runtime/components/data/form/fesm2015/index.js.map +1 -1
  23. app-ng-runtime/components/data/form/index.metadata.json +1 -1
  24. app-ng-runtime/components/data/list/bundles/index.umd.js +2 -2
  25. app-ng-runtime/components/data/list/bundles/index.umd.js.map +1 -1
  26. app-ng-runtime/components/data/list/esm2015/list.component.js +3 -3
  27. app-ng-runtime/components/data/list/fesm2015/index.js +2 -2
  28. app-ng-runtime/components/data/list/fesm2015/index.js.map +1 -1
  29. app-ng-runtime/components/data/list/index.metadata.json +1 -1
  30. app-ng-runtime/components/data/list/list.component.d.ts +1 -1
  31. app-ng-runtime/components/data/pagination/bundles/index.umd.js +1 -1
  32. app-ng-runtime/components/data/pagination/bundles/index.umd.js.map +1 -1
  33. app-ng-runtime/components/data/pagination/esm2015/pagination.component.js +2 -2
  34. app-ng-runtime/components/data/pagination/fesm2015/index.js +1 -1
  35. app-ng-runtime/components/data/pagination/fesm2015/index.js.map +1 -1
  36. app-ng-runtime/components/data/table/bundles/index.umd.js +57 -12
  37. app-ng-runtime/components/data/table/bundles/index.umd.js.map +1 -1
  38. app-ng-runtime/components/data/table/esm2015/table.component.js +56 -13
  39. app-ng-runtime/components/data/table/esm2015/table.props.js +3 -1
  40. app-ng-runtime/components/data/table/fesm2015/index.js +57 -12
  41. app-ng-runtime/components/data/table/fesm2015/index.js.map +1 -1
  42. app-ng-runtime/components/data/table/index.metadata.json +1 -1
  43. app-ng-runtime/components/data/table/table.component.d.ts +9 -0
  44. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +5 -0
  45. app-ng-runtime/components/dialogs/default/bundles/index.umd.js.map +1 -1
  46. app-ng-runtime/components/dialogs/default/esm2015/base-dialog.js +7 -2
  47. app-ng-runtime/components/dialogs/default/fesm2015/index.js +6 -1
  48. app-ng-runtime/components/dialogs/default/fesm2015/index.js.map +1 -1
  49. app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +1 -0
  50. app-ng-runtime/components/input/epoch/bundles/index.umd.js +13 -7
  51. app-ng-runtime/components/input/epoch/bundles/index.umd.js.map +1 -1
  52. app-ng-runtime/components/input/epoch/esm2015/base-date-time.component.js +13 -7
  53. app-ng-runtime/components/input/epoch/esm2015/date/date.component.js +2 -2
  54. app-ng-runtime/components/input/epoch/fesm2015/index.js +13 -7
  55. app-ng-runtime/components/input/epoch/fesm2015/index.js.map +1 -1
  56. app-ng-runtime/components/input/epoch/index.metadata.json +1 -1
  57. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +25 -19
  58. app-ng-runtime/components/navigation/menu/bundles/index.umd.js.map +1 -1
  59. app-ng-runtime/components/navigation/menu/esm2015/menu-dropdown-item/menu-dropdown-item.component.js +15 -5
  60. app-ng-runtime/components/navigation/menu/esm2015/menu.component.js +14 -19
  61. app-ng-runtime/components/navigation/menu/fesm2015/index.js +25 -20
  62. app-ng-runtime/components/navigation/menu/fesm2015/index.js.map +1 -1
  63. app-ng-runtime/components/navigation/menu/index.metadata.json +1 -1
  64. app-ng-runtime/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +7 -4
  65. app-ng-runtime/components/navigation/menu/menu.component.d.ts +3 -7
  66. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +3 -0
  67. app-ng-runtime/components/navigation/popover/bundles/index.umd.js.map +1 -1
  68. app-ng-runtime/components/navigation/popover/esm2015/popover.component.js +4 -1
  69. app-ng-runtime/components/navigation/popover/fesm2015/index.js +3 -0
  70. app-ng-runtime/components/navigation/popover/fesm2015/index.js.map +1 -1
  71. app-ng-runtime/core/bundles/index.umd.js +7 -1
  72. app-ng-runtime/core/bundles/index.umd.js.map +1 -1
  73. app-ng-runtime/core/esm2015/services/pagination.service.js +8 -2
  74. app-ng-runtime/core/fesm2015/index.js +7 -1
  75. app-ng-runtime/core/fesm2015/index.js.map +1 -1
  76. app-ng-runtime/package.json +1 -1
  77. app-ng-runtime/scripts/datatable/datatable.js +63 -13
@@ -21,7 +21,13 @@ export class PaginationService {
21
21
  fieldDefs = [];
22
22
  parent.gridOptions.setCurrentPage(1);
23
23
  }
24
- let currentPage = parent.currentPage;
24
+ let currentPage;
25
+ if (parent.widgetType === 'wm-table') {
26
+ currentPage = parent.gridOptions.showviewlessbutton && (parent.gridOptions.mode === 'viewless') ? parent.gridOptions.getCurrentPage() : parent.currentPage;
27
+ }
28
+ else {
29
+ currentPage = parent.currentPage;
30
+ }
25
31
  const dataNavigator = parent.dataNavigator;
26
32
  const pagesize = parent.pagesize;
27
33
  if (!isDefined(fieldDefs) || dataNavigator.isFirstPage()) {
@@ -239,4 +245,4 @@ PaginationService.ɵprov = i0.ɵɵdefineInjectable({ factory: function Paginatio
239
245
  PaginationService.decorators = [
240
246
  { type: Injectable, args: [{ providedIn: 'root' },] }
241
247
  ];
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvc2VydmljZXMvcGFnaW5hdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8saUJBQWlCO0lBQzFCOzs7Ozs7T0FNRztJQUNJLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxNQUFNO1FBQzFDLElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ3RGLHVDQUF1QztRQUN2QyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssVUFBVSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDbkksU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN4RCxNQUFNLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDN0M7UUFDRCw2REFBNkQ7UUFDN0QsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxJQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsS0FBSyxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FB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QUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXZDLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxHQUFHLFNBQVMsR0FBRyxZQUFZLENBQUMsRUFBRTtnQkFDL0UsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDN0UsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7b0JBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2lCQUMzQjthQUNKO1lBRUQsYUFBYSxHQUFHLFNBQVMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Ozs7WUExUEosVUFBVSxTQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRGVmaW5lZCB9IGZyb20gJy4uL3V0aWxzL3V0aWxzJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmRlY2xhcmUgY29uc3QgXywgJDtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcblxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25TZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHVwZGF0ZWQgZmllbGRzIGFuZCB0aGUgY3VycmVudCBwYWdlIGluZGV4IHdoZW4gbmF2aWdhdGVkIHRvIHRoZSBuZXh0IHNldCBvZiBkYXRhXG4gICAgICogQHBhcmFtIHtvYmplY3R9IHBhcmVudCB0YWJsZSAvIGxpc3QgaW5zdGFuY2VcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gbmV3VmFsIHVwZGF0ZWQgZmllbGRzIGluZm9cbiAgICAgKiBAcmV0dXJucyBmaWVsZERlZnMgYW5kIGN1cnJlbnQgcGFnZSBpbmRleFxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVGaWVsZHNPblBhZ2luYXRpb24ocGFyZW50LCBuZXdWYWwpIHtcbiAgICAgICAgbGV0IGZpZWxkRGVmcyA9IHBhcmVudC53aWRnZXRUeXBlID09PSAnd20tdGFibGUnID8gcGFyZW50LmdyaWREYXRhIDogcGFyZW50LmZpZWxkRGVmcztcbiAgICAgICAgLy8gcmVtb3ZlIHRoZSBkZWxldGVkIHJvdyBmcm9tIHRoZSBsaXN0XG4gICAgICAgIGlmIChwYXJlbnQud2lkZ2V0VHlwZSA9PT0gJ3dtLXRhYmxlJyAmJiAocGFyZW50LmdyaWRPcHRpb25zLmlzTmF2VHlwZVNjcm9sbE9yT25kZW1hbmQoKSkgJiYgcGFyZW50LmdyaWRPcHRpb25zLmRlbGV0ZWRSb3dJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIGZpZWxkRGVmcy5zcGxpY2UocGFyZW50LmdyaWRPcHRpb25zLmRlbGV0ZWRSb3dJbmRleCwgMSk7XG4gICAgICAgICAgICBwYXJlbnQuZ3JpZE9wdGlvbnMuc2V0RGVsZXRlZFJvd0luZGV4KC0xKTtcbiAgICAgICAgfVxuICAgICAgICAvLyByZXNldCBmaWVsZERlZnMgaWYgbGFzdCBhY3Rpb24gcGVyZm9ybWVkIGlzIHNlYXJjaCBvciBzb3J0XG4gICAgICAgIGlmIChwYXJlbnQud2lkZ2V0VHlwZSA9PT0gJ3dtLXRhYmxlJyAmJiAocGFyZW50LmdyaWRPcHRpb25zLmlzTmF2VHlwZVNjcm9sbE9yT25kZW1hbmQoKSkgICYmIChwYXJlbnQuZ3JpZE9wdGlvbnMubGFzdEFjdGlvblBlcmZvcm1lZCA9PT0gcGFyZW50LmdyaWRPcHRpb25zLkFDVElPTlMuU0VBUkNIX09SX1NPUlQgfHwgcGFyZW50LmdyaWRPcHRpb25zLmxhc3RBY3Rpb25QZXJmb3JtZWQgPT09IHBhcmVudC5ncmlkT3B0aW9ucy5BQ1RJT05TLkZJTFRFUl9DUklURVJJQSB8fCBwYXJlbnQuZ3JpZE9wdGlvbnMubGFzdEFjdGlvblBlcmZvcm1lZCA9PT0gcGFyZW50LmdyaWRPcHRpb25zLkFDVElPTlMuREFUQVNFVF9VUERBVEUpKSB7XG4gICAgICAgICAgICBmaWVsZERlZnMgPSBbXTtcbiAgICAgICAgICAgIHBhcmVudC5ncmlkT3B0aW9ucy5zZXRDdXJyZW50UGFnZSgxKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgY3VycmVudFBhZ2UgPSBwYXJlbnQuY3VycmVudFBhZ2U7XG4gICAgICAgIGNvbnN0IGRhdGFOYXZpZ2F0b3IgPSBwYXJlbnQuZGF0YU5hdmlnYXRvcjtcbiAgICAgICAgY29uc3QgcGFnZXNpemUgPSBwYXJlbnQucGFnZXNpemU7XG5cbiAgICAgICAgaWYgKCFpc0RlZmluZWQoZmllbGREZWZzKSB8fCBkYXRhTmF2aWdhdG9yLmlzRmlyc3RQYWdlKCkpIHtcbiAgICAgICAgICAgIGZpZWxkRGVmcyA9IFtdO1xuICAgICAgICAgICAgY3VycmVudFBhZ2UgPSAxO1xuICAgICAgICB9IGVsc2UgaWYgKGZpZWxkRGVmcy5sZW5ndGggLyBwYWdlc2l6ZSA8PSBkYXRhTmF2aWdhdG9yLnBhZ2VDb3VudCkge1xuICAgICAgICAgICAgbGV0IGl0ZW1zTGVuZ3RoLFxuICAgICAgICAgICAgICAgIGl0ZW1zVG9QdXNoID0gW107XG4gICAgICAgICAgICAvLyB3ZSBwdXNoIHRoZSBuZXdWYWwgb25seSB3aGVuIGRuLmN1cnJlbnRQYWdlIGdldHMgaW5jcmVtZW50ZWQgYmVjYXVzZSB0aGF0IGlzIHdoZW4gbmV3IGl0ZW1zIGdldHMgYWRkZWQgdG8gbmV3VmFsXG4gICAgICAgICAgICBpZiAoZmllbGREZWZzLmxlbmd0aCA9PT0gY3VycmVudFBhZ2UgKiBwYWdlc2l6ZSAmJiAoY3VycmVudFBhZ2UgKyAxKSA9PT0gZGF0YU5hdmlnYXRvci5kbi5jdXJyZW50UGFnZSkge1xuICAgICAgICAgICAgICAgIGl0ZW1zVG9QdXNoID0gbmV3VmFsO1xuICAgICAgICAgICAgICAgIGN1cnJlbnRQYWdlKys7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZpZWxkRGVmcy5sZW5ndGggPCBjdXJyZW50UGFnZSAqIHBhZ2VzaXplKSB7XG4gICAgICAgICAgICAgICAgaWYgKChmaWVsZERlZnMubGVuZ3RoID09PSAoY3VycmVudFBhZ2UgLSAxKSAqIHBhZ2VzaXplKSAmJiAoKGN1cnJlbnRQYWdlIC0gMSkgPT09IGRhdGFOYXZpZ2F0b3IuZG4uY3VycmVudFBhZ2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIGRuLmN1cnJlbnRQYWdlIGlzIG5vdCBpbmNyZW1lbnRlZCBzdGlsbCBvbmx5IG9sZCBuZXdWYWwgaXMgcHJlc2VudCBoZW5jZSB3ZSBwdXNoIGVtcHR5IGFycmF5XG4gICAgICAgICAgICAgICAgICAgIG5ld1ZhbCA9IFtdO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YU5hdmlnYXRvci5kYXRhU2l6ZSA8IGN1cnJlbnRQYWdlICogcGFnZXNpemUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgbnVtYmVyIG9mIGVsZW1lbnRzIGFkZGVkIHRvIGRhdGFOYXZpZ2F0b3IgaXMgbGVzcyB0aGFuICBwcm9kdWN0IG9mIGN1cnJlbnRQYWdlIGFuZCBwYWdlU2l6ZSB3ZSBvbmx5IGFkZCBlbGVtZW50cyBleHRyYSBlbGVtZW50cyBhZGRlZFxuICAgICAgICAgICAgICAgICAgICBpdGVtc0xlbmd0aCA9IGRhdGFOYXZpZ2F0b3IuZGF0YVNpemUgLSBmaWVsZERlZnMubGVuZ3RoO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIG51bWJlciBvZiBlbGVtZW50cyBhZGRlZCB0byBkYXRhTmF2aWdhdG9yIGlzIGdyZWF0ZXIgdGhhbiAgcHJvZHVjdCBvZiBjdXJyZW50UGFnZSBhbmQgcGFnZVNpemUgd2UgYWRkIGVsZW1lbnRzIHRoZSBleHRyYSBlbGVtZW50cyBpbiBuZXdWYWxcbiAgICAgICAgICAgICAgICAgICAgaXRlbXNMZW5ndGggPSBjdXJyZW50UGFnZSAqIHBhZ2VzaXplIC0gZmllbGREZWZzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFBhZ2UrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRJbmRleCA9IG5ld1ZhbC5sZW5ndGggLSBpdGVtc0xlbmd0aDtcbiAgICAgICAgICAgICAgICBpdGVtc1RvUHVzaCA9IG5ld1ZhbC5zbGljZShzdGFydEluZGV4KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZmllbGREZWZzLmxlbmd0aCA9PT0gY3VycmVudFBhZ2UgKiBwYWdlc2l6ZSAmJiBjdXJyZW50UGFnZSA9PT0gZGF0YU5hdmlnYXRvci5kbi5jdXJyZW50UGFnZSkge1xuICAgICAgICAgICAgICAgIC8vIGlmIGRuLmN1cnJlbnRQYWdlIGlzIG5vdCBpbmNyZW1lbnRlZCBzdGlsbCBvbmx5IG9sZCBuZXdWYWwgaXMgcHJlc2VudCBoZW5jZSB3ZSBwdXNoIGVtcHR5IGFycmF5XG4gICAgICAgICAgICAgICAgaXRlbXNUb1B1c2ggPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5ld1ZhbCA9IGl0ZW1zVG9QdXNoO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWRkIHVuaXF1ZSByZWNvcmRzIHRvIGZpZWxkRGVmc1xuICAgICAgICBpZiAocGFyZW50LndpZGdldFR5cGUgPT09ICd3bS10YWJsZScgJiYgKHBhcmVudC5ncmlkT3B0aW9ucy5sYXN0QWN0aW9uUGVyZm9ybWVkID09PSBwYXJlbnQuZ3JpZE9wdGlvbnMuQUNUSU9OUy5ERUxFVEUgIHx8IHBhcmVudC5ncmlkT3B0aW9ucy5sYXN0QWN0aW9uUGVyZm9ybWVkID09PSBwYXJlbnQuZ3JpZE9wdGlvbnMuQUNUSU9OUy5FRElUKSkge1xuICAgICAgICAgICAgZmllbGREZWZzID0gdGhpcy5nZXRVbmlxdWVSZWNvcmRzSW5GaWVsZERlZihmaWVsZERlZnMsIG5ld1ZhbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWVsZERlZnMgPSBbLi4uZmllbGREZWZzLCAuLi5uZXdWYWxdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbZmllbGREZWZzLCBjdXJyZW50UGFnZV07XG4gICAgfVxuXG4gICAgLy8gQWRkIHRoZSB1bmlxdWUgcmVjb3JkcyB0byBmaWVsZERlZnNcbiAgICBwdWJsaWMgZ2V0VW5pcXVlUmVjb3Jkc0luRmllbGREZWYoZmllbGREZWZzLCBuZXdWYWwpIHtcbiAgICAgICAgbGV0IGZsYWcgPSBmYWxzZTtcbiAgICAgICAgaWYgKCFmaWVsZERlZnMubGVuZ3RoKSB7XG4gICAgICAgICAgICBmaWVsZERlZnMgPSBuZXdWYWw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdWYWwuZm9yRWFjaChmdW5jdGlvbiAobmV3T2JqKSB7XG4gICAgICAgICAgICAgICAgZmxhZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGZpZWxkRGVmcy5mb3JFYWNoKGZ1bmN0aW9uIChvYmopIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKF8uaXNFcXVhbChuZXdPYmosIG9iaikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsYWcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKGZsYWcgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkRGVmcy5wdXNoKG5ld09iaik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpZWxkRGVmcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHJlZ2lzdGVycyBzY3JvbGwgZXZlbnRzIG9uIHRoZSBzY3JvbGxhYmxlIGVsLCBpZiB0aGUgcGFnZSBkb2Vzbid0IGhhdmUgYSBzY3JvbGwgZWwgdGhlbiB3aGVlbCBldmVudCBpcyByZWdpc3RlcmVkIG9uIHRoZSByZXF1ZXN0ZWQgbm9kZVxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJlbnQgdGFibGUgLyBsaXN0IGluc3RhbmNlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5vZGVOYW1lIHRib2R5L3VsXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGRlYm91bmNlTnVtIHByb3ZpZGVkIHRvIGxvZGFzaCBkZWJvdW5jZVxuICAgICAqIEByZXR1cm5zIG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgYmluZFNjcm9sbEV2dChwYXJlbnQsIG5vZGVOYW1lLCBkZWJvdW5jZU51bSkge1xuICAgICAgICBjb25zdCBkYXRhTmF2aWdhdG9yID0gcGFyZW50LmRhdGFOYXZpZ2F0b3I7XG4gICAgICAgIGNvbnN0ICRlbCA9IHBhcmVudC4kZWxlbWVudDtcbiAgICAgICAgY29uc3QgJHJvb3RFbCA9ICRlbC5maW5kKG5vZGVOYW1lKTtcbiAgICAgICAgY29uc3QgJGZpcnN0Q2hpbGQgPSAkcm9vdEVsLmNoaWxkcmVuKCkuZmlyc3QoKTtcblxuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICAgICAgbGV0ICRzY3JvbGxQYXJlbnQ7XG4gICAgICAgIGxldCBzY3JvbGxOb2RlO1xuICAgICAgICBsZXQgbGFzdFNjcm9sbFRvcCA9IDA7XG5cbiAgICAgICAgaWYgKCEkZmlyc3RDaGlsZC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgICRzY3JvbGxQYXJlbnQgPSAkZmlyc3RDaGlsZC5zY3JvbGxQYXJlbnQoZmFsc2UpO1xuXG4gICAgICAgIGlmICgkc2Nyb2xsUGFyZW50WzBdID09PSBkb2N1bWVudCkge1xuICAgICAgICAgICAgc2Nyb2xsTm9kZSA9IGRvY3VtZW50LmJvZHk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzY3JvbGxOb2RlID0gJHNjcm9sbFBhcmVudFswXTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGhhcyBzY3JvbGxcbiAgICAgICAgaWYgKHNjcm9sbE5vZGUuc2Nyb2xsSGVpZ2h0ID4gc2Nyb2xsTm9kZS5jbGllbnRIZWlnaHQpIHtcbiAgICAgICAgICAgICRzY3JvbGxQYXJlbnRcbiAgICAgICAgICAgICAgICAuZWFjaCgoaW5kZXg6IG51bWJlciwgbm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBzY3JvbGxUb3AgcHJvcGVydHkgaXMgMCBvciB1bmRlZmluZWQgZm9yIGJvZHkgaW4gSUUsIHNhZmFyaS5cbiAgICAgICAgICAgICAgICAgICAgbGFzdFNjcm9sbFRvcCA9IG5vZGUgPT09IGRvY3VtZW50ID8gKG5vZGUuYm9keS5zY3JvbGxUb3AgfHwgJCh3aW5kb3cpLnNjcm9sbFRvcCgpKSA6IChub2RlIGFzIEhUTUxFbGVtZW50KS5zY3JvbGxUb3A7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAub2ZmKCdzY3JvbGwuc2Nyb2xsX2V2dCcpXG4gICAgICAgICAgICAgICAgLm9uKCdzY3JvbGwuc2Nyb2xsX2V2dCcsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRhcmdldCA9IGV2dC50YXJnZXQ7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjbGllbnRIZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGxldCB0b3RhbEhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNjcm9sbFRvcDtcbiAgICAgICAgICAgICAgICAgICAgLy8gc2Nyb2xsaW5nRWxlbWVudCBpcyB1bmRlZmluZWQgZm9yIElFLCBzYWZhcmkuIHVzZSBib2R5IGFzIHRhcmdldCBFbGVtZW50XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldCA9IHRhcmdldCA9PT0gZG9jdW1lbnQgPyAodGFyZ2V0LnNjcm9sbGluZ0VsZW1lbnQgfHwgZG9jdW1lbnQuYm9keSkgOiB0YXJnZXQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnQud2lkZ2V0VHlwZSA9PT0gJ3dtLXRhYmxlJyAmJiBwYXJlbnQuZ3JpZE9wdGlvbnMuaXNOYXZUeXBlU2Nyb2xsT3JPbmRlbWFuZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjbGllbnRIZWlnaHQgPSB0YXJnZXQuY2xpZW50SGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICB0b3RhbEhlaWdodCA9IHRhcmdldC5zY3JvbGxIZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvcCA9IHRhcmdldCA9PT0gZG9jdW1lbnQuYm9keSA/ICQod2luZG93KS5zY3JvbGxUb3AoKSA6IHRhcmdldC5zY3JvbGxUb3A7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKChsYXN0U2Nyb2xsVG9wIDwgc2Nyb2xsVG9wKSAmJiAodG90YWxIZWlnaHQgKiAwLjkgPCBzY3JvbGxUb3AgKyBjbGllbnRIZWlnaHQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLm9mZignc2Nyb2xsLnNjcm9sbF9ldnQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGVib3VuY2VkRmV0Y2hOZXh0RGF0YXNldE9uU2Nyb2xsKGRhdGFOYXZpZ2F0b3IsIGRlYm91bmNlTnVtLCBwYXJlbnQpKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBsYXN0U2Nyb2xsVG9wID0gc2Nyb2xsVG9wO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgJHJvb3RFbC5vZmYoJ3doZWVsLnNjcm9sbF9ldnQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIG5vIHNjcm9sbGFibGUgZWxlbWVudCByZWdpc3RlciB3aGVlbCBldmVudCBvbiB1bCBlbGVtZW50XG4gICAgICAgICAgICAkcm9vdEVsLm9uKCd3aGVlbC5zY3JvbGxfZXZ0JywgZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmVudC53aWRnZXRUeXBlID09PSAnd20tdGFibGUnICYmIHBhcmVudC5ncmlkT3B0aW9ucy5pc05hdlR5cGVTY3JvbGxPck9uZGVtYW5kKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGUub3JpZ2luYWxFdmVudC5kZWx0YVkgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICRyb290RWwub2ZmKCd3aGVlbC5zY3JvbGxfZXZ0Jyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVib3VuY2VkRmV0Y2hOZXh0RGF0YXNldE9uU2Nyb2xsKGRhdGFOYXZpZ2F0b3IsIGRlYm91bmNlTnVtLCBwYXJlbnQpKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGNhbGxzIGZldGNoTmV4dERhdGFzZXRPblNjcm9sbCBmbiBvbiBkZWJvdW5jZWQgdGltZVxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBkYXRhTmF2aWdhdG9yIHBhZ2luYXRpb24gaW5zdGFuY2VcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGVib3VuY2VOdW0gcHJvdmlkZWQgdG8gbG9kYXNoIGRlYm91bmNlXG4gICAgICogQHJldHVybnMgZGVib3VuY2VkIGZ1bmN0aW9uIGRlZmluaXRpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgZGVib3VuY2VkRmV0Y2hOZXh0RGF0YXNldE9uU2Nyb2xsKGRhdGFOYXZpZ2F0b3IsIGRlYm91bmNlTnVtLCBwYXJlbnQpIHtcbiAgICAgICAgcmV0dXJuIF8uZGVib3VuY2UoKCkgPT4gdGhpcy5mZXRjaE5leHREYXRhc2V0T25TY3JvbGwoZGF0YU5hdmlnYXRvciwgcGFyZW50KSwgZGVib3VuY2VOdW0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFRoaXMgZnVuY3Rpb24gY2FsbHMgbmV4dCBzZXQgb2YgZGF0YSB3aGVuIG5hdmlnYXRlZCB0byBuZXh0IHBhZ2VcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gZGF0YU5hdmlnYXRvciBwYWdpbmF0aW9uIGluc3RhbmNlXG4gICAgICogQHJldHVybnMgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBmZXRjaE5leHREYXRhc2V0T25TY3JvbGwoZGF0YU5hdmlnYXRvciwgcGFyZW50KSB7XG4gICAgICAgIC8vIExvYWQgbmV4dCBzZXQgb2YgZGF0YSBvbmx5IGFmdGVyIHRoZSBzdWNjZXNzIG9mIGN1cnJlbnQgY2FsbFxuICAgICAgICBpZiAoIXBhcmVudC52YXJpYWJsZUluZmxpZ2h0KSB7XG4gICAgICAgICAgICAvLyBGaXggZm9yIFtXTVMtMjMyNjNdOiBzZXQgJ2lzTmV4dFBhZ2VEYXRhJyBmbGFnIHRvIHRydWUgJiAnaXNEYXRhVXBkYXRlZEJ5VXNlcicgdG8gZmFsc2UgYXMgbmV4dCBwYWdlIGRhdGEgaXMgYmVpbmcgcmVuZGVyZWQgb24gU2Nyb2xsXG4gICAgICAgICAgICBpZiAocGFyZW50LndpZGdldFR5cGUgPT09ICd3bS10YWJsZScpIHtcbiAgICAgICAgICAgICAgICAvLyBzZXQgaXNOZXh0UGFnZURhdGEgZmxhZyB0byB0cnVlIGFzIG5leHQgcGFnZSBkYXRhIGlzIGJlaW5nIHJlbmRlcmVkXG4gICAgICAgICAgICAgICAgcGFyZW50LmdyaWRPcHRpb25zLnNldElzTmV4dFBhZ2VEYXRhKHRydWUpO1xuICAgICAgICAgICAgICAgIHBhcmVudC5ncmlkT3B0aW9ucy5zZXRJc0RhdGFVcGRhdGVkQnlVc2VyKGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGFOYXZpZ2F0b3IubmF2aWdhdGVQYWdlKCduZXh0Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHJlZ2lzdGVycyBzY3JvbGwgZXZlbnRzIG9uIHRoZSBzY3JvbGxhYmxlIGVsIGZvciBtb2JpbGUgcHJvamVjdHNcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gcGFyZW50IGxpc3QgaW5zdGFuY2VcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGVib3VuY2VOdW0gcHJvdmlkZWQgdG8gbG9kYXNoIGRlYm91bmNlXG4gICAgICogQHJldHVybnMgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBiaW5kSVNjcm9sbEV2dChwYXJlbnQsIGRlYm91bmNlTnVtKSB7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gcGFyZW50LiRlbGVtZW50O1xuICAgICAgICBjb25zdCBkYXRhTmF2aWdhdG9yID0gcGFyZW50LmRhdGFOYXZpZ2F0b3I7XG4gICAgICAgIGNvbnN0IGFwcCA9IHBhcmVudC5hcHA7XG5cbiAgICAgICAgY29uc3QgJHNjcm9sbFBhcmVudCA9ICRlbGVtZW50LmNsb3Nlc3QoJ1t3bXNtb290aHNjcm9sbD1cInRydWVcIl0nKTtcblxuICAgICAgICBjb25zdCBpU2Nyb2xsID0gXy5nZXQoJHNjcm9sbFBhcmVudFswXSwgJ2lzY3JvbGwnKTtcblxuICAgICAgICAvLyB3aGVuIGlzY3JvbGwgaXMgbm90IGluaXRpYWxpc2VkIHRoZSBub3RpZnkgdGhlIHNtb290aHNjcm9sbCBhbmQgc3Vic2NyaWJlIHRvIHRoZSBpc2Nyb2xsIHVwZGF0ZVxuICAgICAgICBpZiAoIWlTY3JvbGwpIHtcbiAgICAgICAgICAgIGNvbnN0IGlTY3JvbGxTdWJzY3JpcHRpb24gPSBhcHAuc3Vic2NyaWJlKCdpc2Nyb2xsLXVwZGF0ZScsIChfZWwpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIV8uaXNFbXB0eShfZWwpICYmIF9lbC5pc1NhbWVOb2RlKCRzY3JvbGxQYXJlbnRbMF0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0SXNjcm9sbEhhbmRsZXJzKCRzY3JvbGxQYXJlbnRbMF0sIGRhdGFOYXZpZ2F0b3IsIGRlYm91bmNlTnVtKTtcbiAgICAgICAgICAgICAgICAgICAgaVNjcm9sbFN1YnNjcmlwdGlvbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYXBwLm5vdGlmeSgnbm8taXNjcm9sbCcsICRzY3JvbGxQYXJlbnRbMF0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0SXNjcm9sbEhhbmRsZXJzKCRzY3JvbGxQYXJlbnRbMF0sIGRhdGFOYXZpZ2F0b3IsIGRlYm91bmNlTnVtKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHJlZ2lzdGVycyBzY3JvbGxFbmQgZXZlbnQgb24gdGhlIHNjcm9sbGFibGUgZWwgZm9yIG1vYmlsZSBwcm9qZWN0c1xuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBlbCBzY3JvbGxhYmxlIGVsZW1lbnQgc2NvcGVcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gZGF0YU5hdmlnYXRvciBwYWdpbmF0aW9uIGluc3RhbmNlXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGRlYm91bmNlTnVtIHByb3ZpZGVkIHRvIGxvZGFzaCBkZWJvdW5jZVxuICAgICAqIEByZXR1cm5zIG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0SXNjcm9sbEhhbmRsZXJzKGVsLCBkYXRhTmF2aWdhdG9yLCBkZWJvdW5jZU51bSkge1xuICAgICAgICBsZXQgbGFzdFNjcm9sbFRvcCA9IDA7XG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSBfLmdldChlbC5pc2Nyb2xsLCAnd3JhcHBlcicpO1xuICAgICAgICBjb25zdCBzZWxmID0gZWwuaXNjcm9sbDtcblxuICAgICAgICBlbC5pc2Nyb2xsLm9uKCdzY3JvbGxFbmQnLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjbGllbnRIZWlnaHQgPSB3cmFwcGVyLmNsaWVudEhlaWdodCxcbiAgICAgICAgICAgICAgICB0b3RhbEhlaWdodCA9IHdyYXBwZXIuc2Nyb2xsSGVpZ2h0LFxuICAgICAgICAgICAgICAgIHNjcm9sbFRvcCA9IE1hdGguYWJzKGVsLmlzY3JvbGwueSk7XG5cbiAgICAgICAgICAgIGlmICgobGFzdFNjcm9sbFRvcCA8IHNjcm9sbFRvcCkgJiYgKHRvdGFsSGVpZ2h0ICogMC45IDwgc2Nyb2xsVG9wICsgY2xpZW50SGVpZ2h0KSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVib3VuY2VkRmV0Y2hOZXh0RGF0YXNldE9uU2Nyb2xsKGRhdGFOYXZpZ2F0b3IsIGRlYm91bmNlTnVtLCBwYXJlbnQpKCk7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGYuaW5kaWNhdG9yUmVmcmVzaCkge1xuICAgICAgICAgICAgICAgICAgICBzZWxmLmluZGljYXRvclJlZnJlc2goKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxhc3RTY3JvbGxUb3AgPSBzY3JvbGxUb3A7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvc2VydmljZXMvcGFnaW5hdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8saUJBQWlCO0lBQzFCOzs7Ozs7T0FNRztJQUNJLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxNQUFNO1FBQzFDLElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ3RGLHVDQUF1QztRQUN2QyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssVUFBVSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDbkksU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN4RCxNQUFNLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDN0M7UUFDRCw2REFBNkQ7UUFDN0QsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxJQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsS0FBSyxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FB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Q3RCLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM3QyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO1FBRXhCLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUU7WUFDNUIsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksRUFDckMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQ2xDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFdkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLEdBQUcsU0FBUyxHQUFHLFlBQVksQ0FBQyxFQUFFO2dCQUMvRSxJQUFJLENBQUMsaUNBQWlDLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUM3RSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtvQkFDdkIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7aUJBQzNCO2FBQ0o7WUFFRCxhQUFhLEdBQUcsU0FBUyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7OztZQS9QSixVQUFVLFNBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNEZWZpbmVkIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuZGVjbGFyZSBjb25zdCBfLCAkO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvblNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgdXBkYXRlZCBmaWVsZHMgYW5kIHRoZSBjdXJyZW50IHBhZ2UgaW5kZXggd2hlbiBuYXZpZ2F0ZWQgdG8gdGhlIG5leHQgc2V0IG9mIGRhdGFcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gcGFyZW50IHRhYmxlIC8gbGlzdCBpbnN0YW5jZVxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBuZXdWYWwgdXBkYXRlZCBmaWVsZHMgaW5mb1xuICAgICAqIEByZXR1cm5zIGZpZWxkRGVmcyBhbmQgY3VycmVudCBwYWdlIGluZGV4XG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZUZpZWxkc09uUGFnaW5hdGlvbihwYXJlbnQsIG5ld1ZhbCkge1xuICAgICAgICBsZXQgZmllbGREZWZzID0gcGFyZW50LndpZGdldFR5cGUgPT09ICd3bS10YWJsZScgPyBwYXJlbnQuZ3JpZERhdGEgOiBwYXJlbnQuZmllbGREZWZzO1xuICAgICAgICAvLyByZW1vdmUgdGhlIGRlbGV0ZWQgcm93IGZyb20gdGhlIGxpc3RcbiAgICAgICAgaWYgKHBhcmVudC53aWRnZXRUeXBlID09PSAnd20tdGFibGUnICYmIChwYXJlbnQuZ3JpZE9wdGlvbnMuaXNOYXZUeXBlU2Nyb2xsT3JPbmRlbWFuZCgpKSAmJiBwYXJlbnQuZ3JpZE9wdGlvbnMuZGVsZXRlZFJvd0luZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgZmllbGREZWZzLnNwbGljZShwYXJlbnQuZ3JpZE9wdGlvbnMuZGVsZXRlZFJvd0luZGV4LCAxKTtcbiAgICAgICAgICAgIHBhcmVudC5ncmlkT3B0aW9ucy5zZXREZWxldGVkUm93SW5kZXgoLTEpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHJlc2V0IGZpZWxkRGVmcyBpZiBsYXN0IGFjdGlvbiBwZXJmb3JtZWQgaXMgc2VhcmNoIG9yIHNvcnRcbiAgICAgICAgaWYgKHBhcmVudC53aWRnZXRUeXBlID09PSAnd20tdGFibGUnICYmIChwYXJlbnQuZ3JpZE9wdGlvbnMuaXNOYXZUeXBlU2Nyb2xsT3JPbmRlbWFuZCgpKSAgJiYgKHBhcmVudC5ncmlkT3B0aW9ucy5sYXN0QWN0aW9uUGVyZm9ybWVkID09PSBwYXJlbnQuZ3JpZE9wdGlvbnMuQUNUSU9OUy5TRUFSQ0hfT1JfU09SVCB8fCBwYXJlbnQuZ3JpZE9wdGlvbnMubGFzdEFjdGlvblBlcmZvcm1lZCA9PT0gcGFyZW50LmdyaWRPcHRpb25zLkFDVElPTlMuRklMVEVSX0NSSVRFUklBIHx8IHBhcmVudC5ncmlkT3B0aW9ucy5sYXN0QWN0aW9uUGVyZm9ybWVkID09PSBwYXJlbnQuZ3JpZE9wdGlvbnMuQUNUSU9OUy5EQVRBU0VUX1VQREFURSkpIHtcbiAgICAgICAgICAgIGZpZWxkRGVmcyA9IFtdO1xuICAgICAgICAgICAgcGFyZW50LmdyaWRPcHRpb25zLnNldEN1cnJlbnRQYWdlKDEpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBjdXJyZW50UGFnZTtcbiAgICAgICAgaWYgKHBhcmVudC53aWRnZXRUeXBlID09PSAnd20tdGFibGUnKSB7XG4gICAgICAgICAgICBjdXJyZW50UGFnZSA9IHBhcmVudC5ncmlkT3B0aW9ucy5zaG93dmlld2xlc3NidXR0b24gJiYgKHBhcmVudC5ncmlkT3B0aW9ucy5tb2RlID09PSAndmlld2xlc3MnKSA/IHBhcmVudC5ncmlkT3B0aW9ucy5nZXRDdXJyZW50UGFnZSgpIDogcGFyZW50LmN1cnJlbnRQYWdlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY3VycmVudFBhZ2UgPSBwYXJlbnQuY3VycmVudFBhZ2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGF0YU5hdmlnYXRvciA9IHBhcmVudC5kYXRhTmF2aWdhdG9yO1xuICAgICAgICBjb25zdCBwYWdlc2l6ZSA9IHBhcmVudC5wYWdlc2l6ZTtcblxuICAgICAgICBpZiAoIWlzRGVmaW5lZChmaWVsZERlZnMpIHx8IGRhdGFOYXZpZ2F0b3IuaXNGaXJzdFBhZ2UoKSkge1xuICAgICAgICAgICAgZmllbGREZWZzID0gW107XG4gICAgICAgICAgICBjdXJyZW50UGFnZSA9IDE7XG4gICAgICAgIH0gZWxzZSBpZiAoZmllbGREZWZzLmxlbmd0aCAvIHBhZ2VzaXplIDw9IGRhdGFOYXZpZ2F0b3IucGFnZUNvdW50KSB7XG4gICAgICAgICAgICBsZXQgaXRlbXNMZW5ndGgsXG4gICAgICAgICAgICAgICAgaXRlbXNUb1B1c2ggPSBbXTtcbiAgICAgICAgICAgIC8vIHdlIHB1c2ggdGhlIG5ld1ZhbCBvbmx5IHdoZW4gZG4uY3VycmVudFBhZ2UgZ2V0cyBpbmNyZW1lbnRlZCBiZWNhdXNlIHRoYXQgaXMgd2hlbiBuZXcgaXRlbXMgZ2V0cyBhZGRlZCB0byBuZXdWYWxcbiAgICAgICAgICAgIGlmIChmaWVsZERlZnMubGVuZ3RoID09PSBjdXJyZW50UGFnZSAqIHBhZ2VzaXplICYmIChjdXJyZW50UGFnZSArIDEpID09PSBkYXRhTmF2aWdhdG9yLmRuLmN1cnJlbnRQYWdlKSB7XG4gICAgICAgICAgICAgICAgaXRlbXNUb1B1c2ggPSBuZXdWYWw7XG4gICAgICAgICAgICAgICAgY3VycmVudFBhZ2UrKztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZmllbGREZWZzLmxlbmd0aCA8IGN1cnJlbnRQYWdlICogcGFnZXNpemUpIHtcbiAgICAgICAgICAgICAgICBpZiAoKGZpZWxkRGVmcy5sZW5ndGggPT09IChjdXJyZW50UGFnZSAtIDEpICogcGFnZXNpemUpICYmICgoY3VycmVudFBhZ2UgLSAxKSA9PT0gZGF0YU5hdmlnYXRvci5kbi5jdXJyZW50UGFnZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgZG4uY3VycmVudFBhZ2UgaXMgbm90IGluY3JlbWVudGVkIHN0aWxsIG9ubHkgb2xkIG5ld1ZhbCBpcyBwcmVzZW50IGhlbmNlIHdlIHB1c2ggZW1wdHkgYXJyYXlcbiAgICAgICAgICAgICAgICAgICAgbmV3VmFsID0gW107XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhTmF2aWdhdG9yLmRhdGFTaXplIDwgY3VycmVudFBhZ2UgKiBwYWdlc2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiBudW1iZXIgb2YgZWxlbWVudHMgYWRkZWQgdG8gZGF0YU5hdmlnYXRvciBpcyBsZXNzIHRoYW4gIHByb2R1Y3Qgb2YgY3VycmVudFBhZ2UgYW5kIHBhZ2VTaXplIHdlIG9ubHkgYWRkIGVsZW1lbnRzIGV4dHJhIGVsZW1lbnRzIGFkZGVkXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zTGVuZ3RoID0gZGF0YU5hdmlnYXRvci5kYXRhU2l6ZSAtIGZpZWxkRGVmcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgbnVtYmVyIG9mIGVsZW1lbnRzIGFkZGVkIHRvIGRhdGFOYXZpZ2F0b3IgaXMgZ3JlYXRlciB0aGFuICBwcm9kdWN0IG9mIGN1cnJlbnRQYWdlIGFuZCBwYWdlU2l6ZSB3ZSBhZGQgZWxlbWVudHMgdGhlIGV4dHJhIGVsZW1lbnRzIGluIG5ld1ZhbFxuICAgICAgICAgICAgICAgICAgICBpdGVtc0xlbmd0aCA9IGN1cnJlbnRQYWdlICogcGFnZXNpemUgLSBmaWVsZERlZnMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50UGFnZSsrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gbmV3VmFsLmxlbmd0aCAtIGl0ZW1zTGVuZ3RoO1xuICAgICAgICAgICAgICAgIGl0ZW1zVG9QdXNoID0gbmV3VmFsLnNsaWNlKHN0YXJ0SW5kZXgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmaWVsZERlZnMubGVuZ3RoID09PSBjdXJyZW50UGFnZSAqIHBhZ2VzaXplICYmIGN1cnJlbnRQYWdlID09PSBkYXRhTmF2aWdhdG9yLmRuLmN1cnJlbnRQYWdlKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgZG4uY3VycmVudFBhZ2UgaXMgbm90IGluY3JlbWVudGVkIHN0aWxsIG9ubHkgb2xkIG5ld1ZhbCBpcyBwcmVzZW50IGhlbmNlIHdlIHB1c2ggZW1wdHkgYXJyYXlcbiAgICAgICAgICAgICAgICBpdGVtc1RvUHVzaCA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV3VmFsID0gaXRlbXNUb1B1c2g7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZGQgdW5pcXVlIHJlY29yZHMgdG8gZmllbGREZWZzXG4gICAgICAgIGlmIChwYXJlbnQud2lkZ2V0VHlwZSA9PT0gJ3dtLXRhYmxlJyAmJiAocGFyZW50LmdyaWRPcHRpb25zLmxhc3RBY3Rpb25QZXJmb3JtZWQgPT09IHBhcmVudC5ncmlkT3B0aW9ucy5BQ1RJT05TLkRFTEVURSAgfHwgcGFyZW50LmdyaWRPcHRpb25zLmxhc3RBY3Rpb25QZXJmb3JtZWQgPT09IHBhcmVudC5ncmlkT3B0aW9ucy5BQ1RJT05TLkVESVQpKSB7XG4gICAgICAgICAgICBmaWVsZERlZnMgPSB0aGlzLmdldFVuaXF1ZVJlY29yZHNJbkZpZWxkRGVmKGZpZWxkRGVmcywgbmV3VmFsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpZWxkRGVmcyA9IFsuLi5maWVsZERlZnMsIC4uLm5ld1ZhbF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtmaWVsZERlZnMsIGN1cnJlbnRQYWdlXTtcbiAgICB9XG5cbiAgICAvLyBBZGQgdGhlIHVuaXF1ZSByZWNvcmRzIHRvIGZpZWxkRGVmc1xuICAgIHB1YmxpYyBnZXRVbmlxdWVSZWNvcmRzSW5GaWVsZERlZihmaWVsZERlZnMsIG5ld1ZhbCkge1xuICAgICAgICBsZXQgZmxhZyA9IGZhbHNlO1xuICAgICAgICBpZiAoIWZpZWxkRGVmcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZpZWxkRGVmcyA9IG5ld1ZhbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld1ZhbC5mb3JFYWNoKGZ1bmN0aW9uIChuZXdPYmopIHtcbiAgICAgICAgICAgICAgICBmbGFnID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgZmllbGREZWZzLmZvckVhY2goZnVuY3Rpb24gKG9iaikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoXy5pc0VxdWFsKG5ld09iaiwgb2JqKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxhZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoZmxhZyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGREZWZzLnB1c2gobmV3T2JqKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmllbGREZWZzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFRoaXMgZnVuY3Rpb24gcmVnaXN0ZXJzIHNjcm9sbCBldmVudHMgb24gdGhlIHNjcm9sbGFibGUgZWwsIGlmIHRoZSBwYWdlIGRvZXNuJ3QgaGF2ZSBhIHNjcm9sbCBlbCB0aGVuIHdoZWVsIGV2ZW50IGlzIHJlZ2lzdGVyZWQgb24gdGhlIHJlcXVlc3RlZCBub2RlXG4gICAgICogQHBhcmFtIHtvYmplY3R9IHBhcmVudCB0YWJsZSAvIGxpc3QgaW5zdGFuY2VcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbm9kZU5hbWUgdGJvZHkvdWxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGVib3VuY2VOdW0gcHJvdmlkZWQgdG8gbG9kYXNoIGRlYm91bmNlXG4gICAgICogQHJldHVybnMgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBiaW5kU2Nyb2xsRXZ0KHBhcmVudCwgbm9kZU5hbWUsIGRlYm91bmNlTnVtKSB7XG4gICAgICAgIGNvbnN0IGRhdGFOYXZpZ2F0b3IgPSBwYXJlbnQuZGF0YU5hdmlnYXRvcjtcbiAgICAgICAgY29uc3QgJGVsID0gcGFyZW50LiRlbGVtZW50O1xuICAgICAgICBjb25zdCAkcm9vdEVsID0gJGVsLmZpbmQobm9kZU5hbWUpO1xuICAgICAgICBjb25zdCAkZmlyc3RDaGlsZCA9ICRyb290RWwuY2hpbGRyZW4oKS5maXJzdCgpO1xuXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgICAgICBsZXQgJHNjcm9sbFBhcmVudDtcbiAgICAgICAgbGV0IHNjcm9sbE5vZGU7XG4gICAgICAgIGxldCBsYXN0U2Nyb2xsVG9wID0gMDtcblxuICAgICAgICBpZiAoISRmaXJzdENoaWxkLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgJHNjcm9sbFBhcmVudCA9ICRmaXJzdENoaWxkLnNjcm9sbFBhcmVudChmYWxzZSk7XG5cbiAgICAgICAgaWYgKCRzY3JvbGxQYXJlbnRbMF0gPT09IGRvY3VtZW50KSB7XG4gICAgICAgICAgICBzY3JvbGxOb2RlID0gZG9jdW1lbnQuYm9keTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNjcm9sbE5vZGUgPSAkc2Nyb2xsUGFyZW50WzBdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaGFzIHNjcm9sbFxuICAgICAgICBpZiAoc2Nyb2xsTm9kZS5zY3JvbGxIZWlnaHQgPiBzY3JvbGxOb2RlLmNsaWVudEhlaWdodCkge1xuICAgICAgICAgICAgJHNjcm9sbFBhcmVudFxuICAgICAgICAgICAgICAgIC5lYWNoKChpbmRleDogbnVtYmVyLCBub2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHNjcm9sbFRvcCBwcm9wZXJ0eSBpcyAwIG9yIHVuZGVmaW5lZCBmb3IgYm9keSBpbiBJRSwgc2FmYXJpLlxuICAgICAgICAgICAgICAgICAgICBsYXN0U2Nyb2xsVG9wID0gbm9kZSA9PT0gZG9jdW1lbnQgPyAobm9kZS5ib2R5LnNjcm9sbFRvcCB8fCAkKHdpbmRvdykuc2Nyb2xsVG9wKCkpIDogKG5vZGUgYXMgSFRNTEVsZW1lbnQpLnNjcm9sbFRvcDtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5vZmYoJ3Njcm9sbC5zY3JvbGxfZXZ0JylcbiAgICAgICAgICAgICAgICAub24oJ3Njcm9sbC5zY3JvbGxfZXZ0JywgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0ID0gZXZ0LnRhcmdldDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNsaWVudEhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRvdGFsSGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBsZXQgc2Nyb2xsVG9wO1xuICAgICAgICAgICAgICAgICAgICAvLyBzY3JvbGxpbmdFbGVtZW50IGlzIHVuZGVmaW5lZCBmb3IgSUUsIHNhZmFyaS4gdXNlIGJvZHkgYXMgdGFyZ2V0IEVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0ID09PSBkb2N1bWVudCA/ICh0YXJnZXQuc2Nyb2xsaW5nRWxlbWVudCB8fCBkb2N1bWVudC5ib2R5KSA6IHRhcmdldDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudC53aWRnZXRUeXBlID09PSAnd20tdGFibGUnICYmIHBhcmVudC5ncmlkT3B0aW9ucy5pc05hdlR5cGVTY3JvbGxPck9uZGVtYW5kKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNsaWVudEhlaWdodCA9IHRhcmdldC5jbGllbnRIZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIHRvdGFsSGVpZ2h0ID0gdGFyZ2V0LnNjcm9sbEhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG9wID0gdGFyZ2V0ID09PSBkb2N1bWVudC5ib2R5ID8gJCh3aW5kb3cpLnNjcm9sbFRvcCgpIDogdGFyZ2V0LnNjcm9sbFRvcDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoKGxhc3RTY3JvbGxUb3AgPCBzY3JvbGxUb3ApICYmICh0b3RhbEhlaWdodCAqIDAuOSA8IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykub2ZmKCdzY3JvbGwuc2Nyb2xsX2V2dCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kZWJvdW5jZWRGZXRjaE5leHREYXRhc2V0T25TY3JvbGwoZGF0YU5hdmlnYXRvciwgZGVib3VuY2VOdW0sIHBhcmVudCkoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGxhc3RTY3JvbGxUb3AgPSBzY3JvbGxUb3A7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAkcm9vdEVsLm9mZignd2hlZWwuc2Nyb2xsX2V2dCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgbm8gc2Nyb2xsYWJsZSBlbGVtZW50IHJlZ2lzdGVyIHdoZWVsIGV2ZW50IG9uIHVsIGVsZW1lbnRcbiAgICAgICAgICAgICRyb290RWwub24oJ3doZWVsLnNjcm9sbF9ldnQnLCBlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocGFyZW50LndpZGdldFR5cGUgPT09ICd3bS10YWJsZScgJiYgcGFyZW50LmdyaWRPcHRpb25zLmlzTmF2VHlwZVNjcm9sbE9yT25kZW1hbmQoKSkge1xuICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZS5vcmlnaW5hbEV2ZW50LmRlbHRhWSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgJHJvb3RFbC5vZmYoJ3doZWVsLnNjcm9sbF9ldnQnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWJvdW5jZWRGZXRjaE5leHREYXRhc2V0T25TY3JvbGwoZGF0YU5hdmlnYXRvciwgZGVib3VuY2VOdW0sIHBhcmVudCkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFRoaXMgZnVuY3Rpb24gY2FsbHMgZmV0Y2hOZXh0RGF0YXNldE9uU2Nyb2xsIGZuIG9uIGRlYm91bmNlZCB0aW1lXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGRhdGFOYXZpZ2F0b3IgcGFnaW5hdGlvbiBpbnN0YW5jZVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBkZWJvdW5jZU51bSBwcm92aWRlZCB0byBsb2Rhc2ggZGVib3VuY2VcbiAgICAgKiBAcmV0dXJucyBkZWJvdW5jZWQgZnVuY3Rpb24gZGVmaW5pdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBkZWJvdW5jZWRGZXRjaE5leHREYXRhc2V0T25TY3JvbGwoZGF0YU5hdmlnYXRvciwgZGVib3VuY2VOdW0sIHBhcmVudCkge1xuICAgICAgICByZXR1cm4gXy5kZWJvdW5jZSgoKSA9PiB0aGlzLmZldGNoTmV4dERhdGFzZXRPblNjcm9sbChkYXRhTmF2aWdhdG9yLCBwYXJlbnQpLCBkZWJvdW5jZU51bSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogVGhpcyBmdW5jdGlvbiBjYWxscyBuZXh0IHNldCBvZiBkYXRhIHdoZW4gbmF2aWdhdGVkIHRvIG5leHQgcGFnZVxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBkYXRhTmF2aWdhdG9yIHBhZ2luYXRpb24gaW5zdGFuY2VcbiAgICAgKiBAcmV0dXJucyBudWxsXG4gICAgICovXG4gICAgcHVibGljIGZldGNoTmV4dERhdGFzZXRPblNjcm9sbChkYXRhTmF2aWdhdG9yLCBwYXJlbnQpIHtcbiAgICAgICAgLy8gTG9hZCBuZXh0IHNldCBvZiBkYXRhIG9ubHkgYWZ0ZXIgdGhlIHN1Y2Nlc3Mgb2YgY3VycmVudCBjYWxsXG4gICAgICAgIGlmICghcGFyZW50LnZhcmlhYmxlSW5mbGlnaHQpIHtcbiAgICAgICAgICAgIC8vIEZpeCBmb3IgW1dNUy0yMzI2M106IHNldCAnaXNOZXh0UGFnZURhdGEnIGZsYWcgdG8gdHJ1ZSAmICdpc0RhdGFVcGRhdGVkQnlVc2VyJyB0byBmYWxzZSBhcyBuZXh0IHBhZ2UgZGF0YSBpcyBiZWluZyByZW5kZXJlZCBvbiBTY3JvbGxcbiAgICAgICAgICAgIGlmIChwYXJlbnQud2lkZ2V0VHlwZSA9PT0gJ3dtLXRhYmxlJykge1xuICAgICAgICAgICAgICAgIC8vIHNldCBpc05leHRQYWdlRGF0YSBmbGFnIHRvIHRydWUgYXMgbmV4dCBwYWdlIGRhdGEgaXMgYmVpbmcgcmVuZGVyZWRcbiAgICAgICAgICAgICAgICBwYXJlbnQuZ3JpZE9wdGlvbnMuc2V0SXNOZXh0UGFnZURhdGEodHJ1ZSk7XG4gICAgICAgICAgICAgICAgcGFyZW50LmdyaWRPcHRpb25zLnNldElzRGF0YVVwZGF0ZWRCeVVzZXIoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGF0YU5hdmlnYXRvci5uYXZpZ2F0ZVBhZ2UoJ25leHQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFRoaXMgZnVuY3Rpb24gcmVnaXN0ZXJzIHNjcm9sbCBldmVudHMgb24gdGhlIHNjcm9sbGFibGUgZWwgZm9yIG1vYmlsZSBwcm9qZWN0c1xuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJlbnQgbGlzdCBpbnN0YW5jZVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBkZWJvdW5jZU51bSBwcm92aWRlZCB0byBsb2Rhc2ggZGVib3VuY2VcbiAgICAgKiBAcmV0dXJucyBudWxsXG4gICAgICovXG4gICAgcHVibGljIGJpbmRJU2Nyb2xsRXZ0KHBhcmVudCwgZGVib3VuY2VOdW0pIHtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBwYXJlbnQuJGVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGRhdGFOYXZpZ2F0b3IgPSBwYXJlbnQuZGF0YU5hdmlnYXRvcjtcbiAgICAgICAgY29uc3QgYXBwID0gcGFyZW50LmFwcDtcblxuICAgICAgICBjb25zdCAkc2Nyb2xsUGFyZW50ID0gJGVsZW1lbnQuY2xvc2VzdCgnW3dtc21vb3Roc2Nyb2xsPVwidHJ1ZVwiXScpO1xuXG4gICAgICAgIGNvbnN0IGlTY3JvbGwgPSBfLmdldCgkc2Nyb2xsUGFyZW50WzBdLCAnaXNjcm9sbCcpO1xuXG4gICAgICAgIC8vIHdoZW4gaXNjcm9sbCBpcyBub3QgaW5pdGlhbGlzZWQgdGhlIG5vdGlmeSB0aGUgc21vb3Roc2Nyb2xsIGFuZCBzdWJzY3JpYmUgdG8gdGhlIGlzY3JvbGwgdXBkYXRlXG4gICAgICAgIGlmICghaVNjcm9sbCkge1xuICAgICAgICAgICAgY29uc3QgaVNjcm9sbFN1YnNjcmlwdGlvbiA9IGFwcC5zdWJzY3JpYmUoJ2lzY3JvbGwtdXBkYXRlJywgKF9lbCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghXy5pc0VtcHR5KF9lbCkgJiYgX2VsLmlzU2FtZU5vZGUoJHNjcm9sbFBhcmVudFswXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRJc2Nyb2xsSGFuZGxlcnMoJHNjcm9sbFBhcmVudFswXSwgZGF0YU5hdmlnYXRvciwgZGVib3VuY2VOdW0pO1xuICAgICAgICAgICAgICAgICAgICBpU2Nyb2xsU3Vic2NyaXB0aW9uKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBhcHAubm90aWZ5KCduby1pc2Nyb2xsJywgJHNjcm9sbFBhcmVudFswXSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRJc2Nyb2xsSGFuZGxlcnMoJHNjcm9sbFBhcmVudFswXSwgZGF0YU5hdmlnYXRvciwgZGVib3VuY2VOdW0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFRoaXMgZnVuY3Rpb24gcmVnaXN0ZXJzIHNjcm9sbEVuZCBldmVudCBvbiB0aGUgc2Nyb2xsYWJsZSBlbCBmb3IgbW9iaWxlIHByb2plY3RzXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGVsIHNjcm9sbGFibGUgZWxlbWVudCBzY29wZVxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBkYXRhTmF2aWdhdG9yIHBhZ2luYXRpb24gaW5zdGFuY2VcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGVib3VuY2VOdW0gcHJvdmlkZWQgdG8gbG9kYXNoIGRlYm91bmNlXG4gICAgICogQHJldHVybnMgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRJc2Nyb2xsSGFuZGxlcnMoZWwsIGRhdGFOYXZpZ2F0b3IsIGRlYm91bmNlTnVtKSB7XG4gICAgICAgIGxldCBsYXN0U2Nyb2xsVG9wID0gMDtcbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IF8uZ2V0KGVsLmlzY3JvbGwsICd3cmFwcGVyJyk7XG4gICAgICAgIGNvbnN0IHNlbGYgPSBlbC5pc2Nyb2xsO1xuXG4gICAgICAgIGVsLmlzY3JvbGwub24oJ3Njcm9sbEVuZCcsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNsaWVudEhlaWdodCA9IHdyYXBwZXIuY2xpZW50SGVpZ2h0LFxuICAgICAgICAgICAgICAgIHRvdGFsSGVpZ2h0ID0gd3JhcHBlci5zY3JvbGxIZWlnaHQsXG4gICAgICAgICAgICAgICAgc2Nyb2xsVG9wID0gTWF0aC5hYnMoZWwuaXNjcm9sbC55KTtcblxuICAgICAgICAgICAgaWYgKChsYXN0U2Nyb2xsVG9wIDwgc2Nyb2xsVG9wKSAmJiAodG90YWxIZWlnaHQgKiAwLjkgPCBzY3JvbGxUb3AgKyBjbGllbnRIZWlnaHQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kZWJvdW5jZWRGZXRjaE5leHREYXRhc2V0T25TY3JvbGwoZGF0YU5hdmlnYXRvciwgZGVib3VuY2VOdW0sIHBhcmVudCkoKTtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZi5pbmRpY2F0b3JSZWZyZXNoKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGYuaW5kaWNhdG9yUmVmcmVzaCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGFzdFNjcm9sbFRvcCA9IHNjcm9sbFRvcDtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -4778,7 +4778,13 @@ class PaginationService {
4778
4778
  fieldDefs = [];
4779
4779
  parent.gridOptions.setCurrentPage(1);
4780
4780
  }
4781
- let currentPage = parent.currentPage;
4781
+ let currentPage;
4782
+ if (parent.widgetType === 'wm-table') {
4783
+ currentPage = parent.gridOptions.showviewlessbutton && (parent.gridOptions.mode === 'viewless') ? parent.gridOptions.getCurrentPage() : parent.currentPage;
4784
+ }
4785
+ else {
4786
+ currentPage = parent.currentPage;
4787
+ }
4782
4788
  const dataNavigator = parent.dataNavigator;
4783
4789
  const pagesize = parent.pagesize;
4784
4790
  if (!isDefined(fieldDefs) || dataNavigator.isFirstPage()) {