@wavemaker/app-ng-runtime 11.14.2-rc.6311 → 11.14.4-rc.647538

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (409) hide show
  1. package/components/advanced/carousel/bundles/index.umd.js +1 -15
  2. package/components/advanced/carousel/carousel.directive.d.ts +0 -1
  3. package/components/advanced/carousel/esm2022/carousel.directive.mjs +2 -16
  4. package/components/advanced/carousel/fesm2022/index.mjs +1 -15
  5. package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  6. package/components/advanced/login/bundles/index.umd.js +3 -24
  7. package/components/advanced/login/esm2022/login.component.mjs +4 -25
  8. package/components/advanced/login/fesm2022/index.mjs +3 -24
  9. package/components/advanced/login/fesm2022/index.mjs.map +1 -1
  10. package/components/advanced/login/login.component.d.ts +2 -5
  11. package/components/base/bundles/index.umd.js +28 -323
  12. package/components/base/directives/show-in-device.directive.d.ts +1 -2
  13. package/components/base/esm2022/directives/show-in-device.directive.mjs +4 -22
  14. package/components/base/esm2022/pipes/custom-pipes.mjs +1 -1
  15. package/components/base/esm2022/utils/widget-utils.mjs +3 -3
  16. package/components/base/esm2022/widgets/common/base/base-container.component.mjs +1 -27
  17. package/components/base/esm2022/widgets/common/base/base-field-validations.mjs +1 -18
  18. package/components/base/esm2022/widgets/common/base/base.component.mjs +7 -68
  19. package/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +1 -9
  20. package/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +11 -44
  21. package/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +1 -20
  22. package/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +1 -26
  23. package/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +4 -44
  24. package/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +1 -16
  25. package/components/base/esm2022/widgets/common/pull-to-refresh/pull-to-refresh.mjs +1 -22
  26. package/components/base/esm2022/widgets/framework/property-change-handler.mjs +2 -7
  27. package/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +3 -5
  28. package/components/base/esm2022/widgets/framework/widget-registry.mjs +3 -6
  29. package/components/base/fesm2022/index.mjs +26 -319
  30. package/components/base/fesm2022/index.mjs.map +1 -1
  31. package/components/base/widgets/common/base/base-container.component.d.ts +2 -3
  32. package/components/base/widgets/common/base/base-field-validations.d.ts +0 -1
  33. package/components/base/widgets/common/base/custom-widget-container.directive.d.ts +2 -3
  34. package/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +2 -6
  35. package/components/base/widgets/common/base/partial-container.directive.d.ts +2 -3
  36. package/components/base/widgets/common/item-template/item-template.directive.d.ts +2 -3
  37. package/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +1 -1
  38. package/components/base/widgets/common/partial-param/partial-param.directive.d.ts +2 -3
  39. package/components/base/widgets/common/pull-to-refresh/pull-to-refresh.d.ts +2 -3
  40. package/components/basic/anchor/bundles/index.umd.js +1 -13
  41. package/components/basic/anchor/esm2022/anchor.component.mjs +2 -14
  42. package/components/basic/anchor/fesm2022/index.mjs +1 -13
  43. package/components/basic/anchor/fesm2022/index.mjs.map +1 -1
  44. package/components/basic/html/bundles/index.umd.js +1 -13
  45. package/components/basic/html/esm2022/html.directive.mjs +2 -14
  46. package/components/basic/html/fesm2022/index.mjs +1 -13
  47. package/components/basic/html/fesm2022/index.mjs.map +1 -1
  48. package/components/basic/label/bundles/index.umd.js +1 -17
  49. package/components/basic/label/esm2022/label.directive.mjs +2 -18
  50. package/components/basic/label/fesm2022/index.mjs +1 -17
  51. package/components/basic/label/fesm2022/index.mjs.map +1 -1
  52. package/components/basic/label/label.directive.d.ts +2 -3
  53. package/components/basic/progress/progress-circle/bundles/index.umd.js +0 -10
  54. package/components/basic/progress/progress-circle/esm2022/progress-circle.component.mjs +1 -11
  55. package/components/basic/progress/progress-circle/fesm2022/index.mjs +0 -10
  56. package/components/basic/progress/progress-circle/fesm2022/index.mjs.map +1 -1
  57. package/components/basic/progress/progress-circle/progress-circle.component.d.ts +2 -3
  58. package/components/basic/search/bundles/index.umd.js +1 -27
  59. package/components/basic/search/esm2022/scrollable.directive.mjs +2 -11
  60. package/components/basic/search/esm2022/search.component.mjs +1 -18
  61. package/components/basic/search/fesm2022/index.mjs +1 -27
  62. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  63. package/components/basic/search/scrollable.directive.d.ts +2 -4
  64. package/components/basic/search/search.component.d.ts +2 -3
  65. package/components/basic/spinner/bundles/index.umd.js +1 -9
  66. package/components/basic/spinner/esm2022/spinner.component.mjs +2 -10
  67. package/components/basic/spinner/fesm2022/index.mjs +1 -9
  68. package/components/basic/spinner/fesm2022/index.mjs.map +1 -1
  69. package/components/basic/spinner/spinner.component.d.ts +2 -4
  70. package/components/chart/bundles/index.umd.js +3 -21
  71. package/components/chart/esm2022/chart.component.mjs +4 -22
  72. package/components/chart/fesm2022/index.mjs +3 -21
  73. package/components/chart/fesm2022/index.mjs.map +1 -1
  74. package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +2 -3
  75. package/components/containers/accordion/accordion.directive.d.ts +2 -5
  76. package/components/containers/accordion/bundles/index.umd.js +2 -49
  77. package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +1 -10
  78. package/components/containers/accordion/esm2022/accordion.directive.mjs +3 -41
  79. package/components/containers/accordion/fesm2022/index.mjs +2 -49
  80. package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  81. package/components/containers/panel/bundles/index.umd.js +0 -13
  82. package/components/containers/panel/esm2022/panel.component.mjs +1 -14
  83. package/components/containers/panel/fesm2022/index.mjs +0 -13
  84. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  85. package/components/containers/panel/panel.component.d.ts +2 -3
  86. package/components/containers/tabs/bundles/index.umd.js +2 -54
  87. package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +1 -10
  88. package/components/containers/tabs/esm2022/tabs.component.mjs +3 -46
  89. package/components/containers/tabs/fesm2022/index.mjs +2 -54
  90. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  91. package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +2 -3
  92. package/components/containers/tabs/tabs.component.d.ts +2 -5
  93. package/components/containers/wizard/bundles/index.umd.js +3 -47
  94. package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +3 -16
  95. package/components/containers/wizard/esm2022/wizard.component.mjs +2 -33
  96. package/components/containers/wizard/fesm2022/index.mjs +3 -47
  97. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  98. package/components/containers/wizard/wizard-step/wizard-step.component.d.ts +2 -3
  99. package/components/containers/wizard/wizard.component.d.ts +2 -4
  100. package/components/data/card/bundles/index.umd.js +1 -17
  101. package/components/data/card/card-content/card-content.component.d.ts +2 -3
  102. package/components/data/card/card.component.d.ts +2 -4
  103. package/components/data/card/esm2022/card-content/card-content.component.mjs +1 -6
  104. package/components/data/card/esm2022/card.component.mjs +2 -13
  105. package/components/data/card/fesm2022/index.mjs +1 -17
  106. package/components/data/card/fesm2022/index.mjs.map +1 -1
  107. package/components/data/form/bundles/index.umd.js +0 -92
  108. package/components/data/form/esm2022/form-action/form-action.directive.mjs +1 -7
  109. package/components/data/form/esm2022/form-field/form-field.directive.mjs +1 -28
  110. package/components/data/form/esm2022/form-widget.directive.mjs +1 -8
  111. package/components/data/form/esm2022/form.component.mjs +1 -27
  112. package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +1 -7
  113. package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +1 -12
  114. package/components/data/form/esm2022/live-form/live-form.directive.mjs +1 -10
  115. package/components/data/form/fesm2022/index.mjs +0 -92
  116. package/components/data/form/fesm2022/index.mjs.map +1 -1
  117. package/components/data/form/form-action/form-action.directive.d.ts +2 -3
  118. package/components/data/form/form-field/form-field.directive.d.ts +2 -3
  119. package/components/data/form/form-widget.directive.d.ts +2 -3
  120. package/components/data/form/live-actions/live-actions.directive.d.ts +1 -3
  121. package/components/data/form/live-filter/live-filter.directive.d.ts +1 -3
  122. package/components/data/form/live-form/live-form.directive.d.ts +1 -3
  123. package/components/data/list/bundles/index.umd.js +17 -180
  124. package/components/data/list/esm2022/list-item.directive.mjs +11 -95
  125. package/components/data/list/esm2022/list.component.mjs +8 -87
  126. package/components/data/list/fesm2022/index.mjs +17 -180
  127. package/components/data/list/fesm2022/index.mjs.map +1 -1
  128. package/components/data/list/list-item.directive.d.ts +2 -7
  129. package/components/data/list/list.component.d.ts +0 -3
  130. package/components/data/live-table/bundles/index.umd.js +1 -13
  131. package/components/data/live-table/esm2022/live-table.component.mjs +2 -14
  132. package/components/data/live-table/fesm2022/index.mjs +1 -13
  133. package/components/data/live-table/fesm2022/index.mjs.map +1 -1
  134. package/components/data/live-table/live-table.component.d.ts +2 -4
  135. package/components/data/pagination/bundles/index.umd.js +4 -57
  136. package/components/data/pagination/esm2022/pagination.component.mjs +5 -58
  137. package/components/data/pagination/fesm2022/index.mjs +4 -57
  138. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  139. package/components/data/pagination/pagination.component.d.ts +2 -4
  140. package/components/data/table/bundles/index.umd.js +12 -311
  141. package/components/data/table/esm2022/table-action/table-action.directive.mjs +1 -8
  142. package/components/data/table/esm2022/table-column/table-column.directive.mjs +3 -107
  143. package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +1 -9
  144. package/components/data/table/esm2022/table-cud.directive.mjs +2 -8
  145. package/components/data/table/esm2022/table-filter.directive.mjs +2 -12
  146. package/components/data/table/esm2022/table-row/table-row.directive.mjs +1 -8
  147. package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +1 -8
  148. package/components/data/table/esm2022/table.component.mjs +9 -159
  149. package/components/data/table/fesm2022/index.mjs +12 -311
  150. package/components/data/table/fesm2022/index.mjs.map +1 -1
  151. package/components/data/table/table-action/table-action.directive.d.ts +2 -3
  152. package/components/data/table/table-column/table-column.directive.d.ts +2 -3
  153. package/components/data/table/table-column-group/table-column-group.directive.d.ts +2 -3
  154. package/components/data/table/table-cud.directive.d.ts +1 -3
  155. package/components/data/table/table-filter.directive.d.ts +1 -3
  156. package/components/data/table/table-row/table-row.directive.d.ts +2 -3
  157. package/components/data/table/table-row-action/table-row-action.directive.d.ts +2 -3
  158. package/components/data/table/table.component.d.ts +2 -2
  159. package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +2 -3
  160. package/components/dialogs/alert-dialog/bundles/index.umd.js +0 -5
  161. package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +1 -6
  162. package/components/dialogs/alert-dialog/fesm2022/index.mjs +0 -5
  163. package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  164. package/components/dialogs/confirm-dialog/bundles/index.umd.js +0 -5
  165. package/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +2 -3
  166. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +1 -6
  167. package/components/dialogs/confirm-dialog/fesm2022/index.mjs +0 -5
  168. package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  169. package/components/dialogs/default/bundles/index.umd.js +2 -15
  170. package/components/dialogs/default/dialog-body/dialog-body.directive.d.ts +2 -4
  171. package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +3 -16
  172. package/components/dialogs/default/fesm2022/index.mjs +2 -15
  173. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  174. package/components/dialogs/design-dialog/bundles/index.umd.js +0 -7
  175. package/components/dialogs/design-dialog/dialog.component.d.ts +2 -3
  176. package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +1 -8
  177. package/components/dialogs/design-dialog/fesm2022/index.mjs +0 -7
  178. package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  179. package/components/dialogs/iframe-dialog/bundles/index.umd.js +0 -5
  180. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +1 -6
  181. package/components/dialogs/iframe-dialog/fesm2022/index.mjs +0 -5
  182. package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  183. package/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +2 -3
  184. package/components/dialogs/partial-dialog/bundles/index.umd.js +3 -23
  185. package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +4 -24
  186. package/components/dialogs/partial-dialog/fesm2022/index.mjs +3 -23
  187. package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  188. package/components/dialogs/partial-dialog/partial-dialog.component.d.ts +2 -4
  189. package/components/input/base-form/base-form.component.d.ts +2 -4
  190. package/components/input/base-form/bundles/index.umd.js +2 -16
  191. package/components/input/base-form/esm2022/base-form.component.mjs +3 -17
  192. package/components/input/base-form/fesm2022/index.mjs +2 -16
  193. package/components/input/base-form/fesm2022/index.mjs.map +1 -1
  194. package/components/input/base-form-custom/base-form-custom.component.d.ts +2 -3
  195. package/components/input/base-form-custom/bundles/index.umd.js +2 -13
  196. package/components/input/base-form-custom/esm2022/base-form-custom.component.mjs +3 -14
  197. package/components/input/base-form-custom/fesm2022/index.mjs +2 -13
  198. package/components/input/base-form-custom/fesm2022/index.mjs.map +1 -1
  199. package/components/input/checkbox/bundles/index.umd.js +0 -7
  200. package/components/input/checkbox/checkbox.component.d.ts +2 -3
  201. package/components/input/checkbox/esm2022/checkbox.component.mjs +1 -8
  202. package/components/input/checkbox/fesm2022/index.mjs +0 -7
  203. package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
  204. package/components/input/checkboxset/bundles/index.umd.js +2 -18
  205. package/components/input/checkboxset/checkboxset.component.d.ts +2 -4
  206. package/components/input/checkboxset/esm2022/checkboxset.component.mjs +3 -19
  207. package/components/input/checkboxset/fesm2022/index.mjs +2 -18
  208. package/components/input/checkboxset/fesm2022/index.mjs.map +1 -1
  209. package/components/input/chips/bundles/index.umd.js +5 -45
  210. package/components/input/chips/chips.component.d.ts +2 -3
  211. package/components/input/chips/esm2022/chips.component.mjs +6 -46
  212. package/components/input/chips/fesm2022/index.mjs +5 -45
  213. package/components/input/chips/fesm2022/index.mjs.map +1 -1
  214. package/components/input/color-picker/bundles/index.umd.js +0 -8
  215. package/components/input/color-picker/color-picker.component.d.ts +2 -3
  216. package/components/input/color-picker/esm2022/color-picker.component.mjs +1 -9
  217. package/components/input/color-picker/fesm2022/index.mjs +0 -8
  218. package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  219. package/components/input/composite/bundles/index.umd.js +1 -10
  220. package/components/input/composite/composite.directive.d.ts +2 -3
  221. package/components/input/composite/esm2022/composite.directive.mjs +2 -11
  222. package/components/input/composite/fesm2022/index.mjs +1 -10
  223. package/components/input/composite/fesm2022/index.mjs.map +1 -1
  224. package/components/input/currency/bundles/index.umd.js +0 -7
  225. package/components/input/currency/currency.component.d.ts +2 -3
  226. package/components/input/currency/esm2022/currency.component.mjs +1 -8
  227. package/components/input/currency/fesm2022/index.mjs +0 -7
  228. package/components/input/currency/fesm2022/index.mjs.map +1 -1
  229. package/components/input/dataset-aware-form/bundles/index.umd.js +2 -26
  230. package/components/input/dataset-aware-form/esm2022/dataset-aware-form.component.mjs +3 -27
  231. package/components/input/dataset-aware-form/fesm2022/index.mjs +2 -26
  232. package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -1
  233. package/components/input/epoch/date/bundles/index.umd.js +0 -22
  234. package/components/input/epoch/date/date.component.d.ts +0 -1
  235. package/components/input/epoch/date/esm2022/date.component.mjs +1 -23
  236. package/components/input/epoch/date/fesm2022/index.mjs +0 -22
  237. package/components/input/epoch/date/fesm2022/index.mjs.map +1 -1
  238. package/components/input/file-upload/bundles/index.umd.js +8 -25
  239. package/components/input/file-upload/esm2022/file-upload.component.mjs +9 -26
  240. package/components/input/file-upload/fesm2022/index.mjs +8 -25
  241. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  242. package/components/input/file-upload/file-upload.component.d.ts +0 -3
  243. package/components/input/number/bundles/index.umd.js +0 -8
  244. package/components/input/number/esm2022/number.component.mjs +1 -9
  245. package/components/input/number/fesm2022/index.mjs +0 -8
  246. package/components/input/number/fesm2022/index.mjs.map +1 -1
  247. package/components/input/number/number.component.d.ts +2 -3
  248. package/components/input/radioset/bundles/index.umd.js +2 -18
  249. package/components/input/radioset/esm2022/radioset.component.mjs +3 -19
  250. package/components/input/radioset/fesm2022/index.mjs +2 -18
  251. package/components/input/radioset/fesm2022/index.mjs.map +1 -1
  252. package/components/input/radioset/radioset.component.d.ts +2 -4
  253. package/components/input/rating/bundles/index.umd.js +0 -10
  254. package/components/input/rating/esm2022/rating.component.mjs +1 -11
  255. package/components/input/rating/fesm2022/index.mjs +0 -10
  256. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  257. package/components/input/rating/rating.component.d.ts +2 -3
  258. package/components/input/select/bundles/index.umd.js +0 -6
  259. package/components/input/select/esm2022/select.component.mjs +1 -7
  260. package/components/input/select/fesm2022/index.mjs +0 -6
  261. package/components/input/select/fesm2022/index.mjs.map +1 -1
  262. package/components/input/select/select.component.d.ts +2 -3
  263. package/components/input/slider/bundles/index.umd.js +0 -10
  264. package/components/input/slider/esm2022/slider.component.mjs +1 -11
  265. package/components/input/slider/fesm2022/index.mjs +0 -10
  266. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  267. package/components/input/slider/slider.component.d.ts +2 -3
  268. package/components/input/switch/bundles/index.umd.js +2 -22
  269. package/components/input/switch/esm2022/switch.component.mjs +3 -23
  270. package/components/input/switch/fesm2022/index.mjs +2 -22
  271. package/components/input/switch/fesm2022/index.mjs.map +1 -1
  272. package/components/input/switch/switch.component.d.ts +2 -3
  273. package/components/input/text/bundles/index.umd.js +0 -36
  274. package/components/input/text/esm2022/input-calendar/input-calendar.component.mjs +1 -8
  275. package/components/input/text/esm2022/input-color/input-color.component.mjs +1 -8
  276. package/components/input/text/esm2022/input-email/input-email.component.mjs +1 -8
  277. package/components/input/text/esm2022/input-number/input-number.component.mjs +1 -8
  278. package/components/input/text/esm2022/input-text/input-text.component.mjs +1 -9
  279. package/components/input/text/fesm2022/index.mjs +0 -36
  280. package/components/input/text/fesm2022/index.mjs.map +1 -1
  281. package/components/input/text/input-calendar/input-calendar.component.d.ts +2 -3
  282. package/components/input/text/input-color/input-color.component.d.ts +2 -3
  283. package/components/input/text/input-email/input-email.component.d.ts +2 -3
  284. package/components/input/text/input-number/input-number.component.d.ts +2 -3
  285. package/components/input/text/input-text/input-text.component.d.ts +2 -3
  286. package/components/input/textarea/bundles/index.umd.js +0 -7
  287. package/components/input/textarea/esm2022/textarea.component.mjs +1 -8
  288. package/components/input/textarea/fesm2022/index.mjs +0 -7
  289. package/components/input/textarea/fesm2022/index.mjs.map +1 -1
  290. package/components/input/textarea/textarea.component.d.ts +2 -3
  291. package/components/navigation/menu/bundles/index.umd.js +6 -55
  292. package/components/navigation/menu/esm2022/menu-adapator.component.mjs +3 -17
  293. package/components/navigation/menu/esm2022/menu.component.mjs +3 -10
  294. package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +1 -6
  295. package/components/navigation/menu/esm2022/nav/nav.component.mjs +1 -11
  296. package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +3 -16
  297. package/components/navigation/menu/fesm2022/index.mjs +6 -55
  298. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  299. package/components/navigation/menu/menu-adapator.component.d.ts +2 -4
  300. package/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +2 -3
  301. package/components/navigation/menu/nav/nav.component.d.ts +2 -3
  302. package/components/navigation/menu/nav/navigation-control.directive.d.ts +2 -4
  303. package/components/navigation/navbar/bundles/index.umd.js +0 -5
  304. package/components/navigation/navbar/esm2022/navbar.component.mjs +1 -6
  305. package/components/navigation/navbar/fesm2022/index.mjs +0 -5
  306. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  307. package/components/navigation/navbar/navbar.component.d.ts +2 -3
  308. package/components/navigation/popover/bundles/index.umd.js +13 -65
  309. package/components/navigation/popover/esm2022/popover.component.mjs +11 -63
  310. package/components/navigation/popover/fesm2022/index.mjs +10 -62
  311. package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  312. package/components/navigation/popover/popover.component.d.ts +3 -11
  313. package/components/page/default/bundles/index.umd.js +2 -20
  314. package/components/page/default/esm2022/layout.directive.mjs +1 -9
  315. package/components/page/default/esm2022/page-content/page-content.component.mjs +3 -13
  316. package/components/page/default/fesm2022/index.mjs +2 -20
  317. package/components/page/default/fesm2022/index.mjs.map +1 -1
  318. package/components/page/default/layout.directive.d.ts +2 -3
  319. package/components/page/default/page-content/page-content.component.d.ts +2 -3
  320. package/components/page/left-panel/bundles/index.umd.js +0 -16
  321. package/components/page/left-panel/esm2022/left-panel.directive.mjs +1 -17
  322. package/components/page/left-panel/fesm2022/index.mjs +0 -16
  323. package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  324. package/components/page/left-panel/left-panel.directive.d.ts +2 -3
  325. package/components/page/top-nav/bundles/index.umd.js +1 -2
  326. package/components/page/top-nav/esm2022/top-nav.props.mjs +2 -3
  327. package/components/page/top-nav/fesm2022/index.mjs +1 -2
  328. package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  329. package/components/prefab/bundles/index.umd.js +0 -4
  330. package/components/prefab/esm2022/prefab.directive.mjs +1 -5
  331. package/components/prefab/fesm2022/index.mjs +0 -4
  332. package/components/prefab/fesm2022/index.mjs.map +1 -1
  333. package/core/bundles/index.umd.js +94 -391
  334. package/core/esm2022/public_api.mjs +3 -3
  335. package/core/esm2022/services/viewport.service.mjs +10 -24
  336. package/core/esm2022/types/types.mjs +1 -1
  337. package/core/esm2022/utils/dom.mjs +2 -18
  338. package/core/esm2022/utils/event-notifier.mjs +2 -5
  339. package/core/esm2022/utils/lru-cache.mjs +2 -16
  340. package/core/esm2022/utils/utils.mjs +2 -6
  341. package/core/esm2022/utils/watcher.mjs +81 -323
  342. package/core/fesm2022/index.mjs +96 -390
  343. package/core/fesm2022/index.mjs.map +1 -1
  344. package/core/public_api.d.ts +2 -2
  345. package/core/services/viewport.service.d.ts +2 -5
  346. package/core/types/types.d.ts +0 -1
  347. package/core/utils/lru-cache.d.ts +0 -6
  348. package/core/utils/utils.d.ts +0 -1
  349. package/core/utils/watcher.d.ts +5 -26
  350. package/http/bundles/index.umd.js +1 -31
  351. package/http/esm2022/http.service.mjs +2 -32
  352. package/http/fesm2022/index.mjs +1 -31
  353. package/http/fesm2022/index.mjs.map +1 -1
  354. package/http/http.service.d.ts +2 -6
  355. package/locales/moment-timezone/moment-timezone-with-data.js +7 -7
  356. package/npm-shrinkwrap.json +2 -2
  357. package/oAuth/bundles/index.umd.js +0 -9
  358. package/oAuth/esm2022/oAuth.service.mjs +1 -10
  359. package/oAuth/fesm2022/index.mjs +0 -9
  360. package/oAuth/fesm2022/index.mjs.map +1 -1
  361. package/oAuth/oAuth.service.d.ts +1 -3
  362. package/package-lock.json +2 -2
  363. package/package.json +1 -1
  364. package/runtime/base/bundles/index.umd.js +42 -376
  365. package/runtime/base/components/app-component/app.component.d.ts +0 -4
  366. package/runtime/base/components/prefab-preview.component.d.ts +2 -5
  367. package/runtime/base/directives/accessroles.directive.d.ts +3 -4
  368. package/runtime/base/directives/prefab.directive.d.ts +2 -3
  369. package/runtime/base/esm2022/components/app-component/app.component.mjs +9 -40
  370. package/runtime/base/esm2022/components/base-custom-widget.component.mjs +2 -33
  371. package/runtime/base/esm2022/components/base-layout.component.mjs +1 -7
  372. package/runtime/base/esm2022/components/base-page.component.mjs +3 -36
  373. package/runtime/base/esm2022/components/base-partial.component.mjs +3 -37
  374. package/runtime/base/esm2022/components/base-prefab.component.mjs +3 -32
  375. package/runtime/base/esm2022/components/base-spa-page.component.mjs +3 -37
  376. package/runtime/base/esm2022/components/prefab-preview.component.mjs +4 -23
  377. package/runtime/base/esm2022/directives/accessroles.directive.mjs +2 -11
  378. package/runtime/base/esm2022/directives/prefab.directive.mjs +1 -9
  379. package/runtime/base/esm2022/services/app.manager.service.mjs +10 -37
  380. package/runtime/base/esm2022/services/app.service.mjs +2 -34
  381. package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +1 -4
  382. package/runtime/base/esm2022/services/http-interceptor.services.mjs +14 -13
  383. package/runtime/base/esm2022/services/pipe-provider.service.mjs +4 -7
  384. package/runtime/base/esm2022/services/spinner.service.mjs +1 -15
  385. package/runtime/base/esm2022/util/fragment-monitor.mjs +2 -23
  386. package/runtime/base/fesm2022/index.mjs +44 -377
  387. package/runtime/base/fesm2022/index.mjs.map +1 -1
  388. package/runtime/base/services/app.manager.service.d.ts +1 -6
  389. package/runtime/base/services/app.service.d.ts +2 -12
  390. package/runtime/base/services/dynamic-component-ref-provider.service.d.ts +1 -2
  391. package/runtime/base/services/spinner.service.d.ts +1 -3
  392. package/runtime/base/util/fragment-monitor.d.ts +0 -6
  393. package/runtime/dynamic/bundles/index.umd.js +0 -5
  394. package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +1 -6
  395. package/runtime/dynamic/fesm2022/index.mjs +0 -5
  396. package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  397. package/scripts/datatable/datatable.js +14 -100
  398. package/security/bundles/index.umd.js +2 -41
  399. package/security/esm2022/security.service.mjs +3 -42
  400. package/security/fesm2022/index.mjs +2 -41
  401. package/security/fesm2022/index.mjs.map +1 -1
  402. package/security/security.service.d.ts +2 -5
  403. package/variables/bundles/index.umd.js +6 -50
  404. package/variables/esm2022/manager/action/notification-action.manager.mjs +3 -18
  405. package/variables/esm2022/manager/variable/base-variable.manager.mjs +2 -15
  406. package/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +3 -13
  407. package/variables/esm2022/service/variables.service.mjs +2 -8
  408. package/variables/fesm2022/index.mjs +6 -50
  409. package/variables/fesm2022/index.mjs.map +1 -1
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@wm/core'), require('@angular/core'), require('@wavemaker/focus-trap'), require('lodash-es'), require('moment'), require('@angular/platform-browser'), require('rxjs'), require('@wm/security'), require('rxjs/operators'), require('@angular/forms'), require('@swipey'), require('@angular/common'), require('moment-timezone/moment-timezone')) :
3
- typeof define === 'function' && define.amd ? define(['exports', '@wm/core', '@angular/core', '@wavemaker/focus-trap', 'lodash-es', 'moment', '@angular/platform-browser', 'rxjs', '@wm/security', 'rxjs/operators', '@angular/forms', '@swipey', '@angular/common', 'moment-timezone/moment-timezone'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.wm = global.wm || {}, global.wm.components = global.wm.components || {}, global.wm.components.base = {}), global.wm.core, global.ng.core, global.focusTrap, global._, global.momentLib, global.ng.platformBrowser, global.rxjs, global.wm.security, global.rxjs.operators, global.ng.forms, global.swipey, global.ng.common, global.momentLib$1));
5
- })(this, (function (exports, i1, i0, focusTrap, lodashEs, momentLib, i1$2, rxjs, security, operators, forms, _swipey, i1$1, momentLib$1) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@wm/core'), require('@angular/core'), require('@wavemaker/focus-trap'), require('lodash-es'), require('moment'), require('@angular/platform-browser'), require('rxjs'), require('tslib'), require('@wm/security'), require('rxjs/operators'), require('@angular/forms'), require('@swipey'), require('@angular/common'), require('moment-timezone/moment-timezone')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', '@wm/core', '@angular/core', '@wavemaker/focus-trap', 'lodash-es', 'moment', '@angular/platform-browser', 'rxjs', 'tslib', '@wm/security', 'rxjs/operators', '@angular/forms', '@swipey', '@angular/common', 'moment-timezone/moment-timezone'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.wm = global.wm || {}, global.wm.components = global.wm.components || {}, global.wm.components.base = {}), global.wm.core, global.ng.core, global.focusTrap, global._, global.momentLib, global.ng.platformBrowser, global.rxjs, global.tslib, global.wm.security, global.rxjs.operators, global.ng.forms, global.swipey, global.ng.common, global.momentLib$1));
5
+ })(this, (function (exports, i1, i0, focusTrap, lodashEs, momentLib, i1$2, rxjs, tslib, security, operators, forms, _swipey, i1$1, momentLib$1) { 'use strict';
6
6
 
7
7
  function _interopNamespaceDefault(e) {
8
8
  var n = Object.create(null);
@@ -202,7 +202,7 @@
202
202
  urlString = (defaultUrl || 'resources/images/imagelists/default-image.png');
203
203
  }
204
204
  }
205
- if (urlString && !i1._WM_APP_PROJECT.isPreview && !i1.isValidImageUrl(urlString) && !urlString.startsWith(i1._WM_APP_PROJECT.cdnUrl) && !urlString.startsWith('services')) {
205
+ if (urlString && !i1._WM_APP_PROJECT.isPreview && !i1.isValidWebURL(urlString) && !urlString.startsWith(i1._WM_APP_PROJECT.cdnUrl)) {
206
206
  urlString = (i1._WM_APP_PROJECT.cdnUrl || '') + urlString;
207
207
  }
208
208
  urlString = shouldEncode ? i1.encodeUrl(urlString) : urlString;
@@ -1927,9 +1927,7 @@
1927
1927
  return () => {
1928
1928
  registryById.delete(widgetId);
1929
1929
  if (registered) {
1930
- // MEMORY LEAK FIX: Delete the property instead of setting to undefined
1931
- // This ensures the property is completely removed from the object
1932
- delete viewParent.Widgets[name];
1930
+ viewParent.Widgets[name] = undefined;
1933
1931
  }
1934
1932
  };
1935
1933
  };
@@ -1941,8 +1939,7 @@
1941
1939
  return;
1942
1940
  }
1943
1941
  if (ov) {
1944
- // MEMORY LEAK FIX: Delete the old property instead of setting to undefined
1945
- delete viewParent.Widgets[ov];
1942
+ viewParent.Widgets[ov] = undefined;
1946
1943
  }
1947
1944
  if (nv) {
1948
1945
  viewParent.Widgets[nv] = widget;
@@ -2003,12 +2000,7 @@
2003
2000
  return i1.toBoolean(value, isBooleanAttr(key) && key);
2004
2001
  }
2005
2002
  if (type === exports.PROP_TYPE.NUMBER) {
2006
- const numValue = +value;
2007
- // Fix NaN for tabindex - default to 0 if value is invalid
2008
- if (key === 'tabindex' && isNaN(numValue)) {
2009
- return value === null || value === undefined || value === '' ? 0 : numValue;
2010
- }
2011
- return numValue;
2003
+ return +value;
2012
2004
  }
2013
2005
  return value;
2014
2006
  };
@@ -2097,14 +2089,12 @@
2097
2089
  }
2098
2090
  };
2099
2091
  const $RAF = window.requestAnimationFrame;
2100
- let $RAFQueue = [];
2092
+ const $RAFQueue = [];
2101
2093
  const invokeLater = fn => {
2102
2094
  if (!$RAFQueue.length) {
2103
2095
  $RAF(() => {
2104
- // Execute all queued functions
2105
2096
  $RAFQueue.forEach(f => f());
2106
- // MEMORY LEAK FIX: Explicitly clear the array to release closure references
2107
- $RAFQueue = [];
2097
+ $RAFQueue.length = 0;
2108
2098
  });
2109
2099
  }
2110
2100
  $RAFQueue.push(fn);
@@ -2334,26 +2324,10 @@
2334
2324
  this.propertyChange.subscribe(({ key, nv, ov }) => fn(key, nv, ov));
2335
2325
  }
2336
2326
  registerDestroyListener(fn, ctx) {
2337
- if (!fn) {
2338
- return;
2339
- }
2340
2327
  if (ctx) {
2341
2328
  fn = fn.bind(ctx);
2342
2329
  }
2343
- this.destroy.subscribe(() => { }, () => { }, () => {
2344
- try {
2345
- if (fn && typeof fn === 'function') {
2346
- fn();
2347
- }
2348
- }
2349
- catch (e) {
2350
- // Silently handle cleanup errors to prevent test failures
2351
- // These are typically non-critical cleanup issues like:
2352
- // - Subscriptions already unsubscribed
2353
- // - Null references during cleanup
2354
- // - Components already destroyed
2355
- }
2356
- });
2330
+ this.destroy.subscribe(() => { }, () => { }, () => fn());
2357
2331
  }
2358
2332
  getDisplayType() {
2359
2333
  return this.displayType;
@@ -2519,24 +2493,14 @@
2519
2493
  // the promise returned by the variable call.
2520
2494
  boundFnVal = boundFn();
2521
2495
  if (boundFnVal instanceof Promise) {
2522
- return boundFnVal.then(response => response, err => {
2523
- const widgetName = widget.name || widget.widgetId || 'unknown';
2524
- console.error(`Error in promise returned by event callback "${eventName}" on widget "${widgetName}":`, err);
2525
- return err;
2526
- });
2496
+ return boundFnVal.then(response => response, err => err);
2527
2497
  }
2528
2498
  else {
2529
2499
  return boundFnVal;
2530
2500
  }
2531
2501
  }
2532
2502
  catch (e) {
2533
- // Enhanced error logging with context
2534
- const widgetName = widget.name || widget.widgetId || 'unknown';
2535
- const errorMessage = e.message || String(e);
2536
- console.error(`Error executing event callback "${eventName}" on widget "${widgetName}":`, errorMessage);
2537
- console.error('Event expression context:', { eventName, widgetName, locals });
2538
- // Re-throw to maintain original behavior but with better context
2539
- throw e;
2503
+ console.error(e);
2540
2504
  }
2541
2505
  };
2542
2506
  if (child && !child.widget.eventHandlers)
@@ -2560,17 +2524,11 @@
2560
2524
  if (!child)
2561
2525
  this.initState.delete(propName);
2562
2526
  let viewParent = child ? child.widget.viewParent.viewParent : this.viewParent, context = child ? child.widget.context : this.context, widget = child ? child.widget : this.widget, isMuted = child ? child.widget.isMuted : this.isMuted, widgetProps = child ? child.widget.widgetProps : this.widgetProps, widgetId = child ? child.widget.widgetId : this.widgetId;
2563
- // OPTIMIZATION: Apply throttling for non-critical properties
2564
- const watchConfig = widgetProps.get(propName) || {};
2565
- const throttledProps = ['class', 'style', 'ngclass', 'ngstyle'];
2566
- if (throttledProps.includes(propName.toLowerCase())) {
2567
- watchConfig.throttle = 100; // Throttle to 100ms for style/class properties
2568
- }
2569
2527
  this.registerDestroyListener(i1.$watch(expr, viewParent, context, nv => {
2570
2528
  if (propName.startsWith('base-') && widget.updateData)
2571
2529
  widget.updateData(propName, nv);
2572
2530
  widget[propName] = nv;
2573
- }, getWatchIdentifier(widgetId, propName), propName === 'datasource', watchConfig, () => isMuted));
2531
+ }, getWatchIdentifier(widgetId, propName), propName === 'datasource', widgetProps.get(propName), () => isMuted));
2574
2532
  }
2575
2533
  /**
2576
2534
  * Remove watch on the bound property
@@ -2589,18 +2547,7 @@
2589
2547
  const fn = callbackInfo.callback;
2590
2548
  const locals = callbackInfo.locals || {};
2591
2549
  if (fn) {
2592
- try {
2593
- return fn(Object.assign(locals, extraLocals));
2594
- }
2595
- catch (error) {
2596
- // Log error with context information for debugging
2597
- const widgetName = this.name || this.widgetId || 'unknown';
2598
- const errorMessage = error?.message || String(error);
2599
- console.error(`Error executing event callback "${eventName}" on widget "${widgetName}":`, errorMessage);
2600
- console.error('Full error:', error);
2601
- // Re-throw to maintain original behavior but with better error context
2602
- throw error;
2603
- }
2550
+ return fn(Object.assign(locals, extraLocals));
2604
2551
  }
2605
2552
  }
2606
2553
  }
@@ -2818,24 +2765,6 @@
2818
2765
  this.propertyChange.complete();
2819
2766
  this.destroy.complete();
2820
2767
  this.isAttached = false;
2821
- // MEMORY LEAK FIX: Unwatch all watchers for this widget
2822
- // This ensures all watchers registered for this component are cleaned up
2823
- if (this.widgetId) {
2824
- i1.$unwatchAll(this.widgetId);
2825
- // if (removedCount > 0) {
2826
- // console.log(`🧹 Cleaned up ${removedCount} watcher(s) for widget ${this.widgetId}`);
2827
- // }
2828
- }
2829
- // MEMORY LEAK FIX: Clear context to release references to parent scope data
2830
- // The context object holds references to repeater items, wizard steps, etc.
2831
- // which can retain large amounts of data even after component destruction
2832
- if (this.context) {
2833
- // Clear all properties from context
2834
- Object.keys(this.context).forEach(key => {
2835
- delete this.context[key];
2836
- });
2837
- this.context = null;
2838
- }
2839
2768
  }
2840
2769
  static { this.ɵfac = function BaseComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BaseComponent)(i0__namespace.ɵɵinject(i0__namespace.Injector), i0__namespace.ɵɵinject(WidgetConfig), i0__namespace.ɵɵinject('EXPLICIT_CONTEXT', 8), i0__namespace.ɵɵinject(Promise)); }; }
2841
2770
  static { this.ɵprov = /*@__PURE__*/ i0__namespace.ɵɵdefineInjectable({ token: BaseComponent, factory: BaseComponent.ɵfac }); }
@@ -2931,32 +2860,6 @@
2931
2860
  }
2932
2861
  }
2933
2862
  }
2934
- ngOnDestroy() {
2935
- // MEMORY LEAK FIX: Clear redrawable components references
2936
- // The reDrawableComponents QueryList holds references to child components
2937
- // and updateRedrawableComponents manually pushes to _results array
2938
- if (this.reDrawableComponents) {
2939
- // Clear the manually added items from _results
2940
- if (this.reDrawableComponents._results) {
2941
- this.reDrawableComponents._results.length = 0;
2942
- }
2943
- // Reset the QueryList
2944
- this.reDrawableComponents.reset([]);
2945
- }
2946
- // MEMORY LEAK FIX: Clear Widgets object to release child widget references
2947
- // This object holds references to all child widgets in the container
2948
- if (this.Widgets) {
2949
- Object.keys(this.Widgets).forEach(key => {
2950
- delete this.Widgets[key];
2951
- });
2952
- this.Widgets = null;
2953
- }
2954
- // MEMORY LEAK FIX: Clear content reference
2955
- this.content = null;
2956
- // Call parent ngOnDestroy (StylableComponent → BaseComponent)
2957
- // This will clear the context and unregister the widget
2958
- super.ngOnDestroy();
2959
- }
2960
2863
  static { this.ɵfac = function BaseContainerComponent_Factory(__ngFactoryType__) { i0__namespace.ɵɵinvalidFactory(); }; }
2961
2864
  static { this.ɵdir = /*@__PURE__*/ i0__namespace.ɵɵdefineDirective({ type: BaseContainerComponent, contentQueries: function BaseContainerComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
2962
2865
  i0__namespace.ɵɵcontentQuery(dirIndex, RedrawableDirective, 5);
@@ -2985,7 +2888,7 @@
2985
2888
  return link;
2986
2889
  }
2987
2890
  };
2988
- class DatasetAwareNavComponent extends StylableComponent {
2891
+ exports.DatasetAwareNavComponent = class DatasetAwareNavComponent extends StylableComponent {
2989
2892
  constructor(inj, WIDGET_CONFIG, explicitContext) {
2990
2893
  super(inj, WIDGET_CONFIG, explicitContext);
2991
2894
  this.nodes = [];
@@ -3143,46 +3046,12 @@
3143
3046
  }
3144
3047
  super.onPropertyChange(key, nv, ov);
3145
3048
  }
3146
- ngOnDestroy() {
3147
- // MEMORY LEAK FIX: Cancel debounced function
3148
- if (this._resetNodes && this._resetNodes.cancel) {
3149
- this._resetNodes.cancel();
3150
- this._resetNodes = null;
3151
- }
3152
- // MEMORY LEAK FIX: Complete Subject to release subscriptions
3153
- if (this.nodes$) {
3154
- this.nodes$.complete();
3155
- this.nodes$ = null;
3156
- }
3157
- // MEMORY LEAK FIX: Clear nodes array to release references
3158
- this.nodes = [];
3159
- this.dataset = null;
3160
- this._itemFieldMap = null;
3161
- // MEMORY LEAK FIX: Clear bound attribute references
3162
- this.binditemlabel = null;
3163
- this.binditemhint = null;
3164
- this.binditemicon = null;
3165
- this.binditemaction = null;
3166
- this.binditembadge = null;
3167
- this.binditemchildren = null;
3168
- this.binditemlink = null;
3169
- this.binditemtarget = null;
3170
- this.binduserrole = null;
3171
- this.bindisactive = null;
3172
- this.binditemid = null;
3173
- super.ngOnDestroy();
3174
- }
3175
- static { this.ɵfac = function DatasetAwareNavComponent_Factory(__ngFactoryType__) { i0__namespace.ɵɵinvalidFactory(); }; }
3176
- static { this.ɵprov = /*@__PURE__*/ i0__namespace.ɵɵdefineInjectable({ token: DatasetAwareNavComponent, factory: DatasetAwareNavComponent.ɵfac }); }
3177
- }
3178
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(DatasetAwareNavComponent, [{
3179
- type: i0.Injectable
3180
- }], () => [{ type: i0__namespace.Injector }, { type: undefined }, { type: undefined, decorators: [{
3181
- type: i0.Inject,
3182
- args: ['EXPLICIT_CONTEXT']
3183
- }, {
3184
- type: i0.Optional
3185
- }] }], null); })();
3049
+ };
3050
+ exports.DatasetAwareNavComponent = tslib.__decorate([
3051
+ tslib.__param(2, i0.Inject('EXPLICIT_CONTEXT')),
3052
+ tslib.__param(2, i0.Optional()),
3053
+ tslib.__metadata("design:paramtypes", [i0.Injector, Object, Object])
3054
+ ], exports.DatasetAwareNavComponent);
3186
3055
 
3187
3056
  class PartialContainerDirective {
3188
3057
  get name() {
@@ -3251,25 +3120,6 @@
3251
3120
  // reload the partial content on partial param change
3252
3121
  componentInstance.registerDestroyListener(() => subscription.unsubscribe());
3253
3122
  }
3254
- ngOnDestroy() {
3255
- // MEMORY LEAK FIX: Clear ViewContainerRef to destroy dynamically created components
3256
- if (this.vcRef) {
3257
- this.vcRef.clear();
3258
- }
3259
- // MEMORY LEAK FIX: Nullify debounced function to break closure
3260
- // The debounced function captures 'this' and has internal timeouts
3261
- if (this.renderPartial && this.renderPartial.cancel) {
3262
- this.renderPartial.cancel();
3263
- }
3264
- this.renderPartial = null;
3265
- // MEMORY LEAK FIX: Clear DOM reference
3266
- this.$target = null;
3267
- // MEMORY LEAK FIX: Clear component instance reference
3268
- // Note: We don't null componentInstance as it's injected and managed by Angular
3269
- // but we clear our internal references
3270
- // Reset content flag
3271
- this.contentInitialized = false;
3272
- }
3273
3123
  static { this.ɵfac = function PartialContainerDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PartialContainerDirective)(i0__namespace.ɵɵdirectiveInject(WidgetRef, 2), i0__namespace.ɵɵdirectiveInject(i0__namespace.ViewContainerRef), i0__namespace.ɵɵdirectiveInject(i0__namespace.ElementRef), i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(i1__namespace.App), i0__namespace.ɵɵinjectAttribute('content'), i0__namespace.ɵɵdirectiveInject(i0__namespace.ComponentFactoryResolver), i0__namespace.ɵɵdirectiveInject(i1__namespace.PartialRefProvider)); }; }
3274
3124
  static { this.ɵdir = /*@__PURE__*/ i0__namespace.ɵɵdefineDirective({ type: PartialContainerDirective, selectors: [["", "partialContainer", ""]], standalone: true }); }
3275
3125
  }
@@ -3305,14 +3155,6 @@
3305
3155
  }
3306
3156
  });
3307
3157
  }
3308
- ngOnDestroy() {
3309
- // MEMORY LEAK FIX: Clear ViewContainerRef to destroy dynamically created components
3310
- if (this.vcRef) {
3311
- this.vcRef.clear();
3312
- }
3313
- // MEMORY LEAK FIX: Clear ElementRef reference
3314
- this.elRef = null;
3315
- }
3316
3158
  static { this.ɵfac = function CustomWidgetContainerDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CustomWidgetContainerDirective)(i0__namespace.ɵɵdirectiveInject(WidgetRef, 2), i0__namespace.ɵɵdirectiveInject(i0__namespace.ViewContainerRef), i0__namespace.ɵɵdirectiveInject(i0__namespace.ElementRef), i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(i1__namespace.App), i0__namespace.ɵɵinjectAttribute('widgetname'), i0__namespace.ɵɵdirectiveInject(i1__namespace.CustomWidgetRefProvider)); }; }
3317
3159
  static { this.ɵdir = /*@__PURE__*/ i0__namespace.ɵɵdefineDirective({ type: CustomWidgetContainerDirective, selectors: [["", "customWidgetContainer", "", "widgetname", ""]], standalone: true }); }
3318
3160
  }
@@ -3602,23 +3444,6 @@
3602
3444
  }
3603
3445
  }
3604
3446
  }
3605
- // MEMORY LEAK FIX: Cleanup method to release all references
3606
- destroy() {
3607
- // Clear all references to prevent memory leaks
3608
- this.instance = null;
3609
- this.formwidget = null;
3610
- this.widgetControl = null;
3611
- this.widgetContext = null;
3612
- // Clear validators array and async validator function
3613
- if (this._syncValidators) {
3614
- this._syncValidators = [];
3615
- }
3616
- this._asyncValidatorFn = null;
3617
- // Clear default validator messages
3618
- if (this.defaultValidatorMessages) {
3619
- this.defaultValidatorMessages = [];
3620
- }
3621
- }
3622
3447
  }
3623
3448
 
3624
3449
  const registerProps$4 = () => {
@@ -3658,31 +3483,6 @@
3658
3483
  super.ngOnInit();
3659
3484
  this.partialParams.item = this.userComponentParams.dataObject;
3660
3485
  }
3661
- ngOnDestroy() {
3662
- // MEMORY LEAK FIX: Clear context to release references to ngFor context
3663
- // The context holds references to the parent LView and loop variables
3664
- if (this.context) {
3665
- Object.keys(this.context).forEach(key => {
3666
- delete this.context[key];
3667
- });
3668
- this.context = null;
3669
- }
3670
- // MEMORY LEAK FIX: Clear partial params
3671
- if (this.partialParams) {
3672
- Object.keys(this.partialParams).forEach(key => {
3673
- delete this.partialParams[key];
3674
- });
3675
- this.partialParams = null;
3676
- }
3677
- // MEMORY LEAK FIX: Clear user component params reference
3678
- this.userComponentParams = null;
3679
- // MEMORY LEAK FIX: Clear content reference
3680
- this.content = null;
3681
- // MEMORY LEAK FIX: Clear ViewContainerRef reference
3682
- this.viewContainerRef = null;
3683
- // Call parent ngOnDestroy (StylableComponent → BaseComponent)
3684
- super.ngOnDestroy();
3685
- }
3686
3486
  static { this.ɵfac = function ItemTemplateDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ItemTemplateDirective)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(i0__namespace.ElementRef), i0__namespace.ɵɵdirectiveInject(i1__namespace.App), i0__namespace.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
3687
3487
  static { this.ɵdir = /*@__PURE__*/ i0__namespace.ɵɵdefineDirective({ type: ItemTemplateDirective, selectors: [["", "wmItemTemplate", ""]], inputs: { userComponentParams: "userComponentParams", wmItemTemplate: "wmItemTemplate" }, exportAs: ["itemTemplateRef"], standalone: true, features: [i0__namespace.ɵɵProvidersFeature([
3688
3488
  provideAsWidgetRef(ItemTemplateDirective)
@@ -3970,27 +3770,6 @@
3970
3770
  wait() {
3971
3771
  this.runAnimation = true;
3972
3772
  }
3973
- destroy() {
3974
- // Unsubscribe from app events
3975
- if (this.cancelSubscription) {
3976
- this.cancelSubscription();
3977
- this.cancelSubscription = null;
3978
- }
3979
- // Stop any running animation
3980
- if (this.animationInProgress) {
3981
- this.stopAnimation();
3982
- }
3983
- // Clean up spinner
3984
- if (this.spinner) {
3985
- this.spinner.stop();
3986
- this.spinner = null;
3987
- }
3988
- // Remove DOM elements
3989
- if (this.infoContainer) {
3990
- this.infoContainer.remove();
3991
- this.infoContainer = null;
3992
- }
3993
- }
3994
3773
  }
3995
3774
  // Android Spinner implementation
3996
3775
  class AndroidSpinner {
@@ -5232,7 +5011,7 @@
5232
5011
  constructor(inj, templateRef, viewContainer, explicitContext = {}) {
5233
5012
  this.templateRef = templateRef;
5234
5013
  this.viewContainer = viewContainer;
5235
- this.context = {}; // Changed from readonly to allow cleanup
5014
+ this.context = {};
5236
5015
  let viewParentApp = inj ? inj.get(i1.App) : i0.inject(i1.App);
5237
5016
  let lView = inj._lView;
5238
5017
  this.viewParent = i1.findParent(lView, viewParentApp);
@@ -5240,55 +5019,15 @@
5240
5019
  lodashEs.extend(this.context, inj._lView[8], explicitContext);
5241
5020
  }
5242
5021
  set lazyLoad(expr) {
5243
- // MEMORY LEAK FIX: Unsubscribe from previous watcher if it exists
5244
- if (this.unSubscribeFn && typeof this.unSubscribeFn === 'function') {
5245
- try {
5246
- this.unSubscribeFn();
5247
- }
5248
- catch (e) {
5249
- console.warn('Error unsubscribing from previous lazyLoad watcher:', e);
5250
- }
5251
- this.unSubscribeFn = null;
5252
- }
5253
5022
  this.unSubscribeFn = i1.$watch(expr, this.viewParent, this.context, (val) => {
5254
5023
  if (!this.embeddedView && val) {
5255
5024
  this.embeddedView = this.viewContainer.createEmbeddedView(this.templateRef, this.context);
5256
- // Unsubscribe after creating the view (lazy load is complete)
5257
- if (this.unSubscribeFn && typeof this.unSubscribeFn === 'function') {
5258
- try {
5259
- this.unSubscribeFn();
5260
- this.unSubscribeFn = null; // Clear after calling to prevent double-call
5261
- }
5262
- catch (e) {
5263
- console.warn('Error unsubscribing from lazyLoad watcher:', e);
5264
- this.unSubscribeFn = null;
5265
- }
5266
- }
5025
+ this.unSubscribeFn();
5267
5026
  }
5268
5027
  });
5269
5028
  }
5270
5029
  ngOnDestroy() {
5271
- // MEMORY LEAK FIX: Safely unsubscribe from watcher
5272
- if (this.unSubscribeFn && typeof this.unSubscribeFn === 'function') {
5273
- try {
5274
- this.unSubscribeFn();
5275
- }
5276
- catch (e) {
5277
- console.warn('Error unsubscribing from lazyLoad watcher in ngOnDestroy:', e);
5278
- }
5279
- this.unSubscribeFn = null;
5280
- }
5281
- // MEMORY LEAK FIX: Clear context to release references to parent scope data
5282
- if (this.context) {
5283
- Object.keys(this.context).forEach(key => {
5284
- delete this.context[key];
5285
- });
5286
- this.context = null;
5287
- }
5288
- // MEMORY LEAK FIX: Clear embedded view reference
5289
- if (this.embeddedView) {
5290
- this.embeddedView = null;
5291
- }
5030
+ this.unSubscribeFn();
5292
5031
  }
5293
5032
  static { this.ɵfac = function LazyLoadDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LazyLoadDirective)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(i0__namespace.TemplateRef), i0__namespace.ɵɵdirectiveInject(i0__namespace.ViewContainerRef), i0__namespace.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
5294
5033
  static { this.ɵdir = /*@__PURE__*/ i0__namespace.ɵɵdefineDirective({ type: LazyLoadDirective, selectors: [["", "lazyLoad", ""]], inputs: { lazyLoad: "lazyLoad" }, standalone: true }); }
@@ -5330,21 +5069,6 @@
5330
5069
  this.widgetRef.params$.next();
5331
5070
  }
5332
5071
  }
5333
- ngOnDestroy() {
5334
- // MEMORY LEAK FIX: Complete the params$ Subject
5335
- if (this.widgetRef.params$) {
5336
- this.widgetRef.params$.complete();
5337
- }
5338
- // MEMORY LEAK FIX: Clear partial params
5339
- if (this.widgetRef.partialParams) {
5340
- Object.keys(this.widgetRef.partialParams).forEach(key => {
5341
- delete this.widgetRef.partialParams[key];
5342
- });
5343
- this.widgetRef.partialParams = null;
5344
- }
5345
- // Clear pageParams reference
5346
- this.widgetRef.pageParams = null;
5347
- }
5348
5072
  static { this.ɵfac = function PartialParamHandlerDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PartialParamHandlerDirective)(i0__namespace.ɵɵdirectiveInject(WidgetRef, 2)); }; }
5349
5073
  static { this.ɵdir = /*@__PURE__*/ i0__namespace.ɵɵdefineDirective({ type: PartialParamHandlerDirective, selectors: [["", "partialContainer", ""]], standalone: true }); }
5350
5074
  }
@@ -5418,11 +5142,9 @@
5418
5142
  constructor(viewContainerRef, inj, templateRef, explicitContext) {
5419
5143
  this.viewContainerRef = viewContainerRef;
5420
5144
  this.templateRef = templateRef;
5421
- this.context = {}; // Changed from readonly to allow cleanup
5145
+ this.context = {};
5422
5146
  lodashEs.extend(this.context, inj._lView[8], explicitContext);
5423
- // MEMORY LEAK FIX: Store bound function reference for proper removal
5424
- this.boundOnResize = this.onResize.bind(this);
5425
- window.addEventListener('resize', this.boundOnResize);
5147
+ window.addEventListener('resize', this.onResize.bind(this));
5426
5148
  }
5427
5149
  set wmShowInDevice(devices) {
5428
5150
  this.devices = devices.split(',');
@@ -5464,23 +5186,7 @@
5464
5186
  }
5465
5187
  }
5466
5188
  ngOnDestroy() {
5467
- // MEMORY LEAK FIX: Remove using the stored bound function reference
5468
- if (this.boundOnResize) {
5469
- window.removeEventListener('resize', this.boundOnResize);
5470
- this.boundOnResize = null;
5471
- }
5472
- // MEMORY LEAK FIX: Clear embedded view reference
5473
- if (this.embeddedView) {
5474
- this.viewContainerRef.clear();
5475
- this.embeddedView = null;
5476
- }
5477
- // MEMORY LEAK FIX: Clear context to release references to parent scope data
5478
- if (this.context) {
5479
- Object.keys(this.context).forEach(key => {
5480
- delete this.context[key];
5481
- });
5482
- this.context = null;
5483
- }
5189
+ window.removeEventListener('resize', this.onResize);
5484
5190
  }
5485
5191
  static { this.ɵfac = function ShowInDeviceDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ShowInDeviceDirective)(i0__namespace.ɵɵdirectiveInject(i0__namespace.ViewContainerRef), i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(i0__namespace.TemplateRef), i0__namespace.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
5486
5192
  static { this.ɵdir = /*@__PURE__*/ i0__namespace.ɵɵdefineDirective({ type: ShowInDeviceDirective, selectors: [["", "wmShowInDevice", ""]], inputs: { wmShowInDevice: "wmShowInDevice" }, standalone: true }); }
@@ -5512,7 +5218,6 @@
5512
5218
  exports.DEBOUNCE_TIMES = DEBOUNCE_TIMES;
5513
5219
  exports.DISPLAY_TYPE = DISPLAY_TYPE;
5514
5220
  exports.DataSetItem = DataSetItem;
5515
- exports.DatasetAwareNavComponent = DatasetAwareNavComponent;
5516
5221
  exports.DialogRef = DialogRef;
5517
5222
  exports.DialogServiceImpl = DialogServiceImpl;
5518
5223
  exports.EDIT_MODE = EDIT_MODE;
@@ -3,10 +3,9 @@ import * as i0 from "@angular/core";
3
3
  export declare class ShowInDeviceDirective implements OnDestroy {
4
4
  private viewContainerRef;
5
5
  private templateRef;
6
- private context;
6
+ private readonly context;
7
7
  private devices;
8
8
  private embeddedView;
9
- private boundOnResize;
10
9
  constructor(viewContainerRef: ViewContainerRef, inj: Injector, templateRef: TemplateRef<any>, explicitContext: any);
11
10
  set wmShowInDevice(devices: any);
12
11
  private onResize;
@@ -6,11 +6,9 @@ export class ShowInDeviceDirective {
6
6
  constructor(viewContainerRef, inj, templateRef, explicitContext) {
7
7
  this.viewContainerRef = viewContainerRef;
8
8
  this.templateRef = templateRef;
9
- this.context = {}; // Changed from readonly to allow cleanup
9
+ this.context = {};
10
10
  extend(this.context, inj._lView[8], explicitContext);
11
- // MEMORY LEAK FIX: Store bound function reference for proper removal
12
- this.boundOnResize = this.onResize.bind(this);
13
- window.addEventListener('resize', this.boundOnResize);
11
+ window.addEventListener('resize', this.onResize.bind(this));
14
12
  }
15
13
  set wmShowInDevice(devices) {
16
14
  this.devices = devices.split(',');
@@ -52,23 +50,7 @@ export class ShowInDeviceDirective {
52
50
  }
53
51
  }
54
52
  ngOnDestroy() {
55
- // MEMORY LEAK FIX: Remove using the stored bound function reference
56
- if (this.boundOnResize) {
57
- window.removeEventListener('resize', this.boundOnResize);
58
- this.boundOnResize = null;
59
- }
60
- // MEMORY LEAK FIX: Clear embedded view reference
61
- if (this.embeddedView) {
62
- this.viewContainerRef.clear();
63
- this.embeddedView = null;
64
- }
65
- // MEMORY LEAK FIX: Clear context to release references to parent scope data
66
- if (this.context) {
67
- Object.keys(this.context).forEach(key => {
68
- delete this.context[key];
69
- });
70
- this.context = null;
71
- }
53
+ window.removeEventListener('resize', this.onResize);
72
54
  }
73
55
  static { this.ɵfac = function ShowInDeviceDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ShowInDeviceDirective)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
74
56
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ShowInDeviceDirective, selectors: [["", "wmShowInDevice", ""]], inputs: { wmShowInDevice: "wmShowInDevice" }, standalone: true }); }
@@ -87,4 +69,4 @@ export class ShowInDeviceDirective {
87
69
  }] }], { wmShowInDevice: [{
88
70
  type: Input
89
71
  }] }); })();
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1pbi1kZXZpY2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9iYXNlL3NyYy9kaXJlY3RpdmVzL3Nob3ctaW4tZGV2aWNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFhLFFBQVEsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFDLHNCQUFzQixFQUFFLHFCQUFxQixFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxXQUFXLENBQUM7O0FBTWpDLE1BQU0sT0FBTyxxQkFBcUI7SUFNOUIsWUFDWSxnQkFBa0MsRUFDMUMsR0FBYSxFQUNMLFdBQTZCLEVBQ0csZUFBb0I7UUFIcEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUVsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFSakMsWUFBTyxHQUFRLEVBQUUsQ0FBQyxDQUFDLHlDQUF5QztRQVdoRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRyxHQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBRTlELHFFQUFxRTtRQUNyRSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxJQUFhLGNBQWMsQ0FBQyxPQUFPO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxJQUFJLENB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QUcsUUFBUTtxQkFRNUIsY0FBYztrQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbmplY3QsIEluamVjdG9yLCBJbnB1dCwgT25EZXN0cm95LCBPcHRpb25hbCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtpc0xhcmdlVGFibGV0TGFuZHNjYXBlLCBpc0xhcmdlVGFibGV0UG9ydHJhaXR9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7ZXh0ZW5kfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3dtU2hvd0luRGV2aWNlXSdcbn0pXG5leHBvcnQgY2xhc3MgU2hvd0luRGV2aWNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIGNvbnRleHQ6IGFueSA9IHt9OyAvLyBDaGFuZ2VkIGZyb20gcmVhZG9ubHkgdG8gYWxsb3cgY2xlYW51cFxuICAgIHByaXZhdGUgZGV2aWNlcztcbiAgICBwcml2YXRlIGVtYmVkZGVkVmlldztcbiAgICBwcml2YXRlIGJvdW5kT25SZXNpemU6ICgpID0+IHZvaWQ7IC8vIE1FTU9SWSBMRUFLIEZJWDogU3RvcmUgYm91bmQgZnVuY3Rpb24gZm9yIHByb3BlciBjbGVhbnVwXG4gICAgXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgaW5qOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICAgICAgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55XG4gICAgKSB7XG4gICAgICAgIGV4dGVuZCh0aGlzLmNvbnRleHQsIChpbmogYXMgYW55KS5fbFZpZXdbOF0sIGV4cGxpY2l0Q29udGV4dCk7XG5cbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBTdG9yZSBib3VuZCBmdW5jdGlvbiByZWZlcmVuY2UgZm9yIHByb3BlciByZW1vdmFsXG4gICAgICAgIHRoaXMuYm91bmRPblJlc2l6ZSA9IHRoaXMub25SZXNpemUuYmluZCh0aGlzKTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuYm91bmRPblJlc2l6ZSk7XG4gICAgfVxuICAgIEBJbnB1dCgpIHNldCB3bVNob3dJbkRldmljZShkZXZpY2VzKSB7XG4gICAgICAgIHRoaXMuZGV2aWNlcyA9IGRldmljZXMuc3BsaXQoJywnKTtcbiAgICAgICAgdGhpcy5vblJlc2l6ZSgpO1xuICAgIH1cbiAgICAvKlxuICAgIFRoaXMgZnVuY3Rpb24gaGFuZGxlcyB0aGUgcmVuZGVyaW5nIG9mIHdpZGdldHMgYmFzZWQgb24gdGhlIGNvbmZpZ3VyZWQgc2hvd2luZGV2aWNlIHByb3BlcnR5XG4gICAgZm9yIHRoZSB3aWRnZXQuXG4gICAgMS4gRm9yIExhcmdlIFNjcmVlbiwgY3JlYXRlIHRoZSB2aWV3IG9ubHkgd2hlbiBtaW4td2lkdGggaXMgMTIwMHB4KGV4Y2VwdCB3aGVuIHRoZSB2aWV3cG9ydCBpcyBhbiBJcGFkIFBybyAxMyBpbmNoKExhbmRzY2FwZSkpXG4gICAgMi4gRm9yIExhcHRvcC9UYWJsZXQgTGFuZHNjYXBlLCBjcmVhdGUgdGhlIHZpZXcgb25seSB3aGVuIGVpdGhlciBtaW4td2lkdGggaXMgOTkycHggYW5kIG1heC13aWR0aCBpcyAxMTk5cHgoZXhjZXB0IHdoZW4gdGhlIHZpZXdwb3J0IGlzIGFuIElwYWQgUHJvIDEzIGluY2goUG9ydHJhaXQpKSwgb3IgaXRzIGFuIElwYWQgUHJvIDEzIGluY2goTGFuZHNjYXBlKSlcbiAgICAzLiBGb3IgVGFibGV0IFBvcnRyYWl0LCBjcmVhdGUgdGhlIHZpZXcgb25seSB3aGVuIGVpdGhlciBtaW4td2lkdGggaXMgNzY4cHggYW5kIG1heC13aWR0aCBpcyA5OTFweCwgb3IgaXRzIGFuIElwYWQgUHJvIDEzIGluY2goUG9ydHJhaXQpKVxuICAgIDQuIEZvciBNb2JpbGUsIGNyZWF0ZSB0aGUgdmlldyBvbmx5IHdoZW4gbWF4LXdpZHRoIGlzIDc2N3B4LlxuICAgIDUuIEZvciBhbGwsIGFsd2F5cyByZW5kZXIgdGhlIHZpZXcuXG4gICAgICovXG4gICAgcHJpdmF0ZSBvblJlc2l6ZSgkZXZlbnQ/KSB7XG5cbiAgICAgICAgY29uc3QgbGdXaWR0aCA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCctLXNjcmVlbi1sZycpIHx8ICcxMjAwcHgnO1xuICAgICAgICBjb25zdCBtZFdpZHRoID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJy0tc2NyZWVuLW1kJykgfHwgJzk5MnB4JztcbiAgICAgICAgY29uc3Qgc21XaWR0aCA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCctLXNjcmVlbi1zbScpIHx8ICc3NjhweCc7XG4gICAgICAgIGNvbnN0IGxnVGFiTGFuZFNjYXBlV2lkdGggPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnLS1zY3JlZW4tbGctdGFiLWxhbmRzY2FwZScpIHx8ICcxMzY2cHgnO1xuICAgICAgICBjb25zdCBsZ1RhYlBvcnRyYWl0V2lkdGggPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnLS1zY3JlZW4tbGctdGFiLXBvcnRyYWl0JykgfHwgJzEwMjRweCc7XG4gICAgICAgIGNvbnN0IGxnV2lkdGhNaW4gPSBwYXJzZUZsb2F0KGxnV2lkdGgpLTE7XG4gICAgICAgIGNvbnN0IGxnVW5pdCA9ICBsZ1dpZHRoTWluICsgXCJweFwiO1xuICAgICAgICBjb25zdCBtZFdpZHRoTWluID0gcGFyc2VGbG9hdChtZFdpZHRoKS0xO1xuICAgICAgICBjb25zdCBtZFVuaXQgPSBtZFdpZHRoTWluICsgXCJweFwiO1xuICAgICAgICBjb25zdCBzbVdpZHRoTWluID0gcGFyc2VGbG9hdChzbVdpZHRoKS0xO1xuICAgICAgICBjb25zdCBzbVVuaXQgPSBzbVdpZHRoTWluICsgXCJweFwiO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAodGhpcy5kZXZpY2VzLmluZGV4T2YoJ2xnJykgPiAtMSAmJiB3aW5kb3cubWF0Y2hNZWRpYShcIihtaW4td2lkdGg6IFwiK2xnV2lkdGgrXCIpXCIpLm1hdGNoZXMgJiYgIWlzTGFyZ2VUYWJsZXRMYW5kc2NhcGUobGdUYWJMYW5kU2NhcGVXaWR0aCwgbGdUYWJQb3J0cmFpdFdpZHRoKSlcbiAgICAgICAgICAgIHx8ICAodGhpcy5kZXZpY2VzLmluZGV4T2YoJ21kJykgPiAtMSAmJiAoaXNMYXJnZVRhYmxldExhbmRzY2FwZShsZ1RhYkxhbmRTY2FwZVdpZHRoLCBsZ1RhYlBvcnRyYWl0V2lkdGgpIHx8ICh3aW5kb3cubWF0Y2hNZWRpYShcIihtaW4td2lkdGg6IFwiK21kV2lkdGgrXCIpIGFuZCAobWF4LXdpZHRoOiBcIitsZ1VuaXQgK1wiKVwiKS5tYXRjaGVzICYmICFpc0xhcmdlVGFibGV0UG9ydHJhaXQobGdUYWJMYW5kU2NhcGVXaWR0aCwgbGdUYWJQb3J0cmFpdFdpZHRoKSkpKVxuICAgICAgICAgICAgfHwgICh0aGlzLmRldmljZXMuaW5kZXhPZignc20nKSA+IC0xICYmICh3aW5kb3cubWF0Y2hNZWRpYShcIihtaW4td2lkdGg6IFwiK3NtV2lkdGgrXCIpIGFuZCAobWF4LXdpZHRoOiBcIittZFVuaXQrXCIpXCIpLm1hdGNoZXMgfHwgaXNMYXJnZVRhYmxldFBvcnRyYWl0KGxnVGFiTGFuZFNjYXBlV2lkdGgsIGxnVGFiUG9ydHJhaXRXaWR0aCkpKVxuICAgICAgICAgICAgfHwgICh0aGlzLmRldmljZXMuaW5kZXhPZigneHMnKSA+IC0xICYmIHdpbmRvdy5tYXRjaE1lZGlhKFwiKG1heC13aWR0aDogXCIrc21Vbml0K1wiKVwiKS5tYXRjaGVzKVxuICAgICAgICAgICAgfHwgICh0aGlzLmRldmljZXMuaW5kZXhPZignYWxsJykgPiAtMSkpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5lbWJlZGRlZFZpZXcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtYmVkZGVkVmlldyA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZiwgdGhpcy5jb250ZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgICAgICAgICAgdGhpcy5lbWJlZGRlZFZpZXcgPSAnJztcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogUmVtb3ZlIHVzaW5nIHRoZSBzdG9yZWQgYm91bmQgZnVuY3Rpb24gcmVmZXJlbmNlXG4gICAgICAgIGlmICh0aGlzLmJvdW5kT25SZXNpemUpIHtcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLmJvdW5kT25SZXNpemUpO1xuICAgICAgICAgICAgdGhpcy5ib3VuZE9uUmVzaXplID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciBlbWJlZGRlZCB2aWV3IHJlZmVyZW5jZVxuICAgICAgICBpZiAodGhpcy5lbWJlZGRlZFZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgICAgICAgICAgdGhpcy5lbWJlZGRlZFZpZXcgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IENsZWFyIGNvbnRleHQgdG8gcmVsZWFzZSByZWZlcmVuY2VzIHRvIHBhcmVudCBzY29wZSBkYXRhXG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQpIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMuY29udGV4dCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmNvbnRleHRba2V5XTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0ID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1pbi1kZXZpY2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9iYXNlL3NyYy9kaXJlY3RpdmVzL3Nob3ctaW4tZGV2aWNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFhLFFBQVEsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFDLHNCQUFzQixFQUFFLHFCQUFxQixFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxXQUFXLENBQUM7O0FBTWpDLE1BQU0sT0FBTyxxQkFBcUI7SUFJOUIsWUFDWSxnQkFBa0MsRUFDMUMsR0FBYSxFQUNMLFdBQTZCLEVBQ0csZUFBb0I7UUFIcEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUVsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFOeEIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQVMxQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRyxHQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBRTlELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBQ0QsSUFBYSxjQUFjLENBQUMsT0FBTztRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRDs7Ozs7Ozs7T0FRRztJQUNLLFFBQVEsQ0FBQyxNQUFPO1FBRXBC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Q0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQzNCLENBQUM7SUFFTCxDQUFDO0lBRUQsV0FBVztRQUNQLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hELENBQUM7c0hBMURRLHFCQUFxQiwySUFRbEIsa0JBQWtCO29FQVJyQixxQkFBcUI7O2lGQUFyQixxQkFBcUI7Y0FKakMsU0FBUztlQUFDO2dCQUNULFVBQVUsRUFBRSxJQUFJO2dCQUNkLFFBQVEsRUFBRSxrQkFBa0I7YUFDL0I7O3NCQVNRLE1BQU07dUJBQUMsa0JBQWtCOztzQkFBRyxRQUFRO3FCQU01QixjQUFjO2tCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEluamVjdCwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2lzTGFyZ2VUYWJsZXRMYW5kc2NhcGUsIGlzTGFyZ2VUYWJsZXRQb3J0cmFpdH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHtleHRlbmR9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdbd21TaG93SW5EZXZpY2VdJ1xufSlcbmV4cG9ydCBjbGFzcyBTaG93SW5EZXZpY2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dCA9IHt9O1xuICAgIHByaXZhdGUgZGV2aWNlcztcbiAgICBwcml2YXRlIGVtYmVkZGVkVmlldztcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBpbmo6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgICAgICBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnlcbiAgICApIHtcbiAgICAgICAgZXh0ZW5kKHRoaXMuY29udGV4dCwgKGluaiBhcyBhbnkpLl9sVmlld1s4XSwgZXhwbGljaXRDb250ZXh0KTtcblxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5vblJlc2l6ZS5iaW5kKHRoaXMpKTtcbiAgICB9XG4gICAgQElucHV0KCkgc2V0IHdtU2hvd0luRGV2aWNlKGRldmljZXMpIHtcbiAgICAgICAgdGhpcy5kZXZpY2VzID0gZGV2aWNlcy5zcGxpdCgnLCcpO1xuICAgICAgICB0aGlzLm9uUmVzaXplKCk7XG4gICAgfVxuICAgIC8qXG4gICAgVGhpcyBmdW5jdGlvbiBoYW5kbGVzIHRoZSByZW5kZXJpbmcgb2Ygd2lkZ2V0cyBiYXNlZCBvbiB0aGUgY29uZmlndXJlZCBzaG93aW5kZXZpY2UgcHJvcGVydHlcbiAgICBmb3IgdGhlIHdpZGdldC5cbiAgICAxLiBGb3IgTGFyZ2UgU2NyZWVuLCBjcmVhdGUgdGhlIHZpZXcgb25seSB3aGVuIG1pbi13aWR0aCBpcyAxMjAwcHgoZXhjZXB0IHdoZW4gdGhlIHZpZXdwb3J0IGlzIGFuIElwYWQgUHJvIDEzIGluY2goTGFuZHNjYXBlKSlcbiAgICAyLiBGb3IgTGFwdG9wL1RhYmxldCBMYW5kc2NhcGUsIGNyZWF0ZSB0aGUgdmlldyBvbmx5IHdoZW4gZWl0aGVyIG1pbi13aWR0aCBpcyA5OTJweCBhbmQgbWF4LXdpZHRoIGlzIDExOTlweChleGNlcHQgd2hlbiB0aGUgdmlld3BvcnQgaXMgYW4gSXBhZCBQcm8gMTMgaW5jaChQb3J0cmFpdCkpLCBvciBpdHMgYW4gSXBhZCBQcm8gMTMgaW5jaChMYW5kc2NhcGUpKVxuICAgIDMuIEZvciBUYWJsZXQgUG9ydHJhaXQsIGNyZWF0ZSB0aGUgdmlldyBvbmx5IHdoZW4gZWl0aGVyIG1pbi13aWR0aCBpcyA3NjhweCBhbmQgbWF4LXdpZHRoIGlzIDk5MXB4LCBvciBpdHMgYW4gSXBhZCBQcm8gMTMgaW5jaChQb3J0cmFpdCkpXG4gICAgNC4gRm9yIE1vYmlsZSwgY3JlYXRlIHRoZSB2aWV3IG9ubHkgd2hlbiBtYXgtd2lkdGggaXMgNzY3cHguXG4gICAgNS4gRm9yIGFsbCwgYWx3YXlzIHJlbmRlciB0aGUgdmlldy5cbiAgICAgKi9cbiAgICBwcml2YXRlIG9uUmVzaXplKCRldmVudD8pIHtcblxuICAgICAgICBjb25zdCBsZ1dpZHRoID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJy0tc2NyZWVuLWxnJykgfHwgJzEyMDBweCc7XG4gICAgICAgIGNvbnN0IG1kV2lkdGggPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnLS1zY3JlZW4tbWQnKSB8fCAnOTkycHgnO1xuICAgICAgICBjb25zdCBzbVdpZHRoID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJy0tc2NyZWVuLXNtJykgfHwgJzc2OHB4JztcbiAgICAgICAgY29uc3QgbGdUYWJMYW5kU2NhcGVXaWR0aCA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCctLXNjcmVlbi1sZy10YWItbGFuZHNjYXBlJykgfHwgJzEzNjZweCc7XG4gICAgICAgIGNvbnN0IGxnVGFiUG9ydHJhaXRXaWR0aCA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCctLXNjcmVlbi1sZy10YWItcG9ydHJhaXQnKSB8fCAnMTAyNHB4JztcbiAgICAgICAgY29uc3QgbGdXaWR0aE1pbiA9IHBhcnNlRmxvYXQobGdXaWR0aCktMTtcbiAgICAgICAgY29uc3QgbGdVbml0ID0gIGxnV2lkdGhNaW4gKyBcInB4XCI7XG4gICAgICAgIGNvbnN0IG1kV2lkdGhNaW4gPSBwYXJzZUZsb2F0KG1kV2lkdGgpLTE7XG4gICAgICAgIGNvbnN0IG1kVW5pdCA9IG1kV2lkdGhNaW4gKyBcInB4XCI7XG4gICAgICAgIGNvbnN0IHNtV2lkdGhNaW4gPSBwYXJzZUZsb2F0KHNtV2lkdGgpLTE7XG4gICAgICAgIGNvbnN0IHNtVW5pdCA9IHNtV2lkdGhNaW4gKyBcInB4XCI7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICh0aGlzLmRldmljZXMuaW5kZXhPZignbGcnKSA+IC0xICYmIHdpbmRvdy5tYXRjaE1lZGlhKFwiKG1pbi13aWR0aDogXCIrbGdXaWR0aCtcIilcIikubWF0Y2hlcyAmJiAhaXNMYXJnZVRhYmxldExhbmRzY2FwZShsZ1RhYkxhbmRTY2FwZVdpZHRoLCBsZ1RhYlBvcnRyYWl0V2lkdGgpKVxuICAgICAgICAgICAgfHwgICh0aGlzLmRldmljZXMuaW5kZXhPZignbWQnKSA+IC0xICYmIChpc0xhcmdlVGFibGV0TGFuZHNjYXBlKGxnVGFiTGFuZFNjYXBlV2lkdGgsIGxnVGFiUG9ydHJhaXRXaWR0aCkgfHwgKHdpbmRvdy5tYXRjaE1lZGlhKFwiKG1pbi13aWR0aDogXCIrbWRXaWR0aCtcIikgYW5kIChtYXgtd2lkdGg6IFwiK2xnVW5pdCArXCIpXCIpLm1hdGNoZXMgJiYgIWlzTGFyZ2VUYWJsZXRQb3J0cmFpdChsZ1RhYkxhbmRTY2FwZVdpZHRoLCBsZ1RhYlBvcnRyYWl0V2lkdGgpKSkpXG4gICAgICAgICAgICB8fCAgKHRoaXMuZGV2aWNlcy5pbmRleE9mKCdzbScpID4gLTEgJiYgKHdpbmRvdy5tYXRjaE1lZGlhKFwiKG1pbi13aWR0aDogXCIrc21XaWR0aCtcIikgYW5kIChtYXgtd2lkdGg6IFwiK21kVW5pdCtcIilcIikubWF0Y2hlcyB8fCBpc0xhcmdlVGFibGV0UG9ydHJhaXQobGdUYWJMYW5kU2NhcGVXaWR0aCwgbGdUYWJQb3J0cmFpdFdpZHRoKSkpXG4gICAgICAgICAgICB8fCAgKHRoaXMuZGV2aWNlcy5pbmRleE9mKCd4cycpID4gLTEgJiYgd2luZG93Lm1hdGNoTWVkaWEoXCIobWF4LXdpZHRoOiBcIitzbVVuaXQrXCIpXCIpLm1hdGNoZXMpXG4gICAgICAgICAgICB8fCAgKHRoaXMuZGV2aWNlcy5pbmRleE9mKCdhbGwnKSA+IC0xKSkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmVtYmVkZGVkVmlldykge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1iZWRkZWRWaWV3ID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmLCB0aGlzLmNvbnRleHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICAgICAgICB0aGlzLmVtYmVkZGVkVmlldyA9ICcnO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25SZXNpemUpO1xuICAgIH1cbn1cbiJdfQ==