@wavemaker/app-ng-runtime 11.14.1-rc.6310 → 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 (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
@@ -225,7 +225,8 @@
225
225
  }
226
226
  }
227
227
  setupHandlers() {
228
- this.slides.changes.subscribe(slides => {
228
+ // MEMORY LEAK FIX: Store subscription reference for cleanup
229
+ this.slidesChangesSubscription = this.slides.changes.subscribe(slides => {
229
230
  this.triggerAnimation(slides);
230
231
  });
231
232
  this.slides.setDirty();
@@ -242,6 +243,19 @@
242
243
  }
243
244
  ngOnDestroy() {
244
245
  this.stopAnimation();
246
+ // MEMORY LEAK FIX: Unsubscribe from slides changes
247
+ if (this.slidesChangesSubscription) {
248
+ this.slidesChangesSubscription.unsubscribe();
249
+ this.slidesChangesSubscription = null;
250
+ }
251
+ // MEMORY LEAK FIX: Clear QueryList reference
252
+ if (this.slides) {
253
+ this.slides = null;
254
+ }
255
+ // MEMORY LEAK FIX: Clear animator reference
256
+ this.animator = null;
257
+ // MEMORY LEAK FIX: Clear field definitions
258
+ this.fieldDefs = null;
245
259
  super.ngOnDestroy();
246
260
  }
247
261
  // Calculating animation interval if animation is enabled
@@ -10,6 +10,7 @@ export declare class CarouselDirective extends StylableComponent implements Afte
10
10
  private navigationClass;
11
11
  private fieldDefs;
12
12
  private interval;
13
+ private slidesChangesSubscription;
13
14
  animationinterval: any;
14
15
  animation: any;
15
16
  controls: any;
@@ -47,7 +47,8 @@ export class CarouselDirective extends StylableComponent {
47
47
  }
48
48
  }
49
49
  setupHandlers() {
50
- this.slides.changes.subscribe(slides => {
50
+ // MEMORY LEAK FIX: Store subscription reference for cleanup
51
+ this.slidesChangesSubscription = this.slides.changes.subscribe(slides => {
51
52
  this.triggerAnimation(slides);
52
53
  });
53
54
  this.slides.setDirty();
@@ -64,6 +65,19 @@ export class CarouselDirective extends StylableComponent {
64
65
  }
65
66
  ngOnDestroy() {
66
67
  this.stopAnimation();
68
+ // MEMORY LEAK FIX: Unsubscribe from slides changes
69
+ if (this.slidesChangesSubscription) {
70
+ this.slidesChangesSubscription.unsubscribe();
71
+ this.slidesChangesSubscription = null;
72
+ }
73
+ // MEMORY LEAK FIX: Clear QueryList reference
74
+ if (this.slides) {
75
+ this.slides = null;
76
+ }
77
+ // MEMORY LEAK FIX: Clear animator reference
78
+ this.animator = null;
79
+ // MEMORY LEAK FIX: Clear field definitions
80
+ this.fieldDefs = null;
67
81
  super.ngOnDestroy();
68
82
  }
69
83
  // Calculating animation interval if animation is enabled
@@ -118,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
118
132
  type: ContentChildren,
119
133
  args: [SlideComponent]
120
134
  }] } });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2FkdmFuY2VkL2Nhcm91c2VsL3NyYy9jYXJvdXNlbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGVBQWUsRUFDZixTQUFTLEVBQUUsTUFBTSxFQUNqQixRQUFRLEVBQ1IsTUFBTSxFQUdOLFFBQVEsRUFDUixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNFLE9BQU8sRUFBRSxlQUFlLEVBQWlCLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBRXZELE1BQU0sYUFBYSxHQUFrQjtJQUNqQyxVQUFVLEVBQUUsYUFBYTtDQUM1QixDQUFDO0FBRUYsTUFBTSxrQkFBa0IsR0FBRztJQUN2QixVQUFVLEVBQUUsV0FBVztJQUN2QixJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCLElBQUksRUFBRSxXQUFXO0NBQ3BCLENBQUM7QUFPRixNQUFNLE9BQU8saUJBQWtCLFNBQVEsaUJBQWlCO2FBQzdDLG9CQUFlLEdBQUcsYUFBYSxFQUFFLEFBQWxCLENBQW1CO0lBZXpDLFlBQW1CLFNBQTRCLEVBQUUsR0FBYSxFQUFVLE1BQWMsRUFBMEMsZUFBb0I7UUFDaEosS0FBSyxDQUFDLEdBQUcsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFENUIsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFBeUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUVsRixNQUFNLENBQUMsSUFBSSxDQUFD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YyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGlyZWN0aXZlLCBJbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgUXVlcnlMaXN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDYXJvdXNlbENvbXBvbmVudCwgU2xpZGVDb21wb25lbnQgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2Nhcm91c2VsJztcblxuaW1wb3J0IHsgY3JlYXRlQXJyYXlGcm9tLCBJV2lkZ2V0Q29uZmlnLCBTdHlsYWJsZUNvbXBvbmVudCwgc3R5bGVyIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL2Nhcm91c2VsLnByb3BzJztcbmltcG9ydCB7IENhcm91c2VsQW5pbWF0b3IgfSBmcm9tICcuL2Nhcm91c2VsLmFuaW1hdG9yJztcblxuY29uc3QgV0lER0VUX0NPTkZJRzogSVdpZGdldENvbmZpZyA9IHtcbiAgICB3aWRnZXRUeXBlOiAnd20tY2Fyb3VzZWwnXG59O1xuXG5jb25zdCBuYXZpZ2F0aW9uQ2xhc3NNYXAgPSB7XG4gICAgaW5kaWNhdG9yczogJ2hpZGUtbmF2cycsXG4gICAgbmF2czogJ2hpZGUtaW5kaWNhdG9ycycsXG4gICAgbm9uZTogJ2hpZGUtYm90aCdcbn07XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3dtQ2Fyb3VzZWxdJyxcbiAgICBleHBvcnRBczogJ3dtQ2Fyb3VzZWwnXG59KVxuZXhwb3J0IGNsYXNzIENhcm91c2VsRGlyZWN0aXZlIGV4dGVuZHMgU3R5bGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIHByaXZhdGUgYW5pbWF0b3I7XG4gICAgcHJpdmF0ZSBuYXZpZ2F0aW9uQ2xhc3M7XG4gICAgcHJpdmF0ZSBmaWVsZERlZnM7XG4gICAgcHJpdmF0ZSBpbnRlcnZhbDtcblxuICAgIHB1YmxpYyBhbmltYXRpb25pbnRlcnZhbDtcbiAgICBwdWJsaWMgYW5pbWF0aW9uO1xuICAgIHB1YmxpYyBjb250cm9scztcbiAgICBwdWJsaWMgY3VycmVudHNsaWRlO1xuICAgIHB1YmxpYyBwcmV2aW91c3NsaWRlO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihTbGlkZUNvbXBvbmVudCkgc2xpZGVzOiBRdWVyeUxpc3Q8U2xpZGVDb21wb25lbnQ+O1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGNvbXBvbmVudDogQ2Fyb3VzZWxDb21wb25lbnQsIGluajogSW5qZWN0b3IsIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25EYXRhQ2hhbmdlKG5ld1ZhbCkge1xuICAgICAgICB0aGlzLmZpZWxkRGVmcyA9IGNyZWF0ZUFycmF5RnJvbShuZXdWYWwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RvcEFuaW1hdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuYW5pbWF0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0b3Iuc3RvcCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGFydEFuaW1hdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuYW5pbWF0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0b3IuaW50ZXJ2YWwgPSB0aGlzLmFuaW1hdGlvbmludGVydmFsICogMTAwMDtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0b3Iuc3RhcnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25TbGlkZXNSZW5kZXIoc2xpZGVzKSB7XG4gICAgICAgIC8vIGlmIGR5bmFtaWMgY2Fyb3VzZWwsIGluaXRpYWxpemUgdGhlICdjdXJyZW50c2xpZGUnIHByb3BlcnR5IGFzIHRoZSBmaXJzdCBvYmplY3RcbiAgICAgICAgaWYgKHRoaXMuZmllbGREZWZzICYmIHRoaXMuZmllbGREZWZzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50c2xpZGUgPSB0aGlzLmZpZWxkRGVmc1swXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2xpZGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbmltYXRvciA9IG5ldyBDYXJvdXNlbEFuaW1hdG9yKHRoaXMsIHRoaXMuaW50ZXJ2YWwsIHRoaXMubmdab25lKTtcbiAgICAgICAgICAgIH0sIDUwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBIYW5kbGVycygpIHtcbiAgICAgICAgdGhpcy5zbGlkZXMuY2hhbmdlcy5zdWJzY3JpYmUoIHNsaWRlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJBbmltYXRpb24oc2xpZGVzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2xpZGVzLnNldERpcnR5KCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2hhbmdlQ0IobmV3SW5kZXgsIG9sZEluZGV4KSB7XG4gICAgICAgIC8vIGFzc2lnbiBjdXJyZW50IGFuZCBwcmV2aW91cyBzbGlkZXMgb24gd2lkZ2V0LiBJbiBjYXNlIG9mIHN0YXRpYyBjYXJvdXNlbCwgZmllbGREZWZzIHdpbGwgYmUgdW5kZWZpbmVkLCBoZW5jZSB0aGUgY2hlY2tcbiAgICAgICAgdGhpcy5jdXJyZW50c2xpZGUgPSB0aGlzLmZpZWxkRGVmcyAmJiB0aGlzLmZpZWxkRGVmc1tuZXdJbmRleF07XG4gICAgICAgIHRoaXMucHJldmlvdXNzbGlkZSA9IHRoaXMuZmllbGREZWZzICYmIHRoaXMuZmllbGREZWZzW29sZEluZGV4XTtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdjaGFuZ2UnLCB7bmV3SW5kZXg6IG5ld0luZGV4LCBvbGRJbmRleDogb2xkSW5kZXh9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMudHJpZ2dlckFuaW1hdGlvbih0aGlzLnNsaWRlcyk7XG4gICAgICAgIHRoaXMuc2V0dXBIYW5kbGVycygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnN0b3BBbmltYXRpb24oKTtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICAvLyBDYWxjdWxhdGluZyBhbmltYXRpb24gaW50ZXJ2YWwgaWYgYW5pbWF0aW9uIGlzIGVuYWJsZWRcbiAgICBzZXRhbmltYXRpb25pbnRlcnZhbCgpIHtcbiAgICAgICAgdGhpcy5pbnRlcnZhbCA9IHRoaXMuYW5pbWF0aW9uID09PSAnYXV0bycgPyB0aGlzLmFuaW1hdGlvbmludGVydmFsICogMTAwMCA6IDAgO1xuICAgIH1cblxuICAgIHRyaWdnZXJBbmltYXRpb24oc2xpZGVzKSB7XG4gICAgICAgIHRoaXMuc3RvcEFuaW1hdGlvbigpO1xuICAgICAgICB0aGlzLm9uU2xpZGVzUmVuZGVyKHNsaWRlcyk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgICB0aGlzLnNldGFuaW1hdGlvbmludGVydmFsKCk7XG4gICAgICAgIC8vIFRPRE8gdHJhbnNpdGlvbiBpcyBwZW5kaW5nXG5cbiAgICB9XG5cbiAgICAvLyBvbiBwcm9wZXJ0eSBjaGFuZ2UgaGFuZGxlclxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG4gICAgICAgIGlmIChrZXkgPT09ICdkYXRhc2V0Jykge1xuICAgICAgICAgICAgdGhpcy5vbkRhdGFDaGFuZ2UobnYpO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2NvbnRyb2xzJykge1xuICAgICAgICAgICAgLy8gRm9yIHNob3dpbmcgY29udHJvbHNcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbkNsYXNzID0gbmF2aWdhdGlvbkNsYXNzTWFwW3RoaXMuY29udHJvbHNdO1xuICAgICAgICB9ICBlbHNlIGlmIChrZXkgPT09ICdhbmltYXRpb24nIHx8IGtleSA9PT0gJ2FuaW1hdGlvbmludGVydmFsJykge1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2FuaW1hdGlvbmludGVydmFsJykge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcEFuaW1hdGlvbigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0YW5pbWF0aW9uaW50ZXJ2YWwoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uID09PSAnbm9uZScgPyB0aGlzLnN0b3BBbmltYXRpb24oKSA6ICB0aGlzLnN0YXJ0QW5pbWF0aW9uKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2FkdmFuY2VkL2Nhcm91c2VsL3NyYy9jYXJvdXNlbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGVBQWUsRUFDZixTQUFTLEVBQUUsTUFBTSxFQUNqQixRQUFRLEVBQ1IsTUFBTSxFQUdOLFFBQVEsRUFDUixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNFLE9BQU8sRUFBRSxlQUFlLEVBQWlCLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBRXZELE1BQU0sYUFBYSxHQUFrQjtJQUNqQyxVQUFVLEVBQUUsYUFBYTtDQUM1QixDQUFDO0FBRUYsTUFBTSxrQkFBa0IsR0FBRztJQUN2QixVQUFVLEVBQUUsV0FBVztJQUN2QixJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCLElBQUksRUFBRSxXQUFXO0NBQ3BCLENBQUM7QUFPRixNQUFNLE9BQU8saUJBQWtCLFNBQVEsaUJBQWlCO2FBQzdDLG9CQUFlLEdBQUcsYUFBYSxFQUFFLEFBQWxCLENBQW1CO0lBZ0J6QyxZQUFtQixTQUE0QixFQUFFLEdBQWEsRUFBVSxNQUFjLEVBQTBDLGVBQW9CO1FBQ2hKLEtBQUssQ0FBQyxHQUFHLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBRDVCLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBQXlCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFFbEYsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVPLFlBQVksQ0FBQyxNQUFNO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTyxhQUFhO1FBQ2pCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNMLENBQUM7SUFFTyxjQUFjO1FBQ2xCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7WUFDdkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0wsQ0FBQztJQUVPLGNBQWMsQ0FBQyxNQUFNO1FBQ3pCLGtGQUFrRjtRQUNsRixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMzRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDWCxDQUFDO0lBQ0wsQ0FBQztJQUVPLGFBQWE7UUFDakIsNERBQTREO1FBQzVELElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUUsTUFBTSxDQUFDLEVBQUU7WUFDckUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sVUFBVSxDQUFDLFFBQVEsRUFBRSxRQUFRO1FBQ2hDLHlIQUF5SDtRQUN6SCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFckIsbURBQW1EO1FBQ25ELElBQUksSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzdDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUM7UUFDMUMsQ0FBQztRQUVELDZDQUE2QztRQUM3QyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7UUFFRCw0Q0FBNEM7UUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFFckIsMkNBQTJDO1FBQzNDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQseURBQXlEO0lBQ3pELG9CQUFvQjtRQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUU7SUFDbkYsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQU07UUFDbkIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDN0IsNkJBQTZCO0lBRWpDLENBQUM7SUFFRCw2QkFBNkI7SUFDN0IsZ0JBQWdCLENBQUMsR0FBVyxFQUFFLEVBQU8sRUFBRSxFQUFRO1FBQzNDLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUIsQ0FBQzthQUFNLElBQUksR0FBRyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzVCLHVCQUF1QjtZQUN2QixJQUFJLENBQUMsZUFBZSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3RCxDQUFDO2FBQU8sSUFBSSxHQUFHLEtBQUssV0FBVyxJQUFJLEdBQUcsS0FBSyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdELElBQUksR0FBRyxLQUFLLG1CQUFtQixFQUFFLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDaEMsQ0FBQztZQUNELElBQUksQ0FBQyxTQUFTLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUM5RSxDQUFDO2FBQU0sQ0FBQztZQUNKLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDTCxDQUFDOytHQS9IUSxpQkFBaUIsaUdBaUJzRSxrQkFBa0I7bUdBakJ6RyxpQkFBaUIsK0ZBZVQsY0FBYzs7NEZBZnRCLGlCQUFpQjtrQkFMN0IsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDZCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsUUFBUSxFQUFFLFlBQVk7aUJBQ3pCOzswQkFrQjRGLE1BQU07MkJBQUMsa0JBQWtCOzswQkFBRyxRQUFRO3lDQUY1RixNQUFNO3NCQUF0QyxlQUFlO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERpcmVjdGl2ZSwgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFF1ZXJ5TGlzdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2Fyb3VzZWxDb21wb25lbnQsIFNsaWRlQ29tcG9uZW50IH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9jYXJvdXNlbCc7XG5cbmltcG9ydCB7IGNyZWF0ZUFycmF5RnJvbSwgSVdpZGdldENvbmZpZywgU3R5bGFibGVDb21wb25lbnQsIHN0eWxlciB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuXG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi9jYXJvdXNlbC5wcm9wcyc7XG5pbXBvcnQgeyBDYXJvdXNlbEFuaW1hdG9yIH0gZnJvbSAnLi9jYXJvdXNlbC5hbmltYXRvcic7XG5cbmNvbnN0IFdJREdFVF9DT05GSUc6IElXaWRnZXRDb25maWcgPSB7XG4gICAgd2lkZ2V0VHlwZTogJ3dtLWNhcm91c2VsJ1xufTtcblxuY29uc3QgbmF2aWdhdGlvbkNsYXNzTWFwID0ge1xuICAgIGluZGljYXRvcnM6ICdoaWRlLW5hdnMnLFxuICAgIG5hdnM6ICdoaWRlLWluZGljYXRvcnMnLFxuICAgIG5vbmU6ICdoaWRlLWJvdGgnXG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1t3bUNhcm91c2VsXScsXG4gICAgZXhwb3J0QXM6ICd3bUNhcm91c2VsJ1xufSlcbmV4cG9ydCBjbGFzcyBDYXJvdXNlbERpcmVjdGl2ZSBleHRlbmRzIFN0eWxhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95LCBPbkluaXQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBwcml2YXRlIGFuaW1hdG9yO1xuICAgIHByaXZhdGUgbmF2aWdhdGlvbkNsYXNzO1xuICAgIHByaXZhdGUgZmllbGREZWZzO1xuICAgIHByaXZhdGUgaW50ZXJ2YWw7XG4gICAgcHJpdmF0ZSBzbGlkZXNDaGFuZ2VzU3Vic2NyaXB0aW9uO1xuXG4gICAgcHVibGljIGFuaW1hdGlvbmludGVydmFsO1xuICAgIHB1YmxpYyBhbmltYXRpb247XG4gICAgcHVibGljIGNvbnRyb2xzO1xuICAgIHB1YmxpYyBjdXJyZW50c2xpZGU7XG4gICAgcHVibGljIHByZXZpb3Vzc2xpZGU7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFNsaWRlQ29tcG9uZW50KSBzbGlkZXM6IFF1ZXJ5TGlzdDxTbGlkZUNvbXBvbmVudD47XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY29tcG9uZW50OiBDYXJvdXNlbENvbXBvbmVudCwgaW5qOiBJbmplY3RvciwgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgZXhwbGljaXRDb250ZXh0KTtcbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkRhdGFDaGFuZ2UobmV3VmFsKSB7XG4gICAgICAgIHRoaXMuZmllbGREZWZzID0gY3JlYXRlQXJyYXlGcm9tKG5ld1ZhbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdG9wQW5pbWF0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5hbmltYXRvcikge1xuICAgICAgICAgICAgdGhpcy5hbmltYXRvci5zdG9wKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXJ0QW5pbWF0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5hbmltYXRvcikge1xuICAgICAgICAgICAgdGhpcy5hbmltYXRvci5pbnRlcnZhbCA9IHRoaXMuYW5pbWF0aW9uaW50ZXJ2YWwgKiAxMDAwO1xuICAgICAgICAgICAgdGhpcy5hbmltYXRvci5zdGFydCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblNsaWRlc1JlbmRlcihzbGlkZXMpIHtcbiAgICAgICAgLy8gaWYgZHluYW1pYyBjYXJvdXNlbCwgaW5pdGlhbGl6ZSB0aGUgJ2N1cnJlbnRzbGlkZScgcHJvcGVydHkgYXMgdGhlIGZpcnN0IG9iamVjdFxuICAgICAgICBpZiAodGhpcy5maWVsZERlZnMgJiYgdGhpcy5maWVsZERlZnMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRzbGlkZSA9IHRoaXMuZmllbGREZWZzWzBdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzbGlkZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdG9yID0gbmV3IENhcm91c2VsQW5pbWF0b3IodGhpcywgdGhpcy5pbnRlcnZhbCwgdGhpcy5uZ1pvbmUpO1xuICAgICAgICAgICAgfSwgNTApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXR1cEhhbmRsZXJzKCkge1xuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IFN0b3JlIHN1YnNjcmlwdGlvbiByZWZlcmVuY2UgZm9yIGNsZWFudXBcbiAgICAgICAgdGhpcy5zbGlkZXNDaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5zbGlkZXMuY2hhbmdlcy5zdWJzY3JpYmUoIHNsaWRlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJBbmltYXRpb24oc2xpZGVzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2xpZGVzLnNldERpcnR5KCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2hhbmdlQ0IobmV3SW5kZXgsIG9sZEluZGV4KSB7XG4gICAgICAgIC8vIGFzc2lnbiBjdXJyZW50IGFuZCBwcmV2aW91cyBzbGlkZXMgb24gd2lkZ2V0LiBJbiBjYXNlIG9mIHN0YXRpYyBjYXJvdXNlbCwgZmllbGREZWZzIHdpbGwgYmUgdW5kZWZpbmVkLCBoZW5jZSB0aGUgY2hlY2tcbiAgICAgICAgdGhpcy5jdXJyZW50c2xpZGUgPSB0aGlzLmZpZWxkRGVmcyAmJiB0aGlzLmZpZWxkRGVmc1tuZXdJbmRleF07XG4gICAgICAgIHRoaXMucHJldmlvdXNzbGlkZSA9IHRoaXMuZmllbGREZWZzICYmIHRoaXMuZmllbGREZWZzW29sZEluZGV4XTtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdjaGFuZ2UnLCB7bmV3SW5kZXg6IG5ld0luZGV4LCBvbGRJbmRleDogb2xkSW5kZXh9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMudHJpZ2dlckFuaW1hdGlvbih0aGlzLnNsaWRlcyk7XG4gICAgICAgIHRoaXMuc2V0dXBIYW5kbGVycygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnN0b3BBbmltYXRpb24oKTtcblxuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IFVuc3Vic2NyaWJlIGZyb20gc2xpZGVzIGNoYW5nZXNcbiAgICAgICAgaWYgKHRoaXMuc2xpZGVzQ2hhbmdlc1N1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zbGlkZXNDaGFuZ2VzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLnNsaWRlc0NoYW5nZXNTdWJzY3JpcHRpb24gPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciBRdWVyeUxpc3QgcmVmZXJlbmNlXG4gICAgICAgIGlmICh0aGlzLnNsaWRlcykge1xuICAgICAgICAgICAgdGhpcy5zbGlkZXMgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciBhbmltYXRvciByZWZlcmVuY2VcbiAgICAgICAgdGhpcy5hbmltYXRvciA9IG51bGw7XG5cbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciBmaWVsZCBkZWZpbml0aW9uc1xuICAgICAgICB0aGlzLmZpZWxkRGVmcyA9IG51bGw7XG5cbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICAvLyBDYWxjdWxhdGluZyBhbmltYXRpb24gaW50ZXJ2YWwgaWYgYW5pbWF0aW9uIGlzIGVuYWJsZWRcbiAgICBzZXRhbmltYXRpb25pbnRlcnZhbCgpIHtcbiAgICAgICAgdGhpcy5pbnRlcnZhbCA9IHRoaXMuYW5pbWF0aW9uID09PSAnYXV0bycgPyB0aGlzLmFuaW1hdGlvbmludGVydmFsICogMTAwMCA6IDAgO1xuICAgIH1cblxuICAgIHRyaWdnZXJBbmltYXRpb24oc2xpZGVzKSB7XG4gICAgICAgIHRoaXMuc3RvcEFuaW1hdGlvbigpO1xuICAgICAgICB0aGlzLm9uU2xpZGVzUmVuZGVyKHNsaWRlcyk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgICB0aGlzLnNldGFuaW1hdGlvbmludGVydmFsKCk7XG4gICAgICAgIC8vIFRPRE8gdHJhbnNpdGlvbiBpcyBwZW5kaW5nXG5cbiAgICB9XG5cbiAgICAvLyBvbiBwcm9wZXJ0eSBjaGFuZ2UgaGFuZGxlclxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG4gICAgICAgIGlmIChrZXkgPT09ICdkYXRhc2V0Jykge1xuICAgICAgICAgICAgdGhpcy5vbkRhdGFDaGFuZ2UobnYpO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2NvbnRyb2xzJykge1xuICAgICAgICAgICAgLy8gRm9yIHNob3dpbmcgY29udHJvbHNcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbkNsYXNzID0gbmF2aWdhdGlvbkNsYXNzTWFwW3RoaXMuY29udHJvbHNdO1xuICAgICAgICB9ICBlbHNlIGlmIChrZXkgPT09ICdhbmltYXRpb24nIHx8IGtleSA9PT0gJ2FuaW1hdGlvbmludGVydmFsJykge1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2FuaW1hdGlvbmludGVydmFsJykge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcEFuaW1hdGlvbigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0YW5pbWF0aW9uaW50ZXJ2YWwoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uID09PSAnbm9uZScgPyB0aGlzLnN0b3BBbmltYXRpb24oKSA6ICB0aGlzLnN0YXJ0QW5pbWF0aW9uKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -207,7 +207,8 @@ class CarouselDirective extends StylableComponent {
207
207
  }
208
208
  }
209
209
  setupHandlers() {
210
- this.slides.changes.subscribe(slides => {
210
+ // MEMORY LEAK FIX: Store subscription reference for cleanup
211
+ this.slidesChangesSubscription = this.slides.changes.subscribe(slides => {
211
212
  this.triggerAnimation(slides);
212
213
  });
213
214
  this.slides.setDirty();
@@ -224,6 +225,19 @@ class CarouselDirective extends StylableComponent {
224
225
  }
225
226
  ngOnDestroy() {
226
227
  this.stopAnimation();
228
+ // MEMORY LEAK FIX: Unsubscribe from slides changes
229
+ if (this.slidesChangesSubscription) {
230
+ this.slidesChangesSubscription.unsubscribe();
231
+ this.slidesChangesSubscription = null;
232
+ }
233
+ // MEMORY LEAK FIX: Clear QueryList reference
234
+ if (this.slides) {
235
+ this.slides = null;
236
+ }
237
+ // MEMORY LEAK FIX: Clear animator reference
238
+ this.animator = null;
239
+ // MEMORY LEAK FIX: Clear field definitions
240
+ this.fieldDefs = null;
227
241
  super.ngOnDestroy();
228
242
  }
229
243
  // Calculating animation interval if animation is enabled
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/advanced/carousel/src/carousel.props.ts","../../../../../projects/components/widgets/advanced/carousel/src/carousel.animator.ts","../../../../../projects/components/widgets/advanced/carousel/src/carousel.directive.ts","../../../../../projects/components/widgets/advanced/carousel/src/carousel-template/carousel-template.props.ts","../../../../../projects/components/widgets/advanced/carousel/src/carousel-template/carousel-template.directive.ts","../../../../../projects/components/widgets/advanced/carousel/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-carousel',\n new Map(\n [\n ['animation', {value: 'auto', ... PROP_STRING}],\n ['animationinterval', {value: 3, ... PROP_NUMBER}],\n ['controls', {value: 'both', ... PROP_STRING}],\n ['dataset', PROP_ANY],\n ['name', PROP_STRING],\n ['nodatamessage', {value: 'No Data Found', ... PROP_STRING}],\n ['show', PROP_BOOLEAN]\n ]\n )\n );\n};\n","import {NgZone} from '@angular/core';\n\nimport {SwipeAnimation} from '@swipey';\n\nimport {CarouselDirective} from './carousel.directive';\nimport {findIndex} from \"lodash-es\";\n\ndeclare const $;\n\nexport class CarouselAnimator extends SwipeAnimation {\n\n private _$el;\n private _activeIndex = 0;\n private _animationPaused = false;\n private _indicators;\n private _items;\n private _intervalId;\n private _pauseCaroselTill = 0;\n private _swiping;\n private _width;\n private _oldIndex = 0;\n\n public constructor(private carousel: CarouselDirective, private interval: number, private ngZone: NgZone) {\n super();\n const self = this;\n this._$el = $(this.carousel.getNativeElement()).find('>.carousel');\n this.init(this._$el.find('>.carousel-inner'));\n this._items = this._$el.find('>.carousel-inner >.carousel-item');\n this._indicators = this._$el.find('>.carousel-indicators');\n this._indicators.find('li').each(function (i) {\n $(this).on('click', () => {\n self._activeIndex = i;\n self.setActiveItem();\n // WMS-17583: Triggering onChange event\n self.carousel.onChangeCB(self._activeIndex, self._oldIndex);\n self._oldIndex = self._activeIndex;\n });\n });\n this._$el.find('>.left.carousel-control').on('click', () => {\n // WMS-22278, If a swipe is already in process do not process other events\n if (this._swiping) {\n return;\n }\n this._pauseCaroselTill = Date.now() + this.interval;\n this.goToUpper();\n });\n this._$el.find('>.right.carousel-control').on('click', () => {\n // WMS-22278, If a swipe is already in process do not process other events\n if (this._swiping) {\n return;\n }\n this._pauseCaroselTill = Date.now() + this.interval;\n this.goToLower();\n });\n this.setActiveItem();\n if (this.interval) {\n this.start();\n }\n $('carousel slide').removeAttr('aria-hidden');\n }\n\n public bounds() {\n this._width = this._items.width();\n this._swiping = true;\n return {\n 'lower': -this._width,\n 'center': 0,\n 'upper': this._width\n };\n }\n\n public context() {\n return {\n 'w': this._width\n };\n }\n\n\n public animation() {\n return [{\n 'target': this.getTarget.bind(this),\n 'css': {\n 'transform': 'translate3d(${{ (($D + $d) / w) * 100 + \\'%\\'}}, 0, 0)',\n '-webkit-transform': 'translate3d(${{ (($D + $d) / w) * 100 + \\'%\\'}}, 0, 0)'\n }\n }];\n }\n\n public onUpper() {\n this.resetTransition();\n this._activeIndex -= 1;\n this.setActiveItem();\n this._swiping = false;\n }\n\n public onLower() {\n this.resetTransition();\n this._activeIndex += 1;\n this.setActiveItem();\n this._swiping = false;\n }\n\n public onAnimation() {\n const newIndex = (this._items.length + this._activeIndex) % this._items.length;\n this.carousel.onChangeCB(newIndex, this._oldIndex);\n this._oldIndex = newIndex;\n const activeElementIndex = findIndex(this._items, this._$el.find('>.carousel-inner >.carousel-item.active')[0]);\n this._$el.find('>.left.carousel-control').attr('aria-label', (activeElementIndex === 0 ? this._items.length : activeElementIndex) + ' of ' + this._items.length);\n this._$el.find('>.right.carousel-control').attr('aria-label', (activeElementIndex === this._items.length - 1 ? 1 : activeElementIndex + 2) + ' of ' + this._items.length);\n }\n\n public start() {\n this.ngZone.runOutsideAngular(() => {\n this._intervalId = setInterval(() => {\n if (!this._swiping && this._pauseCaroselTill < Date.now()) {\n this.goToLower(600);\n }\n }, this.interval);\n });\n }\n\n public pause() {\n this._animationPaused = true;\n if (!this._intervalId) {\n this.start();\n }\n }\n\n public resume() {\n this._animationPaused = false;\n }\n\n public stop() {\n if (this._intervalId) {\n clearInterval(this._intervalId);\n this._intervalId = 0;\n }\n }\n\n public threshold() {\n return 5;\n }\n\n // Returns multiple elements as single jQuery element.\n private getTarget() {\n const noOfItems = this._items.length,\n activeItem = this._items.eq((noOfItems + this._activeIndex) % noOfItems),\n leftItem = this._items.eq((noOfItems + this._activeIndex - 1) % noOfItems),\n rightItem = this._items.eq((noOfItems + this._activeIndex + 1) % noOfItems);\n return activeItem.add(rightItem).add(leftItem);\n }\n\n private resetTransition() {\n this.getTarget().css({\n '-webkit-transition': 'none',\n '-webkit-transform': '',\n 'transition': 'none',\n 'transform': ''\n });\n }\n\n // Sets active item, leftItem, rightItem by removing / adding respective classes.\n private setActiveItem() {\n const items = this._items,\n left = this._activeIndex - 1,\n right = this._activeIndex + 1;\n // if there is only one carousel-item then there won't be any right or left-item.\n if (items.length === 1) {\n items.eq(0).removeClass('left-item right-item');\n return;\n }\n\n this._indicators.find('>.active').removeClass('active');\n this._indicators.find('> li').eq((items.length + this._activeIndex) % items.length).addClass('active');\n\n\n items.filter('.active').removeClass('active');\n items.addClass('left-item');\n items.eq((items.length + left) % items.length).addClass('left-item').removeClass('right-item');\n items.eq((items.length + this._activeIndex) % items.length).removeClass('left-item right-item').addClass('active');\n items.eq((items.length + right) % items.length).addClass('right-item').removeClass('left-item');\n }\n}\n","import {\n AfterContentInit,\n ContentChildren,\n Directive, Inject,\n Injector,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n QueryList\n} from '@angular/core';\n\nimport { CarouselComponent, SlideComponent } from 'ngx-bootstrap/carousel';\n\nimport { createArrayFrom, IWidgetConfig, StylableComponent, styler } from '@wm/components/base';\n\nimport { registerProps } from './carousel.props';\nimport { CarouselAnimator } from './carousel.animator';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-carousel'\n};\n\nconst navigationClassMap = {\n indicators: 'hide-navs',\n navs: 'hide-indicators',\n none: 'hide-both'\n};\n\n@Directive({\n standalone: true,\n selector: '[wmCarousel]',\n exportAs: 'wmCarousel'\n})\nexport class CarouselDirective extends StylableComponent implements AfterContentInit, OnDestroy, OnInit {\n static initializeProps = registerProps();\n\n private animator;\n private navigationClass;\n private fieldDefs;\n private interval;\n\n public animationinterval;\n public animation;\n public controls;\n public currentslide;\n public previousslide;\n\n @ContentChildren(SlideComponent) slides: QueryList<SlideComponent>;\n\n constructor(public component: CarouselComponent, inj: Injector, private ngZone: NgZone, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n\n private onDataChange(newVal) {\n this.fieldDefs = createArrayFrom(newVal);\n }\n\n private stopAnimation() {\n if (this.animator) {\n this.animator.stop();\n }\n }\n\n private startAnimation() {\n if (this.animator) {\n this.animator.interval = this.animationinterval * 1000;\n this.animator.start();\n }\n }\n\n private onSlidesRender(slides) {\n // if dynamic carousel, initialize the 'currentslide' property as the first object\n if (this.fieldDefs && this.fieldDefs.length) {\n this.currentslide = this.fieldDefs[0];\n }\n if (slides.length) {\n setTimeout(() => {\n this.animator = new CarouselAnimator(this, this.interval, this.ngZone);\n }, 50);\n }\n }\n\n private setupHandlers() {\n this.slides.changes.subscribe( slides => {\n this.triggerAnimation(slides);\n });\n this.slides.setDirty();\n }\n\n public onChangeCB(newIndex, oldIndex) {\n // assign current and previous slides on widget. In case of static carousel, fieldDefs will be undefined, hence the check\n this.currentslide = this.fieldDefs && this.fieldDefs[newIndex];\n this.previousslide = this.fieldDefs && this.fieldDefs[oldIndex];\n this.invokeEventCallback('change', {newIndex: newIndex, oldIndex: oldIndex});\n }\n\n ngAfterContentInit() {\n this.triggerAnimation(this.slides);\n this.setupHandlers();\n }\n\n ngOnDestroy() {\n this.stopAnimation();\n super.ngOnDestroy();\n }\n\n // Calculating animation interval if animation is enabled\n setanimationinterval() {\n this.interval = this.animation === 'auto' ? this.animationinterval * 1000 : 0 ;\n }\n\n triggerAnimation(slides) {\n this.stopAnimation();\n this.onSlidesRender(slides);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.setanimationinterval();\n // TODO transition is pending\n\n }\n\n // on property change handler\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'dataset') {\n this.onDataChange(nv);\n } else if (key === 'controls') {\n // For showing controls\n this.navigationClass = navigationClassMap[this.controls];\n } else if (key === 'animation' || key === 'animationinterval') {\n if (key === 'animationinterval') {\n this.stopAnimation();\n this.setanimationinterval();\n }\n this.animation === 'none' ? this.stopAnimation() : this.startAnimation();\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import { PROP_BOOLEAN, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-carousel-template',\n new Map(\n [\n ['show', PROP_BOOLEAN]\n ]\n )\n );\n};\n","import {Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport {IWidgetConfig, StylableComponent, styler} from '@wm/components/base';\nimport {registerProps} from './carousel-template.props';\n\nconst DEFAULT_CLS = 'app-carousel-item';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-carousel-template',\n hostClass: DEFAULT_CLS\n};\n\n@Directive({\n standalone: true,\n selector: '[wmCarouselTemplate]',\n exportAs: 'carouselTemplateRef',\n})\nexport class CarouselTemplateDirective extends StylableComponent {\n static initializeProps = registerProps();\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","WIDGET_CONFIG"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/advanced/carousel/src/carousel.props.ts","../../../../../projects/components/widgets/advanced/carousel/src/carousel.animator.ts","../../../../../projects/components/widgets/advanced/carousel/src/carousel.directive.ts","../../../../../projects/components/widgets/advanced/carousel/src/carousel-template/carousel-template.props.ts","../../../../../projects/components/widgets/advanced/carousel/src/carousel-template/carousel-template.directive.ts","../../../../../projects/components/widgets/advanced/carousel/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-carousel',\n new Map(\n [\n ['animation', {value: 'auto', ... PROP_STRING}],\n ['animationinterval', {value: 3, ... PROP_NUMBER}],\n ['controls', {value: 'both', ... PROP_STRING}],\n ['dataset', PROP_ANY],\n ['name', PROP_STRING],\n ['nodatamessage', {value: 'No Data Found', ... PROP_STRING}],\n ['show', PROP_BOOLEAN]\n ]\n )\n );\n};\n","import {NgZone} from '@angular/core';\n\nimport {SwipeAnimation} from '@swipey';\n\nimport {CarouselDirective} from './carousel.directive';\nimport {findIndex} from \"lodash-es\";\n\ndeclare const $;\n\nexport class CarouselAnimator extends SwipeAnimation {\n\n private _$el;\n private _activeIndex = 0;\n private _animationPaused = false;\n private _indicators;\n private _items;\n private _intervalId;\n private _pauseCaroselTill = 0;\n private _swiping;\n private _width;\n private _oldIndex = 0;\n\n public constructor(private carousel: CarouselDirective, private interval: number, private ngZone: NgZone) {\n super();\n const self = this;\n this._$el = $(this.carousel.getNativeElement()).find('>.carousel');\n this.init(this._$el.find('>.carousel-inner'));\n this._items = this._$el.find('>.carousel-inner >.carousel-item');\n this._indicators = this._$el.find('>.carousel-indicators');\n this._indicators.find('li').each(function (i) {\n $(this).on('click', () => {\n self._activeIndex = i;\n self.setActiveItem();\n // WMS-17583: Triggering onChange event\n self.carousel.onChangeCB(self._activeIndex, self._oldIndex);\n self._oldIndex = self._activeIndex;\n });\n });\n this._$el.find('>.left.carousel-control').on('click', () => {\n // WMS-22278, If a swipe is already in process do not process other events\n if (this._swiping) {\n return;\n }\n this._pauseCaroselTill = Date.now() + this.interval;\n this.goToUpper();\n });\n this._$el.find('>.right.carousel-control').on('click', () => {\n // WMS-22278, If a swipe is already in process do not process other events\n if (this._swiping) {\n return;\n }\n this._pauseCaroselTill = Date.now() + this.interval;\n this.goToLower();\n });\n this.setActiveItem();\n if (this.interval) {\n this.start();\n }\n $('carousel slide').removeAttr('aria-hidden');\n }\n\n public bounds() {\n this._width = this._items.width();\n this._swiping = true;\n return {\n 'lower': -this._width,\n 'center': 0,\n 'upper': this._width\n };\n }\n\n public context() {\n return {\n 'w': this._width\n };\n }\n\n\n public animation() {\n return [{\n 'target': this.getTarget.bind(this),\n 'css': {\n 'transform': 'translate3d(${{ (($D + $d) / w) * 100 + \\'%\\'}}, 0, 0)',\n '-webkit-transform': 'translate3d(${{ (($D + $d) / w) * 100 + \\'%\\'}}, 0, 0)'\n }\n }];\n }\n\n public onUpper() {\n this.resetTransition();\n this._activeIndex -= 1;\n this.setActiveItem();\n this._swiping = false;\n }\n\n public onLower() {\n this.resetTransition();\n this._activeIndex += 1;\n this.setActiveItem();\n this._swiping = false;\n }\n\n public onAnimation() {\n const newIndex = (this._items.length + this._activeIndex) % this._items.length;\n this.carousel.onChangeCB(newIndex, this._oldIndex);\n this._oldIndex = newIndex;\n const activeElementIndex = findIndex(this._items, this._$el.find('>.carousel-inner >.carousel-item.active')[0]);\n this._$el.find('>.left.carousel-control').attr('aria-label', (activeElementIndex === 0 ? this._items.length : activeElementIndex) + ' of ' + this._items.length);\n this._$el.find('>.right.carousel-control').attr('aria-label', (activeElementIndex === this._items.length - 1 ? 1 : activeElementIndex + 2) + ' of ' + this._items.length);\n }\n\n public start() {\n this.ngZone.runOutsideAngular(() => {\n this._intervalId = setInterval(() => {\n if (!this._swiping && this._pauseCaroselTill < Date.now()) {\n this.goToLower(600);\n }\n }, this.interval);\n });\n }\n\n public pause() {\n this._animationPaused = true;\n if (!this._intervalId) {\n this.start();\n }\n }\n\n public resume() {\n this._animationPaused = false;\n }\n\n public stop() {\n if (this._intervalId) {\n clearInterval(this._intervalId);\n this._intervalId = 0;\n }\n }\n\n public threshold() {\n return 5;\n }\n\n // Returns multiple elements as single jQuery element.\n private getTarget() {\n const noOfItems = this._items.length,\n activeItem = this._items.eq((noOfItems + this._activeIndex) % noOfItems),\n leftItem = this._items.eq((noOfItems + this._activeIndex - 1) % noOfItems),\n rightItem = this._items.eq((noOfItems + this._activeIndex + 1) % noOfItems);\n return activeItem.add(rightItem).add(leftItem);\n }\n\n private resetTransition() {\n this.getTarget().css({\n '-webkit-transition': 'none',\n '-webkit-transform': '',\n 'transition': 'none',\n 'transform': ''\n });\n }\n\n // Sets active item, leftItem, rightItem by removing / adding respective classes.\n private setActiveItem() {\n const items = this._items,\n left = this._activeIndex - 1,\n right = this._activeIndex + 1;\n // if there is only one carousel-item then there won't be any right or left-item.\n if (items.length === 1) {\n items.eq(0).removeClass('left-item right-item');\n return;\n }\n\n this._indicators.find('>.active').removeClass('active');\n this._indicators.find('> li').eq((items.length + this._activeIndex) % items.length).addClass('active');\n\n\n items.filter('.active').removeClass('active');\n items.addClass('left-item');\n items.eq((items.length + left) % items.length).addClass('left-item').removeClass('right-item');\n items.eq((items.length + this._activeIndex) % items.length).removeClass('left-item right-item').addClass('active');\n items.eq((items.length + right) % items.length).addClass('right-item').removeClass('left-item');\n }\n}\n","import {\n AfterContentInit,\n ContentChildren,\n Directive, Inject,\n Injector,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n QueryList\n} from '@angular/core';\n\nimport { CarouselComponent, SlideComponent } from 'ngx-bootstrap/carousel';\n\nimport { createArrayFrom, IWidgetConfig, StylableComponent, styler } from '@wm/components/base';\n\nimport { registerProps } from './carousel.props';\nimport { CarouselAnimator } from './carousel.animator';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-carousel'\n};\n\nconst navigationClassMap = {\n indicators: 'hide-navs',\n navs: 'hide-indicators',\n none: 'hide-both'\n};\n\n@Directive({\n standalone: true,\n selector: '[wmCarousel]',\n exportAs: 'wmCarousel'\n})\nexport class CarouselDirective extends StylableComponent implements AfterContentInit, OnDestroy, OnInit {\n static initializeProps = registerProps();\n\n private animator;\n private navigationClass;\n private fieldDefs;\n private interval;\n private slidesChangesSubscription;\n\n public animationinterval;\n public animation;\n public controls;\n public currentslide;\n public previousslide;\n\n @ContentChildren(SlideComponent) slides: QueryList<SlideComponent>;\n\n constructor(public component: CarouselComponent, inj: Injector, private ngZone: NgZone, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n\n private onDataChange(newVal) {\n this.fieldDefs = createArrayFrom(newVal);\n }\n\n private stopAnimation() {\n if (this.animator) {\n this.animator.stop();\n }\n }\n\n private startAnimation() {\n if (this.animator) {\n this.animator.interval = this.animationinterval * 1000;\n this.animator.start();\n }\n }\n\n private onSlidesRender(slides) {\n // if dynamic carousel, initialize the 'currentslide' property as the first object\n if (this.fieldDefs && this.fieldDefs.length) {\n this.currentslide = this.fieldDefs[0];\n }\n if (slides.length) {\n setTimeout(() => {\n this.animator = new CarouselAnimator(this, this.interval, this.ngZone);\n }, 50);\n }\n }\n\n private setupHandlers() {\n // MEMORY LEAK FIX: Store subscription reference for cleanup\n this.slidesChangesSubscription = this.slides.changes.subscribe( slides => {\n this.triggerAnimation(slides);\n });\n this.slides.setDirty();\n }\n\n public onChangeCB(newIndex, oldIndex) {\n // assign current and previous slides on widget. In case of static carousel, fieldDefs will be undefined, hence the check\n this.currentslide = this.fieldDefs && this.fieldDefs[newIndex];\n this.previousslide = this.fieldDefs && this.fieldDefs[oldIndex];\n this.invokeEventCallback('change', {newIndex: newIndex, oldIndex: oldIndex});\n }\n\n ngAfterContentInit() {\n this.triggerAnimation(this.slides);\n this.setupHandlers();\n }\n\n ngOnDestroy() {\n this.stopAnimation();\n\n // MEMORY LEAK FIX: Unsubscribe from slides changes\n if (this.slidesChangesSubscription) {\n this.slidesChangesSubscription.unsubscribe();\n this.slidesChangesSubscription = null;\n }\n\n // MEMORY LEAK FIX: Clear QueryList reference\n if (this.slides) {\n this.slides = null;\n }\n\n // MEMORY LEAK FIX: Clear animator reference\n this.animator = null;\n\n // MEMORY LEAK FIX: Clear field definitions\n this.fieldDefs = null;\n\n super.ngOnDestroy();\n }\n\n // Calculating animation interval if animation is enabled\n setanimationinterval() {\n this.interval = this.animation === 'auto' ? this.animationinterval * 1000 : 0 ;\n }\n\n triggerAnimation(slides) {\n this.stopAnimation();\n this.onSlidesRender(slides);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.setanimationinterval();\n // TODO transition is pending\n\n }\n\n // on property change handler\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'dataset') {\n this.onDataChange(nv);\n } else if (key === 'controls') {\n // For showing controls\n this.navigationClass = navigationClassMap[this.controls];\n } else if (key === 'animation' || key === 'animationinterval') {\n if (key === 'animationinterval') {\n this.stopAnimation();\n this.setanimationinterval();\n }\n this.animation === 'none' ? this.stopAnimation() : this.startAnimation();\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import { PROP_BOOLEAN, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-carousel-template',\n new Map(\n [\n ['show', PROP_BOOLEAN]\n ]\n )\n );\n};\n","import {Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport {IWidgetConfig, StylableComponent, styler} from '@wm/components/base';\nimport {registerProps} from './carousel-template.props';\n\nconst DEFAULT_CLS = 'app-carousel-item';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-carousel-template',\n hostClass: DEFAULT_CLS\n};\n\n@Directive({\n standalone: true,\n selector: '[wmCarouselTemplate]',\n exportAs: 'carouselTemplateRef',\n})\nexport class CarouselTemplateDirective extends StylableComponent {\n static initializeProps = registerProps();\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","WIDGET_CONFIG"],"mappings":";;;;;;;;AAEO,MAAMA,eAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,aAAa,EACb,IAAI,GAAG,CACH;QACI,CAAC,WAAW,EAAE,EAAC,KAAK,EAAE,MAAM,EAAE,GAAI,WAAW,EAAC,CAAC;QAC/C,CAAC,mBAAmB,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAK,WAAW,EAAC,CAAC;QACnD,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,MAAM,EAAE,GAAI,WAAW,EAAC,CAAC;QAC9C,CAAC,SAAS,EAAE,QAAQ,CAAC;QACrB,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,eAAe,EAAE,EAAC,KAAK,EAAE,eAAe,EAAE,GAAI,WAAW,EAAC,CAAC;QAC5D,CAAC,MAAM,EAAE,YAAY;AACxB,KAAA,CACJ,CACJ;AACL,CAAC;;ACRK,MAAO,gBAAiB,SAAQ,cAAc,CAAA;AAahD,IAAA,WAAA,CAA2B,QAA2B,EAAU,QAAgB,EAAU,MAAc,EAAA;AACpG,QAAA,KAAK,EAAE;QADgB,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAA6B,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAAkB,IAAA,CAAA,MAAM,GAAN,MAAM;QAVxF,IAAA,CAAA,YAAY,GAAG,CAAC;QAChB,IAAA,CAAA,gBAAgB,GAAG,KAAK;QAIxB,IAAA,CAAA,iBAAiB,GAAG,CAAC;QAGrB,IAAA,CAAA,SAAS,GAAG,CAAC;QAIjB,MAAM,IAAI,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;AAClE,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kCAAkC,CAAC;QAChE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC;QAC1D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAA;YACxC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;AACrB,gBAAA,IAAI,CAAC,YAAY,GAAG,CAAC;gBACrB,IAAI,CAAC,aAAa,EAAE;;AAEpB,gBAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;AAC3D,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY;AACtC,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;;AAEvD,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf;YACJ;YACA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ;YACnD,IAAI,CAAC,SAAS,EAAE;AACpB,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;;AAExD,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf;YACJ;YACA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ;YACnD,IAAI,CAAC,SAAS,EAAE;AACpB,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,KAAK,EAAE;QAChB;QACA,CAAC,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC;IACjD;IAEO,MAAM,GAAA;QACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;QACpB,OAAO;AACH,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM;AACrB,YAAA,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,IAAI,CAAC;SACjB;IACL;IAEO,OAAO,GAAA;QACV,OAAO;YACH,GAAG,EAAE,IAAI,CAAC;SACb;IACL;IAGO,SAAS,GAAA;AACZ,QAAA,OAAO,CAAC;gBACJ,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AACnC,gBAAA,KAAK,EAAE;AACH,oBAAA,WAAW,EAAE,wDAAwD;AACrE,oBAAA,mBAAmB,EAAE;AACxB;AACJ,aAAA,CAAC;IACN;IAEO,OAAO,GAAA;QACV,IAAI,CAAC,eAAe,EAAE;AACtB,QAAA,IAAI,CAAC,YAAY,IAAI,CAAC;QACtB,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;IACzB;IAEO,OAAO,GAAA;QACV,IAAI,CAAC,eAAe,EAAE;AACtB,QAAA,IAAI,CAAC,YAAY,IAAI,CAAC;QACtB,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;IACzB;IAEO,WAAW,GAAA;AACd,QAAA,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;QAC9E,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;AAClD,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;QACzB,MAAM,kBAAkB,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/G,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,kBAAkB,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAChK,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,kBAAkB,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,kBAAkB,GAAG,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC7K;IAEO,KAAK,GAAA;AACR,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AAC/B,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,MAAK;AAChC,gBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE;AACvD,oBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;gBACvB;AACJ,YAAA,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;AACrB,QAAA,CAAC,CAAC;IACN;IAEO,KAAK,GAAA;AACR,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,IAAI,CAAC,KAAK,EAAE;QAChB;IACJ;IAEO,MAAM,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;IACjC;IAEO,IAAI,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;AAC/B,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC;QACxB;IACJ;IAEO,SAAS,GAAA;AACZ,QAAA,OAAO,CAAC;IACZ;;IAGQ,SAAS,GAAA;AACb,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAChC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC,EACxE,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,SAAS,CAAC,EAC1E,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,SAAS,CAAC;QAC/E,OAAO,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClD;IAEQ,eAAe,GAAA;AACnB,QAAA,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC;AACjB,YAAA,oBAAoB,EAAE,MAAM;AAC5B,YAAA,mBAAmB,EAAE,EAAE;AACvB,YAAA,YAAY,EAAE,MAAM;AACpB,YAAA,WAAW,EAAE;AAChB,SAAA,CAAC;IACN;;IAGQ,aAAa,GAAA;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EACrB,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,EAC5B,KAAK,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC;;AAEjC,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACpB,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC;YAC/C;QACJ;AAEA,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC;AACvD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAGtG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC;AAC7C,QAAA,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC3B,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9F,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAClH,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC;IACnG;AACH;;ACnKD,MAAMC,eAAa,GAAkB;AACjC,IAAA,UAAU,EAAE;CACf;AAED,MAAM,kBAAkB,GAAG;AACvB,IAAA,UAAU,EAAE,WAAW;AACvB,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,IAAI,EAAE;CACT;AAOK,MAAO,iBAAkB,SAAQ,iBAAiB,CAAA;AAC7C,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGD,eAAa,EAAhB,CAAmB;AAgBzC,IAAA,WAAA,CAAmB,SAA4B,EAAE,GAAa,EAAU,MAAc,EAA0C,eAAoB,EAAA;AAChJ,QAAA,KAAK,CAAC,GAAG,EAAEC,eAAa,EAAE,eAAe,CAAC;QAD3B,IAAA,CAAA,SAAS,GAAT,SAAS;QAA4C,IAAA,CAAA,MAAM,GAAN,MAAM;AAE1E,QAAA,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;IACpC;AAEQ,IAAA,YAAY,CAAC,MAAM,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC;IAC5C;IAEQ,aAAa,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QACxB;IACJ;IAEQ,cAAc,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI;AACtD,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;QACzB;IACJ;AAEQ,IAAA,cAAc,CAAC,MAAM,EAAA;;QAEzB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YACzC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACzC;AACA,QAAA,IAAI,MAAM,CAAC,MAAM,EAAE;YACf,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;YAC1E,CAAC,EAAE,EAAE,CAAC;QACV;IACJ;IAEQ,aAAa,GAAA;;AAEjB,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAE,MAAM,IAAG;AACrE,YAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;AACjC,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;IAC1B;IAEO,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAA;;AAEhC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AAC9D,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AAC/D,QAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAC,CAAC;IAChF;IAEA,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,aAAa,EAAE;IACxB;IAEA,WAAW,GAAA;QACP,IAAI,CAAC,aAAa,EAAE;;AAGpB,QAAA,IAAI,IAAI,CAAC,yBAAyB,EAAE;AAChC,YAAA,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE;AAC5C,YAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI;QACzC;;AAGA,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;QACtB;;AAGA,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;;AAGpB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QAErB,KAAK,CAAC,WAAW,EAAE;IACvB;;IAGA,oBAAoB,GAAA;QAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,KAAK,MAAM,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,CAAC;IACjF;AAEA,IAAA,gBAAgB,CAAC,MAAM,EAAA;QACnB,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;IAC/B;IAEA,QAAQ,GAAA;QACJ,KAAK,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,oBAAoB,EAAE;;IAGhC;;AAGA,IAAA,gBAAgB,CAAC,GAAW,EAAE,EAAO,EAAE,EAAQ,EAAA;AAC3C,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACzB;AAAO,aAAA,IAAI,GAAG,KAAK,UAAU,EAAE;;YAE3B,IAAI,CAAC,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC5D;aAAQ,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,mBAAmB,EAAE;AAC5D,YAAA,IAAI,GAAG,KAAK,mBAAmB,EAAE;gBAC7B,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,oBAAoB,EAAE;YAC/B;AACA,YAAA,IAAI,CAAC,SAAS,KAAK,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,GAAI,IAAI,CAAC,cAAc,EAAE;QAC7E;aAAO;YACH,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;QACvC;IACJ;AA/HS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,iGAiBsE,kBAAkB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAjBzG,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,+FAeT,cAAc,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAftB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AACd,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE;AACb,iBAAA;;0BAkB4F,MAAM;2BAAC,kBAAkB;;0BAAG;yCAFpF,MAAM,EAAA,CAAA;sBAAtC,eAAe;uBAAC,cAAc;;;AC/C5B,MAAM,aAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,sBAAsB,EACtB,IAAI,GAAG,CACH;QACI,CAAC,MAAM,EAAE,YAAY;AACxB,KAAA,CACJ,CACJ;AACL,CAAC;;ACND,MAAM,WAAW,GAAG,mBAAmB;AACvC,MAAM,aAAa,GAAkB;AACjC,IAAA,UAAU,EAAE,sBAAsB;AAClC,IAAA,SAAS,EAAE;CACd;AAOK,MAAO,yBAA0B,SAAQ,iBAAiB,CAAA;AACrD,IAAA,SAAA,IAAA,CAAA,eAAe,GAAG,aAAa,EAAhB,CAAmB;IAEzC,WAAA,CAAY,GAAa,EAA0C,eAAoB,EAAA;AACnF,QAAA,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,eAAe,CAAC;AAC1C,QAAA,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;IACpC;AANS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,0CAGC,kBAAkB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAH5C,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AACd,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,qBAAqB;AAClC,iBAAA;;0BAI+B,MAAM;2BAAC,kBAAkB;;0BAAG;;;ACnB5D;;AAEG;;;;"}
@@ -61,17 +61,21 @@
61
61
  }
62
62
  }
63
63
  initLoginButtonActions() {
64
- this.loginBtnCmp.getNativeElement().addEventListener('click', event => {
64
+ // MEMORY LEAK FIX: Store bound function reference
65
+ this.boundLoginButtonClick = (event) => {
65
66
  // if no event is attached to the onSubmit of login widget or loginButton inside it, invoke default login action
66
67
  if (!this.nativeElement.hasAttribute('submit.event') && !this.loginBtnCmp.getNativeElement().hasAttribute('click.event') && !this.loginBtnCmp.getNativeElement().hasAttribute('tap.event')) {
67
68
  this.doLogin();
68
69
  }
69
- });
70
+ };
71
+ this.loginBtnCmp.getNativeElement().addEventListener('click', this.boundLoginButtonClick);
70
72
  }
71
73
  ngAfterViewInit() {
72
74
  super.ngAfterViewInit();
75
+ // MEMORY LEAK FIX: Store bound function reference
76
+ this.boundFormSubmit = (e) => e.preventDefault();
73
77
  // suppresses the default form submission (in browsers like Firefox)
74
- this.formCmp.getNativeElement().addEventListener('submit', e => e.preventDefault());
78
+ this.formCmp.getNativeElement().addEventListener('submit', this.boundFormSubmit);
75
79
  // get login button component
76
80
  this.buttonComponents.forEach(cmp => {
77
81
  if (cmp.getNativeElement().getAttribute('name') === 'loginButton' || lodashEs.includes(cmp.getNativeElement().classList, 'app-login-button')) {
@@ -83,6 +87,23 @@
83
87
  }
84
88
  });
85
89
  }
90
+ ngOnDestroy() {
91
+ // MEMORY LEAK FIX: Remove event listeners using stored bound function references
92
+ if (this.loginBtnCmp && this.boundLoginButtonClick) {
93
+ this.loginBtnCmp.getNativeElement().removeEventListener('click', this.boundLoginButtonClick);
94
+ this.boundLoginButtonClick = null;
95
+ }
96
+ if (this.formCmp && this.boundFormSubmit) {
97
+ this.formCmp.getNativeElement().removeEventListener('submit', this.boundFormSubmit);
98
+ this.boundFormSubmit = null;
99
+ }
100
+ // MEMORY LEAK FIX: Clear QueryList and ViewChild references
101
+ this.buttonComponents = null;
102
+ this.messageCmp = null;
103
+ this.formCmp = null;
104
+ this.loginBtnCmp = null;
105
+ super.ngOnDestroy();
106
+ }
86
107
  static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: LoginComponent, deps: [{ token: i0__namespace.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component }); }
87
108
  static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LoginComponent, isStandalone: true, selector: "div[wmLogin]", providers: [
88
109
  base.provideAsWidgetRef(LoginComponent)
@@ -36,17 +36,21 @@ export class LoginComponent extends StylableComponent {
36
36
  }
37
37
  }
38
38
  initLoginButtonActions() {
39
- this.loginBtnCmp.getNativeElement().addEventListener('click', event => {
39
+ // MEMORY LEAK FIX: Store bound function reference
40
+ this.boundLoginButtonClick = (event) => {
40
41
  // if no event is attached to the onSubmit of login widget or loginButton inside it, invoke default login action
41
42
  if (!this.nativeElement.hasAttribute('submit.event') && !this.loginBtnCmp.getNativeElement().hasAttribute('click.event') && !this.loginBtnCmp.getNativeElement().hasAttribute('tap.event')) {
42
43
  this.doLogin();
43
44
  }
44
- });
45
+ };
46
+ this.loginBtnCmp.getNativeElement().addEventListener('click', this.boundLoginButtonClick);
45
47
  }
46
48
  ngAfterViewInit() {
47
49
  super.ngAfterViewInit();
50
+ // MEMORY LEAK FIX: Store bound function reference
51
+ this.boundFormSubmit = (e) => e.preventDefault();
48
52
  // suppresses the default form submission (in browsers like Firefox)
49
- this.formCmp.getNativeElement().addEventListener('submit', e => e.preventDefault());
53
+ this.formCmp.getNativeElement().addEventListener('submit', this.boundFormSubmit);
50
54
  // get login button component
51
55
  this.buttonComponents.forEach(cmp => {
52
56
  if (cmp.getNativeElement().getAttribute('name') === 'loginButton' || includes(cmp.getNativeElement().classList, 'app-login-button')) {
@@ -58,6 +62,23 @@ export class LoginComponent extends StylableComponent {
58
62
  }
59
63
  });
60
64
  }
65
+ ngOnDestroy() {
66
+ // MEMORY LEAK FIX: Remove event listeners using stored bound function references
67
+ if (this.loginBtnCmp && this.boundLoginButtonClick) {
68
+ this.loginBtnCmp.getNativeElement().removeEventListener('click', this.boundLoginButtonClick);
69
+ this.boundLoginButtonClick = null;
70
+ }
71
+ if (this.formCmp && this.boundFormSubmit) {
72
+ this.formCmp.getNativeElement().removeEventListener('submit', this.boundFormSubmit);
73
+ this.boundFormSubmit = null;
74
+ }
75
+ // MEMORY LEAK FIX: Clear QueryList and ViewChild references
76
+ this.buttonComponents = null;
77
+ this.messageCmp = null;
78
+ this.formCmp = null;
79
+ this.loginBtnCmp = null;
80
+ super.ngOnDestroy();
81
+ }
61
82
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginComponent, deps: [{ token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
62
83
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LoginComponent, isStandalone: true, selector: "div[wmLogin]", providers: [
63
84
  provideAsWidgetRef(LoginComponent)
@@ -83,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
83
104
  type: ViewChild,
84
105
  args: [MessageComponent, { static: true }]
85
106
  }] } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2FkdmFuY2VkL2xvZ2luL3NyYy9sb2dpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYWR2YW5jZWQvbG9naW4vc3JjL2xvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixNQUFNLEVBQ04sUUFBUSxFQUNSLFFBQVEsRUFDUixTQUFTLEVBQ1QsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6SCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7QUFFbkMsTUFBTSxXQUFXLEdBQUcsRUFBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUMsQ0FBQztBQVdyRSxNQUFNLE9BQU8sY0FBZSxTQUFRLGlCQUFpQjthQUMxQyxvQkFBZSxHQUFHLGFBQWEsRUFBRSxBQUFsQixDQUFtQjtJQVd6QyxZQUFZLEdBQWEsRUFBMEMsZUFBb0I7UUFDbkYsS0FBSyxDQUFDLEdBQUcsRUFBRSxXQUFXLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDekMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLGlC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LGtCQUFrQixDQUFDLGNBQWMsQ0FBQztTQUNyQywrREFNYSxhQUFhLHNFQUNWLGVBQWUsNEZBQ3JCLGdCQUFnQixxRkNwQy9CLDJMQUVBLDRDRHFCZSxnQkFBZ0I7OzRGQU9sQixjQUFjO2tCQVQxQixTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFFLGdCQUFnQixDQUFFLFlBQ25CLGNBQWMsYUFFYjt3QkFDUCxrQkFBa0IsZ0JBQWdCO3FCQUNyQzs7MEJBYzJCLE1BQU07MkJBQUMsa0JBQWtCOzswQkFBRyxRQUFRO3lDQVJuQyxPQUFPO3NCQUFuQyxZQUFZO3VCQUFDLGFBQWE7Z0JBQzRCLGdCQUFnQjtzQkFBdEUsZUFBZTt1QkFBQyxlQUFlLEVBQUUsRUFBQyxXQUFXLEVBQUUsSUFBSSxFQUFDO2dCQUNOLFVBQVU7c0JBQXhELFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBPcHRpb25hbCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBUFBMWV9TVFlMRVNfVFlQRSwgTWVzc2FnZUNvbXBvbmVudCwgcHJvdmlkZUFzV2lkZ2V0UmVmLCBTdHlsYWJsZUNvbXBvbmVudCwgc3R5bGVyIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvZGF0YS9mb3JtJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2lucHV0L2J1dHRvbic7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL2xvZ2luLnByb3BzJztcbmltcG9ydCB7aW5jbHVkZXN9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuY29uc3QgV0lER0VUX0lORk8gPSB7d2lkZ2V0VHlwZTogJ3dtLWxvZ2luJywgaG9zdENsYXNzOiAnYXBwLWxvZ2luJ307XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsIFxuICAgIGltcG9ydHM6IFsgTWVzc2FnZUNvbXBvbmVudCBdLFxuICAgIHNlbGVjdG9yOiAnZGl2W3dtTG9naW5dJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbG9naW4uY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoTG9naW5Db21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpbkNvbXBvbmVudCBleHRlbmRzIFN0eWxhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcbiAgICBsb2dpbkJ0bkNtcDogQnV0dG9uQ29tcG9uZW50O1xuXG4gICAgQENvbnRlbnRDaGlsZChGb3JtQ29tcG9uZW50KSBmb3JtQ21wOiBGb3JtQ29tcG9uZW50O1xuICAgIEBDb250ZW50Q2hpbGRyZW4oQnV0dG9uQ29tcG9uZW50LCB7ZGVzY2VuZGFudHM6IHRydWV9KSBidXR0b25Db21wb25lbnRzOiBRdWVyeUxpc3Q8QnV0dG9uQ29tcG9uZW50PjtcbiAgICBAVmlld0NoaWxkKE1lc3NhZ2VDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIG1lc3NhZ2VDbXA6IE1lc3NhZ2VDb21wb25lbnQ7XG5cbiAgICBsb2dpbk1lc3NhZ2U6IHsgdHlwZT86IHN0cmluZzsgY2FwdGlvbj86IGFueTsgc2hvdz86IGJvb2xlYW47IH07XG4gICAgZXJyb3JtZXNzYWdlOiBhbnk7XG4gICAgZXZlbnRzb3VyY2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnkpIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfSU5GTywgZXhwbGljaXRDb250ZXh0KTtcbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcywgQVBQTFlfU1RZTEVTX1RZUEUuQ09OVEFJTkVSKTtcbiAgICB9XG5cbiAgICBvblN1Y2Nlc3NDQigpIHtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdzdWNjZXNzJyk7XG4gICAgfVxuXG4gICAgb25FcnJvckNCKGVycm9yPykge1xuICAgICAgICB0aGlzLmxvZ2luTWVzc2FnZSA9IHtcbiAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgICAgICBjYXB0aW9uOiB0aGlzLmVycm9ybWVzc2FnZSB8fCBlcnJvciB8fCB0aGlzLmFwcExvY2FsZS5MQUJFTF9JTlZBTElEX1VTRVJOQU1FX09SX1BBU1NXT1JELFxuICAgICAgICAgICAgc2hvdzogdHJ1ZVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLm1lc3NhZ2VDbXAuc2hvd01lc3NhZ2UodGhpcy5sb2dpbk1lc3NhZ2UuY2FwdGlvbiwgdGhpcy5sb2dpbk1lc3NhZ2UudHlwZSk7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnZXJyb3InKTtcbiAgICB9XG5cbiAgICBnZXRMb2dpbkRldGFpbHMoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUNtcC5kYXRhb3V0cHV0O1xuICAgIH1cblxuICAgIGRvTG9naW4oKSB7XG4gICAgICAgIGlmICh0aGlzLmV2ZW50c291cmNlKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1DbXAubmdmb3JtLnZhbGlkICYmIHRoaXMuZXZlbnRzb3VyY2UuaW52b2tlKHtsb2dpbkluZm86IHRoaXMuZ2V0TG9naW5EZXRhaWxzKCl9LCB0aGlzLm9uU3VjY2Vzc0NCLmJpbmQodGhpcyksIHRoaXMub25FcnJvckNCLmJpbmQodGhpcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdEZWZhdWx0IGFjdGlvbiBcImxvZ2luQWN0aW9uXCIgZG9lcyBub3QgZXhpc3QuIEVpdGhlciBjcmVhdGUgdGhlIEFjdGlvbiBvciBhc3NpZ24gYW4gZXZlbnQgdG8gb25TdWJtaXQgb2YgdGhlIGxvZ2luIHdpZGdldCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5pdExvZ2luQnV0dG9uQWN0aW9ucygpIHtcbiAgICAgICAgdGhpcy5sb2dpbkJ0bkNtcC5nZXROYXRpdmVFbGVtZW50KCkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBldmVudCA9PiB7XG5cbiAgICAgICAgICAgIC8vIGlmIG5vIGV2ZW50IGlzIGF0dGFjaGVkIHRvIHRoZSBvblN1Ym1pdCBvZiBsb2dpbiB3aWRnZXQgb3IgbG9naW5CdXR0b24gaW5zaWRlIGl0LCBpbnZva2UgZGVmYXVsdCBsb2dpbiBhY3Rpb25cbiAgICAgICAgICAgIGlmICghdGhpcy5uYXRpdmVFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc3VibWl0LmV2ZW50JykgJiYgIXRoaXMubG9naW5CdG5DbXAuZ2V0TmF0aXZlRWxlbWVudCgpLmhhc0F0dHJpYnV0ZSgnY2xpY2suZXZlbnQnKSAmJiAhdGhpcy5sb2dpbkJ0bkNtcC5nZXROYXRpdmVFbGVtZW50KCkuaGFzQXR0cmlidXRlKCd0YXAuZXZlbnQnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZG9Mb2dpbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuXG4gICAgICAgIC8vIHN1cHByZXNzZXMgdGhlIGRlZmF1bHQgZm9ybSBzdWJtaXNzaW9uIChpbiBicm93c2VycyBsaWtlIEZpcmVmb3gpXG4gICAgICAgIHRoaXMuZm9ybUNtcC5nZXROYXRpdmVFbGVtZW50KCkuYWRkRXZlbnRMaXN0ZW5lcignc3VibWl0JywgZSA9PiBlLnByZXZlbnREZWZhdWx0KCkpO1xuXG4gICAgICAgIC8vIGdldCBsb2dpbiBidXR0b24gY29tcG9uZW50XG4gICAgICAgIHRoaXMuYnV0dG9uQ29tcG9uZW50cy5mb3JFYWNoKGNtcCA9PiB7XG4gICAgICAgICAgICBpZiAoY21wLmdldE5hdGl2ZUVsZW1lbnQoKS5nZXRBdHRyaWJ1dGUoJ25hbWUnKSA9PT0gJ2xvZ2luQnV0dG9uJyB8fCBpbmNsdWRlcyhjbXAuZ2V0TmF0aXZlRWxlbWVudCgpLmNsYXNzTGlzdCwgJ2FwcC1sb2dpbi1idXR0b24nKSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvZ2luQnRuQ21wKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dpbkJ0bkNtcCA9IGNtcDtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRMb2dpbkJ1dHRvbkFjdGlvbnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPHAgd21NZXNzYWdlIGNsYXNzPVwiYXBwLWxvZ2luLW1lc3NhZ2VcIiAjbWVzc2FnZSBzaG93LmJpbmQ9XCJsb2dpbk1lc3NhZ2Uuc2hvd1wiIGNhcHRpb24uYmluZD1cImxvZ2luTWVzc2FnZS5jYXB0aW9uXCIgdHlwZS5iaW5kPVwibG9naW5NZXNzYWdlLnR5cGVcIj48L3A+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2FkdmFuY2VkL2xvZ2luL3NyYy9sb2dpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYWR2YW5jZWQvbG9naW4vc3JjL2xvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixNQUFNLEVBQ04sUUFBUSxFQUNSLFFBQVEsRUFFUixTQUFTLEVBQ1QsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6SCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7QUFFbkMsTUFBTSxXQUFXLEdBQUcsRUFBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUMsQ0FBQztBQVdyRSxNQUFNLE9BQU8sY0FBZSxTQUFRLGlCQUFpQjthQUMxQyxvQkFBZSxHQUFHLGFBQWEsRUFBRSxBQUFsQixDQUFtQjtJQWF6QyxZQUFZLEdBQWEsRUFBMEMsZUFBb0I7UUFDbkYsS0FBSyxDQUFDLEdBQUcsRUFBRSxXQUFXLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDekMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLGlC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QixjQUFjLGFBRWI7d0JBQ1Asa0JBQWtCLGdCQUFnQjtxQkFDckM7OzBCQWdCMkIsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUFHLFFBQVE7eUNBVm5DLE9BQU87c0JBQW5DLFlBQVk7dUJBQUMsYUFBYTtnQkFDNEIsZ0JBQWdCO3NCQUF0RSxlQUFlO3VCQUFDLGVBQWUsRUFBRSxFQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUM7Z0JBQ04sVUFBVTtzQkFBeEQsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIE9wdGlvbmFsLFxuICAgIE9uRGVzdHJveSxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBUFBMWV9TVFlMRVNfVFlQRSwgTWVzc2FnZUNvbXBvbmVudCwgcHJvdmlkZUFzV2lkZ2V0UmVmLCBTdHlsYWJsZUNvbXBvbmVudCwgc3R5bGVyIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvZGF0YS9mb3JtJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2lucHV0L2J1dHRvbic7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL2xvZ2luLnByb3BzJztcbmltcG9ydCB7aW5jbHVkZXN9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuY29uc3QgV0lER0VUX0lORk8gPSB7d2lkZ2V0VHlwZTogJ3dtLWxvZ2luJywgaG9zdENsYXNzOiAnYXBwLWxvZ2luJ307XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsIFxuICAgIGltcG9ydHM6IFsgTWVzc2FnZUNvbXBvbmVudCBdLFxuICAgIHNlbGVjdG9yOiAnZGl2W3dtTG9naW5dJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbG9naW4uY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoTG9naW5Db21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpbkNvbXBvbmVudCBleHRlbmRzIFN0eWxhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuICAgIGxvZ2luQnRuQ21wOiBCdXR0b25Db21wb25lbnQ7XG5cbiAgICBAQ29udGVudENoaWxkKEZvcm1Db21wb25lbnQpIGZvcm1DbXA6IEZvcm1Db21wb25lbnQ7XG4gICAgQENvbnRlbnRDaGlsZHJlbihCdXR0b25Db21wb25lbnQsIHtkZXNjZW5kYW50czogdHJ1ZX0pIGJ1dHRvbkNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxCdXR0b25Db21wb25lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoTWVzc2FnZUNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgbWVzc2FnZUNtcDogTWVzc2FnZUNvbXBvbmVudDtcblxuICAgIGxvZ2luTWVzc2FnZTogeyB0eXBlPzogc3RyaW5nOyBjYXB0aW9uPzogYW55OyBzaG93PzogYm9vbGVhbjsgfTtcbiAgICBlcnJvcm1lc3NhZ2U6IGFueTtcbiAgICBldmVudHNvdXJjZTtcbiAgICBwcml2YXRlIGJvdW5kTG9naW5CdXR0b25DbGljazogKGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcbiAgICBwcml2YXRlIGJvdW5kRm9ybVN1Ym1pdDogKGU6IEV2ZW50KSA9PiB2b2lkO1xuXG4gICAgY29uc3RydWN0b3IoaW5qOiBJbmplY3RvciwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0lORk8sIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMsIEFQUExZX1NUWUxFU19UWVBFLkNPTlRBSU5FUik7XG4gICAgfVxuXG4gICAgb25TdWNjZXNzQ0IoKSB7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnc3VjY2VzcycpO1xuICAgIH1cblxuICAgIG9uRXJyb3JDQihlcnJvcj8pIHtcbiAgICAgICAgdGhpcy5sb2dpbk1lc3NhZ2UgPSB7XG4gICAgICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICAgICAgY2FwdGlvbjogdGhpcy5lcnJvcm1lc3NhZ2UgfHwgZXJyb3IgfHwgdGhpcy5hcHBMb2NhbGUuTEFCRUxfSU5WQUxJRF9VU0VSTkFNRV9PUl9QQVNTV09SRCxcbiAgICAgICAgICAgIHNob3c6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5tZXNzYWdlQ21wLnNob3dNZXNzYWdlKHRoaXMubG9naW5NZXNzYWdlLmNhcHRpb24sIHRoaXMubG9naW5NZXNzYWdlLnR5cGUpO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2Vycm9yJyk7XG4gICAgfVxuXG4gICAgZ2V0TG9naW5EZXRhaWxzKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1DbXAuZGF0YW91dHB1dDtcbiAgICB9XG5cbiAgICBkb0xvZ2luKCkge1xuICAgICAgICBpZiAodGhpcy5ldmVudHNvdXJjZSkge1xuICAgICAgICAgICAgdGhpcy5mb3JtQ21wLm5nZm9ybS52YWxpZCAmJiB0aGlzLmV2ZW50c291cmNlLmludm9rZSh7bG9naW5JbmZvOiB0aGlzLmdldExvZ2luRGV0YWlscygpfSwgdGhpcy5vblN1Y2Nlc3NDQi5iaW5kKHRoaXMpLCB0aGlzLm9uRXJyb3JDQi5iaW5kKHRoaXMpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignRGVmYXVsdCBhY3Rpb24gXCJsb2dpbkFjdGlvblwiIGRvZXMgbm90IGV4aXN0LiBFaXRoZXIgY3JlYXRlIHRoZSBBY3Rpb24gb3IgYXNzaWduIGFuIGV2ZW50IHRvIG9uU3VibWl0IG9mIHRoZSBsb2dpbiB3aWRnZXQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGluaXRMb2dpbkJ1dHRvbkFjdGlvbnMoKSB7XG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogU3RvcmUgYm91bmQgZnVuY3Rpb24gcmVmZXJlbmNlXG4gICAgICAgIHRoaXMuYm91bmRMb2dpbkJ1dHRvbkNsaWNrID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAvLyBpZiBubyBldmVudCBpcyBhdHRhY2hlZCB0byB0aGUgb25TdWJtaXQgb2YgbG9naW4gd2lkZ2V0IG9yIGxvZ2luQnV0dG9uIGluc2lkZSBpdCwgaW52b2tlIGRlZmF1bHQgbG9naW4gYWN0aW9uXG4gICAgICAgICAgICBpZiAoIXRoaXMubmF0aXZlRWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3N1Ym1pdC5ldmVudCcpICYmICF0aGlzLmxvZ2luQnRuQ21wLmdldE5hdGl2ZUVsZW1lbnQoKS5oYXNBdHRyaWJ1dGUoJ2NsaWNrLmV2ZW50JykgJiYgIXRoaXMubG9naW5CdG5DbXAuZ2V0TmF0aXZlRWxlbWVudCgpLmhhc0F0dHJpYnV0ZSgndGFwLmV2ZW50JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRvTG9naW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmxvZ2luQnRuQ21wLmdldE5hdGl2ZUVsZW1lbnQoKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuYm91bmRMb2dpbkJ1dHRvbkNsaWNrKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuXG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogU3RvcmUgYm91bmQgZnVuY3Rpb24gcmVmZXJlbmNlXG4gICAgICAgIHRoaXMuYm91bmRGb3JtU3VibWl0ID0gKGUpID0+IGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgLy8gc3VwcHJlc3NlcyB0aGUgZGVmYXVsdCBmb3JtIHN1Ym1pc3Npb24gKGluIGJyb3dzZXJzIGxpa2UgRmlyZWZveClcbiAgICAgICAgdGhpcy5mb3JtQ21wLmdldE5hdGl2ZUVsZW1lbnQoKS5hZGRFdmVudExpc3RlbmVyKCdzdWJtaXQnLCB0aGlzLmJvdW5kRm9ybVN1Ym1pdCk7XG5cbiAgICAgICAgLy8gZ2V0IGxvZ2luIGJ1dHRvbiBjb21wb25lbnRcbiAgICAgICAgdGhpcy5idXR0b25Db21wb25lbnRzLmZvckVhY2goY21wID0+IHtcbiAgICAgICAgICAgIGlmIChjbXAuZ2V0TmF0aXZlRWxlbWVudCgpLmdldEF0dHJpYnV0ZSgnbmFtZScpID09PSAnbG9naW5CdXR0b24nIHx8IGluY2x1ZGVzKGNtcC5nZXROYXRpdmVFbGVtZW50KCkuY2xhc3NMaXN0LCAnYXBwLWxvZ2luLWJ1dHRvbicpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubG9naW5CdG5DbXApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2luQnRuQ21wID0gY21wO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdExvZ2luQnV0dG9uQWN0aW9ucygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBSZW1vdmUgZXZlbnQgbGlzdGVuZXJzIHVzaW5nIHN0b3JlZCBib3VuZCBmdW5jdGlvbiByZWZlcmVuY2VzXG4gICAgICAgIGlmICh0aGlzLmxvZ2luQnRuQ21wICYmIHRoaXMuYm91bmRMb2dpbkJ1dHRvbkNsaWNrKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2luQnRuQ21wLmdldE5hdGl2ZUVsZW1lbnQoKS5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuYm91bmRMb2dpbkJ1dHRvbkNsaWNrKTtcbiAgICAgICAgICAgIHRoaXMuYm91bmRMb2dpbkJ1dHRvbkNsaWNrID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvcm1DbXAgJiYgdGhpcy5ib3VuZEZvcm1TdWJtaXQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUNtcC5nZXROYXRpdmVFbGVtZW50KCkucmVtb3ZlRXZlbnRMaXN0ZW5lcignc3VibWl0JywgdGhpcy5ib3VuZEZvcm1TdWJtaXQpO1xuICAgICAgICAgICAgdGhpcy5ib3VuZEZvcm1TdWJtaXQgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciBRdWVyeUxpc3QgYW5kIFZpZXdDaGlsZCByZWZlcmVuY2VzXG4gICAgICAgIHRoaXMuYnV0dG9uQ29tcG9uZW50cyA9IG51bGw7XG4gICAgICAgIHRoaXMubWVzc2FnZUNtcCA9IG51bGw7XG4gICAgICAgIHRoaXMuZm9ybUNtcCA9IG51bGw7XG4gICAgICAgIHRoaXMubG9naW5CdG5DbXAgPSBudWxsO1xuXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPHAgd21NZXNzYWdlIGNsYXNzPVwiYXBwLWxvZ2luLW1lc3NhZ2VcIiAjbWVzc2FnZSBzaG93LmJpbmQ9XCJsb2dpbk1lc3NhZ2Uuc2hvd1wiIGNhcHRpb24uYmluZD1cImxvZ2luTWVzc2FnZS5jYXB0aW9uXCIgdHlwZS5iaW5kPVwibG9naW5NZXNzYWdlLnR5cGVcIj48L3A+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
@@ -43,17 +43,21 @@ class LoginComponent extends StylableComponent {
43
43
  }
44
44
  }
45
45
  initLoginButtonActions() {
46
- this.loginBtnCmp.getNativeElement().addEventListener('click', event => {
46
+ // MEMORY LEAK FIX: Store bound function reference
47
+ this.boundLoginButtonClick = (event) => {
47
48
  // if no event is attached to the onSubmit of login widget or loginButton inside it, invoke default login action
48
49
  if (!this.nativeElement.hasAttribute('submit.event') && !this.loginBtnCmp.getNativeElement().hasAttribute('click.event') && !this.loginBtnCmp.getNativeElement().hasAttribute('tap.event')) {
49
50
  this.doLogin();
50
51
  }
51
- });
52
+ };
53
+ this.loginBtnCmp.getNativeElement().addEventListener('click', this.boundLoginButtonClick);
52
54
  }
53
55
  ngAfterViewInit() {
54
56
  super.ngAfterViewInit();
57
+ // MEMORY LEAK FIX: Store bound function reference
58
+ this.boundFormSubmit = (e) => e.preventDefault();
55
59
  // suppresses the default form submission (in browsers like Firefox)
56
- this.formCmp.getNativeElement().addEventListener('submit', e => e.preventDefault());
60
+ this.formCmp.getNativeElement().addEventListener('submit', this.boundFormSubmit);
57
61
  // get login button component
58
62
  this.buttonComponents.forEach(cmp => {
59
63
  if (cmp.getNativeElement().getAttribute('name') === 'loginButton' || includes(cmp.getNativeElement().classList, 'app-login-button')) {
@@ -65,6 +69,23 @@ class LoginComponent extends StylableComponent {
65
69
  }
66
70
  });
67
71
  }
72
+ ngOnDestroy() {
73
+ // MEMORY LEAK FIX: Remove event listeners using stored bound function references
74
+ if (this.loginBtnCmp && this.boundLoginButtonClick) {
75
+ this.loginBtnCmp.getNativeElement().removeEventListener('click', this.boundLoginButtonClick);
76
+ this.boundLoginButtonClick = null;
77
+ }
78
+ if (this.formCmp && this.boundFormSubmit) {
79
+ this.formCmp.getNativeElement().removeEventListener('submit', this.boundFormSubmit);
80
+ this.boundFormSubmit = null;
81
+ }
82
+ // MEMORY LEAK FIX: Clear QueryList and ViewChild references
83
+ this.buttonComponents = null;
84
+ this.messageCmp = null;
85
+ this.formCmp = null;
86
+ this.loginBtnCmp = null;
87
+ super.ngOnDestroy();
88
+ }
68
89
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginComponent, deps: [{ token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
69
90
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LoginComponent, isStandalone: true, selector: "div[wmLogin]", providers: [
70
91
  provideAsWidgetRef(LoginComponent)
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/advanced/login/src/login.props.ts","../../../../../projects/components/widgets/advanced/login/src/login.component.ts","../../../../../projects/components/widgets/advanced/login/src/login.component.html","../../../../../projects/components/widgets/advanced/login/src/index.ts"],"sourcesContent":["import {PROP_ANY, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-login',\n new Map(\n [\n ['errormessage', PROP_STRING],\n ['eventsource', PROP_ANY]\n ]\n )\n );\n};\n","import {\n AfterViewInit,\n Component,\n ContentChild,\n ContentChildren,\n Inject,\n Injector,\n Optional,\n QueryList,\n ViewChild\n} from '@angular/core';\n\nimport { APPLY_STYLES_TYPE, MessageComponent, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { FormComponent } from '@wm/components/data/form';\nimport { ButtonComponent } from '@wm/components/input/button';\n\nimport { registerProps } from './login.props';\nimport {includes} from \"lodash-es\";\n\nconst WIDGET_INFO = {widgetType: 'wm-login', hostClass: 'app-login'};\n\n@Component({\n standalone: true, \n imports: [ MessageComponent ],\n selector: 'div[wmLogin]',\n templateUrl: './login.component.html',\n providers: [\n provideAsWidgetRef(LoginComponent)\n ]\n})\nexport class LoginComponent extends StylableComponent implements AfterViewInit {\n static initializeProps = registerProps();\n loginBtnCmp: ButtonComponent;\n\n @ContentChild(FormComponent) formCmp: FormComponent;\n @ContentChildren(ButtonComponent, {descendants: true}) buttonComponents: QueryList<ButtonComponent>;\n @ViewChild(MessageComponent, { static: true }) messageCmp: MessageComponent;\n\n loginMessage: { type?: string; caption?: any; show?: boolean; };\n errormessage: any;\n eventsource;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_INFO, explicitContext);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n }\n\n onSuccessCB() {\n this.invokeEventCallback('success');\n }\n\n onErrorCB(error?) {\n this.loginMessage = {\n type: 'error',\n caption: this.errormessage || error || this.appLocale.LABEL_INVALID_USERNAME_OR_PASSWORD,\n show: true\n };\n this.messageCmp.showMessage(this.loginMessage.caption, this.loginMessage.type);\n this.invokeEventCallback('error');\n }\n\n getLoginDetails(): any {\n return this.formCmp.dataoutput;\n }\n\n doLogin() {\n if (this.eventsource) {\n this.formCmp.ngform.valid && this.eventsource.invoke({loginInfo: this.getLoginDetails()}, this.onSuccessCB.bind(this), this.onErrorCB.bind(this));\n } else {\n console.warn('Default action \"loginAction\" does not exist. Either create the Action or assign an event to onSubmit of the login widget');\n }\n }\n\n initLoginButtonActions() {\n this.loginBtnCmp.getNativeElement().addEventListener('click', event => {\n\n // if no event is attached to the onSubmit of login widget or loginButton inside it, invoke default login action\n if (!this.nativeElement.hasAttribute('submit.event') && !this.loginBtnCmp.getNativeElement().hasAttribute('click.event') && !this.loginBtnCmp.getNativeElement().hasAttribute('tap.event')) {\n this.doLogin();\n }\n });\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n\n // suppresses the default form submission (in browsers like Firefox)\n this.formCmp.getNativeElement().addEventListener('submit', e => e.preventDefault());\n\n // get login button component\n this.buttonComponents.forEach(cmp => {\n if (cmp.getNativeElement().getAttribute('name') === 'loginButton' || includes(cmp.getNativeElement().classList, 'app-login-button')) {\n if (this.loginBtnCmp) {\n return;\n }\n this.loginBtnCmp = cmp;\n this.initLoginButtonActions();\n }\n });\n }\n}\n","<p wmMessage class=\"app-login-message\" #message show.bind=\"loginMessage.show\" caption.bind=\"loginMessage.caption\" type.bind=\"loginMessage.type\"></p>\n<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/advanced/login/src/login.props.ts","../../../../../projects/components/widgets/advanced/login/src/login.component.ts","../../../../../projects/components/widgets/advanced/login/src/login.component.html","../../../../../projects/components/widgets/advanced/login/src/index.ts"],"sourcesContent":["import {PROP_ANY, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-login',\n new Map(\n [\n ['errormessage', PROP_STRING],\n ['eventsource', PROP_ANY]\n ]\n )\n );\n};\n","import {\n AfterViewInit,\n Component,\n ContentChild,\n ContentChildren,\n Inject,\n Injector,\n Optional,\n OnDestroy,\n QueryList,\n ViewChild\n} from '@angular/core';\n\nimport { APPLY_STYLES_TYPE, MessageComponent, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { FormComponent } from '@wm/components/data/form';\nimport { ButtonComponent } from '@wm/components/input/button';\n\nimport { registerProps } from './login.props';\nimport {includes} from \"lodash-es\";\n\nconst WIDGET_INFO = {widgetType: 'wm-login', hostClass: 'app-login'};\n\n@Component({\n standalone: true, \n imports: [ MessageComponent ],\n selector: 'div[wmLogin]',\n templateUrl: './login.component.html',\n providers: [\n provideAsWidgetRef(LoginComponent)\n ]\n})\nexport class LoginComponent extends StylableComponent implements AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n loginBtnCmp: ButtonComponent;\n\n @ContentChild(FormComponent) formCmp: FormComponent;\n @ContentChildren(ButtonComponent, {descendants: true}) buttonComponents: QueryList<ButtonComponent>;\n @ViewChild(MessageComponent, { static: true }) messageCmp: MessageComponent;\n\n loginMessage: { type?: string; caption?: any; show?: boolean; };\n errormessage: any;\n eventsource;\n private boundLoginButtonClick: (event: Event) => void;\n private boundFormSubmit: (e: Event) => void;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_INFO, explicitContext);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n }\n\n onSuccessCB() {\n this.invokeEventCallback('success');\n }\n\n onErrorCB(error?) {\n this.loginMessage = {\n type: 'error',\n caption: this.errormessage || error || this.appLocale.LABEL_INVALID_USERNAME_OR_PASSWORD,\n show: true\n };\n this.messageCmp.showMessage(this.loginMessage.caption, this.loginMessage.type);\n this.invokeEventCallback('error');\n }\n\n getLoginDetails(): any {\n return this.formCmp.dataoutput;\n }\n\n doLogin() {\n if (this.eventsource) {\n this.formCmp.ngform.valid && this.eventsource.invoke({loginInfo: this.getLoginDetails()}, this.onSuccessCB.bind(this), this.onErrorCB.bind(this));\n } else {\n console.warn('Default action \"loginAction\" does not exist. Either create the Action or assign an event to onSubmit of the login widget');\n }\n }\n\n initLoginButtonActions() {\n // MEMORY LEAK FIX: Store bound function reference\n this.boundLoginButtonClick = (event) => {\n // if no event is attached to the onSubmit of login widget or loginButton inside it, invoke default login action\n if (!this.nativeElement.hasAttribute('submit.event') && !this.loginBtnCmp.getNativeElement().hasAttribute('click.event') && !this.loginBtnCmp.getNativeElement().hasAttribute('tap.event')) {\n this.doLogin();\n }\n };\n\n this.loginBtnCmp.getNativeElement().addEventListener('click', this.boundLoginButtonClick);\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n\n // MEMORY LEAK FIX: Store bound function reference\n this.boundFormSubmit = (e) => e.preventDefault();\n // suppresses the default form submission (in browsers like Firefox)\n this.formCmp.getNativeElement().addEventListener('submit', this.boundFormSubmit);\n\n // get login button component\n this.buttonComponents.forEach(cmp => {\n if (cmp.getNativeElement().getAttribute('name') === 'loginButton' || includes(cmp.getNativeElement().classList, 'app-login-button')) {\n if (this.loginBtnCmp) {\n return;\n }\n this.loginBtnCmp = cmp;\n this.initLoginButtonActions();\n }\n });\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Remove event listeners using stored bound function references\n if (this.loginBtnCmp && this.boundLoginButtonClick) {\n this.loginBtnCmp.getNativeElement().removeEventListener('click', this.boundLoginButtonClick);\n this.boundLoginButtonClick = null;\n }\n\n if (this.formCmp && this.boundFormSubmit) {\n this.formCmp.getNativeElement().removeEventListener('submit', this.boundFormSubmit);\n this.boundFormSubmit = null;\n }\n\n // MEMORY LEAK FIX: Clear QueryList and ViewChild references\n this.buttonComponents = null;\n this.messageCmp = null;\n this.formCmp = null;\n this.loginBtnCmp = null;\n\n super.ngOnDestroy();\n }\n}\n","<p wmMessage class=\"app-login-message\" #message show.bind=\"loginMessage.show\" caption.bind=\"loginMessage.caption\" type.bind=\"loginMessage.type\"></p>\n<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;AAEO,MAAM,aAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,UAAU,EACV,IAAI,GAAG,CACH;QACI,CAAC,cAAc,EAAE,WAAW,CAAC;QAC7B,CAAC,aAAa,EAAE,QAAQ;AAC3B,KAAA,CACJ,CACJ;AACL,CAAC;;ACQD,MAAM,WAAW,GAAG,EAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAC;AAW9D,MAAO,cAAe,SAAQ,iBAAiB,CAAA;AAC1C,IAAA,SAAA,IAAA,CAAA,eAAe,GAAG,aAAa,EAAhB,CAAmB;IAazC,WAAA,CAAY,GAAa,EAA0C,eAAoB,EAAA;AACnF,QAAA,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,eAAe,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC;IACjE;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;IACvC;AAEA,IAAA,SAAS,CAAC,KAAM,EAAA;QACZ,IAAI,CAAC,YAAY,GAAG;AAChB,YAAA,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,IAAI,CAAC,YAAY,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,kCAAkC;AACxF,YAAA,IAAI,EAAE;SACT;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AAC9E,QAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;IACrC;IAEA,eAAe,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU;IAClC;IAEA,OAAO,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAC,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,EAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrJ;aAAO;AACH,YAAA,OAAO,CAAC,IAAI,CAAC,0HAA0H,CAAC;QAC5I;IACJ;IAEA,sBAAsB,GAAA;;AAElB,QAAA,IAAI,CAAC,qBAAqB,GAAG,CAAC,KAAK,KAAI;;AAEnC,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;gBACxL,IAAI,CAAC,OAAO,EAAE;YAClB;AACJ,QAAA,CAAC;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC;IAC7F;IAEA,eAAe,GAAA;QACX,KAAK,CAAC,eAAe,EAAE;;AAGvB,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE;;AAEhD,QAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC;;AAGhF,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,IAAG;YAChC,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,aAAa,IAAI,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAAE;AACjI,gBAAA,IAAI,IAAI,CAAC,WAAW,EAAE;oBAClB;gBACJ;AACA,gBAAA,IAAI,CAAC,WAAW,GAAG,GAAG;gBACtB,IAAI,CAAC,sBAAsB,EAAE;YACjC;AACJ,QAAA,CAAC,CAAC;IACN;IAEA,WAAW,GAAA;;QAEP,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAChD,YAAA,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC;AAC5F,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;QACrC;QAEA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE;AACtC,YAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC;AACnF,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI;QAC/B;;AAGA,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;AAC5B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;QAEvB,KAAK,CAAC,WAAW,EAAE;IACvB;AAhGS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,0CAcY,kBAAkB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAd5C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,SAAA,EAJZ;YACP,kBAAkB,CAAC,cAAc;SACpC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAMa,aAAa,sEACV,eAAe,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACrB,gBAAgB,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrC/B,2LAEA,4CDsBe,gBAAgB,EAAA,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAOlB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAT1B,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,WACP,CAAE,gBAAgB,CAAE,EAAA,QAAA,EACnB,cAAc,EAAA,SAAA,EAEb;AACP,wBAAA,kBAAkB,CAAA,cAAA;AACrB,qBAAA,EAAA,QAAA,EAAA,2LAAA,EAAA;;0BAgB2B,MAAM;2BAAC,kBAAkB;;0BAAG;yCAV3B,OAAO,EAAA,CAAA;sBAAnC,YAAY;uBAAC,aAAa;gBAC4B,gBAAgB,EAAA,CAAA;sBAAtE,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,eAAe,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC;gBACN,UAAU,EAAA,CAAA;sBAAxD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;AErCjD;;AAEG;;;;"}
@@ -1,9 +1,9 @@
1
- import { AfterViewInit, Injector, QueryList } from '@angular/core';
1
+ import { AfterViewInit, Injector, OnDestroy, QueryList } from '@angular/core';
2
2
  import { MessageComponent, StylableComponent } from '@wm/components/base';
3
3
  import { FormComponent } from '@wm/components/data/form';
4
4
  import { ButtonComponent } from '@wm/components/input/button';
5
5
  import * as i0 from "@angular/core";
6
- export declare class LoginComponent extends StylableComponent implements AfterViewInit {
6
+ export declare class LoginComponent extends StylableComponent implements AfterViewInit, OnDestroy {
7
7
  static initializeProps: void;
8
8
  loginBtnCmp: ButtonComponent;
9
9
  formCmp: FormComponent;
@@ -16,6 +16,8 @@ export declare class LoginComponent extends StylableComponent implements AfterVi
16
16
  };
17
17
  errormessage: any;
18
18
  eventsource: any;
19
+ private boundLoginButtonClick;
20
+ private boundFormSubmit;
19
21
  constructor(inj: Injector, explicitContext: any);
20
22
  onSuccessCB(): void;
21
23
  onErrorCB(error?: any): void;
@@ -23,6 +25,7 @@ export declare class LoginComponent extends StylableComponent implements AfterVi
23
25
  doLogin(): void;
24
26
  initLoginButtonActions(): void;
25
27
  ngAfterViewInit(): void;
28
+ ngOnDestroy(): void;
26
29
  static ɵfac: i0.ɵɵFactoryDeclaration<LoginComponent, [null, { optional: true; }]>;
27
30
  static ɵcmp: i0.ɵɵComponentDeclaration<LoginComponent, "div[wmLogin]", never, {}, {}, ["formCmp", "buttonComponents"], ["*"], true, never>;
28
31
  }