@wavemaker/app-ng-runtime 11.14.1-rc.6310 → 11.14.2-rc.242

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 (412) hide show
  1. package/components/advanced/carousel/bundles/index.umd.js +15 -1
  2. package/components/advanced/carousel/carousel.directive.d.ts +1 -0
  3. package/components/advanced/carousel/esm2022/carousel.directive.mjs +16 -2
  4. package/components/advanced/carousel/fesm2022/index.mjs +15 -1
  5. package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  6. package/components/advanced/login/bundles/index.umd.js +24 -3
  7. package/components/advanced/login/esm2022/login.component.mjs +25 -4
  8. package/components/advanced/login/fesm2022/index.mjs +24 -3
  9. package/components/advanced/login/fesm2022/index.mjs.map +1 -1
  10. package/components/advanced/login/login.component.d.ts +5 -2
  11. package/components/base/bundles/index.umd.js +331 -36
  12. package/components/base/directives/show-in-device.directive.d.ts +2 -1
  13. package/components/base/esm2022/directives/show-in-device.directive.mjs +22 -4
  14. package/components/base/esm2022/pipes/custom-pipes.mjs +10 -10
  15. package/components/base/esm2022/utils/widget-utils.mjs +3 -3
  16. package/components/base/esm2022/widgets/common/base/base-container.component.mjs +27 -1
  17. package/components/base/esm2022/widgets/common/base/base-field-validations.mjs +18 -1
  18. package/components/base/esm2022/widgets/common/base/base.component.mjs +68 -7
  19. package/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +9 -1
  20. package/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +44 -11
  21. package/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +20 -1
  22. package/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +26 -1
  23. package/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +44 -4
  24. package/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +16 -1
  25. package/components/base/esm2022/widgets/common/pull-to-refresh/pull-to-refresh.mjs +22 -1
  26. package/components/base/esm2022/widgets/framework/property-change-handler.mjs +7 -2
  27. package/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +5 -3
  28. package/components/base/esm2022/widgets/framework/widget-registry.mjs +6 -3
  29. package/components/base/fesm2022/index.mjs +327 -34
  30. package/components/base/fesm2022/index.mjs.map +1 -1
  31. package/components/base/pipes/custom-pipes.d.ts +5 -5
  32. package/components/base/widgets/common/base/base-container.component.d.ts +3 -2
  33. package/components/base/widgets/common/base/base-field-validations.d.ts +1 -0
  34. package/components/base/widgets/common/base/custom-widget-container.directive.d.ts +3 -2
  35. package/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +6 -2
  36. package/components/base/widgets/common/base/partial-container.directive.d.ts +3 -2
  37. package/components/base/widgets/common/item-template/item-template.directive.d.ts +3 -2
  38. package/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +1 -1
  39. package/components/base/widgets/common/partial-param/partial-param.directive.d.ts +3 -2
  40. package/components/base/widgets/common/pull-to-refresh/pull-to-refresh.d.ts +3 -2
  41. package/components/basic/anchor/bundles/index.umd.js +13 -1
  42. package/components/basic/anchor/esm2022/anchor.component.mjs +14 -2
  43. package/components/basic/anchor/fesm2022/index.mjs +13 -1
  44. package/components/basic/anchor/fesm2022/index.mjs.map +1 -1
  45. package/components/basic/html/bundles/index.umd.js +13 -1
  46. package/components/basic/html/esm2022/html.directive.mjs +14 -2
  47. package/components/basic/html/fesm2022/index.mjs +13 -1
  48. package/components/basic/html/fesm2022/index.mjs.map +1 -1
  49. package/components/basic/label/bundles/index.umd.js +17 -1
  50. package/components/basic/label/esm2022/label.directive.mjs +18 -2
  51. package/components/basic/label/fesm2022/index.mjs +17 -1
  52. package/components/basic/label/fesm2022/index.mjs.map +1 -1
  53. package/components/basic/label/label.directive.d.ts +3 -2
  54. package/components/basic/progress/progress-circle/bundles/index.umd.js +10 -0
  55. package/components/basic/progress/progress-circle/esm2022/progress-circle.component.mjs +11 -1
  56. package/components/basic/progress/progress-circle/fesm2022/index.mjs +10 -0
  57. package/components/basic/progress/progress-circle/fesm2022/index.mjs.map +1 -1
  58. package/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -2
  59. package/components/basic/search/bundles/index.umd.js +31 -5
  60. package/components/basic/search/esm2022/scrollable.directive.mjs +13 -4
  61. package/components/basic/search/esm2022/search.component.mjs +20 -3
  62. package/components/basic/search/fesm2022/index.mjs +31 -5
  63. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  64. package/components/basic/search/scrollable.directive.d.ts +5 -3
  65. package/components/basic/search/search.component.d.ts +3 -2
  66. package/components/basic/spinner/bundles/index.umd.js +9 -1
  67. package/components/basic/spinner/esm2022/spinner.component.mjs +10 -2
  68. package/components/basic/spinner/fesm2022/index.mjs +9 -1
  69. package/components/basic/spinner/fesm2022/index.mjs.map +1 -1
  70. package/components/basic/spinner/spinner.component.d.ts +4 -2
  71. package/components/chart/bundles/index.umd.js +21 -3
  72. package/components/chart/esm2022/chart.component.mjs +22 -4
  73. package/components/chart/fesm2022/index.mjs +21 -3
  74. package/components/chart/fesm2022/index.mjs.map +1 -1
  75. package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +3 -2
  76. package/components/containers/accordion/accordion.directive.d.ts +5 -2
  77. package/components/containers/accordion/bundles/index.umd.js +49 -2
  78. package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +10 -1
  79. package/components/containers/accordion/esm2022/accordion.directive.mjs +41 -3
  80. package/components/containers/accordion/fesm2022/index.mjs +49 -2
  81. package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  82. package/components/containers/panel/bundles/index.umd.js +13 -0
  83. package/components/containers/panel/esm2022/panel.component.mjs +14 -1
  84. package/components/containers/panel/fesm2022/index.mjs +13 -0
  85. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  86. package/components/containers/panel/panel.component.d.ts +3 -2
  87. package/components/containers/tabs/bundles/index.umd.js +54 -2
  88. package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +10 -1
  89. package/components/containers/tabs/esm2022/tabs.component.mjs +46 -3
  90. package/components/containers/tabs/fesm2022/index.mjs +54 -2
  91. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  92. package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +3 -2
  93. package/components/containers/tabs/tabs.component.d.ts +5 -2
  94. package/components/containers/wizard/bundles/index.umd.js +47 -3
  95. package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +16 -3
  96. package/components/containers/wizard/esm2022/wizard.component.mjs +33 -2
  97. package/components/containers/wizard/fesm2022/index.mjs +47 -3
  98. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  99. package/components/containers/wizard/wizard-step/wizard-step.component.d.ts +3 -2
  100. package/components/containers/wizard/wizard.component.d.ts +4 -2
  101. package/components/data/card/bundles/index.umd.js +17 -1
  102. package/components/data/card/card-content/card-content.component.d.ts +3 -2
  103. package/components/data/card/card.component.d.ts +4 -2
  104. package/components/data/card/esm2022/card-content/card-content.component.mjs +6 -1
  105. package/components/data/card/esm2022/card.component.mjs +13 -2
  106. package/components/data/card/fesm2022/index.mjs +17 -1
  107. package/components/data/card/fesm2022/index.mjs.map +1 -1
  108. package/components/data/form/bundles/index.umd.js +92 -0
  109. package/components/data/form/esm2022/form-action/form-action.directive.mjs +7 -1
  110. package/components/data/form/esm2022/form-field/form-field.directive.mjs +28 -1
  111. package/components/data/form/esm2022/form-widget.directive.mjs +8 -1
  112. package/components/data/form/esm2022/form.component.mjs +27 -1
  113. package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +7 -1
  114. package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +12 -1
  115. package/components/data/form/esm2022/live-form/live-form.directive.mjs +10 -1
  116. package/components/data/form/fesm2022/index.mjs +92 -0
  117. package/components/data/form/fesm2022/index.mjs.map +1 -1
  118. package/components/data/form/form-action/form-action.directive.d.ts +3 -2
  119. package/components/data/form/form-field/form-field.directive.d.ts +3 -2
  120. package/components/data/form/form-widget.directive.d.ts +3 -2
  121. package/components/data/form/live-actions/live-actions.directive.d.ts +3 -1
  122. package/components/data/form/live-filter/live-filter.directive.d.ts +3 -1
  123. package/components/data/form/live-form/live-form.directive.d.ts +3 -1
  124. package/components/data/list/bundles/index.umd.js +213 -19
  125. package/components/data/list/esm2022/list-item.directive.mjs +95 -11
  126. package/components/data/list/esm2022/list.component.mjs +120 -10
  127. package/components/data/list/fesm2022/index.mjs +213 -19
  128. package/components/data/list/fesm2022/index.mjs.map +1 -1
  129. package/components/data/list/list-item.directive.d.ts +7 -2
  130. package/components/data/list/list.component.d.ts +7 -0
  131. package/components/data/live-table/bundles/index.umd.js +13 -1
  132. package/components/data/live-table/esm2022/live-table.component.mjs +14 -2
  133. package/components/data/live-table/fesm2022/index.mjs +13 -1
  134. package/components/data/live-table/fesm2022/index.mjs.map +1 -1
  135. package/components/data/live-table/live-table.component.d.ts +4 -2
  136. package/components/data/pagination/bundles/index.umd.js +57 -4
  137. package/components/data/pagination/esm2022/pagination.component.mjs +58 -5
  138. package/components/data/pagination/fesm2022/index.mjs +57 -4
  139. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  140. package/components/data/pagination/pagination.component.d.ts +4 -2
  141. package/components/data/table/bundles/index.umd.js +345 -15
  142. package/components/data/table/esm2022/table-action/table-action.directive.mjs +8 -1
  143. package/components/data/table/esm2022/table-column/table-column.directive.mjs +107 -3
  144. package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +9 -1
  145. package/components/data/table/esm2022/table-cud.directive.mjs +8 -2
  146. package/components/data/table/esm2022/table-filter.directive.mjs +12 -2
  147. package/components/data/table/esm2022/table-row/table-row.directive.mjs +8 -1
  148. package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +8 -1
  149. package/components/data/table/esm2022/table.component.mjs +193 -12
  150. package/components/data/table/fesm2022/index.mjs +345 -15
  151. package/components/data/table/fesm2022/index.mjs.map +1 -1
  152. package/components/data/table/table-action/table-action.directive.d.ts +3 -2
  153. package/components/data/table/table-column/table-column.directive.d.ts +3 -2
  154. package/components/data/table/table-column-group/table-column-group.directive.d.ts +3 -2
  155. package/components/data/table/table-cud.directive.d.ts +3 -1
  156. package/components/data/table/table-filter.directive.d.ts +3 -1
  157. package/components/data/table/table-row/table-row.directive.d.ts +3 -2
  158. package/components/data/table/table-row-action/table-row-action.directive.d.ts +3 -2
  159. package/components/data/table/table.component.d.ts +6 -2
  160. package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +3 -2
  161. package/components/dialogs/alert-dialog/bundles/index.umd.js +5 -0
  162. package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +6 -1
  163. package/components/dialogs/alert-dialog/fesm2022/index.mjs +5 -0
  164. package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  165. package/components/dialogs/confirm-dialog/bundles/index.umd.js +5 -0
  166. package/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +3 -2
  167. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +6 -1
  168. package/components/dialogs/confirm-dialog/fesm2022/index.mjs +5 -0
  169. package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  170. package/components/dialogs/default/bundles/index.umd.js +15 -2
  171. package/components/dialogs/default/dialog-body/dialog-body.directive.d.ts +4 -2
  172. package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +16 -3
  173. package/components/dialogs/default/fesm2022/index.mjs +15 -2
  174. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  175. package/components/dialogs/design-dialog/bundles/index.umd.js +7 -0
  176. package/components/dialogs/design-dialog/dialog.component.d.ts +3 -2
  177. package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +8 -1
  178. package/components/dialogs/design-dialog/fesm2022/index.mjs +7 -0
  179. package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  180. package/components/dialogs/iframe-dialog/bundles/index.umd.js +5 -0
  181. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +6 -1
  182. package/components/dialogs/iframe-dialog/fesm2022/index.mjs +5 -0
  183. package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  184. package/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +3 -2
  185. package/components/dialogs/partial-dialog/bundles/index.umd.js +23 -3
  186. package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +24 -4
  187. package/components/dialogs/partial-dialog/fesm2022/index.mjs +23 -3
  188. package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  189. package/components/dialogs/partial-dialog/partial-dialog.component.d.ts +4 -2
  190. package/components/input/base-form/base-form.component.d.ts +4 -2
  191. package/components/input/base-form/bundles/index.umd.js +16 -2
  192. package/components/input/base-form/esm2022/base-form.component.mjs +17 -3
  193. package/components/input/base-form/fesm2022/index.mjs +16 -2
  194. package/components/input/base-form/fesm2022/index.mjs.map +1 -1
  195. package/components/input/base-form-custom/base-form-custom.component.d.ts +3 -2
  196. package/components/input/base-form-custom/bundles/index.umd.js +13 -2
  197. package/components/input/base-form-custom/esm2022/base-form-custom.component.mjs +14 -3
  198. package/components/input/base-form-custom/fesm2022/index.mjs +13 -2
  199. package/components/input/base-form-custom/fesm2022/index.mjs.map +1 -1
  200. package/components/input/checkbox/bundles/index.umd.js +7 -0
  201. package/components/input/checkbox/checkbox.component.d.ts +3 -2
  202. package/components/input/checkbox/esm2022/checkbox.component.mjs +8 -1
  203. package/components/input/checkbox/fesm2022/index.mjs +7 -0
  204. package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
  205. package/components/input/checkboxset/bundles/index.umd.js +18 -2
  206. package/components/input/checkboxset/checkboxset.component.d.ts +4 -2
  207. package/components/input/checkboxset/esm2022/checkboxset.component.mjs +19 -3
  208. package/components/input/checkboxset/fesm2022/index.mjs +18 -2
  209. package/components/input/checkboxset/fesm2022/index.mjs.map +1 -1
  210. package/components/input/chips/bundles/index.umd.js +45 -5
  211. package/components/input/chips/chips.component.d.ts +3 -2
  212. package/components/input/chips/esm2022/chips.component.mjs +46 -6
  213. package/components/input/chips/fesm2022/index.mjs +45 -5
  214. package/components/input/chips/fesm2022/index.mjs.map +1 -1
  215. package/components/input/color-picker/bundles/index.umd.js +8 -0
  216. package/components/input/color-picker/color-picker.component.d.ts +3 -2
  217. package/components/input/color-picker/esm2022/color-picker.component.mjs +9 -1
  218. package/components/input/color-picker/fesm2022/index.mjs +8 -0
  219. package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  220. package/components/input/composite/bundles/index.umd.js +10 -1
  221. package/components/input/composite/composite.directive.d.ts +3 -2
  222. package/components/input/composite/esm2022/composite.directive.mjs +11 -2
  223. package/components/input/composite/fesm2022/index.mjs +10 -1
  224. package/components/input/composite/fesm2022/index.mjs.map +1 -1
  225. package/components/input/currency/bundles/index.umd.js +7 -0
  226. package/components/input/currency/currency.component.d.ts +3 -2
  227. package/components/input/currency/esm2022/currency.component.mjs +8 -1
  228. package/components/input/currency/fesm2022/index.mjs +7 -0
  229. package/components/input/currency/fesm2022/index.mjs.map +1 -1
  230. package/components/input/dataset-aware-form/bundles/index.umd.js +26 -2
  231. package/components/input/dataset-aware-form/esm2022/dataset-aware-form.component.mjs +27 -3
  232. package/components/input/dataset-aware-form/fesm2022/index.mjs +26 -2
  233. package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -1
  234. package/components/input/epoch/date/bundles/index.umd.js +22 -0
  235. package/components/input/epoch/date/date.component.d.ts +1 -0
  236. package/components/input/epoch/date/esm2022/date.component.mjs +23 -1
  237. package/components/input/epoch/date/fesm2022/index.mjs +22 -0
  238. package/components/input/epoch/date/fesm2022/index.mjs.map +1 -1
  239. package/components/input/file-upload/bundles/index.umd.js +25 -8
  240. package/components/input/file-upload/esm2022/file-upload.component.mjs +26 -9
  241. package/components/input/file-upload/fesm2022/index.mjs +25 -8
  242. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  243. package/components/input/file-upload/file-upload.component.d.ts +3 -0
  244. package/components/input/number/bundles/index.umd.js +8 -0
  245. package/components/input/number/esm2022/number.component.mjs +9 -1
  246. package/components/input/number/fesm2022/index.mjs +8 -0
  247. package/components/input/number/fesm2022/index.mjs.map +1 -1
  248. package/components/input/number/number.component.d.ts +3 -2
  249. package/components/input/radioset/bundles/index.umd.js +18 -2
  250. package/components/input/radioset/esm2022/radioset.component.mjs +19 -3
  251. package/components/input/radioset/fesm2022/index.mjs +18 -2
  252. package/components/input/radioset/fesm2022/index.mjs.map +1 -1
  253. package/components/input/radioset/radioset.component.d.ts +4 -2
  254. package/components/input/rating/bundles/index.umd.js +10 -0
  255. package/components/input/rating/esm2022/rating.component.mjs +11 -1
  256. package/components/input/rating/fesm2022/index.mjs +10 -0
  257. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  258. package/components/input/rating/rating.component.d.ts +3 -2
  259. package/components/input/select/bundles/index.umd.js +6 -0
  260. package/components/input/select/esm2022/select.component.mjs +7 -1
  261. package/components/input/select/fesm2022/index.mjs +6 -0
  262. package/components/input/select/fesm2022/index.mjs.map +1 -1
  263. package/components/input/select/select.component.d.ts +3 -2
  264. package/components/input/slider/bundles/index.umd.js +10 -0
  265. package/components/input/slider/esm2022/slider.component.mjs +11 -1
  266. package/components/input/slider/fesm2022/index.mjs +10 -0
  267. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  268. package/components/input/slider/slider.component.d.ts +3 -2
  269. package/components/input/switch/bundles/index.umd.js +22 -2
  270. package/components/input/switch/esm2022/switch.component.mjs +23 -3
  271. package/components/input/switch/fesm2022/index.mjs +22 -2
  272. package/components/input/switch/fesm2022/index.mjs.map +1 -1
  273. package/components/input/switch/switch.component.d.ts +3 -2
  274. package/components/input/text/bundles/index.umd.js +36 -0
  275. package/components/input/text/esm2022/input-calendar/input-calendar.component.mjs +8 -1
  276. package/components/input/text/esm2022/input-color/input-color.component.mjs +8 -1
  277. package/components/input/text/esm2022/input-email/input-email.component.mjs +8 -1
  278. package/components/input/text/esm2022/input-number/input-number.component.mjs +8 -1
  279. package/components/input/text/esm2022/input-text/input-text.component.mjs +9 -1
  280. package/components/input/text/fesm2022/index.mjs +36 -0
  281. package/components/input/text/fesm2022/index.mjs.map +1 -1
  282. package/components/input/text/input-calendar/input-calendar.component.d.ts +3 -2
  283. package/components/input/text/input-color/input-color.component.d.ts +3 -2
  284. package/components/input/text/input-email/input-email.component.d.ts +3 -2
  285. package/components/input/text/input-number/input-number.component.d.ts +3 -2
  286. package/components/input/text/input-text/input-text.component.d.ts +3 -2
  287. package/components/input/textarea/bundles/index.umd.js +7 -0
  288. package/components/input/textarea/esm2022/textarea.component.mjs +8 -1
  289. package/components/input/textarea/fesm2022/index.mjs +7 -0
  290. package/components/input/textarea/fesm2022/index.mjs.map +1 -1
  291. package/components/input/textarea/textarea.component.d.ts +3 -2
  292. package/components/navigation/menu/bundles/index.umd.js +55 -6
  293. package/components/navigation/menu/esm2022/menu-adapator.component.mjs +17 -3
  294. package/components/navigation/menu/esm2022/menu.component.mjs +10 -3
  295. package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +6 -1
  296. package/components/navigation/menu/esm2022/nav/nav.component.mjs +11 -1
  297. package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +16 -3
  298. package/components/navigation/menu/fesm2022/index.mjs +55 -6
  299. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  300. package/components/navigation/menu/menu-adapator.component.d.ts +4 -2
  301. package/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +3 -2
  302. package/components/navigation/menu/nav/nav.component.d.ts +3 -2
  303. package/components/navigation/menu/nav/navigation-control.directive.d.ts +4 -2
  304. package/components/navigation/navbar/bundles/index.umd.js +5 -0
  305. package/components/navigation/navbar/esm2022/navbar.component.mjs +6 -1
  306. package/components/navigation/navbar/fesm2022/index.mjs +5 -0
  307. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  308. package/components/navigation/navbar/navbar.component.d.ts +3 -2
  309. package/components/navigation/popover/bundles/index.umd.js +65 -13
  310. package/components/navigation/popover/esm2022/popover.component.mjs +63 -11
  311. package/components/navigation/popover/fesm2022/index.mjs +62 -10
  312. package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  313. package/components/navigation/popover/popover.component.d.ts +11 -3
  314. package/components/page/default/bundles/index.umd.js +30 -6
  315. package/components/page/default/esm2022/layout.directive.mjs +9 -1
  316. package/components/page/default/esm2022/page-content/page-content.component.mjs +13 -3
  317. package/components/page/default/esm2022/router-outlet.directive.mjs +13 -6
  318. package/components/page/default/fesm2022/index.mjs +30 -6
  319. package/components/page/default/fesm2022/index.mjs.map +1 -1
  320. package/components/page/default/layout.directive.d.ts +3 -2
  321. package/components/page/default/page-content/page-content.component.d.ts +3 -2
  322. package/components/page/default/router-outlet.directive.d.ts +5 -2
  323. package/components/page/left-panel/bundles/index.umd.js +16 -0
  324. package/components/page/left-panel/esm2022/left-panel.directive.mjs +17 -1
  325. package/components/page/left-panel/fesm2022/index.mjs +16 -0
  326. package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  327. package/components/page/left-panel/left-panel.directive.d.ts +3 -2
  328. package/components/page/top-nav/bundles/index.umd.js +2 -1
  329. package/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
  330. package/components/page/top-nav/fesm2022/index.mjs +2 -1
  331. package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  332. package/components/prefab/bundles/index.umd.js +4 -0
  333. package/components/prefab/esm2022/prefab.directive.mjs +5 -1
  334. package/components/prefab/fesm2022/index.mjs +4 -0
  335. package/components/prefab/fesm2022/index.mjs.map +1 -1
  336. package/core/bundles/index.umd.js +391 -94
  337. package/core/esm2022/public_api.mjs +3 -3
  338. package/core/esm2022/services/viewport.service.mjs +24 -10
  339. package/core/esm2022/types/types.mjs +1 -1
  340. package/core/esm2022/utils/dom.mjs +18 -2
  341. package/core/esm2022/utils/event-notifier.mjs +5 -2
  342. package/core/esm2022/utils/lru-cache.mjs +16 -2
  343. package/core/esm2022/utils/utils.mjs +6 -2
  344. package/core/esm2022/utils/watcher.mjs +323 -81
  345. package/core/fesm2022/index.mjs +390 -96
  346. package/core/fesm2022/index.mjs.map +1 -1
  347. package/core/public_api.d.ts +2 -2
  348. package/core/services/viewport.service.d.ts +5 -2
  349. package/core/types/types.d.ts +1 -0
  350. package/core/utils/lru-cache.d.ts +6 -0
  351. package/core/utils/utils.d.ts +1 -0
  352. package/core/utils/watcher.d.ts +26 -5
  353. package/http/bundles/index.umd.js +31 -1
  354. package/http/esm2022/http.service.mjs +32 -2
  355. package/http/fesm2022/index.mjs +31 -1
  356. package/http/fesm2022/index.mjs.map +1 -1
  357. package/http/http.service.d.ts +6 -2
  358. package/npm-shrinkwrap.json +2 -2
  359. package/oAuth/bundles/index.umd.js +9 -0
  360. package/oAuth/esm2022/oAuth.service.mjs +10 -1
  361. package/oAuth/fesm2022/index.mjs +9 -0
  362. package/oAuth/fesm2022/index.mjs.map +1 -1
  363. package/oAuth/oAuth.service.d.ts +3 -1
  364. package/package-lock.json +2 -2
  365. package/package.json +1 -1
  366. package/runtime/base/bundles/index.umd.js +367 -32
  367. package/runtime/base/components/app-component/app.component.d.ts +4 -0
  368. package/runtime/base/components/prefab-preview.component.d.ts +5 -2
  369. package/runtime/base/directives/accessroles.directive.d.ts +4 -3
  370. package/runtime/base/directives/prefab.directive.d.ts +3 -2
  371. package/runtime/base/esm2022/components/app-component/app.component.mjs +40 -9
  372. package/runtime/base/esm2022/components/base-custom-widget.component.mjs +33 -2
  373. package/runtime/base/esm2022/components/base-layout.component.mjs +7 -1
  374. package/runtime/base/esm2022/components/base-page.component.mjs +36 -3
  375. package/runtime/base/esm2022/components/base-partial.component.mjs +37 -3
  376. package/runtime/base/esm2022/components/base-prefab.component.mjs +32 -3
  377. package/runtime/base/esm2022/components/base-spa-page.component.mjs +37 -3
  378. package/runtime/base/esm2022/components/prefab-preview.component.mjs +23 -4
  379. package/runtime/base/esm2022/directives/accessroles.directive.mjs +11 -2
  380. package/runtime/base/esm2022/directives/prefab.directive.mjs +9 -1
  381. package/runtime/base/esm2022/services/app.manager.service.mjs +40 -12
  382. package/runtime/base/esm2022/services/app.service.mjs +34 -2
  383. package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +4 -1
  384. package/runtime/base/esm2022/services/pipe-provider.service.mjs +7 -4
  385. package/runtime/base/esm2022/services/spinner.service.mjs +15 -1
  386. package/runtime/base/esm2022/util/fragment-monitor.mjs +23 -2
  387. package/runtime/base/fesm2022/index.mjs +368 -33
  388. package/runtime/base/fesm2022/index.mjs.map +1 -1
  389. package/runtime/base/runtime-base.module.d.ts +2 -2
  390. package/runtime/base/services/app.manager.service.d.ts +6 -1
  391. package/runtime/base/services/app.service.d.ts +12 -2
  392. package/runtime/base/services/dynamic-component-ref-provider.service.d.ts +2 -1
  393. package/runtime/base/services/spinner.service.d.ts +3 -1
  394. package/runtime/base/util/fragment-monitor.d.ts +6 -0
  395. package/runtime/dynamic/bundles/index.umd.js +5 -0
  396. package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +6 -1
  397. package/runtime/dynamic/fesm2022/index.mjs +5 -0
  398. package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  399. package/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -1
  400. package/scripts/datatable/datatable.js +100 -14
  401. package/security/bundles/index.umd.js +41 -2
  402. package/security/esm2022/security.service.mjs +42 -3
  403. package/security/fesm2022/index.mjs +41 -2
  404. package/security/fesm2022/index.mjs.map +1 -1
  405. package/security/security.service.d.ts +5 -2
  406. package/variables/bundles/index.umd.js +50 -6
  407. package/variables/esm2022/manager/action/notification-action.manager.mjs +18 -3
  408. package/variables/esm2022/manager/variable/base-variable.manager.mjs +15 -2
  409. package/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +13 -3
  410. package/variables/esm2022/service/variables.service.mjs +8 -2
  411. package/variables/fesm2022/index.mjs +50 -6
  412. package/variables/fesm2022/index.mjs.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/containers/accordion/src/accordion-pane/accordion-pane.props.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion.props.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion.directive.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion-pane/accordion-pane.component.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion-pane/accordion-pane.component.html","../../../../../projects/components/widgets/containers/accordion/src/index.ts"],"sourcesContent":["import { PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-accordionpane',\n new Map(\n [\n ['active', PROP_BOOLEAN], // internal property\n ['badgetype', {value: 'default', ...PROP_STRING}],\n ['badgevalue', PROP_STRING],\n ['class', PROP_STRING],\n ['content', PROP_STRING],\n ['dynamicPaneIndex', PROP_NUMBER], // internal property\n ['iconclass', PROP_STRING],\n ['isdefaultpane', PROP_BOOLEAN],\n ['isdynamic', PROP_STRING], // internal property\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['smoothscroll', {value: false, ...PROP_BOOLEAN}],\n ['subheading', PROP_STRING],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['title', {value: 'Title', ...PROP_STRING}]\n ]\n )\n );\n};\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-accordion',\n new Map(\n [\n ['class', PROP_STRING],\n ['closeothers', {value: true, ...PROP_BOOLEAN}],\n ['dataset', PROP_ANY],\n ['defaultpaneindex', {value: 0, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['nodatamessage', {value: 'No Data Found', ... PROP_STRING}],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['statehandler', {value: 'none', ...PROP_STRING}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', PROP_STRING]\n ]\n )\n );\n};\n","import { AfterContentInit, ContentChildren, Directive, forwardRef, Inject, Injector, Optional, QueryList } from '@angular/core';\nimport { DynamicComponentRefProvider, noop, StatePersistence } from '@wm/core';\nimport {\n APPLY_STYLES_TYPE,\n createArrayFrom,\n IWidgetConfig,\n provideAsWidgetRef,\n StylableComponent,\n styler\n} from '@wm/components/base';\n\nimport { registerProps } from './accordion.props';\nimport { AccordionPaneComponent } from './accordion-pane/accordion-pane.component';\nimport { find, forEach, get, indexOf, isArray, isNumber } from \"lodash-es\";\n\nconst DEFAULT_CLS = 'app-accordion panel-group';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-accordion',\n hostClass: DEFAULT_CLS\n};\n\n@Directive({\n standalone: true,\n selector: 'div[wmAccordion]',\n exportAs: 'wmAccordion',\n providers: [\n provideAsWidgetRef(AccordionDirective)\n ]\n})\nexport class AccordionDirective extends StylableComponent implements AfterContentInit {\n static initializeProps = registerProps();\n\n public defaultpaneindex: number;\n public closeothers: boolean;\n public statehandler: any;\n private statePersistence: StatePersistence;\n\n private activePaneIndex: number;\n private activePane: AccordionPaneComponent;\n private promiseResolverFn: Function;\n private dynamicComponentProvider;\n private _dynamicContext;\n private dynamicPaneIndex;\n private dynamicPanes;\n public fieldDefs;\n\n @ContentChildren(forwardRef(() => AccordionPaneComponent)) panes: QueryList<AccordionPaneComponent>;\n\n constructor(inj: Injector, statePersistence: StatePersistence, dynamicComponentProvider: DynamicComponentRefProvider, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n let resolveFn: Function = noop;\n super(inj, WIDGET_CONFIG, explicitContext, new Promise(res => resolveFn = res));\n this.promiseResolverFn = resolveFn;\n this.statePersistence = statePersistence;\n this.dynamicComponentProvider = dynamicComponentProvider;\n this.dynamicPanes = [];\n this.dynamicPaneIndex = 0;\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.SCROLLABLE_CONTAINER);\n }\n\n /**\n * AccordionPane children components invoke this method to communicate with the parent\n * if isExpand is true and when closeothers is true, all the other panes are collapsed\n * if the evt argument is defined on-change callback will be invoked.\n * updates the activePane index property\n * @param {AccordionPaneComponent} paneRef\n * @param {boolean} isExpand\n * @param {Event} evt\n */\n public notifyChange(paneRef: AccordionPaneComponent, isExpand: boolean, evt: Event) {\n if (isExpand) {\n this.closePanesExcept(paneRef);\n const index = this.getPaneIndexByRef(paneRef);\n this.activePane = paneRef.getWidget();\n // if the event is defined invoke the change callback.\n // programmatic invocations of expand/collapse on accordion-pane will not trigger change event\n if (evt) {\n this.invokeEventCallback('change', {\n $event: evt,\n newPaneIndex: index,\n oldPaneIndex: this.activePaneIndex\n });\n }\n this.activePaneIndex = index;\n }\n const mode = this.statePersistence.computeMode(this.statehandler);\n if (evt && mode && mode.toLowerCase() !== 'none') {\n const activePanes = [];\n this.panes.forEach(function (pane) {\n if (pane.isActive) {\n activePanes.push(pane.name);\n }\n });\n if (activePanes.length) {\n this.statePersistence.setWidgetState(this, activePanes);\n } else {\n this.statePersistence.removeWidgetState(this);\n }\n }\n }\n\n /**\n * This method is used to register the dynamic panes.\n * After all panes are initialzed, update the querylist manually based on index.\n * @param paneRef - refrence of the tabpane\n */\n public registerDynamicPane(paneRef) {\n this.dynamicPanes.push(paneRef);\n const isLastPane = this.dynamicPanes.length === this.dynamicPaneIndex;\n if (isLastPane) {\n for (let i = 0; i < this.dynamicPanes.length; i++) {\n const newPaneRef = find(this.dynamicPanes, pane => pane.dynamicPaneIndex === i);\n const isDuplicatePane = find(this.panes.toArray(), newPaneRef);\n if (!isDuplicatePane) {\n this.panes.reset([...this.panes.toArray(), newPaneRef]);\n if (newPaneRef.active) {\n newPaneRef.expand();\n }\n }\n }\n }\n }\n\n /**\n * This method is to add the tabpane dynamically\n * @param tabpanes - list of tabpanes\n */\n public addPane(tabpanes) {\n if (!isArray(tabpanes)) {\n tabpanes = [tabpanes];\n }\n const paneNamesList = [];\n forEach(tabpanes, (pane, index) => {\n const isPaneAlreadyCreated = find(this.panes.toArray(), { name: pane.name });\n const isPaneNameExist = indexOf(paneNamesList, pane.name);\n // If user tries to add tabpane with the same name which is already exists then do not create the pane\n if (isPaneAlreadyCreated || isPaneNameExist > 0) {\n console.warn(`The tab pane with name ${pane.name} already exists`);\n return;\n }\n\n let paramMarkup = '';\n let propsTmpl = '';\n this.dynamicPaneIndex++;\n const name = pane.name ? pane.name : `accordionpane${this.panes.toArray().length + (index + 1)}`;\n paneNamesList.push(name);\n const partialParams = get(pane, 'params');\n\n forEach(pane, (value, key) => {\n if (key !== 'params') {\n propsTmpl = `${propsTmpl} ${key}=\"${value}\"`;\n }\n });\n forEach(partialParams, (value, key) => {\n paramMarkup = `${paramMarkup} <wm-param name=\"${key}\" value=\"${value}\"></wm-param>`;\n });\n const markup = `<wm-accordionpane dynamicPaneIndex=\"${this.dynamicPaneIndex - 1}\" isdynamic=\"true\" name=\"${name}\" ${propsTmpl}>\n ${paramMarkup}\n </wm-accordionpane>`;\n\n if (!this._dynamicContext) {\n this._dynamicContext = Object.create(this.viewParent);\n this._dynamicContext[this.getAttr('wmAccordian')] = this;\n }\n\n this.dynamicComponentProvider.addComponent(this.getNativeElement(), markup, this._dynamicContext, { inj: this.inj });\n });\n return paneNamesList;\n }\n\n /**\n * This method is to remove the tabpane\n * @param paneName - name of the pane\n */\n public removePane(paneName) {\n const paneRef = this.getPaneRefByName(paneName);\n if (paneRef) {\n paneRef.remove();\n }\n }\n\n private isValidPaneIndex(index: number): boolean {\n return (index >= 0 && index < this.panes.length);\n }\n\n private getPaneRefByName(name: string): AccordionPaneComponent {\n return find(this.panes.toArray(), { name: name });\n }\n\n private getPaneIndexByRef(paneRef: AccordionPaneComponent): number {\n return this.panes.toArray().indexOf(paneRef);\n }\n\n private getPaneRefByIndex(index: number): AccordionPaneComponent {\n return this.panes.toArray()[index];\n }\n\n // Except the pane provided close all other panes\n private closePanesExcept(paneRef: AccordionPaneComponent | number) {\n if (isNumber(paneRef)) {\n paneRef = this.getPaneRefByIndex(paneRef as number);\n }\n if (this.closeothers) {\n this.panes.forEach(pane => {\n if (pane !== paneRef) {\n pane.collapse();\n }\n });\n }\n }\n\n private expandPane(index: number) {\n this.closePanesExcept(index);\n this.panes.toArray()[index].expand();\n }\n private onDataChange(newVal) {\n this.fieldDefs = createArrayFrom(newVal);\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'defaultpaneindex') {\n this.defaultpaneindex = nv;\n } else if (key === 'dataset') {\n this.onDataChange(nv);\n } else if (key === 'statehandler') {\n const widgetState = this.statePersistence.getWidgetState(this);\n let paneToSelect: any = [];\n if (nv !== 'none' && isArray(widgetState)) {\n widgetState.forEach(paneName => {\n paneToSelect = this.panes.filter(function (pane) {\n return paneName === pane.name;\n });\n if (!paneToSelect.length) {\n console.warn('Accordion pane name ' + paneName + ' in State is incorrect.');\n } else {\n this.expandPane(this.getPaneIndexByRef(paneToSelect[0]));\n }\n });\n } else {\n if (this.isValidPaneIndex(this.defaultpaneindex)) {\n this.expandPane(this.defaultpaneindex);\n }\n }\n } else if (key === 'tabindex') {\n return;\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n this.promiseResolverFn();\n this.panes.changes.subscribe(slides => {\n if (this.panes.length) {\n this.expandPane(this.defaultpaneindex);\n }\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, ContentChildren, Inject, Injector, Optional } from '@angular/core';\nimport { noop, removeAttr } from '@wm/core';\nimport {\n APPLY_STYLES_TYPE,\n IWidgetConfig,\n provideAsWidgetRef,\n RedrawableDirective,\n StylableComponent,\n styler,\n} from '@wm/components/base';\n\nimport { registerProps } from './accordion-pane.props';\nimport { AccordionDirective } from '../accordion.directive';\n\nconst DEFAULT_CLS = 'app-accordion-panel panel';\nconst WIDGET_CONFIG: IWidgetConfig = { widgetType: 'wm-accordionpane', hostClass: DEFAULT_CLS };\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'div[wmAccordionPane]',\n templateUrl: './accordion-pane.component.html',\n providers: [\n provideAsWidgetRef(AccordionPaneComponent)\n ],\n exportAs: 'wmAccordionPane'\n})\nexport class AccordionPaneComponent extends StylableComponent implements AfterViewInit {\n static initializeProps = registerProps();\n\n public isActive = false;\n public iconclass: string;\n public title: any;\n public subheading: string;\n public badgetype: any;\n public badgevalue: string;\n public smoothscroll: any;\n private $lazyLoad = noop;\n private isdynamic: boolean;\n public tabindex;\n public name: string;\n\n // reference to the components which needs a redraw(eg, grid, chart) when the height of this component changes\n @ContentChildren(RedrawableDirective, { descendants: true }) reDrawableComponents;\n\n constructor(inj: Injector, private accordionRef: AccordionDirective, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.SHELL);\n\n // title property here serves the purpose of heading.\n // remove title property as attribute\n removeAttr(this.nativeElement, 'title');\n }\n\n /**\n * handles the pane expand\n * invoke $lazyLoad method which takes care of loading the partial when the content property is provided - lazyLoading or partial\n * invoke redraw on the re-drawable children\n * invoke expand callback\n * notify parent about the change\n * @param {Event} evt\n */\n public expand(evt?: Event) {\n if (this.isActive) {\n return;\n }\n this.isActive = true;\n this.$lazyLoad();\n this.redrawChildren();\n this.invokeEventCallback('expand', { $event: evt });\n this.notifyParent(true, evt);\n }\n\n /**\n * handles the pane collapse\n * invoke collapse callback\n * notify parent about the change\n * @param {Event} evt\n */\n public collapse(evt?: Event) {\n if (!this.isActive) {\n return;\n }\n this.isActive = false;\n this.invokeEventCallback('collapse', { $event: evt });\n this.notifyParent(false, evt);\n }\n\n public remove() {\n const paneIndex = (this as any).accordionRef.getPaneIndexByRef(this);\n if (this.isActive && this.accordionRef.panes.length > 1) {\n this === this.accordionRef.panes.last ? this.accordionRef.panes.toArray()[paneIndex - 1].expand() : this.accordionRef.panes.toArray()[paneIndex + 1].expand();\n }\n const availablePanes = this.accordionRef.panes.toArray();\n availablePanes.splice((this as any).accordionRef.getPaneIndexByRef(this), 1);\n this.accordionRef.panes.reset([...availablePanes]);\n this.nativeElement.remove();\n }\n\n public toggle(evt: Event) {\n if (this.isActive) {\n this.collapse(evt);\n } else {\n this.expand(evt);\n }\n }\n\n // Todo - Vinay externalize\n private redrawChildren() {\n setTimeout(() => {\n if (this.reDrawableComponents) {\n this.reDrawableComponents.forEach(c => c.redraw());\n }\n }, 100);\n }\n\n private notifyParent(isExpand: boolean, evt: Event) {\n this.accordionRef.notifyChange(this, isExpand, evt);\n }\n\n onPropertyChange(key, nv, ov) {\n if (key === 'content') {\n if (this.isActive) {\n setTimeout(() => this.$lazyLoad(), 100);\n }\n } else if (key === 'tabindex') {\n return;\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(\n this.nativeElement.querySelector('.panel-body') as HTMLElement,\n this,\n APPLY_STYLES_TYPE.INNER_SHELL\n );\n if (this.isdynamic) {\n this.accordionRef.registerDynamicPane(this);\n }\n }\n}\n","<div class=\"panel-heading clearfix\" (click)=\"toggle($event)\" [ngClass]=\"{active: isActive}\">\n <h3 class=\"panel-title\">\n <a [attr.aria-expanded]=\"isActive\" [tabindex]=\"tabindex\"\n class=\"accordion-toggle clearfix\"\n href=\"javascript:void(0);\" role=\"button\">\n <div class=\"pull-left\">\n <i class=\"app-icon panel-icon {{iconclass}}\" [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 <div class=\"panel-actions pull-right\">\n <!-- added class as badge, app-label since it needs this classes to trigger the badge tokens -->\n <span class=\"badge app-label label-{{badgetype}}\">{{ badgevalue }}</span>\n <span class=\"app-icon panel-action wi\"\n title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\">\n <i [ngClass]=\"isActive ? 'wi-minus' : 'wi-plus'\"></i>\n </span>\n </div>\n </a>\n </h3>\n</div>\n<div [ngClass]=\"isActive ? 'collapse in' : 'collapse'\" class=\"panel-collapse collapse\">\n <div class=\"panel-body\" partial-container-target>\n <ng-content></ng-content>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","DEFAULT_CLS","WIDGET_CONFIG"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/containers/accordion/src/accordion-pane/accordion-pane.props.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion.props.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion.directive.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion-pane/accordion-pane.component.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion-pane/accordion-pane.component.html","../../../../../projects/components/widgets/containers/accordion/src/index.ts"],"sourcesContent":["import { PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-accordionpane',\n new Map(\n [\n ['active', PROP_BOOLEAN], // internal property\n ['badgetype', {value: 'default', ...PROP_STRING}],\n ['badgevalue', PROP_STRING],\n ['class', PROP_STRING],\n ['content', PROP_STRING],\n ['dynamicPaneIndex', PROP_NUMBER], // internal property\n ['iconclass', PROP_STRING],\n ['isdefaultpane', PROP_BOOLEAN],\n ['isdynamic', PROP_STRING], // internal property\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['smoothscroll', {value: false, ...PROP_BOOLEAN}],\n ['subheading', PROP_STRING],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['title', {value: 'Title', ...PROP_STRING}]\n ]\n )\n );\n};\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-accordion',\n new Map(\n [\n ['class', PROP_STRING],\n ['closeothers', {value: true, ...PROP_BOOLEAN}],\n ['dataset', PROP_ANY],\n ['defaultpaneindex', {value: 0, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['nodatamessage', {value: 'No Data Found', ... PROP_STRING}],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['statehandler', {value: 'none', ...PROP_STRING}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', PROP_STRING]\n ]\n )\n );\n};\n","import { AfterContentInit, ContentChildren, Directive, forwardRef, Inject, Injector, OnDestroy, Optional, QueryList } from '@angular/core';\nimport { DynamicComponentRefProvider, noop, StatePersistence } from '@wm/core';\nimport {\n APPLY_STYLES_TYPE,\n createArrayFrom,\n IWidgetConfig,\n provideAsWidgetRef,\n StylableComponent,\n styler\n} from '@wm/components/base';\n\nimport { registerProps } from './accordion.props';\nimport { AccordionPaneComponent } from './accordion-pane/accordion-pane.component';\nimport { find, forEach, get, indexOf, isArray, isNumber } from \"lodash-es\";\n\nconst DEFAULT_CLS = 'app-accordion panel-group';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-accordion',\n hostClass: DEFAULT_CLS\n};\n\n@Directive({\n standalone: true,\n selector: 'div[wmAccordion]',\n exportAs: 'wmAccordion',\n providers: [\n provideAsWidgetRef(AccordionDirective)\n ]\n})\nexport class AccordionDirective extends StylableComponent implements AfterContentInit, OnDestroy {\n static initializeProps = registerProps();\n\n public defaultpaneindex: number;\n public closeothers: boolean;\n public statehandler: any;\n private statePersistence: StatePersistence;\n\n private activePaneIndex: number;\n private activePane: AccordionPaneComponent;\n private promiseResolverFn: Function;\n private dynamicComponentProvider;\n private _dynamicContext;\n private dynamicPaneIndex;\n private dynamicPanes;\n public fieldDefs;\n private panesChangesSubscription: any;\n private dynamicComponentRefs: any[] = [];\n\n @ContentChildren(forwardRef(() => AccordionPaneComponent)) panes: QueryList<AccordionPaneComponent>;\n\n constructor(inj: Injector, statePersistence: StatePersistence, dynamicComponentProvider: DynamicComponentRefProvider, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n let resolveFn: Function = noop;\n super(inj, WIDGET_CONFIG, explicitContext, new Promise(res => resolveFn = res));\n this.promiseResolverFn = resolveFn;\n this.statePersistence = statePersistence;\n this.dynamicComponentProvider = dynamicComponentProvider;\n this.dynamicPanes = [];\n this.dynamicPaneIndex = 0;\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.SCROLLABLE_CONTAINER);\n }\n\n /**\n * AccordionPane children components invoke this method to communicate with the parent\n * if isExpand is true and when closeothers is true, all the other panes are collapsed\n * if the evt argument is defined on-change callback will be invoked.\n * updates the activePane index property\n * @param {AccordionPaneComponent} paneRef\n * @param {boolean} isExpand\n * @param {Event} evt\n */\n public notifyChange(paneRef: AccordionPaneComponent, isExpand: boolean, evt: Event) {\n if (isExpand) {\n this.closePanesExcept(paneRef);\n const index = this.getPaneIndexByRef(paneRef);\n this.activePane = paneRef.getWidget();\n // if the event is defined invoke the change callback.\n // programmatic invocations of expand/collapse on accordion-pane will not trigger change event\n if (evt) {\n this.invokeEventCallback('change', {\n $event: evt,\n newPaneIndex: index,\n oldPaneIndex: this.activePaneIndex\n });\n }\n this.activePaneIndex = index;\n }\n const mode = this.statePersistence.computeMode(this.statehandler);\n if (evt && mode && mode.toLowerCase() !== 'none') {\n const activePanes = [];\n this.panes.forEach(function (pane) {\n if (pane.isActive) {\n activePanes.push(pane.name);\n }\n });\n if (activePanes.length) {\n this.statePersistence.setWidgetState(this, activePanes);\n } else {\n this.statePersistence.removeWidgetState(this);\n }\n }\n }\n\n /**\n * This method is used to register the dynamic panes.\n * After all panes are initialzed, update the querylist manually based on index.\n * @param paneRef - refrence of the tabpane\n */\n public registerDynamicPane(paneRef) {\n this.dynamicPanes.push(paneRef);\n const isLastPane = this.dynamicPanes.length === this.dynamicPaneIndex;\n if (isLastPane) {\n for (let i = 0; i < this.dynamicPanes.length; i++) {\n const newPaneRef = find(this.dynamicPanes, pane => pane.dynamicPaneIndex === i);\n const isDuplicatePane = find(this.panes.toArray(), newPaneRef);\n if (!isDuplicatePane) {\n this.panes.reset([...this.panes.toArray(), newPaneRef]);\n if (newPaneRef.active) {\n newPaneRef.expand();\n }\n }\n }\n }\n }\n\n /**\n * This method is to add the tabpane dynamically\n * @param tabpanes - list of tabpanes\n */\n public addPane(tabpanes) {\n if (!isArray(tabpanes)) {\n tabpanes = [tabpanes];\n }\n const paneNamesList = [];\n forEach(tabpanes, (pane, index) => {\n const isPaneAlreadyCreated = find(this.panes.toArray(), { name: pane.name });\n const isPaneNameExist = indexOf(paneNamesList, pane.name);\n // If user tries to add tabpane with the same name which is already exists then do not create the pane\n if (isPaneAlreadyCreated || isPaneNameExist > 0) {\n console.warn(`The tab pane with name ${pane.name} already exists`);\n return;\n }\n\n let paramMarkup = '';\n let propsTmpl = '';\n this.dynamicPaneIndex++;\n const name = pane.name ? pane.name : `accordionpane${this.panes.toArray().length + (index + 1)}`;\n paneNamesList.push(name);\n const partialParams = get(pane, 'params');\n\n forEach(pane, (value, key) => {\n if (key !== 'params') {\n propsTmpl = `${propsTmpl} ${key}=\"${value}\"`;\n }\n });\n forEach(partialParams, (value, key) => {\n paramMarkup = `${paramMarkup} <wm-param name=\"${key}\" value=\"${value}\"></wm-param>`;\n });\n const markup = `<wm-accordionpane dynamicPaneIndex=\"${this.dynamicPaneIndex - 1}\" isdynamic=\"true\" name=\"${name}\" ${propsTmpl}>\n ${paramMarkup}\n </wm-accordionpane>`;\n\n if (!this._dynamicContext) {\n this._dynamicContext = Object.create(this.viewParent);\n this._dynamicContext[this.getAttr('wmAccordian')] = this;\n }\n\n // MEMORY LEAK FIX: Store component reference for cleanup\n this.dynamicComponentProvider.addComponent(this.getNativeElement(), markup, this._dynamicContext, { inj: this.inj })\n .then(componentRef => {\n if (componentRef) {\n this.dynamicComponentRefs.push(componentRef);\n }\n });\n });\n return paneNamesList;\n }\n\n /**\n * This method is to remove the tabpane\n * @param paneName - name of the pane\n */\n public removePane(paneName) {\n const paneRef = this.getPaneRefByName(paneName);\n if (paneRef) {\n paneRef.remove();\n }\n }\n\n private isValidPaneIndex(index: number): boolean {\n return (index >= 0 && index < this.panes.length);\n }\n\n private getPaneRefByName(name: string): AccordionPaneComponent {\n return find(this.panes.toArray(), { name: name });\n }\n\n private getPaneIndexByRef(paneRef: AccordionPaneComponent): number {\n return this.panes.toArray().indexOf(paneRef);\n }\n\n private getPaneRefByIndex(index: number): AccordionPaneComponent {\n return this.panes.toArray()[index];\n }\n\n // Except the pane provided close all other panes\n private closePanesExcept(paneRef: AccordionPaneComponent | number) {\n if (isNumber(paneRef)) {\n paneRef = this.getPaneRefByIndex(paneRef as number);\n }\n if (this.closeothers) {\n this.panes.forEach(pane => {\n if (pane !== paneRef) {\n pane.collapse();\n }\n });\n }\n }\n\n private expandPane(index: number) {\n this.closePanesExcept(index);\n this.panes.toArray()[index].expand();\n }\n private onDataChange(newVal) {\n this.fieldDefs = createArrayFrom(newVal);\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'defaultpaneindex') {\n this.defaultpaneindex = nv;\n } else if (key === 'dataset') {\n this.onDataChange(nv);\n } else if (key === 'statehandler') {\n const widgetState = this.statePersistence.getWidgetState(this);\n let paneToSelect: any = [];\n if (nv !== 'none' && isArray(widgetState)) {\n widgetState.forEach(paneName => {\n paneToSelect = this.panes.filter(function (pane) {\n return paneName === pane.name;\n });\n if (!paneToSelect.length) {\n console.warn('Accordion pane name ' + paneName + ' in State is incorrect.');\n } else {\n this.expandPane(this.getPaneIndexByRef(paneToSelect[0]));\n }\n });\n } else {\n if (this.isValidPaneIndex(this.defaultpaneindex)) {\n this.expandPane(this.defaultpaneindex);\n }\n }\n } else if (key === 'tabindex') {\n return;\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n this.promiseResolverFn();\n this.panesChangesSubscription = this.panes.changes.subscribe(slides => {\n if (this.panes.length) {\n this.expandPane(this.defaultpaneindex);\n }\n });\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Unsubscribe from panes changes\n if (this.panesChangesSubscription) {\n this.panesChangesSubscription.unsubscribe();\n this.panesChangesSubscription = null;\n }\n\n // MEMORY LEAK FIX: Destroy all dynamically created component instances\n if (this.dynamicComponentRefs && this.dynamicComponentRefs.length) {\n this.dynamicComponentRefs.forEach(componentRef => {\n if (componentRef && componentRef.destroy) {\n componentRef.destroy();\n }\n });\n this.dynamicComponentRefs = [];\n }\n\n // MEMORY LEAK FIX: Clear dynamic context\n if (this._dynamicContext) {\n Object.keys(this._dynamicContext).forEach(key => {\n delete this._dynamicContext[key];\n });\n this._dynamicContext = null;\n }\n\n // MEMORY LEAK FIX: Clear dynamic panes array\n if (this.dynamicPanes) {\n this.dynamicPanes = [];\n }\n\n // MEMORY LEAK FIX: Clear field definitions\n this.fieldDefs = null;\n this.activePane = null;\n\n super.ngOnDestroy();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, ContentChildren, Inject, Injector, OnDestroy, Optional } from '@angular/core';\nimport { noop, removeAttr } from '@wm/core';\nimport {\n APPLY_STYLES_TYPE,\n IWidgetConfig,\n provideAsWidgetRef,\n RedrawableDirective,\n StylableComponent,\n styler,\n} from '@wm/components/base';\n\nimport { registerProps } from './accordion-pane.props';\nimport { AccordionDirective } from '../accordion.directive';\n\nconst DEFAULT_CLS = 'app-accordion-panel panel';\nconst WIDGET_CONFIG: IWidgetConfig = { widgetType: 'wm-accordionpane', hostClass: DEFAULT_CLS };\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'div[wmAccordionPane]',\n templateUrl: './accordion-pane.component.html',\n providers: [\n provideAsWidgetRef(AccordionPaneComponent)\n ],\n exportAs: 'wmAccordionPane'\n})\nexport class AccordionPaneComponent extends StylableComponent implements AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n\n public isActive = false;\n public iconclass: string;\n public title: any;\n public subheading: string;\n public badgetype: any;\n public badgevalue: string;\n public smoothscroll: any;\n private $lazyLoad = noop;\n private isdynamic: boolean;\n public tabindex;\n public name: string;\n\n // reference to the components which needs a redraw(eg, grid, chart) when the height of this component changes\n @ContentChildren(RedrawableDirective, { descendants: true }) reDrawableComponents;\n\n constructor(inj: Injector, private accordionRef: AccordionDirective, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.SHELL);\n\n // title property here serves the purpose of heading.\n // remove title property as attribute\n removeAttr(this.nativeElement, 'title');\n }\n\n /**\n * handles the pane expand\n * invoke $lazyLoad method which takes care of loading the partial when the content property is provided - lazyLoading or partial\n * invoke redraw on the re-drawable children\n * invoke expand callback\n * notify parent about the change\n * @param {Event} evt\n */\n public expand(evt?: Event) {\n if (this.isActive) {\n return;\n }\n this.isActive = true;\n this.$lazyLoad();\n this.redrawChildren();\n this.invokeEventCallback('expand', { $event: evt });\n this.notifyParent(true, evt);\n }\n\n /**\n * handles the pane collapse\n * invoke collapse callback\n * notify parent about the change\n * @param {Event} evt\n */\n public collapse(evt?: Event) {\n if (!this.isActive) {\n return;\n }\n this.isActive = false;\n this.invokeEventCallback('collapse', { $event: evt });\n this.notifyParent(false, evt);\n }\n\n public remove() {\n const paneIndex = (this as any).accordionRef.getPaneIndexByRef(this);\n if (this.isActive && this.accordionRef.panes.length > 1) {\n this === this.accordionRef.panes.last ? this.accordionRef.panes.toArray()[paneIndex - 1].expand() : this.accordionRef.panes.toArray()[paneIndex + 1].expand();\n }\n const availablePanes = this.accordionRef.panes.toArray();\n availablePanes.splice((this as any).accordionRef.getPaneIndexByRef(this), 1);\n this.accordionRef.panes.reset([...availablePanes]);\n this.nativeElement.remove();\n }\n\n public toggle(evt: Event) {\n if (this.isActive) {\n this.collapse(evt);\n } else {\n this.expand(evt);\n }\n }\n\n // Todo - Vinay externalize\n private redrawChildren() {\n setTimeout(() => {\n if (this.reDrawableComponents) {\n this.reDrawableComponents.forEach(c => c.redraw());\n }\n }, 100);\n }\n\n private notifyParent(isExpand: boolean, evt: Event) {\n this.accordionRef.notifyChange(this, isExpand, evt);\n }\n\n onPropertyChange(key, nv, ov) {\n if (key === 'content') {\n if (this.isActive) {\n setTimeout(() => this.$lazyLoad(), 100);\n }\n } else if (key === 'tabindex') {\n return;\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(\n this.nativeElement.querySelector('.panel-body') as HTMLElement,\n this,\n APPLY_STYLES_TYPE.INNER_SHELL\n );\n if (this.isdynamic) {\n this.accordionRef.registerDynamicPane(this);\n }\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear ContentChildren QueryList reference\n if (this.reDrawableComponents) {\n this.reDrawableComponents = null;\n }\n\n // MEMORY LEAK FIX: Clear lazy load function reference\n this.$lazyLoad = null;\n\n super.ngOnDestroy();\n }\n}\n","<div class=\"panel-heading clearfix\" (click)=\"toggle($event)\" [ngClass]=\"{active: isActive}\">\n <h3 class=\"panel-title\">\n <a [attr.aria-expanded]=\"isActive\" [tabindex]=\"tabindex\"\n class=\"accordion-toggle clearfix\"\n href=\"javascript:void(0);\" role=\"button\">\n <div class=\"pull-left\">\n <i class=\"app-icon panel-icon {{iconclass}}\" [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 <div class=\"panel-actions pull-right\">\n <!-- added class as badge, app-label since it needs this classes to trigger the badge tokens -->\n <span class=\"badge app-label label-{{badgetype}}\">{{ badgevalue }}</span>\n <span class=\"app-icon panel-action wi\"\n title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\">\n <i [ngClass]=\"isActive ? 'wi-minus' : 'wi-plus'\"></i>\n </span>\n </div>\n </a>\n </h3>\n</div>\n<div [ngClass]=\"isActive ? 'collapse in' : 'collapse'\" class=\"panel-collapse collapse\">\n <div class=\"panel-body\" partial-container-target>\n <ng-content></ng-content>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","DEFAULT_CLS","WIDGET_CONFIG"],"mappings":"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"}
@@ -176,6 +176,19 @@
176
176
  this.hasFooter = !!this.nativeElement.querySelector('[wmPanelFooter]');
177
177
  base.styler(this.panelBody.nativeElement, this, base.APPLY_STYLES_TYPE.INNER_SHELL);
178
178
  }
179
+ ngOnDestroy() {
180
+ // MEMORY LEAK FIX: Clear ViewChild references
181
+ this.panelHeader = null;
182
+ this.panelContent = null;
183
+ this.panelBody = null;
184
+ // MEMORY LEAK FIX: Clear ContentChildren QueryList reference
185
+ if (this.reDrawableComponents) {
186
+ this.reDrawableComponents = null;
187
+ }
188
+ // MEMORY LEAK FIX: Clear lazy load function reference
189
+ this.$lazyLoad = null;
190
+ super.ngOnDestroy();
191
+ }
179
192
  static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: PanelComponent, deps: [{ token: i0__namespace.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component }); }
180
193
  static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PanelComponent, isStandalone: true, selector: "[wmPanel]", providers: [
181
194
  base.provideAsWidgetRef(PanelComponent)
@@ -124,6 +124,19 @@ export class PanelComponent extends MenuAdapterComponent {
124
124
  this.hasFooter = !!this.nativeElement.querySelector('[wmPanelFooter]');
125
125
  styler(this.panelBody.nativeElement, this, APPLY_STYLES_TYPE.INNER_SHELL);
126
126
  }
127
+ ngOnDestroy() {
128
+ // MEMORY LEAK FIX: Clear ViewChild references
129
+ this.panelHeader = null;
130
+ this.panelContent = null;
131
+ this.panelBody = null;
132
+ // MEMORY LEAK FIX: Clear ContentChildren QueryList reference
133
+ if (this.reDrawableComponents) {
134
+ this.reDrawableComponents = null;
135
+ }
136
+ // MEMORY LEAK FIX: Clear lazy load function reference
137
+ this.$lazyLoad = null;
138
+ super.ngOnDestroy();
139
+ }
127
140
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PanelComponent, deps: [{ token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
128
141
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PanelComponent, isStandalone: true, selector: "[wmPanel]", providers: [
129
142
  provideAsWidgetRef(PanelComponent)
@@ -152,4 +165,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
152
165
  type: ContentChildren,
153
166
  args: [RedrawableDirective, { descendants: true }]
154
167
  }] } });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2NvbnRhaW5lcnMvcGFuZWwvc3JjL3BhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9jb250YWluZXJzL3BhbmVsL3NyYy9wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFFSCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUVSLFFBQVEsRUFDUixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFpQixrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4SCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7O0FBRWpDLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUFDO0FBQ3RDLE1BQU0sYUFBYSxHQUFrQixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFdB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TSxFQUFFLElBQUksRUFBRTtnQkFDcUIsb0JBQW9CO3NCQUFoRixlQUFlO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUZXh0Q29udGVudERpcmVjdGl2ZSwgVHJ1c3RBc1BpcGUgfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvYmFzZVwiO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgJGFwcERpZ2VzdCwgbm9vcCwgcmVtb3ZlQXR0ciwgc2V0Q1NTLCB0b2dnbGVDbGFzcyB9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IEJzRHJvcGRvd25Nb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2Ryb3Bkb3duJztcbmltcG9ydCB7IEFQUExZX1NUWUxFU19UWVBFLCBJV2lkZ2V0Q29uZmlnLCBwcm92aWRlQXNXaWRnZXRSZWYsIFJlZHJhd2FibGVEaXJlY3RpdmUsIHN0eWxlciB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgTWVudUFkYXB0ZXJDb21wb25lbnQsIE1lbnVDb21wb25lbnQgfSBmcm9tICdAd20vY29tcG9uZW50cy9uYXZpZ2F0aW9uL21lbnUnO1xuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4vcGFuZWwucHJvcHMnO1xuaW1wb3J0IHsgb21pdCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLXBhbmVsIHBhbmVsJztcbmNvbnN0IFdJREdFVF9DT05GSUc6IElXaWRnZXRDb25maWcgPSB7IHdpZGdldFR5cGU6ICd3bS1wYW5lbCcsIGhvc3RDbGFzczogREVGQVVMVF9DTFMgfTtcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQnNEcm9wZG93bk1vZHVsZSwgQ29tbW9uTW9kdWxlLCBUZXh0Q29udGVudERpcmVjdGl2ZSwgVHJ1c3RBc1BpcGUsIE1lbnVDb21wb25lbnRdLFxuICAgIHNlbGVjdG9yOiAnW3dtUGFuZWxdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoUGFuZWxDb21wb25lbnQpXG4gICAgXSxcbiAgICBleHBvcnRBczogJ3dtUGFuZWwnXG59KVxuXG5leHBvcnQgY2xhc3MgUGFuZWxDb21wb25lbnQgZXh0ZW5kcyBNZW51QWRhcHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIHB1YmxpYyAkbGF6eUxvYWQgPSBub29wO1xuICAgIHB1YmxpYyBpY29udXJsOiBzdHJpbmc7XG4gICAgcHVibGljIGljb25jbGFzczogc3RyaW5nO1xuICAgIHB1YmxpYyBjb2xsYXBzaWJsZTogYm9vbGVhbjtcbiAgICBwdWJsaWMgZXhwYW5kZWQgPSB0cnVlO1xuICAgIHB1YmxpYyBlbmFibGVmdWxsc2NyZWVuOiBib29sZWFuO1xuICAgIHB1YmxpYyBmdWxsc2NyZWVuOiBib29sZWFuO1xuICAgIHB1YmxpYyB0aXRsZTogc3RyaW5nO1xuICAgIHB1YmxpYyBzdWJoZWFkaW5nOiBzdHJpbmc7XG4gICAgcHVibGljIGFjdGlvbnM6IGFueTtcbiAgICBwdWJsaWMgc2VsZWN0ZWRBY3Rpb246IGFueTtcblxuICAgIHB1YmxpYyBoZWxwQ2xhc3MgPSAnJztcbiAgICBwdWJsaWMgaGVscHRleHQgPSAnJztcbiAgICBwcml2YXRlIGZ1bGxTY3JlZW5UaXRsZTogc3RyaW5nO1xuICAgIHByaXZhdGUgZXhwYW5kQ29sbGFwc2VUaXRsZTogc3RyaW5nO1xuXG4gICAgQFZpZXdDaGlsZCgncGFuZWxIZWFkaW5nJywgeyBzdGF0aWM6IGZhbHNlIH0pIHByaXZhdGUgcGFuZWxIZWFkZXI6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgncGFuZWxDb250ZW50JywgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSBwYW5lbENvbnRlbnQ6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgncGFuZWxCb2R5JywgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSBwYW5lbEJvZHk6IEVsZW1lbnRSZWY7XG4gICAgQENvbnRlbnRDaGlsZHJlbihSZWRyYXdhYmxlRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIHJlRHJhd2FibGVDb21wb25lbnRzO1xuXG4gICAgcHJpdmF0ZSBoYXNGb290ZXI6IGJvb2xlYW47XG5cbiAgICAvLyBjb25kaXRpb25zIHRvIHNob3cgdGhlIGZvb3RlclxuICAgIHB1YmxpYyBnZXQgaGlkZUZvb3RlcigpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmhhc0Zvb3RlciB8fCAhdGhpcy5leHBhbmRlZDtcbiAgICB9XG5cbiAgICAvLyBjb25kaXRpb25zIHRvIHNob3cgaGVhZGVyXG4gICAgcHVibGljIGdldCBzaG93SGVhZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29udXJsIHx8IHRoaXMuaWNvbmNsYXNzIHx8IHRoaXMuY29sbGFwc2libGUgfHwgdGhpcy5hY3Rpb25zIHx8IHRoaXMudGl0bGUgfHwgdGhpcy5zdWJoZWFkaW5nIHx8IHRoaXMuZW5hYmxlZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnkpIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQpO1xuXG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMsIEFQUExZX1NUWUxFU19UWVBFLlNIRUxMKTtcblxuICAgICAgICB0aGlzLmZ1bGxTY3JlZW5UaXRsZSA9IGAke3RoaXMuYXBwTG9jYWxlLkxBQkVMX0ZVTExTQ1JFRU59LyR7dGhpcy5hcHBMb2NhbGUuTEFCRUxfRVhJVEZVTExTQ1JFRU59YDtcbiAgICAgICAgdGhpcy5leHBhbmRDb2xsYXBzZVRpdGxlID0gYCR7dGhpcy5hcHBMb2NhbGUuTEFCRUxfQ09MTEFQU0V9LyR7dGhpcy5hcHBMb2NhbGUuTEFCRUxfRVhQQU5EfWA7XG4gICAgICAgIHJlbW92ZUF0dHIodGhpcy5uYXRpdmVFbGVtZW50LCAndGl0bGUnKTtcbiAgICB9XG5cbiAgICAvLyB0b2dnbGUgdGhlIHBhbmVsIHN0YXRlIGJldHdlZW4gY29sbGFwc2VkIC0gZXhwYW5kZWQuIGludm9rZSB0aGUgcmVzcGVjdGl2ZSBjYWxsYmFja3NcbiAgICBwdWJsaWMgdG9nZ2xlKCRldmVudCkge1xuICAgICAgICBpZiAodGhpcy5jb2xsYXBzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKHRoaXMuZXhwYW5kZWQgPyAnY29sbGFwc2UnIDogJ2V4cGFuZCcsIHsgJGV2ZW50IH0pO1xuICAgICAgICAgICAgdGhpcy5leHBhbmRlZCA9ICF0aGlzLmV4cGFuZGVkO1xuICAgICAgICAgICAgaWYgKHRoaXMuZXhwYW5kZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiRsYXp5TG9hZCgpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVEcmF3Q2hpbGRyZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBleHBhbmQoJGV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5leHBhbmRlZCkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGUoJGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjb2xsYXBzZSgkZXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZXhwYW5kZWQpIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlKCRldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB0b2dnbGUgdGhlIGZ1bGxzY3JlZW4gc3RhdGUgb2YgdGhlIHBhbmVsLiBpbnZva2UgdGhlIHJlc3BlY3RpdmUgY2FsbGJhY2tzXG4gICAgcHJvdGVjdGVkIHRvZ2dsZUZ1bGxTY3JlZW4oJGV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmVuYWJsZWZ1bGxzY3JlZW4pIHtcbiAgICAgICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjayh0aGlzLmZ1bGxzY3JlZW4gPyAnZXhpdGZ1bGxzY3JlZW4nIDogJ2Z1bGxzY3JlZW4nLCB7ICRldmVudCB9KTtcbiAgICAgICAgICAgIHRoaXMuZnVsbHNjcmVlbiA9ICF0aGlzLmZ1bGxzY3JlZW47XG4gICAgICAgICAgICB0b2dnbGVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsICdmdWxsc2NyZWVuJywgdGhpcy5mdWxsc2NyZWVuKTtcbiAgICAgICAgICAgIC8vIFJlLXBsb3QgdGhlIHdpZGdldHMgaW5zaWRlIHBhbmVsXG4gICAgICAgICAgICB0aGlzLnJlRHJhd0NoaWxkcmVuKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb21wdXRlRGltZW5zaW9ucygpO1xuICAgIH1cblxuICAgIC8vIHNob3cvaGlkZSBoZWxwXG4gICAgcHJvdGVjdGVkIHRvZ2dsZUhlbHAoKSB7XG4gICAgICAgIHRoaXMuaGVscENsYXNzID0gdGhpcy5oZWxwQ2xhc3MgPyAnJyA6ICdzaG93LWhlbHAnO1xuICAgICAgICB0b2dnbGVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsICdzaG93LWhlbHAnLCAhIXRoaXMuaGVscENsYXNzKTtcbiAgICAgICAgJGFwcERpZ2VzdCgpO1xuICAgIH1cblxuICAgIC8vIE9uIGFjdGlvbiBpdGVtIGNsaWNrXG4gICAgcHJvdGVjdGVkIG1lbnVBY3Rpb25JdGVtQ2xpY2soJGV2ZW50LCAkaXRlbSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQWN0aW9uID0gb21pdCgkaXRlbSwgWydjaGlsZHJlbicsICd2YWx1ZSddKTtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdhY3Rpb25zY2xpY2snLCB7ICRldmVudCwgJGl0ZW06IHRoaXMuc2VsZWN0ZWRBY3Rpb24gfSk7XG4gICAgfVxuXG4gICAgLy8gaGlkZSB0aGUgcGFuZWwgYW5kIGludm9rZSB0aGUgcmVzcGVjdGl2ZSBldmVudCBoYW5kbGVyXG4gICAgcHJvdGVjdGVkIGNsb3NlKCRldmVudCkge1xuICAgICAgICB0aGlzLmdldFdpZGdldCgpLnNob3cgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdjbG9zZScsIHsgJGV2ZW50IH0pO1xuICAgIH1cblxuICAgIC8vIGNhbGN1bGF0aW9uIG9mIGRpbWVuc2lvbnMgd2hlbiB0aGUgcGFuZWwgdGhlIHBhbmVsIHN0YXRlIGNoYW5nZXMgZnJvbS90byBmdWxsc2NyZWVuXG4gICAgcHJpdmF0ZSBjb21wdXRlRGltZW5zaW9ucygpIHtcbiAgICAgICAgY29uc3QgaGVhZGVySGVpZ2h0ID0gdGhpcy5wYW5lbEhlYWRlci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICAgICAgY29uc3QgZm9vdGVyID0gdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wYW5lbC1mb290ZXInKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3QgY29udGVudCA9IHRoaXMucGFuZWxDb250ZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHZIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG5cbiAgICAgICAgbGV0IGlubGluZUhlaWdodDtcblxuICAgICAgICBpZiAodGhpcy5mdWxsc2NyZWVuKSB7XG4gICAgICAgICAgICBpbmxpbmVIZWlnaHQgPSB0aGlzLmhpZGVGb290ZXIgPyAodkhlaWdodCAtIGhlYWRlckhlaWdodCkgOiB2SGVpZ2h0IC0gKGZvb3Rlci5vZmZzZXRIZWlnaHQgKyBoZWFkZXJIZWlnaHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaW5saW5lSGVpZ2h0ID0gdGhpcy5oZWlnaHQgfHwgJyc7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRDU1MoY29udGVudCwgJ2hlaWdodCcsIGlubGluZUhlaWdodCk7XG4gICAgfVxuXG4gICAgLy8gbm90aWZ5IHRoZSByZWRyYXdhYmxlIGNvbXBvbmVudHMoY2hhcnRzLCBncmlkKVxuICAgIHByaXZhdGUgcmVEcmF3Q2hpbGRyZW4oKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMucmVEcmF3YWJsZUNvbXBvbmVudHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlRHJhd2FibGVDb21wb25lbnRzLmZvckVhY2goYyA9PiBjLnJlZHJhdygpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMTAwKTtcbiAgICB9XG5cbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleTogc3RyaW5nLCBudjogYW55LCBvdj86IGFueSkge1xuICAgICAgICBpZiAoa2V5ID09PSAnZXhwYW5kZWQnKSB7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZGVkID0gbnY7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnY29udGVudCcpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmV4cGFuZGVkIHx8ICF0aGlzLmNvbGxhcHNpYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJGxhenlMb2FkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgMjApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJDb250ZW50SW5pdCgpO1xuICAgICAgICB0aGlzLmhhc0Zvb3RlciA9ICEhdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1t3bVBhbmVsRm9vdGVyXScpO1xuICAgICAgICBzdHlsZXIodGhpcy5wYW5lbEJvZHkubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCwgdGhpcywgQVBQTFlfU1RZTEVTX1RZUEUuSU5ORVJfU0hFTEwpO1xuICAgIH1cbn1cbiIsIkBpZiAoc2hvd0hlYWRlcikge1xuICA8ZGl2IGNsYXNzPVwicGFuZWwtaGVhZGluZyB7e2hlbHBDbGFzc319XCIgICNwYW5lbEhlYWRpbmc+XG4gICAgPGRpdiBjbGFzcz1cInBhbmVsLXRpdGxlXCI+XG4gICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJwYW5lbC10b2dnbGVcIiAoY2xpY2spPVwidG9nZ2xlKCRldmVudClcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIiEhZXhwYW5kZWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInB1bGwtbGVmdFwiPlxuICAgICAgICAgIEBpZiAoaWNvbmNsYXNzICYmICFpY29udXJsKSB7XG4gICAgICAgICAgICA8aSBjbGFzcz1cImFwcC1pY29uIHBhbmVsLWljb24ge3tpY29uY2xhc3N9fVwiPjwvaT5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChpY29udXJsKSB7XG4gICAgICAgICAgICA8aW1nIGRhdGEtaWRlbnRpZmllcj1cImltZ1wiIHRpdGxlPVwiaWNvbnVybFwiIGFsdD1cIlBhbmVsIGljb25cIiBjbGFzcz1cInBhbmVsLWltYWdlLWljb25cIlxuICAgICAgICAgICAgICBbc3JjXT1cImljb251cmwgfCBpbWFnZVwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInt3aWR0aDogaWNvbndpZHRoICxoZWlnaHQ6IGljb25oZWlnaHQsIG1hcmdpbjogaWNvbm1hcmdpbn1cIiAvPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwdWxsLWxlZnRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZ1wiIFtpbm5lckhUTUxdPVwidGl0bGVcIiBbdGl0bGVdPVwidGl0bGVcIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIiBbaW5uZXJIVE1MXT1cInN1YmhlYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2E+XG4gICAgICA8ZGl2IGNsYXNzPVwicGFuZWwtYWN0aW9uc1wiPlxuICAgICAgICBAaWYgKGJhZGdldmFsdWUpIHtcbiAgICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwiYXBwLWJhZGdlIGxhYmVsIGxhYmVsLXt7YmFkZ2V0eXBlfX1cIj57e2JhZGdldmFsdWV9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGFjdGlvbnMpIHtcbiAgICAgICAgICA8ZGl2IHdtTWVudSBhcmlhLWxhYmVsPVwiZHJvcGRvd25cIiBkcm9wZG93biB0eXBlPVwiYW5jaG9yXCIgY2xhc3M9XCJwYW5lbC1hY3Rpb25cIiBkYXRhc2V0LmJpbmQ9XCJhY3Rpb25zXCJcbiAgICAgICAgICAgIGNhcHRpb249XCJcIiBtZW51cG9zaXRpb249XCJkb3duLGxlZnRcIiBpY29uY2xhc3M9XCJ3aSB3aS1tb3JlLXZlcnRcIlxuICAgICAgICAgICAgYXV0b2Nsb3NlLmJpbmQ9XCJhdXRvY2xvc2VcIiBkYXRhZmllbGQuYmluZD1cImRhdGFmaWVsZFwiIHNlbGVjdC5ldmVudD1cIm1lbnVBY3Rpb25JdGVtQ2xpY2soJGV2ZW50LCRpdGVtKVwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoaGVscHRleHQpIHtcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiSGVscFwiIGNsYXNzPVwiYXBwLWljb24gcGFuZWwtYWN0aW9uIHdpXCIgW3RpdGxlXT1cImFwcExvY2FsZS5MQUJFTF9IRUxQXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVIZWxwKClcIj48aSBjbGFzcz1cIndpLXF1ZXN0aW9uXCI+PC9pPjwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKGNvbGxhcHNpYmxlKSB7XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiQ29sbGFwc2UvRXhwYW5kXCIgY2xhc3M9XCJhcHAtaWNvbiB3aSBwYW5lbC1hY3Rpb25cIlxuICAgICAgICAgICAgICBbdGl0bGVdPVwiZXhwYW5kQ29sbGFwc2VUaXRsZVwiIChjbGljayk9XCJ0b2dnbGUoJGV2ZW50KTtcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIiEhZXhwYW5kZWRcIj48aVxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiZXhwYW5kZWQgPyAnd2ktbWludXMnIDogJ3dpLXBsdXMnXCI+PC9pPjwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKGVuYWJsZWZ1bGxzY3JlZW4pIHtcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGFyaWEtbGFiZWw9XCJGdWxsc2NyZWVuL0V4aXRcIiBjbGFzcz1cImFwcC1pY29uIHBhbmVsLWFjdGlvbiB3aVwiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCJmdWxsU2NyZWVuVGl0bGVcIiAoY2xpY2spPVwidG9nZ2xlRnVsbFNjcmVlbigkZXZlbnQpO1wiPjxpXG4gICAgICAgICAgICBbbmdDbGFzc109XCJmdWxsc2NyZWVuID8gJ3dpLWZ1bGxzY3JlZW4tZXhpdCcgOiAnd2ktZnVsbHNjcmVlbidcIj48L2k+PC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoY2xvc2FibGUpIHtcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGFyaWEtbGFiZWw9XCJDbG9zZSBidXR0b25cIiBjbGFzcz1cImFwcC1pY29uIHBhbmVsLWFjdGlvblwiXG4gICAgICAgICAgICAgIHRpdGxlPVwie3thcHBMb2NhbGUuTEFCRUxfQ0xPU0V9fVwiIChjbGljayk9XCJjbG9zZSgkZXZlbnQpXCI+PGlcbiAgICAgICAgICAgIGNsYXNzPVwid2kgd2ktY2xvc2VcIj48L2k+PC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG4gIDxkaXYgY2xhc3M9XCJwYW5lbC1jb250ZW50XCIgIFtoaWRkZW5dPVwiIWV4cGFuZGVkXCIgI3BhbmVsQ29udGVudD5cbiAgICA8IS0tIFRvZG8gQmFuZGhhdnlhIC0gaW1wbGVtZW50IHNtb290aCBzY3JvbGwgLS0+XG4gICAgPGRpdiBwYXJ0aWFsLWNvbnRhaW5lci10YXJnZXQgI3BhbmVsQm9keSBbbmdDbGFzc109XCJbJ3BhbmVsLWJvZHknLCBoZWxwQ2xhc3NdXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPGFzaWRlIGNsYXNzPVwicGFuZWwtaGVscC1tZXNzYWdlXCIgW25nQ2xhc3NdPVwiaGVscENsYXNzXCI+XG4gICAgICA8aDUgY2xhc3M9XCJwYW5lbC1oZWxwLWhlYWRlclwiIFt0ZXh0Q29udGVudF09XCJhcHBMb2NhbGUuTEFCRUxfSEVMUFwiPjwvaDU+XG4gICAgICA8ZGl2IGNsYXNzPVwicGFuZWwtaGVscC1jb250ZW50XCIgW2lubmVySFRNTF09XCJoZWxwdGV4dCB8IHRydXN0QXMgOiAnaHRtbCdcIj48L2Rpdj5cbiAgICA8L2FzaWRlPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImFwcC1wYW5lbC1mb290ZXIgcGFuZWwtZm9vdGVyIGNsZWFyZml4XCIgIFtoaWRkZW5dPVwiaGlkZUZvb3RlclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt3bVBhbmVsRm9vdGVyXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4iXX0=
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2NvbnRhaW5lcnMvcGFuZWwvc3JjL3BhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9jb250YWluZXJzL3BhbmVsL3NyYy9wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFFSCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUdSLFFBQVEsRUFDUixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFpQixrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4SCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7O0FBRWpDLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUFDO0FBQ3RDLE1BQU0sYUFBYSxHQUFrQixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFdB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QkFBZ0IsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLGFBQWEsQ0FBQyxZQUNqRixXQUFXLGFBRVY7d0JBQ1Asa0JBQWtCLGdCQUFnQjtxQkFDckMsWUFDUyxTQUFTOzswQkF3Q1MsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUFHLFFBQVE7eUNBakJWLFdBQVc7c0JBQWhFLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDUyxZQUFZO3NCQUFoRSxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ08sU0FBUztzQkFBMUQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNxQixvQkFBb0I7c0JBQWhGLGVBQWU7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRleHRDb250ZW50RGlyZWN0aXZlLCBUcnVzdEFzUGlwZSB9IGZyb20gXCJAd20vY29tcG9uZW50cy9iYXNlXCI7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgJGFwcERpZ2VzdCwgbm9vcCwgcmVtb3ZlQXR0ciwgc2V0Q1NTLCB0b2dnbGVDbGFzcyB9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IEJzRHJvcGRvd25Nb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2Ryb3Bkb3duJztcbmltcG9ydCB7IEFQUExZX1NUWUxFU19UWVBFLCBJV2lkZ2V0Q29uZmlnLCBwcm92aWRlQXNXaWRnZXRSZWYsIFJlZHJhd2FibGVEaXJlY3RpdmUsIHN0eWxlciB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgTWVudUFkYXB0ZXJDb21wb25lbnQsIE1lbnVDb21wb25lbnQgfSBmcm9tICdAd20vY29tcG9uZW50cy9uYXZpZ2F0aW9uL21lbnUnO1xuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4vcGFuZWwucHJvcHMnO1xuaW1wb3J0IHsgb21pdCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLXBhbmVsIHBhbmVsJztcbmNvbnN0IFdJREdFVF9DT05GSUc6IElXaWRnZXRDb25maWcgPSB7IHdpZGdldFR5cGU6ICd3bS1wYW5lbCcsIGhvc3RDbGFzczogREVGQVVMVF9DTFMgfTtcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQnNEcm9wZG93bk1vZHVsZSwgQ29tbW9uTW9kdWxlLCBUZXh0Q29udGVudERpcmVjdGl2ZSwgVHJ1c3RBc1BpcGUsIE1lbnVDb21wb25lbnRdLFxuICAgIHNlbGVjdG9yOiAnW3dtUGFuZWxdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoUGFuZWxDb21wb25lbnQpXG4gICAgXSxcbiAgICBleHBvcnRBczogJ3dtUGFuZWwnXG59KVxuXG5leHBvcnQgY2xhc3MgUGFuZWxDb21wb25lbnQgZXh0ZW5kcyBNZW51QWRhcHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuXG4gICAgcHVibGljICRsYXp5TG9hZCA9IG5vb3A7XG4gICAgcHVibGljIGljb251cmw6IHN0cmluZztcbiAgICBwdWJsaWMgaWNvbmNsYXNzOiBzdHJpbmc7XG4gICAgcHVibGljIGNvbGxhcHNpYmxlOiBib29sZWFuO1xuICAgIHB1YmxpYyBleHBhbmRlZCA9IHRydWU7XG4gICAgcHVibGljIGVuYWJsZWZ1bGxzY3JlZW46IGJvb2xlYW47XG4gICAgcHVibGljIGZ1bGxzY3JlZW46IGJvb2xlYW47XG4gICAgcHVibGljIHRpdGxlOiBzdHJpbmc7XG4gICAgcHVibGljIHN1YmhlYWRpbmc6IHN0cmluZztcbiAgICBwdWJsaWMgYWN0aW9uczogYW55O1xuICAgIHB1YmxpYyBzZWxlY3RlZEFjdGlvbjogYW55O1xuXG4gICAgcHVibGljIGhlbHBDbGFzcyA9ICcnO1xuICAgIHB1YmxpYyBoZWxwdGV4dCA9ICcnO1xuICAgIHByaXZhdGUgZnVsbFNjcmVlblRpdGxlOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBleHBhbmRDb2xsYXBzZVRpdGxlOiBzdHJpbmc7XG5cbiAgICBAVmlld0NoaWxkKCdwYW5lbEhlYWRpbmcnLCB7IHN0YXRpYzogZmFsc2UgfSkgcHJpdmF0ZSBwYW5lbEhlYWRlcjogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdwYW5lbENvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwcml2YXRlIHBhbmVsQ29udGVudDogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdwYW5lbEJvZHknLCB7IHN0YXRpYzogdHJ1ZSB9KSBwcml2YXRlIHBhbmVsQm9keTogRWxlbWVudFJlZjtcbiAgICBAQ29udGVudENoaWxkcmVuKFJlZHJhd2FibGVEaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgcmVEcmF3YWJsZUNvbXBvbmVudHM7XG5cbiAgICBwcml2YXRlIGhhc0Zvb3RlcjogYm9vbGVhbjtcblxuICAgIC8vIGNvbmRpdGlvbnMgdG8gc2hvdyB0aGUgZm9vdGVyXG4gICAgcHVibGljIGdldCBoaWRlRm9vdGVyKCkge1xuICAgICAgICByZXR1cm4gIXRoaXMuaGFzRm9vdGVyIHx8ICF0aGlzLmV4cGFuZGVkO1xuICAgIH1cblxuICAgIC8vIGNvbmRpdGlvbnMgdG8gc2hvdyBoZWFkZXJcbiAgICBwdWJsaWMgZ2V0IHNob3dIZWFkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmljb251cmwgfHwgdGhpcy5pY29uY2xhc3MgfHwgdGhpcy5jb2xsYXBzaWJsZSB8fCB0aGlzLmFjdGlvbnMgfHwgdGhpcy50aXRsZSB8fCB0aGlzLnN1YmhlYWRpbmcgfHwgdGhpcy5lbmFibGVmdWxsc2NyZWVuO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG5cbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcywgQVBQTFlfU1RZTEVTX1RZUEUuU0hFTEwpO1xuXG4gICAgICAgIHRoaXMuZnVsbFNjcmVlblRpdGxlID0gYCR7dGhpcy5hcHBMb2NhbGUuTEFCRUxfRlVMTFNDUkVFTn0vJHt0aGlzLmFwcExvY2FsZS5MQUJFTF9FWElURlVMTFNDUkVFTn1gO1xuICAgICAgICB0aGlzLmV4cGFuZENvbGxhcHNlVGl0bGUgPSBgJHt0aGlzLmFwcExvY2FsZS5MQUJFTF9DT0xMQVBTRX0vJHt0aGlzLmFwcExvY2FsZS5MQUJFTF9FWFBBTkR9YDtcbiAgICAgICAgcmVtb3ZlQXR0cih0aGlzLm5hdGl2ZUVsZW1lbnQsICd0aXRsZScpO1xuICAgIH1cblxuICAgIC8vIHRvZ2dsZSB0aGUgcGFuZWwgc3RhdGUgYmV0d2VlbiBjb2xsYXBzZWQgLSBleHBhbmRlZC4gaW52b2tlIHRoZSByZXNwZWN0aXZlIGNhbGxiYWNrc1xuICAgIHB1YmxpYyB0b2dnbGUoJGV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmNvbGxhcHNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2sodGhpcy5leHBhbmRlZCA/ICdjb2xsYXBzZScgOiAnZXhwYW5kJywgeyAkZXZlbnQgfSk7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZGVkID0gIXRoaXMuZXhwYW5kZWQ7XG4gICAgICAgICAgICBpZiAodGhpcy5leHBhbmRlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuJGxhenlMb2FkKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZURyYXdDaGlsZHJlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGV4cGFuZCgkZXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZSgkZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNvbGxhcHNlKCRldmVudCkge1xuICAgICAgICBpZiAodGhpcy5leHBhbmRlZCkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGUoJGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHRvZ2dsZSB0aGUgZnVsbHNjcmVlbiBzdGF0ZSBvZiB0aGUgcGFuZWwuIGludm9rZSB0aGUgcmVzcGVjdGl2ZSBjYWxsYmFja3NcbiAgICBwcm90ZWN0ZWQgdG9nZ2xlRnVsbFNjcmVlbigkZXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZW5hYmxlZnVsbHNjcmVlbikge1xuICAgICAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKHRoaXMuZnVsbHNjcmVlbiA/ICdleGl0ZnVsbHNjcmVlbicgOiAnZnVsbHNjcmVlbicsIHsgJGV2ZW50IH0pO1xuICAgICAgICAgICAgdGhpcy5mdWxsc2NyZWVuID0gIXRoaXMuZnVsbHNjcmVlbjtcbiAgICAgICAgICAgIHRvZ2dsZUNsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ2Z1bGxzY3JlZW4nLCB0aGlzLmZ1bGxzY3JlZW4pO1xuICAgICAgICAgICAgLy8gUmUtcGxvdCB0aGUgd2lkZ2V0cyBpbnNpZGUgcGFuZWxcbiAgICAgICAgICAgIHRoaXMucmVEcmF3Q2hpbGRyZW4oKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbXB1dGVEaW1lbnNpb25zKCk7XG4gICAgfVxuXG4gICAgLy8gc2hvdy9oaWRlIGhlbHBcbiAgICBwcm90ZWN0ZWQgdG9nZ2xlSGVscCgpIHtcbiAgICAgICAgdGhpcy5oZWxwQ2xhc3MgPSB0aGlzLmhlbHBDbGFzcyA/ICcnIDogJ3Nob3ctaGVscCc7XG4gICAgICAgIHRvZ2dsZUNsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ3Nob3ctaGVscCcsICEhdGhpcy5oZWxwQ2xhc3MpO1xuICAgICAgICAkYXBwRGlnZXN0KCk7XG4gICAgfVxuXG4gICAgLy8gT24gYWN0aW9uIGl0ZW0gY2xpY2tcbiAgICBwcm90ZWN0ZWQgbWVudUFjdGlvbkl0ZW1DbGljaygkZXZlbnQsICRpdGVtKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRBY3Rpb24gPSBvbWl0KCRpdGVtLCBbJ2NoaWxkcmVuJywgJ3ZhbHVlJ10pO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2FjdGlvbnNjbGljaycsIHsgJGV2ZW50LCAkaXRlbTogdGhpcy5zZWxlY3RlZEFjdGlvbiB9KTtcbiAgICB9XG5cbiAgICAvLyBoaWRlIHRoZSBwYW5lbCBhbmQgaW52b2tlIHRoZSByZXNwZWN0aXZlIGV2ZW50IGhhbmRsZXJcbiAgICBwcm90ZWN0ZWQgY2xvc2UoJGV2ZW50KSB7XG4gICAgICAgIHRoaXMuZ2V0V2lkZ2V0KCkuc2hvdyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2Nsb3NlJywgeyAkZXZlbnQgfSk7XG4gICAgfVxuXG4gICAgLy8gY2FsY3VsYXRpb24gb2YgZGltZW5zaW9ucyB3aGVuIHRoZSBwYW5lbCB0aGUgcGFuZWwgc3RhdGUgY2hhbmdlcyBmcm9tL3RvIGZ1bGxzY3JlZW5cbiAgICBwcml2YXRlIGNvbXB1dGVEaW1lbnNpb25zKCkge1xuICAgICAgICBjb25zdCBoZWFkZXJIZWlnaHQgPSB0aGlzLnBhbmVsSGVhZGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICBjb25zdCBmb290ZXIgPSB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnBhbmVsLWZvb3RlcicpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5wYW5lbENvbnRlbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgdkhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcblxuICAgICAgICBsZXQgaW5saW5lSGVpZ2h0O1xuXG4gICAgICAgIGlmICh0aGlzLmZ1bGxzY3JlZW4pIHtcbiAgICAgICAgICAgIGlubGluZUhlaWdodCA9IHRoaXMuaGlkZUZvb3RlciA/ICh2SGVpZ2h0IC0gaGVhZGVySGVpZ2h0KSA6IHZIZWlnaHQgLSAoZm9vdGVyLm9mZnNldEhlaWdodCArIGhlYWRlckhlaWdodCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpbmxpbmVIZWlnaHQgPSB0aGlzLmhlaWdodCB8fCAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHNldENTUyhjb250ZW50LCAnaGVpZ2h0JywgaW5saW5lSGVpZ2h0KTtcbiAgICB9XG5cbiAgICAvLyBub3RpZnkgdGhlIHJlZHJhd2FibGUgY29tcG9uZW50cyhjaGFydHMsIGdyaWQpXG4gICAgcHJpdmF0ZSByZURyYXdDaGlsZHJlbigpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5yZURyYXdhYmxlQ29tcG9uZW50cykge1xuICAgICAgICAgICAgICAgIHRoaXMucmVEcmF3YWJsZUNvbXBvbmVudHMuZm9yRWFjaChjID0+IGMucmVkcmF3KCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAxMDApO1xuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG4gICAgICAgIGlmIChrZXkgPT09ICdleHBhbmRlZCcpIHtcbiAgICAgICAgICAgIHRoaXMuZXhwYW5kZWQgPSBudjtcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdjb250ZW50Jykge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZXhwYW5kZWQgfHwgIXRoaXMuY29sbGFwc2libGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kbGF6eUxvYWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAyMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlckNvbnRlbnRJbml0KCk7XG4gICAgICAgIHRoaXMuaGFzRm9vdGVyID0gISF0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignW3dtUGFuZWxGb290ZXJdJyk7XG4gICAgICAgIHN0eWxlcih0aGlzLnBhbmVsQm9keS5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50LCB0aGlzLCBBUFBMWV9TVFlMRVNfVFlQRS5JTk5FUl9TSEVMTCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogQ2xlYXIgVmlld0NoaWxkIHJlZmVyZW5jZXNcbiAgICAgICAgdGhpcy5wYW5lbEhlYWRlciA9IG51bGw7XG4gICAgICAgIHRoaXMucGFuZWxDb250ZW50ID0gbnVsbDtcbiAgICAgICAgdGhpcy5wYW5lbEJvZHkgPSBudWxsO1xuXG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogQ2xlYXIgQ29udGVudENoaWxkcmVuIFF1ZXJ5TGlzdCByZWZlcmVuY2VcbiAgICAgICAgaWYgKHRoaXMucmVEcmF3YWJsZUNvbXBvbmVudHMpIHtcbiAgICAgICAgICAgIHRoaXMucmVEcmF3YWJsZUNvbXBvbmVudHMgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciBsYXp5IGxvYWQgZnVuY3Rpb24gcmVmZXJlbmNlXG4gICAgICAgIHRoaXMuJGxhenlMb2FkID0gbnVsbDtcblxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIkBpZiAoc2hvd0hlYWRlcikge1xuICA8ZGl2IGNsYXNzPVwicGFuZWwtaGVhZGluZyB7e2hlbHBDbGFzc319XCIgICNwYW5lbEhlYWRpbmc+XG4gICAgPGRpdiBjbGFzcz1cInBhbmVsLXRpdGxlXCI+XG4gICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJwYW5lbC10b2dnbGVcIiAoY2xpY2spPVwidG9nZ2xlKCRldmVudClcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIiEhZXhwYW5kZWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInB1bGwtbGVmdFwiPlxuICAgICAgICAgIEBpZiAoaWNvbmNsYXNzICYmICFpY29udXJsKSB7XG4gICAgICAgICAgICA8aSBjbGFzcz1cImFwcC1pY29uIHBhbmVsLWljb24ge3tpY29uY2xhc3N9fVwiPjwvaT5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChpY29udXJsKSB7XG4gICAgICAgICAgICA8aW1nIGRhdGEtaWRlbnRpZmllcj1cImltZ1wiIHRpdGxlPVwiaWNvbnVybFwiIGFsdD1cIlBhbmVsIGljb25cIiBjbGFzcz1cInBhbmVsLWltYWdlLWljb25cIlxuICAgICAgICAgICAgICBbc3JjXT1cImljb251cmwgfCBpbWFnZVwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInt3aWR0aDogaWNvbndpZHRoICxoZWlnaHQ6IGljb25oZWlnaHQsIG1hcmdpbjogaWNvbm1hcmdpbn1cIiAvPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwdWxsLWxlZnRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZ1wiIFtpbm5lckhUTUxdPVwidGl0bGVcIiBbdGl0bGVdPVwidGl0bGVcIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIiBbaW5uZXJIVE1MXT1cInN1YmhlYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2E+XG4gICAgICA8ZGl2IGNsYXNzPVwicGFuZWwtYWN0aW9uc1wiPlxuICAgICAgICBAaWYgKGJhZGdldmFsdWUpIHtcbiAgICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwiYXBwLWJhZGdlIGxhYmVsIGxhYmVsLXt7YmFkZ2V0eXBlfX1cIj57e2JhZGdldmFsdWV9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGFjdGlvbnMpIHtcbiAgICAgICAgICA8ZGl2IHdtTWVudSBhcmlhLWxhYmVsPVwiZHJvcGRvd25cIiBkcm9wZG93biB0eXBlPVwiYW5jaG9yXCIgY2xhc3M9XCJwYW5lbC1hY3Rpb25cIiBkYXRhc2V0LmJpbmQ9XCJhY3Rpb25zXCJcbiAgICAgICAgICAgIGNhcHRpb249XCJcIiBtZW51cG9zaXRpb249XCJkb3duLGxlZnRcIiBpY29uY2xhc3M9XCJ3aSB3aS1tb3JlLXZlcnRcIlxuICAgICAgICAgICAgYXV0b2Nsb3NlLmJpbmQ9XCJhdXRvY2xvc2VcIiBkYXRhZmllbGQuYmluZD1cImRhdGFmaWVsZFwiIHNlbGVjdC5ldmVudD1cIm1lbnVBY3Rpb25JdGVtQ2xpY2soJGV2ZW50LCRpdGVtKVwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoaGVscHRleHQpIHtcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiSGVscFwiIGNsYXNzPVwiYXBwLWljb24gcGFuZWwtYWN0aW9uIHdpXCIgW3RpdGxlXT1cImFwcExvY2FsZS5MQUJFTF9IRUxQXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVIZWxwKClcIj48aSBjbGFzcz1cIndpLXF1ZXN0aW9uXCI+PC9pPjwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKGNvbGxhcHNpYmxlKSB7XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiQ29sbGFwc2UvRXhwYW5kXCIgY2xhc3M9XCJhcHAtaWNvbiB3aSBwYW5lbC1hY3Rpb25cIlxuICAgICAgICAgICAgICBbdGl0bGVdPVwiZXhwYW5kQ29sbGFwc2VUaXRsZVwiIChjbGljayk9XCJ0b2dnbGUoJGV2ZW50KTtcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIiEhZXhwYW5kZWRcIj48aVxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiZXhwYW5kZWQgPyAnd2ktbWludXMnIDogJ3dpLXBsdXMnXCI+PC9pPjwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKGVuYWJsZWZ1bGxzY3JlZW4pIHtcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGFyaWEtbGFiZWw9XCJGdWxsc2NyZWVuL0V4aXRcIiBjbGFzcz1cImFwcC1pY29uIHBhbmVsLWFjdGlvbiB3aVwiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCJmdWxsU2NyZWVuVGl0bGVcIiAoY2xpY2spPVwidG9nZ2xlRnVsbFNjcmVlbigkZXZlbnQpO1wiPjxpXG4gICAgICAgICAgICBbbmdDbGFzc109XCJmdWxsc2NyZWVuID8gJ3dpLWZ1bGxzY3JlZW4tZXhpdCcgOiAnd2ktZnVsbHNjcmVlbidcIj48L2k+PC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoY2xvc2FibGUpIHtcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGFyaWEtbGFiZWw9XCJDbG9zZSBidXR0b25cIiBjbGFzcz1cImFwcC1pY29uIHBhbmVsLWFjdGlvblwiXG4gICAgICAgICAgICAgIHRpdGxlPVwie3thcHBMb2NhbGUuTEFCRUxfQ0xPU0V9fVwiIChjbGljayk9XCJjbG9zZSgkZXZlbnQpXCI+PGlcbiAgICAgICAgICAgIGNsYXNzPVwid2kgd2ktY2xvc2VcIj48L2k+PC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG4gIDxkaXYgY2xhc3M9XCJwYW5lbC1jb250ZW50XCIgIFtoaWRkZW5dPVwiIWV4cGFuZGVkXCIgI3BhbmVsQ29udGVudD5cbiAgICA8IS0tIFRvZG8gQmFuZGhhdnlhIC0gaW1wbGVtZW50IHNtb290aCBzY3JvbGwgLS0+XG4gICAgPGRpdiBwYXJ0aWFsLWNvbnRhaW5lci10YXJnZXQgI3BhbmVsQm9keSBbbmdDbGFzc109XCJbJ3BhbmVsLWJvZHknLCBoZWxwQ2xhc3NdXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPGFzaWRlIGNsYXNzPVwicGFuZWwtaGVscC1tZXNzYWdlXCIgW25nQ2xhc3NdPVwiaGVscENsYXNzXCI+XG4gICAgICA8aDUgY2xhc3M9XCJwYW5lbC1oZWxwLWhlYWRlclwiIFt0ZXh0Q29udGVudF09XCJhcHBMb2NhbGUuTEFCRUxfSEVMUFwiPjwvaDU+XG4gICAgICA8ZGl2IGNsYXNzPVwicGFuZWwtaGVscC1jb250ZW50XCIgW2lubmVySFRNTF09XCJoZWxwdGV4dCB8IHRydXN0QXMgOiAnaHRtbCdcIj48L2Rpdj5cbiAgICA8L2FzaWRlPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImFwcC1wYW5lbC1mb290ZXIgcGFuZWwtZm9vdGVyIGNsZWFyZml4XCIgIFtoaWRkZW5dPVwiaGlkZUZvb3RlclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt3bVBhbmVsRm9vdGVyXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4iXX0=
@@ -160,6 +160,19 @@ class PanelComponent extends MenuAdapterComponent {
160
160
  this.hasFooter = !!this.nativeElement.querySelector('[wmPanelFooter]');
161
161
  styler(this.panelBody.nativeElement, this, APPLY_STYLES_TYPE.INNER_SHELL);
162
162
  }
163
+ ngOnDestroy() {
164
+ // MEMORY LEAK FIX: Clear ViewChild references
165
+ this.panelHeader = null;
166
+ this.panelContent = null;
167
+ this.panelBody = null;
168
+ // MEMORY LEAK FIX: Clear ContentChildren QueryList reference
169
+ if (this.reDrawableComponents) {
170
+ this.reDrawableComponents = null;
171
+ }
172
+ // MEMORY LEAK FIX: Clear lazy load function reference
173
+ this.$lazyLoad = null;
174
+ super.ngOnDestroy();
175
+ }
163
176
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PanelComponent, deps: [{ token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
164
177
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PanelComponent, isStandalone: true, selector: "[wmPanel]", providers: [
165
178
  provideAsWidgetRef(PanelComponent)
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/containers/panel/src/panel.props.ts","../../../../../projects/components/widgets/containers/panel/src/panel.component.ts","../../../../../projects/components/widgets/containers/panel/src/panel.component.html","../../../../../projects/components/widgets/containers/panel/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-panel',\n new Map(\n [\n ['actions', {}],\n ['animation', PROP_STRING],\n ['autoclose', PROP_STRING],\n ['badgetype', { value: 'default', ...PROP_STRING }],\n ['badgevalue', PROP_STRING],\n ['class', PROP_STRING],\n ['closable', PROP_BOOLEAN],\n ['collapsible', PROP_BOOLEAN],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY],\n ['content', PROP_STRING],\n ['datafield', PROP_STRING],\n ['enablefullscreen', PROP_BOOLEAN],\n ['expanded', { value: true, ...PROP_BOOLEAN }],\n ['fullscreen', PROP_BOOLEAN],\n ['helptext', PROP_STRING],\n ['iconclass', PROP_STRING],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['itemaction', PROP_STRING],\n ['itemchildren', PROP_STRING],\n ['itemicon', PROP_STRING],\n ['itemlabel', PROP_STRING],\n ['itemlink', PROP_STRING],\n ['name', PROP_STRING],\n ['show', { value: true, ...PROP_BOOLEAN }],\n ['subheading', PROP_STRING],\n ['title', PROP_STRING],\n ['userrole', PROP_STRING],\n ['hint', PROP_STRING]\n ]\n )\n );\n};\n","import { CommonModule } from '@angular/common';\nimport { TextContentDirective, TrustAsPipe } from \"@wm/components/base\";\nimport {\n AfterContentInit,\n Component,\n ContentChildren,\n ElementRef,\n Inject,\n Injector,\n OnInit,\n Optional,\n ViewChild\n} from '@angular/core';\n\nimport { $appDigest, noop, removeAttr, setCSS, toggleClass } from '@wm/core';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, RedrawableDirective, styler } from '@wm/components/base';\nimport { MenuAdapterComponent, MenuComponent } from '@wm/components/navigation/menu';\nimport { registerProps } from './panel.props';\nimport { omit } from \"lodash-es\";\n\nconst DEFAULT_CLS = 'app-panel panel';\nconst WIDGET_CONFIG: IWidgetConfig = { widgetType: 'wm-panel', hostClass: DEFAULT_CLS };\n\n@Component({\n standalone: true,\n imports: [BsDropdownModule, CommonModule, TextContentDirective, TrustAsPipe, MenuComponent],\n selector: '[wmPanel]',\n templateUrl: './panel.component.html',\n providers: [\n provideAsWidgetRef(PanelComponent)\n ],\n exportAs: 'wmPanel'\n})\n\nexport class PanelComponent extends MenuAdapterComponent implements OnInit, AfterContentInit {\n static initializeProps = registerProps();\n\n public $lazyLoad = noop;\n public iconurl: string;\n public iconclass: string;\n public collapsible: boolean;\n public expanded = true;\n public enablefullscreen: boolean;\n public fullscreen: boolean;\n public title: string;\n public subheading: string;\n public actions: any;\n public selectedAction: any;\n\n public helpClass = '';\n public helptext = '';\n private fullScreenTitle: string;\n private expandCollapseTitle: string;\n\n @ViewChild('panelHeading', { static: false }) private panelHeader: ElementRef;\n @ViewChild('panelContent', { static: true }) private panelContent: ElementRef;\n @ViewChild('panelBody', { static: true }) private panelBody: ElementRef;\n @ContentChildren(RedrawableDirective, { descendants: true }) reDrawableComponents;\n\n private hasFooter: boolean;\n\n // conditions to show the footer\n public get hideFooter() {\n return !this.hasFooter || !this.expanded;\n }\n\n // conditions to show header\n public get showHeader() {\n return this.iconurl || this.iconclass || this.collapsible || this.actions || this.title || this.subheading || this.enablefullscreen;\n }\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.SHELL);\n\n this.fullScreenTitle = `${this.appLocale.LABEL_FULLSCREEN}/${this.appLocale.LABEL_EXITFULLSCREEN}`;\n this.expandCollapseTitle = `${this.appLocale.LABEL_COLLAPSE}/${this.appLocale.LABEL_EXPAND}`;\n removeAttr(this.nativeElement, 'title');\n }\n\n // toggle the panel state between collapsed - expanded. invoke the respective callbacks\n public toggle($event) {\n if (this.collapsible) {\n this.invokeEventCallback(this.expanded ? 'collapse' : 'expand', { $event });\n this.expanded = !this.expanded;\n if (this.expanded) {\n this.$lazyLoad();\n this.reDrawChildren();\n }\n }\n }\n\n public expand($event) {\n if (!this.expanded) {\n this.toggle($event);\n }\n }\n\n public collapse($event) {\n if (this.expanded) {\n this.toggle($event);\n }\n }\n\n // toggle the fullscreen state of the panel. invoke the respective callbacks\n protected toggleFullScreen($event) {\n if (this.enablefullscreen) {\n this.invokeEventCallback(this.fullscreen ? 'exitfullscreen' : 'fullscreen', { $event });\n this.fullscreen = !this.fullscreen;\n toggleClass(this.nativeElement, 'fullscreen', this.fullscreen);\n // Re-plot the widgets inside panel\n this.reDrawChildren();\n }\n this.computeDimensions();\n }\n\n // show/hide help\n protected toggleHelp() {\n this.helpClass = this.helpClass ? '' : 'show-help';\n toggleClass(this.nativeElement, 'show-help', !!this.helpClass);\n $appDigest();\n }\n\n // On action item click\n protected menuActionItemClick($event, $item) {\n this.selectedAction = omit($item, ['children', 'value']);\n this.invokeEventCallback('actionsclick', { $event, $item: this.selectedAction });\n }\n\n // hide the panel and invoke the respective event handler\n protected close($event) {\n this.getWidget().show = false;\n this.invokeEventCallback('close', { $event });\n }\n\n // calculation of dimensions when the panel the panel state changes from/to fullscreen\n private computeDimensions() {\n const headerHeight = this.panelHeader.nativeElement.offsetHeight;\n const footer = this.nativeElement.querySelector('.panel-footer') as HTMLElement;\n const content = this.panelContent.nativeElement;\n const vHeight = window.innerHeight;\n\n let inlineHeight;\n\n if (this.fullscreen) {\n inlineHeight = this.hideFooter ? (vHeight - headerHeight) : vHeight - (footer.offsetHeight + headerHeight);\n } else {\n inlineHeight = this.height || '';\n }\n\n setCSS(content, 'height', inlineHeight);\n }\n\n // notify the redrawable components(charts, grid)\n private reDrawChildren() {\n setTimeout(() => {\n if (this.reDrawableComponents) {\n this.reDrawableComponents.forEach(c => c.redraw());\n }\n }, 100);\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'expanded') {\n this.expanded = nv;\n } else if (key === 'content') {\n setTimeout(() => {\n if (this.expanded || !this.collapsible) {\n this.$lazyLoad();\n }\n }, 20);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n this.hasFooter = !!this.nativeElement.querySelector('[wmPanelFooter]');\n styler(this.panelBody.nativeElement as HTMLElement, this, APPLY_STYLES_TYPE.INNER_SHELL);\n }\n}\n","@if (showHeader) {\n <div class=\"panel-heading {{helpClass}}\" #panelHeading>\n <div class=\"panel-title\">\n <a href=\"javascript:void(0)\" class=\"panel-toggle\" (click)=\"toggle($event)\" [attr.aria-expanded]=\"!!expanded\">\n <div class=\"pull-left\">\n @if (iconclass && !iconurl) {\n <i class=\"app-icon panel-icon {{iconclass}}\"></i>\n }\n @if (iconurl) {\n <img data-identifier=\"img\" title=\"iconurl\" alt=\"Panel icon\" class=\"panel-image-icon\"\n [src]=\"iconurl | image\"\n [ngStyle]=\"{width: iconwidth ,height: iconheight, margin: iconmargin}\" />\n }\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\" [title]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n </a>\n <div class=\"panel-actions\">\n @if (badgevalue) {\n <span\n class=\"app-badge label label-{{badgetype}}\">{{badgevalue}}</span>\n }\n @if (actions) {\n <div wmMenu aria-label=\"dropdown\" dropdown type=\"anchor\" class=\"panel-action\" dataset.bind=\"actions\"\n caption=\"\" menuposition=\"down,left\" iconclass=\"wi wi-more-vert\"\n autoclose.bind=\"autoclose\" datafield.bind=\"datafield\" select.event=\"menuActionItemClick($event,$item)\">\n </div>\n }\n @if (helptext) {\n <button type=\"button\" aria-label=\"Help\" class=\"app-icon panel-action wi\" [title]=\"appLocale.LABEL_HELP\"\n (click)=\"toggleHelp()\"><i class=\"wi-question\"></i></button>\n }\n @if (collapsible) {\n <button type=\"button\" aria-label=\"Collapse/Expand\" class=\"app-icon wi panel-action\"\n [title]=\"expandCollapseTitle\" (click)=\"toggle($event);\" [attr.aria-expanded]=\"!!expanded\"><i\n [ngClass]=\"expanded ? 'wi-minus' : 'wi-plus'\"></i></button>\n }\n @if (enablefullscreen) {\n <button type=\"button\" aria-label=\"Fullscreen/Exit\" class=\"app-icon panel-action wi\"\n [title]=\"fullScreenTitle\" (click)=\"toggleFullScreen($event);\"><i\n [ngClass]=\"fullscreen ? 'wi-fullscreen-exit' : 'wi-fullscreen'\"></i></button>\n }\n @if (closable) {\n <button type=\"button\" aria-label=\"Close button\" class=\"app-icon panel-action\"\n title=\"{{appLocale.LABEL_CLOSE}}\" (click)=\"close($event)\"><i\n class=\"wi wi-close\"></i></button>\n }\n </div>\n </div>\n </div>\n }\n <div class=\"panel-content\" [hidden]=\"!expanded\" #panelContent>\n <!-- Todo Bandhavya - implement smooth scroll -->\n <div partial-container-target #panelBody [ngClass]=\"['panel-body', helpClass]\">\n <ng-content></ng-content>\n </div>\n <aside class=\"panel-help-message\" [ngClass]=\"helpClass\">\n <h5 class=\"panel-help-header\" [textContent]=\"appLocale.LABEL_HELP\"></h5>\n <div class=\"panel-help-content\" [innerHTML]=\"helptext | trustAs : 'html'\"></div>\n </aside>\n </div>\n <div class=\"app-panel-footer panel-footer clearfix\" [hidden]=\"hideFooter\">\n <ng-content select=\"[wmPanelFooter]\"></ng-content>\n </div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/containers/panel/src/panel.props.ts","../../../../../projects/components/widgets/containers/panel/src/panel.component.ts","../../../../../projects/components/widgets/containers/panel/src/panel.component.html","../../../../../projects/components/widgets/containers/panel/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-panel',\n new Map(\n [\n ['actions', {}],\n ['animation', PROP_STRING],\n ['autoclose', PROP_STRING],\n ['badgetype', { value: 'default', ...PROP_STRING }],\n ['badgevalue', PROP_STRING],\n ['class', PROP_STRING],\n ['closable', PROP_BOOLEAN],\n ['collapsible', PROP_BOOLEAN],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY],\n ['content', PROP_STRING],\n ['datafield', PROP_STRING],\n ['enablefullscreen', PROP_BOOLEAN],\n ['expanded', { value: true, ...PROP_BOOLEAN }],\n ['fullscreen', PROP_BOOLEAN],\n ['helptext', PROP_STRING],\n ['iconclass', PROP_STRING],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['itemaction', PROP_STRING],\n ['itemchildren', PROP_STRING],\n ['itemicon', PROP_STRING],\n ['itemlabel', PROP_STRING],\n ['itemlink', PROP_STRING],\n ['name', PROP_STRING],\n ['show', { value: true, ...PROP_BOOLEAN }],\n ['subheading', PROP_STRING],\n ['title', PROP_STRING],\n ['userrole', PROP_STRING],\n ['hint', PROP_STRING]\n ]\n )\n );\n};\n","import { CommonModule } from '@angular/common';\nimport { TextContentDirective, TrustAsPipe } from \"@wm/components/base\";\nimport {\n AfterContentInit,\n Component,\n ContentChildren,\n ElementRef,\n Inject,\n Injector,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild\n} from '@angular/core';\n\nimport { $appDigest, noop, removeAttr, setCSS, toggleClass } from '@wm/core';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, RedrawableDirective, styler } from '@wm/components/base';\nimport { MenuAdapterComponent, MenuComponent } from '@wm/components/navigation/menu';\nimport { registerProps } from './panel.props';\nimport { omit } from \"lodash-es\";\n\nconst DEFAULT_CLS = 'app-panel panel';\nconst WIDGET_CONFIG: IWidgetConfig = { widgetType: 'wm-panel', hostClass: DEFAULT_CLS };\n\n@Component({\n standalone: true,\n imports: [BsDropdownModule, CommonModule, TextContentDirective, TrustAsPipe, MenuComponent],\n selector: '[wmPanel]',\n templateUrl: './panel.component.html',\n providers: [\n provideAsWidgetRef(PanelComponent)\n ],\n exportAs: 'wmPanel'\n})\n\nexport class PanelComponent extends MenuAdapterComponent implements OnInit, AfterContentInit, OnDestroy {\n static initializeProps = registerProps();\n\n public $lazyLoad = noop;\n public iconurl: string;\n public iconclass: string;\n public collapsible: boolean;\n public expanded = true;\n public enablefullscreen: boolean;\n public fullscreen: boolean;\n public title: string;\n public subheading: string;\n public actions: any;\n public selectedAction: any;\n\n public helpClass = '';\n public helptext = '';\n private fullScreenTitle: string;\n private expandCollapseTitle: string;\n\n @ViewChild('panelHeading', { static: false }) private panelHeader: ElementRef;\n @ViewChild('panelContent', { static: true }) private panelContent: ElementRef;\n @ViewChild('panelBody', { static: true }) private panelBody: ElementRef;\n @ContentChildren(RedrawableDirective, { descendants: true }) reDrawableComponents;\n\n private hasFooter: boolean;\n\n // conditions to show the footer\n public get hideFooter() {\n return !this.hasFooter || !this.expanded;\n }\n\n // conditions to show header\n public get showHeader() {\n return this.iconurl || this.iconclass || this.collapsible || this.actions || this.title || this.subheading || this.enablefullscreen;\n }\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.SHELL);\n\n this.fullScreenTitle = `${this.appLocale.LABEL_FULLSCREEN}/${this.appLocale.LABEL_EXITFULLSCREEN}`;\n this.expandCollapseTitle = `${this.appLocale.LABEL_COLLAPSE}/${this.appLocale.LABEL_EXPAND}`;\n removeAttr(this.nativeElement, 'title');\n }\n\n // toggle the panel state between collapsed - expanded. invoke the respective callbacks\n public toggle($event) {\n if (this.collapsible) {\n this.invokeEventCallback(this.expanded ? 'collapse' : 'expand', { $event });\n this.expanded = !this.expanded;\n if (this.expanded) {\n this.$lazyLoad();\n this.reDrawChildren();\n }\n }\n }\n\n public expand($event) {\n if (!this.expanded) {\n this.toggle($event);\n }\n }\n\n public collapse($event) {\n if (this.expanded) {\n this.toggle($event);\n }\n }\n\n // toggle the fullscreen state of the panel. invoke the respective callbacks\n protected toggleFullScreen($event) {\n if (this.enablefullscreen) {\n this.invokeEventCallback(this.fullscreen ? 'exitfullscreen' : 'fullscreen', { $event });\n this.fullscreen = !this.fullscreen;\n toggleClass(this.nativeElement, 'fullscreen', this.fullscreen);\n // Re-plot the widgets inside panel\n this.reDrawChildren();\n }\n this.computeDimensions();\n }\n\n // show/hide help\n protected toggleHelp() {\n this.helpClass = this.helpClass ? '' : 'show-help';\n toggleClass(this.nativeElement, 'show-help', !!this.helpClass);\n $appDigest();\n }\n\n // On action item click\n protected menuActionItemClick($event, $item) {\n this.selectedAction = omit($item, ['children', 'value']);\n this.invokeEventCallback('actionsclick', { $event, $item: this.selectedAction });\n }\n\n // hide the panel and invoke the respective event handler\n protected close($event) {\n this.getWidget().show = false;\n this.invokeEventCallback('close', { $event });\n }\n\n // calculation of dimensions when the panel the panel state changes from/to fullscreen\n private computeDimensions() {\n const headerHeight = this.panelHeader.nativeElement.offsetHeight;\n const footer = this.nativeElement.querySelector('.panel-footer') as HTMLElement;\n const content = this.panelContent.nativeElement;\n const vHeight = window.innerHeight;\n\n let inlineHeight;\n\n if (this.fullscreen) {\n inlineHeight = this.hideFooter ? (vHeight - headerHeight) : vHeight - (footer.offsetHeight + headerHeight);\n } else {\n inlineHeight = this.height || '';\n }\n\n setCSS(content, 'height', inlineHeight);\n }\n\n // notify the redrawable components(charts, grid)\n private reDrawChildren() {\n setTimeout(() => {\n if (this.reDrawableComponents) {\n this.reDrawableComponents.forEach(c => c.redraw());\n }\n }, 100);\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'expanded') {\n this.expanded = nv;\n } else if (key === 'content') {\n setTimeout(() => {\n if (this.expanded || !this.collapsible) {\n this.$lazyLoad();\n }\n }, 20);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n this.hasFooter = !!this.nativeElement.querySelector('[wmPanelFooter]');\n styler(this.panelBody.nativeElement as HTMLElement, this, APPLY_STYLES_TYPE.INNER_SHELL);\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear ViewChild references\n this.panelHeader = null;\n this.panelContent = null;\n this.panelBody = null;\n\n // MEMORY LEAK FIX: Clear ContentChildren QueryList reference\n if (this.reDrawableComponents) {\n this.reDrawableComponents = null;\n }\n\n // MEMORY LEAK FIX: Clear lazy load function reference\n this.$lazyLoad = null;\n\n super.ngOnDestroy();\n }\n}\n","@if (showHeader) {\n <div class=\"panel-heading {{helpClass}}\" #panelHeading>\n <div class=\"panel-title\">\n <a href=\"javascript:void(0)\" class=\"panel-toggle\" (click)=\"toggle($event)\" [attr.aria-expanded]=\"!!expanded\">\n <div class=\"pull-left\">\n @if (iconclass && !iconurl) {\n <i class=\"app-icon panel-icon {{iconclass}}\"></i>\n }\n @if (iconurl) {\n <img data-identifier=\"img\" title=\"iconurl\" alt=\"Panel icon\" class=\"panel-image-icon\"\n [src]=\"iconurl | image\"\n [ngStyle]=\"{width: iconwidth ,height: iconheight, margin: iconmargin}\" />\n }\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\" [title]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n </a>\n <div class=\"panel-actions\">\n @if (badgevalue) {\n <span\n class=\"app-badge label label-{{badgetype}}\">{{badgevalue}}</span>\n }\n @if (actions) {\n <div wmMenu aria-label=\"dropdown\" dropdown type=\"anchor\" class=\"panel-action\" dataset.bind=\"actions\"\n caption=\"\" menuposition=\"down,left\" iconclass=\"wi wi-more-vert\"\n autoclose.bind=\"autoclose\" datafield.bind=\"datafield\" select.event=\"menuActionItemClick($event,$item)\">\n </div>\n }\n @if (helptext) {\n <button type=\"button\" aria-label=\"Help\" class=\"app-icon panel-action wi\" [title]=\"appLocale.LABEL_HELP\"\n (click)=\"toggleHelp()\"><i class=\"wi-question\"></i></button>\n }\n @if (collapsible) {\n <button type=\"button\" aria-label=\"Collapse/Expand\" class=\"app-icon wi panel-action\"\n [title]=\"expandCollapseTitle\" (click)=\"toggle($event);\" [attr.aria-expanded]=\"!!expanded\"><i\n [ngClass]=\"expanded ? 'wi-minus' : 'wi-plus'\"></i></button>\n }\n @if (enablefullscreen) {\n <button type=\"button\" aria-label=\"Fullscreen/Exit\" class=\"app-icon panel-action wi\"\n [title]=\"fullScreenTitle\" (click)=\"toggleFullScreen($event);\"><i\n [ngClass]=\"fullscreen ? 'wi-fullscreen-exit' : 'wi-fullscreen'\"></i></button>\n }\n @if (closable) {\n <button type=\"button\" aria-label=\"Close button\" class=\"app-icon panel-action\"\n title=\"{{appLocale.LABEL_CLOSE}}\" (click)=\"close($event)\"><i\n class=\"wi wi-close\"></i></button>\n }\n </div>\n </div>\n </div>\n }\n <div class=\"panel-content\" [hidden]=\"!expanded\" #panelContent>\n <!-- Todo Bandhavya - implement smooth scroll -->\n <div partial-container-target #panelBody [ngClass]=\"['panel-body', helpClass]\">\n <ng-content></ng-content>\n </div>\n <aside class=\"panel-help-message\" [ngClass]=\"helpClass\">\n <h5 class=\"panel-help-header\" [textContent]=\"appLocale.LABEL_HELP\"></h5>\n <div class=\"panel-help-content\" [innerHTML]=\"helptext | trustAs : 'html'\"></div>\n </aside>\n </div>\n <div class=\"app-panel-footer panel-footer clearfix\" [hidden]=\"hideFooter\">\n <ng-content select=\"[wmPanelFooter]\"></ng-content>\n </div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { AfterContentInit, Injector, OnInit } from '@angular/core';
1
+ import { AfterContentInit, Injector, OnDestroy, OnInit } from '@angular/core';
2
2
  import { MenuAdapterComponent } from '@wm/components/navigation/menu';
3
3
  import * as i0 from "@angular/core";
4
- export declare class PanelComponent extends MenuAdapterComponent implements OnInit, AfterContentInit {
4
+ export declare class PanelComponent extends MenuAdapterComponent implements OnInit, AfterContentInit, OnDestroy {
5
5
  static initializeProps: void;
6
6
  $lazyLoad: (...args: any[]) => void;
7
7
  iconurl: string;
@@ -37,6 +37,7 @@ export declare class PanelComponent extends MenuAdapterComponent implements OnIn
37
37
  private reDrawChildren;
38
38
  onPropertyChange(key: string, nv: any, ov?: any): void;
39
39
  ngAfterContentInit(): void;
40
+ ngOnDestroy(): void;
40
41
  static ɵfac: i0.ɵɵFactoryDeclaration<PanelComponent, [null, { optional: true; }]>;
41
42
  static ɵcmp: i0.ɵɵComponentDeclaration<PanelComponent, "[wmPanel]", ["wmPanel"], {}, {}, ["reDrawableComponents"], ["*", "[wmPanelFooter]"], true, never>;
42
43
  }
@@ -265,6 +265,15 @@
265
265
  this.tabsRef.registerDynamicTab(this);
266
266
  }
267
267
  }
268
+ ngOnDestroy() {
269
+ // MEMORY LEAK FIX: Clear ContentChildren QueryList reference
270
+ if (this.reDrawableComponents) {
271
+ this.reDrawableComponents = null;
272
+ }
273
+ // MEMORY LEAK FIX: Clear lazy load function reference
274
+ this.$lazyLoad = null;
275
+ super.ngOnDestroy();
276
+ }
268
277
  static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: TabPaneComponent, deps: [{ token: i0__namespace.Injector }, { token: 'heading', attribute: true }, { token: 'title', attribute: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component }); }
269
278
  static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TabPaneComponent, isStandalone: true, selector: "div[wmTabPane]", host: { properties: { "class.active": "this.isActive", "class.disabled": "this.disabled" } }, providers: [
270
279
  base.provideAsWidgetRef(TabPaneComponent)
@@ -308,6 +317,7 @@
308
317
  // handle to the promise resolver
309
318
  let resolveFn = i1.noop;
310
319
  super(inj, WIDGET_CONFIG, explicitContext, new Promise(res => resolveFn = res));
320
+ this.dynamicComponentRefs = [];
311
321
  this.iconposition = '';
312
322
  this.transition = _transition;
313
323
  this.tabsposition = _tabsPosition;
@@ -394,7 +404,13 @@
394
404
  this._dynamicContext = Object.create(this.viewParent);
395
405
  this._dynamicContext[this.getAttr('wmTab')] = this;
396
406
  }
397
- this.dynamicComponentProvider.addComponent(this.getNativeElement().querySelector('.tab-content'), markup, this._dynamicContext, { inj: this.inj });
407
+ // MEMORY LEAK FIX: Store component reference for cleanup
408
+ this.dynamicComponentProvider.addComponent(this.getNativeElement().querySelector('.tab-content'), markup, this._dynamicContext, { inj: this.inj })
409
+ .then(componentRef => {
410
+ if (componentRef) {
411
+ this.dynamicComponentRefs.push(componentRef);
412
+ }
413
+ });
398
414
  });
399
415
  return paneNamesList;
400
416
  }
@@ -648,7 +664,7 @@
648
664
  this.promiseResolverFn();
649
665
  super.ngAfterContentInit();
650
666
  this.setTabsPosition();
651
- this.panes.changes.subscribe(slides => {
667
+ this.panesChangesSubscription = this.panes.changes.subscribe(slides => {
652
668
  if (this.panes.length) {
653
669
  this.selectDefaultPaneByIndex(this.defaultpaneindex || 0);
654
670
  }
@@ -662,6 +678,42 @@
662
678
  const index = this.panes.toArray().findIndex(pane => this.nativeElement.querySelector(`li[data-paneid="${pane.widgetId}"]`)?.classList.contains("select"));
663
679
  return index >= 0 ? index : this.getActiveTabIndex();
664
680
  }
681
+ ngOnDestroy() {
682
+ // MEMORY LEAK FIX: Unsubscribe from panes changes
683
+ if (this.panesChangesSubscription) {
684
+ this.panesChangesSubscription.unsubscribe();
685
+ this.panesChangesSubscription = null;
686
+ }
687
+ // MEMORY LEAK FIX: Destroy all dynamically created component instances
688
+ if (this.dynamicComponentRefs && this.dynamicComponentRefs.length) {
689
+ this.dynamicComponentRefs.forEach(componentRef => {
690
+ if (componentRef && componentRef.destroy) {
691
+ componentRef.destroy();
692
+ }
693
+ });
694
+ this.dynamicComponentRefs = [];
695
+ }
696
+ // MEMORY LEAK FIX: Clear dynamic context
697
+ if (this._dynamicContext) {
698
+ Object.keys(this._dynamicContext).forEach(key => {
699
+ delete this._dynamicContext[key];
700
+ });
701
+ this._dynamicContext = null;
702
+ }
703
+ // MEMORY LEAK FIX: Clear dynamic tabs array
704
+ if (this.dynamicTabs) {
705
+ this.dynamicTabs = [];
706
+ }
707
+ // MEMORY LEAK FIX: Destroy tabs animator
708
+ if (this.tabsAnimator) {
709
+ // TabsAnimator may have internal subscriptions or timers
710
+ this.tabsAnimator = null;
711
+ }
712
+ // MEMORY LEAK FIX: Clear field definitions and references
713
+ this.fieldDefs = null;
714
+ this.activeTab = null;
715
+ super.ngOnDestroy();
716
+ }
665
717
  static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: TabsComponent, deps: [{ token: i0__namespace.Injector }, { token: i1__namespace.DynamicComponentRefProvider }, { token: 'transition', attribute: true }, { token: 'tabsposition', attribute: true }, { token: i1__namespace.StatePersistence }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component }); }
666
718
  static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TabsComponent, isStandalone: true, selector: "div[wmTabs]", host: { properties: { "attr.icon-position": "this.iconposition" } }, providers: [
667
719
  base.provideAsWidgetRef(TabsComponent)