@wavemaker/app-ng-runtime 11.10.2-rc.6065 → 11.10.3-next.25128

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 (170) hide show
  1. package/build-task/bundles/index.umd.js +5 -3
  2. package/build-task/esm2022/advanced/carousel/carousel-template/carousel-template.build.mjs +4 -2
  3. package/build-task/esm2022/data/form/form-field/form-field.build.mjs +3 -3
  4. package/build-task/fesm2022/index.mjs +5 -3
  5. package/build-task/fesm2022/index.mjs.map +1 -1
  6. package/components/basic/default/bundles/index.umd.js +68 -71
  7. package/components/basic/default/esm2022/anchor/anchor.component.mjs +18 -18
  8. package/components/basic/default/esm2022/icon/icon.component.mjs +12 -13
  9. package/components/basic/default/esm2022/iframe/iframe.component.mjs +9 -10
  10. package/components/basic/default/esm2022/picture/picture.directive.mjs +2 -5
  11. package/components/basic/default/esm2022/spinner/spinner.component.mjs +21 -21
  12. package/components/basic/default/esm2022/video/video.component.mjs +14 -15
  13. package/components/basic/default/fesm2022/index.mjs +68 -71
  14. package/components/basic/default/fesm2022/index.mjs.map +1 -1
  15. package/components/basic/progress/bundles/index.umd.js +16 -17
  16. package/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +7 -8
  17. package/components/basic/progress/fesm2022/index.mjs +8 -9
  18. package/components/basic/progress/fesm2022/index.mjs.map +1 -1
  19. package/components/basic/rich-text-editor/bundles/index.umd.js +11 -12
  20. package/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +8 -9
  21. package/components/basic/rich-text-editor/fesm2022/index.mjs +7 -8
  22. package/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  23. package/components/basic/search/bundles/index.umd.js +63 -67
  24. package/components/basic/search/esm2022/search.component.mjs +63 -67
  25. package/components/basic/search/esm2022/search.module.mjs +2 -2
  26. package/components/basic/search/fesm2022/index.mjs +63 -67
  27. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  28. package/components/chart/bundles/index.umd.js +17 -17
  29. package/components/chart/esm2022/chart.component.mjs +18 -18
  30. package/components/chart/fesm2022/index.mjs +17 -17
  31. package/components/chart/fesm2022/index.mjs.map +1 -1
  32. package/components/containers/panel/bundles/index.umd.js +39 -39
  33. package/components/containers/panel/esm2022/panel.component.mjs +40 -40
  34. package/components/containers/panel/fesm2022/index.mjs +39 -39
  35. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  36. package/components/containers/tabs/bundles/index.umd.js +29 -29
  37. package/components/containers/tabs/esm2022/tabs.component.mjs +30 -30
  38. package/components/containers/tabs/fesm2022/index.mjs +29 -29
  39. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  40. package/components/containers/wizard/bundles/index.umd.js +49 -49
  41. package/components/containers/wizard/esm2022/wizard.component.mjs +50 -50
  42. package/components/containers/wizard/fesm2022/index.mjs +49 -49
  43. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  44. package/components/data/card/bundles/index.umd.js +29 -29
  45. package/components/data/card/esm2022/card.component.mjs +30 -30
  46. package/components/data/card/fesm2022/index.mjs +29 -29
  47. package/components/data/card/fesm2022/index.mjs.map +1 -1
  48. package/components/data/form/bundles/index.umd.js +91 -96
  49. package/components/data/form/esm2022/form.component.mjs +92 -97
  50. package/components/data/form/fesm2022/index.mjs +91 -96
  51. package/components/data/form/fesm2022/index.mjs.map +1 -1
  52. package/components/data/list/bundles/index.umd.js +171 -173
  53. package/components/data/list/esm2022/list.component.mjs +171 -173
  54. package/components/data/list/esm2022/list.module.mjs +2 -2
  55. package/components/data/list/fesm2022/index.mjs +171 -173
  56. package/components/data/list/fesm2022/index.mjs.map +1 -1
  57. package/components/data/pagination/bundles/index.umd.js +32 -32
  58. package/components/data/pagination/esm2022/pagination.component.mjs +33 -33
  59. package/components/data/pagination/fesm2022/index.mjs +32 -32
  60. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  61. package/components/data/table/bundles/index.umd.js +69 -39
  62. package/components/data/table/esm2022/table-column/table-column.directive.mjs +2 -1
  63. package/components/data/table/esm2022/table-column/table-column.props.mjs +2 -1
  64. package/components/data/table/esm2022/table-filter.directive.mjs +29 -2
  65. package/components/data/table/esm2022/table.component.mjs +40 -39
  66. package/components/data/table/esm2022/table.props.mjs +2 -1
  67. package/components/data/table/fesm2022/index.mjs +72 -41
  68. package/components/data/table/fesm2022/index.mjs.map +1 -1
  69. package/components/data/table/table-column/table-column.directive.d.ts +1 -0
  70. package/components/data/table/table-filter.directive.d.ts +1 -0
  71. package/components/dialogs/default/bundles/index.umd.js +66 -95
  72. package/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +67 -96
  73. package/components/dialogs/default/fesm2022/index.mjs +66 -95
  74. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  75. package/components/dialogs/design-dialog/bundles/index.umd.js +7 -7
  76. package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +8 -8
  77. package/components/dialogs/design-dialog/fesm2022/index.mjs +7 -7
  78. package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  79. package/components/dialogs/iframe-dialog/bundles/index.umd.js +24 -25
  80. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +15 -16
  81. package/components/dialogs/iframe-dialog/fesm2022/index.mjs +14 -15
  82. package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  83. package/components/dialogs/partial-dialog/bundles/index.umd.js +8 -8
  84. package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +9 -9
  85. package/components/dialogs/partial-dialog/fesm2022/index.mjs +8 -8
  86. package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  87. package/components/input/chips/bundles/index.umd.js +21 -21
  88. package/components/input/chips/esm2022/chips.component.mjs +22 -22
  89. package/components/input/chips/fesm2022/index.mjs +21 -21
  90. package/components/input/chips/fesm2022/index.mjs.map +1 -1
  91. package/components/input/default/bundles/index.umd.js +201 -209
  92. package/components/input/default/esm2022/button/button.component.mjs +18 -18
  93. package/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +68 -69
  94. package/components/input/default/esm2022/radioset/radioset.component.mjs +68 -69
  95. package/components/input/default/esm2022/select/select.component.mjs +21 -27
  96. package/components/input/default/esm2022/switch/switch.component.mjs +24 -24
  97. package/components/input/default/esm2022/textarea/textarea.component.mjs +8 -8
  98. package/components/input/default/fesm2022/index.mjs +201 -209
  99. package/components/input/default/fesm2022/index.mjs.map +1 -1
  100. package/components/input/epoch/bundles/index.umd.js +171 -164
  101. package/components/input/epoch/esm2022/date/date.component.mjs +14 -15
  102. package/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +64 -59
  103. package/components/input/epoch/esm2022/date-time/date-time.component.mjs +18 -19
  104. package/components/input/epoch/esm2022/picker/picker.component.mjs +26 -25
  105. package/components/input/epoch/esm2022/time/time.component.mjs +17 -18
  106. package/components/input/epoch/fesm2022/index.mjs +124 -117
  107. package/components/input/epoch/fesm2022/index.mjs.map +1 -1
  108. package/components/input/file-upload/bundles/index.umd.js +111 -114
  109. package/components/input/file-upload/esm2022/file-upload.component.mjs +112 -115
  110. package/components/input/file-upload/fesm2022/index.mjs +111 -114
  111. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  112. package/components/input/rating/bundles/index.umd.js +14 -14
  113. package/components/input/rating/esm2022/rating.component.mjs +15 -15
  114. package/components/input/rating/fesm2022/index.mjs +14 -14
  115. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  116. package/components/input/slider/bundles/index.umd.js +39 -40
  117. package/components/input/slider/esm2022/slider.component.mjs +10 -11
  118. package/components/input/slider/fesm2022/index.mjs +9 -10
  119. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  120. package/components/navigation/breadcrumb/bundles/index.umd.js +16 -15
  121. package/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +17 -16
  122. package/components/navigation/breadcrumb/fesm2022/index.mjs +16 -15
  123. package/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  124. package/components/navigation/menu/bundles/index.umd.js +82 -74
  125. package/components/navigation/menu/esm2022/menu-adapator.component.mjs +14 -4
  126. package/components/navigation/menu/esm2022/menu-dropdown/menu-dropdown.component.mjs +7 -7
  127. package/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +15 -15
  128. package/components/navigation/menu/esm2022/menu.component.mjs +22 -26
  129. package/components/navigation/menu/esm2022/menu.module.mjs +4 -4
  130. package/components/navigation/menu/esm2022/nav/nav.component.mjs +26 -24
  131. package/components/navigation/menu/fesm2022/index.mjs +82 -74
  132. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  133. package/components/navigation/menu/menu-adapator.component.d.ts +1 -0
  134. package/components/navigation/navbar/bundles/index.umd.js +12 -12
  135. package/components/navigation/navbar/esm2022/navbar.component.mjs +13 -13
  136. package/components/navigation/navbar/fesm2022/index.mjs +12 -12
  137. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  138. package/mobile/components/basic/default/bundles/index.umd.js +102 -111
  139. package/mobile/components/basic/default/esm2022/file-browser/file-browser.component.mjs +39 -40
  140. package/mobile/components/basic/default/esm2022/network-info-toaster/network-info-toaster.component.mjs +35 -44
  141. package/mobile/components/basic/default/esm2022/process-manager/process-manager.component.mjs +27 -28
  142. package/mobile/components/basic/default/fesm2022/index.mjs +98 -107
  143. package/mobile/components/basic/default/fesm2022/index.mjs.map +1 -1
  144. package/mobile/components/containers/segmented-control/bundles/index.umd.js +16 -16
  145. package/mobile/components/containers/segmented-control/esm2022/segment-content/segment-content.component.mjs +8 -9
  146. package/mobile/components/containers/segmented-control/esm2022/segmented-control.component.mjs +10 -10
  147. package/mobile/components/containers/segmented-control/fesm2022/index.mjs +16 -16
  148. package/mobile/components/containers/segmented-control/fesm2022/index.mjs.map +1 -1
  149. package/mobile/components/data/media-list/bundles/index.umd.js +28 -28
  150. package/mobile/components/data/media-list/esm2022/media-list.component.mjs +29 -29
  151. package/mobile/components/data/media-list/fesm2022/index.mjs +28 -28
  152. package/mobile/components/data/media-list/fesm2022/index.mjs.map +1 -1
  153. package/mobile/components/page/mobile-navbar/bundles/index.umd.js +29 -29
  154. package/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.component.mjs +30 -30
  155. package/mobile/components/page/mobile-navbar/fesm2022/index.mjs +29 -29
  156. package/mobile/components/page/mobile-navbar/fesm2022/index.mjs.map +1 -1
  157. package/mobile/components/page/tab-bar/bundles/index.umd.js +28 -28
  158. package/mobile/components/page/tab-bar/esm2022/tabbar.component.mjs +29 -29
  159. package/mobile/components/page/tab-bar/fesm2022/index.mjs +28 -28
  160. package/mobile/components/page/tab-bar/fesm2022/index.mjs.map +1 -1
  161. package/npm-shrinkwrap.json +2 -2
  162. package/package-lock.json +2 -2
  163. package/package.json +1 -1
  164. package/runtime/base/bundles/index.umd.js +219 -215
  165. package/runtime/base/esm2022/components/app-component/app.component.mjs +38 -41
  166. package/runtime/base/esm2022/components/app-spinner.component.mjs +25 -21
  167. package/runtime/base/esm2022/components/custom-toaster.component.mjs +18 -16
  168. package/runtime/base/fesm2022/index.mjs +99 -95
  169. package/runtime/base/fesm2022/index.mjs.map +1 -1
  170. package/scripts/datatable/datatable.js +1 -0
@@ -63,11 +63,13 @@
63
63
  pre: (attrs, shared, parentCarousel) => {
64
64
  const carouselRef = parentCarousel.get('carousel_ref');
65
65
  return `<div *ngIf="!${carouselRef}.fieldDefs">{{${carouselRef}.nodatamessage}}</div>
66
- <${carouselContentTagName} wmCarouselTemplate #carouselTemplateRef="carouselTemplateRef" ${transpiler.getAttrMarkup(attrs)} *ngFor="let item of ${carouselRef}.fieldDefs; let i = index;">
66
+ <ng-container *ngFor="let item of ${carouselRef}.fieldDefs; let i = index;">
67
+ <${carouselContentTagName} wmCarouselTemplate #carouselTemplateRef="carouselTemplateRef" ${transpiler.getAttrMarkup(attrs)}>
67
68
  <ng-container [ngTemplateOutlet]="carouselTempRef${counter$1}"
68
69
  [ngTemplateOutletContext]="{item:item, index:i}"
69
70
  [ngTemplateOutletInjector]="${carouselRef}.createCustomInjector('carousel_item_' + carouselTemplateRef.trackId, {item:item, index:i})"></ng-container>
70
71
  </${carouselContentTagName}>
72
+ </ng-container>
71
73
  <ng-template #carouselTempRef${counter$1++} let-item="item" let-index="index">`;
72
74
  },
73
75
  post: () => `</ng-template>`
@@ -1093,9 +1095,9 @@
1093
1095
  const widgetType = attrs.get('widget') || core.FormWidgetType.TEXT;
1094
1096
  const dataRole = isFormField ? 'form-field' : 'filter-field';
1095
1097
  const formFieldErrorMsgId = 'wmform-field-error-' + core.generateGUId();
1096
- const validationMsg = isFormField ? `<p *ngIf="${counter}._control?.invalid && ${counter}._control?.touched && ${pCounter}.isUpdateMode"
1098
+ const validationMsg = `<p *ngIf="${counter}._control?.invalid && ${counter}._control?.touched && ${pCounter}.isUpdateMode"
1097
1099
  class="help-block text-danger" aria-hidden="false" role="alert"
1098
- aria-live="assertive" [attr.aria-label]="${counter}.validationmessage" id="${formFieldErrorMsgId}"><span aria-hidden="true" [textContent]="${counter}.validationmessage"></span></p>` : '';
1100
+ aria-live="assertive" [attr.aria-label]="${counter}.validationmessage" id="${formFieldErrorMsgId}"><span aria-hidden="true" [textContent]="${counter}.validationmessage"></span></p>`;
1099
1101
  const eventsTmpl = widgetType === core.FormWidgetType.UPLOAD ? '' : getEventsTemplate(attrs);
1100
1102
  const controlLayout = core.isMobileApp() ? 'col-xs-12' : 'col-sm-12';
1101
1103
  const isInList = pCounter === (parentList && parentList.get('parent_form_reference'));
@@ -15,15 +15,17 @@ register('wm-carousel-template', () => {
15
15
  pre: (attrs, shared, parentCarousel) => {
16
16
  const carouselRef = parentCarousel.get('carousel_ref');
17
17
  return `<div *ngIf="!${carouselRef}.fieldDefs">{{${carouselRef}.nodatamessage}}</div>
18
- <${carouselContentTagName} wmCarouselTemplate #carouselTemplateRef="carouselTemplateRef" ${getAttrMarkup(attrs)} *ngFor="let item of ${carouselRef}.fieldDefs; let i = index;">
18
+ <ng-container *ngFor="let item of ${carouselRef}.fieldDefs; let i = index;">
19
+ <${carouselContentTagName} wmCarouselTemplate #carouselTemplateRef="carouselTemplateRef" ${getAttrMarkup(attrs)}>
19
20
  <ng-container [ngTemplateOutlet]="carouselTempRef${counter}"
20
21
  [ngTemplateOutletContext]="{item:item, index:i}"
21
22
  [ngTemplateOutletInjector]="${carouselRef}.createCustomInjector('carousel_item_' + carouselTemplateRef.trackId, {item:item, index:i})"></ng-container>
22
23
  </${carouselContentTagName}>
24
+ </ng-container>
23
25
  <ng-template #carouselTempRef${counter++} let-item="item" let-index="index">`;
24
26
  },
25
27
  post: () => `</ng-template>`
26
28
  };
27
29
  });
28
30
  export default () => { };
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtdGVtcGxhdGUuYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3RyYW5zcGlsZS9zcmMvYWR2YW5jZWQvY2Fyb3VzZWwvY2Fyb3VzZWwtdGVtcGxhdGUvY2Fyb3VzZWwtdGVtcGxhdGUuYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGFBQWEsRUFBaUIsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEUsTUFBTSxzQkFBc0IsR0FBRyxPQUFPLENBQUM7QUFDdkMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0FBQ2hCLHNCQUFzQjtBQUN0QixRQUFRLENBQUMscUJBQXFCLEVBQUUsR0FBa0IsRUFBRTtJQUNoRCxPQUFPO1FBQ0gsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxzQkFBc0Isd0JBQXdCLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRztRQUN2RixJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxzQkFBc0IsR0FBRztLQUM3QyxDQUFDO0FBQ04sQ0FBQyxDQUFDLENBQUM7QUFFSCx1QkFBdUI7QUFDdkIsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQWtCLEVBQUU7SUFDakQsT0FBTztRQUNILFFBQVEsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUN6QixHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxFQUFFO1lBQ25DLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDdkQsT0FBTyxnQkFBZ0IsV0FBVyxpQkFBaUIsV0FBVzt1QkFDbkQsc0JBQXNCLGtFQUFrRSxhQUFhLENBQUMsS0FBSyxDQUFDLHdCQUF3QixXQUFXOzJFQUMzRixPQUFPOzswREFFeEIsV0FBVzt3QkFDN0Msc0JBQXNCO21EQUNLLE9BQU8sRUFBRSxxQ0FBcUMsQ0FBQztRQUMxRixDQUFDO1FBQ0QsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLGdCQUFnQjtLQUMvQixDQUFDO0FBQ04sQ0FBQyxDQUFDLENBQUM7QUFFSCxlQUFlLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Z2V0QXR0ck1hcmt1cCwgSUJ1aWxkVGFza0RlZiwgcmVnaXN0ZXJ9IGZyb20gJ0B3bS90cmFuc3BpbGVyJztcblxuY29uc3QgY2Fyb3VzZWxDb250ZW50VGFnTmFtZSA9ICdzbGlkZSc7XG5sZXQgY291bnRlciA9IDE7XG4vLyBGb3Igc3RhdGljIGNhcm91c2VsXG5yZWdpc3Rlcignd20tY2Fyb3VzZWwtY29udGVudCcsICgpOiBJQnVpbGRUYXNrRGVmID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBwcmU6IGF0dHJzID0+IGA8JHtjYXJvdXNlbENvbnRlbnRUYWdOYW1lfSB3bUNhcm91c2VsVGVtcGxhdGUgICR7Z2V0QXR0ck1hcmt1cChhdHRycyl9PmAsXG4gICAgICAgIHBvc3Q6ICgpID0+IGA8LyR7Y2Fyb3VzZWxDb250ZW50VGFnTmFtZX0+YFxuICAgIH07XG59KTtcblxuLy8gRm9yIGR5bmFtaWMgY2Fyb3VzZWxcbnJlZ2lzdGVyKCd3bS1jYXJvdXNlbC10ZW1wbGF0ZScsICgpOiBJQnVpbGRUYXNrRGVmID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICByZXF1aXJlczogWyd3bS1jYXJvdXNlbCddLFxuICAgICAgICBwcmU6IChhdHRycywgc2hhcmVkLCBwYXJlbnRDYXJvdXNlbCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2Fyb3VzZWxSZWYgPSBwYXJlbnRDYXJvdXNlbC5nZXQoJ2Nhcm91c2VsX3JlZicpO1xuICAgICAgICAgICAgcmV0dXJuIGA8ZGl2ICpuZ0lmPVwiISR7Y2Fyb3VzZWxSZWZ9LmZpZWxkRGVmc1wiPnt7JHtjYXJvdXNlbFJlZn0ubm9kYXRhbWVzc2FnZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwke2Nhcm91c2VsQ29udGVudFRhZ05hbWV9IHdtQ2Fyb3VzZWxUZW1wbGF0ZSAjY2Fyb3VzZWxUZW1wbGF0ZVJlZj1cImNhcm91c2VsVGVtcGxhdGVSZWZcIiAke2dldEF0dHJNYXJrdXAoYXR0cnMpfSAqbmdGb3I9XCJsZXQgaXRlbSBvZiAke2Nhcm91c2VsUmVmfS5maWVsZERlZnM7IGxldCBpID0gaW5kZXg7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNhcm91c2VsVGVtcFJlZiR7Y291bnRlcn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aXRlbTppdGVtLCBpbmRleDppfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRJbmplY3Rvcl09XCIke2Nhcm91c2VsUmVmfS5jcmVhdGVDdXN0b21JbmplY3RvcignY2Fyb3VzZWxfaXRlbV8nICsgY2Fyb3VzZWxUZW1wbGF0ZVJlZi50cmFja0lkLCB7aXRlbTppdGVtLCBpbmRleDppfSlcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC8ke2Nhcm91c2VsQ29udGVudFRhZ05hbWV9PlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Nhcm91c2VsVGVtcFJlZiR7Y291bnRlcisrfSBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtaW5kZXg9XCJpbmRleFwiPmA7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Q6ICgpID0+IGA8L25nLXRlbXBsYXRlPmBcbiAgICB9O1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0ICgpID0+IHt9O1xuIl19
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtdGVtcGxhdGUuYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3RyYW5zcGlsZS9zcmMvYWR2YW5jZWQvY2Fyb3VzZWwvY2Fyb3VzZWwtdGVtcGxhdGUvY2Fyb3VzZWwtdGVtcGxhdGUuYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGFBQWEsRUFBaUIsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEUsTUFBTSxzQkFBc0IsR0FBRyxPQUFPLENBQUM7QUFDdkMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0FBQ2hCLHNCQUFzQjtBQUN0QixRQUFRLENBQUMscUJBQXFCLEVBQUUsR0FBa0IsRUFBRTtJQUNoRCxPQUFPO1FBQ0gsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxzQkFBc0Isd0JBQXdCLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRztRQUN2RixJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxzQkFBc0IsR0FBRztLQUM3QyxDQUFDO0FBQ04sQ0FBQyxDQUFDLENBQUM7QUFFSCx1QkFBdUI7QUFDdkIsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQWtCLEVBQUU7SUFDakQsT0FBTztRQUNILFFBQVEsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUN6QixHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxFQUFFO1lBQ25DLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDdkQsT0FBTyxnQkFBZ0IsV0FBVyxpQkFBaUIsV0FBVzt5REFDakIsV0FBVzt1QkFDN0Msc0JBQXNCLGtFQUFrRSxhQUFhLENBQUMsS0FBSyxDQUFDOzJFQUN4RCxPQUFPOzswREFFeEIsV0FBVzt3QkFDN0Msc0JBQXNCOzttREFFSyxPQUFPLEVBQUUscUNBQXFDLENBQUM7UUFDMUYsQ0FBQztRQUNELElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0I7S0FDL0IsQ0FBQztBQUNOLENBQUMsQ0FBQyxDQUFDO0FBRUgsZUFBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2dldEF0dHJNYXJrdXAsIElCdWlsZFRhc2tEZWYsIHJlZ2lzdGVyfSBmcm9tICdAd20vdHJhbnNwaWxlcic7XG5cbmNvbnN0IGNhcm91c2VsQ29udGVudFRhZ05hbWUgPSAnc2xpZGUnO1xubGV0IGNvdW50ZXIgPSAxO1xuLy8gRm9yIHN0YXRpYyBjYXJvdXNlbFxucmVnaXN0ZXIoJ3dtLWNhcm91c2VsLWNvbnRlbnQnLCAoKTogSUJ1aWxkVGFza0RlZiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJlOiBhdHRycyA9PiBgPCR7Y2Fyb3VzZWxDb250ZW50VGFnTmFtZX0gd21DYXJvdXNlbFRlbXBsYXRlICAke2dldEF0dHJNYXJrdXAoYXR0cnMpfT5gLFxuICAgICAgICBwb3N0OiAoKSA9PiBgPC8ke2Nhcm91c2VsQ29udGVudFRhZ05hbWV9PmBcbiAgICB9O1xufSk7XG5cbi8vIEZvciBkeW5hbWljIGNhcm91c2VsXG5yZWdpc3Rlcignd20tY2Fyb3VzZWwtdGVtcGxhdGUnLCAoKTogSUJ1aWxkVGFza0RlZiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVxdWlyZXM6IFsnd20tY2Fyb3VzZWwnXSxcbiAgICAgICAgcHJlOiAoYXR0cnMsIHNoYXJlZCwgcGFyZW50Q2Fyb3VzZWwpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNhcm91c2VsUmVmID0gcGFyZW50Q2Fyb3VzZWwuZ2V0KCdjYXJvdXNlbF9yZWYnKTtcbiAgICAgICAgICAgIHJldHVybiBgPGRpdiAqbmdJZj1cIiEke2Nhcm91c2VsUmVmfS5maWVsZERlZnNcIj57eyR7Y2Fyb3VzZWxSZWZ9Lm5vZGF0YW1lc3NhZ2V9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiAke2Nhcm91c2VsUmVmfS5maWVsZERlZnM7IGxldCBpID0gaW5kZXg7XCI+XG4gICAgICAgICAgICAgICAgICAgIDwke2Nhcm91c2VsQ29udGVudFRhZ05hbWV9IHdtQ2Fyb3VzZWxUZW1wbGF0ZSAjY2Fyb3VzZWxUZW1wbGF0ZVJlZj1cImNhcm91c2VsVGVtcGxhdGVSZWZcIiAke2dldEF0dHJNYXJrdXAoYXR0cnMpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2Fyb3VzZWxUZW1wUmVmJHtjb3VudGVyfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtOml0ZW0sIGluZGV4Oml9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldEluamVjdG9yXT1cIiR7Y2Fyb3VzZWxSZWZ9LmNyZWF0ZUN1c3RvbUluamVjdG9yKCdjYXJvdXNlbF9pdGVtXycgKyBjYXJvdXNlbFRlbXBsYXRlUmVmLnRyYWNrSWQsIHtpdGVtOml0ZW0sIGluZGV4Oml9KVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8LyR7Y2Fyb3VzZWxDb250ZW50VGFnTmFtZX0+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Nhcm91c2VsVGVtcFJlZiR7Y291bnRlcisrfSBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtaW5kZXg9XCJpbmRleFwiPmA7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Q6ICgpID0+IGA8L25nLXRlbXBsYXRlPmBcbiAgICB9O1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0ICgpID0+IHt9O1xuIl19
@@ -116,9 +116,9 @@ const registerFormField = (isFormField) => {
116
116
  const widgetType = attrs.get('widget') || FormWidgetType.TEXT;
117
117
  const dataRole = isFormField ? 'form-field' : 'filter-field';
118
118
  const formFieldErrorMsgId = 'wmform-field-error-' + generateGUId();
119
- const validationMsg = isFormField ? `<p *ngIf="${counter}._control?.invalid && ${counter}._control?.touched && ${pCounter}.isUpdateMode"
119
+ const validationMsg = `<p *ngIf="${counter}._control?.invalid && ${counter}._control?.touched && ${pCounter}.isUpdateMode"
120
120
  class="help-block text-danger" aria-hidden="false" role="alert"
121
- aria-live="assertive" [attr.aria-label]="${counter}.validationmessage" id="${formFieldErrorMsgId}"><span aria-hidden="true" [textContent]="${counter}.validationmessage"></span></p>` : '';
121
+ aria-live="assertive" [attr.aria-label]="${counter}.validationmessage" id="${formFieldErrorMsgId}"><span aria-hidden="true" [textContent]="${counter}.validationmessage"></span></p>`;
122
122
  const eventsTmpl = widgetType === FormWidgetType.UPLOAD ? '' : getEventsTemplate(attrs);
123
123
  const controlLayout = isMobileApp() ? 'col-xs-12' : 'col-sm-12';
124
124
  const isInList = pCounter === (parentList && parentList.get('parent_form_reference'));
@@ -165,4 +165,4 @@ const registerFormField = (isFormField) => {
165
165
  register('wm-form-field', registerFormField.bind(this, true));
166
166
  register('wm-filter-field', registerFormField.bind(this, false));
167
167
  export default () => { };
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5idWlsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvdHJhbnNwaWxlL3NyYy9kYXRhL2Zvcm0vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmJ1aWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBaUIsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxFQUNILGNBQWMsRUFDZCxZQUFZLEVBQ1oscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQixXQUFXLEVBQ1gsV0FBVyxFQUNkLE1BQU0sVUFBVSxDQUFDO0FBRWxCLE9BQU8sRUFBQyxTQUFTLEVBQUUsZUFBZSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHaEUsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDO0FBQ3RCLE1BQU0sS0FBSyxHQUFHLElBQUksV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBRTVDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtJQUNoQyxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7UUFDNUIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDM0IsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDMUIsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7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QyxDQUFDO0tBQ0osQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGLFFBQVEsQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzlELFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFFakUsZUFBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2dldEZvcm1NYXJrdXBBdHRyLCBJQnVpbGRUYXNrRGVmLCByZWdpc3Rlcn0gZnJvbSAnQHdtL3RyYW5zcGlsZXInO1xuaW1wb3J0IHtcbiAgICBGb3JtV2lkZ2V0VHlwZSxcbiAgICBnZW5lcmF0ZUdVSWQsXG4gICAgZ2V0Rm9ybVdpZGdldFRlbXBsYXRlLFxuICAgIGdldFJlcXVpcmVkRm9ybVdpZGdldCxcbiAgICBJREdlbmVyYXRvcixcbiAgICBpc01vYmlsZUFwcFxufSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7QUxMRklFTERTLCBpc0RhdGFTZXRXaWRnZXR9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3V0aWxzJztcbmltcG9ydCB7Zm9yRWFjaH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5jb25zdCB0YWdOYW1lID0gJ2Rpdic7XG5jb25zdCBpZEdlbiA9IG5ldyBJREdlbmVyYXRvcignZm9ybWZpZWxkXycpO1xuXG5jb25zdCBnZXRFdmVudHNUZW1wbGF0ZSA9IChhdHRycykgPT4ge1xuICAgIGNvbnN0IGV2ZW50QXR0cnMgPSBuZXcgTWFwKCk7XG4gICAgaWYgKCFhdHRycy5oYXMoJ2ZvY3VzLmV2ZW50JykpIHtcbiAgICAgICAgYXR0cnMuc2V0KCdmb2N1cy5ldmVudCcsICcnKTtcbiAgICB9XG4gICAgaWYgKCFhdHRycy5oYXMoJ2JsdXIuZXZlbnQnKSkge1xuICAgICAgICBhdHRycy5zZXQoJ2JsdXIuZXZlbnQnLCAnJyk7XG4gICAgfVxuICAgIGF0dHJzLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICBpZiAoa2V5LmVuZHNXaXRoKCcuZXZlbnQnKSkge1xuICAgICAgICAgICBpZiAoa2V5ID09PSAnZm9jdXMuZXZlbnQnKSB7XG4gICAgICAgICAgICAgICB2YWx1ZSA9IGBfb25Gb2N1c0ZpZWxkKCRldmVudCk7JHt2YWx1ZX1gO1xuICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2JsdXIuZXZlbnQnKSB7XG4gICAgICAgICAgICAgICB2YWx1ZSA9IGBfb25CbHVyRmllbGQoJGV2ZW50KTske3ZhbHVlfWA7XG4gICAgICAgICAgIH1cbiAgICAgICAgICAgZXZlbnRBdHRycy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgIGF0dHJzLmRlbGV0ZShrZXkpO1xuICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZ2V0Rm9ybU1hcmt1cEF0dHIoZXZlbnRBdHRycyk7XG59O1xuXG5jb25zdCBERUZBVUxUX1BMQUNFSE9MREVSUyA9IG5ldyBNYXAoW1xuICAgIFtGb3JtV2lkZ2V0VHlwZS5TRUxFQ1QsIFsnU2VsZWN0IE1pbiB2YWx1ZScsICdTZWxlY3QgTWF4IHZhbHVlJywgJ1NlbGVjdCB2YWx1ZSddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuREFURVRJTUUsIFsnU2VsZWN0IE1pbiBkYXRlIHRpbWUnLCAnU2VsZWN0IE1heCBkYXRlIHRpbWUnLCAnU2VsZWN0IGRhdGUgdGltZSddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuVElNRSwgWydTZWxlY3QgTWluIHRpbWUnLCAnU2VsZWN0IE1heCB0aW1lJywgJ1NlbGVjdCB0aW1lJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5EQVRFLCBbJ1NlbGVjdCBNaW4gZGF0ZScsICdTZWxlY3QgTWF4IGRhdGUnLCAnU2VsZWN0IGRhdGUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLlRFWFRBUkVBLCBbJycsICcnLCAnRW50ZXIgdmFsdWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLlJJQ0hURVhULCBbJycsICcnLCAnRW50ZXIgdmFsdWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLkNPTE9SUElDS0VSLCBbJ1NlbGVjdCBDb2xvcicsICdTZWxlY3QgQ29sb3InLCAnU2VsZWN0IENvbG9yJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5DSElQUywgWycnLCAnJywgJ1R5cGUgaGVyZS4uLiddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuUEFTU1dPUkQsIFsnRW50ZXIgTWluIHZhbHVlJywgJ0VudGVyIE1heCB2YWx1ZScsICdFbnRlciB2YWx1ZSddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuTlVNQkVSLCBbJ0VudGVyIE1pbiB2YWx1ZScsICdFbnRlciBNYXggdmFsdWUnLCAnRW50ZXIgdmFsdWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLlRFWFQsIFsnRW50ZXIgTWluIHZhbHVlJywgJ0VudGVyIE1heCB2YWx1ZScsICdFbnRlciB2YWx1ZSddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuQ1VSUkVOQ1ksIFsnRW50ZXIgTWluIHZhbHVlJywgJ0VudGVyIE1heCB2YWx1ZScsICdFbnRlciB2YWx1ZSddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuQVVUT0NPTVBMRVRFLCBbJycsICcnLCAnU2VhcmNoJ11dLFxuXSk7XG5cbmNvbnN0IHNldERlZmF1bHRQbGFjZWhvbGRlciA9IChhdHRycywgd2lkZ2V0VHlwZSwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBwcm9wID0gaW5kZXggPT09IDEgPyAnbWF4cGxhY2Vob2xkZXInIDogJ3BsYWNlaG9sZGVyJztcbiAgICBsZXQgcGxhY2Vob2xkZXIgPSBhdHRycy5nZXQocHJvcCk7XG4gICAgaWYgKHBsYWNlaG9sZGVyIHx8IHBsYWNlaG9sZGVyID09PSAnJykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHBsYWNlaG9sZGVyID0gREVGQVVMVF9QTEFDRUhPTERFUlMuZ2V0KHdpZGdldFR5cGUpICYmIERFRkFVTFRfUExBQ0VIT0xERVJTLmdldCh3aWRnZXRUeXBlKVtpbmRleF07XG4gICAgaWYgKHBsYWNlaG9sZGVyKSB7XG4gICAgICAgIGF0dHJzLnNldChwcm9wLCBwbGFjZWhvbGRlcik7XG4gICAgfVxufTtcblxuY29uc3QgZ2V0V2lkZ2V0VGVtcGxhdGUgPSAoYXR0cnMsIG9wdGlvbnMpID0+IHtcbiAgICBsZXQgY3VzdG9tQXR0cnMgPSBgYDtcbiAgICBpZihvcHRpb25zLndpZGdldFR5cGUgPT09IFwiY3VzdG9tLXdpZGdldFwiKSB7XG4gICAgICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiBhdHRycykge1xuICAgICAgICAgICAgaWYoa2V5LnN0YXJ0c1dpdGgoJ3Byb3AtJykpXG4gICAgICAgICAgICAgICAgY3VzdG9tQXR0cnMgKz0ga2V5ICsgJz1cIicgKyB2YWx1ZSArICdcIiAnO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IG5hbWUgPSBhdHRycy5nZXQoJ25hbWUnKTtcbiAgICBjb25zdCBjdXN0b21XaWRnZXROYW1lID0gYXR0cnMuZ2V0KCd3aWRnZXRuYW1lJyk7XG4gICAgY29uc3QgZmllbGROYW1lID0gKGF0dHJzLmdldCgna2V5JykgfHwgbmFtZSB8fCAnJykudHJpbSgpO1xuICAgIGNvbnN0IGZvcm1Db250cm9sID0gb3B0aW9ucy5pc01heFdpZGdldCA/IGBmb3JtQ29udHJvbE5hbWU9XCIke2ZpZWxkTmFtZX1fbWF4XCJgIDogKG9wdGlvbnMuaXNJbkxpc3QgPyBgW2Zvcm1Db250cm9sTmFtZV09XCIke29wdGlvbnMuY291bnRlcn0uX2ZpZWxkTmFtZVwiYCA6IGBmb3JtQ29udHJvbE5hbWU9XCIke2ZpZWxkTmFtZX1cImApO1xuICAgIGNvbnN0IHRtcGxSZWYgPSBvcHRpb25zLmlzTWF4V2lkZ2V0ID8gYCNmb3JtV2lkZ2V0TWF4YCA6IGAjZm9ybVdpZGdldGA7XG4gICAgY29uc3Qgd2lkZ2V0TmFtZSA9IG5hbWUgPyAob3B0aW9ucy5pc01heFdpZGdldCA/IGBuYW1lPVwiJHtuYW1lfV9mb3JtV2lkZ2V0TWF4XCJgIDogYG5hbWU9XCIke25hbWV9X2Zvcm1XaWRnZXRcImApIDogJyc7XG4gICAgY29uc3QgY29uZGl0aW9uYWxDbGFzcyA9IGBbbmdDbGFzc109XCIke2F0dHJzLmdldCgnbmdjbGFzcycpfVwiYDtcbiAgICBjb25zdCBkZWZhdWx0VG1wbCA9IGBbY2xhc3MuaGlkZGVuXT1cIiEke29wdGlvbnMucENvdW50ZXJ9LmlzVXBkYXRlTW9kZSAmJiAke29wdGlvbnMuY291bnRlcn0udmlld21vZGV3aWRnZXQgIT09ICdkZWZhdWx0J1wiICR7Zm9ybUNvbnRyb2x9ICR7b3B0aW9ucy5ldmVudHNUbXBsfSAke2NvbmRpdGlvbmFsQ2xhc3N9ICR7dG1wbFJlZn0gJHt3aWRnZXROYW1lfSAke2N1c3RvbVdpZGdldE5hbWUgPyBgd2lkZ2V0bmFtZT0ke2N1c3RvbVdpZGdldE5hbWV9ICR7Y3VzdG9tQXR0cnN9YDonJ31gIDtcbiAgICByZXR1cm4gZ2V0Rm9ybVdpZGdldFRlbXBsYXRlKG9wdGlvbnMud2lkZ2V0VHlwZSwgZGVmYXVsdFRtcGwsIGF0dHJzLCB7Y291bnRlcjogb3B0aW9ucy5jb3VudGVyLCBwQ291bnRlcjogb3B0aW9ucy5wQ291bnRlcn0pO1xufTtcblxuXG5jb25zdCBnZXRUZW1wbGF0ZSA9IChhdHRycywgd2lkZ2V0VHlwZSwgZXZlbnRzVG1wbCwgY291bnRlciwgcENvdW50ZXIsIGlzSW5MaXN0KSA9PiB7XG4gICAgY29uc3QgaXNSYW5nZSA9IGF0dHJzLmdldCgnaXMtcmFuZ2UnKSA9PT0gJ3RydWUnO1xuICAgIGlmICghaXNSYW5nZSkge1xuICAgICAgICByZXR1cm4gZ2V0V2lkZ2V0VGVtcGxhdGUoYXR0cnMsIHt3aWRnZXRUeXBlLCBldmVudHNUbXBsLCBjb3VudGVyLCBwQ291bnRlciwgaXNJbkxpc3R9KTtcbiAgICB9XG4gICAgY29uc3QgbGF5b3V0Q2xhc3MgPSBpc01vYmlsZUFwcCgpID8gJ2NvbC14cy02JyA6ICdjb2wtc20tNic7XG4gICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiJHtsYXlvdXRDbGFzc31cIj4ke2dldFdpZGdldFRlbXBsYXRlKGF0dHJzLCB7d2lkZ2V0VHlwZSwgZXZlbnRzVG1wbCwgY291bnRlciwgcENvdW50ZXJ9KX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiJHtsYXlvdXRDbGFzc31cIj4ke2dldFdpZGdldFRlbXBsYXRlKGF0dHJzLCB7d2lkZ2V0VHlwZSwgZXZlbnRzVG1wbCwgY291bnRlciwgcENvdW50ZXIsIGlzTWF4V2lkZ2V0OiB0cnVlfSl9PC9kaXY+YDtcbn07XG5cbmNvbnN0IGdldENhcHRpb25CeVdpZGdldCA9IChhdHRycywgd2lkZ2V0VHlwZSwgY291bnRlcikgPT4ge1xuICAgIGlmIChhdHRycy5nZXQoJ2lzLXJlbGF0ZWQnKSA9PT0gJ3RydWUnKSB7XG4gICAgICAgIHJldHVybiBgJHtjb3VudGVyfS5nZXREaXNwbGF5RXhwcigpYDtcbiAgICB9XG4gICAgaWYgKHdpZGdldFR5cGUgPT09IEZvcm1XaWRnZXRUeXBlLlBBU1NXT1JEKSB7XG4gICAgICAgIHJldHVybiAnXFwnKioqKioqKipcXCcnO1xuICAgIH1cbiAgICBsZXQgY2FwdGlvbiA9IGAke2NvdW50ZXJ9LnZhbHVlYDtcbiAgICBpZiAod2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuREFURVRJTUUgfHwgd2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVElNRVNUQU1QKSB7XG4gICAgICAgIGNhcHRpb24gKz0gYCB8IHRvRGF0ZToke2NvdW50ZXJ9LmZvcm1XaWRnZXQuZGF0ZXBhdHRlcm4gfHwgJ3l5eXktTU0tZGQgaGg6bW06c3MgYSdgO1xuICAgICAgICByZXR1cm4gY2FwdGlvbjtcbiAgICB9XG4gICAgaWYgKHdpZGdldFR5cGUgPT09IEZvcm1XaWRnZXRUeXBlLlRJTUUpIHtcbiAgICAgICAgY2FwdGlvbiArPSBgIHwgdG9EYXRlOiR7Y291bnRlcn0uZm9ybVdpZGdldC50aW1lcGF0dGVybiB8fCAnaGg6bW0gYSdgO1xuICAgICAgICByZXR1cm4gY2FwdGlvbjtcbiAgICB9XG4gICAgaWYgKHdpZGdldFR5cGUgPT09IEZvcm1XaWRnZXRUeXBlLkRBVEUpIHtcbiAgICAgICAgY2FwdGlvbiArPSBgIHwgdG9EYXRlOiR7Y291bnRlcn0uZm9ybVdpZGdldC5kYXRlcGF0dGVybiB8fCAgJ3l5eXktTU1NLWRkJ2A7XG4gICAgICAgIHJldHVybiBjYXB0aW9uO1xuICAgIH1cbiAgICBpZiAod2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuUkFUSU5HIHx8IHdpZGdldFR5cGUgPT09IEZvcm1XaWRnZXRUeXBlLlVQTE9BRCkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGlmIChpc0RhdGFTZXRXaWRnZXQod2lkZ2V0VHlwZSkgJiYgYXR0cnMuZ2V0KCdkYXRhZmllbGQnKSA9PT0gQUxMRklFTERTKSB7XG4gICAgICAgIHJldHVybiBgJHtjb3VudGVyfS5nZXREaXNwbGF5RXhwcigpYDtcbiAgICB9XG4gICAgcmV0dXJuIGAke2NvdW50ZXJ9LmdldENhcHRpb24oKWA7XG59O1xuXG5jb25zdCByZWdpc3RlckZvcm1GaWVsZCA9IChpc0Zvcm1GaWVsZCk6IElCdWlsZFRhc2tEZWYgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIHJlcXVpcmVzOiBbJ3dtLWZvcm0nLCAnd20tbGl2ZWZvcm0nLCAnd20tbGl2ZWZpbHRlcicsICd3bS1saXN0J10sXG4gICAgICAgIHByZTogKGF0dHJzLCBzaGFyZWQsIHBhcmVudEZvcm0sIHBhcmVudExpdmVGb3JtLCBwYXJlbnRGaWx0ZXIsIHBhcmVudExpc3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50ZXIgPSBpZEdlbi5uZXh0VWlkKCk7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBwYXJlbnRGb3JtIHx8IHBhcmVudExpdmVGb3JtIHx8IHBhcmVudEZpbHRlcjtcbiAgICAgICAgICAgIGNvbnN0IHBDb3VudGVyID0gKHBhcmVudCAmJiBwYXJlbnQuZ2V0KCdmb3JtX3JlZmVyZW5jZScpKSB8fCAnZm9ybSc7XG4gICAgICAgICAgICBjb25zdCB3aWRnZXRUeXBlID0gYXR0cnMuZ2V0KCd3aWRnZXQnKSB8fCBGb3JtV2lkZ2V0VHlwZS5URVhUO1xuICAgICAgICAgICAgY29uc3QgZGF0YVJvbGUgPSBpc0Zvcm1GaWVsZCA/ICdmb3JtLWZpZWxkJyA6ICdmaWx0ZXItZmllbGQnO1xuICAgICAgICAgICAgY29uc3QgZm9ybUZpZWxkRXJyb3JNc2dJZCA9ICd3bWZvcm0tZmllbGQtZXJyb3ItJyArIGdlbmVyYXRlR1VJZCgpO1xuICAgICAgICAgICAgY29uc3QgdmFsaWRhdGlvbk1zZyA9IGlzRm9ybUZpZWxkID8gYDxwICpuZ0lmPVwiJHtjb3VudGVyfS5fY29udHJvbD8uaW52YWxpZCAmJiAke2NvdW50ZXJ9Ll9jb250cm9sPy50b3VjaGVkICYmICR7cENvdW50ZXJ9LmlzVXBkYXRlTW9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVscC1ibG9jayB0ZXh0LWRhbmdlclwiIGFyaWEtaGlkZGVuPVwiZmFsc2VcIiByb2xlPVwiYWxlcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIiR7Y291bnRlcn0udmFsaWRhdGlvbm1lc3NhZ2VcIiBpZD1cIiR7Zm9ybUZpZWxkRXJyb3JNc2dJZH1cIj48c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiBbdGV4dENvbnRlbnRdPVwiJHtjb3VudGVyfS52YWxpZGF0aW9ubWVzc2FnZVwiPjwvc3Bhbj48L3A+YCA6ICcnO1xuICAgICAgICAgICAgY29uc3QgZXZlbnRzVG1wbCA9IHdpZGdldFR5cGUgPT09IEZvcm1XaWRnZXRUeXBlLlVQTE9BRCA/ICcnIDogZ2V0RXZlbnRzVGVtcGxhdGUoYXR0cnMpO1xuICAgICAgICAgICAgY29uc3QgY29udHJvbExheW91dCA9IGlzTW9iaWxlQXBwKCkgPyAnY29sLXhzLTEyJyA6ICdjb2wtc20tMTInO1xuICAgICAgICAgICAgY29uc3QgaXNJbkxpc3QgPSBwQ291bnRlciA9PT0gKHBhcmVudExpc3QgJiYgcGFyZW50TGlzdC5nZXQoJ3BhcmVudF9mb3JtX3JlZmVyZW5jZScpKTtcbiAgICAgICAgICAgIGF0dHJzLnNldCgnX192YWxpZGF0aW9uSWQnLCBmb3JtRmllbGRFcnJvck1zZ0lkKTtcbiAgICAgICAgICAgIGF0dHJzLnNldCgnX193aWRnZXRUeXBlJywgd2lkZ2V0VHlwZSk7XG4gICAgICAgICAgICBhdHRycy5kZWxldGUoJ3dpZGdldCcpO1xuICAgICAgICAgICAgc2hhcmVkLnNldCgnY291bnRlcicsIGNvdW50ZXIpO1xuXG4gICAgICAgICAgICBpZiAoYXR0cnMuZ2V0KCdpcy1yYW5nZScpID09PSAndHJ1ZScpIHtcbiAgICAgICAgICAgICAgICBzZXREZWZhdWx0UGxhY2Vob2xkZXIoYXR0cnMsIHdpZGdldFR5cGUsIDApO1xuICAgICAgICAgICAgICAgIHNldERlZmF1bHRQbGFjZWhvbGRlcihhdHRycywgd2lkZ2V0VHlwZSwgMSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldERlZmF1bHRQbGFjZWhvbGRlcihhdHRycywgd2lkZ2V0VHlwZSwgMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBgPCR7dGFnTmFtZX0gZGF0YS1yb2xlPVwiJHtkYXRhUm9sZX1cIiBbZm9ybUdyb3VwXT1cIiR7cENvdW50ZXJ9Lm5nZm9ybVwiIHdtRm9ybUZpZWxkIHdtQ2FwdGlvblBvc2l0aW9uICMke2NvdW50ZXJ9PVwid21Gb3JtRmllbGRcIiB3aWRnZXR0eXBlPVwiJHt3aWRnZXRUeXBlfVwiICR7Z2V0Rm9ybU1hcmt1cEF0dHIoYXR0cnMpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXZlLWZpZWxkIGZvcm0tZ3JvdXAgYXBwLWNvbXBvc2l0ZS13aWRnZXQgY2xlYXJmaXggY2FwdGlvbi17eyR7cENvdW50ZXJ9LmNhcHRpb25wb3NpdGlvbn19XCIgd2lkZ2V0PVwiJHt3aWRnZXRUeXBlfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbaGlkZGVuXT1cIiEke2NvdW50ZXJ9LmRpc3BsYXluYW1lXCIgY2xhc3M9XCJhcHAtbGFiZWwgY29udHJvbC1sYWJlbCBmb3JtZmllbGQtbGFiZWwge3ske3BDb3VudGVyfS5fY2FwdGlvbkNsYXNzfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInt3aWR0aDogJHtwQ291bnRlcn0uY2FwdGlvbnNpemV9XCIgW25nQ2xhc3NdPVwieyd0ZXh0LWRhbmdlcic6ICR7Y291bnRlcn0uX2NvbnRyb2w/LmludmFsaWQgJiYgJHtjb3VudGVyfS5fY29udHJvbD8udG91Y2hlZCAmJiAke3BDb3VudGVyfS5pc1VwZGF0ZU1vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAke3BDb3VudGVyfS5pc1VwZGF0ZU1vZGUgJiYgJHtjb3VudGVyfS5yZXF1aXJlZH1cIiBbdGV4dENvbnRlbnRdPVwiJHtjb3VudGVyfS5kaXNwbGF5bmFtZVwiPiA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiJHtjb3VudGVyfS5kaXNwbGF5bmFtZSA/ICR7cENvdW50ZXJ9Ll93aWRnZXRDbGFzcyA6ICcke2NvbnRyb2xMYXlvdXR9J1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNvbnRyb2wtc3RhdGljIGFwcC1sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIiR7cENvdW50ZXJ9LmlzVXBkYXRlTW9kZSB8fCAke2NvdW50ZXJ9LnZpZXdtb2Rld2lkZ2V0ID09PSAnZGVmYXVsdCcgfHwgJHtjb3VudGVyfS53aWRnZXR0eXBlID09PSAndXBsb2FkJ1wiIFtpbm5lckhUTUxdPVwiJHtnZXRDYXB0aW9uQnlXaWRnZXQoYXR0cnMsIHdpZGdldFR5cGUsIGNvdW50ZXIpfVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtnZXRUZW1wbGF0ZShhdHRycywgd2lkZ2V0VHlwZSwgZXZlbnRzVG1wbCwgY291bnRlciwgcENvdW50ZXIsIGlzSW5MaXN0KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCIgKm5nSWY9XCIke2NvdW50ZXJ9LnNob3dQZW5kaW5nU3Bpbm5lclwiIGNsYXNzPVwiZm9ybS1maWVsZC1zcGlubmVyIGZhIGZhLWNpcmNsZS1vLW5vdGNoIGZhLXNwaW4gZm9ybS1jb250cm9sLWZlZWRiYWNrXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cIiEoJHtjb3VudGVyfS5fY29udHJvbD8uaW52YWxpZCAmJiAke2NvdW50ZXJ9Ll9jb250cm9sPy50b3VjaGVkKSAmJiAke3BDb3VudGVyfS5pc1VwZGF0ZU1vZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhlbHAtYmxvY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIiByb2xlPVwiYWxlcnRcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIiBbdGV4dENvbnRlbnRdPVwiJHtjb3VudGVyfS5oaW50XCI+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3ZhbGlkYXRpb25Nc2d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0OiAoKSA9PiBgPC8ke3RhZ05hbWV9PmAsXG4gICAgICAgIHByb3ZpZGU6IChhdHRycywgc2hhcmVkKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcm92aWRlciA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgIHByb3ZpZGVyLnNldCgnZm9ybV9yZWZlcmVuY2UnLCBzaGFyZWQuZ2V0KCdjb3VudGVyJykpO1xuICAgICAgICAgICAgcmV0dXJuIHByb3ZpZGVyO1xuICAgICAgICB9LFxuICAgICAgICBpbXBvcnRzOiAoYXR0cnM6IE1hcDxTdHJpbmcsIFN0cmluZz4pOiBzdHJpbmdbXSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXF1aXJlZFdpZGdldCA9IGdldFJlcXVpcmVkRm9ybVdpZGdldChhdHRycy5nZXQoJ19fd2lkZ2V0VHlwZScpIHx8IGF0dHJzLmdldCgndHlwZScpKTtcbiAgICAgICAgICAgIGF0dHJzLmRlbGV0ZSgnX193aWRnZXRUeXBlJyk7XG4gICAgICAgICAgICByZXR1cm4gW3JlcXVpcmVkV2lkZ2V0LCAnd20tZm9ybSddO1xuICAgICAgICB9XG4gICAgfTtcbn07XG5cbnJlZ2lzdGVyKCd3bS1mb3JtLWZpZWxkJywgcmVnaXN0ZXJGb3JtRmllbGQuYmluZCh0aGlzLCB0cnVlKSk7XG5yZWdpc3Rlcignd20tZmlsdGVyLWZpZWxkJywgcmVnaXN0ZXJGb3JtRmllbGQuYmluZCh0aGlzLCBmYWxzZSkpO1xuXG5leHBvcnQgZGVmYXVsdCAoKSA9PiB7fTtcbiJdfQ==
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5idWlsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvdHJhbnNwaWxlL3NyYy9kYXRhL2Zvcm0vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmJ1aWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBaUIsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxFQUNILGNBQWMsRUFDZCxZQUFZLEVBQ1oscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQixXQUFXLEVBQ1gsV0FBVyxFQUNkLE1BQU0sVUFBVSxDQUFDO0FBRWxCLE9BQU8sRUFBQyxTQUFTLEVBQUUsZUFBZSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHaEUsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDO0FBQ3RCLE1BQU0sS0FBSyxHQUFHLElBQUksV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBRTVDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtJQUNoQyxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7UUFDNUIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDM0IsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDMUIsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7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USxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDOUQsUUFBUSxDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUVqRSxlQUFlLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Z2V0Rm9ybU1hcmt1cEF0dHIsIElCdWlsZFRhc2tEZWYsIHJlZ2lzdGVyfSBmcm9tICdAd20vdHJhbnNwaWxlcic7XG5pbXBvcnQge1xuICAgIEZvcm1XaWRnZXRUeXBlLFxuICAgIGdlbmVyYXRlR1VJZCxcbiAgICBnZXRGb3JtV2lkZ2V0VGVtcGxhdGUsXG4gICAgZ2V0UmVxdWlyZWRGb3JtV2lkZ2V0LFxuICAgIElER2VuZXJhdG9yLFxuICAgIGlzTW9iaWxlQXBwXG59IGZyb20gJ0B3bS9jb3JlJztcblxuaW1wb3J0IHtBTExGSUVMRFMsIGlzRGF0YVNldFdpZGdldH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHtmb3JFYWNofSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmNvbnN0IHRhZ05hbWUgPSAnZGl2JztcbmNvbnN0IGlkR2VuID0gbmV3IElER2VuZXJhdG9yKCdmb3JtZmllbGRfJyk7XG5cbmNvbnN0IGdldEV2ZW50c1RlbXBsYXRlID0gKGF0dHJzKSA9PiB7XG4gICAgY29uc3QgZXZlbnRBdHRycyA9IG5ldyBNYXAoKTtcbiAgICBpZiAoIWF0dHJzLmhhcygnZm9jdXMuZXZlbnQnKSkge1xuICAgICAgICBhdHRycy5zZXQoJ2ZvY3VzLmV2ZW50JywgJycpO1xuICAgIH1cbiAgICBpZiAoIWF0dHJzLmhhcygnYmx1ci5ldmVudCcpKSB7XG4gICAgICAgIGF0dHJzLnNldCgnYmx1ci5ldmVudCcsICcnKTtcbiAgICB9XG4gICAgYXR0cnMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgIGlmIChrZXkuZW5kc1dpdGgoJy5ldmVudCcpKSB7XG4gICAgICAgICAgIGlmIChrZXkgPT09ICdmb2N1cy5ldmVudCcpIHtcbiAgICAgICAgICAgICAgIHZhbHVlID0gYF9vbkZvY3VzRmllbGQoJGV2ZW50KTske3ZhbHVlfWA7XG4gICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnYmx1ci5ldmVudCcpIHtcbiAgICAgICAgICAgICAgIHZhbHVlID0gYF9vbkJsdXJGaWVsZCgkZXZlbnQpOyR7dmFsdWV9YDtcbiAgICAgICAgICAgfVxuICAgICAgICAgICBldmVudEF0dHJzLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgICAgYXR0cnMuZGVsZXRlKGtleSk7XG4gICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBnZXRGb3JtTWFya3VwQXR0cihldmVudEF0dHJzKTtcbn07XG5cbmNvbnN0IERFRkFVTFRfUExBQ0VIT0xERVJTID0gbmV3IE1hcChbXG4gICAgW0Zvcm1XaWRnZXRUeXBlLlNFTEVDVCwgWydTZWxlY3QgTWluIHZhbHVlJywgJ1NlbGVjdCBNYXggdmFsdWUnLCAnU2VsZWN0IHZhbHVlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5EQVRFVElNRSwgWydTZWxlY3QgTWluIGRhdGUgdGltZScsICdTZWxlY3QgTWF4IGRhdGUgdGltZScsICdTZWxlY3QgZGF0ZSB0aW1lJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5USU1FLCBbJ1NlbGVjdCBNaW4gdGltZScsICdTZWxlY3QgTWF4IHRpbWUnLCAnU2VsZWN0IHRpbWUnXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLkRBVEUsIFsnU2VsZWN0IE1pbiBkYXRlJywgJ1NlbGVjdCBNYXggZGF0ZScsICdTZWxlY3QgZGF0ZSddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuVEVYVEFSRUEsIFsnJywgJycsICdFbnRlciB2YWx1ZSddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuUklDSFRFWFQsIFsnJywgJycsICdFbnRlciB2YWx1ZSddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuQ09MT1JQSUNLRVIsIFsnU2VsZWN0IENvbG9yJywgJ1NlbGVjdCBDb2xvcicsICdTZWxlY3QgQ29sb3InXV0sXG4gICAgW0Zvcm1XaWRnZXRUeXBlLkNISVBTLCBbJycsICcnLCAnVHlwZSBoZXJlLi4uJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5QQVNTV09SRCwgWydFbnRlciBNaW4gdmFsdWUnLCAnRW50ZXIgTWF4IHZhbHVlJywgJ0VudGVyIHZhbHVlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5OVU1CRVIsIFsnRW50ZXIgTWluIHZhbHVlJywgJ0VudGVyIE1heCB2YWx1ZScsICdFbnRlciB2YWx1ZSddXSxcbiAgICBbRm9ybVdpZGdldFR5cGUuVEVYVCwgWydFbnRlciBNaW4gdmFsdWUnLCAnRW50ZXIgTWF4IHZhbHVlJywgJ0VudGVyIHZhbHVlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5DVVJSRU5DWSwgWydFbnRlciBNaW4gdmFsdWUnLCAnRW50ZXIgTWF4IHZhbHVlJywgJ0VudGVyIHZhbHVlJ11dLFxuICAgIFtGb3JtV2lkZ2V0VHlwZS5BVVRPQ09NUExFVEUsIFsnJywgJycsICdTZWFyY2gnXV0sXG5dKTtcblxuY29uc3Qgc2V0RGVmYXVsdFBsYWNlaG9sZGVyID0gKGF0dHJzLCB3aWRnZXRUeXBlLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IHByb3AgPSBpbmRleCA9PT0gMSA/ICdtYXhwbGFjZWhvbGRlcicgOiAncGxhY2Vob2xkZXInO1xuICAgIGxldCBwbGFjZWhvbGRlciA9IGF0dHJzLmdldChwcm9wKTtcbiAgICBpZiAocGxhY2Vob2xkZXIgfHwgcGxhY2Vob2xkZXIgPT09ICcnKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcGxhY2Vob2xkZXIgPSBERUZBVUxUX1BMQUNFSE9MREVSUy5nZXQod2lkZ2V0VHlwZSkgJiYgREVGQVVMVF9QTEFDRUhPTERFUlMuZ2V0KHdpZGdldFR5cGUpW2luZGV4XTtcbiAgICBpZiAocGxhY2Vob2xkZXIpIHtcbiAgICAgICAgYXR0cnMuc2V0KHByb3AsIHBsYWNlaG9sZGVyKTtcbiAgICB9XG59O1xuXG5jb25zdCBnZXRXaWRnZXRUZW1wbGF0ZSA9IChhdHRycywgb3B0aW9ucykgPT4ge1xuICAgIGxldCBjdXN0b21BdHRycyA9IGBgO1xuICAgIGlmKG9wdGlvbnMud2lkZ2V0VHlwZSA9PT0gXCJjdXN0b20td2lkZ2V0XCIpIHtcbiAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIGF0dHJzKSB7XG4gICAgICAgICAgICBpZihrZXkuc3RhcnRzV2l0aCgncHJvcC0nKSlcbiAgICAgICAgICAgICAgICBjdXN0b21BdHRycyArPSBrZXkgKyAnPVwiJyArIHZhbHVlICsgJ1wiICc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgbmFtZSA9IGF0dHJzLmdldCgnbmFtZScpO1xuICAgIGNvbnN0IGN1c3RvbVdpZGdldE5hbWUgPSBhdHRycy5nZXQoJ3dpZGdldG5hbWUnKTtcbiAgICBjb25zdCBmaWVsZE5hbWUgPSAoYXR0cnMuZ2V0KCdrZXknKSB8fCBuYW1lIHx8ICcnKS50cmltKCk7XG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSBvcHRpb25zLmlzTWF4V2lkZ2V0ID8gYGZvcm1Db250cm9sTmFtZT1cIiR7ZmllbGROYW1lfV9tYXhcImAgOiAob3B0aW9ucy5pc0luTGlzdCA/IGBbZm9ybUNvbnRyb2xOYW1lXT1cIiR7b3B0aW9ucy5jb3VudGVyfS5fZmllbGROYW1lXCJgIDogYGZvcm1Db250cm9sTmFtZT1cIiR7ZmllbGROYW1lfVwiYCk7XG4gICAgY29uc3QgdG1wbFJlZiA9IG9wdGlvbnMuaXNNYXhXaWRnZXQgPyBgI2Zvcm1XaWRnZXRNYXhgIDogYCNmb3JtV2lkZ2V0YDtcbiAgICBjb25zdCB3aWRnZXROYW1lID0gbmFtZSA/IChvcHRpb25zLmlzTWF4V2lkZ2V0ID8gYG5hbWU9XCIke25hbWV9X2Zvcm1XaWRnZXRNYXhcImAgOiBgbmFtZT1cIiR7bmFtZX1fZm9ybVdpZGdldFwiYCkgOiAnJztcbiAgICBjb25zdCBjb25kaXRpb25hbENsYXNzID0gYFtuZ0NsYXNzXT1cIiR7YXR0cnMuZ2V0KCduZ2NsYXNzJyl9XCJgO1xuICAgIGNvbnN0IGRlZmF1bHRUbXBsID0gYFtjbGFzcy5oaWRkZW5dPVwiISR7b3B0aW9ucy5wQ291bnRlcn0uaXNVcGRhdGVNb2RlICYmICR7b3B0aW9ucy5jb3VudGVyfS52aWV3bW9kZXdpZGdldCAhPT0gJ2RlZmF1bHQnXCIgJHtmb3JtQ29udHJvbH0gJHtvcHRpb25zLmV2ZW50c1RtcGx9ICR7Y29uZGl0aW9uYWxDbGFzc30gJHt0bXBsUmVmfSAke3dpZGdldE5hbWV9ICR7Y3VzdG9tV2lkZ2V0TmFtZSA/IGB3aWRnZXRuYW1lPSR7Y3VzdG9tV2lkZ2V0TmFtZX0gJHtjdXN0b21BdHRyc31gOicnfWAgO1xuICAgIHJldHVybiBnZXRGb3JtV2lkZ2V0VGVtcGxhdGUob3B0aW9ucy53aWRnZXRUeXBlLCBkZWZhdWx0VG1wbCwgYXR0cnMsIHtjb3VudGVyOiBvcHRpb25zLmNvdW50ZXIsIHBDb3VudGVyOiBvcHRpb25zLnBDb3VudGVyfSk7XG59O1xuXG5cbmNvbnN0IGdldFRlbXBsYXRlID0gKGF0dHJzLCB3aWRnZXRUeXBlLCBldmVudHNUbXBsLCBjb3VudGVyLCBwQ291bnRlciwgaXNJbkxpc3QpID0+IHtcbiAgICBjb25zdCBpc1JhbmdlID0gYXR0cnMuZ2V0KCdpcy1yYW5nZScpID09PSAndHJ1ZSc7XG4gICAgaWYgKCFpc1JhbmdlKSB7XG4gICAgICAgIHJldHVybiBnZXRXaWRnZXRUZW1wbGF0ZShhdHRycywge3dpZGdldFR5cGUsIGV2ZW50c1RtcGwsIGNvdW50ZXIsIHBDb3VudGVyLCBpc0luTGlzdH0pO1xuICAgIH1cbiAgICBjb25zdCBsYXlvdXRDbGFzcyA9IGlzTW9iaWxlQXBwKCkgPyAnY29sLXhzLTYnIDogJ2NvbC1zbS02JztcbiAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCIke2xheW91dENsYXNzfVwiPiR7Z2V0V2lkZ2V0VGVtcGxhdGUoYXR0cnMsIHt3aWRnZXRUeXBlLCBldmVudHNUbXBsLCBjb3VudGVyLCBwQ291bnRlcn0pfTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIke2xheW91dENsYXNzfVwiPiR7Z2V0V2lkZ2V0VGVtcGxhdGUoYXR0cnMsIHt3aWRnZXRUeXBlLCBldmVudHNUbXBsLCBjb3VudGVyLCBwQ291bnRlciwgaXNNYXhXaWRnZXQ6IHRydWV9KX08L2Rpdj5gO1xufTtcblxuY29uc3QgZ2V0Q2FwdGlvbkJ5V2lkZ2V0ID0gKGF0dHJzLCB3aWRnZXRUeXBlLCBjb3VudGVyKSA9PiB7XG4gICAgaWYgKGF0dHJzLmdldCgnaXMtcmVsYXRlZCcpID09PSAndHJ1ZScpIHtcbiAgICAgICAgcmV0dXJuIGAke2NvdW50ZXJ9LmdldERpc3BsYXlFeHByKClgO1xuICAgIH1cbiAgICBpZiAod2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuUEFTU1dPUkQpIHtcbiAgICAgICAgcmV0dXJuICdcXCcqKioqKioqKlxcJyc7XG4gICAgfVxuICAgIGxldCBjYXB0aW9uID0gYCR7Y291bnRlcn0udmFsdWVgO1xuICAgIGlmICh3aWRnZXRUeXBlID09PSBGb3JtV2lkZ2V0VHlwZS5EQVRFVElNRSB8fCB3aWRnZXRUeXBlID09PSBGb3JtV2lkZ2V0VHlwZS5USU1FU1RBTVApIHtcbiAgICAgICAgY2FwdGlvbiArPSBgIHwgdG9EYXRlOiR7Y291bnRlcn0uZm9ybVdpZGdldC5kYXRlcGF0dGVybiB8fCAneXl5eS1NTS1kZCBoaDptbTpzcyBhJ2A7XG4gICAgICAgIHJldHVybiBjYXB0aW9uO1xuICAgIH1cbiAgICBpZiAod2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVElNRSkge1xuICAgICAgICBjYXB0aW9uICs9IGAgfCB0b0RhdGU6JHtjb3VudGVyfS5mb3JtV2lkZ2V0LnRpbWVwYXR0ZXJuIHx8ICdoaDptbSBhJ2A7XG4gICAgICAgIHJldHVybiBjYXB0aW9uO1xuICAgIH1cbiAgICBpZiAod2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuREFURSkge1xuICAgICAgICBjYXB0aW9uICs9IGAgfCB0b0RhdGU6JHtjb3VudGVyfS5mb3JtV2lkZ2V0LmRhdGVwYXR0ZXJuIHx8ICAneXl5eS1NTU0tZGQnYDtcbiAgICAgICAgcmV0dXJuIGNhcHRpb247XG4gICAgfVxuICAgIGlmICh3aWRnZXRUeXBlID09PSBGb3JtV2lkZ2V0VHlwZS5SQVRJTkcgfHwgd2lkZ2V0VHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVVBMT0FEKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgaWYgKGlzRGF0YVNldFdpZGdldCh3aWRnZXRUeXBlKSAmJiBhdHRycy5nZXQoJ2RhdGFmaWVsZCcpID09PSBBTExGSUVMRFMpIHtcbiAgICAgICAgcmV0dXJuIGAke2NvdW50ZXJ9LmdldERpc3BsYXlFeHByKClgO1xuICAgIH1cbiAgICByZXR1cm4gYCR7Y291bnRlcn0uZ2V0Q2FwdGlvbigpYDtcbn07XG5cbmNvbnN0IHJlZ2lzdGVyRm9ybUZpZWxkID0gKGlzRm9ybUZpZWxkKTogSUJ1aWxkVGFza0RlZiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVxdWlyZXM6IFsnd20tZm9ybScsICd3bS1saXZlZm9ybScsICd3bS1saXZlZmlsdGVyJywgJ3dtLWxpc3QnXSxcbiAgICAgICAgcHJlOiAoYXR0cnMsIHNoYXJlZCwgcGFyZW50Rm9ybSwgcGFyZW50TGl2ZUZvcm0sIHBhcmVudEZpbHRlciwgcGFyZW50TGlzdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY291bnRlciA9IGlkR2VuLm5leHRVaWQoKTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IHBhcmVudEZvcm0gfHwgcGFyZW50TGl2ZUZvcm0gfHwgcGFyZW50RmlsdGVyO1xuICAgICAgICAgICAgY29uc3QgcENvdW50ZXIgPSAocGFyZW50ICYmIHBhcmVudC5nZXQoJ2Zvcm1fcmVmZXJlbmNlJykpIHx8ICdmb3JtJztcbiAgICAgICAgICAgIGNvbnN0IHdpZGdldFR5cGUgPSBhdHRycy5nZXQoJ3dpZGdldCcpIHx8IEZvcm1XaWRnZXRUeXBlLlRFWFQ7XG4gICAgICAgICAgICBjb25zdCBkYXRhUm9sZSA9IGlzRm9ybUZpZWxkID8gJ2Zvcm0tZmllbGQnIDogJ2ZpbHRlci1maWVsZCc7XG4gICAgICAgICAgICBjb25zdCBmb3JtRmllbGRFcnJvck1zZ0lkID0gJ3dtZm9ybS1maWVsZC1lcnJvci0nICsgZ2VuZXJhdGVHVUlkKCk7XG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0aW9uTXNnID0gYDxwICpuZ0lmPVwiJHtjb3VudGVyfS5fY29udHJvbD8uaW52YWxpZCAmJiAke2NvdW50ZXJ9Ll9jb250cm9sPy50b3VjaGVkICYmICR7cENvdW50ZXJ9LmlzVXBkYXRlTW9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVscC1ibG9jayB0ZXh0LWRhbmdlclwiIGFyaWEtaGlkZGVuPVwiZmFsc2VcIiByb2xlPVwiYWxlcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIiR7Y291bnRlcn0udmFsaWRhdGlvbm1lc3NhZ2VcIiBpZD1cIiR7Zm9ybUZpZWxkRXJyb3JNc2dJZH1cIj48c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiBbdGV4dENvbnRlbnRdPVwiJHtjb3VudGVyfS52YWxpZGF0aW9ubWVzc2FnZVwiPjwvc3Bhbj48L3A+YDtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50c1RtcGwgPSB3aWRnZXRUeXBlID09PSBGb3JtV2lkZ2V0VHlwZS5VUExPQUQgPyAnJyA6IGdldEV2ZW50c1RlbXBsYXRlKGF0dHJzKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xMYXlvdXQgPSBpc01vYmlsZUFwcCgpID8gJ2NvbC14cy0xMicgOiAnY29sLXNtLTEyJztcbiAgICAgICAgICAgIGNvbnN0IGlzSW5MaXN0ID0gcENvdW50ZXIgPT09IChwYXJlbnRMaXN0ICYmIHBhcmVudExpc3QuZ2V0KCdwYXJlbnRfZm9ybV9yZWZlcmVuY2UnKSk7XG4gICAgICAgICAgICBhdHRycy5zZXQoJ19fdmFsaWRhdGlvbklkJywgZm9ybUZpZWxkRXJyb3JNc2dJZCk7XG4gICAgICAgICAgICBhdHRycy5zZXQoJ19fd2lkZ2V0VHlwZScsIHdpZGdldFR5cGUpO1xuICAgICAgICAgICAgYXR0cnMuZGVsZXRlKCd3aWRnZXQnKTtcbiAgICAgICAgICAgIHNoYXJlZC5zZXQoJ2NvdW50ZXInLCBjb3VudGVyKTtcblxuICAgICAgICAgICAgaWYgKGF0dHJzLmdldCgnaXMtcmFuZ2UnKSA9PT0gJ3RydWUnKSB7XG4gICAgICAgICAgICAgICAgc2V0RGVmYXVsdFBsYWNlaG9sZGVyKGF0dHJzLCB3aWRnZXRUeXBlLCAwKTtcbiAgICAgICAgICAgICAgICBzZXREZWZhdWx0UGxhY2Vob2xkZXIoYXR0cnMsIHdpZGdldFR5cGUsIDEpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzZXREZWZhdWx0UGxhY2Vob2xkZXIoYXR0cnMsIHdpZGdldFR5cGUsIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYDwke3RhZ05hbWV9IGRhdGEtcm9sZT1cIiR7ZGF0YVJvbGV9XCIgW2Zvcm1Hcm91cF09XCIke3BDb3VudGVyfS5uZ2Zvcm1cIiB3bUZvcm1GaWVsZCB3bUNhcHRpb25Qb3NpdGlvbiAjJHtjb3VudGVyfT1cIndtRm9ybUZpZWxkXCIgd2lkZ2V0dHlwZT1cIiR7d2lkZ2V0VHlwZX1cIiAke2dldEZvcm1NYXJrdXBBdHRyKGF0dHJzKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGl2ZS1maWVsZCBmb3JtLWdyb3VwIGFwcC1jb21wb3NpdGUtd2lkZ2V0IGNsZWFyZml4IGNhcHRpb24te3ske3BDb3VudGVyfS5jYXB0aW9ucG9zaXRpb259fVwiIHdpZGdldD1cIiR7d2lkZ2V0VHlwZX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW2hpZGRlbl09XCIhJHtjb3VudGVyfS5kaXNwbGF5bmFtZVwiIGNsYXNzPVwiYXBwLWxhYmVsIGNvbnRyb2wtbGFiZWwgZm9ybWZpZWxkLWxhYmVsIHt7JHtwQ291bnRlcn0uX2NhcHRpb25DbGFzc319XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7d2lkdGg6ICR7cENvdW50ZXJ9LmNhcHRpb25zaXplfVwiIFtuZ0NsYXNzXT1cInsndGV4dC1kYW5nZXInOiAke2NvdW50ZXJ9Ll9jb250cm9sPy5pbnZhbGlkICYmICR7Y291bnRlcn0uX2NvbnRyb2w/LnRvdWNoZWQgJiYgJHtwQ291bnRlcn0uaXNVcGRhdGVNb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJHtwQ291bnRlcn0uaXNVcGRhdGVNb2RlICYmICR7Y291bnRlcn0ucmVxdWlyZWR9XCIgW3RleHRDb250ZW50XT1cIiR7Y291bnRlcn0uZGlzcGxheW5hbWVcIj4gPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIiR7Y291bnRlcn0uZGlzcGxheW5hbWUgPyAke3BDb3VudGVyfS5fd2lkZ2V0Q2xhc3MgOiAnJHtjb250cm9sTGF5b3V0fSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jb250cm9sLXN0YXRpYyBhcHAtbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGRlbl09XCIke3BDb3VudGVyfS5pc1VwZGF0ZU1vZGUgfHwgJHtjb3VudGVyfS52aWV3bW9kZXdpZGdldCA9PT0gJ2RlZmF1bHQnIHx8ICR7Y291bnRlcn0ud2lkZ2V0dHlwZSA9PT0gJ3VwbG9hZCdcIiBbaW5uZXJIVE1MXT1cIiR7Z2V0Q2FwdGlvbkJ5V2lkZ2V0KGF0dHJzLCB3aWRnZXRUeXBlLCBjb3VudGVyKX1cIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7Z2V0VGVtcGxhdGUoYXR0cnMsIHdpZGdldFR5cGUsIGV2ZW50c1RtcGwsIGNvdW50ZXIsIHBDb3VudGVyLCBpc0luTGlzdCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiICpuZ0lmPVwiJHtjb3VudGVyfS5zaG93UGVuZGluZ1NwaW5uZXJcIiBjbGFzcz1cImZvcm0tZmllbGQtc3Bpbm5lciBmYSBmYS1jaXJjbGUtby1ub3RjaCBmYS1zcGluIGZvcm0tY29udHJvbC1mZWVkYmFja1wiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCIhKCR7Y291bnRlcn0uX2NvbnRyb2w/LmludmFsaWQgJiYgJHtjb3VudGVyfS5fY29udHJvbD8udG91Y2hlZCkgJiYgJHtwQ291bnRlcn0uaXNVcGRhdGVNb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoZWxwLWJsb2NrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgcm9sZT1cImFsZXJ0XCIgYXJpYS1saXZlPVwicG9saXRlXCIgW3RleHRDb250ZW50XT1cIiR7Y291bnRlcn0uaGludFwiPjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt2YWxpZGF0aW9uTXNnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdDogKCkgPT4gYDwvJHt0YWdOYW1lfT5gLFxuICAgICAgICBwcm92aWRlOiAoYXR0cnMsIHNoYXJlZCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgTWFwKCk7XG4gICAgICAgICAgICBwcm92aWRlci5zZXQoJ2Zvcm1fcmVmZXJlbmNlJywgc2hhcmVkLmdldCgnY291bnRlcicpKTtcbiAgICAgICAgICAgIHJldHVybiBwcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgaW1wb3J0czogKGF0dHJzOiBNYXA8U3RyaW5nLCBTdHJpbmc+KTogc3RyaW5nW10gPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVxdWlyZWRXaWRnZXQgPSBnZXRSZXF1aXJlZEZvcm1XaWRnZXQoYXR0cnMuZ2V0KCdfX3dpZGdldFR5cGUnKSB8fCBhdHRycy5nZXQoJ3R5cGUnKSk7XG4gICAgICAgICAgICBhdHRycy5kZWxldGUoJ19fd2lkZ2V0VHlwZScpO1xuICAgICAgICAgICAgcmV0dXJuIFtyZXF1aXJlZFdpZGdldCwgJ3dtLWZvcm0nXTtcbiAgICAgICAgfVxuICAgIH07XG59O1xuXG5yZWdpc3Rlcignd20tZm9ybS1maWVsZCcsIHJlZ2lzdGVyRm9ybUZpZWxkLmJpbmQodGhpcywgdHJ1ZSkpO1xucmVnaXN0ZXIoJ3dtLWZpbHRlci1maWVsZCcsIHJlZ2lzdGVyRm9ybUZpZWxkLmJpbmQodGhpcywgZmFsc2UpKTtcblxuZXhwb3J0IGRlZmF1bHQgKCkgPT4ge307XG4iXX0=
@@ -63,11 +63,13 @@ register('wm-carousel-template', () => {
63
63
  pre: (attrs, shared, parentCarousel) => {
64
64
  const carouselRef = parentCarousel.get('carousel_ref');
65
65
  return `<div *ngIf="!${carouselRef}.fieldDefs">{{${carouselRef}.nodatamessage}}</div>
66
- <${carouselContentTagName} wmCarouselTemplate #carouselTemplateRef="carouselTemplateRef" ${getAttrMarkup(attrs)} *ngFor="let item of ${carouselRef}.fieldDefs; let i = index;">
66
+ <ng-container *ngFor="let item of ${carouselRef}.fieldDefs; let i = index;">
67
+ <${carouselContentTagName} wmCarouselTemplate #carouselTemplateRef="carouselTemplateRef" ${getAttrMarkup(attrs)}>
67
68
  <ng-container [ngTemplateOutlet]="carouselTempRef${counter$1}"
68
69
  [ngTemplateOutletContext]="{item:item, index:i}"
69
70
  [ngTemplateOutletInjector]="${carouselRef}.createCustomInjector('carousel_item_' + carouselTemplateRef.trackId, {item:item, index:i})"></ng-container>
70
71
  </${carouselContentTagName}>
72
+ </ng-container>
71
73
  <ng-template #carouselTempRef${counter$1++} let-item="item" let-index="index">`;
72
74
  },
73
75
  post: () => `</ng-template>`
@@ -1094,9 +1096,9 @@ const registerFormField = (isFormField) => {
1094
1096
  const widgetType = attrs.get('widget') || FormWidgetType.TEXT;
1095
1097
  const dataRole = isFormField ? 'form-field' : 'filter-field';
1096
1098
  const formFieldErrorMsgId = 'wmform-field-error-' + generateGUId();
1097
- const validationMsg = isFormField ? `<p *ngIf="${counter}._control?.invalid && ${counter}._control?.touched && ${pCounter}.isUpdateMode"
1099
+ const validationMsg = `<p *ngIf="${counter}._control?.invalid && ${counter}._control?.touched && ${pCounter}.isUpdateMode"
1098
1100
  class="help-block text-danger" aria-hidden="false" role="alert"
1099
- aria-live="assertive" [attr.aria-label]="${counter}.validationmessage" id="${formFieldErrorMsgId}"><span aria-hidden="true" [textContent]="${counter}.validationmessage"></span></p>` : '';
1101
+ aria-live="assertive" [attr.aria-label]="${counter}.validationmessage" id="${formFieldErrorMsgId}"><span aria-hidden="true" [textContent]="${counter}.validationmessage"></span></p>`;
1100
1102
  const eventsTmpl = widgetType === FormWidgetType.UPLOAD ? '' : getEventsTemplate(attrs);
1101
1103
  const controlLayout = isMobileApp() ? 'col-xs-12' : 'col-sm-12';
1102
1104
  const isInList = pCounter === (parentList && parentList.get('parent_form_reference'));