@wavemaker/app-ng-runtime 11.4.0-next.1417070 → 11.4.0-next.1417071

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 (42) 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 +7 -1
  7. app-ng-runtime/components/base/bundles/index.umd.js.map +1 -1
  8. app-ng-runtime/components/base/esm2015/widgets/common/base/base-field-validations.js +3 -2
  9. app-ng-runtime/components/base/esm2015/widgets/common/dialog/dialog.service.js +7 -1
  10. app-ng-runtime/components/base/fesm2015/index.js +7 -1
  11. app-ng-runtime/components/base/fesm2015/index.js.map +1 -1
  12. app-ng-runtime/components/data/form/bundles/index.umd.js +37 -13
  13. app-ng-runtime/components/data/form/bundles/index.umd.js.map +1 -1
  14. app-ng-runtime/components/data/form/esm2015/form-field/form-field.directive.js +26 -7
  15. app-ng-runtime/components/data/form/esm2015/form.component.js +10 -5
  16. app-ng-runtime/components/data/form/fesm2015/index.js +34 -10
  17. app-ng-runtime/components/data/form/fesm2015/index.js.map +1 -1
  18. app-ng-runtime/components/data/form/index.metadata.json +1 -1
  19. app-ng-runtime/components/data/list/bundles/index.umd.js +1 -1
  20. app-ng-runtime/components/data/list/bundles/index.umd.js.map +1 -1
  21. app-ng-runtime/components/data/list/esm2015/list.component.js +2 -2
  22. app-ng-runtime/components/data/list/fesm2015/index.js +1 -1
  23. app-ng-runtime/components/data/list/fesm2015/index.js.map +1 -1
  24. app-ng-runtime/components/data/list/index.metadata.json +1 -1
  25. app-ng-runtime/components/data/list/list.component.d.ts +1 -1
  26. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +5 -0
  27. app-ng-runtime/components/dialogs/default/bundles/index.umd.js.map +1 -1
  28. app-ng-runtime/components/dialogs/default/esm2015/base-dialog.js +7 -2
  29. app-ng-runtime/components/dialogs/default/fesm2015/index.js +6 -1
  30. app-ng-runtime/components/dialogs/default/fesm2015/index.js.map +1 -1
  31. app-ng-runtime/components/input/epoch/bundles/index.umd.js +1 -1
  32. app-ng-runtime/components/input/epoch/bundles/index.umd.js.map +1 -1
  33. app-ng-runtime/components/input/epoch/esm2015/date/date.component.js +2 -2
  34. app-ng-runtime/components/input/epoch/fesm2015/index.js +1 -1
  35. app-ng-runtime/components/input/epoch/fesm2015/index.js.map +1 -1
  36. app-ng-runtime/components/input/epoch/index.metadata.json +1 -1
  37. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +3 -0
  38. app-ng-runtime/components/navigation/popover/bundles/index.umd.js.map +1 -1
  39. app-ng-runtime/components/navigation/popover/esm2015/popover.component.js +4 -1
  40. app-ng-runtime/components/navigation/popover/fesm2015/index.js +3 -0
  41. app-ng-runtime/components/navigation/popover/fesm2015/index.js.map +1 -1
  42. app-ng-runtime/package.json +1 -1
@@ -9,7 +9,8 @@ const DEFAULT_VALIDATOR = {
9
9
  mindate: 'mindate',
10
10
  maxdate: 'maxdate',
11
11
  excludedates: 'excludedates',
12
- excludedays: 'excludedays'
12
+ excludedays: 'excludedays',
13
+ invalidNumber: 'invalidNumber'
13
14
  };
14
15
  export class BaseFieldValidations {
15
16
  constructor(instance, formwidget, widgettype, widgetControl, widgetContext, tableFieldType) {
@@ -239,4 +240,4 @@ export class BaseFieldValidations {
239
240
  }
240
241
  }
241
242
  }
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1maWVsZC12YWxpZGF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvYmFzZS9zcmMvd2lkZ2V0cy9jb21tb24vYmFzZS9iYXNlLWZpZWxkLXZhbGlkYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBSXZFLE1BQU0saUJBQWlCLEdBQUc7SUFDdEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsR0FBRyxFQUFFLFVBQVU7SUFDZixHQUFHLEVBQUUsVUFBVTtJQUNmLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFlBQVksRUFBRSxjQUFjO0lBQzVCLFdBQVcsRUFBRSxhQUFhO0NBQzdCLENBQUM7QUFFRixNQUFNLE9BQU8sb0JBQW9CO0lBb0I3QixZQUFZLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsY0FBZTtRQUN2RixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUVuQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsRUFBRSxDQUFDO1FBQ25DLElBQUksY0FBYyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1NBQ3hD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QWlCLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2lCQUNqRjtxQkFBTTtvQkFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztpQkFDekM7YUFDSjtpQkFBTTtnQkFDSCx3RkFBd0Y7Z0JBQ3hGLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO2FBQ3hDO1NBQ0o7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBWQUxJREFUT1IsICR3YXRjaCwgJHVud2F0Y2gsIEZvcm1XaWRnZXRUeXBlIH0gZnJvbSAnQHdtL2NvcmUnO1xuXG5kZWNsYXJlIGNvbnN0IF87XG5cbmNvbnN0IERFRkFVTFRfVkFMSURBVE9SID0ge1xuICAgIHBhdHRlcm46ICdyZWdleHAnLFxuICAgIG1heDogJ21heHZhbHVlJyxcbiAgICBtaW46ICdtaW52YWx1ZScsXG4gICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCcsXG4gICAgbWF4bGVuZ3RoOiAnbWF4Y2hhcnMnLFxuICAgIG1pbmRhdGU6ICdtaW5kYXRlJyxcbiAgICBtYXhkYXRlOiAnbWF4ZGF0ZScsXG4gICAgZXhjbHVkZWRhdGVzOiAnZXhjbHVkZWRhdGVzJyxcbiAgICBleGNsdWRlZGF5czogJ2V4Y2x1ZGVkYXlzJ1xufTtcblxuZXhwb3J0IGNsYXNzIEJhc2VGaWVsZFZhbGlkYXRpb25zIHtcbiAgICBwcml2YXRlIGhhc1ZhbGlkYXRvcnM7XG5cbiAgICAvLyBJbnN0YW5jZSBvZiB0aGUgZGlyZWN0aXZlIHRhYmxlLWNvbHVtbiwgZm9ybS1maWVsZC4uXG4gICAgcHJpdmF0ZSBpbnN0YW5jZTtcbiAgICAvLyBJbmxpbmUgZm9ybSB3aWRnZXRcbiAgICBwdWJsaWMgZm9ybXdpZGdldDtcbiAgICAvLyBXaWRnZXQgdHlwZVxuICAgIHByaXZhdGUgd2lkZ2V0dHlwZTtcbiAgICAvLyBGcm9tIGNvbnRyb2xcbiAgICBwcml2YXRlIHdpZGdldENvbnRyb2w7XG4gICAgLy8gUGFyZW50IHdpZGdldCBjb250ZXh0IFRhYmxlLCBGb3JtLi5cbiAgICBwcml2YXRlIHdpZGdldENvbnRleHQ7XG4gICAgLy8gT3B0aW9uYWwgdGFibGUgY29sdW1uIHR5cGUgcXVpY2tlZGl0IG5ld3Jvdy8gaW5saW5lIGVkaXRcbiAgICBwcml2YXRlIHRhYmxlRmllbGRUeXBlO1xuXG4gICAgcHJpdmF0ZSBkZWZhdWx0VmFsaWRhdG9yTWVzc2FnZXM6IGFueTtcbiAgICBwcml2YXRlIF9zeW5jVmFsaWRhdG9yczogYW55O1xuICAgIHByaXZhdGUgX2FzeW5jVmFsaWRhdG9yRm46IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKGluc3RhbmNlLCBmb3Jtd2lkZ2V0LCB3aWRnZXR0eXBlLCB3aWRnZXRDb250cm9sLCB3aWRnZXRDb250ZXh0LCB0YWJsZUZpZWxkVHlwZT8pe1xuICAgICAgICB0aGlzLmluc3RhbmNlID0gaW5zdGFuY2U7XG4gICAgICAgIHRoaXMuZm9ybXdpZGdldCA9IGZvcm13aWRnZXQ7XG4gICAgICAgIHRoaXMud2lkZ2V0dHlwZSA9IHdpZGdldHR5cGU7XG4gICAgICAgIHRoaXMud2lkZ2V0Q29udHJvbCA9IHdpZGdldENvbnRyb2w7XG4gICAgICAgIHRoaXMud2lkZ2V0Q29udGV4dCA9IHdpZGdldENvbnRleHQ7XG5cbiAgICAgICAgdGhpcy5kZWZhdWx0VmFsaWRhdG9yTWVzc2FnZXMgPSBbXTtcbiAgICAgICAgaWYgKHRhYmxlRmllbGRUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxlRmllbGRUeXBlID0gdGFibGVGaWVsZFR5cGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB0aGlzIG1ldGhvZCByZXR1cm5zIHRoZSBjb2xsZWN0aW9uIG9mIHN1cHBvcnRlZCBkZWZhdWx0IHZhbGlkYXRvcnNcbiAgICBwcml2YXRlIGdldERlZmF1bHRWYWxpZGF0b3JzKCkge1xuICAgICAgICBjb25zdCBfdmFsaWRhdG9yID0gW107XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlLnJlcXVpcmVkICYmIHRoaXMuaW5zdGFuY2Uuc2hvdyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIC8vIEZvciBjaGVja2JveC90b2dnbGUgd2lkZ2V0LCByZXF1aXJlZCB2YWxpZGF0aW9uIHNob3VsZCBjb25zaWRlciB0cnVlIHZhbHVlIG9ubHlcbiAgICAgICAgICAgIGlmICh0aGlzLndpZGdldHR5cGUgPT09IEZvcm1XaWRnZXRUeXBlLkNIRUNLQk9YIHx8IHRoaXMud2lkZ2V0dHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVE9HR0xFKSB7XG4gICAgICAgICAgICAgICAgX3ZhbGlkYXRvci5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWRUcnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgX3ZhbGlkYXRvci5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlLm1heGNoYXJzKSB7XG4gICAgICAgICAgICBfdmFsaWRhdG9yLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5pbnN0YW5jZS5tYXhjaGFycykpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlLm1pbnZhbHVlKSB7XG4gICAgICAgICAgICBfdmFsaWRhdG9yLnB1c2goVmFsaWRhdG9ycy5taW4odGhpcy5pbnN0YW5jZS5taW52YWx1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlLm1heHZhbHVlICYmIHRoaXMud2lkZ2V0dHlwZSAhPT0gRm9ybVdpZGdldFR5cGUuUkFUSU5HKSB7XG4gICAgICAgICAgICBfdmFsaWRhdG9yLnB1c2goVmFsaWRhdG9ycy5tYXgodGhpcy5pbnN0YW5jZS5tYXh2YWx1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlLnJlZ2V4cCkge1xuICAgICAgICAgICAgX3ZhbGlkYXRvci5wdXNoKFZhbGlkYXRvcnMucGF0dGVybih0aGlzLmluc3RhbmNlLnJlZ2V4cCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmZvcm13aWRnZXQgJiYgXy5pc0Z1bmN0aW9uKHRoaXMuZm9ybXdpZGdldC52YWxpZGF0ZSkpIHtcbiAgICAgICAgICAgIF92YWxpZGF0b3IucHVzaCh0aGlzLmZvcm13aWRnZXQudmFsaWRhdGUuYmluZCh0aGlzLmZvcm13aWRnZXQpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX3ZhbGlkYXRvcjtcbiAgICB9XG5cbiAgICAvLyBPbiBjaGFuZ2Ugb2YgYW55IHZhbGlkYXRpb24gcHJvcGVydHksIHNldCB0aGUgYW5ndWxhciBmb3JtIHZhbGlkYXRvcnNcbiAgICBzZXRVcFZhbGlkYXRvcnMoY3VzdG9tVmFsaWRhdG9yPykge1xuICAgICAgICBpZiAodGhpcy5oYXNWYWxpZGF0b3JzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnN0YW5jZS5fdmFsaWRhdG9ycyA9IHRoaXMuZ2V0RGVmYXVsdFZhbGlkYXRvcnMoKTtcblxuICAgICAgICBpZiAoY3VzdG9tVmFsaWRhdG9yKSB7XG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlLl92YWxpZGF0b3JzLnB1c2goY3VzdG9tVmFsaWRhdG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLndpZGdldENvbnRleHQubmdmb3JtKSB7XG4gICAgICAgICAgICB0aGlzLndpZGdldENvbnRyb2wuc2V0VmFsaWRhdG9ycyh0aGlzLmluc3RhbmNlLl92YWxpZGF0b3JzKTtcbiAgICAgICAgICAgIGNvbnN0IG9wdCA9IHt9O1xuICAgICAgICAgICAgLy8gdXBkYXRpbmcgdGhlIHZhbHVlIG9ubHkgd2hlbiBwcmV2RGF0YSBpcyBub3QgZXF1YWwgdG8gY3VycmVudCB2YWx1ZS5cbiAgICAgICAgICAgIC8vIGVtaXRFdmVudCBmbGFnIHdpbGwgcHJldmVudCBmcm9tIGVtaXR0aW5nIHRoZSB2YWx1ZUNoYW5nZXMgd2hlbiB2YWx1ZSBpcyBlcXVhbCB0byB0aGUgcHJldkRhdGF2YWx1ZS5cbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm13aWRnZXQgJiYgdGhpcy5pbnN0YW5jZS52YWx1ZSA9PT0gdGhpcy5mb3Jtd2lkZ2V0LnByZXZEYXRhdmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvcHRbJ2VtaXRFdmVudCddID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLndpZGdldENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eShvcHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0UHJvbWlzZUxpc3QodmFsaWRhdG9ycykge1xuICAgICAgICBjb25zdCBhcnIgPSBbXTtcbiAgICAgICAgXy5mb3JFYWNoKHZhbGlkYXRvcnMsIChmbiwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGxldCBwcm9taXNlID0gZm47XG4gICAgICAgICAgICBpZiAoZm4gaW5zdGFuY2VvZiBGdW5jdGlvbiAmJiBmbi5iaW5kKSB7XG4gICAgICAgICAgICAgICAgcHJvbWlzZSA9IGZuKHRoaXMud2lkZ2V0Q29udHJvbCwgdGhpcy53aWRnZXRDb250ZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwcm9taXNlIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgIGFyci5wdXNoKHByb21pc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGFycjtcbiAgICB9XG5cbiAgICAvLyB0aGlzIG1ldGhvZCBzZXRzIHRoZSBhc3luY1ZhbGlkYXRpb24gb24gdGhlIGZvcm0gZmllbGQuIEFzc2lnbnMgdmFsaWRhdGlvbm1lc3NhZ2VzIGZyb20gdGhlIHJldHVybmVkIHJlc3BvbnNlXG4gICAgc2V0QXN5bmNWYWxpZGF0b3JzKHZhbGlkYXRvcnMpIHtcbiAgICAgICAgdGhpcy5fYXN5bmNWYWxpZGF0b3JGbiA9ICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHRoaXMuZ2V0UHJvbWlzZUxpc3QodmFsaWRhdG9ycykpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLnZhbGlkYXRpb25tZXNzYWdlID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIGVyciBvYmogaGFzIHZhbGlkYXRpb25NZXNzYWdlIGtleSwgdGhlbiBzZXQgdmFsaWRhdGlvbk1lc3NhZ2UgdXNpbmcgdGhpcyB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAvLyBlbHNlIHJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IGtleSBpbiB0aGUgZXJyIG9iamVjdCBhcyB2YWxpZGF0aW9uIG1lc3NhZ2UuXG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIuaGFzT3duUHJvcGVydHkoJ2Vycm9yTWVzc2FnZScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLnZhbGlkYXRpb25tZXNzYWdlID0gXy5nZXQoZXJyLCAnZXJyb3JNZXNzYWdlJyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXlzID0gXy5rZXlzKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLnZhbGlkYXRpb25tZXNzYWdlID0gKGVycltrZXlzWzBdXSkudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyO1xuICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBmb3JtIGNvbnRyb2wgc3RhdHVzIGlzIG5vdCBjaGFuZ2VkIGZyb20gcGVuZGluZy4gVGhpcyBpcyBhbiBhbmd1bGFyIGlzc3VlIHJlZmVyIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzEzMjAwXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoZWNrRm9yU3RhdHVzQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMud2lkZ2V0Q29udHJvbC5zdGF0dXMgPT09ICdQRU5ESU5HJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0ZvclN0YXR1c0NoYW5nZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2Uub25TdGF0dXNDaGFuZ2UodGhpcy53aWRnZXRDb250cm9sLnN0YXR1cywgdGhpcy50YWJsZUZpZWxkVHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tGb3JTdGF0dXNDaGFuZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLndpZGdldENvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKFt0aGlzLl9hc3luY1ZhbGlkYXRvckZuKCldKTtcbiAgICAgICAgaWYodGhpcy53aWRnZXRDb250ZXh0Lm5nZm9ybS50b3VjaGVkKXtcbiAgICAgICAgICAgIHRoaXMud2lkZ2V0Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc0RlZmF1bHRWYWxpZGF0b3IodHlwZSkge1xuICAgICAgICByZXR1cm4gXy5nZXQoVkFMSURBVE9SLCBfLnRvVXBwZXIodHlwZSkpO1xuICAgIH1cblxuICAgIC8vIGRlZmF1bHQgdmFsaWRhdG9yIGlzIGJvdW5kIHRvIGEgZnVuY3Rpb24gdGhlbiB3YXRjaCBmb3IgdmFsdWUgY2hhbmdlc1xuICAgIC8vIG90aGVyd2lzZSBzZXQgdGhlIHZhbHVlIG9mIGRlZmF1bHQgdmFsaWRhdG9yIGRpcmVjdGx5XG4gICAgc2V0RGVmYXVsdFZhbGlkYXRvcihrZXksIHZhbHVlKSB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgICAgICAvLyBwYXNzaW5nIGZvcm1maWVsZCBhbmQgZm9ybSBhcyBhcmd1bWVudHMgdG8gdGhlIGRlZmF1bHQgdmFsaWRhdG9yIGZ1bmN0aW9uXG4gICAgICAgICAgICB0aGlzLndhdGNoRGVmYXVsdFZhbGlkYXRvckV4cHIodmFsdWUuYmluZCh1bmRlZmluZWQsIHRoaXMud2lkZ2V0Q29udHJvbCwgdGhpcy53aWRnZXRDb250ZXh0KSwga2V5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2Uud2lkZ2V0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2Vba2V5XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gc2V0cyB0aGUgZGVmYXVsdCB2YWxpZGF0aW9uIG9uIHRoZSBmb3JtIGZpZWxkXG4gICAgc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKSB7XG4gICAgICAgIGxldCBfY2xvbmVWYWxpZGF0b3JzID0gXy5jbG9uZURlZXAodmFsaWRhdG9ycyk7XG4gICAgICAgIHRoaXMuaGFzVmFsaWRhdG9ycyA9IHRydWU7XG4gICAgICAgIHRoaXMuX3N5bmNWYWxpZGF0b3JzID0gW107XG4gICAgICAgIF8uZm9yRWFjaChfY2xvbmVWYWxpZGF0b3JzLCAob2JqLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgLy8gY3VzdG9tIHZhbGlkYXRpb24gaXMgYm91bmQgdG8gZnVuY3Rpb24uXG4gICAgICAgICAgICBpZiAob2JqICYmIG9iaiBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgICAgICAgICAgLy8gcGFzc2luZyBmb3JtZmllbGQgYW5kIGZvcm0gYXMgYXJndW1lbnRzIHRvIHRoZSBvYmogKGkuZS4gdmFsaWRhdG9yIGZ1bmN0aW9uKVxuICAgICAgICAgICAgICAgIF9jbG9uZVZhbGlkYXRvcnNbaW5kZXhdID0gb2JqLmJpbmQodW5kZWZpbmVkLCB0aGlzLndpZGdldENvbnRyb2wsIHRoaXMud2lkZ2V0Q29udGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3luY1ZhbGlkYXRvcnMucHVzaChfY2xvbmVWYWxpZGF0b3JzW2luZGV4XSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGNoZWNrcyBmb3IgZGVmYXVsdCB2YWxpZGF0b3IgbGlrZSByZXF1aXJlZCwgbWF4Y2hhcnMgZXRjLlxuICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IF8uZ2V0KG9iaiwgJ3R5cGUnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRWYWxpZGF0b3JNZXNzYWdlc1trZXldID0gXy5nZXQob2JqLCAnZXJyb3JNZXNzYWdlJyk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNEZWZhdWx0VmFsaWRhdG9yKGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBfLmdldChvYmosICd2YWxpZGF0b3InKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0VmFsaWRhdG9yKGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBfY2xvbmVWYWxpZGF0b3JzW2luZGV4XSA9ICcnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gX3N5bmNWYWxpZGF0b3JzIGNvbnRhaW5zIGFsbCB0aGUgY3VzdG9tIHZhbGlkYXRpb25zIG9uIHRoZSBmb3JtIGZpZWxkLiB3aWxsIG5vdCBpbmNsdWRlIGRlZmF1bHQgdmFsaWRhdG9ycy5cbiAgICAgICAgdGhpcy5fc3luY1ZhbGlkYXRvcnMgPSBfLmZpbHRlcihfY2xvbmVWYWxpZGF0b3JzLCB2YWwgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFwcGx5RGVmYXVsdFZhbGlkYXRvcnMoKTtcbiAgICB9XG5cbiAgICBvYnNlcnZlT24oZmllbGRzLCBjb250ZXh0KSB7XG4gICAgICAgIF8uZm9yRWFjaChmaWVsZHMsIGZpZWxkID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1maWVsZCA9IF8uZmluZCh0aGlzLndpZGdldENvbnRleHRbY29udGV4dF0sIHsna2V5JzogZmllbGR9KTtcbiAgICAgICAgICAgIGlmIChmb3JtZmllbGQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWZvcm1maWVsZC5ub3RpZnlGb3JGaWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybWZpZWxkLm5vdGlmeUZvckZpZWxkcyA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3JtZmllbGQubm90aWZ5Rm9yRmllbGRzLnB1c2godGhpcy5pbnN0YW5jZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHZhbGlkYXRlKCkge1xuICAgICAgICB0aGlzLmFwcGx5RGVmYXVsdFZhbGlkYXRvcnMoKTtcbiAgICAgICAgaWYgKHRoaXMuX2FzeW5jVmFsaWRhdG9yRm4pIHtcbiAgICAgICAgICAgIHRoaXMud2lkZ2V0Q29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnMoW3RoaXMuX2FzeW5jVmFsaWRhdG9yRm4oKV0pO1xuICAgICAgICAgICAgdGhpcy53aWRnZXRDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBzaG93IHRoZSB2YWxpZGF0aW9uIGVycm9zIHNob3cgd2hlbiBmb3JtIGlzIHRvdWNoZWQgYW5kIG5vdCBvbiBsb2FkLiBUaGlzIGp1c3QgaGlnaGxpZ2h0cyB0aGUgZmllbGQgdGhhdCBpcyBzdWJzY3JpYmVkIGZvciBjaGFuZ2VzLlxuICAgICAgICBpZiAodGhpcy53aWRnZXRDb250ZXh0Lm5nZm9ybS50b3VjaGVkKSB7XG4gICAgICAgICAgICB0aGlzLndpZGdldENvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gd2F0Y2hlcyBmb3IgY2hhbmdlcyBpbiB0aGUgYm91bmQgZnVuY3Rpb24gZm9yIGRlZmF1bHQgdmFsaWRhdG9ycy5cbiAgICB3YXRjaERlZmF1bHRWYWxpZGF0b3JFeHByKGZuLCBrZXkpIHtcbiAgICAgICAgY29uc3Qgd2F0Y2hOYW1lID0gYCR7dGhpcy5pbnN0YW5jZS53aWRnZXRJZH1fYCArIGtleSArICdfZm9ybUZpZWxkJztcbiAgICAgICAgJHVud2F0Y2god2F0Y2hOYW1lKTtcbiAgICAgICAgLy9bVG9kby1DU1BdOiBOZWVkIGNsYXJpdHkgZ2VuZXJhdGUgdGhpcyBleHByIGZuIGlmIGZvcm0gaXMgcHJlc2VudCBpbiB0aGUgcGFnZVxuICAgICAgICB0aGlzLmluc3RhbmNlLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKCR3YXRjaCgnYm91bmRGbihmbiknLCBfLmV4dGVuZCh0aGlzLmluc3RhbmNlLCB0aGlzLmluc3RhbmNlLnZpZXdQYXJlbnQpLCB7Zm59LCAobnYsIG92KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlLndpZGdldFtrZXldID0gbnY7XG4gICAgICAgICAgICB0aGlzLmFwcGx5RGVmYXVsdFZhbGlkYXRvcnMoKTtcbiAgICAgICAgfSwgd2F0Y2hOYW1lKSk7XG4gICAgfVxuXG4gICAgLy8gaW52b2tlcyBib3RoIGN1c3RvbSBzeW5jIHZhbGlkYXRpb25zIGFuZCBkZWZhdWx0IHZhbGlkYXRpb25zLlxuICAgIGFwcGx5RGVmYXVsdFZhbGlkYXRvcnMoKSB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSB0aGlzLmdldERlZmF1bHRWYWxpZGF0b3JzKCk7XG4gICAgICAgIHRoaXMud2lkZ2V0Q29udHJvbC5zZXRWYWxpZGF0b3JzKF8uY29uY2F0KHRoaXMuX3N5bmNWYWxpZGF0b3JzIHx8IFtdLCB2YWxpZGF0b3JzKSk7XG4gICAgICAgIHRoaXMud2lkZ2V0Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIHRoaXMuc2V0Q3VzdG9tVmFsaWRhdGlvbk1lc3NhZ2UoKTtcbiAgICB9XG5cbiAgICBzZXRDdXN0b21WYWxpZGF0aW9uTWVzc2FnZSgpIHtcbiAgICAgICAgY29uc3QgZmllbGRFcnJvcnMgPSB0aGlzLndpZGdldENvbnRyb2wgJiYgdGhpcy53aWRnZXRDb250cm9sLmVycm9ycztcblxuICAgICAgICBpZiAoIWZpZWxkRXJyb3JzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpZWxkRXJyb3JzLmhhc093blByb3BlcnR5KCdlcnJvck1lc3NhZ2UnKSkge1xuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS52YWxpZGF0aW9ubWVzc2FnZSA9IF8uZ2V0KGZpZWxkRXJyb3JzLCAnZXJyb3JNZXNzYWdlJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBrZXlzID0gXy5rZXlzKGZpZWxkRXJyb3JzKTtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGtleXNbMF07XG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0aW9uTXNnS2V5ID0gXy5nZXQoREVGQVVMVF9WQUxJREFUT1IsIGtleSkgfHwgdGhpcy5mb3Jtd2lkZ2V0LnZhbGlkYXRlVHlwZTtcbiAgICAgICAgICAgIGlmICh2YWxpZGF0aW9uTXNnS2V5KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbXNnID0gXy5nZXQodGhpcy5kZWZhdWx0VmFsaWRhdG9yTWVzc2FnZXMsIHZhbGlkYXRpb25Nc2dLZXkpIHx8IHRoaXMuaW5zdGFuY2UudmFsaWRhdGlvbm1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgaWYgKG1zZyAmJiBtc2cgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAvLyBwYXNzaW5nIGZvcm1maWVsZCBhbmQgZm9ybSBhcyBhcmd1bWVudHMgdG8gdGhlIGVycm9yTWVzc2FnZSBmdW5jdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS52YWxpZGF0aW9ubWVzc2FnZSA9IG1zZyh0aGlzLndpZGdldENvbnRyb2wsIHRoaXMud2lkZ2V0Q29udGV4dCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS52YWxpZGF0aW9ubWVzc2FnZSA9IG1zZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGZhbGxiYWNrIHdoZW4gdGhlcmUgaXMgbm8gdmFsaWRhdGlvbm1lc3NhZ2UgZm9yIGZpZWxkcyBvdGhlciB0aGFuIGRlZmF1bHQgdmFsaWRhdG9ycy5cbiAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLnZhbGlkYXRpb25tZXNzYWdlID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1maWVsZC12YWxpZGF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvYmFzZS9zcmMvd2lkZ2V0cy9jb21tb24vYmFzZS9iYXNlLWZpZWxkLXZhbGlkYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBSXZFLE1BQU0saUJBQWlCLEdBQUc7SUFDdEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsR0FBRyxFQUFFLFVBQVU7SUFDZixHQUFHLEVBQUUsVUFBVTtJQUNmLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFlBQVksRUFBRSxjQUFjO0lBQzVCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLGFBQWEsRUFBQyxlQUFlO0NBQ2hDLENBQUM7QUFFRixNQUFNLE9BQU8sb0JBQW9CO0lBb0I3QixZQUFZLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsY0FBZTtRQUN2RixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUVuQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsRUFBRSxDQUFDO1FBQ25DLElBQUksY0FBYyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxjQUFj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QUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2lCQUNqRjtxQkFBTTtvQkFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztpQkFDekM7YUFDSjtpQkFBTTtnQkFDSCx3RkFBd0Y7Z0JBQ3hGLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO2FBQ3hDO1NBQ0o7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBWQUxJREFUT1IsICR3YXRjaCwgJHVud2F0Y2gsIEZvcm1XaWRnZXRUeXBlIH0gZnJvbSAnQHdtL2NvcmUnO1xuXG5kZWNsYXJlIGNvbnN0IF87XG5cbmNvbnN0IERFRkFVTFRfVkFMSURBVE9SID0ge1xuICAgIHBhdHRlcm46ICdyZWdleHAnLFxuICAgIG1heDogJ21heHZhbHVlJyxcbiAgICBtaW46ICdtaW52YWx1ZScsXG4gICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCcsXG4gICAgbWF4bGVuZ3RoOiAnbWF4Y2hhcnMnLFxuICAgIG1pbmRhdGU6ICdtaW5kYXRlJyxcbiAgICBtYXhkYXRlOiAnbWF4ZGF0ZScsXG4gICAgZXhjbHVkZWRhdGVzOiAnZXhjbHVkZWRhdGVzJyxcbiAgICBleGNsdWRlZGF5czogJ2V4Y2x1ZGVkYXlzJyxcbiAgICBpbnZhbGlkTnVtYmVyOidpbnZhbGlkTnVtYmVyJ1xufTtcblxuZXhwb3J0IGNsYXNzIEJhc2VGaWVsZFZhbGlkYXRpb25zIHtcbiAgICBwcml2YXRlIGhhc1ZhbGlkYXRvcnM7XG5cbiAgICAvLyBJbnN0YW5jZSBvZiB0aGUgZGlyZWN0aXZlIHRhYmxlLWNvbHVtbiwgZm9ybS1maWVsZC4uXG4gICAgcHJpdmF0ZSBpbnN0YW5jZTtcbiAgICAvLyBJbmxpbmUgZm9ybSB3aWRnZXRcbiAgICBwdWJsaWMgZm9ybXdpZGdldDtcbiAgICAvLyBXaWRnZXQgdHlwZVxuICAgIHByaXZhdGUgd2lkZ2V0dHlwZTtcbiAgICAvLyBGcm9tIGNvbnRyb2xcbiAgICBwcml2YXRlIHdpZGdldENvbnRyb2w7XG4gICAgLy8gUGFyZW50IHdpZGdldCBjb250ZXh0IFRhYmxlLCBGb3JtLi5cbiAgICBwcml2YXRlIHdpZGdldENvbnRleHQ7XG4gICAgLy8gT3B0aW9uYWwgdGFibGUgY29sdW1uIHR5cGUgcXVpY2tlZGl0IG5ld3Jvdy8gaW5saW5lIGVkaXRcbiAgICBwcml2YXRlIHRhYmxlRmllbGRUeXBlO1xuXG4gICAgcHJpdmF0ZSBkZWZhdWx0VmFsaWRhdG9yTWVzc2FnZXM6IGFueTtcbiAgICBwcml2YXRlIF9zeW5jVmFsaWRhdG9yczogYW55O1xuICAgIHByaXZhdGUgX2FzeW5jVmFsaWRhdG9yRm46IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKGluc3RhbmNlLCBmb3Jtd2lkZ2V0LCB3aWRnZXR0eXBlLCB3aWRnZXRDb250cm9sLCB3aWRnZXRDb250ZXh0LCB0YWJsZUZpZWxkVHlwZT8pe1xuICAgICAgICB0aGlzLmluc3RhbmNlID0gaW5zdGFuY2U7XG4gICAgICAgIHRoaXMuZm9ybXdpZGdldCA9IGZvcm13aWRnZXQ7XG4gICAgICAgIHRoaXMud2lkZ2V0dHlwZSA9IHdpZGdldHR5cGU7XG4gICAgICAgIHRoaXMud2lkZ2V0Q29udHJvbCA9IHdpZGdldENvbnRyb2w7XG4gICAgICAgIHRoaXMud2lkZ2V0Q29udGV4dCA9IHdpZGdldENvbnRleHQ7XG5cbiAgICAgICAgdGhpcy5kZWZhdWx0VmFsaWRhdG9yTWVzc2FnZXMgPSBbXTtcbiAgICAgICAgaWYgKHRhYmxlRmllbGRUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxlRmllbGRUeXBlID0gdGFibGVGaWVsZFR5cGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB0aGlzIG1ldGhvZCByZXR1cm5zIHRoZSBjb2xsZWN0aW9uIG9mIHN1cHBvcnRlZCBkZWZhdWx0IHZhbGlkYXRvcnNcbiAgICBwcml2YXRlIGdldERlZmF1bHRWYWxpZGF0b3JzKCkge1xuICAgICAgICBjb25zdCBfdmFsaWRhdG9yID0gW107XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlLnJlcXVpcmVkICYmIHRoaXMuaW5zdGFuY2Uuc2hvdyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIC8vIEZvciBjaGVja2JveC90b2dnbGUgd2lkZ2V0LCByZXF1aXJlZCB2YWxpZGF0aW9uIHNob3VsZCBjb25zaWRlciB0cnVlIHZhbHVlIG9ubHlcbiAgICAgICAgICAgIGlmICh0aGlzLndpZGdldHR5cGUgPT09IEZvcm1XaWRnZXRUeXBlLkNIRUNLQk9YIHx8IHRoaXMud2lkZ2V0dHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVE9HR0xFKSB7XG4gICAgICAgICAgICAgICAgX3ZhbGlkYXRvci5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWRUcnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgX3ZhbGlkYXRvci5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlLm1heGNoYXJzKSB7XG4gICAgICAgICAgICBfdmFsaWRhdG9yLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5pbnN0YW5jZS5tYXhjaGFycykpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlLm1pbnZhbHVlKSB7XG4gICAgICAgICAgICBfdmFsaWRhdG9yLnB1c2goVmFsaWRhdG9ycy5taW4odGhpcy5pbnN0YW5jZS5taW52YWx1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlLm1heHZhbHVlICYmIHRoaXMud2lkZ2V0dHlwZSAhPT0gRm9ybVdpZGdldFR5cGUuUkFUSU5HKSB7XG4gICAgICAgICAgICBfdmFsaWRhdG9yLnB1c2goVmFsaWRhdG9ycy5tYXgodGhpcy5pbnN0YW5jZS5tYXh2YWx1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlLnJlZ2V4cCkge1xuICAgICAgICAgICAgX3ZhbGlkYXRvci5wdXNoKFZhbGlkYXRvcnMucGF0dGVybih0aGlzLmluc3RhbmNlLnJlZ2V4cCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmZvcm13aWRnZXQgJiYgXy5pc0Z1bmN0aW9uKHRoaXMuZm9ybXdpZGdldC52YWxpZGF0ZSkpIHtcbiAgICAgICAgICAgIF92YWxpZGF0b3IucHVzaCh0aGlzLmZvcm13aWRnZXQudmFsaWRhdGUuYmluZCh0aGlzLmZvcm13aWRnZXQpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX3ZhbGlkYXRvcjtcbiAgICB9XG5cbiAgICAvLyBPbiBjaGFuZ2Ugb2YgYW55IHZhbGlkYXRpb24gcHJvcGVydHksIHNldCB0aGUgYW5ndWxhciBmb3JtIHZhbGlkYXRvcnNcbiAgICBzZXRVcFZhbGlkYXRvcnMoY3VzdG9tVmFsaWRhdG9yPykge1xuICAgICAgICBpZiAodGhpcy5oYXNWYWxpZGF0b3JzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnN0YW5jZS5fdmFsaWRhdG9ycyA9IHRoaXMuZ2V0RGVmYXVsdFZhbGlkYXRvcnMoKTtcblxuICAgICAgICBpZiAoY3VzdG9tVmFsaWRhdG9yKSB7XG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlLl92YWxpZGF0b3JzLnB1c2goY3VzdG9tVmFsaWRhdG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLndpZGdldENvbnRleHQubmdmb3JtKSB7XG4gICAgICAgICAgICB0aGlzLndpZGdldENvbnRyb2wuc2V0VmFsaWRhdG9ycyh0aGlzLmluc3RhbmNlLl92YWxpZGF0b3JzKTtcbiAgICAgICAgICAgIGNvbnN0IG9wdCA9IHt9O1xuICAgICAgICAgICAgLy8gdXBkYXRpbmcgdGhlIHZhbHVlIG9ubHkgd2hlbiBwcmV2RGF0YSBpcyBub3QgZXF1YWwgdG8gY3VycmVudCB2YWx1ZS5cbiAgICAgICAgICAgIC8vIGVtaXRFdmVudCBmbGFnIHdpbGwgcHJldmVudCBmcm9tIGVtaXR0aW5nIHRoZSB2YWx1ZUNoYW5nZXMgd2hlbiB2YWx1ZSBpcyBlcXVhbCB0byB0aGUgcHJldkRhdGF2YWx1ZS5cbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm13aWRnZXQgJiYgdGhpcy5pbnN0YW5jZS52YWx1ZSA9PT0gdGhpcy5mb3Jtd2lkZ2V0LnByZXZEYXRhdmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvcHRbJ2VtaXRFdmVudCddID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLndpZGdldENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eShvcHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0UHJvbWlzZUxpc3QodmFsaWRhdG9ycykge1xuICAgICAgICBjb25zdCBhcnIgPSBbXTtcbiAgICAgICAgXy5mb3JFYWNoKHZhbGlkYXRvcnMsIChmbiwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGxldCBwcm9taXNlID0gZm47XG4gICAgICAgICAgICBpZiAoZm4gaW5zdGFuY2VvZiBGdW5jdGlvbiAmJiBmbi5iaW5kKSB7XG4gICAgICAgICAgICAgICAgcHJvbWlzZSA9IGZuKHRoaXMud2lkZ2V0Q29udHJvbCwgdGhpcy53aWRnZXRDb250ZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwcm9taXNlIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgIGFyci5wdXNoKHByb21pc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGFycjtcbiAgICB9XG5cbiAgICAvLyB0aGlzIG1ldGhvZCBzZXRzIHRoZSBhc3luY1ZhbGlkYXRpb24gb24gdGhlIGZvcm0gZmllbGQuIEFzc2lnbnMgdmFsaWRhdGlvbm1lc3NhZ2VzIGZyb20gdGhlIHJldHVybmVkIHJlc3BvbnNlXG4gICAgc2V0QXN5bmNWYWxpZGF0b3JzKHZhbGlkYXRvcnMpIHtcbiAgICAgICAgdGhpcy5fYXN5bmNWYWxpZGF0b3JGbiA9ICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHRoaXMuZ2V0UHJvbWlzZUxpc3QodmFsaWRhdG9ycykpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLnZhbGlkYXRpb25tZXNzYWdlID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIGVyciBvYmogaGFzIHZhbGlkYXRpb25NZXNzYWdlIGtleSwgdGhlbiBzZXQgdmFsaWRhdGlvbk1lc3NhZ2UgdXNpbmcgdGhpcyB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAvLyBlbHNlIHJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IGtleSBpbiB0aGUgZXJyIG9iamVjdCBhcyB2YWxpZGF0aW9uIG1lc3NhZ2UuXG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIuaGFzT3duUHJvcGVydHkoJ2Vycm9yTWVzc2FnZScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLnZhbGlkYXRpb25tZXNzYWdlID0gXy5nZXQoZXJyLCAnZXJyb3JNZXNzYWdlJyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXlzID0gXy5rZXlzKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLnZhbGlkYXRpb25tZXNzYWdlID0gKGVycltrZXlzWzBdXSkudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyO1xuICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBmb3JtIGNvbnRyb2wgc3RhdHVzIGlzIG5vdCBjaGFuZ2VkIGZyb20gcGVuZGluZy4gVGhpcyBpcyBhbiBhbmd1bGFyIGlzc3VlIHJlZmVyIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzEzMjAwXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoZWNrRm9yU3RhdHVzQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMud2lkZ2V0Q29udHJvbC5zdGF0dXMgPT09ICdQRU5ESU5HJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0ZvclN0YXR1c0NoYW5nZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2Uub25TdGF0dXNDaGFuZ2UodGhpcy53aWRnZXRDb250cm9sLnN0YXR1cywgdGhpcy50YWJsZUZpZWxkVHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tGb3JTdGF0dXNDaGFuZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLndpZGdldENvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKFt0aGlzLl9hc3luY1ZhbGlkYXRvckZuKCldKTtcbiAgICAgICAgaWYodGhpcy53aWRnZXRDb250ZXh0Lm5nZm9ybS50b3VjaGVkKXtcbiAgICAgICAgICAgIHRoaXMud2lkZ2V0Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc0RlZmF1bHRWYWxpZGF0b3IodHlwZSkge1xuICAgICAgICByZXR1cm4gXy5nZXQoVkFMSURBVE9SLCBfLnRvVXBwZXIodHlwZSkpO1xuICAgIH1cblxuICAgIC8vIGRlZmF1bHQgdmFsaWRhdG9yIGlzIGJvdW5kIHRvIGEgZnVuY3Rpb24gdGhlbiB3YXRjaCBmb3IgdmFsdWUgY2hhbmdlc1xuICAgIC8vIG90aGVyd2lzZSBzZXQgdGhlIHZhbHVlIG9mIGRlZmF1bHQgdmFsaWRhdG9yIGRpcmVjdGx5XG4gICAgc2V0RGVmYXVsdFZhbGlkYXRvcihrZXksIHZhbHVlKSB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgICAgICAvLyBwYXNzaW5nIGZvcm1maWVsZCBhbmQgZm9ybSBhcyBhcmd1bWVudHMgdG8gdGhlIGRlZmF1bHQgdmFsaWRhdG9yIGZ1bmN0aW9uXG4gICAgICAgICAgICB0aGlzLndhdGNoRGVmYXVsdFZhbGlkYXRvckV4cHIodmFsdWUuYmluZCh1bmRlZmluZWQsIHRoaXMud2lkZ2V0Q29udHJvbCwgdGhpcy53aWRnZXRDb250ZXh0KSwga2V5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2Uud2lkZ2V0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2Vba2V5XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gc2V0cyB0aGUgZGVmYXVsdCB2YWxpZGF0aW9uIG9uIHRoZSBmb3JtIGZpZWxkXG4gICAgc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKSB7XG4gICAgICAgIGxldCBfY2xvbmVWYWxpZGF0b3JzID0gXy5jbG9uZURlZXAodmFsaWRhdG9ycyk7XG4gICAgICAgIHRoaXMuaGFzVmFsaWRhdG9ycyA9IHRydWU7XG4gICAgICAgIHRoaXMuX3N5bmNWYWxpZGF0b3JzID0gW107XG4gICAgICAgIF8uZm9yRWFjaChfY2xvbmVWYWxpZGF0b3JzLCAob2JqLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgLy8gY3VzdG9tIHZhbGlkYXRpb24gaXMgYm91bmQgdG8gZnVuY3Rpb24uXG4gICAgICAgICAgICBpZiAob2JqICYmIG9iaiBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgICAgICAgICAgLy8gcGFzc2luZyBmb3JtZmllbGQgYW5kIGZvcm0gYXMgYXJndW1lbnRzIHRvIHRoZSBvYmogKGkuZS4gdmFsaWRhdG9yIGZ1bmN0aW9uKVxuICAgICAgICAgICAgICAgIF9jbG9uZVZhbGlkYXRvcnNbaW5kZXhdID0gb2JqLmJpbmQodW5kZWZpbmVkLCB0aGlzLndpZGdldENvbnRyb2wsIHRoaXMud2lkZ2V0Q29udGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3luY1ZhbGlkYXRvcnMucHVzaChfY2xvbmVWYWxpZGF0b3JzW2luZGV4XSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGNoZWNrcyBmb3IgZGVmYXVsdCB2YWxpZGF0b3IgbGlrZSByZXF1aXJlZCwgbWF4Y2hhcnMgZXRjLlxuICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IF8uZ2V0KG9iaiwgJ3R5cGUnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRWYWxpZGF0b3JNZXNzYWdlc1trZXldID0gXy5nZXQob2JqLCAnZXJyb3JNZXNzYWdlJyk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNEZWZhdWx0VmFsaWRhdG9yKGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBfLmdldChvYmosICd2YWxpZGF0b3InKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0VmFsaWRhdG9yKGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBfY2xvbmVWYWxpZGF0b3JzW2luZGV4XSA9ICcnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gX3N5bmNWYWxpZGF0b3JzIGNvbnRhaW5zIGFsbCB0aGUgY3VzdG9tIHZhbGlkYXRpb25zIG9uIHRoZSBmb3JtIGZpZWxkLiB3aWxsIG5vdCBpbmNsdWRlIGRlZmF1bHQgdmFsaWRhdG9ycy5cbiAgICAgICAgdGhpcy5fc3luY1ZhbGlkYXRvcnMgPSBfLmZpbHRlcihfY2xvbmVWYWxpZGF0b3JzLCB2YWwgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFwcGx5RGVmYXVsdFZhbGlkYXRvcnMoKTtcbiAgICB9XG5cbiAgICBvYnNlcnZlT24oZmllbGRzLCBjb250ZXh0KSB7XG4gICAgICAgIF8uZm9yRWFjaChmaWVsZHMsIGZpZWxkID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1maWVsZCA9IF8uZmluZCh0aGlzLndpZGdldENvbnRleHRbY29udGV4dF0sIHsna2V5JzogZmllbGR9KTtcbiAgICAgICAgICAgIGlmIChmb3JtZmllbGQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWZvcm1maWVsZC5ub3RpZnlGb3JGaWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybWZpZWxkLm5vdGlmeUZvckZpZWxkcyA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3JtZmllbGQubm90aWZ5Rm9yRmllbGRzLnB1c2godGhpcy5pbnN0YW5jZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHZhbGlkYXRlKCkge1xuICAgICAgICB0aGlzLmFwcGx5RGVmYXVsdFZhbGlkYXRvcnMoKTtcbiAgICAgICAgaWYgKHRoaXMuX2FzeW5jVmFsaWRhdG9yRm4pIHtcbiAgICAgICAgICAgIHRoaXMud2lkZ2V0Q29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnMoW3RoaXMuX2FzeW5jVmFsaWRhdG9yRm4oKV0pO1xuICAgICAgICAgICAgdGhpcy53aWRnZXRDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBzaG93IHRoZSB2YWxpZGF0aW9uIGVycm9zIHNob3cgd2hlbiBmb3JtIGlzIHRvdWNoZWQgYW5kIG5vdCBvbiBsb2FkLiBUaGlzIGp1c3QgaGlnaGxpZ2h0cyB0aGUgZmllbGQgdGhhdCBpcyBzdWJzY3JpYmVkIGZvciBjaGFuZ2VzLlxuICAgICAgICBpZiAodGhpcy53aWRnZXRDb250ZXh0Lm5nZm9ybS50b3VjaGVkKSB7XG4gICAgICAgICAgICB0aGlzLndpZGdldENvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gd2F0Y2hlcyBmb3IgY2hhbmdlcyBpbiB0aGUgYm91bmQgZnVuY3Rpb24gZm9yIGRlZmF1bHQgdmFsaWRhdG9ycy5cbiAgICB3YXRjaERlZmF1bHRWYWxpZGF0b3JFeHByKGZuLCBrZXkpIHtcbiAgICAgICAgY29uc3Qgd2F0Y2hOYW1lID0gYCR7dGhpcy5pbnN0YW5jZS53aWRnZXRJZH1fYCArIGtleSArICdfZm9ybUZpZWxkJztcbiAgICAgICAgJHVud2F0Y2god2F0Y2hOYW1lKTtcbiAgICAgICAgLy9bVG9kby1DU1BdOiBOZWVkIGNsYXJpdHkgZ2VuZXJhdGUgdGhpcyBleHByIGZuIGlmIGZvcm0gaXMgcHJlc2VudCBpbiB0aGUgcGFnZVxuICAgICAgICB0aGlzLmluc3RhbmNlLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKCR3YXRjaCgnYm91bmRGbihmbiknLCBfLmV4dGVuZCh0aGlzLmluc3RhbmNlLCB0aGlzLmluc3RhbmNlLnZpZXdQYXJlbnQpLCB7Zm59LCAobnYsIG92KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlLndpZGdldFtrZXldID0gbnY7XG4gICAgICAgICAgICB0aGlzLmFwcGx5RGVmYXVsdFZhbGlkYXRvcnMoKTtcbiAgICAgICAgfSwgd2F0Y2hOYW1lKSk7XG4gICAgfVxuXG4gICAgLy8gaW52b2tlcyBib3RoIGN1c3RvbSBzeW5jIHZhbGlkYXRpb25zIGFuZCBkZWZhdWx0IHZhbGlkYXRpb25zLlxuICAgIGFwcGx5RGVmYXVsdFZhbGlkYXRvcnMoKSB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSB0aGlzLmdldERlZmF1bHRWYWxpZGF0b3JzKCk7XG4gICAgICAgIHRoaXMud2lkZ2V0Q29udHJvbC5zZXRWYWxpZGF0b3JzKF8uY29uY2F0KHRoaXMuX3N5bmNWYWxpZGF0b3JzIHx8IFtdLCB2YWxpZGF0b3JzKSk7XG4gICAgICAgIHRoaXMud2lkZ2V0Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIHRoaXMuc2V0Q3VzdG9tVmFsaWRhdGlvbk1lc3NhZ2UoKTtcbiAgICB9XG5cbiAgICBzZXRDdXN0b21WYWxpZGF0aW9uTWVzc2FnZSgpIHtcbiAgICAgICAgY29uc3QgZmllbGRFcnJvcnMgPSB0aGlzLndpZGdldENvbnRyb2wgJiYgdGhpcy53aWRnZXRDb250cm9sLmVycm9ycztcblxuICAgICAgICBpZiAoIWZpZWxkRXJyb3JzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpZWxkRXJyb3JzLmhhc093blByb3BlcnR5KCdlcnJvck1lc3NhZ2UnKSkge1xuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS52YWxpZGF0aW9ubWVzc2FnZSA9IF8uZ2V0KGZpZWxkRXJyb3JzLCAnZXJyb3JNZXNzYWdlJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBrZXlzID0gXy5rZXlzKGZpZWxkRXJyb3JzKTtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGtleXNbMF07XG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0aW9uTXNnS2V5ID0gXy5nZXQoREVGQVVMVF9WQUxJREFUT1IsIGtleSkgfHwgdGhpcy5mb3Jtd2lkZ2V0LnZhbGlkYXRlVHlwZTtcbiAgICAgICAgICAgIGlmICh2YWxpZGF0aW9uTXNnS2V5KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbXNnID0gXy5nZXQodGhpcy5kZWZhdWx0VmFsaWRhdG9yTWVzc2FnZXMsIHZhbGlkYXRpb25Nc2dLZXkpIHx8IHRoaXMuaW5zdGFuY2UudmFsaWRhdGlvbm1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgaWYgKG1zZyAmJiBtc2cgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAvLyBwYXNzaW5nIGZvcm1maWVsZCBhbmQgZm9ybSBhcyBhcmd1bWVudHMgdG8gdGhlIGVycm9yTWVzc2FnZSBmdW5jdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS52YWxpZGF0aW9ubWVzc2FnZSA9IG1zZyh0aGlzLndpZGdldENvbnRyb2wsIHRoaXMud2lkZ2V0Q29udGV4dCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS52YWxpZGF0aW9ubWVzc2FnZSA9IG1zZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGZhbGxiYWNrIHdoZW4gdGhlcmUgaXMgbm8gdmFsaWRhdGlvbm1lc3NhZ2UgZm9yIGZpZWxkcyBvdGhlciB0aGFuIGRlZmF1bHQgdmFsaWRhdG9ycy5cbiAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLnZhbGlkYXRpb25tZXNzYWdlID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,4 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
+ import { isMobileApp } from '@wm/core';
2
3
  const openedDialogs = [];
3
4
  /*We need closedDialogs array because onHidden event is asynchronous,
4
5
  and if the user uses script and calls dialog1.close() and then dialog2.close() then
@@ -138,6 +139,11 @@ export class DialogServiceImpl {
138
139
  if (openedDialogs.indexOf(ref) !== -1) {
139
140
  openedDialogs.splice(openedDialogs.indexOf(ref), 1);
140
141
  }
142
+ if (openedDialogs.length === 0 && isMobileApp()) {
143
+ //Fix for [WMS-23948]: remove aria-hidden attribute only after all dialogs are closed
144
+ const parentSelector = $('body > app-root')[0];
145
+ parentSelector.removeAttribute('aria-hidden');
146
+ }
141
147
  }
142
148
  getOpenedDialogs() {
143
149
  return openedDialogs;
@@ -158,4 +164,4 @@ DialogServiceImpl.decorators = [
158
164
  { type: Injectable }
159
165
  ];
160
166
  DialogServiceImpl.ctorParameters = () => [];
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL2Jhc2Uvc3JjL3dpZGdldHMvY29tbW9uL2RpYWxvZy9kaWFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztBQUN6Qjs7K0VBRStFO0FBQy9FLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDO0FBSzdCLE1BQU0sT0FBTyxpQkFBaUI7SUFVMUI7UUFSQTs7OztXQUlHO1FBQ0sseUJBQW9CLEdBQUcsSUFBSSxHQUFHLEVBQVksQ0FBQztRQUMzQyxxQkFBZ0IsR0FBRyxxQkFBcUIsQ0FBQztJQUVsQyxDQUFDO0lBRWhCOzs7OztPQUtHO0lBQ0ksUUFBUSxDQUFDLElBQVksRUFBRSxTQUFjLEVBQUUsS0FBVTtRQUNwRCxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1AsT0FBTztTQUNWO1FBQ0QsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztTQUM3RDthQUFNO1lBQ0gsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0RTtJQUNMLENBQUM7SUFFTSx1QkFBdUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksVUFBVSxDQUFDLElBQVksRUFBRSxLQUFV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QyxPQUFPLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDOzs7WUFyS0osVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuY29uc3Qgb3BlbmVkRGlhbG9ncyA9IFtdO1xuLypXZSBuZWVkIGNsb3NlZERpYWxvZ3MgYXJyYXkgYmVjYXVzZSBvbkhpZGRlbiBldmVudCBpcyBhc3luY2hyb25vdXMsXG5hbmQgaWYgdGhlIHVzZXIgdXNlcyBzY3JpcHQgYW5kIGNhbGxzIGRpYWxvZzEuY2xvc2UoKSBhbmQgdGhlbiBkaWFsb2cyLmNsb3NlKCkgdGhlblxud2UgY2Fubm90IGJlIHN1cmUgaWYgYm90aCB0aGUgZGlhbG9ncyBvbkNsb3NlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIG9yIG5vdC4qL1xuY29uc3QgY2xvc2VEaWFsb2dzQXJyYXkgPSBbXTtcblxuZGVjbGFyZSBjb25zdCBfO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGlhbG9nU2VydmljZUltcGwge1xuXG4gICAgLyoqXG4gICAgICogbWFwIHdoaWNoIGNvbnRhaW5zIHRoZSByZWZlcmVuY2VzIHRvIGFsbCBkaWFsb2dzIGJ5IG5hbWVcbiAgICAgKiBAdHlwZSB7TWFwPGFueSwgYW55Pn1cbiAgICAgKiBFeCBNYXBbW2RpYWxvZ05hbWUsIFtbZGlhbG9nU2NvcGUsIGRpYWxvZ1JlZl1dXV1cbiAgICAgKi9cbiAgICBwcml2YXRlIGRpYWxvZ1JlZnNDb2xsZWN0aW9uID0gbmV3IE1hcDxhbnksIGFueT4oKTtcbiAgICBwcml2YXRlIGFwcENvbmZpcm1EaWFsb2cgPSAnX2FwcC1jb25maXJtLWRpYWxvZyc7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciBkaWFsb2cgYnkgbmFtZSBhbmQgc2NvcGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICAgICAqIEBwYXJhbSB7QmFzZURpYWxvZ30gZGlhbG9nUmVmXG4gICAgICogQHBhcmFtIHtzY29wZX1cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXIobmFtZTogc3RyaW5nLCBkaWFsb2dSZWY6IGFueSwgc2NvcGU6IGFueSkge1xuICAgICAgICBpZiAoIW5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kaWFsb2dSZWZzQ29sbGVjdGlvbi5nZXQobmFtZSkpIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmc0NvbGxlY3Rpb24uZ2V0KG5hbWUpLnNldChzY29wZSwgZGlhbG9nUmVmKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmc0NvbGxlY3Rpb24uc2V0KG5hbWUsIG5ldyBNYXAoW1tzY29wZSwgZGlhbG9nUmVmXV0pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXREaWFsb2dSZWZzQ29sbGVjdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlhbG9nUmVmc0NvbGxlY3Rpb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGUgUmVnaXN0ZXIgZGlhbG9nIGJ5IG5hbWUgYW5kIHNjb3BlXG4gICAgICogQHBhcmFtIG5hbWVcbiAgICAgKiBAcGFyYW0gZGlhbG9nUmVmXG4gICAgICogQHBhcmFtIHNjb3BlXG4gICAgICovXG4gICAgcHVibGljIGRlUmVnaXN0ZXIobmFtZTogc3RyaW5nLCBzY29wZTogYW55KSB7XG4gICAgICAgIGlmICghbmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ1JlZnNDb2xsZWN0aW9uLmdldChuYW1lKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmc0NvbGxlY3Rpb24uZ2V0KG5hbWUpLmRlbGV0ZShzY29wZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERpYWxvZ1JlZihuYW1lOiBzdHJpbmcsIHNjb3BlPzogYW55KSB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZk1hcCA9IHRoaXMuZGlhbG9nUmVmc0NvbGxlY3Rpb24uZ2V0KG5hbWUpO1xuICAgICAgICBsZXQgZGlhbG9nUmVmO1xuXG4gICAgICAgIGlmIChzY29wZSkge1xuICAgICAgICAgICAgZGlhbG9nUmVmID0gZGlhbG9nUmVmTWFwLmdldChzY29wZSk7XG4gICAgICAgICAgICBpZiAoIWRpYWxvZ1JlZikge1xuICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBzY29wZSBpcyBBcHAgbGV2ZWwgc2NvcGVcbiAgICAgICAgICAgICAgICAvLyBlbHNlIHRocm93IGEgY29uc29sZSBlcnJvclxuICAgICAgICAgICAgICAgIGlmICghc2NvcGUucGFnZU5hbWUgJiYgIXNjb3BlLnBhcnRpYWxOYW1lICYmICFzY29wZS5wcmVmYWJOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpYWxvZ1JlZk1hcC5mb3JFYWNoKChkUmVmLCBkaWFsb2dTY29wZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGNvbGxlY3Rpb24gb2YgZGlhbG9ncyBoYXZlIGEgXCJjb21tb25cIiBwYXJ0aWFsIHNjb3BlXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB5ZXMgdXNlIHRoYXQgZWxzZSB0aHJvdWdoIGEgY29uc29sZSBlcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpYWxvZ1Njb3BlICYmIGRpYWxvZ1Njb3BlLnBhcnRpYWxOYW1lID09PSAnQ29tbW9uJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxvZ1JlZiA9IGRSZWY7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ05vIGRpYWxvZyB3aXRoIHRoZSBuYW1lIFwiJyArIG5hbWUgKyAnXCIgZm91bmQgaW4gdGhlIEFwcCBzY29wZS4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignTm8gZGlhbG9nIHdpdGggdGhlIG5hbWUgXCInICsgbmFtZSArICdcIiBmb3VuZCBpbiB0aGUgZ2l2ZW4gc2NvcGUuJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGRpYWxvZ1JlZk1hcC5zaXplID09PSAxKSB7XG4gICAgICAgICAgICAgICAgZGlhbG9nUmVmID0gZGlhbG9nUmVmTWFwLmVudHJpZXMoKS5uZXh0KCkudmFsdWVbMV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1RoZXJlIGFyZSBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgdGhpcyBkaWFsb2cgbmFtZS4gUGxlYXNlIHByb3ZpZGUgdGhlIFBhZ2UvUGFydGlhbC9BcHAgaW5zdGFuY2UgaW4gd2hpY2ggdGhlIGRpYWxvZyBleGlzdHMuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRpYWxvZ1JlZjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVucyB0aGUgZGlhbG9nIHdpdGggdGhlIGdpdmVuIG5hbWVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICAgICAqL1xuICAgIHB1YmxpYyBvcGVuKG5hbWU6IHN0cmluZywgc2NvcGU/OiBhbnksIGluaXRTdGF0ZT86IGFueSkge1xuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmdldERpYWxvZ1JlZihuYW1lLCBzY29wZSk7XG4gICAgICAgIGlmICghZGlhbG9nUmVmKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBkaWFsb2dSZWYub3Blbihpbml0U3RhdGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNsb3NlcyB0aGUgZGlhbG9nIHdpdGggdGhlIGdpdmVuIG5hbWVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICAgICAqL1xuICAgIHB1YmxpYyBjbG9zZShuYW1lOiBzdHJpbmcsIHNjb3BlPzogYW55LCBjYWxsQmFja0ZuPzphbnkpIHtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5nZXREaWFsb2dSZWYobmFtZSwgc2NvcGUpO1xuICAgICAgICBpZiAoIWRpYWxvZ1JlZikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIEZvciBub3RpZmljYXRpb24gYWN0aW9uIHZhcmlhYmxlIGRpYWxvZ3Mgb25vayBjYWxsYmFjayBldmVudCBzaG91bGQgYmUgY2FsbGVkIGFmdGVyIGNsb3NpbmcgdGhlIGRpYWxvZy5cbiAgICAgICAgLy8gU28gcGFzc2luZyBpdCBhcyBjYWxsYmFjayBmdW5jdGlvblxuICAgICAgICBkaWFsb2dSZWYuY2xvc2VDYWxsQmFja0ZuID0gY2FsbEJhY2tGbjtcbiAgICAgICAgZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY2xvc2VzIGFsbCB0aGUgb3BlbmVkIGRpYWxvZ3NcbiAgICAgKi9cbiAgICBjbG9zZUFsbERpYWxvZ3MoKSB7XG4gICAgICAgIF8uZm9yRWFjaChvcGVuZWREaWFsb2dzLnJldmVyc2UoKSwgKGRpYWxvZykgPT4ge1xuICAgICAgICAgICAgZGlhbG9nLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93QXBwQ29uZmlybURpYWxvZyhpbml0U3RhdGU/OiBhbnkpIHtcbiAgICAgICAgdGhpcy5vcGVuKHRoaXMuZ2V0QXBwQ29uZmlybURpYWxvZygpLCB1bmRlZmluZWQsIGluaXRTdGF0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlQXBwQ29uZmlybURpYWxvZygpIHtcbiAgICAgICAgdGhpcy5jbG9zZSh0aGlzLmdldEFwcENvbmZpcm1EaWFsb2coKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEFwcENvbmZpcm1EaWFsb2coKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcENvbmZpcm1EaWFsb2c7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEFwcENvbmZpcm1EaWFsb2coZGlhbG9nTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuYXBwQ29uZmlybURpYWxvZyA9IGRpYWxvZ05hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFRvT3BlbmVkRGlhbG9ncyhyZWYpIHtcbiAgICAgICAgb3BlbmVkRGlhbG9ncy5wdXNoKHJlZik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldExhc3RPcGVuZWREaWFsb2coKSB7XG4gICAgICAgIHJldHVybiBvcGVuZWREaWFsb2dzW29wZW5lZERpYWxvZ3MubGVuZ3RoIC0gMV07XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZUZyb21PcGVuZWREaWFsb2dzKHJlZikge1xuICAgICAgICBpZiAob3BlbmVkRGlhbG9ncy5pbmRleE9mKHJlZikgIT09IC0xKSB7XG4gICAgICAgICAgICBvcGVuZWREaWFsb2dzLnNwbGljZShvcGVuZWREaWFsb2dzLmluZGV4T2YocmVmKSwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0T3BlbmVkRGlhbG9ncygpIHtcbiAgICAgICAgcmV0dXJuIG9wZW5lZERpYWxvZ3M7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFRvQ2xvc2VkRGlhbG9ncyhyZWYpIHtcbiAgICAgICAgY2xvc2VEaWFsb2dzQXJyYXkucHVzaChyZWYpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVGcm9tQ2xvc2VkRGlhbG9ncyhyZWYpIHtcbiAgICAgICAgaWYgKGNsb3NlRGlhbG9nc0FycmF5LmluZGV4T2YocmVmKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIGNsb3NlRGlhbG9nc0FycmF5LnNwbGljZShjbG9zZURpYWxvZ3NBcnJheS5pbmRleE9mKHJlZiksIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldERpYWxvZ1JlZkZyb21DbG9zZWREaWFsb2dzKCkge1xuICAgICAgICByZXR1cm4gY2xvc2VEaWFsb2dzQXJyYXlbY2xvc2VEaWFsb2dzQXJyYXkubGVuZ3RoIC0gMV07XG4gICAgfVxufVxuIl19
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL2Jhc2Uvc3JjL3dpZGdldHMvY29tbW9uL2RpYWxvZy9kaWFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDckMsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDO0FBQ3pCOzsrRUFFK0U7QUFDL0UsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7QUFLN0IsTUFBTSxPQUFPLGlCQUFpQjtJQVUxQjtRQVJBOzs7O1dBSUc7UUFDSyx5QkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBWSxDQUFDO1FBQzNDLHFCQUFnQixHQUFHLHFCQUFxQixDQUFDO0lBRWxDLENBQUM7SUFFaEI7Ozs7O09BS0c7SUFDSSxRQUFRLENBQUMsSUFBWSxFQUFFLFNBQWMsRUFBRSxLQUFVO1FBQ3BELElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxPQUFPO1NBQ1Y7UUFDRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDckMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQzdEO2FBQU07WUFDSCxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3RFO0lBQ0wsQ0FBQztJQUVNLHVCQUF1QjtRQUMxQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNyQyxDQUFDO0lB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LENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU0sdUJBQXVCLENBQUMsR0FBRztRQUM5QixJQUFJLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUN2QyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQy9EO0lBQ0wsQ0FBQztJQUVNLDZCQUE2QjtRQUNoQyxPQUFPLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDOzs7WUExS0osVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7aXNNb2JpbGVBcHB9IGZyb20gJ0B3bS9jb3JlJztcbmNvbnN0IG9wZW5lZERpYWxvZ3MgPSBbXTtcbi8qV2UgbmVlZCBjbG9zZWREaWFsb2dzIGFycmF5IGJlY2F1c2Ugb25IaWRkZW4gZXZlbnQgaXMgYXN5bmNocm9ub3VzLFxuYW5kIGlmIHRoZSB1c2VyIHVzZXMgc2NyaXB0IGFuZCBjYWxscyBkaWFsb2cxLmNsb3NlKCkgYW5kIHRoZW4gZGlhbG9nMi5jbG9zZSgpIHRoZW5cbndlIGNhbm5vdCBiZSBzdXJlIGlmIGJvdGggdGhlIGRpYWxvZ3Mgb25DbG9zZSBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCBvciBub3QuKi9cbmNvbnN0IGNsb3NlRGlhbG9nc0FycmF5ID0gW107XG5cbmRlY2xhcmUgY29uc3QgXztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERpYWxvZ1NlcnZpY2VJbXBsIHtcblxuICAgIC8qKlxuICAgICAqIG1hcCB3aGljaCBjb250YWlucyB0aGUgcmVmZXJlbmNlcyB0byBhbGwgZGlhbG9ncyBieSBuYW1lXG4gICAgICogQHR5cGUge01hcDxhbnksIGFueT59XG4gICAgICogRXggTWFwW1tkaWFsb2dOYW1lLCBbW2RpYWxvZ1Njb3BlLCBkaWFsb2dSZWZdXV1dXG4gICAgICovXG4gICAgcHJpdmF0ZSBkaWFsb2dSZWZzQ29sbGVjdGlvbiA9IG5ldyBNYXA8YW55LCBhbnk+KCk7XG4gICAgcHJpdmF0ZSBhcHBDb25maXJtRGlhbG9nID0gJ19hcHAtY29uZmlybS1kaWFsb2cnO1xuXG4gICAgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXIgZGlhbG9nIGJ5IG5hbWUgYW5kIHNjb3BlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAgICAgKiBAcGFyYW0ge0Jhc2VEaWFsb2d9IGRpYWxvZ1JlZlxuICAgICAqIEBwYXJhbSB7c2NvcGV9XG4gICAgICovXG4gICAgcHVibGljIHJlZ2lzdGVyKG5hbWU6IHN0cmluZywgZGlhbG9nUmVmOiBhbnksIHNjb3BlOiBhbnkpIHtcbiAgICAgICAgaWYgKCFuYW1lKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nUmVmc0NvbGxlY3Rpb24uZ2V0KG5hbWUpKSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZnNDb2xsZWN0aW9uLmdldChuYW1lKS5zZXQoc2NvcGUsIGRpYWxvZ1JlZik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZnNDb2xsZWN0aW9uLnNldChuYW1lLCBuZXcgTWFwKFtbc2NvcGUsIGRpYWxvZ1JlZl1dKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGlhbG9nUmVmc0NvbGxlY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpYWxvZ1JlZnNDb2xsZWN0aW9uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlIFJlZ2lzdGVyIGRpYWxvZyBieSBuYW1lIGFuZCBzY29wZVxuICAgICAqIEBwYXJhbSBuYW1lXG4gICAgICogQHBhcmFtIGRpYWxvZ1JlZlxuICAgICAqIEBwYXJhbSBzY29wZVxuICAgICAqL1xuICAgIHB1YmxpYyBkZVJlZ2lzdGVyKG5hbWU6IHN0cmluZywgc2NvcGU6IGFueSkge1xuICAgICAgICBpZiAoIW5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kaWFsb2dSZWZzQ29sbGVjdGlvbi5nZXQobmFtZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZnNDb2xsZWN0aW9uLmdldChuYW1lKS5kZWxldGUoc2NvcGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREaWFsb2dSZWYobmFtZTogc3RyaW5nLCBzY29wZT86IGFueSkge1xuICAgICAgICBjb25zdCBkaWFsb2dSZWZNYXAgPSB0aGlzLmRpYWxvZ1JlZnNDb2xsZWN0aW9uLmdldChuYW1lKTtcbiAgICAgICAgbGV0IGRpYWxvZ1JlZjtcblxuICAgICAgICBpZiAoc2NvcGUpIHtcbiAgICAgICAgICAgIGRpYWxvZ1JlZiA9IGRpYWxvZ1JlZk1hcC5nZXQoc2NvcGUpO1xuICAgICAgICAgICAgaWYgKCFkaWFsb2dSZWYpIHtcbiAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgc2NvcGUgaXMgQXBwIGxldmVsIHNjb3BlXG4gICAgICAgICAgICAgICAgLy8gZWxzZSB0aHJvdyBhIGNvbnNvbGUgZXJyb3JcbiAgICAgICAgICAgICAgICBpZiAoIXNjb3BlLnBhZ2VOYW1lICYmICFzY29wZS5wYXJ0aWFsTmFtZSAmJiAhc2NvcGUucHJlZmFiTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBkaWFsb2dSZWZNYXAuZm9yRWFjaCgoZFJlZiwgZGlhbG9nU2NvcGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGRpYWxvZ3MgaGF2ZSBhIFwiY29tbW9uXCIgcGFydGlhbCBzY29wZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgeWVzIHVzZSB0aGF0IGVsc2UgdGhyb3VnaCBhIGNvbnNvbGUgZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaWFsb2dTY29wZSAmJiBkaWFsb2dTY29wZS5wYXJ0aWFsTmFtZSA9PT0gJ0NvbW1vbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2dSZWYgPSBkUmVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdObyBkaWFsb2cgd2l0aCB0aGUgbmFtZSBcIicgKyBuYW1lICsgJ1wiIGZvdW5kIGluIHRoZSBBcHAgc2NvcGUuJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ05vIGRpYWxvZyB3aXRoIHRoZSBuYW1lIFwiJyArIG5hbWUgKyAnXCIgZm91bmQgaW4gdGhlIGdpdmVuIHNjb3BlLicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChkaWFsb2dSZWZNYXAuc2l6ZSA9PT0gMSkge1xuICAgICAgICAgICAgICAgIGRpYWxvZ1JlZiA9IGRpYWxvZ1JlZk1hcC5lbnRyaWVzKCkubmV4dCgpLnZhbHVlWzFdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdUaGVyZSBhcmUgbXVsdGlwbGUgaW5zdGFuY2VzIG9mIHRoaXMgZGlhbG9nIG5hbWUuIFBsZWFzZSBwcm92aWRlIHRoZSBQYWdlL1BhcnRpYWwvQXBwIGluc3RhbmNlIGluIHdoaWNoIHRoZSBkaWFsb2cgZXhpc3RzLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkaWFsb2dSZWY7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT3BlbnMgdGhlIGRpYWxvZyB3aXRoIHRoZSBnaXZlbiBuYW1lXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAgICAgKi9cbiAgICBwdWJsaWMgb3BlbihuYW1lOiBzdHJpbmcsIHNjb3BlPzogYW55LCBpbml0U3RhdGU/OiBhbnkpIHtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5nZXREaWFsb2dSZWYobmFtZSwgc2NvcGUpO1xuICAgICAgICBpZiAoIWRpYWxvZ1JlZikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZGlhbG9nUmVmLm9wZW4oaW5pdFN0YXRlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjbG9zZXMgdGhlIGRpYWxvZyB3aXRoIHRoZSBnaXZlbiBuYW1lXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAgICAgKi9cbiAgICBwdWJsaWMgY2xvc2UobmFtZTogc3RyaW5nLCBzY29wZT86IGFueSwgY2FsbEJhY2tGbj86YW55KSB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZ2V0RGlhbG9nUmVmKG5hbWUsIHNjb3BlKTtcbiAgICAgICAgaWYgKCFkaWFsb2dSZWYpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBGb3Igbm90aWZpY2F0aW9uIGFjdGlvbiB2YXJpYWJsZSBkaWFsb2dzIG9ub2sgY2FsbGJhY2sgZXZlbnQgc2hvdWxkIGJlIGNhbGxlZCBhZnRlciBjbG9zaW5nIHRoZSBkaWFsb2cuXG4gICAgICAgIC8vIFNvIHBhc3NpbmcgaXQgYXMgY2FsbGJhY2sgZnVuY3Rpb25cbiAgICAgICAgZGlhbG9nUmVmLmNsb3NlQ2FsbEJhY2tGbiA9IGNhbGxCYWNrRm47XG4gICAgICAgIGRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNsb3NlcyBhbGwgdGhlIG9wZW5lZCBkaWFsb2dzXG4gICAgICovXG4gICAgY2xvc2VBbGxEaWFsb2dzKCkge1xuICAgICAgICBfLmZvckVhY2gob3BlbmVkRGlhbG9ncy5yZXZlcnNlKCksIChkaWFsb2cpID0+IHtcbiAgICAgICAgICAgIGRpYWxvZy5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hvd0FwcENvbmZpcm1EaWFsb2coaW5pdFN0YXRlPzogYW55KSB7XG4gICAgICAgIHRoaXMub3Blbih0aGlzLmdldEFwcENvbmZpcm1EaWFsb2coKSwgdW5kZWZpbmVkLCBpbml0U3RhdGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZUFwcENvbmZpcm1EaWFsb2coKSB7XG4gICAgICAgIHRoaXMuY2xvc2UodGhpcy5nZXRBcHBDb25maXJtRGlhbG9nKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBcHBDb25maXJtRGlhbG9nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hcHBDb25maXJtRGlhbG9nO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRBcHBDb25maXJtRGlhbG9nKGRpYWxvZ05hbWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLmFwcENvbmZpcm1EaWFsb2cgPSBkaWFsb2dOYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRUb09wZW5lZERpYWxvZ3MocmVmKSB7XG4gICAgICAgIG9wZW5lZERpYWxvZ3MucHVzaChyZWYpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRMYXN0T3BlbmVkRGlhbG9nKCkge1xuICAgICAgICByZXR1cm4gb3BlbmVkRGlhbG9nc1tvcGVuZWREaWFsb2dzLmxlbmd0aCAtIDFdO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVGcm9tT3BlbmVkRGlhbG9ncyhyZWYpIHtcbiAgICAgICAgaWYgKG9wZW5lZERpYWxvZ3MuaW5kZXhPZihyZWYpICE9PSAtMSkge1xuICAgICAgICAgICAgb3BlbmVkRGlhbG9ncy5zcGxpY2Uob3BlbmVkRGlhbG9ncy5pbmRleE9mKHJlZiksIDEpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcGVuZWREaWFsb2dzLmxlbmd0aCA9PT0gMCAmJiBpc01vYmlsZUFwcCgpKSB7XG4gICAgICAgICAgICAvL0ZpeCBmb3IgW1dNUy0yMzk0OF06IHJlbW92ZSBhcmlhLWhpZGRlbiBhdHRyaWJ1dGUgb25seSBhZnRlciBhbGwgZGlhbG9ncyBhcmUgY2xvc2VkXG4gICAgICAgICAgICBjb25zdCBwYXJlbnRTZWxlY3RvciA9ICQoJ2JvZHkgPiBhcHAtcm9vdCcpWzBdO1xuICAgICAgICAgICAgcGFyZW50U2VsZWN0b3IucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWhpZGRlbicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldE9wZW5lZERpYWxvZ3MoKSB7XG4gICAgICAgIHJldHVybiBvcGVuZWREaWFsb2dzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRUb0Nsb3NlZERpYWxvZ3MocmVmKSB7XG4gICAgICAgIGNsb3NlRGlhbG9nc0FycmF5LnB1c2gocmVmKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlRnJvbUNsb3NlZERpYWxvZ3MocmVmKSB7XG4gICAgICAgIGlmIChjbG9zZURpYWxvZ3NBcnJheS5pbmRleE9mKHJlZikgIT09IC0xKSB7XG4gICAgICAgICAgICBjbG9zZURpYWxvZ3NBcnJheS5zcGxpY2UoY2xvc2VEaWFsb2dzQXJyYXkuaW5kZXhPZihyZWYpLCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXREaWFsb2dSZWZGcm9tQ2xvc2VkRGlhbG9ncygpIHtcbiAgICAgICAgcmV0dXJuIGNsb3NlRGlhbG9nc0FycmF5W2Nsb3NlRGlhbG9nc0FycmF5Lmxlbmd0aCAtIDFdO1xuICAgIH1cbn1cbiJdfQ==
@@ -2773,6 +2773,11 @@ class DialogServiceImpl {
2773
2773
  if (openedDialogs.indexOf(ref) !== -1) {
2774
2774
  openedDialogs.splice(openedDialogs.indexOf(ref), 1);
2775
2775
  }
2776
+ if (openedDialogs.length === 0 && isMobileApp()) {
2777
+ //Fix for [WMS-23948]: remove aria-hidden attribute only after all dialogs are closed
2778
+ const parentSelector = $('body > app-root')[0];
2779
+ parentSelector.removeAttribute('aria-hidden');
2780
+ }
2776
2781
  }
2777
2782
  getOpenedDialogs() {
2778
2783
  return openedDialogs;
@@ -4282,7 +4287,8 @@ const DEFAULT_VALIDATOR = {
4282
4287
  mindate: 'mindate',
4283
4288
  maxdate: 'maxdate',
4284
4289
  excludedates: 'excludedates',
4285
- excludedays: 'excludedays'
4290
+ excludedays: 'excludedays',
4291
+ invalidNumber: 'invalidNumber'
4286
4292
  };
4287
4293
  class BaseFieldValidations {
4288
4294
  constructor(instance, formwidget, widgettype, widgetControl, widgetContext, tableFieldType) {