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

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 (407) 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 +323 -28
  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 +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 +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 +319 -26
  30. package/components/base/fesm2022/index.mjs.map +1 -1
  31. package/components/base/widgets/common/base/base-container.component.d.ts +3 -2
  32. package/components/base/widgets/common/base/base-field-validations.d.ts +1 -0
  33. package/components/base/widgets/common/base/custom-widget-container.directive.d.ts +3 -2
  34. package/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +6 -2
  35. package/components/base/widgets/common/base/partial-container.directive.d.ts +3 -2
  36. package/components/base/widgets/common/item-template/item-template.directive.d.ts +3 -2
  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 +3 -2
  39. package/components/base/widgets/common/pull-to-refresh/pull-to-refresh.d.ts +3 -2
  40. package/components/basic/anchor/bundles/index.umd.js +13 -1
  41. package/components/basic/anchor/esm2022/anchor.component.mjs +14 -2
  42. package/components/basic/anchor/fesm2022/index.mjs +13 -1
  43. package/components/basic/anchor/fesm2022/index.mjs.map +1 -1
  44. package/components/basic/html/bundles/index.umd.js +13 -1
  45. package/components/basic/html/esm2022/html.directive.mjs +14 -2
  46. package/components/basic/html/fesm2022/index.mjs +13 -1
  47. package/components/basic/html/fesm2022/index.mjs.map +1 -1
  48. package/components/basic/label/bundles/index.umd.js +17 -1
  49. package/components/basic/label/esm2022/label.directive.mjs +18 -2
  50. package/components/basic/label/fesm2022/index.mjs +17 -1
  51. package/components/basic/label/fesm2022/index.mjs.map +1 -1
  52. package/components/basic/label/label.directive.d.ts +3 -2
  53. package/components/basic/progress/progress-circle/bundles/index.umd.js +10 -0
  54. package/components/basic/progress/progress-circle/esm2022/progress-circle.component.mjs +11 -1
  55. package/components/basic/progress/progress-circle/fesm2022/index.mjs +10 -0
  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 +3 -2
  58. package/components/basic/search/bundles/index.umd.js +27 -1
  59. package/components/basic/search/esm2022/scrollable.directive.mjs +11 -2
  60. package/components/basic/search/esm2022/search.component.mjs +18 -1
  61. package/components/basic/search/fesm2022/index.mjs +27 -1
  62. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  63. package/components/basic/search/scrollable.directive.d.ts +4 -2
  64. package/components/basic/search/search.component.d.ts +3 -2
  65. package/components/basic/spinner/bundles/index.umd.js +9 -1
  66. package/components/basic/spinner/esm2022/spinner.component.mjs +10 -2
  67. package/components/basic/spinner/fesm2022/index.mjs +9 -1
  68. package/components/basic/spinner/fesm2022/index.mjs.map +1 -1
  69. package/components/basic/spinner/spinner.component.d.ts +4 -2
  70. package/components/chart/bundles/index.umd.js +21 -3
  71. package/components/chart/esm2022/chart.component.mjs +22 -4
  72. package/components/chart/fesm2022/index.mjs +21 -3
  73. package/components/chart/fesm2022/index.mjs.map +1 -1
  74. package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +3 -2
  75. package/components/containers/accordion/accordion.directive.d.ts +5 -2
  76. package/components/containers/accordion/bundles/index.umd.js +49 -2
  77. package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +10 -1
  78. package/components/containers/accordion/esm2022/accordion.directive.mjs +41 -3
  79. package/components/containers/accordion/fesm2022/index.mjs +49 -2
  80. package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  81. package/components/containers/panel/bundles/index.umd.js +13 -0
  82. package/components/containers/panel/esm2022/panel.component.mjs +14 -1
  83. package/components/containers/panel/fesm2022/index.mjs +13 -0
  84. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  85. package/components/containers/panel/panel.component.d.ts +3 -2
  86. package/components/containers/tabs/bundles/index.umd.js +54 -2
  87. package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +10 -1
  88. package/components/containers/tabs/esm2022/tabs.component.mjs +46 -3
  89. package/components/containers/tabs/fesm2022/index.mjs +54 -2
  90. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  91. package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +3 -2
  92. package/components/containers/tabs/tabs.component.d.ts +5 -2
  93. package/components/containers/wizard/bundles/index.umd.js +47 -3
  94. package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +16 -3
  95. package/components/containers/wizard/esm2022/wizard.component.mjs +33 -2
  96. package/components/containers/wizard/fesm2022/index.mjs +47 -3
  97. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  98. package/components/containers/wizard/wizard-step/wizard-step.component.d.ts +3 -2
  99. package/components/containers/wizard/wizard.component.d.ts +4 -2
  100. package/components/data/card/bundles/index.umd.js +17 -1
  101. package/components/data/card/card-content/card-content.component.d.ts +3 -2
  102. package/components/data/card/card.component.d.ts +4 -2
  103. package/components/data/card/esm2022/card-content/card-content.component.mjs +6 -1
  104. package/components/data/card/esm2022/card.component.mjs +13 -2
  105. package/components/data/card/fesm2022/index.mjs +17 -1
  106. package/components/data/card/fesm2022/index.mjs.map +1 -1
  107. package/components/data/form/bundles/index.umd.js +92 -0
  108. package/components/data/form/esm2022/form-action/form-action.directive.mjs +7 -1
  109. package/components/data/form/esm2022/form-field/form-field.directive.mjs +28 -1
  110. package/components/data/form/esm2022/form-widget.directive.mjs +8 -1
  111. package/components/data/form/esm2022/form.component.mjs +27 -1
  112. package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +7 -1
  113. package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +12 -1
  114. package/components/data/form/esm2022/live-form/live-form.directive.mjs +10 -1
  115. package/components/data/form/fesm2022/index.mjs +92 -0
  116. package/components/data/form/fesm2022/index.mjs.map +1 -1
  117. package/components/data/form/form-action/form-action.directive.d.ts +3 -2
  118. package/components/data/form/form-field/form-field.directive.d.ts +3 -2
  119. package/components/data/form/form-widget.directive.d.ts +3 -2
  120. package/components/data/form/live-actions/live-actions.directive.d.ts +3 -1
  121. package/components/data/form/live-filter/live-filter.directive.d.ts +3 -1
  122. package/components/data/form/live-form/live-form.directive.d.ts +3 -1
  123. package/components/data/list/bundles/index.umd.js +180 -17
  124. package/components/data/list/esm2022/list-item.directive.mjs +95 -11
  125. package/components/data/list/esm2022/list.component.mjs +87 -8
  126. package/components/data/list/fesm2022/index.mjs +180 -17
  127. package/components/data/list/fesm2022/index.mjs.map +1 -1
  128. package/components/data/list/list-item.directive.d.ts +7 -2
  129. package/components/data/list/list.component.d.ts +3 -0
  130. package/components/data/live-table/bundles/index.umd.js +13 -1
  131. package/components/data/live-table/esm2022/live-table.component.mjs +14 -2
  132. package/components/data/live-table/fesm2022/index.mjs +13 -1
  133. package/components/data/live-table/fesm2022/index.mjs.map +1 -1
  134. package/components/data/live-table/live-table.component.d.ts +4 -2
  135. package/components/data/pagination/bundles/index.umd.js +57 -4
  136. package/components/data/pagination/esm2022/pagination.component.mjs +58 -5
  137. package/components/data/pagination/fesm2022/index.mjs +57 -4
  138. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  139. package/components/data/pagination/pagination.component.d.ts +4 -2
  140. package/components/data/table/bundles/index.umd.js +311 -12
  141. package/components/data/table/esm2022/table-action/table-action.directive.mjs +8 -1
  142. package/components/data/table/esm2022/table-column/table-column.directive.mjs +107 -3
  143. package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +9 -1
  144. package/components/data/table/esm2022/table-cud.directive.mjs +8 -2
  145. package/components/data/table/esm2022/table-filter.directive.mjs +12 -2
  146. package/components/data/table/esm2022/table-row/table-row.directive.mjs +8 -1
  147. package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +8 -1
  148. package/components/data/table/esm2022/table.component.mjs +159 -9
  149. package/components/data/table/fesm2022/index.mjs +311 -12
  150. package/components/data/table/fesm2022/index.mjs.map +1 -1
  151. package/components/data/table/table-action/table-action.directive.d.ts +3 -2
  152. package/components/data/table/table-column/table-column.directive.d.ts +3 -2
  153. package/components/data/table/table-column-group/table-column-group.directive.d.ts +3 -2
  154. package/components/data/table/table-cud.directive.d.ts +3 -1
  155. package/components/data/table/table-filter.directive.d.ts +3 -1
  156. package/components/data/table/table-row/table-row.directive.d.ts +3 -2
  157. package/components/data/table/table-row-action/table-row-action.directive.d.ts +3 -2
  158. package/components/data/table/table.component.d.ts +2 -2
  159. package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +3 -2
  160. package/components/dialogs/alert-dialog/bundles/index.umd.js +5 -0
  161. package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +6 -1
  162. package/components/dialogs/alert-dialog/fesm2022/index.mjs +5 -0
  163. package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  164. package/components/dialogs/confirm-dialog/bundles/index.umd.js +5 -0
  165. package/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +3 -2
  166. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +6 -1
  167. package/components/dialogs/confirm-dialog/fesm2022/index.mjs +5 -0
  168. package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  169. package/components/dialogs/default/bundles/index.umd.js +15 -2
  170. package/components/dialogs/default/dialog-body/dialog-body.directive.d.ts +4 -2
  171. package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +16 -3
  172. package/components/dialogs/default/fesm2022/index.mjs +15 -2
  173. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  174. package/components/dialogs/design-dialog/bundles/index.umd.js +7 -0
  175. package/components/dialogs/design-dialog/dialog.component.d.ts +3 -2
  176. package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +8 -1
  177. package/components/dialogs/design-dialog/fesm2022/index.mjs +7 -0
  178. package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  179. package/components/dialogs/iframe-dialog/bundles/index.umd.js +5 -0
  180. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +6 -1
  181. package/components/dialogs/iframe-dialog/fesm2022/index.mjs +5 -0
  182. package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  183. package/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +3 -2
  184. package/components/dialogs/partial-dialog/bundles/index.umd.js +23 -3
  185. package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +24 -4
  186. package/components/dialogs/partial-dialog/fesm2022/index.mjs +23 -3
  187. package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  188. package/components/dialogs/partial-dialog/partial-dialog.component.d.ts +4 -2
  189. package/components/input/base-form/base-form.component.d.ts +4 -2
  190. package/components/input/base-form/bundles/index.umd.js +16 -2
  191. package/components/input/base-form/esm2022/base-form.component.mjs +17 -3
  192. package/components/input/base-form/fesm2022/index.mjs +16 -2
  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 +3 -2
  195. package/components/input/base-form-custom/bundles/index.umd.js +13 -2
  196. package/components/input/base-form-custom/esm2022/base-form-custom.component.mjs +14 -3
  197. package/components/input/base-form-custom/fesm2022/index.mjs +13 -2
  198. package/components/input/base-form-custom/fesm2022/index.mjs.map +1 -1
  199. package/components/input/checkbox/bundles/index.umd.js +7 -0
  200. package/components/input/checkbox/checkbox.component.d.ts +3 -2
  201. package/components/input/checkbox/esm2022/checkbox.component.mjs +8 -1
  202. package/components/input/checkbox/fesm2022/index.mjs +7 -0
  203. package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
  204. package/components/input/checkboxset/bundles/index.umd.js +18 -2
  205. package/components/input/checkboxset/checkboxset.component.d.ts +4 -2
  206. package/components/input/checkboxset/esm2022/checkboxset.component.mjs +19 -3
  207. package/components/input/checkboxset/fesm2022/index.mjs +18 -2
  208. package/components/input/checkboxset/fesm2022/index.mjs.map +1 -1
  209. package/components/input/chips/bundles/index.umd.js +45 -5
  210. package/components/input/chips/chips.component.d.ts +3 -2
  211. package/components/input/chips/esm2022/chips.component.mjs +46 -6
  212. package/components/input/chips/fesm2022/index.mjs +45 -5
  213. package/components/input/chips/fesm2022/index.mjs.map +1 -1
  214. package/components/input/color-picker/bundles/index.umd.js +8 -0
  215. package/components/input/color-picker/color-picker.component.d.ts +3 -2
  216. package/components/input/color-picker/esm2022/color-picker.component.mjs +9 -1
  217. package/components/input/color-picker/fesm2022/index.mjs +8 -0
  218. package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  219. package/components/input/composite/bundles/index.umd.js +10 -1
  220. package/components/input/composite/composite.directive.d.ts +3 -2
  221. package/components/input/composite/esm2022/composite.directive.mjs +11 -2
  222. package/components/input/composite/fesm2022/index.mjs +10 -1
  223. package/components/input/composite/fesm2022/index.mjs.map +1 -1
  224. package/components/input/currency/bundles/index.umd.js +7 -0
  225. package/components/input/currency/currency.component.d.ts +3 -2
  226. package/components/input/currency/esm2022/currency.component.mjs +8 -1
  227. package/components/input/currency/fesm2022/index.mjs +7 -0
  228. package/components/input/currency/fesm2022/index.mjs.map +1 -1
  229. package/components/input/dataset-aware-form/bundles/index.umd.js +26 -2
  230. package/components/input/dataset-aware-form/esm2022/dataset-aware-form.component.mjs +27 -3
  231. package/components/input/dataset-aware-form/fesm2022/index.mjs +26 -2
  232. package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -1
  233. package/components/input/epoch/date/bundles/index.umd.js +22 -0
  234. package/components/input/epoch/date/date.component.d.ts +1 -0
  235. package/components/input/epoch/date/esm2022/date.component.mjs +23 -1
  236. package/components/input/epoch/date/fesm2022/index.mjs +22 -0
  237. package/components/input/epoch/date/fesm2022/index.mjs.map +1 -1
  238. package/components/input/file-upload/bundles/index.umd.js +25 -8
  239. package/components/input/file-upload/esm2022/file-upload.component.mjs +26 -9
  240. package/components/input/file-upload/fesm2022/index.mjs +25 -8
  241. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  242. package/components/input/file-upload/file-upload.component.d.ts +3 -0
  243. package/components/input/number/bundles/index.umd.js +8 -0
  244. package/components/input/number/esm2022/number.component.mjs +9 -1
  245. package/components/input/number/fesm2022/index.mjs +8 -0
  246. package/components/input/number/fesm2022/index.mjs.map +1 -1
  247. package/components/input/number/number.component.d.ts +3 -2
  248. package/components/input/radioset/bundles/index.umd.js +18 -2
  249. package/components/input/radioset/esm2022/radioset.component.mjs +19 -3
  250. package/components/input/radioset/fesm2022/index.mjs +18 -2
  251. package/components/input/radioset/fesm2022/index.mjs.map +1 -1
  252. package/components/input/radioset/radioset.component.d.ts +4 -2
  253. package/components/input/rating/bundles/index.umd.js +10 -0
  254. package/components/input/rating/esm2022/rating.component.mjs +11 -1
  255. package/components/input/rating/fesm2022/index.mjs +10 -0
  256. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  257. package/components/input/rating/rating.component.d.ts +3 -2
  258. package/components/input/select/bundles/index.umd.js +6 -0
  259. package/components/input/select/esm2022/select.component.mjs +7 -1
  260. package/components/input/select/fesm2022/index.mjs +6 -0
  261. package/components/input/select/fesm2022/index.mjs.map +1 -1
  262. package/components/input/select/select.component.d.ts +3 -2
  263. package/components/input/slider/bundles/index.umd.js +10 -0
  264. package/components/input/slider/esm2022/slider.component.mjs +11 -1
  265. package/components/input/slider/fesm2022/index.mjs +10 -0
  266. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  267. package/components/input/slider/slider.component.d.ts +3 -2
  268. package/components/input/switch/bundles/index.umd.js +22 -2
  269. package/components/input/switch/esm2022/switch.component.mjs +23 -3
  270. package/components/input/switch/fesm2022/index.mjs +22 -2
  271. package/components/input/switch/fesm2022/index.mjs.map +1 -1
  272. package/components/input/switch/switch.component.d.ts +3 -2
  273. package/components/input/text/bundles/index.umd.js +36 -0
  274. package/components/input/text/esm2022/input-calendar/input-calendar.component.mjs +8 -1
  275. package/components/input/text/esm2022/input-color/input-color.component.mjs +8 -1
  276. package/components/input/text/esm2022/input-email/input-email.component.mjs +8 -1
  277. package/components/input/text/esm2022/input-number/input-number.component.mjs +8 -1
  278. package/components/input/text/esm2022/input-text/input-text.component.mjs +9 -1
  279. package/components/input/text/fesm2022/index.mjs +36 -0
  280. package/components/input/text/fesm2022/index.mjs.map +1 -1
  281. package/components/input/text/input-calendar/input-calendar.component.d.ts +3 -2
  282. package/components/input/text/input-color/input-color.component.d.ts +3 -2
  283. package/components/input/text/input-email/input-email.component.d.ts +3 -2
  284. package/components/input/text/input-number/input-number.component.d.ts +3 -2
  285. package/components/input/text/input-text/input-text.component.d.ts +3 -2
  286. package/components/input/textarea/bundles/index.umd.js +7 -0
  287. package/components/input/textarea/esm2022/textarea.component.mjs +8 -1
  288. package/components/input/textarea/fesm2022/index.mjs +7 -0
  289. package/components/input/textarea/fesm2022/index.mjs.map +1 -1
  290. package/components/input/textarea/textarea.component.d.ts +3 -2
  291. package/components/navigation/menu/bundles/index.umd.js +55 -6
  292. package/components/navigation/menu/esm2022/menu-adapator.component.mjs +17 -3
  293. package/components/navigation/menu/esm2022/menu.component.mjs +10 -3
  294. package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +6 -1
  295. package/components/navigation/menu/esm2022/nav/nav.component.mjs +11 -1
  296. package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +16 -3
  297. package/components/navigation/menu/fesm2022/index.mjs +55 -6
  298. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  299. package/components/navigation/menu/menu-adapator.component.d.ts +4 -2
  300. package/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +3 -2
  301. package/components/navigation/menu/nav/nav.component.d.ts +3 -2
  302. package/components/navigation/menu/nav/navigation-control.directive.d.ts +4 -2
  303. package/components/navigation/navbar/bundles/index.umd.js +5 -0
  304. package/components/navigation/navbar/esm2022/navbar.component.mjs +6 -1
  305. package/components/navigation/navbar/fesm2022/index.mjs +5 -0
  306. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  307. package/components/navigation/navbar/navbar.component.d.ts +3 -2
  308. package/components/navigation/popover/bundles/index.umd.js +65 -13
  309. package/components/navigation/popover/esm2022/popover.component.mjs +63 -11
  310. package/components/navigation/popover/fesm2022/index.mjs +62 -10
  311. package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  312. package/components/navigation/popover/popover.component.d.ts +11 -3
  313. package/components/page/default/bundles/index.umd.js +20 -2
  314. package/components/page/default/esm2022/layout.directive.mjs +9 -1
  315. package/components/page/default/esm2022/page-content/page-content.component.mjs +13 -3
  316. package/components/page/default/fesm2022/index.mjs +20 -2
  317. package/components/page/default/fesm2022/index.mjs.map +1 -1
  318. package/components/page/default/layout.directive.d.ts +3 -2
  319. package/components/page/default/page-content/page-content.component.d.ts +3 -2
  320. package/components/page/left-panel/bundles/index.umd.js +16 -0
  321. package/components/page/left-panel/esm2022/left-panel.directive.mjs +17 -1
  322. package/components/page/left-panel/fesm2022/index.mjs +16 -0
  323. package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  324. package/components/page/left-panel/left-panel.directive.d.ts +3 -2
  325. package/components/page/top-nav/bundles/index.umd.js +2 -1
  326. package/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
  327. package/components/page/top-nav/fesm2022/index.mjs +2 -1
  328. package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  329. package/components/prefab/bundles/index.umd.js +4 -0
  330. package/components/prefab/esm2022/prefab.directive.mjs +5 -1
  331. package/components/prefab/fesm2022/index.mjs +4 -0
  332. package/components/prefab/fesm2022/index.mjs.map +1 -1
  333. package/core/bundles/index.umd.js +391 -94
  334. package/core/esm2022/public_api.mjs +3 -3
  335. package/core/esm2022/services/viewport.service.mjs +24 -10
  336. package/core/esm2022/types/types.mjs +1 -1
  337. package/core/esm2022/utils/dom.mjs +18 -2
  338. package/core/esm2022/utils/event-notifier.mjs +5 -2
  339. package/core/esm2022/utils/lru-cache.mjs +16 -2
  340. package/core/esm2022/utils/utils.mjs +6 -2
  341. package/core/esm2022/utils/watcher.mjs +323 -81
  342. package/core/fesm2022/index.mjs +390 -96
  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 +5 -2
  346. package/core/types/types.d.ts +1 -0
  347. package/core/utils/lru-cache.d.ts +6 -0
  348. package/core/utils/utils.d.ts +1 -0
  349. package/core/utils/watcher.d.ts +26 -5
  350. package/http/bundles/index.umd.js +31 -1
  351. package/http/esm2022/http.service.mjs +32 -2
  352. package/http/fesm2022/index.mjs +31 -1
  353. package/http/fesm2022/index.mjs.map +1 -1
  354. package/http/http.service.d.ts +6 -2
  355. package/npm-shrinkwrap.json +2 -2
  356. package/oAuth/bundles/index.umd.js +9 -0
  357. package/oAuth/esm2022/oAuth.service.mjs +10 -1
  358. package/oAuth/fesm2022/index.mjs +9 -0
  359. package/oAuth/fesm2022/index.mjs.map +1 -1
  360. package/oAuth/oAuth.service.d.ts +3 -1
  361. package/package-lock.json +2 -2
  362. package/package.json +1 -1
  363. package/runtime/base/bundles/index.umd.js +364 -30
  364. package/runtime/base/components/app-component/app.component.d.ts +4 -0
  365. package/runtime/base/components/prefab-preview.component.d.ts +5 -2
  366. package/runtime/base/directives/accessroles.directive.d.ts +4 -3
  367. package/runtime/base/directives/prefab.directive.d.ts +3 -2
  368. package/runtime/base/esm2022/components/app-component/app.component.mjs +40 -9
  369. package/runtime/base/esm2022/components/base-custom-widget.component.mjs +33 -2
  370. package/runtime/base/esm2022/components/base-layout.component.mjs +7 -1
  371. package/runtime/base/esm2022/components/base-page.component.mjs +36 -3
  372. package/runtime/base/esm2022/components/base-partial.component.mjs +37 -3
  373. package/runtime/base/esm2022/components/base-prefab.component.mjs +32 -3
  374. package/runtime/base/esm2022/components/base-spa-page.component.mjs +37 -3
  375. package/runtime/base/esm2022/components/prefab-preview.component.mjs +23 -4
  376. package/runtime/base/esm2022/directives/accessroles.directive.mjs +11 -2
  377. package/runtime/base/esm2022/directives/prefab.directive.mjs +9 -1
  378. package/runtime/base/esm2022/services/app.manager.service.mjs +37 -10
  379. package/runtime/base/esm2022/services/app.service.mjs +34 -2
  380. package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +4 -1
  381. package/runtime/base/esm2022/services/pipe-provider.service.mjs +7 -4
  382. package/runtime/base/esm2022/services/spinner.service.mjs +15 -1
  383. package/runtime/base/esm2022/util/fragment-monitor.mjs +23 -2
  384. package/runtime/base/fesm2022/index.mjs +365 -31
  385. package/runtime/base/fesm2022/index.mjs.map +1 -1
  386. package/runtime/base/services/app.manager.service.d.ts +6 -1
  387. package/runtime/base/services/app.service.d.ts +12 -2
  388. package/runtime/base/services/dynamic-component-ref-provider.service.d.ts +2 -1
  389. package/runtime/base/services/spinner.service.d.ts +3 -1
  390. package/runtime/base/util/fragment-monitor.d.ts +6 -0
  391. package/runtime/dynamic/bundles/index.umd.js +5 -0
  392. package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +6 -1
  393. package/runtime/dynamic/fesm2022/index.mjs +5 -0
  394. package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  395. package/scripts/datatable/datatable.js +100 -14
  396. package/security/bundles/index.umd.js +41 -2
  397. package/security/esm2022/security.service.mjs +42 -3
  398. package/security/fesm2022/index.mjs +41 -2
  399. package/security/fesm2022/index.mjs.map +1 -1
  400. package/security/security.service.d.ts +5 -2
  401. package/variables/bundles/index.umd.js +50 -6
  402. package/variables/esm2022/manager/action/notification-action.manager.mjs +18 -3
  403. package/variables/esm2022/manager/variable/base-variable.manager.mjs +15 -2
  404. package/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +13 -3
  405. package/variables/esm2022/service/variables.service.mjs +8 -2
  406. package/variables/fesm2022/index.mjs +50 -6
  407. package/variables/fesm2022/index.mjs.map +1 -1
@@ -176,8 +176,15 @@ class TableComponent extends StylableComponent {
176
176
  this.setDataGridOption('colDefs', getClonedObject(this.fieldDefs));
177
177
  }
178
178
  // If data and colDefs are present, call on before data render event
179
+ // Note: Errors in beforedatarender should not prevent table rendering
179
180
  if (!this.isdynamictable && !isEmpty(newValue) && gridOptions.colDefs.length) {
180
- this.invokeEventCallback('beforedatarender', { $data: this._gridData, $columns: this.columns, data: this._gridData, columns: this.columns });
181
+ try {
182
+ this.invokeEventCallback('beforedatarender', { $data: this._gridData, $columns: this.columns, data: this._gridData, columns: this.columns });
183
+ }
184
+ catch (error) {
185
+ // Log error but continue with rendering - beforedatarender errors should not block table rendering
186
+ console.warn('Error in beforedatarender event callback, continuing with table rendering:', error);
187
+ }
181
188
  }
182
189
  this.setDataGridOption('data', getClonedObject(this._gridData));
183
190
  }
@@ -570,7 +577,7 @@ class TableComponent extends StylableComponent {
570
577
  this.prevData = getClonedObject(row);
571
578
  },
572
579
  afterRowUpdate: (row, e, callBack, options) => {
573
- this.updateRecord(extend({}, options, { row, 'prevData': this.prevData, 'event': e, 'callBack': callBack }));
580
+ this.updateRecord(extend({}, options, { row, 'prevData': options.rowindex ? options.rowindex : this.prevData, 'event': e, 'callBack': callBack }));
574
581
  },
575
582
  onBeforeRowUpdate: (row, e, options) => {
576
583
  return this.invokeEventCallback('beforerowupdate', { $event: e, $data: row, row, options: options });
@@ -1224,6 +1231,10 @@ class TableComponent extends StylableComponent {
1224
1231
  return this.actualPageSize || 5;
1225
1232
  }
1226
1233
  watchVariableDataSet(newVal) {
1234
+ // Guard against component destruction
1235
+ if (this.isDestroyed) {
1236
+ return;
1237
+ }
1227
1238
  let result;
1228
1239
  // Check for Variable filters if applied
1229
1240
  if (this.gridOptions.isNavTypeScrollOrOndemand()) {
@@ -1281,6 +1292,12 @@ class TableComponent extends StylableComponent {
1281
1292
  }
1282
1293
  /*Return if data is invalid.*/
1283
1294
  if (!this.isDataValid()) {
1295
+ // If data is invalid and variableInflight is still true, clear loading state
1296
+ // This prevents tables from getting stuck in loading when data is invalid
1297
+ if (this.variableInflight) {
1298
+ this.variableInflight = false;
1299
+ this.setGridData([]);
1300
+ }
1284
1301
  return;
1285
1302
  }
1286
1303
  // If value is empty or in studio mode, dont enable the navigation
@@ -1308,7 +1325,13 @@ class TableComponent extends StylableComponent {
1308
1325
  // @ts-ignore
1309
1326
  if (!isObject(newVal) || newVal === '' || (newVal && newVal.dataValue === '')) {
1310
1327
  if (!this.variableInflight) {
1311
- // If variable has finished loading and resultSet is empty, ender empty data
1328
+ // If variable has finished loading and resultSet is empty, render empty data
1329
+ this.setGridData([]);
1330
+ }
1331
+ else {
1332
+ // If variableInflight is still true but we have invalid/empty data, clear loading state
1333
+ // This handles cases where data never arrives or is invalid
1334
+ this.variableInflight = false;
1312
1335
  this.setGridData([]);
1313
1336
  }
1314
1337
  return;
@@ -1318,13 +1341,117 @@ class TableComponent extends StylableComponent {
1318
1341
  }
1319
1342
  }
1320
1343
  ngOnDestroy() {
1344
+ // MEMORY LEAK FIX: Remove document click listener
1321
1345
  document.removeEventListener('click', this.documentClickBind);
1346
+ // MEMORY LEAK FIX: Unsubscribe from navigator watches
1322
1347
  if (this.navigatorResultWatch) {
1323
1348
  this.navigatorResultWatch.unsubscribe();
1349
+ this.navigatorResultWatch = null;
1324
1350
  }
1325
1351
  if (this.navigatorMaxResultWatch) {
1326
1352
  this.navigatorMaxResultWatch.unsubscribe();
1353
+ this.navigatorMaxResultWatch = null;
1354
+ }
1355
+ // MEMORY LEAK FIX: Clear all ViewContainerRef embedded views
1356
+ // These hold references to row data, custom expressions, and inline widgets
1357
+ if (this.customExprViewRef) {
1358
+ this.customExprViewRef.clear();
1359
+ }
1360
+ if (this.rowActionsViewRef) {
1361
+ this.rowActionsViewRef.clear();
1362
+ }
1363
+ if (this.filterViewRef) {
1364
+ this.filterViewRef.clear();
1327
1365
  }
1366
+ if (this.inlineEditViewRef) {
1367
+ this.inlineEditViewRef.clear();
1368
+ }
1369
+ if (this.inlineEditNewViewRef) {
1370
+ this.inlineEditNewViewRef.clear();
1371
+ }
1372
+ if (this.rowDetailViewRef) {
1373
+ this.rowDetailViewRef.clear();
1374
+ }
1375
+ if (this.rowExpansionActionViewRef) {
1376
+ this.rowExpansionActionViewRef.clear();
1377
+ }
1378
+ if (this.dynamicTableRef) {
1379
+ this.dynamicTableRef.clear();
1380
+ }
1381
+ // MEMORY LEAK FIX: Clear compiled template caches
1382
+ this.rowActionsCompiledTl = {};
1383
+ this.rowFilterCompliedTl = {};
1384
+ this.inlineCompliedTl = {};
1385
+ this.inlineNewCompliedTl = {};
1386
+ this.customExprCompiledTl = {};
1387
+ this.customExprCompiledSummaryTl = {};
1388
+ this.rowDefInstances = {};
1389
+ this.rowDefMap = {};
1390
+ this.rowExpansionActionTl = {};
1391
+ // MEMORY LEAK FIX: Clear dynamic context
1392
+ if (this._dynamicContext) {
1393
+ Object.keys(this._dynamicContext).forEach(key => {
1394
+ delete this._dynamicContext[key];
1395
+ });
1396
+ this._dynamicContext = null;
1397
+ }
1398
+ // MEMORY LEAK FIX: Clear data arrays
1399
+ this._gridData = [];
1400
+ this.items = [];
1401
+ this.selectedItems = [];
1402
+ this.fieldDefs = [];
1403
+ this.fullFieldDefs = [];
1404
+ this.gridData = [];
1405
+ this.__fullData = null;
1406
+ // MEMORY LEAK FIX: Destroy jQuery datatable widget before clearing gridOptions
1407
+ if (this.datagridElement && this.datagridElement.datatable) {
1408
+ try {
1409
+ this.datagridElement.datatable('destroy');
1410
+ }
1411
+ catch (e) {
1412
+ // Ignore errors during destroy
1413
+ }
1414
+ }
1415
+ // MEMORY LEAK FIX: Clear other data structures
1416
+ this.columns = {};
1417
+ this.formfields = {};
1418
+ this.rowFilter = {};
1419
+ this.actions = [];
1420
+ this._actions = { header: [], footer: [] };
1421
+ this.exportOptions = [];
1422
+ this.headerConfig = [];
1423
+ this.rowActions = [];
1424
+ // MEMORY LEAK FIX: Clear all @ContentChildren QueryLists holding template references
1425
+ // These QueryLists hold TemplateRef instances that create circular references to the parent LView
1426
+ if (this.rowActionTmpl) {
1427
+ this.rowActionTmpl.reset([]);
1428
+ }
1429
+ if (this.filterTmpl) {
1430
+ this.filterTmpl.reset([]);
1431
+ }
1432
+ if (this.inlineWidgetTmpl) {
1433
+ this.inlineWidgetTmpl.reset([]);
1434
+ }
1435
+ if (this.inlineWidgetNewTmpl) {
1436
+ this.inlineWidgetNewTmpl.reset([]);
1437
+ }
1438
+ if (this.customExprTmpl) {
1439
+ this.customExprTmpl.reset([]);
1440
+ }
1441
+ if (this.rowExpansionActionTmpl) {
1442
+ this.rowExpansionActionTmpl.reset([]);
1443
+ }
1444
+ // MEMORY LEAK FIX: Clear @ContentChild template reference
1445
+ this.rowExpansionTmpl = null;
1446
+ // MEMORY LEAK FIX: Complete and clear subjects
1447
+ if (this.selectedItemChange) {
1448
+ this.selectedItemChange.complete();
1449
+ this.selectedItemChange = null;
1450
+ }
1451
+ // MEMORY LEAK FIX: Clear ViewChild references
1452
+ this.dataNavigator = null;
1453
+ this._tableElement = null;
1454
+ // console.log("table component destroyed");
1328
1455
  super.ngOnDestroy();
1329
1456
  }
1330
1457
  addRowIndex(row) {
@@ -1395,6 +1522,9 @@ class TableComponent extends StylableComponent {
1395
1522
  if (!key.endsWith('_filter') && ((key.endsWith('_new') && newRow) || (!key.endsWith('_new') && !newRow))) {
1396
1523
  ctrls[key].setValue('');
1397
1524
  this.resetFormControl(ctrls[key]);
1525
+ // MEMORY LEAK FIX: Clear validators to release references
1526
+ ctrls[key].clearValidators();
1527
+ ctrls[key].clearAsyncValidators();
1398
1528
  }
1399
1529
  });
1400
1530
  }
@@ -1714,7 +1844,14 @@ class TableComponent extends StylableComponent {
1714
1844
  defaultFieldDefs.forEach(col => {
1715
1845
  this.columns[col.field] = col;
1716
1846
  });
1717
- this.invokeEventCallback('beforedatarender', { $data: data, $columns: this.columns, data: data, columns: this.columns });
1847
+ // Note: Errors in beforedatarender should not prevent table rendering
1848
+ try {
1849
+ this.invokeEventCallback('beforedatarender', { $data: data, $columns: this.columns, data: data, columns: this.columns });
1850
+ }
1851
+ catch (error) {
1852
+ // Log error but continue with rendering - beforedatarender errors should not block table rendering
1853
+ console.warn('Error in beforedatarender event callback, continuing with table rendering:', error);
1854
+ }
1718
1855
  defaultFieldDefs = [];
1719
1856
  // Apply the changes made by the user
1720
1857
  forEach(this.columns, val => {
@@ -1753,23 +1890,30 @@ class TableComponent extends StylableComponent {
1753
1890
  return sortExp || '';
1754
1891
  }
1755
1892
  onPropertyChange(key, nv, ov) {
1893
+ // Guard against property changes after component destruction
1894
+ if (this.isDestroyed) {
1895
+ return;
1896
+ }
1756
1897
  let enableNewRow, widgetState;
1757
1898
  switch (key) {
1758
1899
  case 'datasource':
1759
1900
  // Fix for [WMS-23653] when startUpdate is false (request on page load property is unchecked),
1760
1901
  // then set status msg as "No data found"
1761
- if (this.allowpagesizechange) {
1902
+ if (this.allowpagesizechange && this.datasource) {
1762
1903
  this.datasource.maxResults = this.pagesize || this.datasource.maxResults;
1763
1904
  }
1764
- if (nv.startUpdate === false) {
1905
+ if (nv && nv.startUpdate === false) {
1765
1906
  this.variableInflight = false;
1766
1907
  this.callDataGridMethod('setStatus', 'nodata', this.nodatamessage);
1767
1908
  }
1768
- if (get(this.datasource, 'category') !== 'wm.Variable') {
1909
+ if (this.datasource && get(this.datasource, 'category') !== 'wm.Variable') {
1769
1910
  this.headerselectall = false;
1770
1911
  this.setDataGridOption("headerselectall", false);
1771
1912
  }
1772
- this.watchVariableDataSet(this.dataset);
1913
+ // Process dataset when datasource is set, especially if dataset was previously skipped
1914
+ if (this.datasource && this.dataset !== undefined) {
1915
+ this.watchVariableDataSet(this.dataset);
1916
+ }
1773
1917
  this.onDataSourceChange();
1774
1918
  break;
1775
1919
  case 'dataset':
@@ -1777,6 +1921,12 @@ class TableComponent extends StylableComponent {
1777
1921
  this.gridOptions.setIsNextPageData(false);
1778
1922
  }
1779
1923
  if (this.binddatasource && !this.datasource) {
1924
+ // If datasource is not set yet, clear loading state and show no data
1925
+ // This prevents tables from being stuck in loading state
1926
+ if (this.variableInflight) {
1927
+ this.variableInflight = false;
1928
+ this.callDataGridMethod('setStatus', 'nodata', this.nodatamessage);
1929
+ }
1780
1930
  return;
1781
1931
  }
1782
1932
  // if table is inside list then table dataset will be set as "item.XXX" and there is no datasource.
@@ -2488,7 +2638,7 @@ class TableCUDDirective {
2488
2638
  this.updateVariable(response, options.callBack);
2489
2639
  }
2490
2640
  else if (!this.table.datasource.execute(DataSource.Operation.IS_API_AWARE)) {
2491
- this.table.initiateSelectItem('current', response, undefined, false, options.callBack);
2641
+ this.table.initiateSelectItem('current', response, undefined, this.table.datasource.category === 'wm.Variable', options.callBack);
2492
2642
  }
2493
2643
  triggerFn(options.success, response);
2494
2644
  this.table.invokeEventCallback('rowupdate', { $event: options.event, $data: response, row: response });
@@ -2738,6 +2888,12 @@ class TableCUDDirective {
2738
2888
  this.table.callDataGridMethod('cancelEdit', $row);
2739
2889
  }
2740
2890
  }
2891
+ ngOnDestroy() {
2892
+ // MEMORY LEAK FIX: Clear all references
2893
+ this.table = null;
2894
+ this.dialogService = null;
2895
+ this.app = null;
2896
+ }
2741
2897
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableCUDDirective, deps: [{ token: TableComponent, self: true }, { token: i2.AbstractDialogService }, { token: i2.App }], target: i0.ɵɵFactoryTarget.Directive }); }
2742
2898
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableCUDDirective, isStandalone: true, selector: "[wmTableCUD]", ngImport: i0 }); }
2743
2899
  }
@@ -3050,6 +3206,12 @@ class TableFilterSortDirective {
3050
3206
  // Function that checks if a given string is a valid date and returns the timestamp if it is, or NaN if it's not.
3051
3207
  parseDateString(dateString) {
3052
3208
  const timestamp = Date.parse(dateString);
3209
+ // handling case when string starts with string and end with number
3210
+ const trimmed = dateString.trim();
3211
+ const monthRegex = /\b(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:t(?:ember)?)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\b/i;
3212
+ if (/^[A-Za-z]+/.test(trimmed) && /\d+$/.test(trimmed) && !monthRegex.test(trimmed)) {
3213
+ return NaN;
3214
+ }
3053
3215
  if (!isNaN(timestamp)) {
3054
3216
  return timestamp;
3055
3217
  }
@@ -3065,7 +3227,7 @@ class TableFilterSortDirective {
3065
3227
  const fieldValue = get(find(data, sortObj.field), sortObj.field);
3066
3228
  const isValidDateString = typeof fieldValue === 'string' ? this.parseDateString(fieldValue) : NaN;
3067
3229
  if (!isNaN(isValidDateString)) { // if the field is a date string
3068
- data = orderBy(data, [(item) => this.parseDateString(item[sortObj.field])], [sortObj.direction]);
3230
+ data = orderBy(data, [(item) => this.parseDateString(get(item, sortObj.field))], [sortObj.direction]);
3069
3231
  }
3070
3232
  else if (sortObj.sortBy ? this.table.columns[sortObj.sortBy]?.caseinsensitive : this.table.columns[sortObj.field]?.caseinsensitive) {
3071
3233
  //Fix for [WMS-27505]: Added case-insensitive sorting so that uppercase and lowercase letters are treated the same when sorting.
@@ -3427,6 +3589,10 @@ class TableFilterSortDirective {
3427
3589
  condition: logicalOp
3428
3590
  });
3429
3591
  }
3592
+ ngOnDestroy() {
3593
+ // MEMORY LEAK FIX: Clear table reference
3594
+ this.table = null;
3595
+ }
3430
3596
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableFilterSortDirective, deps: [{ token: TableComponent, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
3431
3597
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableFilterSortDirective, isStandalone: true, selector: "[wmTableFilterSort]", ngImport: i0 }); }
3432
3598
  }
@@ -3513,6 +3679,13 @@ class TableActionDirective extends BaseComponent {
3513
3679
  this.buttonDef[key] = nv;
3514
3680
  }
3515
3681
  }
3682
+ ngOnDestroy() {
3683
+ // MEMORY LEAK FIX: Clear table and buttonDef references
3684
+ this.table = null;
3685
+ this.buttonDef = null;
3686
+ // Call parent ngOnDestroy (BaseComponent has cleanup)
3687
+ super.ngOnDestroy();
3688
+ }
3516
3689
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableActionDirective, deps: [{ token: i0.Injector }, { token: TableComponent, optional: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
3517
3690
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableActionDirective, isStandalone: true, selector: "[wmTableAction]", providers: [
3518
3691
  provideAsWidgetRef(TableActionDirective)
@@ -3677,6 +3850,14 @@ class TableColumnGroupDirective extends BaseComponent {
3677
3850
  const fieldName = this.group && this.group.name;
3678
3851
  setHeaderConfigForTable(this.table.headerConfig, this.config, fieldName, fieldName ? colIndex : headerIndex);
3679
3852
  }
3853
+ ngOnDestroy() {
3854
+ // MEMORY LEAK FIX: Clear table, group, and config references
3855
+ this.table = null;
3856
+ this.group = null;
3857
+ this.config = null;
3858
+ // Call parent ngOnDestroy (BaseComponent has cleanup)
3859
+ super.ngOnDestroy();
3860
+ }
3680
3861
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableColumnGroupDirective, deps: [{ token: i0.Injector }, { token: TableColumnGroupDirective, optional: true, skipSelf: true }, { token: TableComponent, optional: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
3681
3862
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableColumnGroupDirective, isStandalone: true, selector: "[wmTableColumnGroup]", providers: [
3682
3863
  provideAsWidgetRef(TableColumnGroupDirective)
@@ -3871,6 +4052,10 @@ class TableColumnDirective extends BaseComponent {
3871
4052
  }
3872
4053
  // Remove validators for the inline widget and set form to untouched
3873
4054
  removeValidations() {
4055
+ // Guard against component destruction or table/ngform being null
4056
+ if (this.isDestroyed || !this.table || !this.table.ngform) {
4057
+ return;
4058
+ }
3874
4059
  this.table.ngform.markAsUntouched();
3875
4060
  const control = this.getFormControl();
3876
4061
  if (!control) {
@@ -3882,6 +4067,10 @@ class TableColumnDirective extends BaseComponent {
3882
4067
  }
3883
4068
  // Apply default|sync|async|prop validators for QuickEdit new row form control
3884
4069
  applyNewRowValidations() {
4070
+ // Guard against component destruction or table/ngform being null
4071
+ if (this.isDestroyed || !this.table || !this.table.ngform) {
4072
+ return;
4073
+ }
3885
4074
  if (!this._checkNewEditableRowControl()) {
3886
4075
  return;
3887
4076
  }
@@ -3898,22 +4087,37 @@ class TableColumnDirective extends BaseComponent {
3898
4087
  }
3899
4088
  // Remove validators for the QuickEdit new row widget and set form to untouched
3900
4089
  removeNewRowValidations() {
4090
+ // Guard against component destruction or table/ngform being null
4091
+ if (this.isDestroyed || !this.table || !this.table.ngform) {
4092
+ return;
4093
+ }
3901
4094
  this.table.ngform.markAsUntouched();
3902
4095
  if (!this._checkNewEditableRowControl()) {
3903
4096
  return;
3904
4097
  }
3905
4098
  const control = this.getFormControl('_new');
4099
+ if (!control) {
4100
+ return;
4101
+ }
3906
4102
  control.clearValidators();
3907
4103
  control.clearAsyncValidators();
3908
4104
  control.updateValueAndValidity();
3909
4105
  }
3910
4106
  addFormControl(suffix) {
4107
+ // Guard against component destruction or table/ngform being null
4108
+ if (this.isDestroyed || !this.table || !this.table.ngform) {
4109
+ return;
4110
+ }
3911
4111
  const ctrlName = suffix ? (this.binding + suffix) : this.binding;
3912
4112
  this.table.ngform.addControl(ctrlName, this.table.fb.control(''));
3913
4113
  }
3914
4114
  getFormControl(suffix) {
4115
+ // Guard against component destruction or table/ngform being null
4116
+ if (this.isDestroyed || !this.table || !this.table.ngform) {
4117
+ return null;
4118
+ }
3915
4119
  const ctrlName = suffix ? (this.binding + suffix) : this.binding;
3916
- return this.table.ngform.controls[ctrlName];
4120
+ return this.table.ngform.controls[ctrlName] || null;
3917
4121
  }
3918
4122
  _checkNewEditableRowControl() {
3919
4123
  return this._isNewEditableRow && this.getFormControl('_new');
@@ -3987,12 +4191,16 @@ class TableColumnDirective extends BaseComponent {
3987
4191
  }
3988
4192
  // On field value change, apply cascading filter and set validation message
3989
4193
  onValueChange(val, widget) {
4194
+ // Guard against component destruction or table being null
4195
+ if (this.isDestroyed || !this.table) {
4196
+ return;
4197
+ }
3990
4198
  if (val !== null) {
3991
4199
  applyFilterOnField(this.table.datasource, this.widget, this.table.fieldDefs, val, {
3992
4200
  widget: 'edit-widget-type'
3993
4201
  });
3994
4202
  }
3995
- if (this.table.ngform.touched) {
4203
+ if (this.table.ngform && this.table.ngform.touched) {
3996
4204
  this.activeControlType = widget;
3997
4205
  if (widget === 'inlineInstance') {
3998
4206
  this.notifyChanges();
@@ -4283,6 +4491,83 @@ class TableColumnDirective extends BaseComponent {
4283
4491
  this.table.redraw(true);
4284
4492
  }
4285
4493
  }
4494
+ ngOnDestroy() {
4495
+ // MEMORY LEAK FIX: Clear ContentChildren QueryLists
4496
+ if (this._filterInstances) {
4497
+ try {
4498
+ this._filterInstances.reset([]);
4499
+ }
4500
+ catch (e) {
4501
+ // Silently handle cleanup errors - QueryList might already be destroyed
4502
+ }
4503
+ }
4504
+ if (this._inlineInstances) {
4505
+ try {
4506
+ this._inlineInstances.reset([]);
4507
+ }
4508
+ catch (e) {
4509
+ // Silently handle cleanup errors - QueryList might already be destroyed
4510
+ }
4511
+ }
4512
+ if (this._inlineInstancesNew) {
4513
+ try {
4514
+ this._inlineInstancesNew.reset([]);
4515
+ }
4516
+ catch (e) {
4517
+ // Silently handle cleanup errors - QueryList might already be destroyed
4518
+ }
4519
+ }
4520
+ // MEMORY LEAK FIX: Clear all widget instance references
4521
+ this.filterInstance = null;
4522
+ this.inlineInstance = null;
4523
+ this.inlineInstanceNew = null;
4524
+ // MEMORY LEAK FIX: Clear template references
4525
+ this.customExprTmpl = null;
4526
+ this.inlineWidthTempRef = null;
4527
+ this.filterTemplateRef = null;
4528
+ // MEMORY LEAK FIX: Clear dataset references
4529
+ this._filterDataSet = null;
4530
+ this.dataset = null;
4531
+ this._dataoptions = null;
4532
+ this._datasource = null;
4533
+ // MEMORY LEAK FIX: Clear validation objects
4534
+ if (this.fieldValidations) {
4535
+ try {
4536
+ this.fieldValidations.destroy();
4537
+ }
4538
+ catch (e) {
4539
+ // Silently handle cleanup errors
4540
+ }
4541
+ this.fieldValidations = null;
4542
+ }
4543
+ if (this.fieldValidations_new) {
4544
+ try {
4545
+ this.fieldValidations_new.destroy();
4546
+ }
4547
+ catch (e) {
4548
+ // Silently handle cleanup errors
4549
+ }
4550
+ this.fieldValidations_new = null;
4551
+ }
4552
+ this.syncValidators = [];
4553
+ this.asyncValidators = [];
4554
+ // MEMORY LEAK FIX: Clear filter control reference
4555
+ this.filterControl = null;
4556
+ // MEMORY LEAK FIX: Clear notify fields array
4557
+ if (this.notifyForFields) {
4558
+ this.notifyForFields = [];
4559
+ }
4560
+ // MEMORY LEAK FIX: Clear observe fields array
4561
+ if (this.observeOnFields) {
4562
+ this.observeOnFields = [];
4563
+ }
4564
+ // MEMORY LEAK FIX: Clear table and group references
4565
+ // Note: These are injected dependencies, but clearing helps GC
4566
+ this.table = null;
4567
+ this.group = null;
4568
+ // Call parent ngOnDestroy
4569
+ super.ngOnDestroy();
4570
+ }
4286
4571
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableColumnDirective, deps: [{ token: i0.Injector }, { token: i2.AppDefaults }, { token: TableComponent, optional: true }, { token: TableColumnGroupDirective, optional: true }, { token: 'filterdataset.bind', attribute: true }, { token: 'dataset.bind', attribute: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
4287
4572
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableColumnDirective, isStandalone: true, selector: "[wmTableColumn]", providers: [
4288
4573
  provideAsWidgetRef(TableColumnDirective)
@@ -4377,6 +4662,13 @@ class TableRowDirective extends BaseComponent {
4377
4662
  this.config.content = this.content;
4378
4663
  }
4379
4664
  }
4665
+ ngOnDestroy() {
4666
+ // MEMORY LEAK FIX: Clear table and config references
4667
+ this.table = null;
4668
+ this.config = null;
4669
+ // Call parent ngOnDestroy (BaseComponent has cleanup)
4670
+ super.ngOnDestroy();
4671
+ }
4380
4672
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableRowDirective, deps: [{ token: i0.Injector }, { token: TableComponent, optional: true, skipSelf: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
4381
4673
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableRowDirective, isStandalone: true, selector: "[wmTableRow]", providers: [
4382
4674
  provideAsWidgetRef(TableRowDirective)
@@ -4458,6 +4750,13 @@ class TableRowActionDirective extends BaseComponent {
4458
4750
  this.populateAction();
4459
4751
  this.table.registerRowActions(this.buttonDef);
4460
4752
  }
4753
+ ngOnDestroy() {
4754
+ // MEMORY LEAK FIX: Clear table reference and button definition
4755
+ this.table = null;
4756
+ this.buttonDef = null;
4757
+ // Call parent ngOnDestroy (BaseComponent has cleanup)
4758
+ super.ngOnDestroy();
4759
+ }
4461
4760
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableRowActionDirective, deps: [{ token: i0.Injector }, { token: TableComponent, optional: true }, { token: Context, self: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
4462
4761
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableRowActionDirective, isStandalone: true, selector: "[wmTableRowAction]", providers: [
4463
4762
  provideAsWidgetRef(TableRowActionDirective),