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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (412) hide show
  1. package/components/advanced/carousel/bundles/index.umd.js +15 -1
  2. package/components/advanced/carousel/carousel.directive.d.ts +1 -0
  3. package/components/advanced/carousel/esm2022/carousel.directive.mjs +16 -2
  4. package/components/advanced/carousel/fesm2022/index.mjs +15 -1
  5. package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  6. package/components/advanced/login/bundles/index.umd.js +24 -3
  7. package/components/advanced/login/esm2022/login.component.mjs +25 -4
  8. package/components/advanced/login/fesm2022/index.mjs +24 -3
  9. package/components/advanced/login/fesm2022/index.mjs.map +1 -1
  10. package/components/advanced/login/login.component.d.ts +5 -2
  11. package/components/base/bundles/index.umd.js +331 -36
  12. package/components/base/directives/show-in-device.directive.d.ts +2 -1
  13. package/components/base/esm2022/directives/show-in-device.directive.mjs +22 -4
  14. package/components/base/esm2022/pipes/custom-pipes.mjs +10 -10
  15. package/components/base/esm2022/utils/widget-utils.mjs +3 -3
  16. package/components/base/esm2022/widgets/common/base/base-container.component.mjs +27 -1
  17. package/components/base/esm2022/widgets/common/base/base-field-validations.mjs +18 -1
  18. package/components/base/esm2022/widgets/common/base/base.component.mjs +68 -7
  19. package/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +9 -1
  20. package/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +44 -11
  21. package/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +20 -1
  22. package/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +26 -1
  23. package/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +44 -4
  24. package/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +16 -1
  25. package/components/base/esm2022/widgets/common/pull-to-refresh/pull-to-refresh.mjs +22 -1
  26. package/components/base/esm2022/widgets/framework/property-change-handler.mjs +7 -2
  27. package/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +5 -3
  28. package/components/base/esm2022/widgets/framework/widget-registry.mjs +6 -3
  29. package/components/base/fesm2022/index.mjs +327 -34
  30. package/components/base/fesm2022/index.mjs.map +1 -1
  31. package/components/base/pipes/custom-pipes.d.ts +5 -5
  32. package/components/base/widgets/common/base/base-container.component.d.ts +3 -2
  33. package/components/base/widgets/common/base/base-field-validations.d.ts +1 -0
  34. package/components/base/widgets/common/base/custom-widget-container.directive.d.ts +3 -2
  35. package/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +6 -2
  36. package/components/base/widgets/common/base/partial-container.directive.d.ts +3 -2
  37. package/components/base/widgets/common/item-template/item-template.directive.d.ts +3 -2
  38. package/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +1 -1
  39. package/components/base/widgets/common/partial-param/partial-param.directive.d.ts +3 -2
  40. package/components/base/widgets/common/pull-to-refresh/pull-to-refresh.d.ts +3 -2
  41. package/components/basic/anchor/bundles/index.umd.js +13 -1
  42. package/components/basic/anchor/esm2022/anchor.component.mjs +14 -2
  43. package/components/basic/anchor/fesm2022/index.mjs +13 -1
  44. package/components/basic/anchor/fesm2022/index.mjs.map +1 -1
  45. package/components/basic/html/bundles/index.umd.js +13 -1
  46. package/components/basic/html/esm2022/html.directive.mjs +14 -2
  47. package/components/basic/html/fesm2022/index.mjs +13 -1
  48. package/components/basic/html/fesm2022/index.mjs.map +1 -1
  49. package/components/basic/label/bundles/index.umd.js +17 -1
  50. package/components/basic/label/esm2022/label.directive.mjs +18 -2
  51. package/components/basic/label/fesm2022/index.mjs +17 -1
  52. package/components/basic/label/fesm2022/index.mjs.map +1 -1
  53. package/components/basic/label/label.directive.d.ts +3 -2
  54. package/components/basic/progress/progress-circle/bundles/index.umd.js +10 -0
  55. package/components/basic/progress/progress-circle/esm2022/progress-circle.component.mjs +11 -1
  56. package/components/basic/progress/progress-circle/fesm2022/index.mjs +10 -0
  57. package/components/basic/progress/progress-circle/fesm2022/index.mjs.map +1 -1
  58. package/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -2
  59. package/components/basic/search/bundles/index.umd.js +31 -5
  60. package/components/basic/search/esm2022/scrollable.directive.mjs +13 -4
  61. package/components/basic/search/esm2022/search.component.mjs +20 -3
  62. package/components/basic/search/fesm2022/index.mjs +31 -5
  63. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  64. package/components/basic/search/scrollable.directive.d.ts +5 -3
  65. package/components/basic/search/search.component.d.ts +3 -2
  66. package/components/basic/spinner/bundles/index.umd.js +9 -1
  67. package/components/basic/spinner/esm2022/spinner.component.mjs +10 -2
  68. package/components/basic/spinner/fesm2022/index.mjs +9 -1
  69. package/components/basic/spinner/fesm2022/index.mjs.map +1 -1
  70. package/components/basic/spinner/spinner.component.d.ts +4 -2
  71. package/components/chart/bundles/index.umd.js +21 -3
  72. package/components/chart/esm2022/chart.component.mjs +22 -4
  73. package/components/chart/fesm2022/index.mjs +21 -3
  74. package/components/chart/fesm2022/index.mjs.map +1 -1
  75. package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +3 -2
  76. package/components/containers/accordion/accordion.directive.d.ts +5 -2
  77. package/components/containers/accordion/bundles/index.umd.js +49 -2
  78. package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +10 -1
  79. package/components/containers/accordion/esm2022/accordion.directive.mjs +41 -3
  80. package/components/containers/accordion/fesm2022/index.mjs +49 -2
  81. package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  82. package/components/containers/panel/bundles/index.umd.js +13 -0
  83. package/components/containers/panel/esm2022/panel.component.mjs +14 -1
  84. package/components/containers/panel/fesm2022/index.mjs +13 -0
  85. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  86. package/components/containers/panel/panel.component.d.ts +3 -2
  87. package/components/containers/tabs/bundles/index.umd.js +54 -2
  88. package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +10 -1
  89. package/components/containers/tabs/esm2022/tabs.component.mjs +46 -3
  90. package/components/containers/tabs/fesm2022/index.mjs +54 -2
  91. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  92. package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +3 -2
  93. package/components/containers/tabs/tabs.component.d.ts +5 -2
  94. package/components/containers/wizard/bundles/index.umd.js +47 -3
  95. package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +16 -3
  96. package/components/containers/wizard/esm2022/wizard.component.mjs +33 -2
  97. package/components/containers/wizard/fesm2022/index.mjs +47 -3
  98. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  99. package/components/containers/wizard/wizard-step/wizard-step.component.d.ts +3 -2
  100. package/components/containers/wizard/wizard.component.d.ts +4 -2
  101. package/components/data/card/bundles/index.umd.js +17 -1
  102. package/components/data/card/card-content/card-content.component.d.ts +3 -2
  103. package/components/data/card/card.component.d.ts +4 -2
  104. package/components/data/card/esm2022/card-content/card-content.component.mjs +6 -1
  105. package/components/data/card/esm2022/card.component.mjs +13 -2
  106. package/components/data/card/fesm2022/index.mjs +17 -1
  107. package/components/data/card/fesm2022/index.mjs.map +1 -1
  108. package/components/data/form/bundles/index.umd.js +92 -0
  109. package/components/data/form/esm2022/form-action/form-action.directive.mjs +7 -1
  110. package/components/data/form/esm2022/form-field/form-field.directive.mjs +28 -1
  111. package/components/data/form/esm2022/form-widget.directive.mjs +8 -1
  112. package/components/data/form/esm2022/form.component.mjs +27 -1
  113. package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +7 -1
  114. package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +12 -1
  115. package/components/data/form/esm2022/live-form/live-form.directive.mjs +10 -1
  116. package/components/data/form/fesm2022/index.mjs +92 -0
  117. package/components/data/form/fesm2022/index.mjs.map +1 -1
  118. package/components/data/form/form-action/form-action.directive.d.ts +3 -2
  119. package/components/data/form/form-field/form-field.directive.d.ts +3 -2
  120. package/components/data/form/form-widget.directive.d.ts +3 -2
  121. package/components/data/form/live-actions/live-actions.directive.d.ts +3 -1
  122. package/components/data/form/live-filter/live-filter.directive.d.ts +3 -1
  123. package/components/data/form/live-form/live-form.directive.d.ts +3 -1
  124. package/components/data/list/bundles/index.umd.js +213 -19
  125. package/components/data/list/esm2022/list-item.directive.mjs +95 -11
  126. package/components/data/list/esm2022/list.component.mjs +120 -10
  127. package/components/data/list/fesm2022/index.mjs +213 -19
  128. package/components/data/list/fesm2022/index.mjs.map +1 -1
  129. package/components/data/list/list-item.directive.d.ts +7 -2
  130. package/components/data/list/list.component.d.ts +7 -0
  131. package/components/data/live-table/bundles/index.umd.js +13 -1
  132. package/components/data/live-table/esm2022/live-table.component.mjs +14 -2
  133. package/components/data/live-table/fesm2022/index.mjs +13 -1
  134. package/components/data/live-table/fesm2022/index.mjs.map +1 -1
  135. package/components/data/live-table/live-table.component.d.ts +4 -2
  136. package/components/data/pagination/bundles/index.umd.js +57 -4
  137. package/components/data/pagination/esm2022/pagination.component.mjs +58 -5
  138. package/components/data/pagination/fesm2022/index.mjs +57 -4
  139. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  140. package/components/data/pagination/pagination.component.d.ts +4 -2
  141. package/components/data/table/bundles/index.umd.js +345 -15
  142. package/components/data/table/esm2022/table-action/table-action.directive.mjs +8 -1
  143. package/components/data/table/esm2022/table-column/table-column.directive.mjs +107 -3
  144. package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +9 -1
  145. package/components/data/table/esm2022/table-cud.directive.mjs +8 -2
  146. package/components/data/table/esm2022/table-filter.directive.mjs +12 -2
  147. package/components/data/table/esm2022/table-row/table-row.directive.mjs +8 -1
  148. package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +8 -1
  149. package/components/data/table/esm2022/table.component.mjs +193 -12
  150. package/components/data/table/fesm2022/index.mjs +345 -15
  151. package/components/data/table/fesm2022/index.mjs.map +1 -1
  152. package/components/data/table/table-action/table-action.directive.d.ts +3 -2
  153. package/components/data/table/table-column/table-column.directive.d.ts +3 -2
  154. package/components/data/table/table-column-group/table-column-group.directive.d.ts +3 -2
  155. package/components/data/table/table-cud.directive.d.ts +3 -1
  156. package/components/data/table/table-filter.directive.d.ts +3 -1
  157. package/components/data/table/table-row/table-row.directive.d.ts +3 -2
  158. package/components/data/table/table-row-action/table-row-action.directive.d.ts +3 -2
  159. package/components/data/table/table.component.d.ts +6 -2
  160. package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +3 -2
  161. package/components/dialogs/alert-dialog/bundles/index.umd.js +5 -0
  162. package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +6 -1
  163. package/components/dialogs/alert-dialog/fesm2022/index.mjs +5 -0
  164. package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  165. package/components/dialogs/confirm-dialog/bundles/index.umd.js +5 -0
  166. package/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +3 -2
  167. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +6 -1
  168. package/components/dialogs/confirm-dialog/fesm2022/index.mjs +5 -0
  169. package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  170. package/components/dialogs/default/bundles/index.umd.js +15 -2
  171. package/components/dialogs/default/dialog-body/dialog-body.directive.d.ts +4 -2
  172. package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +16 -3
  173. package/components/dialogs/default/fesm2022/index.mjs +15 -2
  174. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  175. package/components/dialogs/design-dialog/bundles/index.umd.js +7 -0
  176. package/components/dialogs/design-dialog/dialog.component.d.ts +3 -2
  177. package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +8 -1
  178. package/components/dialogs/design-dialog/fesm2022/index.mjs +7 -0
  179. package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  180. package/components/dialogs/iframe-dialog/bundles/index.umd.js +5 -0
  181. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +6 -1
  182. package/components/dialogs/iframe-dialog/fesm2022/index.mjs +5 -0
  183. package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  184. package/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +3 -2
  185. package/components/dialogs/partial-dialog/bundles/index.umd.js +23 -3
  186. package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +24 -4
  187. package/components/dialogs/partial-dialog/fesm2022/index.mjs +23 -3
  188. package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  189. package/components/dialogs/partial-dialog/partial-dialog.component.d.ts +4 -2
  190. package/components/input/base-form/base-form.component.d.ts +4 -2
  191. package/components/input/base-form/bundles/index.umd.js +16 -2
  192. package/components/input/base-form/esm2022/base-form.component.mjs +17 -3
  193. package/components/input/base-form/fesm2022/index.mjs +16 -2
  194. package/components/input/base-form/fesm2022/index.mjs.map +1 -1
  195. package/components/input/base-form-custom/base-form-custom.component.d.ts +3 -2
  196. package/components/input/base-form-custom/bundles/index.umd.js +13 -2
  197. package/components/input/base-form-custom/esm2022/base-form-custom.component.mjs +14 -3
  198. package/components/input/base-form-custom/fesm2022/index.mjs +13 -2
  199. package/components/input/base-form-custom/fesm2022/index.mjs.map +1 -1
  200. package/components/input/checkbox/bundles/index.umd.js +7 -0
  201. package/components/input/checkbox/checkbox.component.d.ts +3 -2
  202. package/components/input/checkbox/esm2022/checkbox.component.mjs +8 -1
  203. package/components/input/checkbox/fesm2022/index.mjs +7 -0
  204. package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
  205. package/components/input/checkboxset/bundles/index.umd.js +18 -2
  206. package/components/input/checkboxset/checkboxset.component.d.ts +4 -2
  207. package/components/input/checkboxset/esm2022/checkboxset.component.mjs +19 -3
  208. package/components/input/checkboxset/fesm2022/index.mjs +18 -2
  209. package/components/input/checkboxset/fesm2022/index.mjs.map +1 -1
  210. package/components/input/chips/bundles/index.umd.js +45 -5
  211. package/components/input/chips/chips.component.d.ts +3 -2
  212. package/components/input/chips/esm2022/chips.component.mjs +46 -6
  213. package/components/input/chips/fesm2022/index.mjs +45 -5
  214. package/components/input/chips/fesm2022/index.mjs.map +1 -1
  215. package/components/input/color-picker/bundles/index.umd.js +8 -0
  216. package/components/input/color-picker/color-picker.component.d.ts +3 -2
  217. package/components/input/color-picker/esm2022/color-picker.component.mjs +9 -1
  218. package/components/input/color-picker/fesm2022/index.mjs +8 -0
  219. package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  220. package/components/input/composite/bundles/index.umd.js +10 -1
  221. package/components/input/composite/composite.directive.d.ts +3 -2
  222. package/components/input/composite/esm2022/composite.directive.mjs +11 -2
  223. package/components/input/composite/fesm2022/index.mjs +10 -1
  224. package/components/input/composite/fesm2022/index.mjs.map +1 -1
  225. package/components/input/currency/bundles/index.umd.js +7 -0
  226. package/components/input/currency/currency.component.d.ts +3 -2
  227. package/components/input/currency/esm2022/currency.component.mjs +8 -1
  228. package/components/input/currency/fesm2022/index.mjs +7 -0
  229. package/components/input/currency/fesm2022/index.mjs.map +1 -1
  230. package/components/input/dataset-aware-form/bundles/index.umd.js +26 -2
  231. package/components/input/dataset-aware-form/esm2022/dataset-aware-form.component.mjs +27 -3
  232. package/components/input/dataset-aware-form/fesm2022/index.mjs +26 -2
  233. package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -1
  234. package/components/input/epoch/date/bundles/index.umd.js +22 -0
  235. package/components/input/epoch/date/date.component.d.ts +1 -0
  236. package/components/input/epoch/date/esm2022/date.component.mjs +23 -1
  237. package/components/input/epoch/date/fesm2022/index.mjs +22 -0
  238. package/components/input/epoch/date/fesm2022/index.mjs.map +1 -1
  239. package/components/input/file-upload/bundles/index.umd.js +25 -8
  240. package/components/input/file-upload/esm2022/file-upload.component.mjs +26 -9
  241. package/components/input/file-upload/fesm2022/index.mjs +25 -8
  242. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  243. package/components/input/file-upload/file-upload.component.d.ts +3 -0
  244. package/components/input/number/bundles/index.umd.js +8 -0
  245. package/components/input/number/esm2022/number.component.mjs +9 -1
  246. package/components/input/number/fesm2022/index.mjs +8 -0
  247. package/components/input/number/fesm2022/index.mjs.map +1 -1
  248. package/components/input/number/number.component.d.ts +3 -2
  249. package/components/input/radioset/bundles/index.umd.js +18 -2
  250. package/components/input/radioset/esm2022/radioset.component.mjs +19 -3
  251. package/components/input/radioset/fesm2022/index.mjs +18 -2
  252. package/components/input/radioset/fesm2022/index.mjs.map +1 -1
  253. package/components/input/radioset/radioset.component.d.ts +4 -2
  254. package/components/input/rating/bundles/index.umd.js +10 -0
  255. package/components/input/rating/esm2022/rating.component.mjs +11 -1
  256. package/components/input/rating/fesm2022/index.mjs +10 -0
  257. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  258. package/components/input/rating/rating.component.d.ts +3 -2
  259. package/components/input/select/bundles/index.umd.js +6 -0
  260. package/components/input/select/esm2022/select.component.mjs +7 -1
  261. package/components/input/select/fesm2022/index.mjs +6 -0
  262. package/components/input/select/fesm2022/index.mjs.map +1 -1
  263. package/components/input/select/select.component.d.ts +3 -2
  264. package/components/input/slider/bundles/index.umd.js +10 -0
  265. package/components/input/slider/esm2022/slider.component.mjs +11 -1
  266. package/components/input/slider/fesm2022/index.mjs +10 -0
  267. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  268. package/components/input/slider/slider.component.d.ts +3 -2
  269. package/components/input/switch/bundles/index.umd.js +22 -2
  270. package/components/input/switch/esm2022/switch.component.mjs +23 -3
  271. package/components/input/switch/fesm2022/index.mjs +22 -2
  272. package/components/input/switch/fesm2022/index.mjs.map +1 -1
  273. package/components/input/switch/switch.component.d.ts +3 -2
  274. package/components/input/text/bundles/index.umd.js +36 -0
  275. package/components/input/text/esm2022/input-calendar/input-calendar.component.mjs +8 -1
  276. package/components/input/text/esm2022/input-color/input-color.component.mjs +8 -1
  277. package/components/input/text/esm2022/input-email/input-email.component.mjs +8 -1
  278. package/components/input/text/esm2022/input-number/input-number.component.mjs +8 -1
  279. package/components/input/text/esm2022/input-text/input-text.component.mjs +9 -1
  280. package/components/input/text/fesm2022/index.mjs +36 -0
  281. package/components/input/text/fesm2022/index.mjs.map +1 -1
  282. package/components/input/text/input-calendar/input-calendar.component.d.ts +3 -2
  283. package/components/input/text/input-color/input-color.component.d.ts +3 -2
  284. package/components/input/text/input-email/input-email.component.d.ts +3 -2
  285. package/components/input/text/input-number/input-number.component.d.ts +3 -2
  286. package/components/input/text/input-text/input-text.component.d.ts +3 -2
  287. package/components/input/textarea/bundles/index.umd.js +7 -0
  288. package/components/input/textarea/esm2022/textarea.component.mjs +8 -1
  289. package/components/input/textarea/fesm2022/index.mjs +7 -0
  290. package/components/input/textarea/fesm2022/index.mjs.map +1 -1
  291. package/components/input/textarea/textarea.component.d.ts +3 -2
  292. package/components/navigation/menu/bundles/index.umd.js +55 -6
  293. package/components/navigation/menu/esm2022/menu-adapator.component.mjs +17 -3
  294. package/components/navigation/menu/esm2022/menu.component.mjs +10 -3
  295. package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +6 -1
  296. package/components/navigation/menu/esm2022/nav/nav.component.mjs +11 -1
  297. package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +16 -3
  298. package/components/navigation/menu/fesm2022/index.mjs +55 -6
  299. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  300. package/components/navigation/menu/menu-adapator.component.d.ts +4 -2
  301. package/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +3 -2
  302. package/components/navigation/menu/nav/nav.component.d.ts +3 -2
  303. package/components/navigation/menu/nav/navigation-control.directive.d.ts +4 -2
  304. package/components/navigation/navbar/bundles/index.umd.js +5 -0
  305. package/components/navigation/navbar/esm2022/navbar.component.mjs +6 -1
  306. package/components/navigation/navbar/fesm2022/index.mjs +5 -0
  307. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  308. package/components/navigation/navbar/navbar.component.d.ts +3 -2
  309. package/components/navigation/popover/bundles/index.umd.js +65 -13
  310. package/components/navigation/popover/esm2022/popover.component.mjs +63 -11
  311. package/components/navigation/popover/fesm2022/index.mjs +62 -10
  312. package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  313. package/components/navigation/popover/popover.component.d.ts +11 -3
  314. package/components/page/default/bundles/index.umd.js +30 -6
  315. package/components/page/default/esm2022/layout.directive.mjs +9 -1
  316. package/components/page/default/esm2022/page-content/page-content.component.mjs +13 -3
  317. package/components/page/default/esm2022/router-outlet.directive.mjs +13 -6
  318. package/components/page/default/fesm2022/index.mjs +30 -6
  319. package/components/page/default/fesm2022/index.mjs.map +1 -1
  320. package/components/page/default/layout.directive.d.ts +3 -2
  321. package/components/page/default/page-content/page-content.component.d.ts +3 -2
  322. package/components/page/default/router-outlet.directive.d.ts +5 -2
  323. package/components/page/left-panel/bundles/index.umd.js +16 -0
  324. package/components/page/left-panel/esm2022/left-panel.directive.mjs +17 -1
  325. package/components/page/left-panel/fesm2022/index.mjs +16 -0
  326. package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  327. package/components/page/left-panel/left-panel.directive.d.ts +3 -2
  328. package/components/page/top-nav/bundles/index.umd.js +2 -1
  329. package/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
  330. package/components/page/top-nav/fesm2022/index.mjs +2 -1
  331. package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  332. package/components/prefab/bundles/index.umd.js +4 -0
  333. package/components/prefab/esm2022/prefab.directive.mjs +5 -1
  334. package/components/prefab/fesm2022/index.mjs +4 -0
  335. package/components/prefab/fesm2022/index.mjs.map +1 -1
  336. package/core/bundles/index.umd.js +391 -94
  337. package/core/esm2022/public_api.mjs +3 -3
  338. package/core/esm2022/services/viewport.service.mjs +24 -10
  339. package/core/esm2022/types/types.mjs +1 -1
  340. package/core/esm2022/utils/dom.mjs +18 -2
  341. package/core/esm2022/utils/event-notifier.mjs +5 -2
  342. package/core/esm2022/utils/lru-cache.mjs +16 -2
  343. package/core/esm2022/utils/utils.mjs +6 -2
  344. package/core/esm2022/utils/watcher.mjs +323 -81
  345. package/core/fesm2022/index.mjs +390 -96
  346. package/core/fesm2022/index.mjs.map +1 -1
  347. package/core/public_api.d.ts +2 -2
  348. package/core/services/viewport.service.d.ts +5 -2
  349. package/core/types/types.d.ts +1 -0
  350. package/core/utils/lru-cache.d.ts +6 -0
  351. package/core/utils/utils.d.ts +1 -0
  352. package/core/utils/watcher.d.ts +26 -5
  353. package/http/bundles/index.umd.js +31 -1
  354. package/http/esm2022/http.service.mjs +32 -2
  355. package/http/fesm2022/index.mjs +31 -1
  356. package/http/fesm2022/index.mjs.map +1 -1
  357. package/http/http.service.d.ts +6 -2
  358. package/npm-shrinkwrap.json +2 -2
  359. package/oAuth/bundles/index.umd.js +9 -0
  360. package/oAuth/esm2022/oAuth.service.mjs +10 -1
  361. package/oAuth/fesm2022/index.mjs +9 -0
  362. package/oAuth/fesm2022/index.mjs.map +1 -1
  363. package/oAuth/oAuth.service.d.ts +3 -1
  364. package/package-lock.json +2 -2
  365. package/package.json +1 -1
  366. package/runtime/base/bundles/index.umd.js +367 -32
  367. package/runtime/base/components/app-component/app.component.d.ts +4 -0
  368. package/runtime/base/components/prefab-preview.component.d.ts +5 -2
  369. package/runtime/base/directives/accessroles.directive.d.ts +4 -3
  370. package/runtime/base/directives/prefab.directive.d.ts +3 -2
  371. package/runtime/base/esm2022/components/app-component/app.component.mjs +40 -9
  372. package/runtime/base/esm2022/components/base-custom-widget.component.mjs +33 -2
  373. package/runtime/base/esm2022/components/base-layout.component.mjs +7 -1
  374. package/runtime/base/esm2022/components/base-page.component.mjs +36 -3
  375. package/runtime/base/esm2022/components/base-partial.component.mjs +37 -3
  376. package/runtime/base/esm2022/components/base-prefab.component.mjs +32 -3
  377. package/runtime/base/esm2022/components/base-spa-page.component.mjs +37 -3
  378. package/runtime/base/esm2022/components/prefab-preview.component.mjs +23 -4
  379. package/runtime/base/esm2022/directives/accessroles.directive.mjs +11 -2
  380. package/runtime/base/esm2022/directives/prefab.directive.mjs +9 -1
  381. package/runtime/base/esm2022/services/app.manager.service.mjs +40 -12
  382. package/runtime/base/esm2022/services/app.service.mjs +34 -2
  383. package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +4 -1
  384. package/runtime/base/esm2022/services/pipe-provider.service.mjs +7 -4
  385. package/runtime/base/esm2022/services/spinner.service.mjs +15 -1
  386. package/runtime/base/esm2022/util/fragment-monitor.mjs +23 -2
  387. package/runtime/base/fesm2022/index.mjs +368 -33
  388. package/runtime/base/fesm2022/index.mjs.map +1 -1
  389. package/runtime/base/runtime-base.module.d.ts +2 -2
  390. package/runtime/base/services/app.manager.service.d.ts +6 -1
  391. package/runtime/base/services/app.service.d.ts +12 -2
  392. package/runtime/base/services/dynamic-component-ref-provider.service.d.ts +2 -1
  393. package/runtime/base/services/spinner.service.d.ts +3 -1
  394. package/runtime/base/util/fragment-monitor.d.ts +6 -0
  395. package/runtime/dynamic/bundles/index.umd.js +5 -0
  396. package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +6 -1
  397. package/runtime/dynamic/fesm2022/index.mjs +5 -0
  398. package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  399. package/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -1
  400. package/scripts/datatable/datatable.js +100 -14
  401. package/security/bundles/index.umd.js +41 -2
  402. package/security/esm2022/security.service.mjs +42 -3
  403. package/security/fesm2022/index.mjs +41 -2
  404. package/security/fesm2022/index.mjs.map +1 -1
  405. package/security/security.service.d.ts +5 -2
  406. package/variables/bundles/index.umd.js +50 -6
  407. package/variables/esm2022/manager/action/notification-action.manager.mjs +18 -3
  408. package/variables/esm2022/manager/variable/base-variable.manager.mjs +15 -2
  409. package/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +13 -3
  410. package/variables/esm2022/service/variables.service.mjs +8 -2
  411. package/variables/fesm2022/index.mjs +50 -6
  412. package/variables/fesm2022/index.mjs.map +1 -1
@@ -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();
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
+ }
1327
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.
@@ -1880,9 +2030,11 @@ class TableComponent extends StylableComponent {
1880
2030
  this.allowpagesizechange = nv;
1881
2031
  break;
1882
2032
  case 'pagesizeoptions':
1883
- this.gridOptions.pagesizeoptions = nv;
1884
- this.pagesizeoptions = nv;
1885
- this.setDefaultPageSize(nv);
2033
+ this.prevPagesizeoptions = this.sanitizeCommaSeparatedIntegers(ov);
2034
+ this.gridOptions.pagesizeoptions = this.sanitizeCommaSeparatedIntegers(nv);
2035
+ this.pagesizeoptions = this.sanitizeCommaSeparatedIntegers(nv);
2036
+ if (this.allowpagesizechange)
2037
+ this.setDefaultPageSize(nv);
1886
2038
  break;
1887
2039
  case 'multiselecttitle':
1888
2040
  this.setDataGridOption('multiselecttitle', nv);
@@ -1926,12 +2078,41 @@ class TableComponent extends StylableComponent {
1926
2078
  this.pagesize = nv;
1927
2079
  }
1928
2080
  this.updatedPageSize = nv;
2081
+ if (this.isPageSizeOptionsChanged()) {
2082
+ this.dataNavigator.defaultPageSizeOptions = this.pagesizeoptions?.split(',').map(Number).sort((a, b) => a - b) || [];
2083
+ this.dataNavigator.pageSizeOptions = [...this.dataNavigator.defaultPageSizeOptions];
2084
+ }
1929
2085
  }
1930
2086
  this.dataNavigator.options = {
1931
2087
  maxResults: nv
1932
2088
  };
1933
2089
  this.dataNavigator.widget.maxResults = nv;
1934
2090
  this.dataNavigator.maxResults = nv;
2091
+ if (this.datasource) {
2092
+ this.datasource.maxResults = this.pagesize || this.datasource.maxResults;
2093
+ }
2094
+ }
2095
+ isPageSizeOptionsChanged() {
2096
+ return !isEqual(this.prevPagesizeoptions, this.pagesizeoptions);
2097
+ }
2098
+ selectPageSize(pagesize) {
2099
+ if (!this.allowpagesizechange && !pagesize)
2100
+ return;
2101
+ if (pagesize < this.dataNavigator.pageSizeOptions[0] || pagesize > this.dataNavigator.pageSizeOptions[this.dataNavigator.pageSizeOptions.length - 1]
2102
+ || !this.dataNavigator.pageSizeOptions.includes(Number(pagesize))) {
2103
+ pagesize = this.dataNavigator.pageSizeOptions[0];
2104
+ }
2105
+ this.dataNavigator.onPageSizeChange(undefined, pagesize);
2106
+ }
2107
+ sanitizeCommaSeparatedIntegers(input) {
2108
+ if (!input)
2109
+ return "";
2110
+ const uniqueNumbers = Array.from(new Set(input
2111
+ .split(",")
2112
+ .map(v => v.trim())
2113
+ .filter(v => /^-?\d+$/.test(v))
2114
+ .map(v => Math.abs(parseInt(v, 10)))));
2115
+ return uniqueNumbers.join(",");
1935
2116
  }
1936
2117
  onDataSourceChange() {
1937
2118
  this.fieldDefs.forEach(col => {
@@ -2457,7 +2638,7 @@ class TableCUDDirective {
2457
2638
  this.updateVariable(response, options.callBack);
2458
2639
  }
2459
2640
  else if (!this.table.datasource.execute(DataSource.Operation.IS_API_AWARE)) {
2460
- this.table.initiateSelectItem('current', response, undefined, false, options.callBack);
2641
+ this.table.initiateSelectItem('current', response, undefined, this.table.datasource.category === 'wm.Variable', options.callBack);
2461
2642
  }
2462
2643
  triggerFn(options.success, response);
2463
2644
  this.table.invokeEventCallback('rowupdate', { $event: options.event, $data: response, row: response });
@@ -2707,6 +2888,12 @@ class TableCUDDirective {
2707
2888
  this.table.callDataGridMethod('cancelEdit', $row);
2708
2889
  }
2709
2890
  }
2891
+ ngOnDestroy() {
2892
+ // MEMORY LEAK FIX: Clear all references
2893
+ this.table = null;
2894
+ this.dialogService = null;
2895
+ this.app = null;
2896
+ }
2710
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 }); }
2711
2898
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableCUDDirective, isStandalone: true, selector: "[wmTableCUD]", ngImport: i0 }); }
2712
2899
  }
@@ -3019,6 +3206,12 @@ class TableFilterSortDirective {
3019
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.
3020
3207
  parseDateString(dateString) {
3021
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
+ }
3022
3215
  if (!isNaN(timestamp)) {
3023
3216
  return timestamp;
3024
3217
  }
@@ -3034,7 +3227,7 @@ class TableFilterSortDirective {
3034
3227
  const fieldValue = get(find(data, sortObj.field), sortObj.field);
3035
3228
  const isValidDateString = typeof fieldValue === 'string' ? this.parseDateString(fieldValue) : NaN;
3036
3229
  if (!isNaN(isValidDateString)) { // if the field is a date string
3037
- data = orderBy(data, [(item) => this.parseDateString(item[sortObj.field])], [sortObj.direction]);
3230
+ data = orderBy(data, [(item) => this.parseDateString(get(item, sortObj.field))], [sortObj.direction]);
3038
3231
  }
3039
3232
  else if (sortObj.sortBy ? this.table.columns[sortObj.sortBy]?.caseinsensitive : this.table.columns[sortObj.field]?.caseinsensitive) {
3040
3233
  //Fix for [WMS-27505]: Added case-insensitive sorting so that uppercase and lowercase letters are treated the same when sorting.
@@ -3396,6 +3589,10 @@ class TableFilterSortDirective {
3396
3589
  condition: logicalOp
3397
3590
  });
3398
3591
  }
3592
+ ngOnDestroy() {
3593
+ // MEMORY LEAK FIX: Clear table reference
3594
+ this.table = null;
3595
+ }
3399
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 }); }
3400
3597
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableFilterSortDirective, isStandalone: true, selector: "[wmTableFilterSort]", ngImport: i0 }); }
3401
3598
  }
@@ -3482,6 +3679,13 @@ class TableActionDirective extends BaseComponent {
3482
3679
  this.buttonDef[key] = nv;
3483
3680
  }
3484
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
+ }
3485
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 }); }
3486
3690
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableActionDirective, isStandalone: true, selector: "[wmTableAction]", providers: [
3487
3691
  provideAsWidgetRef(TableActionDirective)
@@ -3646,6 +3850,14 @@ class TableColumnGroupDirective extends BaseComponent {
3646
3850
  const fieldName = this.group && this.group.name;
3647
3851
  setHeaderConfigForTable(this.table.headerConfig, this.config, fieldName, fieldName ? colIndex : headerIndex);
3648
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
+ }
3649
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 }); }
3650
3862
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableColumnGroupDirective, isStandalone: true, selector: "[wmTableColumnGroup]", providers: [
3651
3863
  provideAsWidgetRef(TableColumnGroupDirective)
@@ -3840,6 +4052,10 @@ class TableColumnDirective extends BaseComponent {
3840
4052
  }
3841
4053
  // Remove validators for the inline widget and set form to untouched
3842
4054
  removeValidations() {
4055
+ // Guard against component destruction or table/ngform being null
4056
+ if (this.isDestroyed || !this.table || !this.table.ngform) {
4057
+ return;
4058
+ }
3843
4059
  this.table.ngform.markAsUntouched();
3844
4060
  const control = this.getFormControl();
3845
4061
  if (!control) {
@@ -3851,6 +4067,10 @@ class TableColumnDirective extends BaseComponent {
3851
4067
  }
3852
4068
  // Apply default|sync|async|prop validators for QuickEdit new row form control
3853
4069
  applyNewRowValidations() {
4070
+ // Guard against component destruction or table/ngform being null
4071
+ if (this.isDestroyed || !this.table || !this.table.ngform) {
4072
+ return;
4073
+ }
3854
4074
  if (!this._checkNewEditableRowControl()) {
3855
4075
  return;
3856
4076
  }
@@ -3867,22 +4087,37 @@ class TableColumnDirective extends BaseComponent {
3867
4087
  }
3868
4088
  // Remove validators for the QuickEdit new row widget and set form to untouched
3869
4089
  removeNewRowValidations() {
4090
+ // Guard against component destruction or table/ngform being null
4091
+ if (this.isDestroyed || !this.table || !this.table.ngform) {
4092
+ return;
4093
+ }
3870
4094
  this.table.ngform.markAsUntouched();
3871
4095
  if (!this._checkNewEditableRowControl()) {
3872
4096
  return;
3873
4097
  }
3874
4098
  const control = this.getFormControl('_new');
4099
+ if (!control) {
4100
+ return;
4101
+ }
3875
4102
  control.clearValidators();
3876
4103
  control.clearAsyncValidators();
3877
4104
  control.updateValueAndValidity();
3878
4105
  }
3879
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
+ }
3880
4111
  const ctrlName = suffix ? (this.binding + suffix) : this.binding;
3881
4112
  this.table.ngform.addControl(ctrlName, this.table.fb.control(''));
3882
4113
  }
3883
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
+ }
3884
4119
  const ctrlName = suffix ? (this.binding + suffix) : this.binding;
3885
- return this.table.ngform.controls[ctrlName];
4120
+ return this.table.ngform.controls[ctrlName] || null;
3886
4121
  }
3887
4122
  _checkNewEditableRowControl() {
3888
4123
  return this._isNewEditableRow && this.getFormControl('_new');
@@ -3956,12 +4191,16 @@ class TableColumnDirective extends BaseComponent {
3956
4191
  }
3957
4192
  // On field value change, apply cascading filter and set validation message
3958
4193
  onValueChange(val, widget) {
4194
+ // Guard against component destruction or table being null
4195
+ if (this.isDestroyed || !this.table) {
4196
+ return;
4197
+ }
3959
4198
  if (val !== null) {
3960
4199
  applyFilterOnField(this.table.datasource, this.widget, this.table.fieldDefs, val, {
3961
4200
  widget: 'edit-widget-type'
3962
4201
  });
3963
4202
  }
3964
- if (this.table.ngform.touched) {
4203
+ if (this.table.ngform && this.table.ngform.touched) {
3965
4204
  this.activeControlType = widget;
3966
4205
  if (widget === 'inlineInstance') {
3967
4206
  this.notifyChanges();
@@ -4252,6 +4491,83 @@ class TableColumnDirective extends BaseComponent {
4252
4491
  this.table.redraw(true);
4253
4492
  }
4254
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
+ }
4255
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 }); }
4256
4572
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableColumnDirective, isStandalone: true, selector: "[wmTableColumn]", providers: [
4257
4573
  provideAsWidgetRef(TableColumnDirective)
@@ -4346,6 +4662,13 @@ class TableRowDirective extends BaseComponent {
4346
4662
  this.config.content = this.content;
4347
4663
  }
4348
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
+ }
4349
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 }); }
4350
4673
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableRowDirective, isStandalone: true, selector: "[wmTableRow]", providers: [
4351
4674
  provideAsWidgetRef(TableRowDirective)
@@ -4427,6 +4750,13 @@ class TableRowActionDirective extends BaseComponent {
4427
4750
  this.populateAction();
4428
4751
  this.table.registerRowActions(this.buttonDef);
4429
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
+ }
4430
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 }); }
4431
4761
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TableRowActionDirective, isStandalone: true, selector: "[wmTableRowAction]", providers: [
4432
4762
  provideAsWidgetRef(TableRowActionDirective),