@wavemaker/app-ng-runtime 11.6.0-next.140456 → 11.6.0-next.140457

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 (70) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +1 -1
  2. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +3 -3
  3. app-ng-runtime/build-task/fesm2022/index.mjs +1 -1
  4. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  5. app-ng-runtime/components/chart/bundles/index.umd.js +1 -1
  6. app-ng-runtime/components/chart/esm2022/chart.utils.mjs +2 -2
  7. app-ng-runtime/components/chart/fesm2022/index.mjs +1 -1
  8. app-ng-runtime/components/chart/fesm2022/index.mjs.map +1 -1
  9. app-ng-runtime/components/data/form/bundles/index.umd.js +41 -24
  10. app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +31 -22
  11. app-ng-runtime/components/data/form/esm2022/form.component.mjs +22 -10
  12. app-ng-runtime/components/data/form/fesm2022/index.mjs +45 -24
  13. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  14. app-ng-runtime/components/data/form/form-field/form-field.directive.d.ts +3 -1
  15. app-ng-runtime/components/data/form/form.component.d.ts +2 -2
  16. app-ng-runtime/components/data/table/bundles/index.umd.js +6 -2
  17. app-ng-runtime/components/data/table/esm2022/table.component.mjs +10 -7
  18. app-ng-runtime/components/data/table/fesm2022/index.mjs +6 -2
  19. app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
  20. app-ng-runtime/components/data/table/table.component.d.ts +4 -4
  21. app-ng-runtime/components/input/calendar/bundles/index.umd.js +6 -0
  22. app-ng-runtime/components/input/calendar/calendar.component.d.ts +1 -1
  23. app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +8 -2
  24. app-ng-runtime/components/input/calendar/fesm2022/index.mjs +6 -0
  25. app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
  26. app-ng-runtime/components/input/default/bundles/index.umd.js +52 -30
  27. app-ng-runtime/components/input/default/caption-position.directive.d.ts +1 -1
  28. app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +2 -2
  29. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +60 -37
  30. app-ng-runtime/components/input/default/fesm2022/index.mjs +53 -31
  31. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  32. app-ng-runtime/components/input/default/select/select.component.d.ts +4 -1
  33. app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +11 -11
  34. app-ng-runtime/components/input/epoch/bundles/index.umd.js +112 -87
  35. app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +100 -78
  36. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +5 -5
  37. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +6 -5
  38. app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +7 -5
  39. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +112 -87
  40. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  41. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +15 -5
  42. app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +14 -6
  43. app-ng-runtime/components/navigation/menu/esm2022/menu.props.mjs +2 -1
  44. app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +3 -3
  45. app-ng-runtime/components/navigation/menu/esm2022/nav/nav.props.mjs +2 -1
  46. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +15 -5
  47. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  48. app-ng-runtime/components/navigation/menu/menu.component.d.ts +3 -0
  49. app-ng-runtime/components/navigation/menu/nav/nav.component.d.ts +1 -0
  50. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +8 -8
  51. app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +11 -11
  52. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +8 -8
  53. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  54. app-ng-runtime/core/bundles/index.umd.js +2 -1
  55. app-ng-runtime/core/esm2022/utils/utils.mjs +4 -3
  56. app-ng-runtime/core/fesm2022/index.mjs +2 -1
  57. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  58. app-ng-runtime/package.json +1 -1
  59. app-ng-runtime/runtime/base/bundles/index.umd.js +4 -0
  60. app-ng-runtime/runtime/base/components/base-page.component.d.ts +2 -3
  61. app-ng-runtime/runtime/base/esm2022/components/base-page.component.mjs +7 -4
  62. app-ng-runtime/runtime/base/fesm2022/index.mjs +5 -1
  63. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  64. app-ng-runtime/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -1
  65. app-ng-runtime/scripts/datatable/datatable.js +5 -2
  66. app-ng-runtime/variables/bundles/index.umd.js +13 -7
  67. app-ng-runtime/variables/esm2022/util/variable/variables.utils.mjs +15 -9
  68. app-ng-runtime/variables/fesm2022/index.mjs +13 -7
  69. app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
  70. app-ng-runtime/variables/util/variable/variables.utils.d.ts +1 -1
@@ -1055,7 +1055,7 @@
1055
1055
  const dataRole = isFormField ? 'form-field' : 'filter-field';
1056
1056
  const formFieldErrorMsgId = 'wmform-field-error-' + core.generateGUId();
1057
1057
  const validationMsg = isFormField ? `<p *ngIf="${counter}._control?.invalid && ${counter}._control?.touched && ${pCounter}.isUpdateMode"
1058
- class="help-block text-danger" aria-hidden="false" role="alert"
1058
+ class="help-block text-danger" aria-hidden="false"
1059
1059
  aria-live="assertive" [attr.aria-label]="${counter}.validationmessage" id="${formFieldErrorMsgId}"><span aria-hidden="true" [textContent]="${counter}.validationmessage"></span></p>` : '';
1060
1060
  const eventsTmpl = widgetType === core.FormWidgetType.UPLOAD ? '' : getEventsTemplate(attrs);
1061
1061
  const controlLayout = core.isMobileApp() ? 'col-xs-12' : 'col-sm-12';
@@ -1,5 +1,5 @@
1
1
  import { getFormMarkupAttr, register } from '@wm/transpiler';
2
- import { FormWidgetType, getFormWidgetTemplate, IDGenerator, isMobileApp, getRequiredFormWidget, generateGUId } from '@wm/core';
2
+ import { FormWidgetType, generateGUId, getFormWidgetTemplate, getRequiredFormWidget, IDGenerator, isMobileApp } from '@wm/core';
3
3
  import { ALLFIELDS, isDataSetWidget } from '../../../utils/utils';
4
4
  const tagName = 'div';
5
5
  const idGen = new IDGenerator('formfield_');
@@ -109,7 +109,7 @@ const registerFormField = (isFormField) => {
109
109
  const dataRole = isFormField ? 'form-field' : 'filter-field';
110
110
  const formFieldErrorMsgId = 'wmform-field-error-' + generateGUId();
111
111
  const validationMsg = isFormField ? `<p *ngIf="${counter}._control?.invalid && ${counter}._control?.touched && ${pCounter}.isUpdateMode"
112
- class="help-block text-danger" aria-hidden="false" role="alert"
112
+ class="help-block text-danger" aria-hidden="false"
113
113
  aria-live="assertive" [attr.aria-label]="${counter}.validationmessage" id="${formFieldErrorMsgId}"><span aria-hidden="true" [textContent]="${counter}.validationmessage"></span></p>` : '';
114
114
  const eventsTmpl = widgetType === FormWidgetType.UPLOAD ? '' : getEventsTemplate(attrs);
115
115
  const controlLayout = isMobileApp() ? 'col-xs-12' : 'col-sm-12';
@@ -157,4 +157,4 @@ const registerFormField = (isFormField) => {
157
157
  register('wm-form-field', registerFormField.bind(this, true));
158
158
  register('wm-filter-field', registerFormField.bind(this, false));
159
159
  export default () => { };
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5idWlsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvdHJhbnNwaWxlL3NyYy9kYXRhL2Zvcm0vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmJ1aWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBNEIsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVoSSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxFLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQztBQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUU1QyxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7SUFDaEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRTtRQUMzQixLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQztLQUNoQztJQUNELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFO1FBQzFCLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQy9CO0lBQ0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUMxQixJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDeEIsSUFBSSxHQUFHLEtBQUssYUFBYSxFQUFFO2dCQUN2QixLQUFLLEdBQUcseUJBQXlCLEtBQUssRUFBRSxDQUFDO2FBQzVDO2lCQUFNLElBQUksR0FBRyxLQUFLLFlBQVksRUFBRTtnQkFDN0IsS0FBSyxHQUFHLHdCQUF3QixLQUFLLEVBQUUsQ0FBQzthQUMzQztZQUNELFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzNCLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckI7SUFDSixDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8saUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDekMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUNqQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNqRixDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQy9GLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzVFLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzVFLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDbEQsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNsRCxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxjQUFjLEVBQUUsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzlFLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDaEQsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDaEYsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDOUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDNUUsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDaEYsQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztDQUNwRCxDQUFDLENBQUM7QUFFSCxNQUFNLHFCQUFxQixHQUFHLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRTtJQUN2RCxNQUFNLElBQUksR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVELElBQUksV0FBVyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsSUFBSSxXQUFXLElBQUksV0FBVyxLQUFLLEVBQUUsRUFBRTtRQUNuQyxPQUFPO0tBQ1Y7SUFDRCxXQUFXLEdBQUcsb0JBQW9CLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRyxJQUFJLFdBQVcsRUFBRTtRQUNiLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0tBQ2hDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUN6QyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLFNBQVMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixPQUFPLENBQUMsT0FBTyxjQUFjLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQzdMLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDdkUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDcEgsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztJQUMvRCxNQUFNLFdBQVcsR0FBRyxvQkFBb0IsT0FBTyxDQUFDLFFBQVEsb0JBQW9CLE9BQU8sQ0FBQyxPQUFPLGtDQUFrQyxXQUFXLElBQUksT0FBTyxDQUFDLFVBQVUsSUFBSSxnQkFBZ0IsSUFBSSxPQUFPLElBQUksVUFBVSxFQUFFLENBQUM7SUFDOU0sT0FBTyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsRUFBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBQyxDQUFDLENBQUM7QUFDakksQ0FBQyxDQUFDO0FBR0YsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFO0lBQy9FLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssTUFBTSxDQUFDO0lBQ2pELElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDVixPQUFPLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDO0tBQzFGO0lBQ0QsTUFBTSxXQUFXLEdBQUcsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQzVELE9BQU8sZUFBZSxXQUFXLEtBQUssaUJBQWlCLENBQUMsS0FBSyxFQUFFLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFDLENBQUM7OEJBQ2pGLFdBQVcsS0FBSyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsRUFBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBQyxDQUFDLFFBQVEsQ0FBQztBQUMvSSxDQUFDLENBQUM7QUFFRixNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUN0RCxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssTUFBTSxFQUFFO1FBQ3BDLE9BQU8sR0FBRyxPQUFPLG1CQUFtQixDQUFDO0tBQ3hDO0lBQ0QsSUFBSSxVQUFVLEtBQUssY0FBYyxDQUFDLFFBQVEsRUFBRTtRQUN4QyxPQUFPLGNBQWMsQ0FBQztLQUN6QjtJQUNELElBQUksT0FBTyxHQUFHLEdBQUcsT0FBTyxRQUFRLENBQUM7SUFDakMsSUFBSSxVQUFVLEtBQUssY0FBYyxDQUFDLFFBQVEsSUFBSSxVQUFVLEtBQUssY0FBYyxDQUFDLFNBQVMsRUFBRTtRQUNuRixPQUFPLElBQUksYUFBYSxPQUFPLG9EQUFvRCxDQUFDO1FBQ3BGLE9BQU8sT0FBTyxDQUFDO0tBQ2xCO0lBQ0QsSUFBSSxVQUFVLEtBQUssY0FBYyxDQUFDLElBQUksRUFBRTtRQUNwQyxPQUFPLElBQUksYUFBYSxPQUFPLHNDQUFzQyxDQUFDO1FBQ3RFLE9BQU8sT0FBTyxDQUFDO0tBQ2xCO0lBQ0QsSUFBSSxVQUFVLEtBQUssY0FBYyxDQUFDLElBQUksRUFBRTtRQUNwQyxPQUFPLElBQUksYUFBYSxPQUFPLDJDQUEyQyxDQUFDO1FBQzNFLE9BQU8sT0FBTyxDQUFDO0tBQ2xCO0lBQ0QsSUFBSSxVQUFVLEtBQUssY0FBYyxDQUFDLE1BQU0sSUFBSSxVQUFVLEtBQUssY0FBYyxDQUFDLE1BQU0sRUFBRTtRQUM5RSxPQUFPLEVBQUUsQ0FBQztLQUNiO0lBQ0QsSUFBSSxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxTQUFTLEVBQUU7UUFDckUsT0FBTyxHQUFHLE9BQU8sbUJBQW1CLENBQUM7S0FDeEM7SUFDRCxPQUFPLEdBQUcsT0FBTyxlQUFlLENBQUM7QUFDckMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFdBQVcsRUFBaUIsRUFBRTtJQUNyRCxPQUFPO1FBQ0gsUUFBUSxFQUFFLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsU0FBUyxDQUFDO1FBQ2hFLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEVBQUU7WUFDekUsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2hDLE1BQU0sTUFBTSxHQUFHLFVBQVUsSUFBSSxjQUFjLElBQUksWUFBWSxDQUFDO1lBQzVELE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztZQUNwRSxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUM7WUFDOUQsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztZQUM3RCxNQUFNLG1CQUFtQixHQUFHLHFCQUFxQixHQUFHLFlBQVksRUFBRSxDQUFDO1lBQ25FLE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsYUFBYSxPQUFPLHlCQUF5QixPQUFPLHlCQUF5QixRQUFROzs4RUFFdkQsT0FBTywyQkFBMkIsbUJBQW1CLDZDQUE2QyxPQUFPLGlDQUFpQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbE4sTUFBTSxVQUFVLEdBQUcsVUFBVSxLQUFLLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEYsTUFBTSxhQUFhLEdBQUcsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO1lBQ2hFLE1BQU0sUUFBUSxHQUFHLFFBQVEsS0FBSyxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztZQUN0RixLQUFLLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDLENBQUM7WUFDakQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDdEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN2QixNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUUvQixJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssTUFBTSxFQUFFO2dCQUNsQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUM1QyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQy9DO2lCQUFNO2dCQUNILHFCQUFxQixDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDL0M7WUFFRCxPQUFPLElBQUksT0FBTyxlQUFlLFFBQVEsa0JBQWtCLFFBQVEsMkNBQTJDLE9BQU8sOEJBQThCLFVBQVUsS0FBSyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7b0dBQ2xHLFFBQVEsK0JBQStCLFVBQVU7Z0RBQ3JHLE9BQU8sa0VBQWtFLFFBQVE7NkRBQ3BFLFFBQVEsNkNBQTZDLE9BQU8seUJBQXlCLE9BQU8seUJBQXlCLFFBQVE7cURBQ3JJLFFBQVEsb0JBQW9CLE9BQU8sOEJBQThCLE9BQU87OENBQy9FLE9BQU8sa0JBQWtCLFFBQVEsb0JBQW9CLGFBQWE7O21EQUU3RCxRQUFRLG9CQUFvQixPQUFPLG9DQUFvQyxPQUFPLDBDQUEwQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQztrQ0FDdkwsV0FBVyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDO2tFQUN2QyxPQUFPOzhDQUMzQixPQUFPLHlCQUF5QixPQUFPLDBCQUEwQixRQUFROzBIQUNHLE9BQU87a0NBQy9GLGFBQWE7OytCQUVoQixDQUFDO1FBQ3hCLENBQUM7UUFDRCxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxPQUFPLEdBQUc7UUFDM0IsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3ZCLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7WUFDM0IsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDdEQsT0FBTyxRQUFRLENBQUM7UUFDcEIsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLEtBQTBCLEVBQVksRUFBRTtZQUM5QyxNQUFNLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUM3RixLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzdCLE9BQU8sQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdkMsQ0FBQztLQUNKLENBQUM7QUFDTixDQUFDLENBQUM7QUFFRixRQUFRLENBQUMsZUFBZSxFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM5RCxRQUFRLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBRWpFLGVBQWUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0Rm9ybU1hcmt1cEF0dHIsIElCdWlsZFRhc2tEZWYsIEltcG9ydERlZiwgcmVnaXN0ZXIgfSBmcm9tICdAd20vdHJhbnNwaWxlcic7XG5pbXBvcnQgeyBGb3JtV2lkZ2V0VHlwZSwgZ2V0Rm9ybVdpZGdldFRlbXBsYXRlLCBJREdlbmVyYXRvciwgaXNNb2JpbGVBcHAsIGdldFJlcXVpcmVkRm9ybVdpZGdldCwgZ2VuZXJhdGVHVUlkIH0gZnJvbSAnQHdtL2NvcmUnO1xuXG5pbXBvcnQgeyBBTExGSUVMRFMsIGlzRGF0YVNldFdpZGdldCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3V0aWxzJztcblxuY29uc3QgdGFnTmFtZSA9ICdkaXYnO1xuY29uc3QgaWRHZW4gPSBuZXcgSURHZW5lcmF0b3IoJ2Zvcm1maWVsZF8nKTtcblxuY29uc3QgZ2V0RXZlbnRzVGVtcGxhdGUgPSAoYXR0cnMpID0+IHtcbiAgICBjb25zdCBldmVudEF0dHJzID0gbmV3IE1hcCgpO1xuICAgIGlmICghYXR0cnMuaGFzKCdmb2N1cy5ldmVudCcpKSB7XG4gICAgICAgIGF0dHJzLnNldCgnZm9jdXMuZXZlbnQnLCAnJyk7XG4gICAgfVxuICAgIGlmICghYXR0cnMuaGFzKCdibHVyLmV2ZW50JykpIHtcbiAgICAgICAgYXR0cnMuc2V0KCdibHVyLmV2ZW50JywgJycpO1xuICAgIH1cbiAgICBhdHRycy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgaWYgKGtleS5lbmRzV2l0aCgnLmV2ZW50JykpIHtcbiAgICAgICAgICAgaWYgKGtleSA9PT0gJ2ZvY3VzLmV2ZW50Jykge1xuICAgICAgICAgICAgICAgdmFsdWUgPSBgX29uRm9jdXNGaWVsZCgkZXZlbnQpOyR7dmFsdWV9YDtcbiAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdibHVyLmV2ZW50Jykge1xuICAgICAgICAgICAgICAgdmFsdWUgPSBgX29uQmx1ckZpZWxkKCRldmVudCk7JHt2YWx1ZX1gO1xuICAgICAgICAgICB9XG4gICAgICAgICAgIGV2ZW50QXR0cnMuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICAgICBhdHRycy5kZWxldGUoa2V5KTtcbiAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGdldEZvcm1NYXJrdXBBdHRyKGV2ZW50QXR0cnMpO1xufTtcblxuY29uc3QgREVGQVVMVF9QTEFDRUhPTERFUlMgPSBuZXcgTWFwKFtcbiAgICBbRm9ybVdpZGdldFR5cGUuU0VMRUNULCBbJ1NlbGVjdCBNaW4gdmFsdWUnLCAnU2VsZWN0IE1heCB2YWx1ZScsICdTZWxlY3QgdmFsdWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLkRBVEVUSU1FLCBbJ1NlbGVjdCBNaW4gZGF0ZSB0aW1lJywgJ1NlbGVjdCBNYXggZGF0ZSB0aW1lJywgJ1NlbGVjdCBkYXRlIHRpbWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLlRJTUUsIFsnU2VsZWN0IE1pbiB0aW1lJywgJ1NlbGVjdCBNYXggdGltZScsICdTZWxlY3QgdGltZSddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuREFURSwgWydTZWxlY3QgTWluIGRhdGUnLCAnU2VsZWN0IE1heCBkYXRlJywgJ1NlbGVjdCBkYXRlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5URVhUQVJFQSwgWycnLCAnJywgJ0VudGVyIHZhbHVlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5SSUNIVEVYVCwgWycnLCAnJywgJ0VudGVyIHZhbHVlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5DT0xPUlBJQ0tFUiwgWydTZWxlY3QgQ29sb3InLCAnU2VsZWN0IENvbG9yJywgJ1NlbGVjdCBDb2xvciddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuQ0hJUFMsIFsnJywgJycsICdUeXBlIGhlcmUuLi4nXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLlBBU1NXT1JELCBbJ0VudGVyIE1pbiB2YWx1ZScsICdFbnRlciBNYXggdmFsdWUnLCAnRW50ZXIgdmFsdWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLk5VTUJFUiwgWydFbnRlciBNaW4gdmFsdWUnLCAnRW50ZXIgTWF4IHZhbHVlJywgJ0VudGVyIHZhbHVlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5URVhULCBbJ0VudGVyIE1pbiB2YWx1ZScsICdFbnRlciBNYXggdmFsdWUnLCAnRW50ZXIgdmFsdWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLkNVUlJFTkNZLCBbJ0VudGVyIE1pbiB2YWx1ZScsICdFbnRlciBNYXggdmFsdWUnLCAnRW50ZXIgdmFsdWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLkFVVE9DT01QTEVURSwgWycnLCAnJywgJ1NlYXJjaCddXSxcbl0pO1xuXG5jb25zdCBzZXREZWZhdWx0UGxhY2Vob2xkZXIgPSAoYXR0cnMsIHdpZGdldFR5cGUsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgcHJvcCA9IGluZGV4ID09PSAxID8gJ21heHBsYWNlaG9sZGVyJyA6ICdwbGFjZWhvbGRlcic7XG4gICAgbGV0IHBsYWNlaG9sZGVyID0gYXR0cnMuZ2V0KHByb3ApO1xuICAgIGlmIChwbGFjZWhvbGRlciB8fCBwbGFjZWhvbGRlciA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBwbGFjZWhvbGRlciA9IERFRkFVTFRfUExBQ0VIT0xERVJTLmdldCh3aWRnZXRUeXBlKSAmJiBERUZBVUxUX1BMQUNFSE9MREVSUy5nZXQod2lkZ2V0VHlwZSlbaW5kZXhdO1xuICAgIGlmIChwbGFjZWhvbGRlcikge1xuICAgICAgICBhdHRycy5zZXQocHJvcCwgcGxhY2Vob2xkZXIpO1xuICAgIH1cbn07XG5cbmNvbnN0IGdldFdpZGdldFRlbXBsYXRlID0gKGF0dHJzLCBvcHRpb25zKSA9PiB7XG4gICAgY29uc3QgbmFtZSA9IGF0dHJzLmdldCgnbmFtZScpO1xuICAgIGNvbnN0IGZpZWxkTmFtZSA9IChhdHRycy5nZXQoJ2tleScpIHx8IG5hbWUgfHwgJycpLnRyaW0oKTtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IG9wdGlvbnMuaXNNYXhXaWRnZXQgPyBgZm9ybUNvbnRyb2xOYW1lPVwiJHtmaWVsZE5hbWV9X21heFwiYCA6IChvcHRpb25zLmlzSW5MaXN0ID8gYFtmb3JtQ29udHJvbE5hbWVdPVwiJHtvcHRpb25zLmNvdW50ZXJ9Ll9maWVsZE5hbWVcImAgOiBgZm9ybUNvbnRyb2xOYW1lPVwiJHtmaWVsZE5hbWV9XCJgKTtcbiAgICBjb25zdCB0bXBsUmVmID0gb3B0aW9ucy5pc01heFdpZGdldCA/IGAjZm9ybVdpZGdldE1heGAgOiBgI2Zvcm1XaWRnZXRgO1xuICAgIGNvbnN0IHdpZGdldE5hbWUgPSBuYW1lID8gKG9wdGlvbnMuaXNNYXhXaWRnZXQgPyBgbmFtZT1cIiR7bmFtZX1fZm9ybVdpZGdldE1heFwiYCA6IGBuYW1lPVwiJHtuYW1lfV9mb3JtV2lkZ2V0XCJgKSA6ICcnO1xuICAgIGNvbnN0IGNvbmRpdGlvbmFsQ2xhc3MgPSBgW25nQ2xhc3NdPVwiJHthdHRycy5nZXQoJ25nY2xhc3MnKX1cImA7XG4gICAgY29uc3QgZGVmYXVsdFRtcGwgPSBgW2NsYXNzLmhpZGRlbl09XCIhJHtvcHRpb25zLnBDb3VudGVyfS5pc1VwZGF0ZU1vZGUgJiYgJHtvcHRpb25zLmNvdW50ZXJ9LnZpZXdtb2Rld2lkZ2V0ICE9PSAnZGVmYXVsdCdcIiAke2Zvcm1Db250cm9sfSAke29wdGlvbnMuZXZlbnRzVG1wbH0gJHtjb25kaXRpb25hbENsYXNzfSAke3RtcGxSZWZ9ICR7d2lkZ2V0TmFtZX1gO1xuICAgIHJldHVybiBnZXRGb3JtV2lkZ2V0VGVtcGxhdGUob3B0aW9ucy53aWRnZXRUeXBlLCBkZWZhdWx0VG1wbCwgYXR0cnMsIHtjb3VudGVyOiBvcHRpb25zLmNvdW50ZXIsIHBDb3VudGVyOiBvcHRpb25zLnBDb3VudGVyfSk7XG59O1xuXG5cbmNvbnN0IGdldFRlbXBsYXRlID0gKGF0dHJzLCB3aWRnZXRUeXBlLCBldmVudHNUbXBsLCBjb3VudGVyLCBwQ291bnRlciwgaXNJbkxpc3QpID0+IHtcbiAgICBjb25zdCBpc1JhbmdlID0gYXR0cnMuZ2V0KCdpcy1yYW5nZScpID09PSAndHJ1ZSc7XG4gICAgaWYgKCFpc1JhbmdlKSB7XG4gICAgICAgIHJldHVybiBnZXRXaWRnZXRUZW1wbGF0ZShhdHRycywge3dpZGdldFR5cGUsIGV2ZW50c1RtcGwsIGNvdW50ZXIsIHBDb3VudGVyLCBpc0luTGlzdH0pO1xuICAgIH1cbiAgICBjb25zdCBsYXlvdXRDbGFzcyA9IGlzTW9iaWxlQXBwKCkgPyAnY29sLXhzLTYnIDogJ2NvbC1zbS02JztcbiAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCIke2xheW91dENsYXNzfVwiPiR7Z2V0V2lkZ2V0VGVtcGxhdGUoYXR0cnMsIHt3aWRnZXRUeXBlLCBldmVudHNUbXBsLCBjb3VudGVyLCBwQ291bnRlcn0pfTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIke2xheW91dENsYXNzfVwiPiR7Z2V0V2lkZ2V0VGVtcGxhdGUoYXR0cnMsIHt3aWRnZXRUeXBlLCBldmVudHNUbXBsLCBjb3VudGVyLCBwQ291bnRlciwgaXNNYXhXaWRnZXQ6IHRydWV9KX08L2Rpdj5gO1xufTtcblxuY29uc3QgZ2V0Q2FwdGlvbkJ5V2lkZ2V0ID0gKGF0dHJzLCB3aWRnZXRUeXBlLCBjb3VudGVyKSA9PiB7XG4gICAgaWYgKGF0dHJzLmdldCgnaXMtcmVsYXRlZCcpID09PSAndHJ1ZScpIHtcbiAgICAgICAgcmV0dXJuIGAke2NvdW50ZXJ9LmdldERpc3BsYXlFeHByKClgO1xuICAgIH1cbiAgICBpZiAod2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuUEFTU1dPUkQpIHtcbiAgICAgICAgcmV0dXJuICdcXCcqKioqKioqKlxcJyc7XG4gICAgfVxuICAgIGxldCBjYXB0aW9uID0gYCR7Y291bnRlcn0udmFsdWVgO1xuICAgIGlmICh3aWRnZXRUeXBlID09PSBGb3JtV2lkZ2V0VHlwZS5EQVRFVElNRSB8fCB3aWRnZXRUeXBlID09PSBGb3JtV2lkZ2V0VHlwZS5USU1FU1RBTVApIHtcbiAgICAgICAgY2FwdGlvbiArPSBgIHwgdG9EYXRlOiR7Y291bnRlcn0uZm9ybVdpZGdldC5kYXRlcGF0dGVybiB8fCAneXl5eS1NTS1kZCBoaDptbTpzcyBhJ2A7XG4gICAgICAgIHJldHVybiBjYXB0aW9uO1xuICAgIH1cbiAgICBpZiAod2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVElNRSkge1xuICAgICAgICBjYXB0aW9uICs9IGAgfCB0b0RhdGU6JHtjb3VudGVyfS5mb3JtV2lkZ2V0LnRpbWVwYXR0ZXJuIHx8ICdoaDptbSBhJ2A7XG4gICAgICAgIHJldHVybiBjYXB0aW9uO1xuICAgIH1cbiAgICBpZiAod2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuREFURSkge1xuICAgICAgICBjYXB0aW9uICs9IGAgfCB0b0RhdGU6JHtjb3VudGVyfS5mb3JtV2lkZ2V0LmRhdGVwYXR0ZXJuIHx8ICAneXl5eS1NTU0tZGQnYDtcbiAgICAgICAgcmV0dXJuIGNhcHRpb247XG4gICAgfVxuICAgIGlmICh3aWRnZXRUeXBlID09PSBGb3JtV2lkZ2V0VHlwZS5SQVRJTkcgfHwgd2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVVBMT0FEKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgaWYgKGlzRGF0YVNldFdpZGdldCh3aWRnZXRUeXBlKSAmJiBhdHRycy5nZXQoJ2RhdGFmaWVsZCcpID09PSBBTExGSUVMRFMpIHtcbiAgICAgICAgcmV0dXJuIGAke2NvdW50ZXJ9LmdldERpc3BsYXlFeHByKClgO1xuICAgIH1cbiAgICByZXR1cm4gYCR7Y291bnRlcn0uZ2V0Q2FwdGlvbigpYDtcbn07XG5cbmNvbnN0IHJlZ2lzdGVyRm9ybUZpZWxkID0gKGlzRm9ybUZpZWxkKTogSUJ1aWxkVGFza0RlZiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVxdWlyZXM6IFsnd20tZm9ybScsICd3bS1saXZlZm9ybScsICd3bS1saXZlZmlsdGVyJywgJ3dtLWxpc3QnXSxcbiAgICAgICAgcHJlOiAoYXR0cnMsIHNoYXJlZCwgcGFyZW50Rm9ybSwgcGFyZW50TGl2ZUZvcm0sIHBhcmVudEZpbHRlciwgcGFyZW50TGlzdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY291bnRlciA9IGlkR2VuLm5leHRVaWQoKTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IHBhcmVudEZvcm0gfHwgcGFyZW50TGl2ZUZvcm0gfHwgcGFyZW50RmlsdGVyO1xuICAgICAgICAgICAgY29uc3QgcENvdW50ZXIgPSAocGFyZW50ICYmIHBhcmVudC5nZXQoJ2Zvcm1fcmVmZXJlbmNlJykpIHx8ICdmb3JtJztcbiAgICAgICAgICAgIGNvbnN0IHdpZGdldFR5cGUgPSBhdHRycy5nZXQoJ3dpZGdldCcpIHx8IEZvcm1XaWRnZXRUeXBlLlRFWFQ7XG4gICAgICAgICAgICBjb25zdCBkYXRhUm9sZSA9IGlzRm9ybUZpZWxkID8gJ2Zvcm0tZmllbGQnIDogJ2ZpbHRlci1maWVsZCc7XG4gICAgICAgICAgICBjb25zdCBmb3JtRmllbGRFcnJvck1zZ0lkID0gJ3dtZm9ybS1maWVsZC1lcnJvci0nICsgZ2VuZXJhdGVHVUlkKCk7XG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0aW9uTXNnID0gaXNGb3JtRmllbGQgPyBgPHAgKm5nSWY9XCIke2NvdW50ZXJ9Ll9jb250cm9sPy5pbnZhbGlkICYmICR7Y291bnRlcn0uX2NvbnRyb2w/LnRvdWNoZWQgJiYgJHtwQ291bnRlcn0uaXNVcGRhdGVNb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoZWxwLWJsb2NrIHRleHQtZGFuZ2VyXCIgYXJpYS1oaWRkZW49XCJmYWxzZVwiIHJvbGU9XCJhbGVydFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJHtjb3VudGVyfS52YWxpZGF0aW9ubWVzc2FnZVwiIGlkPVwiJHtmb3JtRmllbGRFcnJvck1zZ0lkfVwiPjxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFt0ZXh0Q29udGVudF09XCIke2NvdW50ZXJ9LnZhbGlkYXRpb25tZXNzYWdlXCI+PC9zcGFuPjwvcD5gIDogJyc7XG4gICAgICAgICAgICBjb25zdCBldmVudHNUbXBsID0gd2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVVBMT0FEID8gJycgOiBnZXRFdmVudHNUZW1wbGF0ZShhdHRycyk7XG4gICAgICAgICAgICBjb25zdCBjb250cm9sTGF5b3V0ID0gaXNNb2JpbGVBcHAoKSA/ICdjb2wteHMtMTInIDogJ2NvbC1zbS0xMic7XG4gICAgICAgICAgICBjb25zdCBpc0luTGlzdCA9IHBDb3VudGVyID09PSAocGFyZW50TGlzdCAmJiBwYXJlbnRMaXN0LmdldCgncGFyZW50X2Zvcm1fcmVmZXJlbmNlJykpO1xuICAgICAgICAgICAgYXR0cnMuc2V0KCdfX3ZhbGlkYXRpb25JZCcsIGZvcm1GaWVsZEVycm9yTXNnSWQpO1xuICAgICAgICAgICAgYXR0cnMuc2V0KCdfX3dpZGdldFR5cGUnLCB3aWRnZXRUeXBlKTtcbiAgICAgICAgICAgIGF0dHJzLmRlbGV0ZSgnd2lkZ2V0Jyk7XG4gICAgICAgICAgICBzaGFyZWQuc2V0KCdjb3VudGVyJywgY291bnRlcik7XG5cbiAgICAgICAgICAgIGlmIChhdHRycy5nZXQoJ2lzLXJhbmdlJykgPT09ICd0cnVlJykge1xuICAgICAgICAgICAgICAgIHNldERlZmF1bHRQbGFjZWhvbGRlcihhdHRycywgd2lkZ2V0VHlwZSwgMCk7XG4gICAgICAgICAgICAgICAgc2V0RGVmYXVsdFBsYWNlaG9sZGVyKGF0dHJzLCB3aWRnZXRUeXBlLCAxKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2V0RGVmYXVsdFBsYWNlaG9sZGVyKGF0dHJzLCB3aWRnZXRUeXBlLCAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGA8JHt0YWdOYW1lfSBkYXRhLXJvbGU9XCIke2RhdGFSb2xlfVwiIFtmb3JtR3JvdXBdPVwiJHtwQ291bnRlcn0ubmdmb3JtXCIgd21Gb3JtRmllbGQgd21DYXB0aW9uUG9zaXRpb24gIyR7Y291bnRlcn09XCJ3bUZvcm1GaWVsZFwiIHdpZGdldHR5cGU9XCIke3dpZGdldFR5cGV9XCIgJHtnZXRGb3JtTWFya3VwQXR0cihhdHRycyl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpdmUtZmllbGQgZm9ybS1ncm91cCBhcHAtY29tcG9zaXRlLXdpZGdldCBjbGVhcmZpeCBjYXB0aW9uLXt7JHtwQ291bnRlcn0uY2FwdGlvbnBvc2l0aW9ufX1cIiB3aWRnZXQ9XCIke3dpZGdldFR5cGV9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIFtoaWRkZW5dPVwiISR7Y291bnRlcn0uZGlzcGxheW5hbWVcIiBjbGFzcz1cImFwcC1sYWJlbCBjb250cm9sLWxhYmVsIGZvcm1maWVsZC1sYWJlbCB7eyR7cENvdW50ZXJ9Ll9jYXB0aW9uQ2xhc3N9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwie3dpZHRoOiAke3BDb3VudGVyfS5jYXB0aW9uc2l6ZX1cIiBbbmdDbGFzc109XCJ7J3RleHQtZGFuZ2VyJzogJHtjb3VudGVyfS5fY29udHJvbD8uaW52YWxpZCAmJiAke2NvdW50ZXJ9Ll9jb250cm9sPy50b3VjaGVkICYmICR7cENvdW50ZXJ9LmlzVXBkYXRlTW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICR7cENvdW50ZXJ9LmlzVXBkYXRlTW9kZSAmJiAke2NvdW50ZXJ9LnJlcXVpcmVkfVwiIFt0ZXh0Q29udGVudF09XCIke2NvdW50ZXJ9LmRpc3BsYXluYW1lXCI+IDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCIke2NvdW50ZXJ9LmRpc3BsYXluYW1lID8gJHtwQ291bnRlcn0uX3dpZGdldENsYXNzIDogJyR7Y29udHJvbExheW91dH0nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wtc3RhdGljIGFwcC1sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIiR7cENvdW50ZXJ9LmlzVXBkYXRlTW9kZSB8fCAke2NvdW50ZXJ9LnZpZXdtb2Rld2lkZ2V0ID09PSAnZGVmYXVsdCcgfHwgJHtjb3VudGVyfS53aWRnZXR0eXBlID09PSAndXBsb2FkJ1wiIFtpbm5lckhUTUxdPVwiJHtnZXRDYXB0aW9uQnlXaWRnZXQoYXR0cnMsIHdpZGdldFR5cGUsIGNvdW50ZXIpfVwiPjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7Z2V0VGVtcGxhdGUoYXR0cnMsIHdpZGdldFR5cGUsIGV2ZW50c1RtcGwsIGNvdW50ZXIsIHBDb3VudGVyLCBpc0luTGlzdCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiICpuZ0lmPVwiJHtjb3VudGVyfS5zaG93UGVuZGluZ1NwaW5uZXJcIiBjbGFzcz1cImZvcm0tZmllbGQtc3Bpbm5lciBmYSBmYS1jaXJjbGUtby1ub3RjaCBmYS1zcGluIGZvcm0tY29udHJvbC1mZWVkYmFja1wiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCIhKCR7Y291bnRlcn0uX2NvbnRyb2w/LmludmFsaWQgJiYgJHtjb3VudGVyfS5fY29udHJvbD8udG91Y2hlZCkgJiYgJHtwQ291bnRlcn0uaXNVcGRhdGVNb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoZWxwLWJsb2NrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgcm9sZT1cImFsZXJ0XCIgYXJpYS1saXZlPVwicG9saXRlXCIgW3RleHRDb250ZW50XT1cIiR7Y291bnRlcn0uaGludFwiPjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt2YWxpZGF0aW9uTXNnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdDogKCkgPT4gYDwvJHt0YWdOYW1lfT5gLFxuICAgICAgICBwcm92aWRlOiAoYXR0cnMsIHNoYXJlZCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgTWFwKCk7XG4gICAgICAgICAgICBwcm92aWRlci5zZXQoJ2Zvcm1fcmVmZXJlbmNlJywgc2hhcmVkLmdldCgnY291bnRlcicpKTtcbiAgICAgICAgICAgIHJldHVybiBwcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgaW1wb3J0czogKGF0dHJzOiBNYXA8U3RyaW5nLCBTdHJpbmc+KTogc3RyaW5nW10gPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVxdWlyZWRXaWRnZXQgPSBnZXRSZXF1aXJlZEZvcm1XaWRnZXQoYXR0cnMuZ2V0KCdfX3dpZGdldFR5cGUnKSB8fCBhdHRycy5nZXQoJ3R5cGUnKSk7XG4gICAgICAgICAgICBhdHRycy5kZWxldGUoJ19fd2lkZ2V0VHlwZScpO1xuICAgICAgICAgICAgcmV0dXJuIFtyZXF1aXJlZFdpZGdldCwgJ3dtLWZvcm0nXTtcbiAgICAgICAgfVxuICAgIH07XG59O1xuXG5yZWdpc3Rlcignd20tZm9ybS1maWVsZCcsIHJlZ2lzdGVyRm9ybUZpZWxkLmJpbmQodGhpcywgdHJ1ZSkpO1xucmVnaXN0ZXIoJ3dtLWZpbHRlci1maWVsZCcsIHJlZ2lzdGVyRm9ybUZpZWxkLmJpbmQodGhpcywgZmFsc2UpKTtcblxuZXhwb3J0IGRlZmF1bHQgKCkgPT4ge307XG4iXX0=
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5idWlsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvdHJhbnNwaWxlL3NyYy9kYXRhL2Zvcm0vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmJ1aWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBaUIsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxFQUNILGNBQWMsRUFDZCxZQUFZLEVBQ1oscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQixXQUFXLEVBQ1gsV0FBVyxFQUNkLE1BQU0sVUFBVSxDQUFDO0FBRWxCLE9BQU8sRUFBQyxTQUFTLEVBQUUsZUFBZSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFaEUsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDO0FBQ3RCLE1BQU0sS0FBSyxHQUFHLElBQUksV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBRTVDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtJQUNoQyxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1FBQzNCLEtBQUssQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQ2hDO0lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUU7UUFDMUIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDL0I7SUFDRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQzFCLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN4QixJQUFJLEdBQUcsS0FBSyxhQUFh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QztZQUMzQixRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN0RCxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUMsS0FBMEIsRUFBWSxFQUFFO1lBQzlDLE1BQU0sY0FBYyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzdGLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDN0IsT0FBTyxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN2QyxDQUFDO0tBQ0osQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGLFFBQVEsQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzlELFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFFakUsZUFBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2dldEZvcm1NYXJrdXBBdHRyLCBJQnVpbGRUYXNrRGVmLCByZWdpc3Rlcn0gZnJvbSAnQHdtL3RyYW5zcGlsZXInO1xuaW1wb3J0IHtcbiAgICBGb3JtV2lkZ2V0VHlwZSxcbiAgICBnZW5lcmF0ZUdVSWQsXG4gICAgZ2V0Rm9ybVdpZGdldFRlbXBsYXRlLFxuICAgIGdldFJlcXVpcmVkRm9ybVdpZGdldCxcbiAgICBJREdlbmVyYXRvcixcbiAgICBpc01vYmlsZUFwcFxufSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7QUxMRklFTERTLCBpc0RhdGFTZXRXaWRnZXR9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3V0aWxzJztcblxuY29uc3QgdGFnTmFtZSA9ICdkaXYnO1xuY29uc3QgaWRHZW4gPSBuZXcgSURHZW5lcmF0b3IoJ2Zvcm1maWVsZF8nKTtcblxuY29uc3QgZ2V0RXZlbnRzVGVtcGxhdGUgPSAoYXR0cnMpID0+IHtcbiAgICBjb25zdCBldmVudEF0dHJzID0gbmV3IE1hcCgpO1xuICAgIGlmICghYXR0cnMuaGFzKCdmb2N1cy5ldmVudCcpKSB7XG4gICAgICAgIGF0dHJzLnNldCgnZm9jdXMuZXZlbnQnLCAnJyk7XG4gICAgfVxuICAgIGlmICghYXR0cnMuaGFzKCdibHVyLmV2ZW50JykpIHtcbiAgICAgICAgYXR0cnMuc2V0KCdibHVyLmV2ZW50JywgJycpO1xuICAgIH1cbiAgICBhdHRycy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgaWYgKGtleS5lbmRzV2l0aCgnLmV2ZW50JykpIHtcbiAgICAgICAgICAgaWYgKGtleSA9PT0gJ2ZvY3VzLmV2ZW50Jykge1xuICAgICAgICAgICAgICAgdmFsdWUgPSBgX29uRm9jdXNGaWVsZCgkZXZlbnQpOyR7dmFsdWV9YDtcbiAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdibHVyLmV2ZW50Jykge1xuICAgICAgICAgICAgICAgdmFsdWUgPSBgX29uQmx1ckZpZWxkKCRldmVudCk7JHt2YWx1ZX1gO1xuICAgICAgICAgICB9XG4gICAgICAgICAgIGV2ZW50QXR0cnMuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICAgICBhdHRycy5kZWxldGUoa2V5KTtcbiAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGdldEZvcm1NYXJrdXBBdHRyKGV2ZW50QXR0cnMpO1xufTtcblxuY29uc3QgREVGQVVMVF9QTEFDRUhPTERFUlMgPSBuZXcgTWFwKFtcbiAgICBbRm9ybVdpZGdldFR5cGUuU0VMRUNULCBbJ1NlbGVjdCBNaW4gdmFsdWUnLCAnU2VsZWN0IE1heCB2YWx1ZScsICdTZWxlY3QgdmFsdWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLkRBVEVUSU1FLCBbJ1NlbGVjdCBNaW4gZGF0ZSB0aW1lJywgJ1NlbGVjdCBNYXggZGF0ZSB0aW1lJywgJ1NlbGVjdCBkYXRlIHRpbWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLlRJTUUsIFsnU2VsZWN0IE1pbiB0aW1lJywgJ1NlbGVjdCBNYXggdGltZScsICdTZWxlY3QgdGltZSddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuREFURSwgWydTZWxlY3QgTWluIGRhdGUnLCAnU2VsZWN0IE1heCBkYXRlJywgJ1NlbGVjdCBkYXRlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5URVhUQVJFQSwgWycnLCAnJywgJ0VudGVyIHZhbHVlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5SSUNIVEVYVCwgWycnLCAnJywgJ0VudGVyIHZhbHVlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5DT0xPUlBJQ0tFUiwgWydTZWxlY3QgQ29sb3InLCAnU2VsZWN0IENvbG9yJywgJ1NlbGVjdCBDb2xvciddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuQ0hJUFMsIFsnJywgJycsICdUeXBlIGhlcmUuLi4nXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLlBBU1NXT1JELCBbJ0VudGVyIE1pbiB2YWx1ZScsICdFbnRlciBNYXggdmFsdWUnLCAnRW50ZXIgdmFsdWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLk5VTUJFUiwgWydFbnRlciBNaW4gdmFsdWUnLCAnRW50ZXIgTWF4IHZhbHVlJywgJ0VudGVyIHZhbHVlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5URVhULCBbJ0VudGVyIE1pbiB2YWx1ZScsICdFbnRlciBNYXggdmFsdWUnLCAnRW50ZXIgdmFsdWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLkNVUlJFTkNZLCBbJ0VudGVyIE1pbiB2YWx1ZScsICdFbnRlciBNYXggdmFsdWUnLCAnRW50ZXIgdmFsdWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLkFVVE9DT01QTEVURSwgWycnLCAnJywgJ1NlYXJjaCddXSxcbl0pO1xuXG5jb25zdCBzZXREZWZhdWx0UGxhY2Vob2xkZXIgPSAoYXR0cnMsIHdpZGdldFR5cGUsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgcHJvcCA9IGluZGV4ID09PSAxID8gJ21heHBsYWNlaG9sZGVyJyA6ICdwbGFjZWhvbGRlcic7XG4gICAgbGV0IHBsYWNlaG9sZGVyID0gYXR0cnMuZ2V0KHByb3ApO1xuICAgIGlmIChwbGFjZWhvbGRlciB8fCBwbGFjZWhvbGRlciA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBwbGFjZWhvbGRlciA9IERFRkFVTFRfUExBQ0VIT0xERVJTLmdldCh3aWRnZXRUeXBlKSAmJiBERUZBVUxUX1BMQUNFSE9MREVSUy5nZXQod2lkZ2V0VHlwZSlbaW5kZXhdO1xuICAgIGlmIChwbGFjZWhvbGRlcikge1xuICAgICAgICBhdHRycy5zZXQocHJvcCwgcGxhY2Vob2xkZXIpO1xuICAgIH1cbn07XG5cbmNvbnN0IGdldFdpZGdldFRlbXBsYXRlID0gKGF0dHJzLCBvcHRpb25zKSA9PiB7XG4gICAgY29uc3QgbmFtZSA9IGF0dHJzLmdldCgnbmFtZScpO1xuICAgIGNvbnN0IGZpZWxkTmFtZSA9IChhdHRycy5nZXQoJ2tleScpIHx8IG5hbWUgfHwgJycpLnRyaW0oKTtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IG9wdGlvbnMuaXNNYXhXaWRnZXQgPyBgZm9ybUNvbnRyb2xOYW1lPVwiJHtmaWVsZE5hbWV9X21heFwiYCA6IChvcHRpb25zLmlzSW5MaXN0ID8gYFtmb3JtQ29udHJvbE5hbWVdPVwiJHtvcHRpb25zLmNvdW50ZXJ9Ll9maWVsZE5hbWVcImAgOiBgZm9ybUNvbnRyb2xOYW1lPVwiJHtmaWVsZE5hbWV9XCJgKTtcbiAgICBjb25zdCB0bXBsUmVmID0gb3B0aW9ucy5pc01heFdpZGdldCA/IGAjZm9ybVdpZGdldE1heGAgOiBgI2Zvcm1XaWRnZXRgO1xuICAgIGNvbnN0IHdpZGdldE5hbWUgPSBuYW1lID8gKG9wdGlvbnMuaXNNYXhXaWRnZXQgPyBgbmFtZT1cIiR7bmFtZX1fZm9ybVdpZGdldE1heFwiYCA6IGBuYW1lPVwiJHtuYW1lfV9mb3JtV2lkZ2V0XCJgKSA6ICcnO1xuICAgIGNvbnN0IGNvbmRpdGlvbmFsQ2xhc3MgPSBgW25nQ2xhc3NdPVwiJHthdHRycy5nZXQoJ25nY2xhc3MnKX1cImA7XG4gICAgY29uc3QgZGVmYXVsdFRtcGwgPSBgW2NsYXNzLmhpZGRlbl09XCIhJHtvcHRpb25zLnBDb3VudGVyfS5pc1VwZGF0ZU1vZGUgJiYgJHtvcHRpb25zLmNvdW50ZXJ9LnZpZXdtb2Rld2lkZ2V0ICE9PSAnZGVmYXVsdCdcIiAke2Zvcm1Db250cm9sfSAke29wdGlvbnMuZXZlbnRzVG1wbH0gJHtjb25kaXRpb25hbENsYXNzfSAke3RtcGxSZWZ9ICR7d2lkZ2V0TmFtZX1gO1xuICAgIHJldHVybiBnZXRGb3JtV2lkZ2V0VGVtcGxhdGUob3B0aW9ucy53aWRnZXRUeXBlLCBkZWZhdWx0VG1wbCwgYXR0cnMsIHtjb3VudGVyOiBvcHRpb25zLmNvdW50ZXIsIHBDb3VudGVyOiBvcHRpb25zLnBDb3VudGVyfSk7XG59O1xuXG5cbmNvbnN0IGdldFRlbXBsYXRlID0gKGF0dHJzLCB3aWRnZXRUeXBlLCBldmVudHNUbXBsLCBjb3VudGVyLCBwQ291bnRlciwgaXNJbkxpc3QpID0+IHtcbiAgICBjb25zdCBpc1JhbmdlID0gYXR0cnMuZ2V0KCdpcy1yYW5nZScpID09PSAndHJ1ZSc7XG4gICAgaWYgKCFpc1JhbmdlKSB7XG4gICAgICAgIHJldHVybiBnZXRXaWRnZXRUZW1wbGF0ZShhdHRycywge3dpZGdldFR5cGUsIGV2ZW50c1RtcGwsIGNvdW50ZXIsIHBDb3VudGVyLCBpc0luTGlzdH0pO1xuICAgIH1cbiAgICBjb25zdCBsYXlvdXRDbGFzcyA9IGlzTW9iaWxlQXBwKCkgPyAnY29sLXhzLTYnIDogJ2NvbC1zbS02JztcbiAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCIke2xheW91dENsYXNzfVwiPiR7Z2V0V2lkZ2V0VGVtcGxhdGUoYXR0cnMsIHt3aWRnZXRUeXBlLCBldmVudHNUbXBsLCBjb3VudGVyLCBwQ291bnRlcn0pfTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIke2xheW91dENsYXNzfVwiPiR7Z2V0V2lkZ2V0VGVtcGxhdGUoYXR0cnMsIHt3aWRnZXRUeXBlLCBldmVudHNUbXBsLCBjb3VudGVyLCBwQ291bnRlciwgaXNNYXhXaWRnZXQ6IHRydWV9KX08L2Rpdj5gO1xufTtcblxuY29uc3QgZ2V0Q2FwdGlvbkJ5V2lkZ2V0ID0gKGF0dHJzLCB3aWRnZXRUeXBlLCBjb3VudGVyKSA9PiB7XG4gICAgaWYgKGF0dHJzLmdldCgnaXMtcmVsYXRlZCcpID09PSAndHJ1ZScpIHtcbiAgICAgICAgcmV0dXJuIGAke2NvdW50ZXJ9LmdldERpc3BsYXlFeHByKClgO1xuICAgIH1cbiAgICBpZiAod2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuUEFTU1dPUkQpIHtcbiAgICAgICAgcmV0dXJuICdcXCcqKioqKioqKlxcJyc7XG4gICAgfVxuICAgIGxldCBjYXB0aW9uID0gYCR7Y291bnRlcn0udmFsdWVgO1xuICAgIGlmICh3aWRnZXRUeXBlID09PSBGb3JtV2lkZ2V0VHlwZS5EQVRFVElNRSB8fCB3aWRnZXRUeXBlID09PSBGb3JtV2lkZ2V0VHlwZS5USU1FU1RBTVApIHtcbiAgICAgICAgY2FwdGlvbiArPSBgIHwgdG9EYXRlOiR7Y291bnRlcn0uZm9ybVdpZGdldC5kYXRlcGF0dGVybiB8fCAneXl5eS1NTS1kZCBoaDptbTpzcyBhJ2A7XG4gICAgICAgIHJldHVybiBjYXB0aW9uO1xuICAgIH1cbiAgICBpZiAod2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVElNRSkge1xuICAgICAgICBjYXB0aW9uICs9IGAgfCB0b0RhdGU6JHtjb3VudGVyfS5mb3JtV2lkZ2V0LnRpbWVwYXR0ZXJuIHx8ICdoaDptbSBhJ2A7XG4gICAgICAgIHJldHVybiBjYXB0aW9uO1xuICAgIH1cbiAgICBpZiAod2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuREFURSkge1xuICAgICAgICBjYXB0aW9uICs9IGAgfCB0b0RhdGU6JHtjb3VudGVyfS5mb3JtV2lkZ2V0LmRhdGVwYXR0ZXJuIHx8ICAneXl5eS1NTU0tZGQnYDtcbiAgICAgICAgcmV0dXJuIGNhcHRpb247XG4gICAgfVxuICAgIGlmICh3aWRnZXRUeXBlID09PSBGb3JtV2lkZ2V0VHlwZS5SQVRJTkcgfHwgd2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVVBMT0FEKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgaWYgKGlzRGF0YVNldFdpZGdldCh3aWRnZXRUeXBlKSAmJiBhdHRycy5nZXQoJ2RhdGFmaWVsZCcpID09PSBBTExGSUVMRFMpIHtcbiAgICAgICAgcmV0dXJuIGAke2NvdW50ZXJ9LmdldERpc3BsYXlFeHByKClgO1xuICAgIH1cbiAgICByZXR1cm4gYCR7Y291bnRlcn0uZ2V0Q2FwdGlvbigpYDtcbn07XG5cbmNvbnN0IHJlZ2lzdGVyRm9ybUZpZWxkID0gKGlzRm9ybUZpZWxkKTogSUJ1aWxkVGFza0RlZiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVxdWlyZXM6IFsnd20tZm9ybScsICd3bS1saXZlZm9ybScsICd3bS1saXZlZmlsdGVyJywgJ3dtLWxpc3QnXSxcbiAgICAgICAgcHJlOiAoYXR0cnMsIHNoYXJlZCwgcGFyZW50Rm9ybSwgcGFyZW50TGl2ZUZvcm0sIHBhcmVudEZpbHRlciwgcGFyZW50TGlzdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY291bnRlciA9IGlkR2VuLm5leHRVaWQoKTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IHBhcmVudEZvcm0gfHwgcGFyZW50TGl2ZUZvcm0gfHwgcGFyZW50RmlsdGVyO1xuICAgICAgICAgICAgY29uc3QgcENvdW50ZXIgPSAocGFyZW50ICYmIHBhcmVudC5nZXQoJ2Zvcm1fcmVmZXJlbmNlJykpIHx8ICdmb3JtJztcbiAgICAgICAgICAgIGNvbnN0IHdpZGdldFR5cGUgPSBhdHRycy5nZXQoJ3dpZGdldCcpIHx8IEZvcm1XaWRnZXRUeXBlLlRFWFQ7XG4gICAgICAgICAgICBjb25zdCBkYXRhUm9sZSA9IGlzRm9ybUZpZWxkID8gJ2Zvcm0tZmllbGQnIDogJ2ZpbHRlci1maWVsZCc7XG4gICAgICAgICAgICBjb25zdCBmb3JtRmllbGRFcnJvck1zZ0lkID0gJ3dtZm9ybS1maWVsZC1lcnJvci0nICsgZ2VuZXJhdGVHVUlkKCk7XG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0aW9uTXNnID0gaXNGb3JtRmllbGQgPyBgPHAgKm5nSWY9XCIke2NvdW50ZXJ9Ll9jb250cm9sPy5pbnZhbGlkICYmICR7Y291bnRlcn0uX2NvbnRyb2w/LnRvdWNoZWQgJiYgJHtwQ291bnRlcn0uaXNVcGRhdGVNb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoZWxwLWJsb2NrIHRleHQtZGFuZ2VyXCIgYXJpYS1oaWRkZW49XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJHtjb3VudGVyfS52YWxpZGF0aW9ubWVzc2FnZVwiIGlkPVwiJHtmb3JtRmllbGRFcnJvck1zZ0lkfVwiPjxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFt0ZXh0Q29udGVudF09XCIke2NvdW50ZXJ9LnZhbGlkYXRpb25tZXNzYWdlXCI+PC9zcGFuPjwvcD5gIDogJyc7XG4gICAgICAgICAgICBjb25zdCBldmVudHNUbXBsID0gd2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVVBMT0FEID8gJycgOiBnZXRFdmVudHNUZW1wbGF0ZShhdHRycyk7XG4gICAgICAgICAgICBjb25zdCBjb250cm9sTGF5b3V0ID0gaXNNb2JpbGVBcHAoKSA/ICdjb2wteHMtMTInIDogJ2NvbC1zbS0xMic7XG4gICAgICAgICAgICBjb25zdCBpc0luTGlzdCA9IHBDb3VudGVyID09PSAocGFyZW50TGlzdCAmJiBwYXJlbnRMaXN0LmdldCgncGFyZW50X2Zvcm1fcmVmZXJlbmNlJykpO1xuICAgICAgICAgICAgYXR0cnMuc2V0KCdfX3ZhbGlkYXRpb25JZCcsIGZvcm1GaWVsZEVycm9yTXNnSWQpO1xuICAgICAgICAgICAgYXR0cnMuc2V0KCdfX3dpZGdldFR5cGUnLCB3aWRnZXRUeXBlKTtcbiAgICAgICAgICAgIGF0dHJzLmRlbGV0ZSgnd2lkZ2V0Jyk7XG4gICAgICAgICAgICBzaGFyZWQuc2V0KCdjb3VudGVyJywgY291bnRlcik7XG5cbiAgICAgICAgICAgIGlmIChhdHRycy5nZXQoJ2lzLXJhbmdlJykgPT09ICd0cnVlJykge1xuICAgICAgICAgICAgICAgIHNldERlZmF1bHRQbGFjZWhvbGRlcihhdHRycywgd2lkZ2V0VHlwZSwgMCk7XG4gICAgICAgICAgICAgICAgc2V0RGVmYXVsdFBsYWNlaG9sZGVyKGF0dHJzLCB3aWRnZXRUeXBlLCAxKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2V0RGVmYXVsdFBsYWNlaG9sZGVyKGF0dHJzLCB3aWRnZXRUeXBlLCAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGA8JHt0YWdOYW1lfSBkYXRhLXJvbGU9XCIke2RhdGFSb2xlfVwiIFtmb3JtR3JvdXBdPVwiJHtwQ291bnRlcn0ubmdmb3JtXCIgd21Gb3JtRmllbGQgd21DYXB0aW9uUG9zaXRpb24gIyR7Y291bnRlcn09XCJ3bUZvcm1GaWVsZFwiIHdpZGdldHR5cGU9XCIke3dpZGdldFR5cGV9XCIgJHtnZXRGb3JtTWFya3VwQXR0cihhdHRycyl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpdmUtZmllbGQgZm9ybS1ncm91cCBhcHAtY29tcG9zaXRlLXdpZGdldCBjbGVhcmZpeCBjYXB0aW9uLXt7JHtwQ291bnRlcn0uY2FwdGlvbnBvc2l0aW9ufX1cIiB3aWRnZXQ9XCIke3dpZGdldFR5cGV9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIFtoaWRkZW5dPVwiISR7Y291bnRlcn0uZGlzcGxheW5hbWVcIiBjbGFzcz1cImFwcC1sYWJlbCBjb250cm9sLWxhYmVsIGZvcm1maWVsZC1sYWJlbCB7eyR7cENvdW50ZXJ9Ll9jYXB0aW9uQ2xhc3N9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwie3dpZHRoOiAke3BDb3VudGVyfS5jYXB0aW9uc2l6ZX1cIiBbbmdDbGFzc109XCJ7J3RleHQtZGFuZ2VyJzogJHtjb3VudGVyfS5fY29udHJvbD8uaW52YWxpZCAmJiAke2NvdW50ZXJ9Ll9jb250cm9sPy50b3VjaGVkICYmICR7cENvdW50ZXJ9LmlzVXBkYXRlTW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICR7cENvdW50ZXJ9LmlzVXBkYXRlTW9kZSAmJiAke2NvdW50ZXJ9LnJlcXVpcmVkfVwiIFt0ZXh0Q29udGVudF09XCIke2NvdW50ZXJ9LmRpc3BsYXluYW1lXCI+IDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCIke2NvdW50ZXJ9LmRpc3BsYXluYW1lID8gJHtwQ291bnRlcn0uX3dpZGdldENsYXNzIDogJyR7Y29udHJvbExheW91dH0nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wtc3RhdGljIGFwcC1sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIiR7cENvdW50ZXJ9LmlzVXBkYXRlTW9kZSB8fCAke2NvdW50ZXJ9LnZpZXdtb2Rld2lkZ2V0ID09PSAnZGVmYXVsdCcgfHwgJHtjb3VudGVyfS53aWRnZXR0eXBlID09PSAndXBsb2FkJ1wiIFtpbm5lckhUTUxdPVwiJHtnZXRDYXB0aW9uQnlXaWRnZXQoYXR0cnMsIHdpZGdldFR5cGUsIGNvdW50ZXIpfVwiPjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7Z2V0VGVtcGxhdGUoYXR0cnMsIHdpZGdldFR5cGUsIGV2ZW50c1RtcGwsIGNvdW50ZXIsIHBDb3VudGVyLCBpc0luTGlzdCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiICpuZ0lmPVwiJHtjb3VudGVyfS5zaG93UGVuZGluZ1NwaW5uZXJcIiBjbGFzcz1cImZvcm0tZmllbGQtc3Bpbm5lciBmYSBmYS1jaXJjbGUtby1ub3RjaCBmYS1zcGluIGZvcm0tY29udHJvbC1mZWVkYmFja1wiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCIhKCR7Y291bnRlcn0uX2NvbnRyb2w/LmludmFsaWQgJiYgJHtjb3VudGVyfS5fY29udHJvbD8udG91Y2hlZCkgJiYgJHtwQ291bnRlcn0uaXNVcGRhdGVNb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoZWxwLWJsb2NrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgcm9sZT1cImFsZXJ0XCIgYXJpYS1saXZlPVwicG9saXRlXCIgW3RleHRDb250ZW50XT1cIiR7Y291bnRlcn0uaGludFwiPjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt2YWxpZGF0aW9uTXNnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdDogKCkgPT4gYDwvJHt0YWdOYW1lfT5gLFxuICAgICAgICBwcm92aWRlOiAoYXR0cnMsIHNoYXJlZCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgTWFwKCk7XG4gICAgICAgICAgICBwcm92aWRlci5zZXQoJ2Zvcm1fcmVmZXJlbmNlJywgc2hhcmVkLmdldCgnY291bnRlcicpKTtcbiAgICAgICAgICAgIHJldHVybiBwcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgaW1wb3J0czogKGF0dHJzOiBNYXA8U3RyaW5nLCBTdHJpbmc+KTogc3RyaW5nW10gPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVxdWlyZWRXaWRnZXQgPSBnZXRSZXF1aXJlZEZvcm1XaWRnZXQoYXR0cnMuZ2V0KCdfX3dpZGdldFR5cGUnKSB8fCBhdHRycy5nZXQoJ3R5cGUnKSk7XG4gICAgICAgICAgICBhdHRycy5kZWxldGUoJ19fd2lkZ2V0VHlwZScpO1xuICAgICAgICAgICAgcmV0dXJuIFtyZXF1aXJlZFdpZGdldCwgJ3dtLWZvcm0nXTtcbiAgICAgICAgfVxuICAgIH07XG59O1xuXG5yZWdpc3Rlcignd20tZm9ybS1maWVsZCcsIHJlZ2lzdGVyRm9ybUZpZWxkLmJpbmQodGhpcywgdHJ1ZSkpO1xucmVnaXN0ZXIoJ3dtLWZpbHRlci1maWVsZCcsIHJlZ2lzdGVyRm9ybUZpZWxkLmJpbmQodGhpcywgZmFsc2UpKTtcblxuZXhwb3J0IGRlZmF1bHQgKCkgPT4ge307XG4iXX0=
@@ -1054,7 +1054,7 @@ const registerFormField = (isFormField) => {
1054
1054
  const dataRole = isFormField ? 'form-field' : 'filter-field';
1055
1055
  const formFieldErrorMsgId = 'wmform-field-error-' + generateGUId();
1056
1056
  const validationMsg = isFormField ? `<p *ngIf="${counter}._control?.invalid && ${counter}._control?.touched && ${pCounter}.isUpdateMode"
1057
- class="help-block text-danger" aria-hidden="false" role="alert"
1057
+ class="help-block text-danger" aria-hidden="false"
1058
1058
  aria-live="assertive" [attr.aria-label]="${counter}.validationmessage" id="${formFieldErrorMsgId}"><span aria-hidden="true" [textContent]="${counter}.validationmessage"></span></p>` : '';
1059
1059
  const eventsTmpl = widgetType === FormWidgetType.UPLOAD ? '' : getEventsTemplate(attrs);
1060
1060
  const controlLayout = isMobileApp() ? 'col-xs-12' : 'col-sm-12';