@wavemaker/app-ng-runtime 12.0.0-next.45503 → 12.0.0-next.46502

Sign up to get free protection for your applications and to get access to all the features.
Files changed (324) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +53 -45
  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/accordion/accordion-pane/accordion-pane.build.mjs +2 -2
  11. app-ng-runtime/build-task/esm2022/containers/accordion/accordion.build.mjs +3 -3
  12. app-ng-runtime/build-task/esm2022/containers/tile/tile.build.mjs +2 -2
  13. app-ng-runtime/build-task/esm2022/containers/wizard/wizard.build.mjs +2 -2
  14. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +4 -4
  15. app-ng-runtime/build-task/esm2022/device/barcode-scanner/barcode-scanner.build.mjs +2 -2
  16. app-ng-runtime/build-task/esm2022/device/camera/camera.build.mjs +2 -2
  17. app-ng-runtime/build-task/esm2022/dialogs/alert-dialog/alert-dialog.build.mjs +2 -2
  18. app-ng-runtime/build-task/esm2022/input/calendar/calendar.build.mjs +2 -2
  19. app-ng-runtime/build-task/esm2022/input/chips/chips.build.mjs +2 -2
  20. app-ng-runtime/build-task/esm2022/input/color-picker/color-picker.build.mjs +3 -3
  21. app-ng-runtime/build-task/esm2022/input/currency/currency.build.mjs +3 -3
  22. app-ng-runtime/build-task/esm2022/input/default/button/button.build.mjs +2 -2
  23. app-ng-runtime/build-task/esm2022/input/default/button-group/button-group.build.mjs +2 -2
  24. app-ng-runtime/build-task/esm2022/input/default/switch/switch.build.mjs +2 -2
  25. app-ng-runtime/build-task/esm2022/input/file-upload/file-upload.build.mjs +6 -2
  26. app-ng-runtime/build-task/esm2022/page/footer/footer.build.mjs +2 -2
  27. app-ng-runtime/build-task/esm2022/page/header/header.build.mjs +2 -2
  28. app-ng-runtime/build-task/esm2022/page/layout.build.mjs +2 -2
  29. app-ng-runtime/build-task/esm2022/page/left-panel/left-panel.build.mjs +2 -2
  30. app-ng-runtime/build-task/esm2022/page/page.build.mjs +2 -2
  31. app-ng-runtime/build-task/esm2022/page/right-panel/right-panel.build.mjs +2 -2
  32. app-ng-runtime/build-task/esm2022/page/top-nav/top-nav.build.mjs +2 -2
  33. app-ng-runtime/build-task/fesm2022/index.mjs +53 -45
  34. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  35. app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +1 -1
  36. app-ng-runtime/components/advanced/carousel/esm2022/carousel.animator.mjs +2 -2
  37. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +1 -1
  38. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  39. app-ng-runtime/components/base/bundles/index.umd.js +8 -7
  40. app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +3 -3
  41. app-ng-runtime/components/base/esm2022/utils/live-utils.mjs +8 -2
  42. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +1 -6
  43. app-ng-runtime/components/base/fesm2022/index.mjs +8 -7
  44. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  45. app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -1
  46. app-ng-runtime/components/basic/default/anchor/anchor.component.d.ts +1 -0
  47. app-ng-runtime/components/basic/default/audio/audio.component.d.ts +3 -0
  48. app-ng-runtime/components/basic/default/bundles/index.umd.js +39 -19
  49. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.component.mjs +4 -4
  50. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.props.mjs +2 -1
  51. app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +14 -6
  52. app-ng-runtime/components/basic/default/esm2022/audio/audio.props.mjs +2 -1
  53. app-ng-runtime/components/basic/default/esm2022/html/html.props.mjs +2 -1
  54. app-ng-runtime/components/basic/default/esm2022/icon/icon.component.mjs +6 -7
  55. app-ng-runtime/components/basic/default/esm2022/icon/icon.props.mjs +2 -1
  56. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.component.mjs +3 -3
  57. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.props.mjs +3 -2
  58. app-ng-runtime/components/basic/default/esm2022/label/label.props.mjs +1 -1
  59. app-ng-runtime/components/basic/default/esm2022/picture/picture.directive.mjs +2 -2
  60. app-ng-runtime/components/basic/default/esm2022/picture/picture.props.mjs +3 -1
  61. app-ng-runtime/components/basic/default/esm2022/spinner/spinner.props.mjs +3 -2
  62. app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +8 -4
  63. app-ng-runtime/components/basic/default/esm2022/video/video.props.mjs +2 -1
  64. app-ng-runtime/components/basic/default/fesm2022/index.mjs +39 -19
  65. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  66. app-ng-runtime/components/basic/default/icon/icon.component.d.ts +1 -0
  67. app-ng-runtime/components/basic/default/iframe/iframe.component.d.ts +1 -0
  68. app-ng-runtime/components/basic/default/picture/picture.directive.d.ts +2 -1
  69. app-ng-runtime/components/basic/default/video/video.component.d.ts +2 -0
  70. app-ng-runtime/components/basic/progress/bundles/index.umd.js +17 -9
  71. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +9 -5
  72. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.props.mjs +2 -1
  73. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +8 -6
  74. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.props.mjs +2 -1
  75. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +17 -9
  76. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  77. app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +2 -0
  78. app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -1
  79. app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +2 -0
  80. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +2 -1
  81. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.props.mjs +2 -1
  82. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +2 -0
  83. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  84. app-ng-runtime/components/basic/search/bundles/index.umd.js +16 -9
  85. app-ng-runtime/components/basic/search/esm2022/search.component.mjs +19 -13
  86. app-ng-runtime/components/basic/search/esm2022/search.props.mjs +2 -1
  87. app-ng-runtime/components/basic/search/fesm2022/index.mjs +16 -9
  88. app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
  89. app-ng-runtime/components/basic/search/search.component.d.ts +4 -2
  90. app-ng-runtime/components/chart/bundles/index.umd.js +1 -0
  91. app-ng-runtime/components/chart/esm2022/chart.utils.mjs +2 -1
  92. app-ng-runtime/components/chart/fesm2022/index.mjs +1 -0
  93. app-ng-runtime/components/chart/fesm2022/index.mjs.map +1 -1
  94. app-ng-runtime/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +1 -0
  95. app-ng-runtime/components/containers/accordion/bundles/index.umd.js +15 -9
  96. app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +13 -10
  97. app-ng-runtime/components/containers/accordion/esm2022/accordion.directive.mjs +4 -1
  98. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +15 -9
  99. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  100. app-ng-runtime/components/containers/panel/bundles/index.umd.js +14 -14
  101. app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +15 -15
  102. app-ng-runtime/components/containers/panel/fesm2022/index.mjs +14 -14
  103. app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
  104. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +2 -2
  105. app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +3 -3
  106. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +2 -2
  107. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  108. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +6 -6
  109. app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +7 -7
  110. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +6 -6
  111. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  112. app-ng-runtime/components/data/form/bundles/index.umd.js +4 -0
  113. app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +5 -1
  114. app-ng-runtime/components/data/form/fesm2022/index.mjs +4 -0
  115. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  116. app-ng-runtime/components/data/form/form-field/form-field.directive.d.ts +1 -0
  117. app-ng-runtime/components/data/list/bundles/index.umd.js +19 -11
  118. app-ng-runtime/components/data/list/esm2022/list-item.directive.mjs +10 -1
  119. app-ng-runtime/components/data/list/esm2022/list.component.mjs +12 -12
  120. app-ng-runtime/components/data/list/fesm2022/index.mjs +20 -12
  121. app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
  122. app-ng-runtime/components/data/live-table/bundles/index.umd.js +2 -2
  123. app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +3 -3
  124. app-ng-runtime/components/data/live-table/fesm2022/index.mjs +2 -2
  125. app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
  126. app-ng-runtime/components/data/pagination/bundles/index.umd.js +2 -0
  127. app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +3 -1
  128. app-ng-runtime/components/data/pagination/fesm2022/index.mjs +2 -0
  129. app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
  130. app-ng-runtime/components/data/table/bundles/index.umd.js +44 -10
  131. app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +14 -5
  132. app-ng-runtime/components/data/table/esm2022/table.component.mjs +30 -7
  133. app-ng-runtime/components/data/table/esm2022/table.props.mjs +3 -1
  134. app-ng-runtime/components/data/table/fesm2022/index.mjs +45 -11
  135. app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
  136. app-ng-runtime/components/data/table/table.component.d.ts +8 -1
  137. app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +6 -4
  138. app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +7 -5
  139. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs +6 -4
  140. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  141. app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +8 -5
  142. app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +9 -6
  143. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs +8 -5
  144. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  145. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +9 -3
  146. app-ng-runtime/components/dialogs/default/dialog-header/dialog-header.component.d.ts +2 -1
  147. app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +2 -1
  148. app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +9 -4
  149. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +9 -3
  150. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  151. app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +4 -4
  152. app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +5 -5
  153. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +4 -4
  154. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  155. app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +9 -5
  156. app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +10 -6
  157. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs +9 -5
  158. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  159. app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +9 -5
  160. app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +10 -6
  161. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs +9 -5
  162. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  163. app-ng-runtime/components/input/calendar/bundles/index.umd.js +2 -4
  164. app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +3 -5
  165. app-ng-runtime/components/input/calendar/fesm2022/index.mjs +2 -4
  166. app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
  167. app-ng-runtime/components/input/chips/bundles/index.umd.js +25 -7
  168. app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +25 -8
  169. app-ng-runtime/components/input/chips/esm2022/chips.props.mjs +2 -1
  170. app-ng-runtime/components/input/chips/fesm2022/index.mjs +25 -7
  171. app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
  172. app-ng-runtime/components/input/color-picker/bundles/index.umd.js +5 -3
  173. app-ng-runtime/components/input/color-picker/color-picker.component.d.ts +1 -0
  174. app-ng-runtime/components/input/color-picker/esm2022/color-picker.component.mjs +6 -5
  175. app-ng-runtime/components/input/color-picker/esm2022/color-picker.props.mjs +2 -1
  176. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs +5 -3
  177. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  178. app-ng-runtime/components/input/currency/bundles/index.umd.js +4 -3
  179. app-ng-runtime/components/input/currency/currency.component.d.ts +1 -0
  180. app-ng-runtime/components/input/currency/esm2022/currency.component.mjs +6 -6
  181. app-ng-runtime/components/input/currency/esm2022/currency.props.mjs +2 -1
  182. app-ng-runtime/components/input/currency/fesm2022/index.mjs +4 -3
  183. app-ng-runtime/components/input/currency/fesm2022/index.mjs.map +1 -1
  184. app-ng-runtime/components/input/default/bundles/index.umd.js +184 -105
  185. app-ng-runtime/components/input/default/button/button.component.d.ts +1 -0
  186. app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +1 -0
  187. app-ng-runtime/components/input/default/esm2022/base-form.component.mjs +3 -3
  188. app-ng-runtime/components/input/default/esm2022/button/button.component.mjs +1 -1
  189. app-ng-runtime/components/input/default/esm2022/button/button.props.mjs +2 -1
  190. app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +8 -7
  191. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +7 -7
  192. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.props.mjs +2 -1
  193. app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +21 -16
  194. app-ng-runtime/components/input/default/esm2022/number/number.component.mjs +5 -5
  195. app-ng-runtime/components/input/default/esm2022/number/number.props.mjs +3 -1
  196. app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +28 -23
  197. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +20 -18
  198. app-ng-runtime/components/input/default/esm2022/select/select.props.mjs +2 -1
  199. app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +6 -5
  200. app-ng-runtime/components/input/default/esm2022/switch/switch.props.mjs +2 -1
  201. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +5 -5
  202. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.props.mjs +2 -1
  203. app-ng-runtime/components/input/default/esm2022/text/color/input-color.component.mjs +5 -5
  204. app-ng-runtime/components/input/default/esm2022/text/color/input-color.props.mjs +2 -1
  205. app-ng-runtime/components/input/default/esm2022/text/email/input-email.component.mjs +5 -5
  206. app-ng-runtime/components/input/default/esm2022/text/email/input-email.props.mjs +2 -1
  207. app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +66 -13
  208. app-ng-runtime/components/input/default/esm2022/text/number/input-number.component.mjs +5 -5
  209. app-ng-runtime/components/input/default/esm2022/text/number/input-number.props.mjs +2 -1
  210. app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +5 -5
  211. app-ng-runtime/components/input/default/esm2022/text/text/input-text.props.mjs +2 -1
  212. app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +6 -6
  213. app-ng-runtime/components/input/default/esm2022/textarea/textarea.props.mjs +2 -1
  214. app-ng-runtime/components/input/default/fesm2022/index.mjs +184 -105
  215. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  216. app-ng-runtime/components/input/default/number/number.component.d.ts +1 -0
  217. app-ng-runtime/components/input/default/select/select.component.d.ts +2 -0
  218. app-ng-runtime/components/input/default/text/calendar/input-calendar.component.d.ts +1 -0
  219. app-ng-runtime/components/input/default/text/color/input-color.component.d.ts +1 -0
  220. app-ng-runtime/components/input/default/text/email/input-email.component.d.ts +1 -0
  221. app-ng-runtime/components/input/default/text/locale/number-locale.d.ts +1 -0
  222. app-ng-runtime/components/input/default/text/number/input-number.component.d.ts +1 -0
  223. app-ng-runtime/components/input/default/text/text/input-text.component.d.ts +1 -0
  224. app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +1 -0
  225. app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +2 -1
  226. app-ng-runtime/components/input/epoch/bundles/index.umd.js +28 -21
  227. app-ng-runtime/components/input/epoch/date/date.component.d.ts +1 -0
  228. app-ng-runtime/components/input/epoch/date-time/date-time.component.d.ts +2 -1
  229. app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +10 -6
  230. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +8 -8
  231. app-ng-runtime/components/input/epoch/esm2022/date/date.props.mjs +2 -1
  232. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +9 -9
  233. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.props.mjs +2 -1
  234. app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +7 -7
  235. app-ng-runtime/components/input/epoch/esm2022/time/time.props.mjs +2 -1
  236. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +25 -18
  237. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  238. app-ng-runtime/components/input/epoch/time/time.component.d.ts +1 -0
  239. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +224 -121
  240. app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +220 -123
  241. app-ng-runtime/components/input/file-upload/esm2022/file-upload.props.mjs +7 -1
  242. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +225 -122
  243. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  244. app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +18 -11
  245. app-ng-runtime/components/input/rating/bundles/index.umd.js +2 -2
  246. app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +3 -3
  247. app-ng-runtime/components/input/rating/fesm2022/index.mjs +2 -2
  248. app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
  249. app-ng-runtime/components/input/slider/bundles/index.umd.js +5 -6
  250. app-ng-runtime/components/input/slider/esm2022/slider.component.mjs +6 -8
  251. app-ng-runtime/components/input/slider/esm2022/slider.props.mjs +2 -1
  252. app-ng-runtime/components/input/slider/fesm2022/index.mjs +5 -6
  253. app-ng-runtime/components/input/slider/fesm2022/index.mjs.map +1 -1
  254. app-ng-runtime/components/input/slider/slider.component.d.ts +1 -0
  255. app-ng-runtime/components/navigation/breadcrumb/bundles/index.umd.js +6 -6
  256. app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +7 -7
  257. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +6 -6
  258. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  259. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +8 -6
  260. app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +8 -7
  261. app-ng-runtime/components/navigation/menu/esm2022/menu.props.mjs +2 -1
  262. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +8 -6
  263. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  264. app-ng-runtime/components/navigation/menu/menu.component.d.ts +1 -0
  265. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +121 -13
  266. app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +122 -15
  267. app-ng-runtime/components/navigation/popover/esm2022/popover.props.mjs +2 -1
  268. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +121 -13
  269. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  270. app-ng-runtime/components/navigation/popover/popover.component.d.ts +15 -3
  271. app-ng-runtime/components/page/default/bundles/index.umd.js +2 -1
  272. app-ng-runtime/components/page/default/esm2022/page.props.mjs +4 -3
  273. app-ng-runtime/components/page/default/fesm2022/index.mjs +2 -1
  274. app-ng-runtime/components/page/default/fesm2022/index.mjs.map +1 -1
  275. app-ng-runtime/components/page/footer/bundles/index.umd.js +2 -1
  276. app-ng-runtime/components/page/footer/esm2022/footer.props.mjs +3 -2
  277. app-ng-runtime/components/page/footer/fesm2022/index.mjs +2 -1
  278. app-ng-runtime/components/page/footer/fesm2022/index.mjs.map +1 -1
  279. app-ng-runtime/components/page/header/bundles/index.umd.js +2 -1
  280. app-ng-runtime/components/page/header/esm2022/header.props.mjs +3 -2
  281. app-ng-runtime/components/page/header/fesm2022/index.mjs +2 -1
  282. app-ng-runtime/components/page/header/fesm2022/index.mjs.map +1 -1
  283. app-ng-runtime/components/page/left-panel/bundles/index.umd.js +2 -1
  284. app-ng-runtime/components/page/left-panel/esm2022/left-panel.props.mjs +3 -2
  285. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +2 -1
  286. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  287. app-ng-runtime/components/page/right-panel/bundles/index.umd.js +2 -1
  288. app-ng-runtime/components/page/right-panel/esm2022/right-panel.props.mjs +3 -2
  289. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +2 -1
  290. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  291. app-ng-runtime/components/page/top-nav/bundles/index.umd.js +2 -1
  292. app-ng-runtime/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
  293. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs +2 -1
  294. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  295. app-ng-runtime/core/bundles/index.umd.js +15 -13
  296. app-ng-runtime/core/esm2022/public_api.mjs +2 -2
  297. app-ng-runtime/core/esm2022/utils/build-utils.mjs +7 -7
  298. app-ng-runtime/core/esm2022/utils/utils.mjs +4 -5
  299. app-ng-runtime/core/fesm2022/index.mjs +11 -11
  300. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  301. app-ng-runtime/core/public_api.d.ts +1 -1
  302. app-ng-runtime/core/utils/utils.d.ts +1 -1
  303. app-ng-runtime/mobile/components/device/barcode-scanner/bundles/index.umd.js +2 -1
  304. app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.props.mjs +3 -2
  305. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs +2 -1
  306. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
  307. app-ng-runtime/mobile/components/device/camera/bundles/index.umd.js +2 -1
  308. app-ng-runtime/mobile/components/device/camera/esm2022/camera.props.mjs +3 -2
  309. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs +2 -1
  310. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
  311. app-ng-runtime/package.json +1 -1
  312. app-ng-runtime/runtime/base/bundles/index.umd.js +6 -4
  313. app-ng-runtime/runtime/base/components/app-component/app.component.d.ts +2 -3
  314. app-ng-runtime/runtime/base/esm2022/components/app-component/app.component.mjs +5 -5
  315. app-ng-runtime/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +5 -4
  316. app-ng-runtime/runtime/base/fesm2022/index.mjs +6 -4
  317. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  318. app-ng-runtime/runtime/base/guards/can-deactivate-page.guard.d.ts +2 -1
  319. app-ng-runtime/scripts/datatable/datatable.js +33 -32
  320. app-ng-runtime/variables/bundles/index.umd.js +34 -16
  321. app-ng-runtime/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +35 -17
  322. app-ng-runtime/variables/fesm2022/index.mjs +34 -16
  323. app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
  324. app-ng-runtime/variables/manager/variable/web-socket-variable.manager.d.ts +0 -4
@@ -104,6 +104,7 @@ export declare class FormFieldDirective extends StylableComponent implements OnI
104
104
  setValidationMessage(val: any): void;
105
105
  setReadOnlyState(): void;
106
106
  resetDisplayInput(): void;
107
+ reset(): void;
107
108
  triggerUploadEvent($event: any, eventName: any): void;
108
109
  private registerFormField;
109
110
  ngOnInit(): void;
@@ -179,6 +179,14 @@
179
179
  }
180
180
  ngAfterViewInit() {
181
181
  this.setUpCUDHandlers();
182
+ const componentElements = Array.from(this.nativeElement.querySelectorAll('[widget-id]'));
183
+ componentElements.forEach((component) => {
184
+ if (component.widget instanceof input.BaseFormComponent) {
185
+ if (!component.widget.$attrs.get('datavaluesource.bind')) {
186
+ component.widget.datavaluesource = this.listComponent['datasource'];
187
+ }
188
+ }
189
+ });
182
190
  }
183
191
  static { this.ɵfac = function ListItemDirective_Factory(t) { return new (t || ListItemDirective)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(i0__namespace.ElementRef), i0__namespace.ɵɵdirectiveInject(i2__namespace.App), i0__namespace.ɵɵdirectiveInject(ListComponent, 8)); }; }
184
192
  static { this.ɵdir = /*@__PURE__*/ i0__namespace.ɵɵdefineDirective({ type: ListItemDirective, selectors: [["", "wmListItem", ""]], hostVars: 4, hostBindings: function ListItemDirective_HostBindings(rf, ctx) { if (rf & 1) {
@@ -590,10 +598,10 @@
590
598
  i0__namespace.ɵɵproperty("ngIf", ctx_r1.onDemandLoad);
591
599
  } }
592
600
  function ListComponent_ng_template_14_li_0_i_6_Template(rf, ctx) { if (rf & 1) {
593
- i0__namespace.ɵɵelement(0, "i", 51);
601
+ i0__namespace.ɵɵelement(0, "i", 52);
594
602
  } }
595
603
  function ListComponent_ng_template_14_li_0_span_7_Template(rf, ctx) { if (rf & 1) {
596
- i0__namespace.ɵɵelementStart(0, "span", 52);
604
+ i0__namespace.ɵɵelementStart(0, "span", 53);
597
605
  i0__namespace.ɵɵtext(1);
598
606
  i0__namespace.ɵɵelementEnd();
599
607
  } if (rf & 2) {
@@ -601,8 +609,8 @@
601
609
  i0__namespace.ɵɵadvance();
602
610
  i0__namespace.ɵɵtextInterpolate(groupObj_r12.data.length);
603
611
  } }
604
- function ListComponent_ng_template_14_li_0_li_9_Template(rf, ctx) { if (rf & 1) {
605
- i0__namespace.ɵɵelementStart(0, "li", 53, 1);
612
+ function ListComponent_ng_template_14_li_0_li_10_Template(rf, ctx) { if (rf & 1) {
613
+ i0__namespace.ɵɵelementStart(0, "li", 54, 1);
606
614
  i0__namespace.ɵɵelementContainer(2, 31);
607
615
  i0__namespace.ɵɵelementEnd();
608
616
  } if (rf & 2) {
@@ -627,9 +635,9 @@
627
635
  i0__namespace.ɵɵelementStart(5, "div", 47);
628
636
  i0__namespace.ɵɵtemplate(6, ListComponent_ng_template_14_li_0_i_6_Template, 1, 0, "i", 48)(7, ListComponent_ng_template_14_li_0_span_7_Template, 2, 1, "span", 49);
629
637
  i0__namespace.ɵɵelementEnd()()();
630
- i0__namespace.ɵɵelementStart(8, "ul");
631
- i0__namespace.ɵɵtemplate(9, ListComponent_ng_template_14_li_0_li_9_Template, 3, 23, "li", 50);
632
- i0__namespace.ɵɵelementEnd()()();
638
+ i0__namespace.ɵɵelementStart(8, "li", 50)(9, "ul");
639
+ i0__namespace.ɵɵtemplate(10, ListComponent_ng_template_14_li_0_li_10_Template, 3, 23, "li", 51);
640
+ i0__namespace.ɵɵelementEnd()()()();
633
641
  } if (rf & 2) {
634
642
  const groupObj_r12 = ctx.$implicit;
635
643
  const ctx_r1 = i0__namespace.ɵɵnextContext(2);
@@ -644,13 +652,13 @@
644
652
  i0__namespace.ɵɵproperty("ngIf", ctx_r1.collapsible);
645
653
  i0__namespace.ɵɵadvance();
646
654
  i0__namespace.ɵɵproperty("ngIf", ctx_r1.showcount);
647
- i0__namespace.ɵɵadvance();
655
+ i0__namespace.ɵɵadvance(2);
648
656
  i0__namespace.ɵɵclassMapInterpolate1("list-group clearfix ", ctx_r1.direction === "horizontal" ? "app-horizontal-list" : "", "");
649
657
  i0__namespace.ɵɵadvance();
650
658
  i0__namespace.ɵɵproperty("ngForOf", groupObj_r12.data)("ngForTrackBy", ctx_r1.trackByFn);
651
659
  } }
652
660
  function ListComponent_ng_template_14_Template(rf, ctx) { if (rf & 1) {
653
- i0__namespace.ɵɵtemplate(0, ListComponent_ng_template_14_li_0_Template, 10, 13, "li", 43);
661
+ i0__namespace.ɵɵtemplate(0, ListComponent_ng_template_14_li_0_Template, 11, 13, "li", 43);
654
662
  } if (rf & 2) {
655
663
  const ctx_r1 = i0__namespace.ɵɵnextContext();
656
664
  i0__namespace.ɵɵproperty("ngForOf", ctx_r1.groupedData);
@@ -1757,7 +1765,7 @@
1757
1765
  i0__namespace.ɵɵqueryRefresh(_t = i0__namespace.ɵɵloadQuery()) && (ctx.listItems = _t);
1758
1766
  } }, features: [i0__namespace.ɵɵProvidersFeature([
1759
1767
  i1.provideAsWidgetRef(ListComponent)
1760
- ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c3, decls: 16, vars: 19, consts: [["groupedListTemplate", ""], ["listItemRef", "listItemRef"], ["class", "panel-heading", 4, "ngIf"], ["class", "app-datanavigator", "aria-label", "Page navigation", 4, "ngIf"], ["aria-live", "polite", "aria-atomic", "true", "class", "sr-only", 4, "ngIf"], ["class", "sr-only", 3, "id", 4, "ngIf"], ["aria-live", "assertive", "class", "sr-only", 4, "ngIf"], ["role", "list", 3, "keydown.enter", "keydown.space", "keydown.arrowup", "keydown.arrowdown", "keydown.arrowleft", "keydown.arrowright", "keydown.shift.arrowup", "keydown.shift.arrowdown", "keydown.shift.arrowleft", "keydown.shift.arrowright", "hidden"], [3, "ngIf", "ngIfElse"], [3, "ngTemplateOutlet"], ["class", "no-data-msg", 3, "textContent", 4, "ngIf"], ["class", "loading-data-msg", 4, "ngIf"], ["class", "app-datanavigator", 4, "ngIf"], ["class", "panel-footer", 3, "hidden", 4, "ngIf"], [1, "panel-heading"], [1, "panel-title"], [1, "pull-left"], ["aria-hidden", "true", 3, "hidden"], [1, "heading", 3, "innerHTML"], [1, "description", 3, "innerHTML"], ["aria-label", "Page navigation", 1, "app-datanavigator"], [1, "pager"], [1, "previous", 3, "ngClass"], ["href", "javascript:void(0);", 3, "click"], ["aria-hidden", "true", 1, "wi", "wi-chevron-left"], [1, "sr-only"], ["aria-live", "polite", "aria-atomic", "true", 1, "sr-only"], [1, "sr-only", 3, "id"], ["aria-live", "assertive", 1, "sr-only"], ["role", "listitem", 3, "class", "ngClass", "wmListItem", 4, "ngFor", "ngForOf"], ["role", "listitem", 3, "ngClass", "wmListItem"], [3, "ngTemplateOutlet", "ngTemplateOutletInjector", "ngTemplateOutletContext"], [1, "no-data-msg", 3, "textContent"], [1, "loading-data-msg"], ["aria-hidden", "true", 1, "app-icon", "panel-icon", "fa-spin", 3, "ngClass"], [1, "loading-text", 3, "textContent"], [1, "app-datanavigator"], [1, "next", 3, "ngClass"], ["aria-hidden", "true", 1, "wi", "wi-chevron-right"], [1, "panel-footer", 3, "hidden"], ["wmPagination", "", "navigationalign.bind", "navigationalign", "navigation.bind", "navControls", "showrecordcount.bind", "showrecordcount", "maxsize.bind", "maxsize", "boundarylinks.bind", "boundarylinks", "forceellipses.bind", "forceellipses", "directionlinks.bind", "directionlinks", "show.bind", "!onDemandLoad", "paginationchange.event", "beforePaginationChange($event, $index)"], ["href", "javascript:void(0);", "class", "app-button btn btn-block", 3, "ngClass", "textContent", "click", 4, "ngIf"], ["href", "javascript:void(0);", 1, "app-button", "btn", "btn-block", 3, "click", "ngClass", "textContent"], ["class", "app-list-item-group clearfix", 4, "ngFor", "ngForOf"], [1, "app-list-item-group", "clearfix"], [1, "list-group", "item-group", 3, "ngClass"], [1, "app-list-item-header", "list-item", "list-group-header", 3, "click", "ngClass"], [1, "header-action"], ["class", "app-icon wi action wi-chevron-up", 4, "ngIf"], ["class", "label label-default", 4, "ngIf"], [3, "class", "ngClass", "wmListItem", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "app-icon", "wi", "action", "wi-chevron-up"], [1, "label", "label-default"], [3, "ngClass", "wmListItem"]], template: function ListComponent_Template(rf, ctx) { if (rf & 1) {
1768
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c3, decls: 16, vars: 19, consts: [["groupedListTemplate", ""], ["listItemRef", "listItemRef"], ["class", "panel-heading", 4, "ngIf"], ["class", "app-datanavigator", "aria-label", "Page navigation", 4, "ngIf"], ["aria-live", "polite", "aria-atomic", "true", "class", "sr-only", 4, "ngIf"], ["class", "sr-only", 3, "id", 4, "ngIf"], ["aria-live", "assertive", "class", "sr-only", 4, "ngIf"], ["role", "list", 3, "keydown.enter", "keydown.space", "keydown.arrowup", "keydown.arrowdown", "keydown.arrowleft", "keydown.arrowright", "keydown.shift.arrowup", "keydown.shift.arrowdown", "keydown.shift.arrowleft", "keydown.shift.arrowright", "hidden"], [3, "ngIf", "ngIfElse"], [3, "ngTemplateOutlet"], ["class", "no-data-msg", 3, "textContent", 4, "ngIf"], ["class", "loading-data-msg", 4, "ngIf"], ["class", "app-datanavigator", 4, "ngIf"], ["class", "panel-footer", 3, "hidden", 4, "ngIf"], [1, "panel-heading"], [1, "panel-title"], [1, "pull-left"], ["aria-hidden", "true", 3, "hidden"], [1, "heading", 3, "innerHTML"], [1, "description", 3, "innerHTML"], ["aria-label", "Page navigation", 1, "app-datanavigator"], [1, "pager"], [1, "previous", 3, "ngClass"], ["href", "javascript:void(0);", 3, "click"], ["aria-hidden", "true", 1, "wi", "wi-chevron-left"], [1, "sr-only"], ["aria-live", "polite", "aria-atomic", "true", 1, "sr-only"], [1, "sr-only", 3, "id"], ["aria-live", "assertive", 1, "sr-only"], ["role", "listitem", 3, "class", "ngClass", "wmListItem", 4, "ngFor", "ngForOf"], ["role", "listitem", 3, "ngClass", "wmListItem"], [3, "ngTemplateOutlet", "ngTemplateOutletInjector", "ngTemplateOutletContext"], [1, "no-data-msg", 3, "textContent"], [1, "loading-data-msg"], ["aria-hidden", "true", 1, "app-icon", "panel-icon", "fa-spin", 3, "ngClass"], [1, "loading-text", 3, "textContent"], [1, "app-datanavigator"], [1, "next", 3, "ngClass"], ["aria-hidden", "true", 1, "wi", "wi-chevron-right"], [1, "panel-footer", 3, "hidden"], ["wmPagination", "", "navigationalign.bind", "navigationalign", "navigation.bind", "navControls", "showrecordcount.bind", "showrecordcount", "maxsize.bind", "maxsize", "boundarylinks.bind", "boundarylinks", "forceellipses.bind", "forceellipses", "directionlinks.bind", "directionlinks", "show.bind", "!onDemandLoad", "paginationchange.event", "beforePaginationChange($event, $index)"], ["href", "javascript:void(0);", "class", "app-button btn btn-block", 3, "ngClass", "textContent", "click", 4, "ngIf"], ["href", "javascript:void(0);", 1, "app-button", "btn", "btn-block", 3, "click", "ngClass", "textContent"], ["class", "app-list-item-group clearfix", 4, "ngFor", "ngForOf"], [1, "app-list-item-group", "clearfix"], [1, "list-group", "item-group", 3, "ngClass"], [1, "app-list-item-header", "list-item", "list-group-header", 3, "click", "ngClass"], [1, "header-action"], ["class", "app-icon wi action wi-chevron-up", 4, "ngIf"], ["class", "label label-default", 4, "ngIf"], [1, "list-group-container"], [3, "class", "ngClass", "wmListItem", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "app-icon", "wi", "action", "wi-chevron-up"], [1, "label", "label-default"], [3, "ngClass", "wmListItem"]], template: function ListComponent_Template(rf, ctx) { if (rf & 1) {
1761
1769
  const _r1 = i0__namespace.ɵɵgetCurrentView();
1762
1770
  i0__namespace.ɵɵtemplate(0, ListComponent_div_0_Template, 7, 6, "div", 2)(1, ListComponent_div_1_Template, 7, 6, "div", 3)(2, ListComponent_div_2_Template, 2, 1, "div", 4);
1763
1771
  i0__namespace.ɵɵelementStart(3, "div");
@@ -1804,7 +1812,7 @@
1804
1812
  type: i0.Component,
1805
1813
  args: [{ selector: 'div[wmList]', providers: [
1806
1814
  i1.provideAsWidgetRef(ListComponent)
1807
- ], template: "<div class=\"panel-heading\" *ngIf=\"title || subheading || iconclass\">\n <h3 class=\"panel-title\">\n <div class=\"pull-left\">\n <i class=\"app-icon panel-icon {{iconclass}}\" aria-hidden=\"true\" [hidden]=\"!iconclass\"></i>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n </h3>\n</div>\n\n<div class=\"app-datanavigator\" [attr.aria-disabled]=\"dataNavigator.isDisablePrevious\" aria-label=\"Page navigation\" *ngIf=\"navigation === 'Inline' && !noDataFound\">\n <ul class=\"pager\">\n <li class=\"previous\" [ngClass]=\"{'disabled': (dataNavigator ? dataNavigator.isDisablePrevious : true)}\">\n <a href=\"javascript:void(0);\" (click)=\"dataNavigator.navigatePage('prev', $event)\"\n [attr.aria-disabled]=\"dataNavigator.isDisablePrevious\">\n <i class=\"wi wi-chevron-left\" aria-hidden=\"true\"></i>\n <span class=\"sr-only\">Go to Previous page {{dataNavigator.isDisablePrevious ? ', Disabled' : ''}}</span>\n </a>\n </li>\n </ul>\n</div>\n<div *ngIf=\"navigation === 'Inline' && !noDataFound\" aria-live=\"polite\" aria-atomic=\"true\" class=\"sr-only\"> {{'Page ' + dataNavigator.dn.currentPage + ' of ' + dataNavigator.pageCount }}</div>\n\n<div>\n <div id={{titleId}} class=\"sr-only\" *ngIf=\"enablereorder\">\n Press space bar to toggle drag drop mode, use arrow keys to move selected elements.\n </div>\n\n <div aria-live=\"assertive\" *ngIf=\"listItems && enablereorder && currentIndex\" class=\"sr-only\" >\n {{ariaText + currentIndex + ' of ' + listItems.length}}\n </div>\n</div>\n\n<ul [attr.tabindex]=\"tabindex\" class=\"app-livelist-container clearfix {{direction === 'horizontal' ? 'app-horizontal-list': ''}} {{listclass}}\" role=\"list\"\n (keydown.enter)=\"handleKeyDown($event, 'select')\"\n\n (keydown.space)=\"handleKeyDown($event, 'space')\"\n\n (keydown.arrowup)=\"handleKeyDown($event, 'focusPrev')\"\n (keydown.arrowdown)=\"handleKeyDown($event, 'focusNext')\"\n (keydown.arrowleft)=\"handleKeyDown($event, 'focusPrev')\"\n (keydown.arrowright)=\"handleKeyDown($event, 'focusNext')\"\n\n (keydown.shift.arrowup)=\"handleKeyDown($event, 'selectPrev')\"\n (keydown.shift.arrowdown)=\"handleKeyDown($event, 'selectNext')\"\n (keydown.shift.arrowleft)=\"handleKeyDown($event, 'selectPrev')\"\n (keydown.shift.arrowright)=\"handleKeyDown($event, 'selectNext')\"\n [hidden]=\"noDataFound && !variableInflight\"\n>\n <ng-template [ngIf]=\"!groupby\" [ngIfElse]=\"groupedListTemplate\">\n <li *ngFor=\"let item of fieldDefs; index as $index; first as $first; last as $last;\" class=\"app-list-item {{direction === 'horizontal' ? '' : itemsPerRowClass}}\" [ngClass]=\"listItemRef.itemClass\"\n [wmListItem]=\"item\"\n #listItemRef=\"listItemRef\"\n [attr.tabindex]=\"tabindex\"\n role=\"listitem\">\n <ng-container [ngTemplateOutlet]=\"listTemplate\"\n [ngTemplateOutletInjector]=\"createCustomInjector('falt_' + listItemRef.trackId, {item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets})\"\n [ngTemplateOutletContext]=\"{item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets}\"></ng-container>\n </li>\n </ng-template>\n <ng-container [ngTemplateOutlet]=\"listLeftActionTemplate\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"listRightActionTemplate\"></ng-container>\n</ul>\n\n<div class=\"no-data-msg\" *ngIf=\"noDataFound && !variableInflight\" [textContent]=\"nodatamessage\"></div>\n\n<div class=\"loading-data-msg\" *ngIf=\"variableInflight && !pulltorefresh\">\n <span>\n <i class=\"app-icon panel-icon fa-spin\" aria-hidden=\"true\" [ngClass]=\"loadingicon\"></i>\n <span class=\"sr-only\">Loading</span>\n <span class=\"loading-text\" [textContent]=\"loadingdatamsg\"></span>\n </span>\n</div>\n\n<div class=\"app-datanavigator\" [attr.aria-disabled]=\"dataNavigator.isDisableNext\" *ngIf=\"navigation === 'Inline' && !noDataFound\">\n <ul class=\"pager\">\n <li class=\"next\" [ngClass]=\"{'disabled': (dataNavigator ? dataNavigator.isDisableNext : true)}\">\n <a href=\"javascript:void(0);\" (click)=\"dataNavigator.navigatePage('next', $event)\"\n [attr.aria-disabled]=\"dataNavigator.isDisableNext\">\n <i class=\"wi wi-chevron-right\" aria-hidden=\"true\"></i>\n <span class=\"sr-only\">Go to Next page {{dataNavigator.isDisableNext ? ', Disabled' : ''}}</span>\n </a>\n </li>\n </ul>\n</div>\n\n<div class=\"panel-footer\" *ngIf=\"navigation !== 'None'\" [hidden]=\"!showNavigation || (onDemandLoad && dataNavigator.isDisableNext) || (dataNavigator.dataSize <= pagesize) || (!dataNavigator.dataSize && !dataNavigator.datasource?.pagination?.next)\">\n <nav wmPagination\n navigationalign.bind=\"navigationalign\"\n navigation.bind=\"navControls\"\n showrecordcount.bind=\"showrecordcount\"\n maxsize.bind=\"maxsize\"\n boundarylinks.bind=\"boundarylinks\"\n forceellipses.bind=\"forceellipses\"\n directionlinks.bind=\"directionlinks\"\n show.bind=\"!onDemandLoad\"\n paginationchange.event=\"beforePaginationChange($event, $index)\"\n ></nav>\n <a *ngIf=\"onDemandLoad\" href=\"javascript:void(0);\"\n (click)=\"dataNavigator.navigatePage('next', $event)\"\n class=\"app-button btn btn-block\"\n [ngClass]=\"paginationclass\"\n [textContent]=\"ondemandmessage\"\n ></a>\n</div>\n\n<!--This template will be displayed when groupby is specified-->\n<ng-template #groupedListTemplate>\n <li *ngFor=\"let groupObj of groupedData; let groupIndex = index;\" class=\"app-list-item-group clearfix\">\n <ul [attr.tabindex]=\"tabindex\" class=\"list-group item-group\" [ngClass]=\"listclass\">\n <li class=\"app-list-item-header list-item list-group-header\" (click)=\"handleHeaderClick($event)\" [ngClass]=\"{'collapsible-content': collapsible}\">\n <h4>{{groupObj.key}}\n <div class=\"header-action\">\n <i class=\"app-icon wi action wi-chevron-up\" *ngIf=\"collapsible\"></i>\n <span *ngIf=\"showcount\" class=\"label label-default\">{{groupObj.data.length}}</span>\n </div>\n </h4>\n </li>\n <ul class=\"list-group clearfix {{direction === 'horizontal' ? 'app-horizontal-list': ''}}\">\n <li *ngFor=\"let item of groupObj.data; index as $index; trackBy: trackByFn; first as $first; last as $last;\" [attr.tabindex]=\"tabindex\"\n class=\"app-list-item group-list-item {{itemsPerRowClass}}\"\n [ngClass]=\"listItemRef.itemClass\"\n [wmListItem]=\"item\" #listItemRef=\"listItemRef\">\n <ng-container [ngTemplateOutlet]=\"listTemplate\"\n [ngTemplateOutletInjector]=\"createCustomInjector('group_' + listItemRef.trackId, {item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets})\"\n [ngTemplateOutletContext]=\"{item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets}\"></ng-container>\n </li>\n </ul>\n </ul>\n </li>\n</ng-template>\n" }]
1815
+ ], template: "<div class=\"panel-heading\" *ngIf=\"title || subheading || iconclass\">\n <h3 class=\"panel-title\">\n <div class=\"pull-left\">\n <i class=\"app-icon panel-icon {{iconclass}}\" aria-hidden=\"true\" [hidden]=\"!iconclass\"></i>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n </h3>\n</div>\n\n<div class=\"app-datanavigator\" [attr.aria-disabled]=\"dataNavigator.isDisablePrevious\" aria-label=\"Page navigation\" *ngIf=\"navigation === 'Inline' && !noDataFound\">\n <ul class=\"pager\">\n <li class=\"previous\" [ngClass]=\"{'disabled': (dataNavigator ? dataNavigator.isDisablePrevious : true)}\">\n <a href=\"javascript:void(0);\" (click)=\"dataNavigator.navigatePage('prev', $event)\"\n [attr.aria-disabled]=\"dataNavigator.isDisablePrevious\">\n <i class=\"wi wi-chevron-left\" aria-hidden=\"true\"></i>\n <span class=\"sr-only\">Go to Previous page {{dataNavigator.isDisablePrevious ? ', Disabled' : ''}}</span>\n </a>\n </li>\n </ul>\n</div>\n<div *ngIf=\"navigation === 'Inline' && !noDataFound\" aria-live=\"polite\" aria-atomic=\"true\" class=\"sr-only\"> {{'Page ' + dataNavigator.dn.currentPage + ' of ' + dataNavigator.pageCount }}</div>\n\n<div>\n <div id={{titleId}} class=\"sr-only\" *ngIf=\"enablereorder\">\n Press space bar to toggle drag drop mode, use arrow keys to move selected elements.\n </div>\n\n <div aria-live=\"assertive\" *ngIf=\"listItems && enablereorder && currentIndex\" class=\"sr-only\" >\n {{ariaText + currentIndex + ' of ' + listItems.length}}\n </div>\n</div>\n\n<ul [attr.tabindex]=\"tabindex\" class=\"app-livelist-container clearfix {{direction === 'horizontal' ? 'app-horizontal-list': ''}} {{listclass}}\" role=\"list\"\n (keydown.enter)=\"handleKeyDown($event, 'select')\"\n\n (keydown.space)=\"handleKeyDown($event, 'space')\"\n\n (keydown.arrowup)=\"handleKeyDown($event, 'focusPrev')\"\n (keydown.arrowdown)=\"handleKeyDown($event, 'focusNext')\"\n (keydown.arrowleft)=\"handleKeyDown($event, 'focusPrev')\"\n (keydown.arrowright)=\"handleKeyDown($event, 'focusNext')\"\n\n (keydown.shift.arrowup)=\"handleKeyDown($event, 'selectPrev')\"\n (keydown.shift.arrowdown)=\"handleKeyDown($event, 'selectNext')\"\n (keydown.shift.arrowleft)=\"handleKeyDown($event, 'selectPrev')\"\n (keydown.shift.arrowright)=\"handleKeyDown($event, 'selectNext')\"\n [hidden]=\"noDataFound && !variableInflight\"\n>\n <ng-template [ngIf]=\"!groupby\" [ngIfElse]=\"groupedListTemplate\">\n <li *ngFor=\"let item of fieldDefs; index as $index; first as $first; last as $last;\" class=\"app-list-item {{direction === 'horizontal' ? '' : itemsPerRowClass}}\" [ngClass]=\"listItemRef.itemClass\"\n [wmListItem]=\"item\"\n #listItemRef=\"listItemRef\"\n [attr.tabindex]=\"tabindex\"\n role=\"listitem\">\n <ng-container [ngTemplateOutlet]=\"listTemplate\"\n [ngTemplateOutletInjector]=\"createCustomInjector('falt_' + listItemRef.trackId, {item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets})\"\n [ngTemplateOutletContext]=\"{item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets}\"></ng-container>\n </li>\n </ng-template>\n <ng-container [ngTemplateOutlet]=\"listLeftActionTemplate\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"listRightActionTemplate\"></ng-container>\n</ul>\n\n<div class=\"no-data-msg\" *ngIf=\"noDataFound && !variableInflight\" [textContent]=\"nodatamessage\"></div>\n\n<div class=\"loading-data-msg\" *ngIf=\"variableInflight && !pulltorefresh\">\n <span>\n <i class=\"app-icon panel-icon fa-spin\" aria-hidden=\"true\" [ngClass]=\"loadingicon\"></i>\n <span class=\"sr-only\">Loading</span>\n <span class=\"loading-text\" [textContent]=\"loadingdatamsg\"></span>\n </span>\n</div>\n\n<div class=\"app-datanavigator\" [attr.aria-disabled]=\"dataNavigator.isDisableNext\" *ngIf=\"navigation === 'Inline' && !noDataFound\">\n <ul class=\"pager\">\n <li class=\"next\" [ngClass]=\"{'disabled': (dataNavigator ? dataNavigator.isDisableNext : true)}\">\n <a href=\"javascript:void(0);\" (click)=\"dataNavigator.navigatePage('next', $event)\"\n [attr.aria-disabled]=\"dataNavigator.isDisableNext\">\n <i class=\"wi wi-chevron-right\" aria-hidden=\"true\"></i>\n <span class=\"sr-only\">Go to Next page {{dataNavigator.isDisableNext ? ', Disabled' : ''}}</span>\n </a>\n </li>\n </ul>\n</div>\n\n<div class=\"panel-footer\" *ngIf=\"navigation !== 'None'\" [hidden]=\"!showNavigation || (onDemandLoad && dataNavigator.isDisableNext) || (dataNavigator.dataSize <= pagesize) || (!dataNavigator.dataSize && !dataNavigator.datasource?.pagination?.next)\">\n <nav wmPagination\n navigationalign.bind=\"navigationalign\"\n navigation.bind=\"navControls\"\n showrecordcount.bind=\"showrecordcount\"\n maxsize.bind=\"maxsize\"\n boundarylinks.bind=\"boundarylinks\"\n forceellipses.bind=\"forceellipses\"\n directionlinks.bind=\"directionlinks\"\n show.bind=\"!onDemandLoad\"\n paginationchange.event=\"beforePaginationChange($event, $index)\"\n ></nav>\n <a *ngIf=\"onDemandLoad\" href=\"javascript:void(0);\"\n (click)=\"dataNavigator.navigatePage('next', $event)\"\n class=\"app-button btn btn-block\"\n [ngClass]=\"paginationclass\"\n [textContent]=\"ondemandmessage\"\n ></a>\n</div>\n\n<!--This template will be displayed when groupby is specified-->\n<ng-template #groupedListTemplate>\n <li *ngFor=\"let groupObj of groupedData; let groupIndex = index;\" class=\"app-list-item-group clearfix\">\n <ul [attr.tabindex]=\"tabindex\" class=\"list-group item-group\" [ngClass]=\"listclass\">\n <li class=\"app-list-item-header list-item list-group-header\" (click)=\"handleHeaderClick($event)\" [ngClass]=\"{'collapsible-content': collapsible}\">\n <h4>{{groupObj.key}}\n <div class=\"header-action\">\n <i class=\"app-icon wi action wi-chevron-up\" *ngIf=\"collapsible\"></i>\n <span *ngIf=\"showcount\" class=\"label label-default\">{{groupObj.data.length}}</span>\n </div>\n </h4>\n </li>\n <li class=\"list-group-container\">\n <ul class=\"list-group clearfix {{direction === 'horizontal' ? 'app-horizontal-list': ''}}\">\n <li *ngFor=\"let item of groupObj.data; index as $index; trackBy: trackByFn; first as $first; last as $last;\" [attr.tabindex]=\"tabindex\"\n class=\"app-list-item group-list-item {{itemsPerRowClass}}\"\n [ngClass]=\"listItemRef.itemClass\"\n [wmListItem]=\"item\" #listItemRef=\"listItemRef\">\n <ng-container [ngTemplateOutlet]=\"listTemplate\"\n [ngTemplateOutletInjector]=\"createCustomInjector('group_' + listItemRef.trackId, {item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets})\"\n [ngTemplateOutletContext]=\"{item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets}\"></ng-container>\n </li>\n </ul>\n </li>\n </ul>\n </li>\n</ng-template>\n" }]
1808
1816
  }], () => [{ type: i0__namespace.Injector }, { type: i0__namespace.ChangeDetectorRef }, { type: i1__namespace.ToDatePipe }, { type: i2__namespace.App }, { type: i2__namespace.AppDefaults }, { type: i0__namespace.NgZone }, { type: undefined, decorators: [{
1809
1817
  type: i0.Attribute,
1810
1818
  args: ['itemclass.bind']
@@ -3,6 +3,7 @@ import { Subject } from 'rxjs';
3
3
  import { $watch, App } from '@wm/core';
4
4
  import { ListComponent } from './list.component';
5
5
  import { widgetIdGenerator } from "@wm/components/base";
6
+ import { BaseFormComponent } from "@wm/components/input";
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@wm/core";
8
9
  import * as i2 from "./list.component";
@@ -114,6 +115,14 @@ export class ListItemDirective {
114
115
  }
115
116
  ngAfterViewInit() {
116
117
  this.setUpCUDHandlers();
118
+ const componentElements = Array.from(this.nativeElement.querySelectorAll('[widget-id]'));
119
+ componentElements.forEach((component) => {
120
+ if (component.widget instanceof BaseFormComponent) {
121
+ if (!component.widget.$attrs.get('datavaluesource.bind')) {
122
+ component.widget.datavaluesource = this.listComponent['datasource'];
123
+ }
124
+ }
125
+ });
117
126
  }
118
127
  static { this.ɵfac = function ListItemDirective_Factory(t) { return new (t || ListItemDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.App), i0.ɵɵdirectiveInject(i2.ListComponent, 8)); }; }
119
128
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ListItemDirective, selectors: [["", "wmListItem", ""]], hostVars: 4, hostBindings: function ListItemDirective_HostBindings(rf, ctx) { if (rf & 1) {
@@ -142,4 +151,4 @@ export class ListItemDirective {
142
151
  }], wmListItem: [{
143
152
  type: Input
144
153
  }] }); })();
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRhL2xpc3Qvc3JjL2xpc3QtaXRlbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixRQUFRLEVBQ1IsS0FBSyxFQUVMLFFBQVEsRUFDUixnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFhLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUV6QyxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUVyQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFRdEQsTUFBTSxPQUFPLGlCQUFpQjtJQXFCMUIsT0FBTztRQUNILDZEQUE2RDtRQUM3RCxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJ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UUFDUCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3pELElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDO1lBQ2pGLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUNELDJDQUEyQztRQUMzQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDNUIsQ0FBQztrRkFoSVEsaUJBQWlCO29FQUFqQixpQkFBaUI7WUFBakIsc0ZBQUEsYUFBUyxJQUFROztZQUFqQixzQ0FBaUIsaUNBQUE7OztpRkFBakIsaUJBQWlCO2NBSjdCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsY0FBYztnQkFDeEIsUUFBUSxFQUFFLGFBQWE7YUFDMUI7O3NCQTJENEUsUUFBUTtxQkF6Q3BELFFBQVE7a0JBQXBDLFdBQVc7bUJBQUMsY0FBYztZQUNRLFdBQVc7a0JBQTdDLFdBQVc7bUJBQUMsb0JBQW9CO1lBR2pDLE9BQU87a0JBRE4sWUFBWTttQkFBQyxPQUFPO1lBa0NSLFVBQVU7a0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyR3YXRjaCwgQXBwfSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7TGlzdENvbXBvbmVudH0gZnJvbSAnLi9saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQge3dpZGdldElkR2VuZXJhdG9yfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvYmFzZVwiO1xuXG5kZWNsYXJlIGNvbnN0ICQ7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3dtTGlzdEl0ZW1dJyxcbiAgICBleHBvcnRBczogJ2xpc3RJdGVtUmVmJ1xufSlcbmV4cG9ydCBjbGFzcyBMaXN0SXRlbURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBwdWJsaWMgaXRlbTtcbiAgICBwdWJsaWMgY29udGV4dDtcbiAgICBwdWJsaWMgZGVzdHJveTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcbiAgICBwdWJsaWMgZGVzdHJveSQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuZGVzdHJveS5hc09ic2VydmFibGUoKTtcbiAgICBwdWJsaWMgbmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgcHVibGljIHJlYWRvbmx5IGxpc3RDb21wb25lbnQ6IExpc3RDb21wb25lbnQ7XG5cbiAgICBwcml2YXRlIGl0ZW1DbGFzcyA9ICcnO1xuICAgIHByaXZhdGUgX2N1cnJlbnRJdGVtV2lkZ2V0cyA9IHt9O1xuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZjtcbiAgICAvKipcbiAgICAgKiBUbyBhdm9pZCByZS1yZW5kZXJpbmcgb2Ygd2lkZ2V0LCBwYXNzaW5nIHVuaXF1ZSBpZCBhcyBjb250ZXh0S2V5IHRvIGNyZWF0ZUN1c3RvbUluamVjdG9yXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHRyYWNrSWQgPSB3aWRnZXRJZEdlbmVyYXRvci5uZXh0VWlkKCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFjdGl2ZScpIGlzQWN0aXZlID0gZmFsc2U7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kaXNhYmxlLWl0ZW0nKSBkaXNhYmxlSXRlbSA9IGZhbHNlO1xuXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICAgIG9uRm9jdXMoKSB7XG4gICAgICAgIC8vIG1haW50YWlucyB3aGljaCBlbGVtZW50IGlzIGZvY3VzZWQvc2VsZWN0ZWQgbW9zdCByZWNlbnRseS5cbiAgICAgICAgdGhpcy5saXN0Q29tcG9uZW50Lmxhc3RTZWxlY3RlZEl0ZW0gPSB0aGlzO1xuICAgIH1cblxuICAgIGdldCAkaW5kZXgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQuaW5kZXg7XG4gICAgfVxuXG4gICAgZ2V0ICRldmVuKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0LmV2ZW47XG4gICAgfVxuXG4gICAgZ2V0ICRvZGQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQub2RkO1xuICAgIH1cblxuICAgIGdldCAkZmlyc3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQuZmlyc3Q7XG4gICAgfVxuXG4gICAgZ2V0ICRsYXN0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0Lmxhc3Q7XG4gICAgfVxuXG4gICAgZ2V0IGN1cnJlbnRJdGVtV2lkZ2V0cyAoKSB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudEVsZW1lbnRzID0gQXJyYXkuZnJvbSh0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW3dpZGdldC1pZF0nKSk7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHRoaXMuX2N1cnJlbnRJdGVtV2lkZ2V0cywgY29tcG9uZW50RWxlbWVudHMucmVkdWNlKChyZXN1bHQsIGNvbXA6IGFueSkgPT4ge1xuICAgICAgICAgICAgcmVzdWx0W2NvbXAud2lkZ2V0Lm5hbWVdID0gY29tcC53aWRnZXQ7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9LCB7fSkpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCB3bUxpc3RJdGVtKHZhbCkge1xuICAgICAgICB0aGlzLml0ZW0gPSB2YWw7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmo6IEluamVjdG9yLCBlbFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBhcHA6IEFwcCwgQE9wdGlvbmFsKCkgcHVibGljIF92aWV3UGFyZW50OiBMaXN0Q29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZiA9IGluai5nZXQoVmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudCA9IGVsUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMubGlzdENvbXBvbmVudCA9IF92aWV3UGFyZW50O1xuICAgICAgICAvLyB0aGlzLmNvbnRleHQgPSAoPE5nRm9yT2ZDb250ZXh0PExpc3RJdGVtRGlyZWN0aXZlPj4oPGFueT5pbmopLnZpZXcuY29udGV4dCk7XG4gICAgICAgIHRoaXMuY29udGV4dCA9ICh0aGlzLmluaiBhcyBhbnkpLl9sVmlld1s4XTtcbiAgICAgICAgLy90aGlzLmNvbnRleHQgPSAodGhpcy52aWV3Q29udGFpbmVyUmVmIGFzIGFueSkuX2hvc3RMVmlldy5maW5kKHQgPT4gdCAmJiAhIXQuJGltcGxpY2l0KTtcbiAgICAgICAgdGhpcy5pdGVtQ2xhc3NXYXRjaGVyKHRoaXMubGlzdENvbXBvbmVudCk7XG4gICAgICAgIHRoaXMuZGlzYWJsZUl0ZW1XYXRjaGVyKHRoaXMubGlzdENvbXBvbmVudCk7XG4gICAgICAgICQodGhpcy5uYXRpdmVFbGVtZW50KS5kYXRhKCdsaXN0SXRlbUNvbnRleHQnLCB0aGlzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyV2F0Y2goZXhwcmVzc2lvbjogc3RyaW5nLCBjYWxsYmFjazogRnVuY3Rpb24pIHtcbiAgICAgICAgLy8gUmVtb3ZpbmcgbmdGb3IgY29udGV4dCBhcyB0aGUgc2FtZSBwcm9wZXJ0aWVzIGFyZSBhdmFpbGJsZSBvbiBsaXN0aXRlbSBzY29wZS5cbiAgICAgICAgLy8gcGFzc2luZyB2aWV3cGFyZW50IGNvbnRleHQgZm9yIGFjY2Vzc2luZyB2YXJpYmFsZXMgYW5kIHdpZGdldHMuXG4gICAgICAgIC8vW0NTUF06IGV4cHJlc3Npb24gd2lsbCBiZSBnZW5lcmF0ZWQgaW4gdGhlIGNvbXBvbmVudCBhcyBlLmcuICdpdGVtLmNsYXNzTmFtZSdcbiAgICAgICAgdGhpcy5kZXN0cm95JC5zdWJzY3JpYmUoJHdhdGNoKGV4cHJlc3Npb24sICh0aGlzLmxpc3RDb21wb25lbnQgYXMgYW55KS52aWV3UGFyZW50LCB0aGlzLCBjYWxsYmFjaykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXRlbUNsYXNzV2F0Y2hlcihsaXN0Q29tcG9uZW50OiBMaXN0Q29tcG9uZW50KSB7XG4gICAgICAgIGlmIChsaXN0Q29tcG9uZW50LmJpbmRpdGVtY2xhc3MpIHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJXYXRjaChsaXN0Q29tcG9uZW50LmJpbmRpdGVtY2xhc3MsIG52ID0+IHRoaXMuaXRlbUNsYXNzID0gbnYgfHwgJycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pdGVtQ2xhc3MgPSBsaXN0Q29tcG9uZW50Lml0ZW1jbGFzcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZGlzYWJsZUl0ZW1XYXRjaGVyKCRsaXN0OiBMaXN0Q29tcG9uZW50KSB7XG4gICAgICAgIGlmICgkbGlzdC5iaW5kZGlzYWJsZWl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJXYXRjaCgkbGlzdC5iaW5kZGlzYWJsZWl0ZW0sIG52ID0+IHRoaXMuZGlzYWJsZUl0ZW0gPSBudiB8fCBmYWxzZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVJdGVtID0gJGxpc3QuZGlzYWJsZWl0ZW0gfHwgZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFVwQ1VESGFuZGxlcnMoKSB7XG4gICAgICAgIGNvbnN0ICRlZGl0SXRlbSA9IHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZWRpdC1saXN0LWl0ZW0nKTtcbiAgICAgICAgY29uc3QgJGRlbGV0ZUl0ZW0gPSB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmRlbGV0ZS1saXN0LWl0ZW0nKTtcblxuICAgICAgICBpZiAoJGVkaXRJdGVtKSB7XG4gICAgICAgICAgICAvLyBUcmlnZ2VyZWQgb24gY2xpY2sgb2YgZWRpdCBhY3Rpb25cbiAgICAgICAgICAgICRlZGl0SXRlbS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGV2dCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5saXN0Q29tcG9uZW50LnVwZGF0ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoJGRlbGV0ZUl0ZW0pIHtcbiAgICAgICAgICAgIC8vIFRyaWdnZXJlZCBvbiBjbGljayBvZiBkZWxldGUgYWN0aW9uXG4gICAgICAgICAgICAkZGVsZXRlSXRlbS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGV2dCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5saXN0Q29tcG9uZW50LmRlbGV0ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmxpc3RDb21wb25lbnQubW91c2VFbnRlckNCKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgkZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RDb21wb25lbnQuaW52b2tlRXZlbnRDYWxsYmFjaygnbW91c2VlbnRlcicsIHt3aWRnZXQ6IHRoaXMsICRldmVudH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubGlzdENvbXBvbmVudC5tb3VzZUxlYXZlQ0IpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgKCRldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdENvbXBvbmVudC5pbnZva2VFdmVudENhbGxiYWNrKCdtb3VzZWxlYXZlJywge3dpZGdldDogdGhpcywgJGV2ZW50fSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBhZGRpbmcgaXRlbSBhdHRyaWJ1dGUgb24gZXZlcnkgbGlzdCBpdGVtXG4gICAgICAgICQodGhpcy5uYXRpdmVFbGVtZW50KS5hdHRyKCdsaXN0aXRlbWluZGV4JywgdGhpcy4kaW5kZXgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZXRVcENVREhhbmRsZXJzKCk7XG4gICAgfVxufVxuIl19
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRhL2xpc3Qvc3JjL2xpc3QtaXRlbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixRQUFRLEVBQ1IsS0FBSyxFQUVMLFFBQVEsRUFDUixnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFhLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUV6QyxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUVyQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFRdkQsTUFBTSxPQUFPLGlCQUFpQjtJQXFCMUIsT0FBTztRQUNILDZEQUE2RDtRQUM3RCxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxL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QixpQ0FBQTs7O2lGQUFqQixpQkFBaUI7Y0FKN0IsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxjQUFjO2dCQUN4QixRQUFRLEVBQUUsYUFBYTthQUMxQjs7c0JBMkQ0RSxRQUFRO3FCQXpDcEQsUUFBUTtrQkFBcEMsV0FBVzttQkFBQyxjQUFjO1lBQ1EsV0FBVztrQkFBN0MsV0FBVzttQkFBQyxvQkFBb0I7WUFHakMsT0FBTztrQkFETixZQUFZO21CQUFDLE9BQU87WUFrQ1IsVUFBVTtrQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7JHdhdGNoLCBBcHB9IGZyb20gJ0B3bS9jb3JlJztcblxuaW1wb3J0IHtMaXN0Q29tcG9uZW50fSBmcm9tICcuL2xpc3QuY29tcG9uZW50JztcbmltcG9ydCB7d2lkZ2V0SWRHZW5lcmF0b3J9IGZyb20gXCJAd20vY29tcG9uZW50cy9iYXNlXCI7XG5pbXBvcnQge0Jhc2VGb3JtQ29tcG9uZW50fSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvaW5wdXRcIjtcblxuZGVjbGFyZSBjb25zdCAkO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t3bUxpc3RJdGVtXScsXG4gICAgZXhwb3J0QXM6ICdsaXN0SXRlbVJlZidcbn0pXG5leHBvcnQgY2xhc3MgTGlzdEl0ZW1EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gICAgcHVibGljIGl0ZW07XG4gICAgcHVibGljIGNvbnRleHQ7XG4gICAgcHVibGljIGRlc3Ryb3k6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHVibGljIGRlc3Ryb3kkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmRlc3Ryb3kuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHVibGljIG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIHB1YmxpYyByZWFkb25seSBsaXN0Q29tcG9uZW50OiBMaXN0Q29tcG9uZW50O1xuXG4gICAgcHJpdmF0ZSBpdGVtQ2xhc3MgPSAnJztcbiAgICBwcml2YXRlIF9jdXJyZW50SXRlbVdpZGdldHMgPSB7fTtcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWY7XG4gICAgLyoqXG4gICAgICogVG8gYXZvaWQgcmUtcmVuZGVyaW5nIG9mIHdpZGdldCwgcGFzc2luZyB1bmlxdWUgaWQgYXMgY29udGV4dEtleSB0byBjcmVhdGVDdXN0b21JbmplY3RvclxuICAgICAqL1xuICAgIHByb3RlY3RlZCB0cmFja0lkID0gd2lkZ2V0SWRHZW5lcmF0b3IubmV4dFVpZCgpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hY3RpdmUnKSBpc0FjdGl2ZSA9IGZhbHNlO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZGlzYWJsZS1pdGVtJykgZGlzYWJsZUl0ZW0gPSBmYWxzZTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcbiAgICBvbkZvY3VzKCkge1xuICAgICAgICAvLyBtYWludGFpbnMgd2hpY2ggZWxlbWVudCBpcyBmb2N1c2VkL3NlbGVjdGVkIG1vc3QgcmVjZW50bHkuXG4gICAgICAgIHRoaXMubGlzdENvbXBvbmVudC5sYXN0U2VsZWN0ZWRJdGVtID0gdGhpcztcbiAgICB9XG5cbiAgICBnZXQgJGluZGV4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0LmluZGV4O1xuICAgIH1cblxuICAgIGdldCAkZXZlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dC5ldmVuO1xuICAgIH1cblxuICAgIGdldCAkb2RkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0Lm9kZDtcbiAgICB9XG5cbiAgICBnZXQgJGZpcnN0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0LmZpcnN0O1xuICAgIH1cblxuICAgIGdldCAkbGFzdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dC5sYXN0O1xuICAgIH1cblxuICAgIGdldCBjdXJyZW50SXRlbVdpZGdldHMgKCkge1xuICAgICAgICBjb25zdCBjb21wb25lbnRFbGVtZW50cyA9IEFycmF5LmZyb20odGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1t3aWRnZXQtaWRdJykpO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih0aGlzLl9jdXJyZW50SXRlbVdpZGdldHMsIGNvbXBvbmVudEVsZW1lbnRzLnJlZHVjZSgocmVzdWx0LCBjb21wOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJlc3VsdFtjb21wLndpZGdldC5uYW1lXSA9IGNvbXAud2lkZ2V0O1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSwge30pKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgd21MaXN0SXRlbSh2YWwpIHtcbiAgICAgICAgdGhpcy5pdGVtID0gdmFsO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qOiBJbmplY3RvciwgZWxSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgYXBwOiBBcHAsIEBPcHRpb25hbCgpIHB1YmxpYyBfdmlld1BhcmVudDogTGlzdENvbXBvbmVudCkge1xuICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYgPSBpbmouZ2V0KFZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQgPSBlbFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLmxpc3RDb21wb25lbnQgPSBfdmlld1BhcmVudDtcbiAgICAgICAgLy8gdGhpcy5jb250ZXh0ID0gKDxOZ0Zvck9mQ29udGV4dDxMaXN0SXRlbURpcmVjdGl2ZT4+KDxhbnk+aW5qKS52aWV3LmNvbnRleHQpO1xuICAgICAgICB0aGlzLmNvbnRleHQgPSAodGhpcy5pbmogYXMgYW55KS5fbFZpZXdbOF07XG4gICAgICAgIC8vdGhpcy5jb250ZXh0ID0gKHRoaXMudmlld0NvbnRhaW5lclJlZiBhcyBhbnkpLl9ob3N0TFZpZXcuZmluZCh0ID0+IHQgJiYgISF0LiRpbXBsaWNpdCk7XG4gICAgICAgIHRoaXMuaXRlbUNsYXNzV2F0Y2hlcih0aGlzLmxpc3RDb21wb25lbnQpO1xuICAgICAgICB0aGlzLmRpc2FibGVJdGVtV2F0Y2hlcih0aGlzLmxpc3RDb21wb25lbnQpO1xuICAgICAgICAkKHRoaXMubmF0aXZlRWxlbWVudCkuZGF0YSgnbGlzdEl0ZW1Db250ZXh0JywgdGhpcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3RlcldhdGNoKGV4cHJlc3Npb246IHN0cmluZywgY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XG4gICAgICAgIC8vIFJlbW92aW5nIG5nRm9yIGNvbnRleHQgYXMgdGhlIHNhbWUgcHJvcGVydGllcyBhcmUgYXZhaWxibGUgb24gbGlzdGl0ZW0gc2NvcGUuXG4gICAgICAgIC8vIHBhc3Npbmcgdmlld3BhcmVudCBjb250ZXh0IGZvciBhY2Nlc3NpbmcgdmFyaWJhbGVzIGFuZCB3aWRnZXRzLlxuICAgICAgICAvL1tDU1BdOiBleHByZXNzaW9uIHdpbGwgYmUgZ2VuZXJhdGVkIGluIHRoZSBjb21wb25lbnQgYXMgZS5nLiAnaXRlbS5jbGFzc05hbWUnXG4gICAgICAgIHRoaXMuZGVzdHJveSQuc3Vic2NyaWJlKCR3YXRjaChleHByZXNzaW9uLCAodGhpcy5saXN0Q29tcG9uZW50IGFzIGFueSkudmlld1BhcmVudCwgdGhpcywgY2FsbGJhY2spKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGl0ZW1DbGFzc1dhdGNoZXIobGlzdENvbXBvbmVudDogTGlzdENvbXBvbmVudCkge1xuICAgICAgICBpZiAobGlzdENvbXBvbmVudC5iaW5kaXRlbWNsYXNzKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyV2F0Y2gobGlzdENvbXBvbmVudC5iaW5kaXRlbWNsYXNzLCBudiA9PiB0aGlzLml0ZW1DbGFzcyA9IG52IHx8ICcnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbUNsYXNzID0gbGlzdENvbXBvbmVudC5pdGVtY2xhc3M7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc2FibGVJdGVtV2F0Y2hlcigkbGlzdDogTGlzdENvbXBvbmVudCkge1xuICAgICAgICBpZiAoJGxpc3QuYmluZGRpc2FibGVpdGVtKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyV2F0Y2goJGxpc3QuYmluZGRpc2FibGVpdGVtLCBudiA9PiB0aGlzLmRpc2FibGVJdGVtID0gbnYgfHwgZmFsc2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlSXRlbSA9ICRsaXN0LmRpc2FibGVpdGVtIHx8IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRVcENVREhhbmRsZXJzKCkge1xuICAgICAgICBjb25zdCAkZWRpdEl0ZW0gPSB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmVkaXQtbGlzdC1pdGVtJyk7XG4gICAgICAgIGNvbnN0ICRkZWxldGVJdGVtID0gdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5kZWxldGUtbGlzdC1pdGVtJyk7XG5cbiAgICAgICAgaWYgKCRlZGl0SXRlbSkge1xuICAgICAgICAgICAgLy8gVHJpZ2dlcmVkIG9uIGNsaWNrIG9mIGVkaXQgYWN0aW9uXG4gICAgICAgICAgICAkZWRpdEl0ZW0uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBldnQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdENvbXBvbmVudC51cGRhdGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCRkZWxldGVJdGVtKSB7XG4gICAgICAgICAgICAvLyBUcmlnZ2VyZWQgb24gY2xpY2sgb2YgZGVsZXRlIGFjdGlvblxuICAgICAgICAgICAgJGRlbGV0ZUl0ZW0uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBldnQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdENvbXBvbmVudC5kZWxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5saXN0Q29tcG9uZW50Lm1vdXNlRW50ZXJDQikge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5saXN0Q29tcG9uZW50Lmludm9rZUV2ZW50Q2FsbGJhY2soJ21vdXNlZW50ZXInLCB7d2lkZ2V0OiB0aGlzLCAkZXZlbnR9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmxpc3RDb21wb25lbnQubW91c2VMZWF2ZUNCKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsICgkZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RDb21wb25lbnQuaW52b2tlRXZlbnRDYWxsYmFjaygnbW91c2VsZWF2ZScsIHt3aWRnZXQ6IHRoaXMsICRldmVudH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gYWRkaW5nIGl0ZW0gYXR0cmlidXRlIG9uIGV2ZXJ5IGxpc3QgaXRlbVxuICAgICAgICAkKHRoaXMubmF0aXZlRWxlbWVudCkuYXR0cignbGlzdGl0ZW1pbmRleCcsIHRoaXMuJGluZGV4KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuc2V0VXBDVURIYW5kbGVycygpO1xuICAgICAgICBjb25zdCBjb21wb25lbnRFbGVtZW50cyA9IEFycmF5LmZyb20odGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1t3aWRnZXQtaWRdJykpO1xuICAgICAgICBjb21wb25lbnRFbGVtZW50cy5mb3JFYWNoKChjb21wb25lbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYoY29tcG9uZW50LndpZGdldCBpbnN0YW5jZW9mIEJhc2VGb3JtQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgaWYoIWNvbXBvbmVudC53aWRnZXQuJGF0dHJzLmdldCgnZGF0YXZhbHVlc291cmNlLmJpbmQnKSkge1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQud2lkZ2V0LmRhdGF2YWx1ZXNvdXJjZSA9IHRoaXMubGlzdENvbXBvbmVudFsnZGF0YXNvdXJjZSddO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19