@wavemaker/app-ng-runtime 12.0.0-next.45104 → 12.0.0-next.45127

Sign up to get free protection for your applications and to get access to all the features.
Files changed (304) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +46 -38
  2. app-ng-runtime/build-task/esm2022/basic/default/anchor/anchor.build.mjs +2 -2
  3. app-ng-runtime/build-task/esm2022/basic/default/html/html.build.mjs +2 -2
  4. app-ng-runtime/build-task/esm2022/basic/default/icon/icon.build.mjs +2 -2
  5. app-ng-runtime/build-task/esm2022/basic/default/label/label.build.mjs +2 -2
  6. app-ng-runtime/build-task/esm2022/basic/default/picture/picture.build.mjs +2 -2
  7. app-ng-runtime/build-task/esm2022/basic/default/spinner/spinner.build.mjs +2 -2
  8. app-ng-runtime/build-task/esm2022/basic/progress/progress-circle/progress-circle.build.mjs +7 -2
  9. app-ng-runtime/build-task/esm2022/basic/rich-text-editor/rich-text-editor.build.mjs +2 -2
  10. app-ng-runtime/build-task/esm2022/containers/tile/tile.build.mjs +2 -2
  11. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +2 -2
  12. app-ng-runtime/build-task/esm2022/device/barcode-scanner/barcode-scanner.build.mjs +2 -2
  13. app-ng-runtime/build-task/esm2022/device/camera/camera.build.mjs +2 -2
  14. app-ng-runtime/build-task/esm2022/dialogs/alert-dialog/alert-dialog.build.mjs +2 -2
  15. app-ng-runtime/build-task/esm2022/input/calendar/calendar.build.mjs +2 -2
  16. app-ng-runtime/build-task/esm2022/input/color-picker/color-picker.build.mjs +3 -3
  17. app-ng-runtime/build-task/esm2022/input/currency/currency.build.mjs +3 -3
  18. app-ng-runtime/build-task/esm2022/input/default/button/button.build.mjs +2 -2
  19. app-ng-runtime/build-task/esm2022/input/default/button-group/button-group.build.mjs +2 -2
  20. app-ng-runtime/build-task/esm2022/input/default/switch/switch.build.mjs +2 -2
  21. app-ng-runtime/build-task/esm2022/input/file-upload/file-upload.build.mjs +5 -1
  22. app-ng-runtime/build-task/esm2022/page/footer/footer.build.mjs +2 -2
  23. app-ng-runtime/build-task/esm2022/page/header/header.build.mjs +2 -2
  24. app-ng-runtime/build-task/esm2022/page/layout.build.mjs +2 -2
  25. app-ng-runtime/build-task/esm2022/page/left-panel/left-panel.build.mjs +2 -2
  26. app-ng-runtime/build-task/esm2022/page/page.build.mjs +2 -2
  27. app-ng-runtime/build-task/esm2022/page/right-panel/right-panel.build.mjs +2 -2
  28. app-ng-runtime/build-task/esm2022/page/top-nav/top-nav.build.mjs +2 -2
  29. app-ng-runtime/build-task/fesm2022/index.mjs +46 -38
  30. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  31. app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +1 -1
  32. app-ng-runtime/components/advanced/carousel/esm2022/carousel.animator.mjs +2 -2
  33. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +1 -1
  34. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  35. app-ng-runtime/components/base/bundles/index.umd.js +8 -2
  36. app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +3 -3
  37. app-ng-runtime/components/base/esm2022/utils/live-utils.mjs +8 -2
  38. app-ng-runtime/components/base/fesm2022/index.mjs +8 -2
  39. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  40. app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -1
  41. app-ng-runtime/components/base/widgets/common/base/base-field-validations.d.ts +1 -1
  42. app-ng-runtime/components/basic/default/anchor/anchor.component.d.ts +1 -0
  43. app-ng-runtime/components/basic/default/audio/audio.component.d.ts +1 -0
  44. app-ng-runtime/components/basic/default/bundles/index.umd.js +27 -18
  45. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.component.mjs +4 -4
  46. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.props.mjs +2 -1
  47. app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +5 -5
  48. app-ng-runtime/components/basic/default/esm2022/audio/audio.props.mjs +2 -1
  49. app-ng-runtime/components/basic/default/esm2022/html/html.props.mjs +2 -1
  50. app-ng-runtime/components/basic/default/esm2022/icon/icon.component.mjs +6 -7
  51. app-ng-runtime/components/basic/default/esm2022/icon/icon.props.mjs +2 -1
  52. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.component.mjs +3 -3
  53. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.props.mjs +3 -2
  54. app-ng-runtime/components/basic/default/esm2022/label/label.props.mjs +1 -1
  55. app-ng-runtime/components/basic/default/esm2022/picture/picture.directive.mjs +2 -2
  56. app-ng-runtime/components/basic/default/esm2022/picture/picture.props.mjs +3 -1
  57. app-ng-runtime/components/basic/default/esm2022/spinner/spinner.props.mjs +3 -2
  58. app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +5 -4
  59. app-ng-runtime/components/basic/default/esm2022/video/video.props.mjs +2 -1
  60. app-ng-runtime/components/basic/default/fesm2022/index.mjs +27 -18
  61. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  62. app-ng-runtime/components/basic/default/icon/icon.component.d.ts +1 -0
  63. app-ng-runtime/components/basic/default/iframe/iframe.component.d.ts +1 -0
  64. app-ng-runtime/components/basic/default/picture/picture.directive.d.ts +2 -1
  65. app-ng-runtime/components/basic/default/video/video.component.d.ts +1 -0
  66. app-ng-runtime/components/basic/progress/bundles/index.umd.js +12 -8
  67. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +4 -4
  68. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.props.mjs +2 -1
  69. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +8 -6
  70. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.props.mjs +2 -1
  71. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +12 -8
  72. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  73. app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +1 -0
  74. app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -1
  75. app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +2 -0
  76. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +2 -1
  77. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.props.mjs +2 -1
  78. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +2 -0
  79. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  80. app-ng-runtime/components/basic/search/bundles/index.umd.js +11 -9
  81. app-ng-runtime/components/basic/search/esm2022/search.component.mjs +14 -13
  82. app-ng-runtime/components/basic/search/esm2022/search.props.mjs +2 -1
  83. app-ng-runtime/components/basic/search/fesm2022/index.mjs +11 -9
  84. app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
  85. app-ng-runtime/components/basic/search/search.component.d.ts +1 -0
  86. app-ng-runtime/components/containers/accordion/bundles/index.umd.js +3 -3
  87. app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +4 -4
  88. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +3 -3
  89. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  90. app-ng-runtime/components/containers/panel/bundles/index.umd.js +14 -14
  91. app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +15 -15
  92. app-ng-runtime/components/containers/panel/fesm2022/index.mjs +14 -14
  93. app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
  94. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +2 -2
  95. app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +3 -3
  96. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +2 -2
  97. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  98. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +17 -0
  99. app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +18 -1
  100. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +17 -0
  101. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  102. app-ng-runtime/components/containers/wizard/wizard.component.d.ts +1 -0
  103. app-ng-runtime/components/data/form/bundles/index.umd.js +4 -0
  104. app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +5 -3
  105. app-ng-runtime/components/data/form/fesm2022/index.mjs +4 -2
  106. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  107. app-ng-runtime/components/data/form/form-field/form-field.directive.d.ts +1 -0
  108. app-ng-runtime/components/data/live-table/bundles/index.umd.js +2 -2
  109. app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +3 -3
  110. app-ng-runtime/components/data/live-table/fesm2022/index.mjs +2 -2
  111. app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
  112. app-ng-runtime/components/data/pagination/bundles/index.umd.js +2 -0
  113. app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +3 -1
  114. app-ng-runtime/components/data/pagination/fesm2022/index.mjs +2 -0
  115. app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
  116. app-ng-runtime/components/data/table/bundles/index.umd.js +44 -10
  117. app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +14 -5
  118. app-ng-runtime/components/data/table/esm2022/table.component.mjs +30 -7
  119. app-ng-runtime/components/data/table/esm2022/table.props.mjs +3 -1
  120. app-ng-runtime/components/data/table/fesm2022/index.mjs +45 -11
  121. app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
  122. app-ng-runtime/components/data/table/table.component.d.ts +8 -1
  123. app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +6 -4
  124. app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +7 -5
  125. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs +6 -4
  126. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  127. app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +8 -5
  128. app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +9 -6
  129. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs +8 -5
  130. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  131. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +20 -3
  132. app-ng-runtime/components/dialogs/default/dialog-header/dialog-header.component.d.ts +2 -1
  133. app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +13 -1
  134. app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +9 -4
  135. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +20 -3
  136. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  137. app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +4 -4
  138. app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +5 -5
  139. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +4 -4
  140. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  141. app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +9 -5
  142. app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +10 -6
  143. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs +9 -5
  144. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  145. app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +9 -5
  146. app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +10 -6
  147. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs +9 -5
  148. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  149. app-ng-runtime/components/input/calendar/bundles/index.umd.js +2 -4
  150. app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +3 -5
  151. app-ng-runtime/components/input/calendar/fesm2022/index.mjs +2 -4
  152. app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
  153. app-ng-runtime/components/input/chips/bundles/index.umd.js +3 -2
  154. app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +3 -3
  155. app-ng-runtime/components/input/chips/esm2022/chips.props.mjs +2 -1
  156. app-ng-runtime/components/input/chips/fesm2022/index.mjs +3 -2
  157. app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
  158. app-ng-runtime/components/input/color-picker/bundles/index.umd.js +5 -3
  159. app-ng-runtime/components/input/color-picker/color-picker.component.d.ts +1 -0
  160. app-ng-runtime/components/input/color-picker/esm2022/color-picker.component.mjs +6 -5
  161. app-ng-runtime/components/input/color-picker/esm2022/color-picker.props.mjs +2 -1
  162. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs +5 -3
  163. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  164. app-ng-runtime/components/input/currency/bundles/index.umd.js +4 -3
  165. app-ng-runtime/components/input/currency/currency.component.d.ts +1 -0
  166. app-ng-runtime/components/input/currency/esm2022/currency.component.mjs +6 -6
  167. app-ng-runtime/components/input/currency/esm2022/currency.props.mjs +2 -1
  168. app-ng-runtime/components/input/currency/fesm2022/index.mjs +4 -3
  169. app-ng-runtime/components/input/currency/fesm2022/index.mjs.map +1 -1
  170. app-ng-runtime/components/input/default/bundles/index.umd.js +206 -110
  171. app-ng-runtime/components/input/default/button/button.component.d.ts +1 -0
  172. app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +1 -0
  173. app-ng-runtime/components/input/default/esm2022/button/button.component.mjs +1 -1
  174. app-ng-runtime/components/input/default/esm2022/button/button.props.mjs +2 -1
  175. app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +8 -7
  176. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +7 -7
  177. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.props.mjs +2 -1
  178. app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +21 -16
  179. app-ng-runtime/components/input/default/esm2022/number/number.component.mjs +5 -5
  180. app-ng-runtime/components/input/default/esm2022/number/number.props.mjs +3 -1
  181. app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +28 -23
  182. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +60 -30
  183. app-ng-runtime/components/input/default/esm2022/select/select.props.mjs +2 -1
  184. app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +6 -5
  185. app-ng-runtime/components/input/default/esm2022/switch/switch.props.mjs +2 -1
  186. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +5 -5
  187. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.props.mjs +2 -1
  188. app-ng-runtime/components/input/default/esm2022/text/color/input-color.component.mjs +5 -5
  189. app-ng-runtime/components/input/default/esm2022/text/color/input-color.props.mjs +2 -1
  190. app-ng-runtime/components/input/default/esm2022/text/email/input-email.component.mjs +5 -5
  191. app-ng-runtime/components/input/default/esm2022/text/email/input-email.props.mjs +2 -1
  192. app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +51 -14
  193. app-ng-runtime/components/input/default/esm2022/text/number/input-number.component.mjs +5 -5
  194. app-ng-runtime/components/input/default/esm2022/text/number/input-number.props.mjs +2 -1
  195. app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +5 -5
  196. app-ng-runtime/components/input/default/esm2022/text/text/input-text.props.mjs +2 -1
  197. app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +9 -6
  198. app-ng-runtime/components/input/default/esm2022/textarea/textarea.props.mjs +2 -1
  199. app-ng-runtime/components/input/default/fesm2022/index.mjs +206 -110
  200. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  201. app-ng-runtime/components/input/default/number/number.component.d.ts +1 -0
  202. app-ng-runtime/components/input/default/select/select.component.d.ts +4 -4
  203. app-ng-runtime/components/input/default/text/calendar/input-calendar.component.d.ts +1 -0
  204. app-ng-runtime/components/input/default/text/color/input-color.component.d.ts +1 -0
  205. app-ng-runtime/components/input/default/text/email/input-email.component.d.ts +1 -0
  206. app-ng-runtime/components/input/default/text/locale/number-locale.d.ts +1 -0
  207. app-ng-runtime/components/input/default/text/number/input-number.component.d.ts +1 -0
  208. app-ng-runtime/components/input/default/text/text/input-text.component.d.ts +1 -0
  209. app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +4 -2
  210. app-ng-runtime/components/input/epoch/bundles/index.umd.js +15 -9
  211. app-ng-runtime/components/input/epoch/date/date.component.d.ts +1 -0
  212. app-ng-runtime/components/input/epoch/date-time/date-time.component.d.ts +2 -1
  213. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +6 -6
  214. app-ng-runtime/components/input/epoch/esm2022/date/date.props.mjs +2 -1
  215. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +10 -7
  216. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.props.mjs +2 -1
  217. app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +7 -7
  218. app-ng-runtime/components/input/epoch/esm2022/time/time.props.mjs +2 -1
  219. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +15 -9
  220. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  221. app-ng-runtime/components/input/epoch/time/time.component.d.ts +1 -0
  222. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +208 -95
  223. app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +206 -98
  224. app-ng-runtime/components/input/file-upload/esm2022/file-upload.props.mjs +6 -1
  225. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +209 -96
  226. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  227. app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +17 -11
  228. app-ng-runtime/components/input/slider/bundles/index.umd.js +5 -6
  229. app-ng-runtime/components/input/slider/esm2022/slider.component.mjs +6 -8
  230. app-ng-runtime/components/input/slider/esm2022/slider.props.mjs +2 -1
  231. app-ng-runtime/components/input/slider/fesm2022/index.mjs +5 -6
  232. app-ng-runtime/components/input/slider/fesm2022/index.mjs.map +1 -1
  233. app-ng-runtime/components/input/slider/slider.component.d.ts +1 -0
  234. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +10 -8
  235. app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +9 -8
  236. app-ng-runtime/components/navigation/menu/esm2022/menu.props.mjs +2 -1
  237. app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +2 -2
  238. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +10 -8
  239. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  240. app-ng-runtime/components/navigation/menu/menu.component.d.ts +1 -0
  241. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +121 -13
  242. app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +122 -15
  243. app-ng-runtime/components/navigation/popover/esm2022/popover.props.mjs +2 -1
  244. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +121 -13
  245. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  246. app-ng-runtime/components/navigation/popover/popover.component.d.ts +15 -3
  247. app-ng-runtime/components/page/default/bundles/index.umd.js +2 -1
  248. app-ng-runtime/components/page/default/esm2022/page.props.mjs +4 -3
  249. app-ng-runtime/components/page/default/fesm2022/index.mjs +2 -1
  250. app-ng-runtime/components/page/default/fesm2022/index.mjs.map +1 -1
  251. app-ng-runtime/components/page/footer/bundles/index.umd.js +2 -1
  252. app-ng-runtime/components/page/footer/esm2022/footer.props.mjs +3 -2
  253. app-ng-runtime/components/page/footer/fesm2022/index.mjs +2 -1
  254. app-ng-runtime/components/page/footer/fesm2022/index.mjs.map +1 -1
  255. app-ng-runtime/components/page/header/bundles/index.umd.js +2 -1
  256. app-ng-runtime/components/page/header/esm2022/header.props.mjs +3 -2
  257. app-ng-runtime/components/page/header/fesm2022/index.mjs +2 -1
  258. app-ng-runtime/components/page/header/fesm2022/index.mjs.map +1 -1
  259. app-ng-runtime/components/page/left-panel/bundles/index.umd.js +2 -1
  260. app-ng-runtime/components/page/left-panel/esm2022/left-panel.props.mjs +3 -2
  261. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +2 -1
  262. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  263. app-ng-runtime/components/page/right-panel/bundles/index.umd.js +2 -1
  264. app-ng-runtime/components/page/right-panel/esm2022/right-panel.props.mjs +3 -2
  265. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +2 -1
  266. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  267. app-ng-runtime/components/page/top-nav/bundles/index.umd.js +2 -1
  268. app-ng-runtime/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
  269. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs +2 -1
  270. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  271. app-ng-runtime/core/bundles/index.umd.js +12 -9
  272. app-ng-runtime/core/esm2022/public_api.mjs +2 -2
  273. app-ng-runtime/core/esm2022/utils/build-utils.mjs +7 -7
  274. app-ng-runtime/core/esm2022/utils/utils.mjs +5 -4
  275. app-ng-runtime/core/fesm2022/index.mjs +12 -10
  276. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  277. app-ng-runtime/core/public_api.d.ts +1 -1
  278. app-ng-runtime/core/utils/utils.d.ts +1 -0
  279. app-ng-runtime/locales/moment-timezone/moment-timezone-with-data.js +37 -37
  280. app-ng-runtime/mobile/components/device/barcode-scanner/bundles/index.umd.js +2 -1
  281. app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.props.mjs +3 -2
  282. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs +2 -1
  283. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
  284. app-ng-runtime/mobile/components/device/camera/bundles/index.umd.js +2 -1
  285. app-ng-runtime/mobile/components/device/camera/esm2022/camera.props.mjs +3 -2
  286. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs +2 -1
  287. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
  288. app-ng-runtime/mobile/core/bundles/index.umd.js +18 -2
  289. app-ng-runtime/mobile/core/esm2022/native.xhr.mjs +19 -3
  290. app-ng-runtime/mobile/core/fesm2022/index.mjs +18 -2
  291. app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
  292. app-ng-runtime/package.json +1 -1
  293. app-ng-runtime/runtime/base/bundles/index.umd.js +7 -5
  294. app-ng-runtime/runtime/base/components/app-component/app.component.d.ts +2 -3
  295. app-ng-runtime/runtime/base/esm2022/components/app-component/app.component.mjs +5 -5
  296. app-ng-runtime/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +5 -4
  297. app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +2 -2
  298. app-ng-runtime/runtime/base/fesm2022/index.mjs +7 -5
  299. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  300. app-ng-runtime/runtime/base/guards/can-deactivate-page.guard.d.ts +2 -1
  301. app-ng-runtime/runtime/base/services/i18n.service.d.ts +1 -1
  302. app-ng-runtime/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -1
  303. app-ng-runtime/scripts/datatable/datatable.js +29 -29
  304. app-ng-runtime/scripts/summernote/dist/summernote-lite.min.js +2 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/page/top-nav/src/top-nav.props.ts","../../../../../projects/components/widgets/page/top-nav/src/top-nav.directive.ts","../../../../../projects/components/widgets/page/top-nav/src/top-nav.module.ts","../../../../../projects/components/widgets/page/top-nav/src/index.ts"],"sourcesContent":["import { PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-top-nav',\n new Map(\n [\n ['name', PROP_STRING],\n ['content', PROP_STRING],\n ['hint', PROP_STRING]\n ]\n )\n );\n};\n","import {Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport { provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { registerProps } from './top-nav.props';\n\nconst DEFAULT_CLS = 'app-top-nav';\nconst WIDGET_CONFIG = {widgetType: 'wm-top-nav', hostClass: DEFAULT_CLS};\n\n@Directive({\n selector: '[wmTopNav]',\n providers: [\n provideAsWidgetRef(TopNavDirective)\n ],\n exportAs: 'wmTopNav'\n})\nexport class TopNavDirective extends StylableComponent {\n static initializeProps = registerProps();\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n styler(this.nativeElement, this);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { TopNavDirective } from './top-nav.directive';\n\nconst components = [\n TopNavDirective\n];\n\n@NgModule({\n imports: [\n CommonModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class TopNavModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;AAEO,MAAM,aAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,YAAY,EACZ,IAAI,GAAG,CACH;QACI,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,SAAS,EAAE,WAAW,CAAC;QACxB,CAAC,MAAM,EAAE,WAAW,CAAC;AACxB,KAAA,CACJ,CACJ,CAAC;AACN,CAAC;;ACRD,MAAM,WAAW,GAAG,aAAa,CAAC;AAClC,MAAM,aAAa,GAAG,EAAC,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAC,CAAC;AASnE,MAAO,eAAgB,SAAQ,iBAAiB,CAAA;AAC3C,IAAA,SAAA,IAAA,CAAA,eAAe,GAAG,aAAa,EAAhB,CAAmB,EAAA;IAEzC,WAAY,CAAA,GAAa,EAA0C,eAAoB,EAAA;AACnF,QAAA,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;AAE3C,QAAA,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;KACpC;AAPQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,uBAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,eAAe,0DAGW,kBAAkB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;AAH5C,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,IAAA,EAAA,eAAe,EALb,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,UAAA,EAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;gBACP,kBAAkB,CAAC,eAAe,CAAC;AACtC,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAGQ,eAAe,EAAA,CAAA;cAP3B,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,YAAY;AACtB,gBAAA,SAAS,EAAE;AACP,oBAAA,kBAAkB,CAAiB,eAAA,CAAA;AACtC,iBAAA;AACD,gBAAA,QAAQ,EAAE,UAAU;AACvB,aAAA,CAAA;;sBAI+B,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;;;ACXpE,MAAM,UAAU,GAAG;IACf,eAAe;CAClB,CAAC;MAUW,YAAY,CAAA;6EAAZ,YAAY,GAAA,CAAA,EAAA,CAAA,EAAA;mEAAZ,YAAY,EAAA,CAAA,CAAA,EAAA;uEANjB,YAAY;YACZ,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAKb,YAAY,EAAA,CAAA;cARxB,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACN,gBAAA,OAAO,EAAE;oBACL,YAAY;oBACZ,kBAAkB;AACrB,iBAAA;AACD,gBAAA,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC;AAC7B,gBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AAC3B,aAAA,CAAA;;wFACY,YAAY,EAAA,EAAA,YAAA,EAAA,CAXrB,eAAe,CAAA,EAAA,OAAA,EAAA,CAKX,YAAY;AACZ,QAAA,kBAAkB,aANtB,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACRnB;;AAEG;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/page/top-nav/src/top-nav.props.ts","../../../../../projects/components/widgets/page/top-nav/src/top-nav.directive.ts","../../../../../projects/components/widgets/page/top-nav/src/top-nav.module.ts","../../../../../projects/components/widgets/page/top-nav/src/index.ts"],"sourcesContent":["import {PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-top-nav',\n new Map(\n [\n ['name', PROP_STRING],\n ['content', PROP_STRING],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING]\n ]\n )\n );\n};\n","import {Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport { provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { registerProps } from './top-nav.props';\n\nconst DEFAULT_CLS = 'app-top-nav';\nconst WIDGET_CONFIG = {widgetType: 'wm-top-nav', hostClass: DEFAULT_CLS};\n\n@Directive({\n selector: '[wmTopNav]',\n providers: [\n provideAsWidgetRef(TopNavDirective)\n ],\n exportAs: 'wmTopNav'\n})\nexport class TopNavDirective extends StylableComponent {\n static initializeProps = registerProps();\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n styler(this.nativeElement, this);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { TopNavDirective } from './top-nav.directive';\n\nconst components = [\n TopNavDirective\n];\n\n@NgModule({\n imports: [\n CommonModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class TopNavModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;AAEO,MAAM,aAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,YAAY,EACZ,IAAI,GAAG,CACH;QACI,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,SAAS,EAAE,WAAW,CAAC;QACxB,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,WAAW,EAAE,WAAW,CAAC;AAC7B,KAAA,CACJ,CACJ,CAAC;AACN,CAAC;;ACTD,MAAM,WAAW,GAAG,aAAa,CAAC;AAClC,MAAM,aAAa,GAAG,EAAC,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAC,CAAC;AASnE,MAAO,eAAgB,SAAQ,iBAAiB,CAAA;AAC3C,IAAA,SAAA,IAAA,CAAA,eAAe,GAAG,aAAa,EAAhB,CAAmB,EAAA;IAEzC,WAAY,CAAA,GAAa,EAA0C,eAAoB,EAAA;AACnF,QAAA,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;AAE3C,QAAA,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;KACpC;AAPQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,uBAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,eAAe,0DAGW,kBAAkB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;AAH5C,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,IAAA,EAAA,eAAe,EALb,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,UAAA,EAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;gBACP,kBAAkB,CAAC,eAAe,CAAC;AACtC,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAGQ,eAAe,EAAA,CAAA;cAP3B,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,YAAY;AACtB,gBAAA,SAAS,EAAE;AACP,oBAAA,kBAAkB,CAAiB,eAAA,CAAA;AACtC,iBAAA;AACD,gBAAA,QAAQ,EAAE,UAAU;AACvB,aAAA,CAAA;;sBAI+B,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;;;ACXpE,MAAM,UAAU,GAAG;IACf,eAAe;CAClB,CAAC;MAUW,YAAY,CAAA;6EAAZ,YAAY,GAAA,CAAA,EAAA,CAAA,EAAA;mEAAZ,YAAY,EAAA,CAAA,CAAA,EAAA;uEANjB,YAAY;YACZ,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAKb,YAAY,EAAA,CAAA;cARxB,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACN,gBAAA,OAAO,EAAE;oBACL,YAAY;oBACZ,kBAAkB;AACrB,iBAAA;AACD,gBAAA,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC;AAC7B,gBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AAC3B,aAAA,CAAA;;wFACY,YAAY,EAAA,EAAA,YAAA,EAAA,CAXrB,eAAe,CAAA,EAAA,OAAA,EAAA,CAKX,YAAY;AACZ,QAAA,kBAAkB,aANtB,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACRnB;;AAEG;;;;"}
@@ -126,7 +126,7 @@
126
126
  tmpl = `<ul role="group" wmCheckboxset ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} ${showTmpl}></ul>`;
127
127
  break;
128
128
  case exports.FormWidgetType.CHIPS:
129
- tmpl = `<ul wmChips role="input" debouncetime="${attrs.get('debouncetime')}" ${innerTmpl} ${showTmpl}></ul>`;
129
+ tmpl = `<ul wmChips debouncetime="${attrs.get('debouncetime')}" ${innerTmpl} ${showTmpl}></ul>`;
130
130
  break;
131
131
  case exports.FormWidgetType.COLORPICKER:
132
132
  tmpl = `<div wmColorPicker ${attrs.get('required') === 'true' ? 'required=true' : ''} ${innerTmpl} ${showTmpl}></div>`;
@@ -144,10 +144,10 @@
144
144
  tmpl = `<div wmDateTime ${attrs.get('required') === 'true' ? 'required=true' : ''} dataentrymode="${attrs.get('dataentrymode')}" ${innerTmpl} ${showTmpl}></div>`;
145
145
  break;
146
146
  case exports.FormWidgetType.NUMBER:
147
- tmpl = `<div wmNumber ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} type="number" aria-label="Only numbers" ${updateOnTmpl} ${showTmpl}></div>`;
147
+ tmpl = `<div wmNumber ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} type="number" ${updateOnTmpl} ${showTmpl}></div>`;
148
148
  break;
149
149
  case exports.FormWidgetType.PASSWORD:
150
- tmpl = `<wm-input ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} type="password" aria-label="Enter password" ${updateOnTmpl} ${showTmpl}></wm-input>`;
150
+ tmpl = `<wm-input ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} type="password" ${updateOnTmpl} ${showTmpl}></wm-input>`;
151
151
  break;
152
152
  case exports.FormWidgetType.RADIOSET:
153
153
  tmpl = `<ul role="radiogroup" wmRadioset ${innerTmpl} ${showTmpl}></ul>`;
@@ -162,7 +162,7 @@
162
162
  tmpl = `<wm-select ${attrs.get('required') === 'true' ? 'required=true' : ''} ${innerTmpl} ${showTmpl}></wm-select>`;
163
163
  break;
164
164
  case exports.FormWidgetType.TOGGLE:
165
- tmpl = `<div wmCheckbox ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} type="toggle" role="checkbox" aria-label="Toggle button" ${showTmpl}></div>`;
165
+ tmpl = `<div wmCheckbox ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} type="toggle" ${showTmpl}></div>`;
166
166
  break;
167
167
  case exports.FormWidgetType.SLIDER:
168
168
  tmpl = `<div wmSlider ${innerTmpl} ${showTmpl}></div>`;
@@ -175,13 +175,13 @@
175
175
  tmpl = `<wm-input ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} type="${attrs.get(inputType) || 'text'}" ${updateOnTmpl} ${showTmpl}></wm-input>`;
176
176
  break;
177
177
  case exports.FormWidgetType.TEXTAREA:
178
- tmpl = `<wm-textarea ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} role="textbox" ${updateOnTmpl} ${showTmpl}></wm-textarea>`;
178
+ tmpl = `<wm-textarea ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} ${updateOnTmpl} ${showTmpl}></wm-textarea>`;
179
179
  break;
180
180
  case exports.FormWidgetType.TIME:
181
181
  tmpl = `<div wmTime ${attrs.get('required') === 'true' ? 'required=true' : ''} dataentrymode="${attrs.get('dataentrymode')}" ${innerTmpl} ${showTmpl}></div>`;
182
182
  break;
183
183
  case exports.FormWidgetType.TIMESTAMP:
184
- tmpl = `<div wmDateTime ${attrs.get('required') === 'true' ? 'required=true' : ''} dataentrymode="${attrs.get('dataentrymode')}" ${innerTmpl} role="input" ${showTmpl}></div>`;
184
+ tmpl = `<div wmDateTime ${attrs.get('required') === 'true' ? 'required=true' : ''} dataentrymode="${attrs.get('dataentrymode')}" ${innerTmpl} ${showTmpl}></div>`;
185
185
  break;
186
186
  case exports.FormWidgetType.UPLOAD:
187
187
  const counter = options.counter;
@@ -2403,7 +2403,6 @@
2403
2403
  IPOD: /iPod/i,
2404
2404
  IPAD: /iPad/i,
2405
2405
  MAC: /Mac/i,
2406
- MACINTEL: /MacIntel/i,
2407
2406
  ANDROID_TABLET: /android|android 3.0|xoom|sch-i800|playbook|tablet|kindle/i,
2408
2407
  MOBILE: /Mobile/i,
2409
2408
  WINDOWS: /Windows Phone/i,
@@ -2455,9 +2454,10 @@
2455
2454
  const isIphone = () => REGEX.IPHONE.test(userAgent);
2456
2455
  const isIpod = () => REGEX.IPOD.test(userAgent);
2457
2456
  const isIpad = () => {
2458
- return REGEX.IPAD.test(userAgent) || (window.navigator.maxTouchPoints && window.navigator.maxTouchPoints > 2 && (REGEX.MAC.test(window.navigator.platform) || REGEX.MACINTEL.test(window.navigator.platform)));
2457
+ return REGEX.IPAD.test(userAgent) || (window.navigator.maxTouchPoints && window.navigator.maxTouchPoints > 2 && REGEX.MAC.test(window.navigator.platform));
2459
2458
  };
2460
2459
  const isIos = () => isIphone() || isIpod() || isIpad();
2460
+ const isSafari = () => navigator.userAgent.indexOf('Safari') !== -1 && navigator.userAgent.indexOf('Chrome') === -1;
2461
2461
  const isLargeTabletLandscape = (landScapeWidth, landScapeHeight) => {
2462
2462
  const width = landScapeWidth || '1366px';
2463
2463
  const height = landScapeHeight || '1024px';
@@ -2679,7 +2679,7 @@
2679
2679
  if (format === 'UTC') {
2680
2680
  return new Date(dateObj).toISOString();
2681
2681
  }
2682
- if (timeZone) {
2682
+ if (timeZone && timeZone !== moment.defaultZone?.name) {
2683
2683
  const momentFormat = format.replaceAll('y', 'Y').replaceAll('d', 'D').replace('a', 'A');
2684
2684
  if (isIntervalDateTime) { // dates which are of type time widget (value is hh:mm:ss) but returned as date string from time comp
2685
2685
  return moment(dateObj).format(momentFormat);
@@ -3071,6 +3071,7 @@
3071
3071
  // compareBy can be 'id' or 'id1, id2' or 'id1, id2:id3'
3072
3072
  // Split the compareby comma separated values
3073
3073
  let _compareBy = lodashEs.isArray(compareBy) ? compareBy : lodashEs.split(compareBy, ',');
3074
+ //@ts-ignore
3074
3075
  _compareBy = lodashEs.map(_compareBy, lodashEs.trim);
3075
3076
  return lodashEs.isEqualWith(obj1, obj2, function (o1, o2) {
3076
3077
  return lodashEs.every(_compareBy, function (cb) {
@@ -3925,6 +3926,7 @@
3925
3926
  isNumberType: isNumberType,
3926
3927
  isObject: isObject,
3927
3928
  isPageable: isPageable,
3929
+ isSafari: isSafari,
3928
3930
  isTablet: isTablet,
3929
3931
  isValidWebURL: isValidWebURL,
3930
3932
  isVideoFile: isVideoFile,
@@ -5320,6 +5322,7 @@
5320
5322
  exports.isNumberType = isNumberType;
5321
5323
  exports.isObject = isObject;
5322
5324
  exports.isPageable = isPageable;
5325
+ exports.isSafari = isSafari;
5323
5326
  exports.isValidWebURL = isValidWebURL;
5324
5327
  exports.isVideoFile = isVideoFile;
5325
5328
  exports.loadScript = loadScript;
@@ -7,7 +7,7 @@ export { appendNode, insertBefore, insertAfter, removeNode, removeClass, addClas
7
7
  export * from './enums/enums';
8
8
  export * from './utils/event-notifier';
9
9
  export { $parseExpr, $parseEvent, registerFnByExpr, setPipeProvider, getFnByExpr, getFnForBindExpr, getFnForEventExpr } from './utils/expression-parser';
10
- export { isDefined, isObject, toBoolean, isIE, isAndroid, isAndroidTablet, isIphone, isIpod, isIpad, isIos, isLargeTabletLandscape, isLargeTabletPortrait, isMobile, isMobileApp, getAndroidVersion, isKitkatDevice, encodeUrl, encodeUrlParams, initCaps, spaceSeparate, replaceAt, periodSeparate, prettifyLabel, deHyphenate, prettifyLabels, isInsecureContentRequest, stringStartsWith, getEvaluatedExprValue, isImageFile, isAudioFile, isVideoFile, isValidWebURL, getResourceURL, triggerFn, hasOffsetStr, getFormattedDate, getDateObj, addEventListenerOnElement, getClonedObject, getFiles, generateGUId, validateAccessRoles, getValidJSON, xmlToJson, findValueOf, extractType, isNumberType, isEmptyObject, scrollToElement, isElementInViewport, isPageable, replace, isDateTimeType, getValidDateObject, getNativeDateObject, getBlob, isEqualWithFields, loadStyleSheet, loadStyleSheets, loadScript, loadScripts, _WM_APP_PROJECT, setSessionStorageItem, getSessionStorageItem, noop, convertToBlob, hasCordova, AppConstants, openLink, fetchContent, toPromise, retryIfFails, getAbortableDefer, createCSSRule, getUrlParams, getMomentLocaleObject, getRouteNameFromLink, isAppleProduct, defer, executePromiseChain, isDataSourceEqual, validateDataSourceCtx, processFilterExpBindNode, extendProto, removeExtraSlashes, getDisplayDateTimeFormat, addForIdAttributes, adjustContainerPosition, adjustContainerRightEdges, setTranslation3dPosition, getWebkitTraslationMatrix, closePopover, detectChanges, triggerItemAction, getDatasourceFromExpr, extractCurrentItemExpr, findRootContainer, VALIDATOR, transformFileURI, appendScriptToHead, getAppSetting, setListClass, findParent, getNavClass, getSheetPositionClass } from './utils/utils';
10
+ export { isDefined, isObject, toBoolean, isIE, isAndroid, isAndroidTablet, isIphone, isIpod, isIpad, isIos, isSafari, isLargeTabletLandscape, isLargeTabletPortrait, isMobile, isMobileApp, getAndroidVersion, isKitkatDevice, encodeUrl, encodeUrlParams, initCaps, spaceSeparate, replaceAt, periodSeparate, prettifyLabel, deHyphenate, prettifyLabels, isInsecureContentRequest, stringStartsWith, getEvaluatedExprValue, isImageFile, isAudioFile, isVideoFile, isValidWebURL, getResourceURL, triggerFn, hasOffsetStr, getFormattedDate, getDateObj, addEventListenerOnElement, getClonedObject, getFiles, generateGUId, validateAccessRoles, getValidJSON, xmlToJson, findValueOf, extractType, isNumberType, isEmptyObject, scrollToElement, isElementInViewport, isPageable, replace, isDateTimeType, getValidDateObject, getNativeDateObject, getBlob, isEqualWithFields, loadStyleSheet, loadStyleSheets, loadScript, loadScripts, _WM_APP_PROJECT, setSessionStorageItem, getSessionStorageItem, noop, convertToBlob, hasCordova, AppConstants, openLink, fetchContent, toPromise, retryIfFails, getAbortableDefer, createCSSRule, getUrlParams, getMomentLocaleObject, getRouteNameFromLink, isAppleProduct, defer, executePromiseChain, isDataSourceEqual, validateDataSourceCtx, processFilterExpBindNode, extendProto, removeExtraSlashes, getDisplayDateTimeFormat, addForIdAttributes, adjustContainerPosition, adjustContainerRightEdges, setTranslation3dPosition, getWebkitTraslationMatrix, closePopover, detectChanges, triggerItemAction, getDatasourceFromExpr, extractCurrentItemExpr, findRootContainer, VALIDATOR, transformFileURI, appendScriptToHead, getAppSetting, setListClass, findParent, getNavClass, getSheetPositionClass } from './utils/utils';
11
11
  export { FIRST_TIME_WATCH, isFirstTimeChange, debounce, muteWatchers, unMuteWatchers, $watch, $unwatch, setNgZone, setAppRef, isChangeFromWatch, resetChangeFromWatch, $invokeWatchers, $appDigest } from './utils/watcher';
12
12
  export * from './utils/id-generator';
13
13
  export * from './types/types';
@@ -24,4 +24,4 @@ export { PaginationService } from './services/pagination.service';
24
24
  export * from './core.module';
25
25
  export * from './utils/wm-project-properties';
26
26
  export * from './utils/lru-cache';
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsT0FBTyxFQUNILFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFVBQVUsRUFDVixXQUFXLEVBQ1gsUUFBUSxFQUNSLFdBQVcsRUFDWCxXQUFXLEVBQ1gsTUFBTSxFQUNOLGFBQWEsRUFDYixXQUFXLEVBQ1gsT0FBTyxFQUNQLE9BQU8sRUFDUCxVQUFVLEVBQ1YsYUFBYSxFQUNiLFdBQVcsRUFDZCxNQUFNLGFBQWEsQ0FBQztBQUNyQixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLE9BQU8sRUFFSCxVQUFVLEVBQ1YsV0FBVyxFQUNYLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsV0FBVyxFQUNYLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDcEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBRUgsU0FBUyxFQUNULFFBQVEsRUFDUixTQUFTLEVBQ1QsSUFBSSxFQUNKLFNBQVMsRUFDVCxlQUFlLEVBQ2YsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsUUFBUSxFQUNSLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsY0FBYyxFQUNkLFNBQVMsRUFDVCxlQUFlLEVBQ2YsUUFBUSxFQUNSLGFBQWEsRUFDYixTQUFTLEVBQ1QsY0FBYyxFQUNkLGFBQWEsRUFDYixXQUFXLEVBQ1gsY0FBYyxFQUNkLHdCQUF3QixFQUN4QixnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCLFdBQVcsRUFDWCxXQUFXLEVBQ1gsV0FBVyxFQUNYLGFBQWEsRUFDYixjQUFjLEVBQ2QsU0FBUyxFQUNULFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLHlCQUF5QixFQUN6QixlQUFlLEVBQ2YsUUFBUSxFQUNSLFlBQVksRUFDWixtQkFBbUIsRUFDbkIsWUFBWSxFQUNaLFNBQVMsRUFDVCxXQUFXLEVBQ1gsV0FBVyxFQUNYLFlBQVksRUFDWixhQUFhLEVBQ2IsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixVQUFVLEVBQ1YsT0FBTyxFQUNQLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLE9BQU8sRUFDUCxpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGVBQWUsRUFDZixVQUFVLEVBQ1YsV0FBVyxFQUNYLGVBQWUsRUFDZixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLElBQUksRUFDSixhQUFhLEVBQ2IsVUFBVSxFQUNWLFlBQVksRUFDWixRQUFRLEVBQ1IsWUFBWSxFQUNaLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixZQUFZLEVBQ1oscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNwQixjQUFjLEVBQ2QsS0FBSyxFQUNMLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIscUJBQXFCLEVBQ3JCLHdCQUF3QixFQUN4QixXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4QixrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6Qix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLFlBQVksRUFDWixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxxQkFBcUIsRUFDeEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsUUFBUSxFQUNSLFlBQVksRUFDWixjQUFjLEVBQ2QsTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBQ1QsU0FBUyxFQUNULGlCQUFpQixFQUNqQixvQkFBb0IsRUFDcEIsZUFBZSxFQUNmLFVBQVUsRUFDYixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxlQUFlLENBQUM7QUFDOUIsT0FBTyxFQUFFLFFBQVEsRUFBaUIsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgY29yZVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMvYnVpbGQtdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMvY3VycmVuY3ktY29uc3RhbnRzJztcbmV4cG9ydCB7XG4gICAgYXBwZW5kTm9kZSxcbiAgICBpbnNlcnRCZWZvcmUsXG4gICAgaW5zZXJ0QWZ0ZXIsXG4gICAgcmVtb3ZlTm9kZSxcbiAgICByZW1vdmVDbGFzcyxcbiAgICBhZGRDbGFzcyxcbiAgICBzd2l0Y2hDbGFzcyxcbiAgICB0b2dnbGVDbGFzcyxcbiAgICBzZXRDU1MsXG4gICAgc2V0Q1NTRnJvbU9iaixcbiAgICBzZXRQcm9wZXJ0eSxcbiAgICBzZXRBdHRyLFxuICAgIHNldEh0bWwsXG4gICAgcmVtb3ZlQXR0cixcbiAgICBjcmVhdGVFbGVtZW50LFxuICAgIHRvRGltZW5zaW9uXG59IGZyb20gJy4vdXRpbHMvZG9tJztcbmV4cG9ydCAqIGZyb20gJy4vZW51bXMvZW51bXMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscy9ldmVudC1ub3RpZmllcic7XG5leHBvcnQge1xuICAgIFBhcnNlRXhwclJlc3VsdCxcbiAgICAkcGFyc2VFeHByLFxuICAgICRwYXJzZUV2ZW50LFxuICAgIHJlZ2lzdGVyRm5CeUV4cHIsXG4gICAgc2V0UGlwZVByb3ZpZGVyLFxuICAgIGdldEZuQnlFeHByLFxuICAgIGdldEZuRm9yQmluZEV4cHIsXG4gICAgZ2V0Rm5Gb3JFdmVudEV4cHJcbn0gZnJvbSAnLi91dGlscy9leHByZXNzaW9uLXBhcnNlcic7XG5leHBvcnQge1xuICAgIEVWRU5UX0xJRkUsXG4gICAgaXNEZWZpbmVkLFxuICAgIGlzT2JqZWN0LFxuICAgIHRvQm9vbGVhbixcbiAgICBpc0lFLFxuICAgIGlzQW5kcm9pZCxcbiAgICBpc0FuZHJvaWRUYWJsZXQsXG4gICAgaXNJcGhvbmUsXG4gICAgaXNJcG9kLFxuICAgIGlzSXBhZCxcbiAgICBpc0lvcyxcbiAgICBpc0xhcmdlVGFibGV0TGFuZHNjYXBlLFxuICAgIGlzTGFyZ2VUYWJsZXRQb3J0cmFpdCxcbiAgICBpc01vYmlsZSxcbiAgICBpc01vYmlsZUFwcCxcbiAgICBnZXRBbmRyb2lkVmVyc2lvbixcbiAgICBpc0tpdGthdERldmljZSxcbiAgICBlbmNvZGVVcmwsXG4gICAgZW5jb2RlVXJsUGFyYW1zLFxuICAgIGluaXRDYXBzLFxuICAgIHNwYWNlU2VwYXJhdGUsXG4gICAgcmVwbGFjZUF0LFxuICAgIHBlcmlvZFNlcGFyYXRlLFxuICAgIHByZXR0aWZ5TGFiZWwsXG4gICAgZGVIeXBoZW5hdGUsXG4gICAgcHJldHRpZnlMYWJlbHMsXG4gICAgaXNJbnNlY3VyZUNvbnRlbnRSZXF1ZXN0LFxuICAgIHN0cmluZ1N0YXJ0c1dpdGgsXG4gICAgZ2V0RXZhbHVhdGVkRXhwclZhbHVlLFxuICAgIGlzSW1hZ2VGaWxlLFxuICAgIGlzQXVkaW9GaWxlLFxuICAgIGlzVmlkZW9GaWxlLFxuICAgIGlzVmFsaWRXZWJVUkwsXG4gICAgZ2V0UmVzb3VyY2VVUkwsXG4gICAgdHJpZ2dlckZuLFxuICAgIGhhc09mZnNldFN0cixcbiAgICBnZXRGb3JtYXR0ZWREYXRlLFxuICAgIGdldERhdGVPYmosXG4gICAgYWRkRXZlbnRMaXN0ZW5lck9uRWxlbWVudCxcbiAgICBnZXRDbG9uZWRPYmplY3QsXG4gICAgZ2V0RmlsZXMsXG4gICAgZ2VuZXJhdGVHVUlkLFxuICAgIHZhbGlkYXRlQWNjZXNzUm9sZXMsXG4gICAgZ2V0VmFsaWRKU09OLFxuICAgIHhtbFRvSnNvbixcbiAgICBmaW5kVmFsdWVPZixcbiAgICBleHRyYWN0VHlwZSxcbiAgICBpc051bWJlclR5cGUsXG4gICAgaXNFbXB0eU9iamVjdCxcbiAgICBzY3JvbGxUb0VsZW1lbnQsXG4gICAgaXNFbGVtZW50SW5WaWV3cG9ydCxcbiAgICBpc1BhZ2VhYmxlLFxuICAgIHJlcGxhY2UsXG4gICAgaXNEYXRlVGltZVR5cGUsXG4gICAgZ2V0VmFsaWREYXRlT2JqZWN0LFxuICAgIGdldE5hdGl2ZURhdGVPYmplY3QsXG4gICAgZ2V0QmxvYixcbiAgICBpc0VxdWFsV2l0aEZpZWxkcyxcbiAgICBsb2FkU3R5bGVTaGVldCxcbiAgICBsb2FkU3R5bGVTaGVldHMsXG4gICAgbG9hZFNjcmlwdCxcbiAgICBsb2FkU2NyaXB0cyxcbiAgICBfV01fQVBQX1BST0pFQ1QsXG4gICAgc2V0U2Vzc2lvblN0b3JhZ2VJdGVtLFxuICAgIGdldFNlc3Npb25TdG9yYWdlSXRlbSxcbiAgICBub29wLFxuICAgIGNvbnZlcnRUb0Jsb2IsXG4gICAgaGFzQ29yZG92YSxcbiAgICBBcHBDb25zdGFudHMsXG4gICAgb3BlbkxpbmssXG4gICAgZmV0Y2hDb250ZW50LFxuICAgIHRvUHJvbWlzZSxcbiAgICByZXRyeUlmRmFpbHMsXG4gICAgZ2V0QWJvcnRhYmxlRGVmZXIsXG4gICAgY3JlYXRlQ1NTUnVsZSxcbiAgICBnZXRVcmxQYXJhbXMsXG4gICAgZ2V0TW9tZW50TG9jYWxlT2JqZWN0LFxuICAgIGdldFJvdXRlTmFtZUZyb21MaW5rLFxuICAgIGlzQXBwbGVQcm9kdWN0LFxuICAgIGRlZmVyLFxuICAgIGV4ZWN1dGVQcm9taXNlQ2hhaW4sXG4gICAgaXNEYXRhU291cmNlRXF1YWwsXG4gICAgdmFsaWRhdGVEYXRhU291cmNlQ3R4LFxuICAgIHByb2Nlc3NGaWx0ZXJFeHBCaW5kTm9kZSxcbiAgICBleHRlbmRQcm90byxcbiAgICByZW1vdmVFeHRyYVNsYXNoZXMsXG4gICAgZ2V0RGlzcGxheURhdGVUaW1lRm9ybWF0LFxuICAgIGFkZEZvcklkQXR0cmlidXRlcyxcbiAgICBhZGp1c3RDb250YWluZXJQb3NpdGlvbixcbiAgICBhZGp1c3RDb250YWluZXJSaWdodEVkZ2VzLFxuICAgIHNldFRyYW5zbGF0aW9uM2RQb3NpdGlvbixcbiAgICBnZXRXZWJraXRUcmFzbGF0aW9uTWF0cml4LFxuICAgIGNsb3NlUG9wb3ZlcixcbiAgICBkZXRlY3RDaGFuZ2VzLFxuICAgIHRyaWdnZXJJdGVtQWN0aW9uLFxuICAgIGdldERhdGFzb3VyY2VGcm9tRXhwcixcbiAgICBleHRyYWN0Q3VycmVudEl0ZW1FeHByLFxuICAgIGZpbmRSb290Q29udGFpbmVyLFxuICAgIFZBTElEQVRPUixcbiAgICB0cmFuc2Zvcm1GaWxlVVJJLFxuICAgIGFwcGVuZFNjcmlwdFRvSGVhZCxcbiAgICBnZXRBcHBTZXR0aW5nLFxuICAgIHNldExpc3RDbGFzcyxcbiAgICBmaW5kUGFyZW50LFxuICAgIGdldE5hdkNsYXNzLFxuICAgIGdldFNoZWV0UG9zaXRpb25DbGFzc1xufSBmcm9tICcuL3V0aWxzL3V0aWxzJztcbmV4cG9ydCB7XG4gICAgRklSU1RfVElNRV9XQVRDSCxcbiAgICBpc0ZpcnN0VGltZUNoYW5nZSxcbiAgICBkZWJvdW5jZSxcbiAgICBtdXRlV2F0Y2hlcnMsXG4gICAgdW5NdXRlV2F0Y2hlcnMsXG4gICAgJHdhdGNoLFxuICAgICR1bndhdGNoLFxuICAgIHNldE5nWm9uZSxcbiAgICBzZXRBcHBSZWYsXG4gICAgaXNDaGFuZ2VGcm9tV2F0Y2gsXG4gICAgcmVzZXRDaGFuZ2VGcm9tV2F0Y2gsXG4gICAgJGludm9rZVdhdGNoZXJzLFxuICAgICRhcHBEaWdlc3Rcbn0gZnJvbSAnLi91dGlscy93YXRjaGVyJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMvaWQtZ2VuZXJhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMvdHlwZXMnO1xuZXhwb3J0IHsgVmlld3BvcnQsIFZpZXdwb3J0RXZlbnQgfSBmcm9tICcuL3NlcnZpY2VzL3ZpZXdwb3J0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9jb25zdGFudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvdXRpbHMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2ZpZWxkLXR5cGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2ZpZWxkLXdpZGdldC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvc2NyaXB0LWxvYWRlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvdXNlci1jdXN0b20tcGlwZS1tYW5hZ2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9jdXN0b20taWNvbnMtbG9hZGVyLnNlcnZpY2UnO1xuZXhwb3J0IHsgU3RhdGVQZXJzaXN0ZW5jZSB9IGZyb20gJy4vc2VydmljZXMvc3RhdGUtcGVyc2lzdGVuY2Uuc2VydmljZSc7XG5leHBvcnQgeyBQYWdpbmF0aW9uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcGFnaW5hdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscy93bS1wcm9qZWN0LXByb3BlcnRpZXMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscy9scnUtY2FjaGUnO1xuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsT0FBTyxFQUNILFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFVBQVUsRUFDVixXQUFXLEVBQ1gsUUFBUSxFQUNSLFdBQVcsRUFDWCxXQUFXLEVBQ1gsTUFBTSxFQUNOLGFBQWEsRUFDYixXQUFXLEVBQ1gsT0FBTyxFQUNQLE9BQU8sRUFDUCxVQUFVLEVBQ1YsYUFBYSxFQUNiLFdBQVcsRUFDZCxNQUFNLGFBQWEsQ0FBQztBQUNyQixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLE9BQU8sRUFFSCxVQUFVLEVBQ1YsV0FBVyxFQUNYLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsV0FBVyxFQUNYLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDcEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBRUgsU0FBUyxFQUNULFFBQVEsRUFDUixTQUFTLEVBQ1QsSUFBSSxFQUNKLFNBQVMsRUFDVCxlQUFlLEVBQ2YsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLFFBQVEsRUFDUixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFFBQVEsRUFDUixhQUFhLEVBQ2IsU0FBUyxFQUNULGNBQWMsRUFDZCxhQUFhLEVBQ2IsV0FBVyxFQUNYLGNBQWMsRUFDZCx3QkFBd0IsRUFDeEIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixXQUFXLEVBQ1gsV0FBVyxFQUNYLFdBQVcsRUFDWCxhQUFhLEVBQ2IsY0FBYyxFQUNkLFNBQVMsRUFDVCxZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLFVBQVUsRUFDVix5QkFBeUIsRUFDekIsZUFBZSxFQUNmLFFBQVEsRUFDUixZQUFZLEVBQ1osbUJBQW1CLEVBQ25CLFlBQVksRUFDWixTQUFTLEVBQ1QsV0FBVyxFQUNYLFdBQVcsRUFDWCxZQUFZLEVBQ1osYUFBYSxFQUNiLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsVUFBVSxFQUNWLE9BQU8sRUFDUCxjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixPQUFPLEVBQ1AsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFdBQVcsRUFDWCxlQUFlLEVBQ2YscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQixJQUFJLEVBQ0osYUFBYSxFQUNiLFVBQVUsRUFDVixZQUFZLEVBQ1osUUFBUSxFQUNSLFlBQVksRUFDWixTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsWUFBWSxFQUNaLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIsY0FBYyxFQUNkLEtBQUssRUFDTCxtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsV0FBVyxFQUNYLGtCQUFrQixFQUNsQix3QkFBd0IsRUFDeEIsa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN2Qix5QkFBeUIsRUFDekIsd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6QixZQUFZLEVBQ1osYUFBYSxFQUNiLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gscUJBQXFCLEVBQ3hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixZQUFZLEVBQ1osY0FBYyxFQUNkLE1BQU0sRUFDTixRQUFRLEVBQ1IsU0FBUyxFQUNULFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixVQUFVLEVBQ2IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxRQUFRLEVBQWlCLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGNvcmVcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3V0aWxzL2J1aWxkLXV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzL2N1cnJlbmN5LWNvbnN0YW50cyc7XG5leHBvcnQge1xuICAgIGFwcGVuZE5vZGUsXG4gICAgaW5zZXJ0QmVmb3JlLFxuICAgIGluc2VydEFmdGVyLFxuICAgIHJlbW92ZU5vZGUsXG4gICAgcmVtb3ZlQ2xhc3MsXG4gICAgYWRkQ2xhc3MsXG4gICAgc3dpdGNoQ2xhc3MsXG4gICAgdG9nZ2xlQ2xhc3MsXG4gICAgc2V0Q1NTLFxuICAgIHNldENTU0Zyb21PYmosXG4gICAgc2V0UHJvcGVydHksXG4gICAgc2V0QXR0cixcbiAgICBzZXRIdG1sLFxuICAgIHJlbW92ZUF0dHIsXG4gICAgY3JlYXRlRWxlbWVudCxcbiAgICB0b0RpbWVuc2lvblxufSBmcm9tICcuL3V0aWxzL2RvbSc7XG5leHBvcnQgKiBmcm9tICcuL2VudW1zL2VudW1zJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMvZXZlbnQtbm90aWZpZXInO1xuZXhwb3J0IHtcbiAgICBQYXJzZUV4cHJSZXN1bHQsXG4gICAgJHBhcnNlRXhwcixcbiAgICAkcGFyc2VFdmVudCxcbiAgICByZWdpc3RlckZuQnlFeHByLFxuICAgIHNldFBpcGVQcm92aWRlcixcbiAgICBnZXRGbkJ5RXhwcixcbiAgICBnZXRGbkZvckJpbmRFeHByLFxuICAgIGdldEZuRm9yRXZlbnRFeHByXG59IGZyb20gJy4vdXRpbHMvZXhwcmVzc2lvbi1wYXJzZXInO1xuZXhwb3J0IHtcbiAgICBFVkVOVF9MSUZFLFxuICAgIGlzRGVmaW5lZCxcbiAgICBpc09iamVjdCxcbiAgICB0b0Jvb2xlYW4sXG4gICAgaXNJRSxcbiAgICBpc0FuZHJvaWQsXG4gICAgaXNBbmRyb2lkVGFibGV0LFxuICAgIGlzSXBob25lLFxuICAgIGlzSXBvZCxcbiAgICBpc0lwYWQsXG4gICAgaXNJb3MsXG4gICAgaXNTYWZhcmksXG4gICAgaXNMYXJnZVRhYmxldExhbmRzY2FwZSxcbiAgICBpc0xhcmdlVGFibGV0UG9ydHJhaXQsXG4gICAgaXNNb2JpbGUsXG4gICAgaXNNb2JpbGVBcHAsXG4gICAgZ2V0QW5kcm9pZFZlcnNpb24sXG4gICAgaXNLaXRrYXREZXZpY2UsXG4gICAgZW5jb2RlVXJsLFxuICAgIGVuY29kZVVybFBhcmFtcyxcbiAgICBpbml0Q2FwcyxcbiAgICBzcGFjZVNlcGFyYXRlLFxuICAgIHJlcGxhY2VBdCxcbiAgICBwZXJpb2RTZXBhcmF0ZSxcbiAgICBwcmV0dGlmeUxhYmVsLFxuICAgIGRlSHlwaGVuYXRlLFxuICAgIHByZXR0aWZ5TGFiZWxzLFxuICAgIGlzSW5zZWN1cmVDb250ZW50UmVxdWVzdCxcbiAgICBzdHJpbmdTdGFydHNXaXRoLFxuICAgIGdldEV2YWx1YXRlZEV4cHJWYWx1ZSxcbiAgICBpc0ltYWdlRmlsZSxcbiAgICBpc0F1ZGlvRmlsZSxcbiAgICBpc1ZpZGVvRmlsZSxcbiAgICBpc1ZhbGlkV2ViVVJMLFxuICAgIGdldFJlc291cmNlVVJMLFxuICAgIHRyaWdnZXJGbixcbiAgICBoYXNPZmZzZXRTdHIsXG4gICAgZ2V0Rm9ybWF0dGVkRGF0ZSxcbiAgICBnZXREYXRlT2JqLFxuICAgIGFkZEV2ZW50TGlzdGVuZXJPbkVsZW1lbnQsXG4gICAgZ2V0Q2xvbmVkT2JqZWN0LFxuICAgIGdldEZpbGVzLFxuICAgIGdlbmVyYXRlR1VJZCxcbiAgICB2YWxpZGF0ZUFjY2Vzc1JvbGVzLFxuICAgIGdldFZhbGlkSlNPTixcbiAgICB4bWxUb0pzb24sXG4gICAgZmluZFZhbHVlT2YsXG4gICAgZXh0cmFjdFR5cGUsXG4gICAgaXNOdW1iZXJUeXBlLFxuICAgIGlzRW1wdHlPYmplY3QsXG4gICAgc2Nyb2xsVG9FbGVtZW50LFxuICAgIGlzRWxlbWVudEluVmlld3BvcnQsXG4gICAgaXNQYWdlYWJsZSxcbiAgICByZXBsYWNlLFxuICAgIGlzRGF0ZVRpbWVUeXBlLFxuICAgIGdldFZhbGlkRGF0ZU9iamVjdCxcbiAgICBnZXROYXRpdmVEYXRlT2JqZWN0LFxuICAgIGdldEJsb2IsXG4gICAgaXNFcXVhbFdpdGhGaWVsZHMsXG4gICAgbG9hZFN0eWxlU2hlZXQsXG4gICAgbG9hZFN0eWxlU2hlZXRzLFxuICAgIGxvYWRTY3JpcHQsXG4gICAgbG9hZFNjcmlwdHMsXG4gICAgX1dNX0FQUF9QUk9KRUNULFxuICAgIHNldFNlc3Npb25TdG9yYWdlSXRlbSxcbiAgICBnZXRTZXNzaW9uU3RvcmFnZUl0ZW0sXG4gICAgbm9vcCxcbiAgICBjb252ZXJ0VG9CbG9iLFxuICAgIGhhc0NvcmRvdmEsXG4gICAgQXBwQ29uc3RhbnRzLFxuICAgIG9wZW5MaW5rLFxuICAgIGZldGNoQ29udGVudCxcbiAgICB0b1Byb21pc2UsXG4gICAgcmV0cnlJZkZhaWxzLFxuICAgIGdldEFib3J0YWJsZURlZmVyLFxuICAgIGNyZWF0ZUNTU1J1bGUsXG4gICAgZ2V0VXJsUGFyYW1zLFxuICAgIGdldE1vbWVudExvY2FsZU9iamVjdCxcbiAgICBnZXRSb3V0ZU5hbWVGcm9tTGluayxcbiAgICBpc0FwcGxlUHJvZHVjdCxcbiAgICBkZWZlcixcbiAgICBleGVjdXRlUHJvbWlzZUNoYWluLFxuICAgIGlzRGF0YVNvdXJjZUVxdWFsLFxuICAgIHZhbGlkYXRlRGF0YVNvdXJjZUN0eCxcbiAgICBwcm9jZXNzRmlsdGVyRXhwQmluZE5vZGUsXG4gICAgZXh0ZW5kUHJvdG8sXG4gICAgcmVtb3ZlRXh0cmFTbGFzaGVzLFxuICAgIGdldERpc3BsYXlEYXRlVGltZUZvcm1hdCxcbiAgICBhZGRGb3JJZEF0dHJpYnV0ZXMsXG4gICAgYWRqdXN0Q29udGFpbmVyUG9zaXRpb24sXG4gICAgYWRqdXN0Q29udGFpbmVyUmlnaHRFZGdlcyxcbiAgICBzZXRUcmFuc2xhdGlvbjNkUG9zaXRpb24sXG4gICAgZ2V0V2Via2l0VHJhc2xhdGlvbk1hdHJpeCxcbiAgICBjbG9zZVBvcG92ZXIsXG4gICAgZGV0ZWN0Q2hhbmdlcyxcbiAgICB0cmlnZ2VySXRlbUFjdGlvbixcbiAgICBnZXREYXRhc291cmNlRnJvbUV4cHIsXG4gICAgZXh0cmFjdEN1cnJlbnRJdGVtRXhwcixcbiAgICBmaW5kUm9vdENvbnRhaW5lcixcbiAgICBWQUxJREFUT1IsXG4gICAgdHJhbnNmb3JtRmlsZVVSSSxcbiAgICBhcHBlbmRTY3JpcHRUb0hlYWQsXG4gICAgZ2V0QXBwU2V0dGluZyxcbiAgICBzZXRMaXN0Q2xhc3MsXG4gICAgZmluZFBhcmVudCxcbiAgICBnZXROYXZDbGFzcyxcbiAgICBnZXRTaGVldFBvc2l0aW9uQ2xhc3Ncbn0gZnJvbSAnLi91dGlscy91dGlscyc7XG5leHBvcnQge1xuICAgIEZJUlNUX1RJTUVfV0FUQ0gsXG4gICAgaXNGaXJzdFRpbWVDaGFuZ2UsXG4gICAgZGVib3VuY2UsXG4gICAgbXV0ZVdhdGNoZXJzLFxuICAgIHVuTXV0ZVdhdGNoZXJzLFxuICAgICR3YXRjaCxcbiAgICAkdW53YXRjaCxcbiAgICBzZXROZ1pvbmUsXG4gICAgc2V0QXBwUmVmLFxuICAgIGlzQ2hhbmdlRnJvbVdhdGNoLFxuICAgIHJlc2V0Q2hhbmdlRnJvbVdhdGNoLFxuICAgICRpbnZva2VXYXRjaGVycyxcbiAgICAkYXBwRGlnZXN0XG59IGZyb20gJy4vdXRpbHMvd2F0Y2hlcic7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzL2lkLWdlbmVyYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL3R5cGVzJztcbmV4cG9ydCB7IFZpZXdwb3J0LCBWaWV3cG9ydEV2ZW50IH0gZnJvbSAnLi9zZXJ2aWNlcy92aWV3cG9ydC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvY29uc3RhbnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9maWVsZC10eXBlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9maWVsZC13aWRnZXQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3NjcmlwdC1sb2FkZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3VzZXItY3VzdG9tLXBpcGUtbWFuYWdlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvY3VzdG9tLWljb25zLWxvYWRlci5zZXJ2aWNlJztcbmV4cG9ydCB7IFN0YXRlUGVyc2lzdGVuY2UgfSBmcm9tICcuL3NlcnZpY2VzL3N0YXRlLXBlcnNpc3RlbmNlLnNlcnZpY2UnO1xuZXhwb3J0IHsgUGFnaW5hdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3BhZ2luYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMvd20tcHJvamVjdC1wcm9wZXJ0aWVzJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMvbHJ1LWNhY2hlJztcbiJdfQ==
@@ -32,7 +32,7 @@ export const getFormWidgetTemplate = (widgetType, innerTmpl, attrs, options = {}
32
32
  tmpl = `<ul role="group" wmCheckboxset ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} ${showTmpl}></ul>`;
33
33
  break;
34
34
  case FormWidgetType.CHIPS:
35
- tmpl = `<ul wmChips role="input" debouncetime="${attrs.get('debouncetime')}" ${innerTmpl} ${showTmpl}></ul>`;
35
+ tmpl = `<ul wmChips debouncetime="${attrs.get('debouncetime')}" ${innerTmpl} ${showTmpl}></ul>`;
36
36
  break;
37
37
  case FormWidgetType.COLORPICKER:
38
38
  tmpl = `<div wmColorPicker ${attrs.get('required') === 'true' ? 'required=true' : ''} ${innerTmpl} ${showTmpl}></div>`;
@@ -50,10 +50,10 @@ export const getFormWidgetTemplate = (widgetType, innerTmpl, attrs, options = {}
50
50
  tmpl = `<div wmDateTime ${attrs.get('required') === 'true' ? 'required=true' : ''} dataentrymode="${attrs.get('dataentrymode')}" ${innerTmpl} ${showTmpl}></div>`;
51
51
  break;
52
52
  case FormWidgetType.NUMBER:
53
- tmpl = `<div wmNumber ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} type="number" aria-label="Only numbers" ${updateOnTmpl} ${showTmpl}></div>`;
53
+ tmpl = `<div wmNumber ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} type="number" ${updateOnTmpl} ${showTmpl}></div>`;
54
54
  break;
55
55
  case FormWidgetType.PASSWORD:
56
- tmpl = `<wm-input ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} type="password" aria-label="Enter password" ${updateOnTmpl} ${showTmpl}></wm-input>`;
56
+ tmpl = `<wm-input ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} type="password" ${updateOnTmpl} ${showTmpl}></wm-input>`;
57
57
  break;
58
58
  case FormWidgetType.RADIOSET:
59
59
  tmpl = `<ul role="radiogroup" wmRadioset ${innerTmpl} ${showTmpl}></ul>`;
@@ -68,7 +68,7 @@ export const getFormWidgetTemplate = (widgetType, innerTmpl, attrs, options = {}
68
68
  tmpl = `<wm-select ${attrs.get('required') === 'true' ? 'required=true' : ''} ${innerTmpl} ${showTmpl}></wm-select>`;
69
69
  break;
70
70
  case FormWidgetType.TOGGLE:
71
- tmpl = `<div wmCheckbox ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} type="toggle" role="checkbox" aria-label="Toggle button" ${showTmpl}></div>`;
71
+ tmpl = `<div wmCheckbox ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} type="toggle" ${showTmpl}></div>`;
72
72
  break;
73
73
  case FormWidgetType.SLIDER:
74
74
  tmpl = `<div wmSlider ${innerTmpl} ${showTmpl}></div>`;
@@ -81,13 +81,13 @@ export const getFormWidgetTemplate = (widgetType, innerTmpl, attrs, options = {}
81
81
  tmpl = `<wm-input ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} type="${attrs.get(inputType) || 'text'}" ${updateOnTmpl} ${showTmpl}></wm-input>`;
82
82
  break;
83
83
  case FormWidgetType.TEXTAREA:
84
- tmpl = `<wm-textarea ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} role="textbox" ${updateOnTmpl} ${showTmpl}></wm-textarea>`;
84
+ tmpl = `<wm-textarea ${innerTmpl} ${attrs.get('required') === 'true' ? 'required=true' : ''} ${updateOnTmpl} ${showTmpl}></wm-textarea>`;
85
85
  break;
86
86
  case FormWidgetType.TIME:
87
87
  tmpl = `<div wmTime ${attrs.get('required') === 'true' ? 'required=true' : ''} dataentrymode="${attrs.get('dataentrymode')}" ${innerTmpl} ${showTmpl}></div>`;
88
88
  break;
89
89
  case FormWidgetType.TIMESTAMP:
90
- tmpl = `<div wmDateTime ${attrs.get('required') === 'true' ? 'required=true' : ''} dataentrymode="${attrs.get('dataentrymode')}" ${innerTmpl} role="input" ${showTmpl}></div>`;
90
+ tmpl = `<div wmDateTime ${attrs.get('required') === 'true' ? 'required=true' : ''} dataentrymode="${attrs.get('dataentrymode')}" ${innerTmpl} ${showTmpl}></div>`;
91
91
  break;
92
92
  case FormWidgetType.UPLOAD:
93
93
  const counter = options.counter;
@@ -264,4 +264,4 @@ export const getRowActionAttrs = attrs => {
264
264
  });
265
265
  return tmpl;
266
266
  };
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy91dGlscy9idWlsZC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFXLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUV4RCxrREFBa0Q7QUFDbEQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFRLEVBQUUsU0FBVSxFQUFFLEVBQUU7SUFDdkQsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ25CLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDeEIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDL0MsU0FBUyxHQUFHLElBQUksU0FBUyxLQUFLLFNBQVMsTUFBTSxTQUFTLCtCQUErQixTQUFTLE9BQU8sU0FBUyxXQUFXLENBQUM7UUFDOUgsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQyxDQUFDO0FBRUYseUNBQXlDO0FBQ3pDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsVUFBa0IsRUFBRSxTQUFpQixFQUFFLEtBQTJCLEVBQUUsVUFBZSxFQUFF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QUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLElBQUksT0FBTyxFQUFFLENBQUM7WUFDVixJQUFJLElBQUksR0FBRyxPQUFPLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0cmlidXRlLCBFbGVtZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0IHsgRm9ybVdpZGdldFR5cGUgfSBmcm9tICcuLi9lbnVtcy9lbnVtcyc7XG5pbXBvcnQge2luY2x1ZGVzLCBpc0FycmF5LCBzdGFydHNXaXRofSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbi8vIEZvciBodG1sIHVwbG9hZCB3aWRnZXQsIGFkZCBldmVudHMgb24gaW5wdXQgdGFnXG5jb25zdCBnZXRVcGxvYWRFdmVudFRtcGwgPSAoYXR0cnMsIGNvdW50ZXI/LCBmaWVsZE5hbWU/KSA9PiB7XG4gICAgbGV0IGV2ZW50VG1wbCA9ICcnO1xuICAgIGF0dHJzLmZvckVhY2goKHZhbCwga2V5KSA9PiB7XG4gICAgICAgaWYgKGtleSAmJiBrZXkuZW5kc1dpdGgoJy5ldmVudCcpKSB7XG4gICAgICAgICAgIGNvbnN0IGV2ZW50TmFtZSA9IGtleS5zcGxpdCgnLicpWzBdO1xuICAgICAgICAgICBjb25zdCBjb3VudGVyVGwgPSBjb3VudGVyID8gYCR7Y291bnRlcn0uYCA6ICcnO1xuICAgICAgICAgICBldmVudFRtcGwgPSBgICR7ZXZlbnRUbXBsfSAoJHtldmVudE5hbWV9KT1cIiR7Y291bnRlclRsfXRyaWdnZXJVcGxvYWRFdmVudCgkZXZlbnQsICcke2V2ZW50TmFtZX0nLCAnJHtmaWVsZE5hbWV9Jywgcm93KVwiIGA7XG4gICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBldmVudFRtcGw7XG59O1xuXG4vLyBNZXRob2QgdG8gZ2V0IHRoZSBmb3JtIHdpZGdldCB0ZW1wbGF0ZVxuZXhwb3J0IGNvbnN0IGdldEZvcm1XaWRnZXRUZW1wbGF0ZSA9ICh3aWRnZXRUeXBlOiBzdHJpbmcsIGlubmVyVG1wbDogc3RyaW5nLCBhdHRycz86IE1hcDxzdHJpbmcsIHN0cmluZz4sIG9wdGlvbnM6IGFueSA9IHt9KSA9PiB7XG4gICAgbGV0IHRtcGw7XG4gICAgY29uc3QgdXBkYXRlT24gPSBhdHRycy5nZXQoJ3VwZGF0ZW9uJyk7XG4gICAgY29uc3QgdXBkYXRlT25UbXBsID0gdXBkYXRlT24gPyBgdXBkYXRlb249XCIke3VwZGF0ZU9ufVwiYCA6ICcnO1xuICAgIGNvbnN0IHNob3dpbmVkaXRtb2RlID0gYXR0cnMuZ2V0KCdzaG93aW5lZGl0bW9kZScpIHx8IGF0dHJzLmdldCgnc2hvd2luZWRpdG1vZGUuYmluZCcpIHx8IHRydWU7XG4gICAgY29uc3Qgc2hvd1RtcGw6IHN0cmluZyAgPSBzaG93aW5lZGl0bW9kZSA9PSAnZmFsc2UnPyBgc2hvdz1cIiR7c2hvd2luZWRpdG1vZGV9XCJgOiBgc2hvdy5iaW5kPVwiJHtzaG93aW5lZGl0bW9kZX1cImA7XG4gICAgc3dpdGNoICh3aWRnZXRUeXBlKSB7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQVVUT0NPTVBMRVRFOlxuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlRZUEVBSEVBRDpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bVNlYXJjaCB0eXBlPVwiYXV0b2NvbXBsZXRlXCIgZGVib3VuY2V0aW1lPVwiJHthdHRycy5nZXQoJ2RlYm91bmNldGltZScpfVwiICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQ0hFQ0tCT1g6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21DaGVja2JveCAke2lubmVyVG1wbH0gJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkNIRUNLQk9YU0VUOlxuICAgICAgICAgICAgdG1wbCA9IGA8dWwgcm9sZT1cImdyb3VwXCIgd21DaGVja2JveHNldCAke2lubmVyVG1wbH0gJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gJHtzaG93VG1wbH0+PC91bD5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQ0hJUFM6XG4gICAgICAgICAgICB0bXBsID0gYDx1bCB3bUNoaXBzIHJvbGU9XCJpbnB1dFwiIGRlYm91bmNldGltZT1cIiR7YXR0cnMuZ2V0KCdkZWJvdW5jZXRpbWUnKX1cIiAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC91bD5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQ09MT1JQSUNLRVI6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21Db2xvclBpY2tlciAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkNVUlJFTkNZOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtQ3VycmVuY3kgJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gJHt1cGRhdGVPblRtcGx9ICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQ1VTVE9NV0lER0VUOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtV2lkZ2V0Q29udGFpbmVyIGN1c3RvbVdpZGdldENvbnRhaW5lciAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSAke3VwZGF0ZU9uVG1wbH0gJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5EQVRFOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtRGF0ZSAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSBkYXRhZW50cnltb2RlPVwiJHthdHRycy5nZXQoJ2RhdGFlbnRyeW1vZGUnKX1cIiAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkRBVEVUSU1FOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtRGF0ZVRpbWUgJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gZGF0YWVudHJ5bW9kZT1cIiR7YXR0cnMuZ2V0KCdkYXRhZW50cnltb2RlJyl9XCIgJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5OVU1CRVI6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21OdW1iZXIgJHtpbm5lclRtcGx9ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IHR5cGU9XCJudW1iZXJcIiBhcmlhLWxhYmVsPVwiT25seSBudW1iZXJzXCIgJHt1cGRhdGVPblRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5QQVNTV09SRDpcbiAgICAgICAgICAgIHRtcGwgPSBgPHdtLWlucHV0ICR7aW5uZXJUbXBsfSAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSB0eXBlPVwicGFzc3dvcmRcIiBhcmlhLWxhYmVsPVwiRW50ZXIgcGFzc3dvcmRcIiAke3VwZGF0ZU9uVG1wbH0gJHtzaG93VG1wbH0+PC93bS1pbnB1dD5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuUkFESU9TRVQ6XG4gICAgICAgICAgICB0bXBsID0gYDx1bCByb2xlPVwicmFkaW9ncm91cFwiIHdtUmFkaW9zZXQgJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvdWw+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlJBVElORzpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bVJhdGluZyAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlJJQ0hURVhUOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtUmljaFRleHRFZGl0b3Igcm9sZT1cInRleHRib3hcIiAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlNFTEVDVDpcbiAgICAgICAgICAgIHRtcGwgPSBgPHdtLXNlbGVjdCAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC93bS1zZWxlY3Q+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlRPR0dMRTpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bUNoZWNrYm94ICR7aW5uZXJUbXBsfSAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSB0eXBlPVwidG9nZ2xlXCIgcm9sZT1cImNoZWNrYm94XCIgYXJpYS1sYWJlbD1cIlRvZ2dsZSBidXR0b25cIiAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuU0xJREVSOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtU2xpZGVyICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuU1dJVENIOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtU3dpdGNoICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuVEVYVDpcbiAgICAgICAgICAgIGNvbnN0IGlucHV0VHlwZSA9IG9wdGlvbnMuaW5wdXRUeXBlIHx8ICdpbnB1dHR5cGUnO1xuICAgICAgICAgICAgdG1wbCA9IGA8d20taW5wdXQgJHtpbm5lclRtcGx9ICAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSB0eXBlPVwiJHthdHRycy5nZXQoaW5wdXRUeXBlKSB8fCAndGV4dCd9XCIgJHt1cGRhdGVPblRtcGx9ICR7c2hvd1RtcGx9Pjwvd20taW5wdXQ+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlRFWFRBUkVBOlxuICAgICAgICAgICAgdG1wbCA9IGA8d20tdGV4dGFyZWEgJHtpbm5lclRtcGx9ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IHJvbGU9XCJ0ZXh0Ym94XCIgJHt1cGRhdGVPblRtcGx9ICR7c2hvd1RtcGx9Pjwvd20tdGV4dGFyZWE+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlRJTUU6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21UaW1lICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IGRhdGFlbnRyeW1vZGU9XCIke2F0dHJzLmdldCgnZGF0YWVudHJ5bW9kZScpfVwiICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuVElNRVNUQU1QOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtRGF0ZVRpbWUgJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gZGF0YWVudHJ5bW9kZT1cIiR7YXR0cnMuZ2V0KCdkYXRhZW50cnltb2RlJyl9XCIgJHtpbm5lclRtcGx9IHJvbGU9XCJpbnB1dFwiICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5VUExPQUQ6XG4gICAgICAgICAgICBjb25zdCBjb3VudGVyID0gb3B0aW9ucy5jb3VudGVyO1xuICAgICAgICAgICAgY29uc3QgcENvdW50ZXIgPSBvcHRpb25zLnBDb3VudGVyO1xuICAgICAgICAgICAgY29uc3QgdXBsb2FkUHJvcHMgPSBvcHRpb25zLnVwbG9hZFByb3BzO1xuICAgICAgICAgICAgY29uc3QgZXZlbnRUbXBsID0gZ2V0VXBsb2FkRXZlbnRUbXBsKGF0dHJzLCBjb3VudGVyLCB1cGxvYWRQcm9wcyAmJiB1cGxvYWRQcm9wcy5uYW1lKTtcbiAgICAgICAgICAgIGlmICh1cGxvYWRQcm9wcykge1xuICAgICAgICAgICAgICAgIHRtcGwgPSBgPGZvcm0gbmFtZT1cIiR7dXBsb2FkUHJvcHMuZm9ybU5hbWV9XCIgJHtpbm5lclRtcGx9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb2N1cy10YXJnZXQgY2xhc3M9XCJmaWxlLXVwbG9hZFwiIHR5cGU9XCJmaWxlXCIgbmFtZT1cIiR7dXBsb2FkUHJvcHMubmFtZX1cIiAke2V2ZW50VG1wbH0gJHtzaG93VG1wbH0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPmA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRtcGwgPSBgPGEgY2xhc3M9XCJmb3JtLWNvbnRyb2wtc3RhdGljXCIgaHJlZj1cInt7JHtjb3VudGVyfS5ocmVmfX1cIiB0YXJnZXQ9XCJfYmxhbmtcIiAqbmdJZj1cIiR7Y291bnRlcn0uZmlsZXR5cGUgPT09ICdpbWFnZScgJiYgJHtjb3VudGVyfS5ocmVmXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHN0eWxlPVwiaGVpZ2h0OjJlbVwiIGNsYXNzPVwid2kgd2ktZmlsZVwiIFtzcmNdPVwiJHtjb3VudGVyfS5ocmVmXCIvPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiZm9ybS1jb250cm9sLXN0YXRpY1wiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJ7eyR7Y291bnRlcn0uaHJlZn19XCIgKm5nSWY9XCIke2NvdW50ZXJ9LmZpbGV0eXBlICE9PSAnaW1hZ2UnICYmICR7Y291bnRlcn0uaHJlZlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ3aSB3aS1maWxlXCI+PC9pPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCAke2lubmVyVG1wbH0gY2xhc3M9XCJhcHAtYmxvYi11cGxvYWRcIiBbbmdDbGFzc109XCJ7J2ZpbGUtcmVhZG9ubHknOiAke2NvdW50ZXJ9LnJlYWRvbmx5fVwiICR7ZXZlbnRUbXBsfVxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cIiR7Y291bnRlcn0ucmVxdWlyZWRcIiB0eXBlPVwiZmlsZVwiIG5hbWU9XCIke2F0dHJzLmdldCgna2V5JykgfHwgYXR0cnMuZ2V0KCduYW1lJyl9X2Zvcm1XaWRnZXRcIiBbcmVhZG9ubHldPVwiJHtjb3VudGVyfS5yZWFkb25seVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaGlkZGVuXT1cIiEke3BDb3VudGVyfS5pc1VwZGF0ZU1vZGVcIiBbYWNjZXB0XT1cIiR7Y291bnRlcn0ucGVybWl0dGVkXCIgJHtzaG93VG1wbH0+YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdG1wbCA9IGA8d20taW5wdXQgJHtpbm5lclRtcGx9ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IHR5cGU9XCJ0ZXh0XCIgJHt1cGRhdGVPblRtcGx9ICR7c2hvd1RtcGx9Pjwvd20taW5wdXQ+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gdG1wbDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSZXF1aXJlZEZvcm1XaWRnZXQgPSAod2lkZ2V0VHlwZSk6IHN0cmluZyA9PiB7XG4gICAgc3dpdGNoICh3aWRnZXRUeXBlKSB7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQVVUT0NPTVBMRVRFOlxuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlRZUEVBSEVBRDpcbiAgICAgICAgICAgIHJldHVybiAnd20tc2VhcmNoJztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DSElQUzpcbiAgICAgICAgICAgIHJldHVybiAnd20tY2hpcHMnO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkNPTE9SUElDS0VSOlxuICAgICAgICAgICAgcmV0dXJuICd3bS1jb2xvcnBpY2tlcic7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQ1VSUkVOQ1k6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLWN1cnJlbmN5JztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DVVNUT01XSURHRVQ6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLWN1c3RvbS13aWRnZXQnO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkRBVEU6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLWRhdGUnO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkRBVEVUSU1FOlxuICAgICAgICAgICAgcmV0dXJuICd3bS1kYXRldGltZSc7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuVElNRTpcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5USU1FU1RBTVA6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLXRpbWUnO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlJBVElORzpcbiAgICAgICAgICAgIHJldHVybiAnd20tcmF0aW5nJztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5SSUNIVEVYVDpcbiAgICAgICAgICAgIHJldHVybiAnd20tcmljaHRleHRlZGl0b3InO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlNMSURFUjpcbiAgICAgICAgICAgIHJldHVybiAnd20tc2xpZGVyJztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiAnd20tdGV4dCc7XG4gICAgfVxufTtcblxuLy8gVGhpcyBtZWh0b2QgaXMgdXNlZCB0byBhZGQgZGF0YXNldGJvdW5kZXhwciBhdHRyaWJ1dGUgZm9yIG5vZGVcbmNvbnN0IGFkZERhdGFzZXRCb3VuZEV4cHJBdHRyaWJ1dGUgPSAoY2hpbGROb2RlOiBFbGVtZW50LCBhdHRyOiBBdHRyaWJ1dGUsIGF0dHJWYWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgYXR0clZhbHVlID0gYXR0clZhbHVlLnJlcGxhY2UoJ2JpbmQ6JywgJycpO1xuICAgIGNvbnN0IGRhdGFzZXRCb3VuZEF0dHJpYnV0ZSA9IGNoaWxkTm9kZS5hdHRycy5maW5kKCBhID0+IGEubmFtZSA9PT0gJ2RhdGFzZXRib3VuZGV4cHInKTtcbiAgICBpZiAoYXR0ci5uYW1lID09PSAnZGF0YXNldCcgJiYgIWRhdGFzZXRCb3VuZEF0dHJpYnV0ZSkge1xuICAgICAgICBjaGlsZE5vZGUuYXR0cnMucHVzaChuZXcgQXR0cmlidXRlKCdkYXRhc2V0Ym91bmRleHByJywgYXR0clZhbHVlLCBhdHRyLnNvdXJjZVNwYW4sIGF0dHIua2V5U3BhbiwgYXR0ci52YWx1ZVNwYW4sIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7XG4gICAgfVxufTtcblxuXG4vKipcbiAqIGV4cDogVXNlciBidWlsdCBiaW5kIGV4cHJlc3Npb25cbiAqICBUbyBjaGVjayB0aGUgY3VzdG9tIHBpcGUgZXhwcmVzc2lvbnMuXG4gKiAgSWYgdXNlciB1c2UgdGhlIGN1c3RvbSBwaXBlIGV4cHJlc3Npb24gaXQgd2lsbCBjaGVjayBpbiB0aGUgZXhwLiB0aGF0IFwiY3VzdG9tXCIgc3RyaW5nIGV4aXN0IG9yIG5vdCB3aXRoICg6KSBzeW50YXguXG4gKiAgRWc6IGN1c3RvbTpcbiAqICAgICAgY3VzdG9tICAgIDpcbiAqL1xuZXhwb3J0IGNvbnN0IGNoZWNrSXNDdXN0b21QaXBlRXhwcmVzc2lvbiA9IGZ1bmN0aW9uKGV4cCl7XG4gICAgbGV0IGN1c3RvbVJlZ0V4ID0gLyhjdXN0b20oXFxzKjopKS9nO1xuICAgIGxldCBtYXRjaGVzID0gZXhwLm1hdGNoKGN1c3RvbVJlZ0V4KTtcbiAgICByZXR1cm4gbWF0Y2hlcyAmJiBtYXRjaGVzLmxlbmd0aDtcbn1cblxuXG4vLyBUaGUgYm91bmQgdmFsdWUgaXMgcmVwbGFjZWQgd2l0aCB7e2l0ZW0uZmllbGRuYW1lfX0gaGVyZS4gVGhpcyBpcyBuZWVkZWQgYnkgdGhlIGxpdmVMaXN0IHdoZW4gY29tcGlsaW5nIGlubmVyIGVsZW1lbnRzXG5leHBvcnQgY29uc3QgdXBkYXRlVGVtcGxhdGVBdHRycyA9IChyb290Tm9kZTogRWxlbWVudCB8IEFycmF5PEVsZW1lbnQ+LCBwYXJlbnREYXRhU2V0OiBzdHJpbmcsIHdpZGdldE5hbWU6IHN0cmluZywgaW5zdGFuY2U6IHN0cmluZyA9ICcnLCByZWZlcmVuY2VOYW1lOiBzdHJpbmcgPSAnaXRlbScpID0+IHtcblxuICAgIGNvbnN0IHNhbml0aXplZFBhcmVudERhdGFzZXQgPSBwYXJlbnREYXRhU2V0LnJlcGxhY2UoLyhbXmEtekEtWjAtOS5dKS9nLCAnXFxcXCQxJyk7XG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKCcoJyArIHNhbml0aXplZFBhcmVudERhdGFzZXQgKyAnKShcXFxcWzBcXFxcXSk/KC5kYXRhXFxcXFtcXFxcJGlcXFxcXSk/KC5jb250ZW50XFxcXFtcXFxcJGlcXFxcXSk/KFxcXFxbXFxcXCRpXFxcXF0pPycsICdnJyk7XG4gICAgbGV0IGN1cnJlbnRJdGVtUmVnRXg7XG4gICAgbGV0IGN1cnJlbnRJdGVtV2lkZ2V0c1JlZ0V4O1xuICAgIGxldCBmb3JtV2lkZ2V0c1JlZ2V4O1xuICAgIGxldCBub2RlczogQXJyYXk8RWxlbWVudD47XG4gICAgY29uc3Qgd2lkZ2V0TGlzdCA9IHtcbiAgICAgICAgJ3dtLWxpc3QnOiBbJ2l0ZW1jbGFzcycsICdkaXNhYmxlaXRlbScsICdkYXRhc2V0J11cbiAgICB9O1xuXG4gICAgaWYgKHdpZGdldE5hbWUpIHtcbiAgICAgICAgY3VycmVudEl0ZW1SZWdFeCA9IG5ldyBSZWdFeHAoYChXaWRnZXRzLiR7d2lkZ2V0TmFtZX0uY3VycmVudEl0ZW0pXFxcXGJgLCAnZycpO1xuICAgICAgICBjdXJyZW50SXRlbVdpZGdldHNSZWdFeCA9IG5ldyBSZWdFeHAoYChXaWRnZXRzLiR7d2lkZ2V0TmFtZX0uY3VycmVudEl0ZW1XaWRnZXRzKVxcXFxiYCwgJ2cnKTtcbiAgICAgICAgZm9ybVdpZGdldHNSZWdleCA9IG5ldyBSZWdFeHAoYChXaWRnZXRzLiguKikuKGZvcm1XaWRnZXRzfGZpbHRlcldpZGdldHMpKVxcXFxiYCwgJ2cnKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzQXJyYXkocm9vdE5vZGUpKSB7XG4gICAgICAgIC8vIFtXTVMtMTY3MTJdLFtXTVMtMTY3NjldLFtXTVMtMTY4MDVdIFRoZSBtYXJrdXAgb2Ygcm9vdCBub2RlKHRhYmxlLCBsaXN0LCBjYXJvdXNlbCkgbmVlZCB0byBiZSB1cGRhdGVkIG9ubHkgZm9yIHRoZSB3aWRnZXRzIG1lbnRpb25lZCBpbiB3aWRnZXRMaXN0IG1hcC5cbiAgICAgICAgbm9kZXMgPSB3aWRnZXRMaXN0Wyhyb290Tm9kZSBhcyBhbnkpLm5hbWVdID8gW3Jvb3ROb2RlIGFzIEVsZW1lbnRdIDogKChyb290Tm9kZSBhcyBhbnkpLmNoaWxkcmVuIHx8IFtdKSBhcyBBcnJheTxFbGVtZW50PjtcbiAgICB9IGVsc2Uge1xuICAgICAgICBub2RlcyA9IHJvb3ROb2RlIGFzIEFycmF5PEVsZW1lbnQ+O1xuICAgIH1cblxuICAgIG5vZGVzLmZvckVhY2goKGNoaWxkTm9kZTogRWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoY2hpbGROb2RlLm5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVOYW1lID0gY2hpbGROb2RlLm5hbWU7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnREYXRhU2V0TGVuZ3RoUmVnZXggPSAgbmV3IFJlZ0V4cCgnYmluZDpcXFxccypcXFxcKConICsgcGFyZW50RGF0YVNldCArICdcXFxcKSpcXFxcLmxlbmd0aFxcXFwpKicpO1xuICAgICAgICAgICAgY2hpbGROb2RlLmF0dHJzLmZvckVhY2goKGF0dHIpID0+IHtcbiAgICAgICAgICAgICAgICAvLyB0cmltIHRoZSBleHRyYSBzcGFjZXMgaW4gYmluZGluZ3NcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBhdHRyLnZhbHVlICYmIGF0dHIudmFsdWUudHJpbSgpO1xuICAgICAgICAgICAgICAgIGlmIChzdGFydHNXaXRoKHZhbHVlLCAnYmluZDonKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBUaGUgbWFya3VwIG9mIHJvb3Qgbm9kZSh0YWJsZSwgbGlzdCwgY2Fyb3VzZWwpIGF0dHJpYnV0ZXMgY29uYXRhaW5zIHNhbWUgZGF0YXNldCB2YXJpYWJsZSBiaW5kaW5nIHRoZW4gdGhvc2UgYXR0cmlidXRlcyBuZWVkIHRvIGJlIHVwZGF0ZWQgb25seSBmb3Igc3BlY2lmaWMgcHJvcGVydGllcyBtZW50aW9uZWQgaW4gd2lkZ2V0TGlzdCBtYXAuXG4gICAgICAgICAgICAgICAgICAgIGlmICghd2lkZ2V0TGlzdFtub2RlTmFtZV0gfHwgKHdpZGdldExpc3Rbbm9kZU5hbWVdICYmIHdpZGdldExpc3Rbbm9kZU5hbWVdLmluZGV4T2YoYXR0ci5uYW1lKSA+IC0xKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBpcyBcImJpbmQ6eHh4eHgueHh4eFwiLCBlaXRoZXIgdGhlIGRhdGFTZXQvc2NvcGVEYXRhU2V0IGhhcyB0byBjb250YWluIFwieHh4eC54eHh4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFtXTVMtMTc5MDhdOiBpZiBjaGlsZCB3aWRnZXQgY29udGFpbnMgYmluZCBleHByZXNzaW9uIGFzIHBhcmVuZGF0YXNldC5sZW5ndGggPiAwIHRoZW4gZG9udCByZXBsYWNlIGl0IHdpdGggaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluY2x1ZGVzKHZhbHVlLCBwYXJlbnREYXRhU2V0KSAmJiB2YWx1ZSAhPT0gJ2JpbmQ6JyArIHBhcmVudERhdGFTZXQgJiYgIXBhcmVudERhdGFTZXRMZW5ndGhSZWdleC50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgnYmluZDonLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkRGF0YXNldEJvdW5kRXhwckF0dHJpYnV0ZShjaGlsZE5vZGUsIGF0dHIsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UocmVnZXgsIHJlZmVyZW5jZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gJ2JpbmQ6JyArIHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlzIHRoaXMgY3VzdG9tIGJpbmQgZXhwcmVzc2lvbiBhbmQgY3VycmVudFdpZGdldEl0ZW0gcmVnZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjaGVja0lzQ3VzdG9tUGlwZUV4cHJlc3Npb24odmFsdWUpICYmIGN1cnJlbnRJdGVtUmVnRXgpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGRpbmcgdGhlIGN1cnJlbnRJdGVtIGFzIGxhc3QgYXJndW1lbnQgZm9yIHRoZSBleHByZXNzaW9uLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3IgdGhlIGN1c3RvbSBwaXBlcyhleHByZXNpb24pLCBpdCB3aWxsIHNlbmQgdGhlIGN1cnJlbnRJdGVtIGFzIGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlICs9ICAnOicrIGN1cnJlbnRJdGVtUmVnRXguZXhlYyhjdXJyZW50SXRlbVJlZ0V4LnNvdXJjZSlbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIFJlcGxhY2UgaXRlbSBpZiB3aWRnZXQgcHJvcGVydHkgaXMgYm91bmQgdG8gbGl2ZWxpc3QgY3VycmVudEl0ZW1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRJdGVtUmVnRXggJiYgY3VycmVudEl0ZW1SZWdFeC50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hhbmdlIHZhbHVlIGZyb20gJ2JpbmQ6V2lkZ2V0cy5mb3JtTmFtZS5mb3JtV2lkZ2V0cy5saXN0TmFtZS5jdXJyZW50SXRlbScgdG8gJ2JpbmQ6V2lkZ2V0cy5saXN0TmFtZS5jdXJyZW50SXRlbSdcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5pbmNsdWRlcygnLmZvcm1XaWRnZXRzJykgfHwgdmFsdWUuaW5jbHVkZXMoJy5maWx0ZXJXaWRnZXRzJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoZm9ybVdpZGdldHNSZWdleCwgJ1dpZGdldHMnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZERhdGFzZXRCb3VuZEV4cHJBdHRyaWJ1dGUoY2hpbGROb2RlLCBhdHRyLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoY3VycmVudEl0ZW1SZWdFeCwgcmVmZXJlbmNlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRJdGVtV2lkZ2V0c1JlZ0V4ICYmIGN1cnJlbnRJdGVtV2lkZ2V0c1JlZ0V4LnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoY3VycmVudEl0ZW1XaWRnZXRzUmVnRXgsIGAke2luc3RhbmNlfWN1cnJlbnRJdGVtV2lkZ2V0c2ApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgYXR0ci52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdXBkYXRlVGVtcGxhdGVBdHRycyhjaGlsZE5vZGUuY2hpbGRyZW4gYXMgQXJyYXk8RWxlbWVudD4sIHBhcmVudERhdGFTZXQsIHdpZGdldE5hbWUsIGluc3RhbmNlLCByZWZlcmVuY2VOYW1lKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcblxuLy8gSWYgZm9ybUNvbnRyb2xOYW1lIGF0dHJpYnV0ZSBpcyBwcmVzZW50LCBkb250IGFkZCB0aGUgbmdNb2RlbFxuZXhwb3J0IGNvbnN0IGdldE5nTW9kZWxBdHRyID0gYXR0cnMgPT4ge1xuICAgIGlmIChhdHRycy5oYXMoJ2Zvcm1Db250cm9sTmFtZScpIHx8IGF0dHJzLmhhcygnZm9ybUNvbnRyb2xOYW1lLmJpbmQnKSkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiAnbmdNb2RlbCc7XG59O1xuXG5jb25zdCByb3dBY3Rpb25BdHRycyA9IG5ldyBNYXAoXG4gICAgW1xuICAgICAgICBbJ2Rpc3BsYXktbmFtZScsICdjYXB0aW9uJ10sXG4gICAgICAgIFsnZGlzcGxheS1uYW1lLmJpbmQnLCAnY2FwdGlvbi5iaW5kJ10sXG4gICAgICAgIFsndGl0bGUnLCAnaGludCddLFxuICAgICAgICBbJ3RpdGxlLmJpbmQnLCAnaGludC5iaW5kJ10sXG4gICAgICAgIFsnc2hvdycsICdzaG93J10sXG4gICAgICAgIFsnc2hvdy5iaW5kJywgJ3Nob3cuYmluZCddLFxuICAgICAgICBbJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJ10sXG4gICAgICAgIFsnZGlzYWJsZWQuYmluZCcsICdkaXNhYmxlZC5iaW5kJ10sXG4gICAgICAgIFsnaHlwZXJsaW5rJywgJ2h5cGVybGluayddLFxuICAgICAgICBbJ2h5cGVybGluay5iaW5kJywgJ2h5cGVybGluay5iaW5kJ10sXG4gICAgICAgIFsndGFyZ2V0JywgJ3RhcmdldCddLFxuICAgICAgICBbJ2NvbmRpdGlvbmFsY2xhc3MuYmluZCcsICdjb25kaXRpb25hbGNsYXNzLmJpbmQnXSxcbiAgICAgICAgWydjb25kaXRpb25hbHN0eWxlLmJpbmQnLCAnY29uZGl0aW9uYWxzdHlsZS5iaW5kJ11cbiAgICBdXG4pO1xuXG5leHBvcnQgY29uc3QgZ2V0Um93QWN0aW9uQXR0cnMgPSBhdHRycyA9PiB7XG4gICAgbGV0IHRtcGwgPSAnJztcbiAgICBhdHRycy5mb3JFYWNoKCh2YWwsIGtleSkgPT4ge1xuICAgICAgICBjb25zdCBuZXdBdHRyID0gcm93QWN0aW9uQXR0cnMuZ2V0KGtleSk7XG4gICAgICAgIGlmIChuZXdBdHRyKSB7XG4gICAgICAgICAgICB0bXBsICs9IGAke25ld0F0dHJ9PVwiJHt2YWx9XCIgYDtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB0bXBsO1xufTtcbiJdfQ==
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy91dGlscy9idWlsZC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFVLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUV4RCxrREFBa0Q7QUFDbEQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFRLEVBQUUsU0FBVSxFQUFFLEVBQUU7SUFDdkQsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ25CLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDeEIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDL0MsU0FBUyxHQUFHLElBQUksU0FBUyxLQUFLLFNBQVMsTUFBTSxTQUFTLCtCQUErQixTQUFTLE9BQU8sU0FBUyxXQUFXLENBQUM7UUFDOUgsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQyxDQUFDO0FBRUYseUNBQXlDO0FBQ3pDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsVUFBa0IsRUFBRSxTQUFpQixFQUFFLEtBQTJCLEVBQUUsVUFBZSxFQUFF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Q0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNWLElBQUksSUFBSSxHQUFHLE9BQU8sS0FBSyxHQUFHLElBQUksQ0FBQztRQUNuQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0F0dHJpYnV0ZSwgRWxlbWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0IHtGb3JtV2lkZ2V0VHlwZX0gZnJvbSAnLi4vZW51bXMvZW51bXMnO1xuaW1wb3J0IHtpbmNsdWRlcywgaXNBcnJheSwgc3RhcnRzV2l0aH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG4vLyBGb3IgaHRtbCB1cGxvYWQgd2lkZ2V0LCBhZGQgZXZlbnRzIG9uIGlucHV0IHRhZ1xuY29uc3QgZ2V0VXBsb2FkRXZlbnRUbXBsID0gKGF0dHJzLCBjb3VudGVyPywgZmllbGROYW1lPykgPT4ge1xuICAgIGxldCBldmVudFRtcGwgPSAnJztcbiAgICBhdHRycy5mb3JFYWNoKCh2YWwsIGtleSkgPT4ge1xuICAgICAgIGlmIChrZXkgJiYga2V5LmVuZHNXaXRoKCcuZXZlbnQnKSkge1xuICAgICAgICAgICBjb25zdCBldmVudE5hbWUgPSBrZXkuc3BsaXQoJy4nKVswXTtcbiAgICAgICAgICAgY29uc3QgY291bnRlclRsID0gY291bnRlciA/IGAke2NvdW50ZXJ9LmAgOiAnJztcbiAgICAgICAgICAgZXZlbnRUbXBsID0gYCAke2V2ZW50VG1wbH0gKCR7ZXZlbnROYW1lfSk9XCIke2NvdW50ZXJUbH10cmlnZ2VyVXBsb2FkRXZlbnQoJGV2ZW50LCAnJHtldmVudE5hbWV9JywgJyR7ZmllbGROYW1lfScsIHJvdylcIiBgO1xuICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZXZlbnRUbXBsO1xufTtcblxuLy8gTWV0aG9kIHRvIGdldCB0aGUgZm9ybSB3aWRnZXQgdGVtcGxhdGVcbmV4cG9ydCBjb25zdCBnZXRGb3JtV2lkZ2V0VGVtcGxhdGUgPSAod2lkZ2V0VHlwZTogc3RyaW5nLCBpbm5lclRtcGw6IHN0cmluZywgYXR0cnM/OiBNYXA8c3RyaW5nLCBzdHJpbmc+LCBvcHRpb25zOiBhbnkgPSB7fSkgPT4ge1xuICAgIGxldCB0bXBsO1xuICAgIGNvbnN0IHVwZGF0ZU9uID0gYXR0cnMuZ2V0KCd1cGRhdGVvbicpO1xuICAgIGNvbnN0IHVwZGF0ZU9uVG1wbCA9IHVwZGF0ZU9uID8gYHVwZGF0ZW9uPVwiJHt1cGRhdGVPbn1cImAgOiAnJztcbiAgICBjb25zdCBzaG93aW5lZGl0bW9kZSA9IGF0dHJzLmdldCgnc2hvd2luZWRpdG1vZGUnKSB8fCBhdHRycy5nZXQoJ3Nob3dpbmVkaXRtb2RlLmJpbmQnKSB8fCB0cnVlO1xuICAgIGNvbnN0IHNob3dUbXBsOiBzdHJpbmcgID0gc2hvd2luZWRpdG1vZGUgPT0gJ2ZhbHNlJz8gYHNob3c9XCIke3Nob3dpbmVkaXRtb2RlfVwiYDogYHNob3cuYmluZD1cIiR7c2hvd2luZWRpdG1vZGV9XCJgO1xuICAgIHN3aXRjaCAod2lkZ2V0VHlwZSkge1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkFVVE9DT01QTEVURTpcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5UWVBFQUhFQUQ6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21TZWFyY2ggdHlwZT1cImF1dG9jb21wbGV0ZVwiIGRlYm91bmNldGltZT1cIiR7YXR0cnMuZ2V0KCdkZWJvdW5jZXRpbWUnKX1cIiAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkNIRUNLQk9YOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtQ2hlY2tib3ggJHtpbm5lclRtcGx9ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DSEVDS0JPWFNFVDpcbiAgICAgICAgICAgIHRtcGwgPSBgPHVsIHJvbGU9XCJncm91cFwiIHdtQ2hlY2tib3hzZXQgJHtpbm5lclRtcGx9ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9ICR7c2hvd1RtcGx9PjwvdWw+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkNISVBTOlxuICAgICAgICAgICAgdG1wbCA9IGA8dWwgd21DaGlwcyBkZWJvdW5jZXRpbWU9XCIke2F0dHJzLmdldCgnZGVib3VuY2V0aW1lJyl9XCIgJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvdWw+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkNPTE9SUElDS0VSOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtQ29sb3JQaWNrZXIgJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DVVJSRU5DWTpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bUN1cnJlbmN5ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9ICR7dXBkYXRlT25UbXBsfSAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkNVU1RPTVdJREdFVDpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bVdpZGdldENvbnRhaW5lciBjdXN0b21XaWRnZXRDb250YWluZXIgJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gJHt1cGRhdGVPblRtcGx9ICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuREFURTpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bURhdGUgJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gZGF0YWVudHJ5bW9kZT1cIiR7YXR0cnMuZ2V0KCdkYXRhZW50cnltb2RlJyl9XCIgJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5EQVRFVElNRTpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bURhdGVUaW1lICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IGRhdGFlbnRyeW1vZGU9XCIke2F0dHJzLmdldCgnZGF0YWVudHJ5bW9kZScpfVwiICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuTlVNQkVSOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtTnVtYmVyICR7aW5uZXJUbXBsfSAke2F0dHJzLmdldCgncmVxdWlyZWQnKSA9PT0gJ3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IHR5cGU9XCJudW1iZXJcIiAke3VwZGF0ZU9uVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlBBU1NXT1JEOlxuICAgICAgICAgICAgdG1wbCA9IGA8d20taW5wdXQgJHtpbm5lclRtcGx9ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpID09PSAndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gdHlwZT1cInBhc3N3b3JkXCIgJHt1cGRhdGVPblRtcGx9ICR7c2hvd1RtcGx9Pjwvd20taW5wdXQ+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlJBRElPU0VUOlxuICAgICAgICAgICAgdG1wbCA9IGA8dWwgcm9sZT1cInJhZGlvZ3JvdXBcIiB3bVJhZGlvc2V0ICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L3VsPmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5SQVRJTkc6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21SYXRpbmcgJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5SSUNIVEVYVDpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bVJpY2hUZXh0RWRpdG9yIHJvbGU9XCJ0ZXh0Ym94XCIgJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5TRUxFQ1Q6XG4gICAgICAgICAgICB0bXBsID0gYDx3bS1zZWxlY3QgJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9Pjwvd20tc2VsZWN0PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5UT0dHTEU6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21DaGVja2JveCAke2lubmVyVG1wbH0gJHthdHRycy5nZXQoJ3JlcXVpcmVkJykgPT09ICd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSB0eXBlPVwidG9nZ2xlXCIgJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlNMSURFUjpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bVNsaWRlciAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlNXSVRDSDpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bVN3aXRjaCAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlRFWFQ6XG4gICAgICAgICAgICBjb25zdCBpbnB1dFR5cGUgPSBvcHRpb25zLmlucHV0VHlwZSB8fCAnaW5wdXR0eXBlJztcbiAgICAgICAgICAgIHRtcGwgPSBgPHdtLWlucHV0ICR7aW5uZXJUbXBsfSAgJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gdHlwZT1cIiR7YXR0cnMuZ2V0KGlucHV0VHlwZSkgfHwgJ3RleHQnfVwiICR7dXBkYXRlT25UbXBsfSAke3Nob3dUbXBsfT48L3dtLWlucHV0PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5URVhUQVJFQTpcbiAgICAgICAgICAgIHRtcGwgPSBgPHdtLXRleHRhcmVhICR7aW5uZXJUbXBsfSAke2F0dHJzLmdldCgncmVxdWlyZWQnKSA9PT0gJ3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9ICR7dXBkYXRlT25UbXBsfSAke3Nob3dUbXBsfT48L3dtLXRleHRhcmVhPmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5USU1FOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtVGltZSAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSBkYXRhZW50cnltb2RlPVwiJHthdHRycy5nZXQoJ2RhdGFlbnRyeW1vZGUnKX1cIiAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlRJTUVTVEFNUDpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bURhdGVUaW1lICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpID09PSAndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gZGF0YWVudHJ5bW9kZT1cIiR7YXR0cnMuZ2V0KCdkYXRhZW50cnltb2RlJyl9XCIgJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5VUExPQUQ6XG4gICAgICAgICAgICBjb25zdCBjb3VudGVyID0gb3B0aW9ucy5jb3VudGVyO1xuICAgICAgICAgICAgY29uc3QgcENvdW50ZXIgPSBvcHRpb25zLnBDb3VudGVyO1xuICAgICAgICAgICAgY29uc3QgdXBsb2FkUHJvcHMgPSBvcHRpb25zLnVwbG9hZFByb3BzO1xuICAgICAgICAgICAgY29uc3QgZXZlbnRUbXBsID0gZ2V0VXBsb2FkRXZlbnRUbXBsKGF0dHJzLCBjb3VudGVyLCB1cGxvYWRQcm9wcyAmJiB1cGxvYWRQcm9wcy5uYW1lKTtcbiAgICAgICAgICAgIGlmICh1cGxvYWRQcm9wcykge1xuICAgICAgICAgICAgICAgIHRtcGwgPSBgPGZvcm0gbmFtZT1cIiR7dXBsb2FkUHJvcHMuZm9ybU5hbWV9XCIgJHtpbm5lclRtcGx9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb2N1cy10YXJnZXQgY2xhc3M9XCJmaWxlLXVwbG9hZFwiIHR5cGU9XCJmaWxlXCIgbmFtZT1cIiR7dXBsb2FkUHJvcHMubmFtZX1cIiAke2V2ZW50VG1wbH0gJHtzaG93VG1wbH0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPmA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRtcGwgPSBgPGEgY2xhc3M9XCJmb3JtLWNvbnRyb2wtc3RhdGljXCIgaHJlZj1cInt7JHtjb3VudGVyfS5ocmVmfX1cIiB0YXJnZXQ9XCJfYmxhbmtcIiAqbmdJZj1cIiR7Y291bnRlcn0uZmlsZXR5cGUgPT09ICdpbWFnZScgJiYgJHtjb3VudGVyfS5ocmVmXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHN0eWxlPVwiaGVpZ2h0OjJlbVwiIGNsYXNzPVwid2kgd2ktZmlsZVwiIFtzcmNdPVwiJHtjb3VudGVyfS5ocmVmXCIvPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiZm9ybS1jb250cm9sLXN0YXRpY1wiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJ7eyR7Y291bnRlcn0uaHJlZn19XCIgKm5nSWY9XCIke2NvdW50ZXJ9LmZpbGV0eXBlICE9PSAnaW1hZ2UnICYmICR7Y291bnRlcn0uaHJlZlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ3aSB3aS1maWxlXCI+PC9pPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCAke2lubmVyVG1wbH0gY2xhc3M9XCJhcHAtYmxvYi11cGxvYWRcIiBbbmdDbGFzc109XCJ7J2ZpbGUtcmVhZG9ubHknOiAke2NvdW50ZXJ9LnJlYWRvbmx5fVwiICR7ZXZlbnRUbXBsfVxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cIiR7Y291bnRlcn0ucmVxdWlyZWRcIiB0eXBlPVwiZmlsZVwiIG5hbWU9XCIke2F0dHJzLmdldCgna2V5JykgfHwgYXR0cnMuZ2V0KCduYW1lJyl9X2Zvcm1XaWRnZXRcIiBbcmVhZG9ubHldPVwiJHtjb3VudGVyfS5yZWFkb25seVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaGlkZGVuXT1cIiEke3BDb3VudGVyfS5pc1VwZGF0ZU1vZGVcIiBbYWNjZXB0XT1cIiR7Y291bnRlcn0ucGVybWl0dGVkXCIgJHtzaG93VG1wbH0+YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdG1wbCA9IGA8d20taW5wdXQgJHtpbm5lclRtcGx9ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IHR5cGU9XCJ0ZXh0XCIgJHt1cGRhdGVPblRtcGx9ICR7c2hvd1RtcGx9Pjwvd20taW5wdXQ+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gdG1wbDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSZXF1aXJlZEZvcm1XaWRnZXQgPSAod2lkZ2V0VHlwZSk6IHN0cmluZyA9PiB7XG4gICAgc3dpdGNoICh3aWRnZXRUeXBlKSB7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQVVUT0NPTVBMRVRFOlxuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlRZUEVBSEVBRDpcbiAgICAgICAgICAgIHJldHVybiAnd20tc2VhcmNoJztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DSElQUzpcbiAgICAgICAgICAgIHJldHVybiAnd20tY2hpcHMnO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkNPTE9SUElDS0VSOlxuICAgICAgICAgICAgcmV0dXJuICd3bS1jb2xvcnBpY2tlcic7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQ1VSUkVOQ1k6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLWN1cnJlbmN5JztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DVVNUT01XSURHRVQ6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLWN1c3RvbS13aWRnZXQnO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkRBVEU6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLWRhdGUnO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkRBVEVUSU1FOlxuICAgICAgICAgICAgcmV0dXJuICd3bS1kYXRldGltZSc7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuVElNRTpcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5USU1FU1RBTVA6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLXRpbWUnO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlJBVElORzpcbiAgICAgICAgICAgIHJldHVybiAnd20tcmF0aW5nJztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5SSUNIVEVYVDpcbiAgICAgICAgICAgIHJldHVybiAnd20tcmljaHRleHRlZGl0b3InO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlNMSURFUjpcbiAgICAgICAgICAgIHJldHVybiAnd20tc2xpZGVyJztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiAnd20tdGV4dCc7XG4gICAgfVxufTtcblxuLy8gVGhpcyBtZWh0b2QgaXMgdXNlZCB0byBhZGQgZGF0YXNldGJvdW5kZXhwciBhdHRyaWJ1dGUgZm9yIG5vZGVcbmNvbnN0IGFkZERhdGFzZXRCb3VuZEV4cHJBdHRyaWJ1dGUgPSAoY2hpbGROb2RlOiBFbGVtZW50LCBhdHRyOiBBdHRyaWJ1dGUsIGF0dHJWYWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgYXR0clZhbHVlID0gYXR0clZhbHVlLnJlcGxhY2UoJ2JpbmQ6JywgJycpO1xuICAgIGNvbnN0IGRhdGFzZXRCb3VuZEF0dHJpYnV0ZSA9IGNoaWxkTm9kZS5hdHRycy5maW5kKCBhID0+IGEubmFtZSA9PT0gJ2RhdGFzZXRib3VuZGV4cHInKTtcbiAgICBpZiAoYXR0ci5uYW1lID09PSAnZGF0YXNldCcgJiYgIWRhdGFzZXRCb3VuZEF0dHJpYnV0ZSkge1xuICAgICAgICBjaGlsZE5vZGUuYXR0cnMucHVzaChuZXcgQXR0cmlidXRlKCdkYXRhc2V0Ym91bmRleHByJywgYXR0clZhbHVlLCBhdHRyLnNvdXJjZVNwYW4sIGF0dHIua2V5U3BhbiwgYXR0ci52YWx1ZVNwYW4sIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7XG4gICAgfVxufTtcblxuXG4vKipcbiAqIGV4cDogVXNlciBidWlsdCBiaW5kIGV4cHJlc3Npb25cbiAqICBUbyBjaGVjayB0aGUgY3VzdG9tIHBpcGUgZXhwcmVzc2lvbnMuXG4gKiAgSWYgdXNlciB1c2UgdGhlIGN1c3RvbSBwaXBlIGV4cHJlc3Npb24gaXQgd2lsbCBjaGVjayBpbiB0aGUgZXhwLiB0aGF0IFwiY3VzdG9tXCIgc3RyaW5nIGV4aXN0IG9yIG5vdCB3aXRoICg6KSBzeW50YXguXG4gKiAgRWc6IGN1c3RvbTpcbiAqICAgICAgY3VzdG9tICAgIDpcbiAqL1xuZXhwb3J0IGNvbnN0IGNoZWNrSXNDdXN0b21QaXBlRXhwcmVzc2lvbiA9IGZ1bmN0aW9uKGV4cCl7XG4gICAgbGV0IGN1c3RvbVJlZ0V4ID0gLyhjdXN0b20oXFxzKjopKS9nO1xuICAgIGxldCBtYXRjaGVzID0gZXhwLm1hdGNoKGN1c3RvbVJlZ0V4KTtcbiAgICByZXR1cm4gbWF0Y2hlcyAmJiBtYXRjaGVzLmxlbmd0aDtcbn1cblxuXG4vLyBUaGUgYm91bmQgdmFsdWUgaXMgcmVwbGFjZWQgd2l0aCB7e2l0ZW0uZmllbGRuYW1lfX0gaGVyZS4gVGhpcyBpcyBuZWVkZWQgYnkgdGhlIGxpdmVMaXN0IHdoZW4gY29tcGlsaW5nIGlubmVyIGVsZW1lbnRzXG5leHBvcnQgY29uc3QgdXBkYXRlVGVtcGxhdGVBdHRycyA9IChyb290Tm9kZTogRWxlbWVudCB8IEFycmF5PEVsZW1lbnQ+LCBwYXJlbnREYXRhU2V0OiBzdHJpbmcsIHdpZGdldE5hbWU6IHN0cmluZywgaW5zdGFuY2U6IHN0cmluZyA9ICcnLCByZWZlcmVuY2VOYW1lOiBzdHJpbmcgPSAnaXRlbScpID0+IHtcblxuICAgIGNvbnN0IHNhbml0aXplZFBhcmVudERhdGFzZXQgPSBwYXJlbnREYXRhU2V0LnJlcGxhY2UoLyhbXmEtekEtWjAtOS5dKS9nLCAnXFxcXCQxJyk7XG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKCcoJyArIHNhbml0aXplZFBhcmVudERhdGFzZXQgKyAnKShcXFxcWzBcXFxcXSk/KC5kYXRhXFxcXFtcXFxcJGlcXFxcXSk/KC5jb250ZW50XFxcXFtcXFxcJGlcXFxcXSk/KFxcXFxbXFxcXCRpXFxcXF0pPycsICdnJyk7XG4gICAgbGV0IGN1cnJlbnRJdGVtUmVnRXg7XG4gICAgbGV0IGN1cnJlbnRJdGVtV2lkZ2V0c1JlZ0V4O1xuICAgIGxldCBmb3JtV2lkZ2V0c1JlZ2V4O1xuICAgIGxldCBub2RlczogQXJyYXk8RWxlbWVudD47XG4gICAgY29uc3Qgd2lkZ2V0TGlzdCA9IHtcbiAgICAgICAgJ3dtLWxpc3QnOiBbJ2l0ZW1jbGFzcycsICdkaXNhYmxlaXRlbScsICdkYXRhc2V0J11cbiAgICB9O1xuXG4gICAgaWYgKHdpZGdldE5hbWUpIHtcbiAgICAgICAgY3VycmVudEl0ZW1SZWdFeCA9IG5ldyBSZWdFeHAoYChXaWRnZXRzLiR7d2lkZ2V0TmFtZX0uY3VycmVudEl0ZW0pXFxcXGJgLCAnZycpO1xuICAgICAgICBjdXJyZW50SXRlbVdpZGdldHNSZWdFeCA9IG5ldyBSZWdFeHAoYChXaWRnZXRzLiR7d2lkZ2V0TmFtZX0uY3VycmVudEl0ZW1XaWRnZXRzKVxcXFxiYCwgJ2cnKTtcbiAgICAgICAgZm9ybVdpZGdldHNSZWdleCA9IG5ldyBSZWdFeHAoYChXaWRnZXRzLiguKikuKGZvcm1XaWRnZXRzfGZpbHRlcldpZGdldHMpKVxcXFxiYCwgJ2cnKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzQXJyYXkocm9vdE5vZGUpKSB7XG4gICAgICAgIC8vIFtXTVMtMTY3MTJdLFtXTVMtMTY3NjldLFtXTVMtMTY4MDVdIFRoZSBtYXJrdXAgb2Ygcm9vdCBub2RlKHRhYmxlLCBsaXN0LCBjYXJvdXNlbCkgbmVlZCB0byBiZSB1cGRhdGVkIG9ubHkgZm9yIHRoZSB3aWRnZXRzIG1lbnRpb25lZCBpbiB3aWRnZXRMaXN0IG1hcC5cbiAgICAgICAgbm9kZXMgPSB3aWRnZXRMaXN0Wyhyb290Tm9kZSBhcyBhbnkpLm5hbWVdID8gW3Jvb3ROb2RlIGFzIEVsZW1lbnRdIDogKChyb290Tm9kZSBhcyBhbnkpLmNoaWxkcmVuIHx8IFtdKSBhcyBBcnJheTxFbGVtZW50PjtcbiAgICB9IGVsc2Uge1xuICAgICAgICBub2RlcyA9IHJvb3ROb2RlIGFzIEFycmF5PEVsZW1lbnQ+O1xuICAgIH1cblxuICAgIG5vZGVzLmZvckVhY2goKGNoaWxkTm9kZTogRWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoY2hpbGROb2RlLm5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVOYW1lID0gY2hpbGROb2RlLm5hbWU7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnREYXRhU2V0TGVuZ3RoUmVnZXggPSAgbmV3IFJlZ0V4cCgnYmluZDpcXFxccypcXFxcKConICsgcGFyZW50RGF0YVNldCArICdcXFxcKSpcXFxcLmxlbmd0aFxcXFwpKicpO1xuICAgICAgICAgICAgY2hpbGROb2RlLmF0dHJzLmZvckVhY2goKGF0dHIpID0+IHtcbiAgICAgICAgICAgICAgICAvLyB0cmltIHRoZSBleHRyYSBzcGFjZXMgaW4gYmluZGluZ3NcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBhdHRyLnZhbHVlICYmIGF0dHIudmFsdWUudHJpbSgpO1xuICAgICAgICAgICAgICAgIGlmIChzdGFydHNXaXRoKHZhbHVlLCAnYmluZDonKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBUaGUgbWFya3VwIG9mIHJvb3Qgbm9kZSh0YWJsZSwgbGlzdCwgY2Fyb3VzZWwpIGF0dHJpYnV0ZXMgY29uYXRhaW5zIHNhbWUgZGF0YXNldCB2YXJpYWJsZSBiaW5kaW5nIHRoZW4gdGhvc2UgYXR0cmlidXRlcyBuZWVkIHRvIGJlIHVwZGF0ZWQgb25seSBmb3Igc3BlY2lmaWMgcHJvcGVydGllcyBtZW50aW9uZWQgaW4gd2lkZ2V0TGlzdCBtYXAuXG4gICAgICAgICAgICAgICAgICAgIGlmICghd2lkZ2V0TGlzdFtub2RlTmFtZV0gfHwgKHdpZGdldExpc3Rbbm9kZU5hbWVdICYmIHdpZGdldExpc3Rbbm9kZU5hbWVdLmluZGV4T2YoYXR0ci5uYW1lKSA+IC0xKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBpcyBcImJpbmQ6eHh4eHgueHh4eFwiLCBlaXRoZXIgdGhlIGRhdGFTZXQvc2NvcGVEYXRhU2V0IGhhcyB0byBjb250YWluIFwieHh4eC54eHh4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFtXTVMtMTc5MDhdOiBpZiBjaGlsZCB3aWRnZXQgY29udGFpbnMgYmluZCBleHByZXNzaW9uIGFzIHBhcmVuZGF0YXNldC5sZW5ndGggPiAwIHRoZW4gZG9udCByZXBsYWNlIGl0IHdpdGggaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluY2x1ZGVzKHZhbHVlLCBwYXJlbnREYXRhU2V0KSAmJiB2YWx1ZSAhPT0gJ2JpbmQ6JyArIHBhcmVudERhdGFTZXQgJiYgIXBhcmVudERhdGFTZXRMZW5ndGhSZWdleC50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgnYmluZDonLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkRGF0YXNldEJvdW5kRXhwckF0dHJpYnV0ZShjaGlsZE5vZGUsIGF0dHIsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UocmVnZXgsIHJlZmVyZW5jZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gJ2JpbmQ6JyArIHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlzIHRoaXMgY3VzdG9tIGJpbmQgZXhwcmVzc2lvbiBhbmQgY3VycmVudFdpZGdldEl0ZW0gcmVnZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjaGVja0lzQ3VzdG9tUGlwZUV4cHJlc3Npb24odmFsdWUpICYmIGN1cnJlbnRJdGVtUmVnRXgpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGRpbmcgdGhlIGN1cnJlbnRJdGVtIGFzIGxhc3QgYXJndW1lbnQgZm9yIHRoZSBleHByZXNzaW9uLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3IgdGhlIGN1c3RvbSBwaXBlcyhleHByZXNpb24pLCBpdCB3aWxsIHNlbmQgdGhlIGN1cnJlbnRJdGVtIGFzIGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlICs9ICAnOicrIGN1cnJlbnRJdGVtUmVnRXguZXhlYyhjdXJyZW50SXRlbVJlZ0V4LnNvdXJjZSlbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIFJlcGxhY2UgaXRlbSBpZiB3aWRnZXQgcHJvcGVydHkgaXMgYm91bmQgdG8gbGl2ZWxpc3QgY3VycmVudEl0ZW1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRJdGVtUmVnRXggJiYgY3VycmVudEl0ZW1SZWdFeC50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hhbmdlIHZhbHVlIGZyb20gJ2JpbmQ6V2lkZ2V0cy5mb3JtTmFtZS5mb3JtV2lkZ2V0cy5saXN0TmFtZS5jdXJyZW50SXRlbScgdG8gJ2JpbmQ6V2lkZ2V0cy5saXN0TmFtZS5jdXJyZW50SXRlbSdcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5pbmNsdWRlcygnLmZvcm1XaWRnZXRzJykgfHwgdmFsdWUuaW5jbHVkZXMoJy5maWx0ZXJXaWRnZXRzJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoZm9ybVdpZGdldHNSZWdleCwgJ1dpZGdldHMnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZERhdGFzZXRCb3VuZEV4cHJBdHRyaWJ1dGUoY2hpbGROb2RlLCBhdHRyLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoY3VycmVudEl0ZW1SZWdFeCwgcmVmZXJlbmNlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRJdGVtV2lkZ2V0c1JlZ0V4ICYmIGN1cnJlbnRJdGVtV2lkZ2V0c1JlZ0V4LnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoY3VycmVudEl0ZW1XaWRnZXRzUmVnRXgsIGAke2luc3RhbmNlfWN1cnJlbnRJdGVtV2lkZ2V0c2ApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgYXR0ci52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdXBkYXRlVGVtcGxhdGVBdHRycyhjaGlsZE5vZGUuY2hpbGRyZW4gYXMgQXJyYXk8RWxlbWVudD4sIHBhcmVudERhdGFTZXQsIHdpZGdldE5hbWUsIGluc3RhbmNlLCByZWZlcmVuY2VOYW1lKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcblxuLy8gSWYgZm9ybUNvbnRyb2xOYW1lIGF0dHJpYnV0ZSBpcyBwcmVzZW50LCBkb250IGFkZCB0aGUgbmdNb2RlbFxuZXhwb3J0IGNvbnN0IGdldE5nTW9kZWxBdHRyID0gYXR0cnMgPT4ge1xuICAgIGlmIChhdHRycy5oYXMoJ2Zvcm1Db250cm9sTmFtZScpIHx8IGF0dHJzLmhhcygnZm9ybUNvbnRyb2xOYW1lLmJpbmQnKSkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiAnbmdNb2RlbCc7XG59O1xuXG5jb25zdCByb3dBY3Rpb25BdHRycyA9IG5ldyBNYXAoXG4gICAgW1xuICAgICAgICBbJ2Rpc3BsYXktbmFtZScsICdjYXB0aW9uJ10sXG4gICAgICAgIFsnZGlzcGxheS1uYW1lLmJpbmQnLCAnY2FwdGlvbi5iaW5kJ10sXG4gICAgICAgIFsndGl0bGUnLCAnaGludCddLFxuICAgICAgICBbJ3RpdGxlLmJpbmQnLCAnaGludC5iaW5kJ10sXG4gICAgICAgIFsnc2hvdycsICdzaG93J10sXG4gICAgICAgIFsnc2hvdy5iaW5kJywgJ3Nob3cuYmluZCddLFxuICAgICAgICBbJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJ10sXG4gICAgICAgIFsnZGlzYWJsZWQuYmluZCcsICdkaXNhYmxlZC5iaW5kJ10sXG4gICAgICAgIFsnaHlwZXJsaW5rJywgJ2h5cGVybGluayddLFxuICAgICAgICBbJ2h5cGVybGluay5iaW5kJywgJ2h5cGVybGluay5iaW5kJ10sXG4gICAgICAgIFsndGFyZ2V0JywgJ3RhcmdldCddLFxuICAgICAgICBbJ2NvbmRpdGlvbmFsY2xhc3MuYmluZCcsICdjb25kaXRpb25hbGNsYXNzLmJpbmQnXSxcbiAgICAgICAgWydjb25kaXRpb25hbHN0eWxlLmJpbmQnLCAnY29uZGl0aW9uYWxzdHlsZS5iaW5kJ11cbiAgICBdXG4pO1xuXG5leHBvcnQgY29uc3QgZ2V0Um93QWN0aW9uQXR0cnMgPSBhdHRycyA9PiB7XG4gICAgbGV0IHRtcGwgPSAnJztcbiAgICBhdHRycy5mb3JFYWNoKCh2YWwsIGtleSkgPT4ge1xuICAgICAgICBjb25zdCBuZXdBdHRyID0gcm93QWN0aW9uQXR0cnMuZ2V0KGtleSk7XG4gICAgICAgIGlmIChuZXdBdHRyKSB7XG4gICAgICAgICAgICB0bXBsICs9IGAke25ld0F0dHJ9PVwiJHt2YWx9XCIgYDtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB0bXBsO1xufTtcbiJdfQ==