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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (409) hide show
  1. package/components/advanced/carousel/bundles/index.umd.js +1 -15
  2. package/components/advanced/carousel/carousel.directive.d.ts +0 -1
  3. package/components/advanced/carousel/esm2022/carousel.directive.mjs +2 -16
  4. package/components/advanced/carousel/fesm2022/index.mjs +1 -15
  5. package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  6. package/components/advanced/login/bundles/index.umd.js +3 -24
  7. package/components/advanced/login/esm2022/login.component.mjs +4 -25
  8. package/components/advanced/login/fesm2022/index.mjs +3 -24
  9. package/components/advanced/login/fesm2022/index.mjs.map +1 -1
  10. package/components/advanced/login/login.component.d.ts +2 -5
  11. package/components/base/bundles/index.umd.js +28 -323
  12. package/components/base/directives/show-in-device.directive.d.ts +1 -2
  13. package/components/base/esm2022/directives/show-in-device.directive.mjs +4 -22
  14. package/components/base/esm2022/pipes/custom-pipes.mjs +1 -1
  15. package/components/base/esm2022/utils/widget-utils.mjs +3 -3
  16. package/components/base/esm2022/widgets/common/base/base-container.component.mjs +1 -27
  17. package/components/base/esm2022/widgets/common/base/base-field-validations.mjs +1 -18
  18. package/components/base/esm2022/widgets/common/base/base.component.mjs +7 -68
  19. package/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +1 -9
  20. package/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +11 -44
  21. package/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +1 -20
  22. package/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +1 -26
  23. package/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +4 -44
  24. package/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +1 -16
  25. package/components/base/esm2022/widgets/common/pull-to-refresh/pull-to-refresh.mjs +1 -22
  26. package/components/base/esm2022/widgets/framework/property-change-handler.mjs +2 -7
  27. package/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +3 -5
  28. package/components/base/esm2022/widgets/framework/widget-registry.mjs +3 -6
  29. package/components/base/fesm2022/index.mjs +26 -319
  30. package/components/base/fesm2022/index.mjs.map +1 -1
  31. package/components/base/widgets/common/base/base-container.component.d.ts +2 -3
  32. package/components/base/widgets/common/base/base-field-validations.d.ts +0 -1
  33. package/components/base/widgets/common/base/custom-widget-container.directive.d.ts +2 -3
  34. package/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +2 -6
  35. package/components/base/widgets/common/base/partial-container.directive.d.ts +2 -3
  36. package/components/base/widgets/common/item-template/item-template.directive.d.ts +2 -3
  37. package/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +1 -1
  38. package/components/base/widgets/common/partial-param/partial-param.directive.d.ts +2 -3
  39. package/components/base/widgets/common/pull-to-refresh/pull-to-refresh.d.ts +2 -3
  40. package/components/basic/anchor/bundles/index.umd.js +1 -13
  41. package/components/basic/anchor/esm2022/anchor.component.mjs +2 -14
  42. package/components/basic/anchor/fesm2022/index.mjs +1 -13
  43. package/components/basic/anchor/fesm2022/index.mjs.map +1 -1
  44. package/components/basic/html/bundles/index.umd.js +1 -13
  45. package/components/basic/html/esm2022/html.directive.mjs +2 -14
  46. package/components/basic/html/fesm2022/index.mjs +1 -13
  47. package/components/basic/html/fesm2022/index.mjs.map +1 -1
  48. package/components/basic/label/bundles/index.umd.js +1 -17
  49. package/components/basic/label/esm2022/label.directive.mjs +2 -18
  50. package/components/basic/label/fesm2022/index.mjs +1 -17
  51. package/components/basic/label/fesm2022/index.mjs.map +1 -1
  52. package/components/basic/label/label.directive.d.ts +2 -3
  53. package/components/basic/progress/progress-circle/bundles/index.umd.js +0 -10
  54. package/components/basic/progress/progress-circle/esm2022/progress-circle.component.mjs +1 -11
  55. package/components/basic/progress/progress-circle/fesm2022/index.mjs +0 -10
  56. package/components/basic/progress/progress-circle/fesm2022/index.mjs.map +1 -1
  57. package/components/basic/progress/progress-circle/progress-circle.component.d.ts +2 -3
  58. package/components/basic/search/bundles/index.umd.js +1 -27
  59. package/components/basic/search/esm2022/scrollable.directive.mjs +2 -11
  60. package/components/basic/search/esm2022/search.component.mjs +1 -18
  61. package/components/basic/search/fesm2022/index.mjs +1 -27
  62. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  63. package/components/basic/search/scrollable.directive.d.ts +2 -4
  64. package/components/basic/search/search.component.d.ts +2 -3
  65. package/components/basic/spinner/bundles/index.umd.js +1 -9
  66. package/components/basic/spinner/esm2022/spinner.component.mjs +2 -10
  67. package/components/basic/spinner/fesm2022/index.mjs +1 -9
  68. package/components/basic/spinner/fesm2022/index.mjs.map +1 -1
  69. package/components/basic/spinner/spinner.component.d.ts +2 -4
  70. package/components/chart/bundles/index.umd.js +3 -21
  71. package/components/chart/esm2022/chart.component.mjs +4 -22
  72. package/components/chart/fesm2022/index.mjs +3 -21
  73. package/components/chart/fesm2022/index.mjs.map +1 -1
  74. package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +2 -3
  75. package/components/containers/accordion/accordion.directive.d.ts +2 -5
  76. package/components/containers/accordion/bundles/index.umd.js +2 -49
  77. package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +1 -10
  78. package/components/containers/accordion/esm2022/accordion.directive.mjs +3 -41
  79. package/components/containers/accordion/fesm2022/index.mjs +2 -49
  80. package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  81. package/components/containers/panel/bundles/index.umd.js +0 -13
  82. package/components/containers/panel/esm2022/panel.component.mjs +1 -14
  83. package/components/containers/panel/fesm2022/index.mjs +0 -13
  84. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  85. package/components/containers/panel/panel.component.d.ts +2 -3
  86. package/components/containers/tabs/bundles/index.umd.js +2 -54
  87. package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +1 -10
  88. package/components/containers/tabs/esm2022/tabs.component.mjs +3 -46
  89. package/components/containers/tabs/fesm2022/index.mjs +2 -54
  90. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  91. package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +2 -3
  92. package/components/containers/tabs/tabs.component.d.ts +2 -5
  93. package/components/containers/wizard/bundles/index.umd.js +3 -47
  94. package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +3 -16
  95. package/components/containers/wizard/esm2022/wizard.component.mjs +2 -33
  96. package/components/containers/wizard/fesm2022/index.mjs +3 -47
  97. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  98. package/components/containers/wizard/wizard-step/wizard-step.component.d.ts +2 -3
  99. package/components/containers/wizard/wizard.component.d.ts +2 -4
  100. package/components/data/card/bundles/index.umd.js +1 -17
  101. package/components/data/card/card-content/card-content.component.d.ts +2 -3
  102. package/components/data/card/card.component.d.ts +2 -4
  103. package/components/data/card/esm2022/card-content/card-content.component.mjs +1 -6
  104. package/components/data/card/esm2022/card.component.mjs +2 -13
  105. package/components/data/card/fesm2022/index.mjs +1 -17
  106. package/components/data/card/fesm2022/index.mjs.map +1 -1
  107. package/components/data/form/bundles/index.umd.js +0 -92
  108. package/components/data/form/esm2022/form-action/form-action.directive.mjs +1 -7
  109. package/components/data/form/esm2022/form-field/form-field.directive.mjs +1 -28
  110. package/components/data/form/esm2022/form-widget.directive.mjs +1 -8
  111. package/components/data/form/esm2022/form.component.mjs +1 -27
  112. package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +1 -7
  113. package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +1 -12
  114. package/components/data/form/esm2022/live-form/live-form.directive.mjs +1 -10
  115. package/components/data/form/fesm2022/index.mjs +0 -92
  116. package/components/data/form/fesm2022/index.mjs.map +1 -1
  117. package/components/data/form/form-action/form-action.directive.d.ts +2 -3
  118. package/components/data/form/form-field/form-field.directive.d.ts +2 -3
  119. package/components/data/form/form-widget.directive.d.ts +2 -3
  120. package/components/data/form/live-actions/live-actions.directive.d.ts +1 -3
  121. package/components/data/form/live-filter/live-filter.directive.d.ts +1 -3
  122. package/components/data/form/live-form/live-form.directive.d.ts +1 -3
  123. package/components/data/list/bundles/index.umd.js +17 -180
  124. package/components/data/list/esm2022/list-item.directive.mjs +11 -95
  125. package/components/data/list/esm2022/list.component.mjs +8 -87
  126. package/components/data/list/fesm2022/index.mjs +17 -180
  127. package/components/data/list/fesm2022/index.mjs.map +1 -1
  128. package/components/data/list/list-item.directive.d.ts +2 -7
  129. package/components/data/list/list.component.d.ts +0 -3
  130. package/components/data/live-table/bundles/index.umd.js +1 -13
  131. package/components/data/live-table/esm2022/live-table.component.mjs +2 -14
  132. package/components/data/live-table/fesm2022/index.mjs +1 -13
  133. package/components/data/live-table/fesm2022/index.mjs.map +1 -1
  134. package/components/data/live-table/live-table.component.d.ts +2 -4
  135. package/components/data/pagination/bundles/index.umd.js +4 -57
  136. package/components/data/pagination/esm2022/pagination.component.mjs +5 -58
  137. package/components/data/pagination/fesm2022/index.mjs +4 -57
  138. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  139. package/components/data/pagination/pagination.component.d.ts +2 -4
  140. package/components/data/table/bundles/index.umd.js +12 -311
  141. package/components/data/table/esm2022/table-action/table-action.directive.mjs +1 -8
  142. package/components/data/table/esm2022/table-column/table-column.directive.mjs +3 -107
  143. package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +1 -9
  144. package/components/data/table/esm2022/table-cud.directive.mjs +2 -8
  145. package/components/data/table/esm2022/table-filter.directive.mjs +2 -12
  146. package/components/data/table/esm2022/table-row/table-row.directive.mjs +1 -8
  147. package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +1 -8
  148. package/components/data/table/esm2022/table.component.mjs +9 -159
  149. package/components/data/table/fesm2022/index.mjs +12 -311
  150. package/components/data/table/fesm2022/index.mjs.map +1 -1
  151. package/components/data/table/table-action/table-action.directive.d.ts +2 -3
  152. package/components/data/table/table-column/table-column.directive.d.ts +2 -3
  153. package/components/data/table/table-column-group/table-column-group.directive.d.ts +2 -3
  154. package/components/data/table/table-cud.directive.d.ts +1 -3
  155. package/components/data/table/table-filter.directive.d.ts +1 -3
  156. package/components/data/table/table-row/table-row.directive.d.ts +2 -3
  157. package/components/data/table/table-row-action/table-row-action.directive.d.ts +2 -3
  158. package/components/data/table/table.component.d.ts +2 -2
  159. package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +2 -3
  160. package/components/dialogs/alert-dialog/bundles/index.umd.js +0 -5
  161. package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +1 -6
  162. package/components/dialogs/alert-dialog/fesm2022/index.mjs +0 -5
  163. package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  164. package/components/dialogs/confirm-dialog/bundles/index.umd.js +0 -5
  165. package/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +2 -3
  166. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +1 -6
  167. package/components/dialogs/confirm-dialog/fesm2022/index.mjs +0 -5
  168. package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  169. package/components/dialogs/default/bundles/index.umd.js +2 -15
  170. package/components/dialogs/default/dialog-body/dialog-body.directive.d.ts +2 -4
  171. package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +3 -16
  172. package/components/dialogs/default/fesm2022/index.mjs +2 -15
  173. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  174. package/components/dialogs/design-dialog/bundles/index.umd.js +0 -7
  175. package/components/dialogs/design-dialog/dialog.component.d.ts +2 -3
  176. package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +1 -8
  177. package/components/dialogs/design-dialog/fesm2022/index.mjs +0 -7
  178. package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  179. package/components/dialogs/iframe-dialog/bundles/index.umd.js +0 -5
  180. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +1 -6
  181. package/components/dialogs/iframe-dialog/fesm2022/index.mjs +0 -5
  182. package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  183. package/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +2 -3
  184. package/components/dialogs/partial-dialog/bundles/index.umd.js +3 -23
  185. package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +4 -24
  186. package/components/dialogs/partial-dialog/fesm2022/index.mjs +3 -23
  187. package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  188. package/components/dialogs/partial-dialog/partial-dialog.component.d.ts +2 -4
  189. package/components/input/base-form/base-form.component.d.ts +2 -4
  190. package/components/input/base-form/bundles/index.umd.js +2 -16
  191. package/components/input/base-form/esm2022/base-form.component.mjs +3 -17
  192. package/components/input/base-form/fesm2022/index.mjs +2 -16
  193. package/components/input/base-form/fesm2022/index.mjs.map +1 -1
  194. package/components/input/base-form-custom/base-form-custom.component.d.ts +2 -3
  195. package/components/input/base-form-custom/bundles/index.umd.js +2 -13
  196. package/components/input/base-form-custom/esm2022/base-form-custom.component.mjs +3 -14
  197. package/components/input/base-form-custom/fesm2022/index.mjs +2 -13
  198. package/components/input/base-form-custom/fesm2022/index.mjs.map +1 -1
  199. package/components/input/checkbox/bundles/index.umd.js +0 -7
  200. package/components/input/checkbox/checkbox.component.d.ts +2 -3
  201. package/components/input/checkbox/esm2022/checkbox.component.mjs +1 -8
  202. package/components/input/checkbox/fesm2022/index.mjs +0 -7
  203. package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
  204. package/components/input/checkboxset/bundles/index.umd.js +2 -18
  205. package/components/input/checkboxset/checkboxset.component.d.ts +2 -4
  206. package/components/input/checkboxset/esm2022/checkboxset.component.mjs +3 -19
  207. package/components/input/checkboxset/fesm2022/index.mjs +2 -18
  208. package/components/input/checkboxset/fesm2022/index.mjs.map +1 -1
  209. package/components/input/chips/bundles/index.umd.js +5 -45
  210. package/components/input/chips/chips.component.d.ts +2 -3
  211. package/components/input/chips/esm2022/chips.component.mjs +6 -46
  212. package/components/input/chips/fesm2022/index.mjs +5 -45
  213. package/components/input/chips/fesm2022/index.mjs.map +1 -1
  214. package/components/input/color-picker/bundles/index.umd.js +0 -8
  215. package/components/input/color-picker/color-picker.component.d.ts +2 -3
  216. package/components/input/color-picker/esm2022/color-picker.component.mjs +1 -9
  217. package/components/input/color-picker/fesm2022/index.mjs +0 -8
  218. package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  219. package/components/input/composite/bundles/index.umd.js +1 -10
  220. package/components/input/composite/composite.directive.d.ts +2 -3
  221. package/components/input/composite/esm2022/composite.directive.mjs +2 -11
  222. package/components/input/composite/fesm2022/index.mjs +1 -10
  223. package/components/input/composite/fesm2022/index.mjs.map +1 -1
  224. package/components/input/currency/bundles/index.umd.js +0 -7
  225. package/components/input/currency/currency.component.d.ts +2 -3
  226. package/components/input/currency/esm2022/currency.component.mjs +1 -8
  227. package/components/input/currency/fesm2022/index.mjs +0 -7
  228. package/components/input/currency/fesm2022/index.mjs.map +1 -1
  229. package/components/input/dataset-aware-form/bundles/index.umd.js +2 -26
  230. package/components/input/dataset-aware-form/esm2022/dataset-aware-form.component.mjs +3 -27
  231. package/components/input/dataset-aware-form/fesm2022/index.mjs +2 -26
  232. package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -1
  233. package/components/input/epoch/date/bundles/index.umd.js +0 -22
  234. package/components/input/epoch/date/date.component.d.ts +0 -1
  235. package/components/input/epoch/date/esm2022/date.component.mjs +1 -23
  236. package/components/input/epoch/date/fesm2022/index.mjs +0 -22
  237. package/components/input/epoch/date/fesm2022/index.mjs.map +1 -1
  238. package/components/input/file-upload/bundles/index.umd.js +8 -25
  239. package/components/input/file-upload/esm2022/file-upload.component.mjs +9 -26
  240. package/components/input/file-upload/fesm2022/index.mjs +8 -25
  241. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  242. package/components/input/file-upload/file-upload.component.d.ts +0 -3
  243. package/components/input/number/bundles/index.umd.js +0 -8
  244. package/components/input/number/esm2022/number.component.mjs +1 -9
  245. package/components/input/number/fesm2022/index.mjs +0 -8
  246. package/components/input/number/fesm2022/index.mjs.map +1 -1
  247. package/components/input/number/number.component.d.ts +2 -3
  248. package/components/input/radioset/bundles/index.umd.js +2 -18
  249. package/components/input/radioset/esm2022/radioset.component.mjs +3 -19
  250. package/components/input/radioset/fesm2022/index.mjs +2 -18
  251. package/components/input/radioset/fesm2022/index.mjs.map +1 -1
  252. package/components/input/radioset/radioset.component.d.ts +2 -4
  253. package/components/input/rating/bundles/index.umd.js +0 -10
  254. package/components/input/rating/esm2022/rating.component.mjs +1 -11
  255. package/components/input/rating/fesm2022/index.mjs +0 -10
  256. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  257. package/components/input/rating/rating.component.d.ts +2 -3
  258. package/components/input/select/bundles/index.umd.js +0 -6
  259. package/components/input/select/esm2022/select.component.mjs +1 -7
  260. package/components/input/select/fesm2022/index.mjs +0 -6
  261. package/components/input/select/fesm2022/index.mjs.map +1 -1
  262. package/components/input/select/select.component.d.ts +2 -3
  263. package/components/input/slider/bundles/index.umd.js +0 -10
  264. package/components/input/slider/esm2022/slider.component.mjs +1 -11
  265. package/components/input/slider/fesm2022/index.mjs +0 -10
  266. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  267. package/components/input/slider/slider.component.d.ts +2 -3
  268. package/components/input/switch/bundles/index.umd.js +2 -22
  269. package/components/input/switch/esm2022/switch.component.mjs +3 -23
  270. package/components/input/switch/fesm2022/index.mjs +2 -22
  271. package/components/input/switch/fesm2022/index.mjs.map +1 -1
  272. package/components/input/switch/switch.component.d.ts +2 -3
  273. package/components/input/text/bundles/index.umd.js +0 -36
  274. package/components/input/text/esm2022/input-calendar/input-calendar.component.mjs +1 -8
  275. package/components/input/text/esm2022/input-color/input-color.component.mjs +1 -8
  276. package/components/input/text/esm2022/input-email/input-email.component.mjs +1 -8
  277. package/components/input/text/esm2022/input-number/input-number.component.mjs +1 -8
  278. package/components/input/text/esm2022/input-text/input-text.component.mjs +1 -9
  279. package/components/input/text/fesm2022/index.mjs +0 -36
  280. package/components/input/text/fesm2022/index.mjs.map +1 -1
  281. package/components/input/text/input-calendar/input-calendar.component.d.ts +2 -3
  282. package/components/input/text/input-color/input-color.component.d.ts +2 -3
  283. package/components/input/text/input-email/input-email.component.d.ts +2 -3
  284. package/components/input/text/input-number/input-number.component.d.ts +2 -3
  285. package/components/input/text/input-text/input-text.component.d.ts +2 -3
  286. package/components/input/textarea/bundles/index.umd.js +0 -7
  287. package/components/input/textarea/esm2022/textarea.component.mjs +1 -8
  288. package/components/input/textarea/fesm2022/index.mjs +0 -7
  289. package/components/input/textarea/fesm2022/index.mjs.map +1 -1
  290. package/components/input/textarea/textarea.component.d.ts +2 -3
  291. package/components/navigation/menu/bundles/index.umd.js +6 -55
  292. package/components/navigation/menu/esm2022/menu-adapator.component.mjs +3 -17
  293. package/components/navigation/menu/esm2022/menu.component.mjs +3 -10
  294. package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +1 -6
  295. package/components/navigation/menu/esm2022/nav/nav.component.mjs +1 -11
  296. package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +3 -16
  297. package/components/navigation/menu/fesm2022/index.mjs +6 -55
  298. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  299. package/components/navigation/menu/menu-adapator.component.d.ts +2 -4
  300. package/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +2 -3
  301. package/components/navigation/menu/nav/nav.component.d.ts +2 -3
  302. package/components/navigation/menu/nav/navigation-control.directive.d.ts +2 -4
  303. package/components/navigation/navbar/bundles/index.umd.js +0 -5
  304. package/components/navigation/navbar/esm2022/navbar.component.mjs +1 -6
  305. package/components/navigation/navbar/fesm2022/index.mjs +0 -5
  306. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  307. package/components/navigation/navbar/navbar.component.d.ts +2 -3
  308. package/components/navigation/popover/bundles/index.umd.js +13 -65
  309. package/components/navigation/popover/esm2022/popover.component.mjs +11 -63
  310. package/components/navigation/popover/fesm2022/index.mjs +10 -62
  311. package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  312. package/components/navigation/popover/popover.component.d.ts +3 -11
  313. package/components/page/default/bundles/index.umd.js +2 -20
  314. package/components/page/default/esm2022/layout.directive.mjs +1 -9
  315. package/components/page/default/esm2022/page-content/page-content.component.mjs +3 -13
  316. package/components/page/default/fesm2022/index.mjs +2 -20
  317. package/components/page/default/fesm2022/index.mjs.map +1 -1
  318. package/components/page/default/layout.directive.d.ts +2 -3
  319. package/components/page/default/page-content/page-content.component.d.ts +2 -3
  320. package/components/page/left-panel/bundles/index.umd.js +0 -16
  321. package/components/page/left-panel/esm2022/left-panel.directive.mjs +1 -17
  322. package/components/page/left-panel/fesm2022/index.mjs +0 -16
  323. package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  324. package/components/page/left-panel/left-panel.directive.d.ts +2 -3
  325. package/components/page/top-nav/bundles/index.umd.js +1 -2
  326. package/components/page/top-nav/esm2022/top-nav.props.mjs +2 -3
  327. package/components/page/top-nav/fesm2022/index.mjs +1 -2
  328. package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  329. package/components/prefab/bundles/index.umd.js +0 -4
  330. package/components/prefab/esm2022/prefab.directive.mjs +1 -5
  331. package/components/prefab/fesm2022/index.mjs +0 -4
  332. package/components/prefab/fesm2022/index.mjs.map +1 -1
  333. package/core/bundles/index.umd.js +94 -391
  334. package/core/esm2022/public_api.mjs +3 -3
  335. package/core/esm2022/services/viewport.service.mjs +10 -24
  336. package/core/esm2022/types/types.mjs +1 -1
  337. package/core/esm2022/utils/dom.mjs +2 -18
  338. package/core/esm2022/utils/event-notifier.mjs +2 -5
  339. package/core/esm2022/utils/lru-cache.mjs +2 -16
  340. package/core/esm2022/utils/utils.mjs +2 -6
  341. package/core/esm2022/utils/watcher.mjs +81 -323
  342. package/core/fesm2022/index.mjs +96 -390
  343. package/core/fesm2022/index.mjs.map +1 -1
  344. package/core/public_api.d.ts +2 -2
  345. package/core/services/viewport.service.d.ts +2 -5
  346. package/core/types/types.d.ts +0 -1
  347. package/core/utils/lru-cache.d.ts +0 -6
  348. package/core/utils/utils.d.ts +0 -1
  349. package/core/utils/watcher.d.ts +5 -26
  350. package/http/bundles/index.umd.js +1 -31
  351. package/http/esm2022/http.service.mjs +2 -32
  352. package/http/fesm2022/index.mjs +1 -31
  353. package/http/fesm2022/index.mjs.map +1 -1
  354. package/http/http.service.d.ts +2 -6
  355. package/locales/moment-timezone/moment-timezone-with-data.js +7 -7
  356. package/npm-shrinkwrap.json +2 -2
  357. package/oAuth/bundles/index.umd.js +0 -9
  358. package/oAuth/esm2022/oAuth.service.mjs +1 -10
  359. package/oAuth/fesm2022/index.mjs +0 -9
  360. package/oAuth/fesm2022/index.mjs.map +1 -1
  361. package/oAuth/oAuth.service.d.ts +1 -3
  362. package/package-lock.json +2 -2
  363. package/package.json +1 -1
  364. package/runtime/base/bundles/index.umd.js +42 -376
  365. package/runtime/base/components/app-component/app.component.d.ts +0 -4
  366. package/runtime/base/components/prefab-preview.component.d.ts +2 -5
  367. package/runtime/base/directives/accessroles.directive.d.ts +3 -4
  368. package/runtime/base/directives/prefab.directive.d.ts +2 -3
  369. package/runtime/base/esm2022/components/app-component/app.component.mjs +9 -40
  370. package/runtime/base/esm2022/components/base-custom-widget.component.mjs +2 -33
  371. package/runtime/base/esm2022/components/base-layout.component.mjs +1 -7
  372. package/runtime/base/esm2022/components/base-page.component.mjs +3 -36
  373. package/runtime/base/esm2022/components/base-partial.component.mjs +3 -37
  374. package/runtime/base/esm2022/components/base-prefab.component.mjs +3 -32
  375. package/runtime/base/esm2022/components/base-spa-page.component.mjs +3 -37
  376. package/runtime/base/esm2022/components/prefab-preview.component.mjs +4 -23
  377. package/runtime/base/esm2022/directives/accessroles.directive.mjs +2 -11
  378. package/runtime/base/esm2022/directives/prefab.directive.mjs +1 -9
  379. package/runtime/base/esm2022/services/app.manager.service.mjs +10 -37
  380. package/runtime/base/esm2022/services/app.service.mjs +2 -34
  381. package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +1 -4
  382. package/runtime/base/esm2022/services/http-interceptor.services.mjs +14 -13
  383. package/runtime/base/esm2022/services/pipe-provider.service.mjs +4 -7
  384. package/runtime/base/esm2022/services/spinner.service.mjs +1 -15
  385. package/runtime/base/esm2022/util/fragment-monitor.mjs +2 -23
  386. package/runtime/base/fesm2022/index.mjs +44 -377
  387. package/runtime/base/fesm2022/index.mjs.map +1 -1
  388. package/runtime/base/services/app.manager.service.d.ts +1 -6
  389. package/runtime/base/services/app.service.d.ts +2 -12
  390. package/runtime/base/services/dynamic-component-ref-provider.service.d.ts +1 -2
  391. package/runtime/base/services/spinner.service.d.ts +1 -3
  392. package/runtime/base/util/fragment-monitor.d.ts +0 -6
  393. package/runtime/dynamic/bundles/index.umd.js +0 -5
  394. package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +1 -6
  395. package/runtime/dynamic/fesm2022/index.mjs +0 -5
  396. package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  397. package/scripts/datatable/datatable.js +14 -100
  398. package/security/bundles/index.umd.js +2 -41
  399. package/security/esm2022/security.service.mjs +3 -42
  400. package/security/fesm2022/index.mjs +2 -41
  401. package/security/fesm2022/index.mjs.map +1 -1
  402. package/security/security.service.d.ts +2 -5
  403. package/variables/bundles/index.umd.js +6 -50
  404. package/variables/esm2022/manager/action/notification-action.manager.mjs +3 -18
  405. package/variables/esm2022/manager/variable/base-variable.manager.mjs +2 -15
  406. package/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +3 -13
  407. package/variables/esm2022/service/variables.service.mjs +2 -8
  408. package/variables/fesm2022/index.mjs +6 -50
  409. package/variables/fesm2022/index.mjs.map +1 -1
@@ -5,14 +5,14 @@ import { ActivatedRoute, Router, RouterOutlet, NavigationStart, NavigationEnd, N
5
5
  import * as i5 from '@angular/common';
6
6
  import { DOCUMENT, ɵgetDOM as _getDOM, CommonModule, AsyncPipe, SlicePipe, PercentPipe, I18nPluralPipe, NgLocalization, I18nSelectPipe, KeyValuePipe, UpperCasePipe, LowerCasePipe, JsonPipe, DecimalPipe, TitleCasePipe, CurrencyPipe, DatePipe } from '@angular/common';
7
7
  import * as i1 from '@wm/core';
8
- import { $appDigest, isDefined, getWmProjectProperties, triggerFn, fetchContent, _WM_APP_PROJECT, stringStartsWith, loadStyleSheets, loadScripts, noop as noop$1, App, AbstractI18nService, ScriptLoaderService, Viewport, UtilsService, $invokeWatchers, registerFnByExpr, $unwatchAllByScope, LRUCache, muteWatchers, AbstractNavigationService, isIos, isAndroid, unMuteWatchers, $watch, isIE, CustomPipeManager, getSessionStorageItem, setPipeProvider, DynamicComponentRefProvider, FieldWidgetService, FieldTypeService, ConstantService, AbstractToasterService, StatePersistence, AbstractSpinnerService, AbstractDialogService, EventNotifier, setCSS, setSessionStorageItem, replace, setNgZone, setAppRef, addClass, removeClass, extendProto, $parseExpr, AppDefaults, isObject as isObject$1, isIphone, isIpod, isIpad } from '@wm/core';
8
+ import { $appDigest, isDefined, getWmProjectProperties, triggerFn, fetchContent, _WM_APP_PROJECT, stringStartsWith, loadStyleSheets, loadScripts, noop as noop$1, App, AbstractI18nService, ScriptLoaderService, Viewport, UtilsService, $invokeWatchers, registerFnByExpr, LRUCache, muteWatchers, AbstractNavigationService, isIos, isAndroid, unMuteWatchers, $watch, isIE, CustomPipeManager, getSessionStorageItem, setPipeProvider, DynamicComponentRefProvider, FieldWidgetService, FieldTypeService, ConstantService, AbstractToasterService, StatePersistence, AbstractSpinnerService, AbstractDialogService, EventNotifier, setCSS, setSessionStorageItem, replace, setNgZone, setAppRef, addClass, removeClass, extendProto, $parseExpr, AppDefaults, isObject as isObject$1, isIphone, isIpod, isIpad } from '@wm/core';
9
9
  import * as i2 from '@wm/security';
10
10
  import { SecurityService } from '@wm/security';
11
11
  import * as i4 from '@wm/variables';
12
12
  import { $rootScope, VariablesService, MODE_CONSTANTS, CONSTANTS, appManager, httpService, MetadataService } from '@wm/variables';
13
13
  import { isEmpty, trim, forEach, extend, get, merge, isUndefined, isObject, endsWith, each, isNil, capitalize, startsWith, split, includes, isString, isNumber, find, intersection, map, toLower, values, findKey, keys, isEqual, filter } from 'lodash-es';
14
14
  import { SpaPageDirective, PageDirective, LayoutDirective, ContentComponent, PageContentComponent, RouterOutletDirective } from '@wm/components/page';
15
- import { Subject } from 'rxjs';
15
+ import { Subject, from, switchMap } from 'rxjs';
16
16
  import { WidgetRef, PartialDirective, TextContentDirective, ContainerDirective, PartialParamHandlerDirective, PartialContainerDirective, PartialParamDirective, FileIconClassPipe, FileExtensionFromMimePipe, StateClassPipe, FileSizePipe, FilterPipe, ToDatePipe, ToNumberPipe, ToCurrencyPipe, PrefixPipe, SuffixPipe, TimeFromNowPipe, NumberToStringPipe, StringToNumberPipe, CustomPipe, TrustAsPipe, SanitizePipe, TemplateReplacePipe, ItemTemplateDirective, RepeatTemplateDirective, LazyLoadDirective, MessageComponent, CustomWidgetContainerDirective, RedrawableDirective, ShowInDeviceDirective, TrailingZeroDecimalPipe, ImagePipe, DialogServiceImpl } from '@wm/components/base';
17
17
  import { __decorate, __param, __metadata } from 'tslib';
18
18
  import { CheckboxsetComponent } from '@wm/components/input/checkboxset';
@@ -163,13 +163,10 @@ class AppManagerService {
163
163
  this.appVariablesLoaded = false;
164
164
  this.appVariablesFired = false;
165
165
  this._noRedirect = false;
166
- this.appSubscriptions = []; // MEMORY LEAK FIX: Track subscriptions
167
166
  // register method to invoke on session timeout
168
- // MEMORY LEAK FIX: Store unsubscribe function for cleanup
169
- this.sessionTimeoutUnsubscribe = this.$http.registerOnSessionTimeout(this.handle401.bind(this));
167
+ this.$http.registerOnSessionTimeout(this.handle401.bind(this));
170
168
  this.$variables.registerDependency('appManager', this);
171
- // MEMORY LEAK FIX: Store subscription unsubscribe functions
172
- this.appSubscriptions.push(this.$app.subscribe('toggle-variable-state', (data) => {
169
+ this.$app.subscribe('toggle-variable-state', (data) => {
173
170
  const variable = data.variable, active = data.active;
174
171
  if (!isEmpty(trim(variable.spinnerContext))) {
175
172
  if (active) {
@@ -194,8 +191,8 @@ class AppManagerService {
194
191
  this.$spinner.hide(variable._spinnerId.shift());
195
192
  }
196
193
  }
197
- }));
198
- this.appSubscriptions.push(this.$app.subscribe('userLoggedIn', () => {
194
+ });
195
+ this.$app.subscribe('userLoggedIn', () => {
199
196
  this.setLandingPage();
200
197
  if (this.lastLoggedUserId) {
201
198
  this.$security.getConfig(config => {
@@ -204,11 +201,11 @@ class AppManagerService {
204
201
  }
205
202
  }, null);
206
203
  }
207
- }));
208
- this.appSubscriptions.push(this.$app.subscribe('userLoggedOut', () => this.setLandingPage().then(() => {
204
+ });
205
+ this.$app.subscribe('userLoggedOut', () => this.setLandingPage().then(() => {
209
206
  this.$app.clearPageCache();
210
- })));
211
- this.appSubscriptions.push(this.$app.subscribe('http401', (d = {}) => this.handle401(d.page, d.options)));
207
+ }));
208
+ this.$app.subscribe('http401', (d = {}) => this.handle401(d.page, d.options));
212
209
  }
213
210
  /**
214
211
  * On session timeout, if the session timeout config is set to a dialog, then open login dialog
@@ -608,36 +605,12 @@ class AppManagerService {
608
605
  // Apply restored modes
609
606
  this.$app.setMode(storedModes);
610
607
  // Listener for postMessage-based mode changes
611
- // MEMORY LEAK FIX: Store bound function reference for cleanup
612
- this.windowMessageListener = (event) => {
608
+ window.addEventListener('message', (event) => {
613
609
  const { key, modes, shouldPersist } = event.data || {};
614
610
  if (key === 'switch-mode' && modes) {
615
611
  this.$app.setMode(modes, !shouldPersist);
616
612
  }
617
- };
618
- window.addEventListener('message', this.windowMessageListener);
619
- }
620
- ngOnDestroy() {
621
- // MEMORY LEAK FIX: Unsubscribe from all app subscriptions
622
- this.appSubscriptions.forEach(unsubscribe => {
623
- if (unsubscribe) {
624
- unsubscribe();
625
- }
626
613
  });
627
- this.appSubscriptions = [];
628
- // MEMORY LEAK FIX: Unsubscribe from session timeout
629
- if (this.sessionTimeoutUnsubscribe) {
630
- this.sessionTimeoutUnsubscribe();
631
- this.sessionTimeoutUnsubscribe = null;
632
- }
633
- // MEMORY LEAK FIX: Remove window message listener
634
- if (this.windowMessageListener) {
635
- window.removeEventListener('message', this.windowMessageListener);
636
- this.windowMessageListener = null;
637
- }
638
- // MEMORY LEAK FIX: Clear references
639
- this.templates = null;
640
- this.lastLoggedUserId = null;
641
614
  }
642
615
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppManagerService, deps: [{ token: i1.AbstractHttpService }, { token: i2.SecurityService }, { token: i1.AbstractDialogService }, { token: i1$1.Router }, { token: i1.App }, { token: i4.VariablesService }, { token: i4.MetadataService }, { token: i1.AbstractSpinnerService }, { token: i1.AbstractI18nService }, { token: i5.DatePipe }], target: i0.ɵɵFactoryTarget.Injectable }); }
643
616
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppManagerService }); }
@@ -763,32 +736,11 @@ class FragmentMonitor {
763
736
  }
764
737
  init() {
765
738
  // console.log(`inside fragmentMonitor: Page-${(this as any).pageName}, Partial-${(this as any).partialName}`);
766
- // MEMORY LEAK FIX: Store subscription reference for cleanup
767
- this.viewInitSubscription = this.viewInit$.subscribe(noop$1, noop$1, () => {
739
+ this.viewInit$.subscribe(noop$1, noop$1, () => {
768
740
  this.isViewInitialized = true;
769
741
  this.isReady();
770
742
  });
771
743
  }
772
- /**
773
- * MEMORY LEAK FIX: Clean up FragmentMonitor resources
774
- * Should be called from implementing class's ngOnDestroy
775
- */
776
- cleanupFragmentMonitor() {
777
- // MEMORY LEAK FIX: Unsubscribe from viewInit$ subscription
778
- if (this.viewInitSubscription) {
779
- this.viewInitSubscription.unsubscribe();
780
- this.viewInitSubscription = null;
781
- }
782
- // MEMORY LEAK FIX: Complete Subjects to release subscriptions (if not already completed)
783
- if (this.viewInit$ && !this.viewInit$.closed) {
784
- this.viewInit$.complete();
785
- }
786
- this.viewInit$ = null;
787
- if (this.fragmentsLoaded$ && !this.fragmentsLoaded$.closed) {
788
- this.fragmentsLoaded$.complete();
789
- }
790
- this.fragmentsLoaded$ = null;
791
- }
792
744
  registerFragment() {
793
745
  this.fragments++;
794
746
  }
@@ -972,41 +924,7 @@ class BasePartialComponent extends FragmentMonitor {
972
924
  });
973
925
  }
974
926
  ngOnDestroy() {
975
- // MEMORY LEAK FIX: Unwatch all Partial-scoped watchers for THIS specific partial when partial is destroyed
976
- // Only unwatch watchers for this partial, not all partials (other partials may still be on the page)
977
- if (this.partialName) {
978
- $unwatchAllByScope('Partial', this.partialName);
979
- }
980
- // MEMORY LEAK FIX: Complete Subjects to release subscriptions
981
- if (this.destroy$) {
982
- this.destroy$.complete();
983
- this.destroy$ = null;
984
- }
985
- if (this.viewInit$) {
986
- this.viewInit$.complete();
987
- this.viewInit$ = null;
988
- }
989
- // MEMORY LEAK FIX: Clear references to prevent memory leaks
990
- this.Widgets = null;
991
- this.Variables = null;
992
- this.Actions = null;
993
- this.App = null;
994
- this.containerWidget = null;
995
- this.i18nService = null;
996
- this.appLocale = null;
997
- this.partialDirective = null;
998
- this.pageDirective = null;
999
- this.Prefab = null;
1000
- this.scriptLoaderService = null;
1001
- this.Viewport = null;
1002
- this.route = null;
1003
- this.appManager = null;
1004
- this.navigationService = null;
1005
- this.router = null;
1006
- this.pageParams = null;
1007
- this.viewParent = null;
1008
- // MEMORY LEAK FIX: Cleanup FragmentMonitor resources
1009
- this.cleanupFragmentMonitor();
927
+ this.destroy$.complete();
1010
928
  }
1011
929
  ngOnAttach(refreshData) {
1012
930
  this.unmute();
@@ -1451,42 +1369,9 @@ class BasePageComponent extends FragmentMonitor {
1451
1369
  });
1452
1370
  }
1453
1371
  ngOnDestroy() {
1454
- // MEMORY LEAK FIX: Unwatch all Page-scoped watchers for THIS specific page when page is destroyed
1455
- if (this.pageName) {
1456
- const removedCount = $unwatchAllByScope('Page', this.pageName);
1457
- if (removedCount > 0) {
1458
- console.log(`🧹 Cleaned up ${removedCount} Page-scoped watcher(s) for page ${this.pageName}`);
1459
- }
1460
- }
1461
1372
  //this.captureApplicationThumbnail();
1462
1373
  this.savePageSnapShot();
1463
- // MEMORY LEAK FIX: Complete Subjects to release subscriptions
1464
- if (this.destroy$) {
1465
- this.destroy$.complete();
1466
- this.destroy$ = null;
1467
- }
1468
- if (this.viewInit$) {
1469
- this.viewInit$.complete();
1470
- this.viewInit$ = null;
1471
- }
1472
- // MEMORY LEAK FIX: Clear references to prevent memory leaks
1473
- this.Widgets = null;
1474
- this.Variables = null;
1475
- this.Actions = null;
1476
- this.App = null;
1477
- this.route = null;
1478
- this.appManager = null;
1479
- this.navigationService = null;
1480
- this.router = null;
1481
- this.pageParams = null;
1482
- this.i18nService = null;
1483
- this.appLocale = null;
1484
- this.pageDirective = null;
1485
- this.$page = null;
1486
- this.scriptLoaderService = null;
1487
- this.Viewport = null;
1488
- // MEMORY LEAK FIX: Cleanup FragmentMonitor resources
1489
- this.cleanupFragmentMonitor();
1374
+ this.destroy$.complete();
1490
1375
  }
1491
1376
  captureApplicationThumbnail() {
1492
1377
  const root = this;
@@ -1851,38 +1736,7 @@ class BaseCustomWidgetComponent extends FragmentMonitor {
1851
1736
  }, 100);
1852
1737
  }
1853
1738
  ngOnDestroy() {
1854
- // MEMORY LEAK FIX: Complete Subjects to release subscriptions
1855
- if (this.destroy$) {
1856
- this.destroy$.complete();
1857
- this.destroy$ = null;
1858
- }
1859
- if (this.viewInit$) {
1860
- this.viewInit$.complete();
1861
- this.viewInit$ = null;
1862
- }
1863
- // MEMORY LEAK FIX: Clear references to prevent memory leaks
1864
- this.Widgets = null;
1865
- this.BaseWidget = null;
1866
- this.Variables = null;
1867
- this.Actions = null;
1868
- this.App = null;
1869
- this.containerWidget = null;
1870
- this.i18nService = null;
1871
- this.appLocale = null;
1872
- this.pageDirective = null;
1873
- this.Prefab = null;
1874
- this.scriptLoaderService = null;
1875
- this.customwidgetConfigProvider = null;
1876
- this.Viewport = null;
1877
- this.route = null;
1878
- this.appManager = null;
1879
- this.navigationService = null;
1880
- this.router = null;
1881
- this.props = null;
1882
- this.events = null;
1883
- this.viewParent = null;
1884
- // MEMORY LEAK FIX: Cleanup FragmentMonitor resources
1885
- this.cleanupFragmentMonitor();
1739
+ this.destroy$.complete();
1886
1740
  }
1887
1741
  ngOnAttach(refreshData) {
1888
1742
  this.unmute();
@@ -2109,36 +1963,7 @@ class BasePrefabComponent extends FragmentMonitor {
2109
1963
  });
2110
1964
  }
2111
1965
  ngOnDestroy() {
2112
- // MEMORY LEAK FIX: Unwatch all Prefab-scoped watchers for THIS specific prefab when prefab is destroyed
2113
- // Only unwatch watchers for this prefab, not all prefabs (other prefabs may still be on the page)
2114
- if (this.prefabName) {
2115
- $unwatchAllByScope('Prefab', this.prefabName);
2116
- }
2117
- // MEMORY LEAK FIX: Complete Subjects to release subscriptions
2118
- if (this.destroy$) {
2119
- this.destroy$.complete();
2120
- this.destroy$ = null;
2121
- }
2122
- if (this.viewInit$) {
2123
- this.viewInit$.complete();
2124
- this.viewInit$ = null;
2125
- }
2126
- // MEMORY LEAK FIX: Clear references to prevent memory leaks
2127
- this.Widgets = null;
2128
- this.Variables = null;
2129
- this.Actions = null;
2130
- this.App = null;
2131
- this.containerWidget = null;
2132
- this.prefabMngr = null;
2133
- this.i18nService = null;
2134
- this.appLocale = null;
2135
- this.prefabContainerDirective = null;
2136
- this.scriptLoaderService = null;
2137
- this.pageDirective = null;
2138
- this.Viewport = null;
2139
- this.viewParent = null;
2140
- // MEMORY LEAK FIX: Cleanup FragmentMonitor resources
2141
- this.cleanupFragmentMonitor();
1966
+ this.destroy$.complete();
2142
1967
  }
2143
1968
  // user overrides this
2144
1969
  onPropertyChange() { }
@@ -2192,12 +2017,6 @@ class BaseLayoutComponent {
2192
2017
  }
2193
2018
  //TODO: To work cache properly need to implement the below methods and WmRouteReuseStrategy
2194
2019
  ngOnDestroy() {
2195
- // MEMORY LEAK FIX: Clear references to prevent memory leaks
2196
- this.App = null;
2197
- this.routerOutlet = null;
2198
- this.pageDirective = null;
2199
- this.layoutPages = null;
2200
- this.layoutName = null;
2201
2020
  }
2202
2021
  canReuse() {
2203
2022
  }
@@ -2900,42 +2719,8 @@ class BaseSpaPageComponent extends FragmentMonitor {
2900
2719
  });
2901
2720
  }
2902
2721
  ngOnDestroy() {
2903
- // MEMORY LEAK FIX: Unwatch all Page-scoped watchers for THIS specific page when page is destroyed
2904
- if (this.pageName) {
2905
- $unwatchAllByScope('Page', this.pageName);
2906
- // if (removedCount > 0) {
2907
- // console.log(`🧹 Cleaned up ${removedCount} Page-scoped watcher(s) for page ${this.pageName}`);
2908
- // }
2909
- }
2910
2722
  this.savePageSnapShot();
2911
- // MEMORY LEAK FIX: Complete Subjects to release subscriptions
2912
- if (this.destroy$) {
2913
- this.destroy$.complete();
2914
- this.destroy$ = null;
2915
- }
2916
- if (this.viewInit$) {
2917
- this.viewInit$.complete();
2918
- this.viewInit$ = null;
2919
- }
2920
- // MEMORY LEAK FIX: Clear references to prevent memory leaks
2921
- this.Widgets = null;
2922
- this.Variables = null;
2923
- this.Actions = null;
2924
- this.App = null;
2925
- this.route = null;
2926
- this.appManager = null;
2927
- this.navigationService = null;
2928
- this.router = null;
2929
- this.pageParams = null;
2930
- this.i18nService = null;
2931
- this.appLocale = null;
2932
- this.layoutDirective = null;
2933
- this.spaPageDirective = null;
2934
- this.$page = null;
2935
- this.scriptLoaderService = null;
2936
- this.Viewport = null;
2937
- // MEMORY LEAK FIX: Cleanup FragmentMonitor resources
2938
- this.cleanupFragmentMonitor();
2723
+ this.destroy$.complete();
2939
2724
  }
2940
2725
  onReady() { }
2941
2726
  onBeforePageReady() { }
@@ -3021,7 +2806,7 @@ class AccessrolesDirective {
3021
2806
  this.securityService = securityService;
3022
2807
  this.inj = inj;
3023
2808
  this.processed = false;
3024
- this.context = {}; // Changed from readonly to allow cleanup
2809
+ this.context = {};
3025
2810
  const securityConfig = this.securityService.get();
3026
2811
  this.securityEnabled = get(securityConfig, 'securityEnabled');
3027
2812
  this.isUserAuthenticated = get(securityConfig, 'authenticated');
@@ -3094,15 +2879,6 @@ class AccessrolesDirective {
3094
2879
  this.viewContainerRef.clear();
3095
2880
  }
3096
2881
  }
3097
- ngOnDestroy() {
3098
- // MEMORY LEAK FIX: Clear context to release references to parent scope data
3099
- if (this.context) {
3100
- Object.keys(this.context).forEach(key => {
3101
- delete this.context[key];
3102
- });
3103
- this.context = null;
3104
- }
3105
- }
3106
2882
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessrolesDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i2.SecurityService }, { token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
3107
2883
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: AccessrolesDirective, isStandalone: true, selector: "[accessroles]", inputs: { accessroles: "accessroles" }, ngImport: i0 }); }
3108
2884
  }
@@ -3332,10 +3108,7 @@ class PipeProvider {
3332
3108
  this.preparePipeMeta(CurrencyPipe, 'currency', true, [this._locale]),
3333
3109
  this.preparePipeMeta(DatePipe, 'date', true, [this._locale]),
3334
3110
  this.preparePipeMeta(ToDatePipe, 'toDate', true, [
3335
- new DatePipe(this._locale),
3336
- undefined,
3337
- this.injector.get(App),
3338
- this.injector.get(CustomPipeManager)
3111
+ new DatePipe(this._locale), undefined, this.injector.get(CustomPipeManager)
3339
3112
  ]),
3340
3113
  this.preparePipeMeta(ToNumberPipe, 'toNumber', true, [
3341
3114
  new DecimalPipe(this._locale),
@@ -3352,7 +3125,7 @@ class PipeProvider {
3352
3125
  new DecimalPipe(this._locale)
3353
3126
  ]),
3354
3127
  this.preparePipeMeta(StringToNumberPipe, 'stringToNumber', true),
3355
- this.preparePipeMeta(CustomPipe, 'custom', true, [this.injector.get(App), this.injector.get(CustomPipeManager)]),
3128
+ this.preparePipeMeta(CustomPipe, 'custom', true, [this.injector.get(CustomPipeManager)]),
3356
3129
  this.preparePipeMeta(TrustAsPipe, 'trustAs', true, [this.domSanitizer]),
3357
3130
  this.preparePipeMeta(SanitizePipe, 'sanitize', true, [this.domSanitizer]),
3358
3131
  this.preparePipeMeta(TemplateReplacePipe, 'templateReplace', true),
@@ -3515,8 +3288,7 @@ class AppRef {
3515
3288
  this.isTemplateBundleType = wmProjectProperties.type === "TEMPLATEBUNDLE" /* PROJECT_TYPE.TEMPLATE_BUNDLE */;
3516
3289
  this.targetPlatform = wmProjectProperties.platformType;
3517
3290
  this.isPrism = wmProjectProperties.template === "PRISM";
3518
- // MEMORY LEAK FIX: Store unsubscribe function for cleanup
3519
- this.sessionTimeoutUnsubscribe = this.httpService.registerOnSessionTimeout(this.on401.bind(this));
3291
+ this.httpService.registerOnSessionTimeout(this.on401.bind(this));
3520
3292
  this.appLocale = this.i18nService.getAppLocale();
3521
3293
  this.httpService.setLocale(this.appLocale);
3522
3294
  }
@@ -3603,19 +3375,6 @@ class AppRef {
3603
3375
  registerFnByExpr(expr, fn[0], fn[1]);
3604
3376
  });
3605
3377
  }
3606
- /**
3607
- * Utility method to check if an object has a property
3608
- * This is commonly used in expressions to check object properties
3609
- * @param obj The object to check
3610
- * @param prop The property name to check
3611
- * @returns true if the object has the property, false otherwise
3612
- */
3613
- hasOwnObjectProperty(obj, prop) {
3614
- if (!obj || typeof obj !== 'object') {
3615
- return false;
3616
- }
3617
- return Object.prototype.hasOwnProperty.call(obj, prop);
3618
- }
3619
3378
  setMode(modes, shouldPersist = false) {
3620
3379
  const htmlEl = document.getElementsByTagName('html')[0];
3621
3380
  //html element sanity check
@@ -3644,24 +3403,6 @@ class AppRef {
3644
3403
  localStorage.setItem('wm-app-modes', JSON.stringify(modes));
3645
3404
  }
3646
3405
  ;
3647
- ngOnDestroy() {
3648
- // MEMORY LEAK FIX: Destroy EventNotifier to release subscribers
3649
- if (this._eventNotifier) {
3650
- this._eventNotifier.destroy();
3651
- this._eventNotifier = null;
3652
- }
3653
- // MEMORY LEAK FIX: Unsubscribe from session timeout
3654
- if (this.sessionTimeoutUnsubscribe) {
3655
- this.sessionTimeoutUnsubscribe();
3656
- this.sessionTimeoutUnsubscribe = null;
3657
- }
3658
- // MEMORY LEAK FIX: Clear references
3659
- this.Variables = null;
3660
- this.Actions = null;
3661
- this.appLocale = null;
3662
- this.modes = null;
3663
- this.dynamicComponentContainerRef = null;
3664
- }
3665
3406
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppRef, deps: [{ token: i0.Injector }, { token: i1.AbstractI18nService }, { token: i1.StatePersistence }, { token: i1.AbstractHttpService }, { token: i2.SecurityService }, { token: i1$1.RouteReuseStrategy }], target: i0.ɵɵFactoryTarget.Injectable }); }
3666
3407
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppRef }); }
3667
3408
  }
@@ -4164,20 +3905,6 @@ class SpinnerServiceImpl extends AbstractSpinnerService {
4164
3905
  this.messagesByContext[ctx] = {};
4165
3906
  }
4166
3907
  }
4167
- ngOnDestroy() {
4168
- // MEMORY LEAK FIX: Complete Subject to release subscriptions
4169
- if (this.messageSource) {
4170
- this.messageSource.complete();
4171
- this.messageSource = null;
4172
- }
4173
- // MEMORY LEAK FIX: Clear messages by context
4174
- if (this.messagesByContext) {
4175
- Object.keys(this.messagesByContext).forEach(key => {
4176
- delete this.messagesByContext[key];
4177
- });
4178
- this.messagesByContext = null;
4179
- }
4180
- }
4181
3908
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpinnerServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4182
3909
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpinnerServiceImpl }); }
4183
3910
  }
@@ -4693,7 +4420,6 @@ class AppComponent {
4693
4420
  this.isApplicationType = false;
4694
4421
  this.enableSkipToMainContent = getWmProjectProperties().enableSkipToMainContent === 'true' || getWmProjectProperties().enableSkipToMainContent === true;
4695
4422
  this.retryCount = 0;
4696
- this.appManagerSubscriptions = []; // MEMORY LEAK FIX: Track appManager subscriptions
4697
4423
  this.appLocale = {};
4698
4424
  this.spinner = { show: false, messages: [], arialabel: '' };
4699
4425
  this.isOAuthDialogOpen = false;
@@ -4706,8 +4432,7 @@ class AppComponent {
4706
4432
  this.customIconsLoaderService.load();
4707
4433
  }
4708
4434
  // subscribe to OAuth changes
4709
- // MEMORY LEAK FIX: Store subscription reference for cleanup
4710
- this.oAuthProvidersSubscription = oAuthService.getOAuthProvidersAsObservable().subscribe((providers) => {
4435
+ oAuthService.getOAuthProvidersAsObservable().subscribe((providers) => {
4711
4436
  this.providersConfig = providers;
4712
4437
  if (providers.length) {
4713
4438
  this.showOAuthDialog();
@@ -4717,8 +4442,7 @@ class AppComponent {
4717
4442
  }
4718
4443
  });
4719
4444
  // Subscribe to the message source to show/hide app spinner
4720
- // MEMORY LEAK FIX: Store subscription reference for cleanup
4721
- this.spinnerMessageSubscription = this.spinnerService.getMessageSource().asObservable().subscribe((data) => {
4445
+ this.spinnerService.getMessageSource().asObservable().subscribe((data) => {
4722
4446
  // setTimeout is to avoid 'ExpressionChangedAfterItHasBeenCheckedError'
4723
4447
  setTimeout(() => {
4724
4448
  this.spinner.show = data.show;
@@ -4730,8 +4454,7 @@ class AppComponent {
4730
4454
  setTheme('bs3');
4731
4455
  let spinnerId;
4732
4456
  let onPageRendered = noop$1;
4733
- // MEMORY LEAK FIX: Store subscription reference for cleanup
4734
- this.routerEventsSubscription = this.router.events.subscribe(e => {
4457
+ this.router.events.subscribe(e => {
4735
4458
  if (e instanceof NavigationStart) {
4736
4459
  let page = e.url.split('?')[0];
4737
4460
  page = page.substring(1);
@@ -4766,13 +4489,12 @@ class AppComponent {
4766
4489
  }, 1000);
4767
4490
  }
4768
4491
  });
4769
- // MEMORY LEAK FIX: Store subscription unsubscribe functions
4770
- this.appManagerSubscriptions.push(this.appManager.subscribe('pageReady', () => {
4492
+ this.appManager.subscribe('pageReady', () => {
4771
4493
  onPageRendered();
4772
- }));
4773
- this.appManagerSubscriptions.push(this.appManager.subscribe('pageAttach', () => {
4494
+ });
4495
+ this.appManager.subscribe('pageAttach', () => {
4774
4496
  onPageRendered();
4775
- }));
4497
+ });
4776
4498
  }
4777
4499
  showOAuthDialog() {
4778
4500
  if (!this.isOAuthDialogOpen) {
@@ -4847,35 +4569,9 @@ class AppComponent {
4847
4569
  $invokeWatchers();
4848
4570
  }
4849
4571
  ngOnDestroy() {
4850
- // MEMORY LEAK FIX: Unwatch all App-scoped watchers when app is destroyed
4851
- $unwatchAllByScope('App');
4852
- // MEMORY LEAK FIX: Unsubscribe from navigation end subscription
4853
4572
  if (this.navigationEndSubscription) {
4854
4573
  this.navigationEndSubscription.unsubscribe();
4855
- this.navigationEndSubscription = null;
4856
- }
4857
- // MEMORY LEAK FIX: Unsubscribe from OAuth providers subscription
4858
- if (this.oAuthProvidersSubscription) {
4859
- this.oAuthProvidersSubscription.unsubscribe();
4860
- this.oAuthProvidersSubscription = null;
4861
- }
4862
- // MEMORY LEAK FIX: Unsubscribe from spinner message subscription
4863
- if (this.spinnerMessageSubscription) {
4864
- this.spinnerMessageSubscription.unsubscribe();
4865
- this.spinnerMessageSubscription = null;
4866
- }
4867
- // MEMORY LEAK FIX: Unsubscribe from router events subscription
4868
- if (this.routerEventsSubscription) {
4869
- this.routerEventsSubscription.unsubscribe();
4870
- this.routerEventsSubscription = null;
4871
- }
4872
- // MEMORY LEAK FIX: Unsubscribe from appManager subscriptions
4873
- this.appManagerSubscriptions.forEach(unsubscribe => {
4874
- if (unsubscribe) {
4875
- unsubscribe();
4876
- }
4877
- });
4878
- this.appManagerSubscriptions = [];
4574
+ }
4879
4575
  }
4880
4576
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppComponent, deps: [{ token: PipeProvider }, { token: i0.ApplicationRef }, { token: i0.ElementRef }, { token: i2$2.OAuthService }, { token: i1.AbstractDialogService }, { token: i1.AbstractSpinnerService }, { token: i0.NgZone }, { token: i1$1.Router }, { token: i1.App }, { token: AppManagerService }, { token: i1.CustomIconsLoaderService }], target: i0.ɵɵFactoryTarget.Component }); }
4881
4577
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: AppComponent, isStandalone: true, selector: "app-root", viewQueries: [{ propertyName: "routerOutlet", first: true, predicate: RouterOutlet, descendants: true }, { propertyName: "dynamicComponentContainerRef", first: true, predicate: ["dynamicComponent"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "@if (startApp) {\n @if(enableSkipToMainContent) {\n <div id=\"app-focus-start\" tabindex=\"-1\"></div>\n <a href=\"javascript:void(0);\" class=\"skip\" (click)=\"skipToAppContent($event)\">{{appLocale.LABEL_SKIP_TO_MAIN_CONTENT || 'Skip to main content'}}</a>\n }\n <router-outlet></router-outlet>\n @if (isApplicationType) {\n <div wmContainer partialContainer content=\"Common\" hidden class=\"ng-hide\"></div>\n }\n <app-spinner name=\"globalspinner\" classname=\"global-spinner\" role=\"alert\" aria-live=\"assertive\" [attr.aria-label]=\"spinner.arialabel || 'Loading'\" [show]=\"spinner.show\" [spinnermessages]=\"spinner.messages\"></app-spinner>\n <div wmDialog name=\"oAuthLoginDialog\" title=\"Application is requesting you to sign in with\"\n close.event=\"closeOAuthDialog()\">\n <ng-template #dialogBody>\n <ul class=\"list-items\">\n @for (provider of providersConfig; track provider) {\n <li class=\"list-item\">\n <button class=\"btn\" (click)=\"provider.invoke()\">{{provider.name}}</button>\n </li>\n }\n </ul>\n </ng-template>\n </div>\n <div wmConfirmDialog name=\"_app-confirm-dialog\" title.bind=\"title\" message.bind=\"message\" oktext.bind=\"oktext\"\n canceltext.bind=\"canceltext\" closable=\"false\" iconclass.bind=\"iconclass\"\n escape.event=\"onEscape()\" ok.event=\"onOk()\" cancel.event=\"onCancel()\" close.event=\"onClose()\" opened.event=\"onOpen()\"></div>\n @if (!isApplicationType) {\n <div wmConfirmDialog name=\"PrefabConfirmDialog\" title.bind=\"title\" message.bind=\"text\" oktext.bind=\"okButtonText\"\n canceltext.bind=\"cancelButtonText\" closable=\"false\" iconclass.bind=\"iconclass\"\n escape.event=\"onEscape()\" ok.event=\"onOk()\" cancel.event=\"onCancel()\" close.event=\"onClose()\" opened.event=\"onOpen()\"></div>\n }\n @if (!isApplicationType) {\n <div wmAlertDialog name=\"PrefabAlertDialog\" title.bind=\"title\" message.bind=\"text\" oktext.bind=\"okButtonText\"\n canceltext.bind=\"cancelButtonText\" closable=\"false\" iconclass.bind=\"iconclass\"\n escape.event=\"onEscape()\" ok.event=\"onOk()\" cancel.event=\"onCancel()\" close.event=\"onClose()\" opened.event=\"onOpen()\"></div>\n }\n <div wmAppExt></div>\n <i id=\"wm-mobile-display\"></i>\n}\n<!--Dummy container to create the component dynamically-->\n<ng-container #dynamicComponent></ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: AlertDialogComponent, selector: "div[wmAlertDialog]" }, { kind: "component", type: ConfirmDialogComponent, selector: "div[wmConfirmDialog]" }, { kind: "component", type: DialogComponent, selector: "div[wmDialog]" }, { kind: "component", type: AppSpinnerComponent, selector: "app-spinner", inputs: ["show", "spinnermessages", "classname", "arialabel"] }, { kind: "directive", type: ContainerDirective, selector: "[wmContainer]" }, { kind: "directive", type: PartialParamHandlerDirective, selector: "[partialContainer]" }, { kind: "directive", type: PartialContainerDirective, selector: "[partialContainer]" }], encapsulation: i0.ViewEncapsulation.None }); }
@@ -4917,18 +4613,19 @@ class HttpCallInterceptor {
4917
4613
  let apiUrl = _WM_APP_PROJECT.apiUrl + request.url;
4918
4614
  request = request.clone({ url: apiUrl });
4919
4615
  }
4920
- if (appManager && appManager.appOnBeforeServiceCall) {
4921
- // Convert the angular HttpRequest to wm HttpRequest
4922
- const req = this.wmHttpRequest.angularToWmRequest(request);
4923
- // trigger the common onBeforeServiceCall handler present in app.js
4924
- modifiedReq = appManager.appOnBeforeServiceCall(req);
4925
- if (modifiedReq) {
4926
- // Convert the wm HttpRequest to angular HttpRequest
4927
- modifiedReq = this.wmHttpRequest.wmToAngularRequest(modifiedReq);
4928
- request = modifiedReq;
4616
+ return from(Promise.resolve().then(() => {
4617
+ if (appManager && appManager.appOnBeforeServiceCall) {
4618
+ const wmReq = this.wmHttpRequest.angularToWmRequest(request);
4619
+ return appManager.appOnBeforeServiceCall(wmReq);
4929
4620
  }
4930
- }
4931
- return next.handle(request).pipe(tap((response) => {
4621
+ return null;
4622
+ }))
4623
+ .pipe(switchMap((receivedModifiedReq) => {
4624
+ if (receivedModifiedReq) {
4625
+ request = this.wmHttpRequest.wmToAngularRequest(receivedModifiedReq);
4626
+ }
4627
+ return next.handle(request);
4628
+ }), tap((response) => {
4932
4629
  if (response && response.type === 4 && appManager && appManager.appOnServiceSuccess) {
4933
4630
  // Convert the angular HttpResponse to wm HttpResponse
4934
4631
  const resp = this.wmHttpResponse.angularToWmResponse(response);
@@ -4984,14 +4681,6 @@ class PrefabDirective {
4984
4681
  }
4985
4682
  });
4986
4683
  }
4987
- ngOnDestroy() {
4988
- // MEMORY LEAK FIX: Clear ViewContainerRef to destroy dynamically created components
4989
- if (this.vcRef) {
4990
- this.vcRef.clear();
4991
- }
4992
- // MEMORY LEAK FIX: Clear ElementRef reference
4993
- this.elRef = null;
4994
- }
4995
4684
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PrefabDirective, deps: [{ token: WidgetRef, self: true }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: PrefabManagerService }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: ComponentRefProvider }], target: i0.ɵɵFactoryTarget.Directive }); }
4996
4685
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: PrefabDirective, isStandalone: true, selector: "[wmPrefab][prefabname]", ngImport: i0 }); }
4997
4686
  }
@@ -5012,8 +4701,7 @@ const PREFAB = 'PREFAB';
5012
4701
  class PrefabPreviewComponent {
5013
4702
  constructor(prefabManager) {
5014
4703
  this.prefabManager = prefabManager;
5015
- // MEMORY LEAK FIX: Store bound function reference for cleanup
5016
- this.windowMessageListener = (e) => {
4704
+ window.addEventListener('message', e => {
5017
4705
  const context = e.data && e.data.context;
5018
4706
  if (context !== PREFAB) {
5019
4707
  return;
@@ -5032,8 +4720,7 @@ class PrefabPreviewComponent {
5032
4720
  else if (action === 'invoke-script') {
5033
4721
  this.invokeScript(payload);
5034
4722
  }
5035
- };
5036
- window.addEventListener('message', this.windowMessageListener);
4723
+ });
5037
4724
  }
5038
4725
  postMessage(action, payload) {
5039
4726
  const data = {
@@ -5050,8 +4737,7 @@ class PrefabPreviewComponent {
5050
4737
  }
5051
4738
  init() {
5052
4739
  this.previewMode = true;
5053
- // MEMORY LEAK FIX: Store subscription reference
5054
- this.readyStateSubscription = this.prefabInstance.readyState.subscribe(() => { }, () => { }, () => {
4740
+ this.prefabInstance.readyState.subscribe(() => { }, () => { }, () => {
5055
4741
  this.prefabManager.getConfig('__self__')
5056
4742
  .then(config => {
5057
4743
  this.config = config;
@@ -5085,22 +4771,6 @@ class PrefabPreviewComponent {
5085
4771
  this.setupEventListeners();
5086
4772
  this.postMessage('init');
5087
4773
  }
5088
- ngOnDestroy() {
5089
- // MEMORY LEAK FIX: Remove window message listener
5090
- if (this.windowMessageListener) {
5091
- window.removeEventListener('message', this.windowMessageListener);
5092
- this.windowMessageListener = null;
5093
- }
5094
- // MEMORY LEAK FIX: Unsubscribe from readyState
5095
- if (this.readyStateSubscription) {
5096
- this.readyStateSubscription.unsubscribe();
5097
- this.readyStateSubscription = null;
5098
- }
5099
- // MEMORY LEAK FIX: Clear ViewChild reference
5100
- this.prefabInstance = null;
5101
- // MEMORY LEAK FIX: Clear config
5102
- this.config = null;
5103
- }
5104
4774
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PrefabPreviewComponent, deps: [{ token: PrefabManagerService }], target: i0.ɵɵFactoryTarget.Component }); }
5105
4775
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PrefabPreviewComponent, isStandalone: true, selector: "wm-prefab-preview", viewQueries: [{ propertyName: "prefabInstance", first: true, predicate: PrefabDirective$1, descendants: true, static: true }], ngImport: i0, template: `
5106
4776
  <div class="prefab-preview row">
@@ -5181,7 +4851,6 @@ class DynamicComponentRefProviderService {
5181
4851
  selector: selector of the component
5182
4852
  transpile: flag for transpiling HTML. By default it is true
5183
4853
  nocache: flag for render it from cache or not. By default it is true
5184
- * @returns ComponentRef - the created component reference for cleanup
5185
4854
  */
5186
4855
  async addComponent(target, markup, context = {}, options = {}) {
5187
4856
  options.transpile = isDefined(options.transpile) ? options.transpile : true;
@@ -5191,8 +4860,6 @@ class DynamicComponentRefProviderService {
5191
4860
  const component = this.app.dynamicComponentContainerRef.createComponent(componentFactoryRef, 0, get(options, 'inj'));
5192
4861
  extendProto(component.instance, context);
5193
4862
  target.appendChild(component.location.nativeElement);
5194
- // MEMORY LEAK FIX: Return component reference so caller can destroy it
5195
- return component;
5196
4863
  }
5197
4864
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicComponentRefProviderService, deps: [{ token: i1.App }, { token: AppManagerService }, { token: i0.Compiler }], target: i0.ɵɵFactoryTarget.Injectable }); }
5198
4865
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicComponentRefProviderService }); }