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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (412) hide show
  1. package/components/advanced/carousel/bundles/index.umd.js +15 -1
  2. package/components/advanced/carousel/carousel.directive.d.ts +1 -0
  3. package/components/advanced/carousel/esm2022/carousel.directive.mjs +16 -2
  4. package/components/advanced/carousel/fesm2022/index.mjs +15 -1
  5. package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  6. package/components/advanced/login/bundles/index.umd.js +24 -3
  7. package/components/advanced/login/esm2022/login.component.mjs +25 -4
  8. package/components/advanced/login/fesm2022/index.mjs +24 -3
  9. package/components/advanced/login/fesm2022/index.mjs.map +1 -1
  10. package/components/advanced/login/login.component.d.ts +5 -2
  11. package/components/base/bundles/index.umd.js +331 -36
  12. package/components/base/directives/show-in-device.directive.d.ts +2 -1
  13. package/components/base/esm2022/directives/show-in-device.directive.mjs +22 -4
  14. package/components/base/esm2022/pipes/custom-pipes.mjs +10 -10
  15. package/components/base/esm2022/utils/widget-utils.mjs +3 -3
  16. package/components/base/esm2022/widgets/common/base/base-container.component.mjs +27 -1
  17. package/components/base/esm2022/widgets/common/base/base-field-validations.mjs +18 -1
  18. package/components/base/esm2022/widgets/common/base/base.component.mjs +68 -7
  19. package/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +9 -1
  20. package/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +44 -11
  21. package/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +20 -1
  22. package/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +26 -1
  23. package/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +44 -4
  24. package/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +16 -1
  25. package/components/base/esm2022/widgets/common/pull-to-refresh/pull-to-refresh.mjs +22 -1
  26. package/components/base/esm2022/widgets/framework/property-change-handler.mjs +7 -2
  27. package/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +5 -3
  28. package/components/base/esm2022/widgets/framework/widget-registry.mjs +6 -3
  29. package/components/base/fesm2022/index.mjs +327 -34
  30. package/components/base/fesm2022/index.mjs.map +1 -1
  31. package/components/base/pipes/custom-pipes.d.ts +5 -5
  32. package/components/base/widgets/common/base/base-container.component.d.ts +3 -2
  33. package/components/base/widgets/common/base/base-field-validations.d.ts +1 -0
  34. package/components/base/widgets/common/base/custom-widget-container.directive.d.ts +3 -2
  35. package/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +6 -2
  36. package/components/base/widgets/common/base/partial-container.directive.d.ts +3 -2
  37. package/components/base/widgets/common/item-template/item-template.directive.d.ts +3 -2
  38. package/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +1 -1
  39. package/components/base/widgets/common/partial-param/partial-param.directive.d.ts +3 -2
  40. package/components/base/widgets/common/pull-to-refresh/pull-to-refresh.d.ts +3 -2
  41. package/components/basic/anchor/bundles/index.umd.js +13 -1
  42. package/components/basic/anchor/esm2022/anchor.component.mjs +14 -2
  43. package/components/basic/anchor/fesm2022/index.mjs +13 -1
  44. package/components/basic/anchor/fesm2022/index.mjs.map +1 -1
  45. package/components/basic/html/bundles/index.umd.js +13 -1
  46. package/components/basic/html/esm2022/html.directive.mjs +14 -2
  47. package/components/basic/html/fesm2022/index.mjs +13 -1
  48. package/components/basic/html/fesm2022/index.mjs.map +1 -1
  49. package/components/basic/label/bundles/index.umd.js +17 -1
  50. package/components/basic/label/esm2022/label.directive.mjs +18 -2
  51. package/components/basic/label/fesm2022/index.mjs +17 -1
  52. package/components/basic/label/fesm2022/index.mjs.map +1 -1
  53. package/components/basic/label/label.directive.d.ts +3 -2
  54. package/components/basic/progress/progress-circle/bundles/index.umd.js +10 -0
  55. package/components/basic/progress/progress-circle/esm2022/progress-circle.component.mjs +11 -1
  56. package/components/basic/progress/progress-circle/fesm2022/index.mjs +10 -0
  57. package/components/basic/progress/progress-circle/fesm2022/index.mjs.map +1 -1
  58. package/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -2
  59. package/components/basic/search/bundles/index.umd.js +31 -5
  60. package/components/basic/search/esm2022/scrollable.directive.mjs +13 -4
  61. package/components/basic/search/esm2022/search.component.mjs +20 -3
  62. package/components/basic/search/fesm2022/index.mjs +31 -5
  63. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  64. package/components/basic/search/scrollable.directive.d.ts +5 -3
  65. package/components/basic/search/search.component.d.ts +3 -2
  66. package/components/basic/spinner/bundles/index.umd.js +9 -1
  67. package/components/basic/spinner/esm2022/spinner.component.mjs +10 -2
  68. package/components/basic/spinner/fesm2022/index.mjs +9 -1
  69. package/components/basic/spinner/fesm2022/index.mjs.map +1 -1
  70. package/components/basic/spinner/spinner.component.d.ts +4 -2
  71. package/components/chart/bundles/index.umd.js +21 -3
  72. package/components/chart/esm2022/chart.component.mjs +22 -4
  73. package/components/chart/fesm2022/index.mjs +21 -3
  74. package/components/chart/fesm2022/index.mjs.map +1 -1
  75. package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +3 -2
  76. package/components/containers/accordion/accordion.directive.d.ts +5 -2
  77. package/components/containers/accordion/bundles/index.umd.js +49 -2
  78. package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +10 -1
  79. package/components/containers/accordion/esm2022/accordion.directive.mjs +41 -3
  80. package/components/containers/accordion/fesm2022/index.mjs +49 -2
  81. package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  82. package/components/containers/panel/bundles/index.umd.js +13 -0
  83. package/components/containers/panel/esm2022/panel.component.mjs +14 -1
  84. package/components/containers/panel/fesm2022/index.mjs +13 -0
  85. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  86. package/components/containers/panel/panel.component.d.ts +3 -2
  87. package/components/containers/tabs/bundles/index.umd.js +54 -2
  88. package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +10 -1
  89. package/components/containers/tabs/esm2022/tabs.component.mjs +46 -3
  90. package/components/containers/tabs/fesm2022/index.mjs +54 -2
  91. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  92. package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +3 -2
  93. package/components/containers/tabs/tabs.component.d.ts +5 -2
  94. package/components/containers/wizard/bundles/index.umd.js +47 -3
  95. package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +16 -3
  96. package/components/containers/wizard/esm2022/wizard.component.mjs +33 -2
  97. package/components/containers/wizard/fesm2022/index.mjs +47 -3
  98. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  99. package/components/containers/wizard/wizard-step/wizard-step.component.d.ts +3 -2
  100. package/components/containers/wizard/wizard.component.d.ts +4 -2
  101. package/components/data/card/bundles/index.umd.js +17 -1
  102. package/components/data/card/card-content/card-content.component.d.ts +3 -2
  103. package/components/data/card/card.component.d.ts +4 -2
  104. package/components/data/card/esm2022/card-content/card-content.component.mjs +6 -1
  105. package/components/data/card/esm2022/card.component.mjs +13 -2
  106. package/components/data/card/fesm2022/index.mjs +17 -1
  107. package/components/data/card/fesm2022/index.mjs.map +1 -1
  108. package/components/data/form/bundles/index.umd.js +92 -0
  109. package/components/data/form/esm2022/form-action/form-action.directive.mjs +7 -1
  110. package/components/data/form/esm2022/form-field/form-field.directive.mjs +28 -1
  111. package/components/data/form/esm2022/form-widget.directive.mjs +8 -1
  112. package/components/data/form/esm2022/form.component.mjs +27 -1
  113. package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +7 -1
  114. package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +12 -1
  115. package/components/data/form/esm2022/live-form/live-form.directive.mjs +10 -1
  116. package/components/data/form/fesm2022/index.mjs +92 -0
  117. package/components/data/form/fesm2022/index.mjs.map +1 -1
  118. package/components/data/form/form-action/form-action.directive.d.ts +3 -2
  119. package/components/data/form/form-field/form-field.directive.d.ts +3 -2
  120. package/components/data/form/form-widget.directive.d.ts +3 -2
  121. package/components/data/form/live-actions/live-actions.directive.d.ts +3 -1
  122. package/components/data/form/live-filter/live-filter.directive.d.ts +3 -1
  123. package/components/data/form/live-form/live-form.directive.d.ts +3 -1
  124. package/components/data/list/bundles/index.umd.js +213 -19
  125. package/components/data/list/esm2022/list-item.directive.mjs +95 -11
  126. package/components/data/list/esm2022/list.component.mjs +120 -10
  127. package/components/data/list/fesm2022/index.mjs +213 -19
  128. package/components/data/list/fesm2022/index.mjs.map +1 -1
  129. package/components/data/list/list-item.directive.d.ts +7 -2
  130. package/components/data/list/list.component.d.ts +7 -0
  131. package/components/data/live-table/bundles/index.umd.js +13 -1
  132. package/components/data/live-table/esm2022/live-table.component.mjs +14 -2
  133. package/components/data/live-table/fesm2022/index.mjs +13 -1
  134. package/components/data/live-table/fesm2022/index.mjs.map +1 -1
  135. package/components/data/live-table/live-table.component.d.ts +4 -2
  136. package/components/data/pagination/bundles/index.umd.js +57 -4
  137. package/components/data/pagination/esm2022/pagination.component.mjs +58 -5
  138. package/components/data/pagination/fesm2022/index.mjs +57 -4
  139. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  140. package/components/data/pagination/pagination.component.d.ts +4 -2
  141. package/components/data/table/bundles/index.umd.js +345 -15
  142. package/components/data/table/esm2022/table-action/table-action.directive.mjs +8 -1
  143. package/components/data/table/esm2022/table-column/table-column.directive.mjs +107 -3
  144. package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +9 -1
  145. package/components/data/table/esm2022/table-cud.directive.mjs +8 -2
  146. package/components/data/table/esm2022/table-filter.directive.mjs +12 -2
  147. package/components/data/table/esm2022/table-row/table-row.directive.mjs +8 -1
  148. package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +8 -1
  149. package/components/data/table/esm2022/table.component.mjs +193 -12
  150. package/components/data/table/fesm2022/index.mjs +345 -15
  151. package/components/data/table/fesm2022/index.mjs.map +1 -1
  152. package/components/data/table/table-action/table-action.directive.d.ts +3 -2
  153. package/components/data/table/table-column/table-column.directive.d.ts +3 -2
  154. package/components/data/table/table-column-group/table-column-group.directive.d.ts +3 -2
  155. package/components/data/table/table-cud.directive.d.ts +3 -1
  156. package/components/data/table/table-filter.directive.d.ts +3 -1
  157. package/components/data/table/table-row/table-row.directive.d.ts +3 -2
  158. package/components/data/table/table-row-action/table-row-action.directive.d.ts +3 -2
  159. package/components/data/table/table.component.d.ts +6 -2
  160. package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +3 -2
  161. package/components/dialogs/alert-dialog/bundles/index.umd.js +5 -0
  162. package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +6 -1
  163. package/components/dialogs/alert-dialog/fesm2022/index.mjs +5 -0
  164. package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  165. package/components/dialogs/confirm-dialog/bundles/index.umd.js +5 -0
  166. package/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +3 -2
  167. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +6 -1
  168. package/components/dialogs/confirm-dialog/fesm2022/index.mjs +5 -0
  169. package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  170. package/components/dialogs/default/bundles/index.umd.js +15 -2
  171. package/components/dialogs/default/dialog-body/dialog-body.directive.d.ts +4 -2
  172. package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +16 -3
  173. package/components/dialogs/default/fesm2022/index.mjs +15 -2
  174. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  175. package/components/dialogs/design-dialog/bundles/index.umd.js +7 -0
  176. package/components/dialogs/design-dialog/dialog.component.d.ts +3 -2
  177. package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +8 -1
  178. package/components/dialogs/design-dialog/fesm2022/index.mjs +7 -0
  179. package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  180. package/components/dialogs/iframe-dialog/bundles/index.umd.js +5 -0
  181. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +6 -1
  182. package/components/dialogs/iframe-dialog/fesm2022/index.mjs +5 -0
  183. package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  184. package/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +3 -2
  185. package/components/dialogs/partial-dialog/bundles/index.umd.js +23 -3
  186. package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +24 -4
  187. package/components/dialogs/partial-dialog/fesm2022/index.mjs +23 -3
  188. package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  189. package/components/dialogs/partial-dialog/partial-dialog.component.d.ts +4 -2
  190. package/components/input/base-form/base-form.component.d.ts +4 -2
  191. package/components/input/base-form/bundles/index.umd.js +16 -2
  192. package/components/input/base-form/esm2022/base-form.component.mjs +17 -3
  193. package/components/input/base-form/fesm2022/index.mjs +16 -2
  194. package/components/input/base-form/fesm2022/index.mjs.map +1 -1
  195. package/components/input/base-form-custom/base-form-custom.component.d.ts +3 -2
  196. package/components/input/base-form-custom/bundles/index.umd.js +13 -2
  197. package/components/input/base-form-custom/esm2022/base-form-custom.component.mjs +14 -3
  198. package/components/input/base-form-custom/fesm2022/index.mjs +13 -2
  199. package/components/input/base-form-custom/fesm2022/index.mjs.map +1 -1
  200. package/components/input/checkbox/bundles/index.umd.js +7 -0
  201. package/components/input/checkbox/checkbox.component.d.ts +3 -2
  202. package/components/input/checkbox/esm2022/checkbox.component.mjs +8 -1
  203. package/components/input/checkbox/fesm2022/index.mjs +7 -0
  204. package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
  205. package/components/input/checkboxset/bundles/index.umd.js +18 -2
  206. package/components/input/checkboxset/checkboxset.component.d.ts +4 -2
  207. package/components/input/checkboxset/esm2022/checkboxset.component.mjs +19 -3
  208. package/components/input/checkboxset/fesm2022/index.mjs +18 -2
  209. package/components/input/checkboxset/fesm2022/index.mjs.map +1 -1
  210. package/components/input/chips/bundles/index.umd.js +45 -5
  211. package/components/input/chips/chips.component.d.ts +3 -2
  212. package/components/input/chips/esm2022/chips.component.mjs +46 -6
  213. package/components/input/chips/fesm2022/index.mjs +45 -5
  214. package/components/input/chips/fesm2022/index.mjs.map +1 -1
  215. package/components/input/color-picker/bundles/index.umd.js +8 -0
  216. package/components/input/color-picker/color-picker.component.d.ts +3 -2
  217. package/components/input/color-picker/esm2022/color-picker.component.mjs +9 -1
  218. package/components/input/color-picker/fesm2022/index.mjs +8 -0
  219. package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  220. package/components/input/composite/bundles/index.umd.js +10 -1
  221. package/components/input/composite/composite.directive.d.ts +3 -2
  222. package/components/input/composite/esm2022/composite.directive.mjs +11 -2
  223. package/components/input/composite/fesm2022/index.mjs +10 -1
  224. package/components/input/composite/fesm2022/index.mjs.map +1 -1
  225. package/components/input/currency/bundles/index.umd.js +7 -0
  226. package/components/input/currency/currency.component.d.ts +3 -2
  227. package/components/input/currency/esm2022/currency.component.mjs +8 -1
  228. package/components/input/currency/fesm2022/index.mjs +7 -0
  229. package/components/input/currency/fesm2022/index.mjs.map +1 -1
  230. package/components/input/dataset-aware-form/bundles/index.umd.js +26 -2
  231. package/components/input/dataset-aware-form/esm2022/dataset-aware-form.component.mjs +27 -3
  232. package/components/input/dataset-aware-form/fesm2022/index.mjs +26 -2
  233. package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -1
  234. package/components/input/epoch/date/bundles/index.umd.js +22 -0
  235. package/components/input/epoch/date/date.component.d.ts +1 -0
  236. package/components/input/epoch/date/esm2022/date.component.mjs +23 -1
  237. package/components/input/epoch/date/fesm2022/index.mjs +22 -0
  238. package/components/input/epoch/date/fesm2022/index.mjs.map +1 -1
  239. package/components/input/file-upload/bundles/index.umd.js +25 -8
  240. package/components/input/file-upload/esm2022/file-upload.component.mjs +26 -9
  241. package/components/input/file-upload/fesm2022/index.mjs +25 -8
  242. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  243. package/components/input/file-upload/file-upload.component.d.ts +3 -0
  244. package/components/input/number/bundles/index.umd.js +8 -0
  245. package/components/input/number/esm2022/number.component.mjs +9 -1
  246. package/components/input/number/fesm2022/index.mjs +8 -0
  247. package/components/input/number/fesm2022/index.mjs.map +1 -1
  248. package/components/input/number/number.component.d.ts +3 -2
  249. package/components/input/radioset/bundles/index.umd.js +18 -2
  250. package/components/input/radioset/esm2022/radioset.component.mjs +19 -3
  251. package/components/input/radioset/fesm2022/index.mjs +18 -2
  252. package/components/input/radioset/fesm2022/index.mjs.map +1 -1
  253. package/components/input/radioset/radioset.component.d.ts +4 -2
  254. package/components/input/rating/bundles/index.umd.js +10 -0
  255. package/components/input/rating/esm2022/rating.component.mjs +11 -1
  256. package/components/input/rating/fesm2022/index.mjs +10 -0
  257. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  258. package/components/input/rating/rating.component.d.ts +3 -2
  259. package/components/input/select/bundles/index.umd.js +6 -0
  260. package/components/input/select/esm2022/select.component.mjs +7 -1
  261. package/components/input/select/fesm2022/index.mjs +6 -0
  262. package/components/input/select/fesm2022/index.mjs.map +1 -1
  263. package/components/input/select/select.component.d.ts +3 -2
  264. package/components/input/slider/bundles/index.umd.js +10 -0
  265. package/components/input/slider/esm2022/slider.component.mjs +11 -1
  266. package/components/input/slider/fesm2022/index.mjs +10 -0
  267. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  268. package/components/input/slider/slider.component.d.ts +3 -2
  269. package/components/input/switch/bundles/index.umd.js +22 -2
  270. package/components/input/switch/esm2022/switch.component.mjs +23 -3
  271. package/components/input/switch/fesm2022/index.mjs +22 -2
  272. package/components/input/switch/fesm2022/index.mjs.map +1 -1
  273. package/components/input/switch/switch.component.d.ts +3 -2
  274. package/components/input/text/bundles/index.umd.js +36 -0
  275. package/components/input/text/esm2022/input-calendar/input-calendar.component.mjs +8 -1
  276. package/components/input/text/esm2022/input-color/input-color.component.mjs +8 -1
  277. package/components/input/text/esm2022/input-email/input-email.component.mjs +8 -1
  278. package/components/input/text/esm2022/input-number/input-number.component.mjs +8 -1
  279. package/components/input/text/esm2022/input-text/input-text.component.mjs +9 -1
  280. package/components/input/text/fesm2022/index.mjs +36 -0
  281. package/components/input/text/fesm2022/index.mjs.map +1 -1
  282. package/components/input/text/input-calendar/input-calendar.component.d.ts +3 -2
  283. package/components/input/text/input-color/input-color.component.d.ts +3 -2
  284. package/components/input/text/input-email/input-email.component.d.ts +3 -2
  285. package/components/input/text/input-number/input-number.component.d.ts +3 -2
  286. package/components/input/text/input-text/input-text.component.d.ts +3 -2
  287. package/components/input/textarea/bundles/index.umd.js +7 -0
  288. package/components/input/textarea/esm2022/textarea.component.mjs +8 -1
  289. package/components/input/textarea/fesm2022/index.mjs +7 -0
  290. package/components/input/textarea/fesm2022/index.mjs.map +1 -1
  291. package/components/input/textarea/textarea.component.d.ts +3 -2
  292. package/components/navigation/menu/bundles/index.umd.js +55 -6
  293. package/components/navigation/menu/esm2022/menu-adapator.component.mjs +17 -3
  294. package/components/navigation/menu/esm2022/menu.component.mjs +10 -3
  295. package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +6 -1
  296. package/components/navigation/menu/esm2022/nav/nav.component.mjs +11 -1
  297. package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +16 -3
  298. package/components/navigation/menu/fesm2022/index.mjs +55 -6
  299. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  300. package/components/navigation/menu/menu-adapator.component.d.ts +4 -2
  301. package/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +3 -2
  302. package/components/navigation/menu/nav/nav.component.d.ts +3 -2
  303. package/components/navigation/menu/nav/navigation-control.directive.d.ts +4 -2
  304. package/components/navigation/navbar/bundles/index.umd.js +5 -0
  305. package/components/navigation/navbar/esm2022/navbar.component.mjs +6 -1
  306. package/components/navigation/navbar/fesm2022/index.mjs +5 -0
  307. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  308. package/components/navigation/navbar/navbar.component.d.ts +3 -2
  309. package/components/navigation/popover/bundles/index.umd.js +65 -13
  310. package/components/navigation/popover/esm2022/popover.component.mjs +63 -11
  311. package/components/navigation/popover/fesm2022/index.mjs +62 -10
  312. package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  313. package/components/navigation/popover/popover.component.d.ts +11 -3
  314. package/components/page/default/bundles/index.umd.js +30 -6
  315. package/components/page/default/esm2022/layout.directive.mjs +9 -1
  316. package/components/page/default/esm2022/page-content/page-content.component.mjs +13 -3
  317. package/components/page/default/esm2022/router-outlet.directive.mjs +13 -6
  318. package/components/page/default/fesm2022/index.mjs +30 -6
  319. package/components/page/default/fesm2022/index.mjs.map +1 -1
  320. package/components/page/default/layout.directive.d.ts +3 -2
  321. package/components/page/default/page-content/page-content.component.d.ts +3 -2
  322. package/components/page/default/router-outlet.directive.d.ts +5 -2
  323. package/components/page/left-panel/bundles/index.umd.js +16 -0
  324. package/components/page/left-panel/esm2022/left-panel.directive.mjs +17 -1
  325. package/components/page/left-panel/fesm2022/index.mjs +16 -0
  326. package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  327. package/components/page/left-panel/left-panel.directive.d.ts +3 -2
  328. package/components/page/top-nav/bundles/index.umd.js +2 -1
  329. package/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
  330. package/components/page/top-nav/fesm2022/index.mjs +2 -1
  331. package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  332. package/components/prefab/bundles/index.umd.js +4 -0
  333. package/components/prefab/esm2022/prefab.directive.mjs +5 -1
  334. package/components/prefab/fesm2022/index.mjs +4 -0
  335. package/components/prefab/fesm2022/index.mjs.map +1 -1
  336. package/core/bundles/index.umd.js +391 -94
  337. package/core/esm2022/public_api.mjs +3 -3
  338. package/core/esm2022/services/viewport.service.mjs +24 -10
  339. package/core/esm2022/types/types.mjs +1 -1
  340. package/core/esm2022/utils/dom.mjs +18 -2
  341. package/core/esm2022/utils/event-notifier.mjs +5 -2
  342. package/core/esm2022/utils/lru-cache.mjs +16 -2
  343. package/core/esm2022/utils/utils.mjs +6 -2
  344. package/core/esm2022/utils/watcher.mjs +323 -81
  345. package/core/fesm2022/index.mjs +390 -96
  346. package/core/fesm2022/index.mjs.map +1 -1
  347. package/core/public_api.d.ts +2 -2
  348. package/core/services/viewport.service.d.ts +5 -2
  349. package/core/types/types.d.ts +1 -0
  350. package/core/utils/lru-cache.d.ts +6 -0
  351. package/core/utils/utils.d.ts +1 -0
  352. package/core/utils/watcher.d.ts +26 -5
  353. package/http/bundles/index.umd.js +31 -1
  354. package/http/esm2022/http.service.mjs +32 -2
  355. package/http/fesm2022/index.mjs +31 -1
  356. package/http/fesm2022/index.mjs.map +1 -1
  357. package/http/http.service.d.ts +6 -2
  358. package/npm-shrinkwrap.json +2 -2
  359. package/oAuth/bundles/index.umd.js +9 -0
  360. package/oAuth/esm2022/oAuth.service.mjs +10 -1
  361. package/oAuth/fesm2022/index.mjs +9 -0
  362. package/oAuth/fesm2022/index.mjs.map +1 -1
  363. package/oAuth/oAuth.service.d.ts +3 -1
  364. package/package-lock.json +2 -2
  365. package/package.json +1 -1
  366. package/runtime/base/bundles/index.umd.js +367 -32
  367. package/runtime/base/components/app-component/app.component.d.ts +4 -0
  368. package/runtime/base/components/prefab-preview.component.d.ts +5 -2
  369. package/runtime/base/directives/accessroles.directive.d.ts +4 -3
  370. package/runtime/base/directives/prefab.directive.d.ts +3 -2
  371. package/runtime/base/esm2022/components/app-component/app.component.mjs +40 -9
  372. package/runtime/base/esm2022/components/base-custom-widget.component.mjs +33 -2
  373. package/runtime/base/esm2022/components/base-layout.component.mjs +7 -1
  374. package/runtime/base/esm2022/components/base-page.component.mjs +36 -3
  375. package/runtime/base/esm2022/components/base-partial.component.mjs +37 -3
  376. package/runtime/base/esm2022/components/base-prefab.component.mjs +32 -3
  377. package/runtime/base/esm2022/components/base-spa-page.component.mjs +37 -3
  378. package/runtime/base/esm2022/components/prefab-preview.component.mjs +23 -4
  379. package/runtime/base/esm2022/directives/accessroles.directive.mjs +11 -2
  380. package/runtime/base/esm2022/directives/prefab.directive.mjs +9 -1
  381. package/runtime/base/esm2022/services/app.manager.service.mjs +40 -12
  382. package/runtime/base/esm2022/services/app.service.mjs +34 -2
  383. package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +4 -1
  384. package/runtime/base/esm2022/services/pipe-provider.service.mjs +7 -4
  385. package/runtime/base/esm2022/services/spinner.service.mjs +15 -1
  386. package/runtime/base/esm2022/util/fragment-monitor.mjs +23 -2
  387. package/runtime/base/fesm2022/index.mjs +368 -33
  388. package/runtime/base/fesm2022/index.mjs.map +1 -1
  389. package/runtime/base/runtime-base.module.d.ts +2 -2
  390. package/runtime/base/services/app.manager.service.d.ts +6 -1
  391. package/runtime/base/services/app.service.d.ts +12 -2
  392. package/runtime/base/services/dynamic-component-ref-provider.service.d.ts +2 -1
  393. package/runtime/base/services/spinner.service.d.ts +3 -1
  394. package/runtime/base/util/fragment-monitor.d.ts +6 -0
  395. package/runtime/dynamic/bundles/index.umd.js +5 -0
  396. package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +6 -1
  397. package/runtime/dynamic/fesm2022/index.mjs +5 -0
  398. package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  399. package/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -1
  400. package/scripts/datatable/datatable.js +100 -14
  401. package/security/bundles/index.umd.js +41 -2
  402. package/security/esm2022/security.service.mjs +42 -3
  403. package/security/fesm2022/index.mjs +41 -2
  404. package/security/fesm2022/index.mjs.map +1 -1
  405. package/security/security.service.d.ts +5 -2
  406. package/variables/bundles/index.umd.js +50 -6
  407. package/variables/esm2022/manager/action/notification-action.manager.mjs +18 -3
  408. package/variables/esm2022/manager/variable/base-variable.manager.mjs +15 -2
  409. package/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +13 -3
  410. package/variables/esm2022/service/variables.service.mjs +8 -2
  411. package/variables/fesm2022/index.mjs +50 -6
  412. package/variables/fesm2022/index.mjs.map +1 -1
@@ -1,8 +1,9 @@
1
1
  import { Directive, Inject, Injector, Optional } from '@angular/core';
2
- import { switchClass } from '@wm/core';
2
+ import { App, switchClass } from '@wm/core';
3
3
  import { provideAsWidgetRef, StylableComponent } from '@wm/components/base';
4
4
  import { registerProps } from './router-outlet.props';
5
5
  import * as i0 from "@angular/core";
6
+ import * as i1 from "@wm/core";
6
7
  const DEFAULT_CLS = 'app-content-column-wrapper';
7
8
  const WIDGET_CONFIG = {
8
9
  widgetType: 'wm-router-outlet',
@@ -10,18 +11,24 @@ const WIDGET_CONFIG = {
10
11
  };
11
12
  export class RouterOutletDirective extends StylableComponent {
12
13
  static { this.initializeProps = registerProps(); }
13
- constructor(inj, explicitContext) {
14
+ constructor(inj, explicitContext, app) {
14
15
  super(inj, WIDGET_CONFIG, explicitContext);
16
+ this.app = app;
17
+ this.isPrism = this.app.isPrism;
18
+ // Add w-100 class only for Prism appsmvn -v
19
+ if (this.isPrism) {
20
+ this.nativeElement.classList.add('w-100');
21
+ }
15
22
  }
16
23
  onPropertyChange(key, nv, ov) {
17
- if (key === 'columnwidth') {
24
+ if (key === 'columnwidth' && !this.isPrism) {
18
25
  switchClass(this.nativeElement, `col-md-${nv} col-sm-${nv}`, `col-md-${ov} col-sm-${ov}`);
19
26
  }
20
27
  else {
21
28
  super.onPropertyChange(key, nv, ov);
22
29
  }
23
30
  }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RouterOutletDirective, deps: [{ token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RouterOutletDirective, deps: [{ token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }, { token: i1.App }], target: i0.ɵɵFactoryTarget.Directive }); }
25
32
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: RouterOutletDirective, isStandalone: true, selector: "[wmRouterOutlet]", providers: [
26
33
  provideAsWidgetRef(RouterOutletDirective)
27
34
  ], usesInheritance: true, ngImport: i0 }); }
@@ -40,5 +47,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
40
47
  args: ['EXPLICIT_CONTEXT']
41
48
  }, {
42
49
  type: Optional
43
- }] }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLW91dGxldC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvcGFnZS9kZWZhdWx0L3NyYy9yb3V0ZXItb3V0bGV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFckMsT0FBTyxFQUFpQixrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFdEQsTUFBTSxXQUFXLEdBQUcsNEJBQTRCLENBQUM7QUFDakQsTUFBTSxhQUFhLEdBQWtCO0lBQ2pDLFVBQVUsRUFBRSxrQkFBa0I7SUFDOUIsU0FBUyxFQUFFLFdBQVc7Q0FDekIsQ0FBQztBQVNGLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxpQkFBaUI7YUFDakQsb0JBQWUsR0FBRyxhQUFhLEVBQUUsQUFBbEIsQ0FBbUI7SUFDekMsWUFBWSxHQUFhLEVBQTBDLGVBQW9CO1FBQ25GLEtBQUssQ0FBQyxHQUFHLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFXLEVBQUUsRUFBTyxFQUFFLEVBQVE7UUFDM0MsSUFBSSxHQUFHLEtBQUssYUFBYSxFQUFFLENBQUM7WUFDeEIsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5RixDQUFDO2FBQU0sQ0FBQztZQUNKLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDTCxDQUFDOytHQVpRLHFCQUFxQiwwQ0FFSyxrQkFBa0I7bUdBRjVDLHFCQUFxQiwrREFKbkI7WUFDUCxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQztTQUM1Qzs7NEZBRVEscUJBQXFCO2tCQVBqQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNkLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFNBQVMsRUFBRTt3QkFDUCxrQkFBa0IsdUJBQXVCO3FCQUM1QztpQkFDSjs7MEJBRytCLE1BQU07MkJBQUMsa0JBQWtCOzswQkFBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEluamVjdCwgSW5qZWN0b3IsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtzd2l0Y2hDbGFzc30gZnJvbSAnQHdtL2NvcmUnO1xuXG5pbXBvcnQgeyBJV2lkZ2V0Q29uZmlnLCBwcm92aWRlQXNXaWRnZXRSZWYsIFN0eWxhYmxlQ29tcG9uZW50IH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi9yb3V0ZXItb3V0bGV0LnByb3BzJztcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLWNvbnRlbnQtY29sdW1uLXdyYXBwZXInO1xuY29uc3QgV0lER0VUX0NPTkZJRzogSVdpZGdldENvbmZpZyA9IHtcbiAgICB3aWRnZXRUeXBlOiAnd20tcm91dGVyLW91dGxldCcsXG4gICAgaG9zdENsYXNzOiBERUZBVUxUX0NMU1xufTtcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdbd21Sb3V0ZXJPdXRsZXRdJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKFJvdXRlck91dGxldERpcmVjdGl2ZSlcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFJvdXRlck91dGxldERpcmVjdGl2ZSBleHRlbmRzIFN0eWxhYmxlQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXk6IHN0cmluZywgbnY6IGFueSwgb3Y/OiBhbnkpIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ2NvbHVtbndpZHRoJykge1xuICAgICAgICAgICAgc3dpdGNoQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCBgY29sLW1kLSR7bnZ9IGNvbC1zbS0ke252fWAsIGBjb2wtbWQtJHtvdn0gY29sLXNtLSR7b3Z9YCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
50
+ }] }, { type: i1.App }] });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLW91dGxldC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvcGFnZS9kZWZhdWx0L3NyYy9yb3V0ZXItb3V0bGV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRFLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRTVDLE9BQU8sRUFBaUIsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7OztBQUV0RCxNQUFNLFdBQVcsR0FBRyw0QkFBNEIsQ0FBQztBQUNqRCxNQUFNLGFBQWEsR0FBa0I7SUFDakMsVUFBVSxFQUFFLGtCQUFrQjtJQUM5QixTQUFTLEVBQUUsV0FBVztDQUN6QixDQUFDO0FBU0YsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGlCQUFpQjthQUNqRCxvQkFBZSxHQUFHLGFBQWEsRUFBRSxBQUFsQixDQUFtQjtJQUV6QyxZQUFZLEdBQWEsRUFBMEMsZUFBb0IsRUFBUyxHQUFRO1FBQ3BHLEtBQUssQ0FBQyxHQUFHLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBRGlELFFBQUcsR0FBSCxHQUFHLENBQUs7UUFFcEcsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUM3Qiw0Q0FBNEM7UUFDL0MsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUMsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFXLEVBQUUsRUFBTyxFQUFFLEVBQVE7UUFDM0MsSUFBSSxHQUFHLEtBQUssYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3pDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUYsQ0FBQzthQUFNLENBQUM7WUFDSixLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0wsQ0FBQzsrR0FsQlEscUJBQXFCLDBDQUdLLGtCQUFrQjttR0FINUMscUJBQXFCLCtEQUpuQjtZQUNQLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDO1NBQzVDOzs0RkFFUSxxQkFBcUI7a0JBUGpDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFNBQVMsRUFBRTt3QkFDUCxrQkFBa0IsdUJBQXVCO3FCQUM1QztpQkFDSjs7MEJBSStCLE1BQU07MkJBQUMsa0JBQWtCOzswQkFBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3QsIEluamVjdG9yLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBcHAsIHN3aXRjaENsYXNzIH0gZnJvbSAnQHdtL2NvcmUnO1xuXG5pbXBvcnQgeyBJV2lkZ2V0Q29uZmlnLCBwcm92aWRlQXNXaWRnZXRSZWYsIFN0eWxhYmxlQ29tcG9uZW50IH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi9yb3V0ZXItb3V0bGV0LnByb3BzJztcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLWNvbnRlbnQtY29sdW1uLXdyYXBwZXInO1xuY29uc3QgV0lER0VUX0NPTkZJRzogSVdpZGdldENvbmZpZyA9IHtcbiAgICB3aWRnZXRUeXBlOiAnd20tcm91dGVyLW91dGxldCcsXG4gICAgaG9zdENsYXNzOiBERUZBVUxUX0NMU1xufTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1t3bVJvdXRlck91dGxldF0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoUm91dGVyT3V0bGV0RGlyZWN0aXZlKVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUm91dGVyT3V0bGV0RGlyZWN0aXZlIGV4dGVuZHMgU3R5bGFibGVDb21wb25lbnQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG4gICAgaXNQcmlzbTogYm9vbGVhbjtcbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnksIHB1YmxpYyBhcHA6IEFwcCkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHRoaXMuaXNQcmlzbSA9IHRoaXMuYXBwLmlzUHJpc207XG4gICAgICAgICAgIC8vIEFkZCB3LTEwMCBjbGFzcyBvbmx5IGZvciBQcmlzbSBhcHBzbXZuIC12XG4gICAgICAgIGlmICh0aGlzLmlzUHJpc20pIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCd3LTEwMCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXk6IHN0cmluZywgbnY6IGFueSwgb3Y/OiBhbnkpIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ2NvbHVtbndpZHRoJyAmJiAhdGhpcy5pc1ByaXNtKSB7XG4gICAgICAgICAgICBzd2l0Y2hDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIGBjb2wtbWQtJHtudn0gY29sLXNtLSR7bnZ9YCwgYGNvbC1tZC0ke292fSBjb2wtc20tJHtvdn1gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -131,6 +131,14 @@ class LayoutDirective extends StylableComponent {
131
131
  updateDeviceView(this.nativeElement, this.getAppInstance().isTabletApplicationType);
132
132
  }, 1);
133
133
  }
134
+ ngOnDestroy() {
135
+ // MEMORY LEAK FIX: Destroy EventNotifier to release subscribers
136
+ if (this._eventNotifier) {
137
+ this._eventNotifier.destroy();
138
+ this._eventNotifier = null;
139
+ }
140
+ super.ngOnDestroy();
141
+ }
134
142
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutDirective, deps: [{ token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
135
143
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: LayoutDirective, isStandalone: true, selector: "[wmLayout]", providers: [
136
144
  provideAsWidgetRef(LayoutDirective)
@@ -203,12 +211,22 @@ class PageContentComponent extends StylableComponent {
203
211
  }
204
212
  });
205
213
  this.registerDestroyListener(() => {
206
- if (this.pullToRefreshIns.cancelSubscription) {
207
- this.pullToRefreshIns.cancelSubscription();
214
+ if (this.pullToRefreshIns && this.pullToRefreshIns.destroy) {
215
+ this.pullToRefreshIns.destroy();
216
+ this.pullToRefreshIns = null;
208
217
  }
209
218
  });
210
219
  }
211
220
  }
221
+ ngOnDestroy() {
222
+ // MEMORY LEAK FIX: Clean up pullToRefresh instance
223
+ // This is already handled by registerDestroyListener, but adding explicit cleanup as backup
224
+ if (this.pullToRefreshIns && this.pullToRefreshIns.destroy) {
225
+ this.pullToRefreshIns.destroy();
226
+ this.pullToRefreshIns = null;
227
+ }
228
+ super.ngOnDestroy();
229
+ }
212
230
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageContentComponent, deps: [{ token: i0.Injector }, { token: i2.App }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
213
231
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PageContentComponent, isStandalone: true, selector: "[wmPageContent]", providers: [
214
232
  provideAsWidgetRef(PageContentComponent)
@@ -370,18 +388,24 @@ const WIDGET_CONFIG = {
370
388
  };
371
389
  class RouterOutletDirective extends StylableComponent {
372
390
  static { this.initializeProps = registerProps(); }
373
- constructor(inj, explicitContext) {
391
+ constructor(inj, explicitContext, app) {
374
392
  super(inj, WIDGET_CONFIG, explicitContext);
393
+ this.app = app;
394
+ this.isPrism = this.app.isPrism;
395
+ // Add w-100 class only for Prism appsmvn -v
396
+ if (this.isPrism) {
397
+ this.nativeElement.classList.add('w-100');
398
+ }
375
399
  }
376
400
  onPropertyChange(key, nv, ov) {
377
- if (key === 'columnwidth') {
401
+ if (key === 'columnwidth' && !this.isPrism) {
378
402
  switchClass(this.nativeElement, `col-md-${nv} col-sm-${nv}`, `col-md-${ov} col-sm-${ov}`);
379
403
  }
380
404
  else {
381
405
  super.onPropertyChange(key, nv, ov);
382
406
  }
383
407
  }
384
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RouterOutletDirective, deps: [{ token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
408
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RouterOutletDirective, deps: [{ token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }, { token: i2.App }], target: i0.ɵɵFactoryTarget.Directive }); }
385
409
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: RouterOutletDirective, isStandalone: true, selector: "[wmRouterOutlet]", providers: [
386
410
  provideAsWidgetRef(RouterOutletDirective)
387
411
  ], usesInheritance: true, ngImport: i0 }); }
@@ -400,7 +424,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
400
424
  args: ['EXPLICIT_CONTEXT']
401
425
  }, {
402
426
  type: Optional
403
- }] }] });
427
+ }] }, { type: i2.App }] });
404
428
 
405
429
  /**
406
430
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/page/default/src/page.props.ts","../../../../../projects/components/widgets/page/default/src/page.directive.ts","../../../../../projects/components/widgets/page/default/src/layout.props.ts","../../../../../projects/components/widgets/page/default/src/layout.directive.ts","../../../../../projects/components/widgets/page/default/src/page-content/page-content.props.ts","../../../../../projects/components/widgets/page/default/src/page-content/page-content.component.ts","../../../../../projects/components/widgets/page/default/src/page-content/page-content.component.html","../../../../../projects/components/widgets/page/default/src/content/content.props.ts","../../../../../projects/components/widgets/page/default/src/content/content.component.ts","../../../../../projects/components/widgets/page/default/src/content/content.component.html","../../../../../projects/components/widgets/page/default/src/spa-page.props.ts","../../../../../projects/components/widgets/page/default/src/spa-page.directive.ts","../../../../../projects/components/widgets/page/default/src/router-outlet.props.ts","../../../../../projects/components/widgets/page/default/src/router-outlet.directive.ts","../../../../../projects/components/widgets/page/default/src/index.ts"],"sourcesContent":["import {PROP_BOOLEAN, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-page',\n new Map(\n [\n ['cache', {value: false, ...PROP_BOOLEAN}],\n ['refreshdataonattach', {value: true, ...PROP_BOOLEAN}],\n ['pagetitle', PROP_STRING],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING]\n ]\n )\n );\n};\n","import { AfterViewInit, Directive, Inject, Injector, OnDestroy, Optional, SkipSelf } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\n\nimport { EventNotifier, Viewport, ViewportEvent } from '@wm/core';\nimport { updateDeviceView, provideAsWidgetRef, StylableComponent } from '@wm/components/base';\n\nimport { registerProps } from './page.props';\n\nconst DEFAULT_CLS = 'app-page container';\nconst WIDGET_CONFIG = { widgetType: 'wm-page', hostClass: DEFAULT_CLS };\n\n@Directive({\n standalone: true,\n selector: '[wmPage]',\n providers: [\n provideAsWidgetRef(PageDirective)\n ],\n exportAs: 'wmPage'\n})\nexport class PageDirective extends StylableComponent implements AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n\n private _eventNotifier = new EventNotifier(false);\n public refreshdataonattach = true;\n public pagetitle: string;\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'pagetitle') {\n this.titleService.setTitle(nv);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n constructor(inj: Injector, private titleService: Title, private viewport: Viewport, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n /**\n * A child component can notify page using this method. Notified event will be passed to\n * subscribed children only after page initialization.\n *\n * @param {string} eventName\n * @param data\n */\n public notify(eventName: string, ...data: Array<any>) {\n this._eventNotifier.notify.apply(this._eventNotifier, arguments);\n }\n\n /**\n * The main purpose of this function is to provide communication between page children objects.\n * Child component can subscribe for an event that will be emitted by another child component.\n *\n * @param eventName\n * @param {(data: any) => void} callback\n * @returns {any}\n */\n public subscribe(eventName, callback: (data: any) => void): () => void {\n return this._eventNotifier.subscribe(eventName, callback);\n }\n\n public ngAfterViewInit() {\n setTimeout(() => {\n this._eventNotifier.start();\n updateDeviceView(this.nativeElement, this.getAppInstance().isTabletApplicationType);\n }, 1);\n this.registerDestroyListener(this.viewport.subscribe(ViewportEvent.RESIZE, args => {\n this.invokeEventCallback('resize', { $event: args.$event, widget: this, data: args.data });\n }));\n this.registerDestroyListener(this.viewport.subscribe(ViewportEvent.ORIENTATION_CHANGE, args => {\n this.invokeEventCallback('orientationchange', { $event: args.$event, widget: this, data: args.data });\n }));\n }\n\n public ngOnAttach() {\n this.titleService.setTitle(this.pagetitle);\n this.invokeEventCallback('attach', { widget: this });\n this.notify('attach', {\n refreshData: this.refreshdataonattach\n });\n }\n\n public ngOnDetach() {\n this.invokeEventCallback('detach', { widget: this });\n this.notify('detach');\n }\n\n public ngOnDestroy() {\n this.invokeEventCallback('destroy', { widget: this });\n this._eventNotifier.destroy();\n }\n}\n","import { register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-layout',\n new Map(\n []\n )\n );\n};\n","import {AfterViewInit, Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport {EventNotifier} from '@wm/core';\nimport { updateDeviceView, provideAsWidgetRef, StylableComponent } from '@wm/components/base';\n\nimport { registerProps } from './layout.props';\n\nconst DEFAULT_CLS = 'app-page container';\nconst WIDGET_CONFIG = {widgetType: 'wm-layout', hostClass: DEFAULT_CLS};\n\n@Directive({\n standalone: true,\n selector: '[wmLayout]',\n providers: [\n provideAsWidgetRef(LayoutDirective)\n ],\n exportAs: 'wmLayout'\n})\nexport class LayoutDirective extends StylableComponent implements AfterViewInit {\n static initializeProps = registerProps();\n\n private _eventNotifier = new EventNotifier(false);\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n /**\n * A child component can notify page using this method. Notified event will be passed to\n * subscribed children only after page initialization.\n *\n * @param {string} eventName\n * @param data\n */\n public notify(eventName: string, ...data: Array<any>) {\n this._eventNotifier.notify.apply(this._eventNotifier, arguments);\n }\n\n public ngAfterViewInit() {\n setTimeout(() => {\n updateDeviceView(this.nativeElement, this.getAppInstance().isTabletApplicationType);\n }, 1);\n }\n}\n","import { PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-page-content',\n new Map(\n [\n ['class', PROP_STRING],\n ['columnwidth', PROP_NUMBER],\n ['content', PROP_STRING],\n ['name', PROP_STRING],\n ['pulltorefresh', {value: false, ...PROP_BOOLEAN}]\n ]\n )\n );\n};\n","import {Component, Inject, Injector, Optional} from '@angular/core';\n\nimport {App, switchClass} from '@wm/core';\nimport { APPLY_STYLES_TYPE, PullToRefresh, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\n\nimport { registerProps } from './page-content.props';\n\nconst DEFAULT_CLS = 'app-page-content app-content-column';\nconst WIDGET_CONFIG = {widgetType: 'wm-page-content', hostClass: DEFAULT_CLS};\n\n@Component({\n standalone: true,\n selector: '[wmPageContent]',\n templateUrl: './page-content.component.html',\n providers: [\n provideAsWidgetRef(PageContentComponent)\n ]\n})\nexport class PageContentComponent extends StylableComponent {\n static initializeProps = registerProps();\n\n public pullToRefreshIns: PullToRefresh;\n private pulltorefresh: boolean;\n private childPullToRefresh: boolean;\n\n constructor(inj: Injector, private app: App, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n\n this.registerDestroyListener(this.app.subscribe('pullToRefresh:enable', () => {\n this.childPullToRefresh = true;\n this.initPullToRefresh();\n }));\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'columnwidth') {\n switchClass(this.nativeElement, `col-md-${nv} col-sm-${nv}`, `col-md-${ov} col-sm-${ov}`);\n } else if (key === 'pulltorefresh' && nv) {\n // creating instance after timeout as the smoothscroll styles where getting added on pull refresh-container\n setTimeout(() => {\n this.initPullToRefresh();\n });\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n // when list component is ready, pulltorefresh instance is created and this appends pullToRefresh element on the page content.\n private initPullToRefresh() {\n const hasPullToRefreshEvent = this.hasEventCallback('pulltorefresh');\n if (!this.pullToRefreshIns && (this.childPullToRefresh || hasPullToRefreshEvent) && this.pulltorefresh) {\n this.pullToRefreshIns = new PullToRefresh($(this.nativeElement), this.app, () => {\n if (hasPullToRefreshEvent) {\n this.invokeEventCallback('pulltorefresh');\n } else {\n this.app.notify('pulltorefresh');\n }\n });\n this.registerDestroyListener(() => {\n if (this.pullToRefreshIns.cancelSubscription) {\n this.pullToRefreshIns.cancelSubscription();\n }\n });\n }\n }\n}\n","<ng-content></ng-content>","import { PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-content',\n new Map(\n [\n ['name', PROP_STRING],\n ['class', PROP_STRING]\n ]\n )\n );\n};\n","import {Component, Inject, Injector, Optional} from '@angular/core';\n\nimport { IWidgetConfig, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\n\nimport { registerProps } from './content.props';\n\nconst DEFAULT_CLS = 'app-content clearfix';\nconst WIDGET_CONFIG: IWidgetConfig = {widgetType: 'wm-content', hostClass: DEFAULT_CLS};\n\n@Component({\n standalone: true,\n selector: '[wmContent]',\n templateUrl: './content.component.html',\n providers: [\n provideAsWidgetRef(ContentComponent)\n ]\n})\nexport class ContentComponent extends StylableComponent {\n static initializeProps = registerProps();\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n styler(this.nativeElement, this);\n }\n}\n","<div class=\"row app-content-row clearfix\">\n <ng-content></ng-content>\n</div>","import { PROP_STRING, PROP_BOOLEAN, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-spa-page',\n new Map(\n [\n ['cache', {value: false, ...PROP_BOOLEAN}],\n ['refreshdataonattach', {value: true, ...PROP_BOOLEAN}],\n ['pagetitle', PROP_STRING],\n ['hint', PROP_STRING]\n ]\n )\n );\n};\n","import {AfterViewInit, Directive, Inject, Injector, OnDestroy, Optional, SkipSelf} from '@angular/core';\nimport { Title } from '@angular/platform-browser';\n\nimport {EventNotifier, Viewport, ViewportEvent} from '@wm/core';\nimport { updateDeviceView, provideAsWidgetRef, StylableComponent } from '@wm/components/base';\n\nimport { registerProps } from './spa-page.props';\n\nconst DEFAULT_CLS = 'app-spa-page';\nconst WIDGET_CONFIG = {widgetType: 'wm-spa-page', hostClass: DEFAULT_CLS};\n\n@Directive({\n standalone: true,\n selector: '[wmSpaPage]',\n providers: [\n provideAsWidgetRef(SpaPageDirective)\n ],\n exportAs: 'wmSpaPage'\n})\nexport class SpaPageDirective extends StylableComponent implements AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n\n private _eventNotifier = new EventNotifier(false);\n public refreshdataonattach = true;\n public pagetitle: string;\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'pagetitle') {\n this.titleService.setTitle(nv);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n constructor(inj: Injector, private titleService: Title, private viewport: Viewport, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n /**\n * A child component can notify page using this method. Notified event will be passed to\n * subscribed children only after page initialization.\n *\n * @param {string} eventName\n * @param data\n */\n public notify(eventName: string, ...data: Array<any>) {\n this._eventNotifier.notify.apply(this._eventNotifier, arguments);\n }\n\n /**\n * The main purpose of this function is to provide communication between page children objects.\n * Child component can subscribe for an event that will be emitted by another child component.\n *\n * @param eventName\n * @param {(data: any) => void} callback\n * @returns {any}\n */\n public subscribe(eventName, callback: (data: any) => void): () => void {\n return this._eventNotifier.subscribe(eventName, callback);\n }\n\n public ngAfterViewInit() {\n setTimeout(() => {\n this._eventNotifier.start();\n updateDeviceView(this.nativeElement, this.getAppInstance().isTabletApplicationType);\n }, 1);\n this.registerDestroyListener(this.viewport.subscribe(ViewportEvent.RESIZE, args => {\n this.invokeEventCallback('resize', { $event: args.$event, widget: this, data: args.data });\n }));\n this.registerDestroyListener(this.viewport.subscribe(ViewportEvent.ORIENTATION_CHANGE, args => {\n this.invokeEventCallback('orientationchange', { $event: args.$event, widget: this, data: args.data });\n }));\n }\n\n public ngOnAttach() {\n this.titleService.setTitle(this.pagetitle);\n this.invokeEventCallback('attach', { widget: this });\n this.notify('attach', {\n refreshData : this.refreshdataonattach\n });\n }\n\n public ngOnDetach() {\n this.invokeEventCallback('detach', { widget: this });\n this.notify('detach');\n }\n\n public ngOnDestroy() {\n this.invokeEventCallback('destroy', { widget: this });\n this._eventNotifier.destroy();\n }\n}\n","import { PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-router-outlet',\n new Map(\n [\n ['columnwidth', PROP_NUMBER],\n ['name', PROP_STRING]\n ]\n )\n );\n};\n","import {Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport {switchClass} from '@wm/core';\n\nimport { IWidgetConfig, provideAsWidgetRef, StylableComponent } from '@wm/components/base';\nimport { registerProps } from './router-outlet.props';\n\nconst DEFAULT_CLS = 'app-content-column-wrapper';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-router-outlet',\n hostClass: DEFAULT_CLS\n};\n\n@Directive({\n standalone: true,\n selector: '[wmRouterOutlet]',\n providers: [\n provideAsWidgetRef(RouterOutletDirective)\n ]\n})\nexport class RouterOutletDirective extends StylableComponent {\n static initializeProps = registerProps();\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'columnwidth') {\n switchClass(this.nativeElement, `col-md-${nv} col-sm-${nv}`, `col-md-${ov} col-sm-${ov}`);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","DEFAULT_CLS","WIDGET_CONFIG"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/page/default/src/page.props.ts","../../../../../projects/components/widgets/page/default/src/page.directive.ts","../../../../../projects/components/widgets/page/default/src/layout.props.ts","../../../../../projects/components/widgets/page/default/src/layout.directive.ts","../../../../../projects/components/widgets/page/default/src/page-content/page-content.props.ts","../../../../../projects/components/widgets/page/default/src/page-content/page-content.component.ts","../../../../../projects/components/widgets/page/default/src/page-content/page-content.component.html","../../../../../projects/components/widgets/page/default/src/content/content.props.ts","../../../../../projects/components/widgets/page/default/src/content/content.component.ts","../../../../../projects/components/widgets/page/default/src/content/content.component.html","../../../../../projects/components/widgets/page/default/src/spa-page.props.ts","../../../../../projects/components/widgets/page/default/src/spa-page.directive.ts","../../../../../projects/components/widgets/page/default/src/router-outlet.props.ts","../../../../../projects/components/widgets/page/default/src/router-outlet.directive.ts","../../../../../projects/components/widgets/page/default/src/index.ts"],"sourcesContent":["import {PROP_BOOLEAN, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-page',\n new Map(\n [\n ['cache', {value: false, ...PROP_BOOLEAN}],\n ['refreshdataonattach', {value: true, ...PROP_BOOLEAN}],\n ['pagetitle', PROP_STRING],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING]\n ]\n )\n );\n};\n","import { AfterViewInit, Directive, Inject, Injector, OnDestroy, Optional, SkipSelf } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\n\nimport { EventNotifier, Viewport, ViewportEvent } from '@wm/core';\nimport { updateDeviceView, provideAsWidgetRef, StylableComponent } from '@wm/components/base';\n\nimport { registerProps } from './page.props';\n\nconst DEFAULT_CLS = 'app-page container';\nconst WIDGET_CONFIG = { widgetType: 'wm-page', hostClass: DEFAULT_CLS };\n\n@Directive({\n standalone: true,\n selector: '[wmPage]',\n providers: [\n provideAsWidgetRef(PageDirective)\n ],\n exportAs: 'wmPage'\n})\nexport class PageDirective extends StylableComponent implements AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n\n private _eventNotifier = new EventNotifier(false);\n public refreshdataonattach = true;\n public pagetitle: string;\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'pagetitle') {\n this.titleService.setTitle(nv);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n constructor(inj: Injector, private titleService: Title, private viewport: Viewport, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n /**\n * A child component can notify page using this method. Notified event will be passed to\n * subscribed children only after page initialization.\n *\n * @param {string} eventName\n * @param data\n */\n public notify(eventName: string, ...data: Array<any>) {\n this._eventNotifier.notify.apply(this._eventNotifier, arguments);\n }\n\n /**\n * The main purpose of this function is to provide communication between page children objects.\n * Child component can subscribe for an event that will be emitted by another child component.\n *\n * @param eventName\n * @param {(data: any) => void} callback\n * @returns {any}\n */\n public subscribe(eventName, callback: (data: any) => void): () => void {\n return this._eventNotifier.subscribe(eventName, callback);\n }\n\n public ngAfterViewInit() {\n setTimeout(() => {\n this._eventNotifier.start();\n updateDeviceView(this.nativeElement, this.getAppInstance().isTabletApplicationType);\n }, 1);\n this.registerDestroyListener(this.viewport.subscribe(ViewportEvent.RESIZE, args => {\n this.invokeEventCallback('resize', { $event: args.$event, widget: this, data: args.data });\n }));\n this.registerDestroyListener(this.viewport.subscribe(ViewportEvent.ORIENTATION_CHANGE, args => {\n this.invokeEventCallback('orientationchange', { $event: args.$event, widget: this, data: args.data });\n }));\n }\n\n public ngOnAttach() {\n this.titleService.setTitle(this.pagetitle);\n this.invokeEventCallback('attach', { widget: this });\n this.notify('attach', {\n refreshData: this.refreshdataonattach\n });\n }\n\n public ngOnDetach() {\n this.invokeEventCallback('detach', { widget: this });\n this.notify('detach');\n }\n\n public ngOnDestroy() {\n this.invokeEventCallback('destroy', { widget: this });\n this._eventNotifier.destroy();\n }\n}\n","import { register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-layout',\n new Map(\n []\n )\n );\n};\n","import {AfterViewInit, Directive, Inject, Injector, OnDestroy, Optional} from '@angular/core';\n\nimport {EventNotifier} from '@wm/core';\nimport { updateDeviceView, provideAsWidgetRef, StylableComponent } from '@wm/components/base';\n\nimport { registerProps } from './layout.props';\n\nconst DEFAULT_CLS = 'app-page container';\nconst WIDGET_CONFIG = {widgetType: 'wm-layout', hostClass: DEFAULT_CLS};\n\n@Directive({\n standalone: true,\n selector: '[wmLayout]',\n providers: [\n provideAsWidgetRef(LayoutDirective)\n ],\n exportAs: 'wmLayout'\n})\nexport class LayoutDirective extends StylableComponent implements AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n\n private _eventNotifier = new EventNotifier(false);\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n /**\n * A child component can notify page using this method. Notified event will be passed to\n * subscribed children only after page initialization.\n *\n * @param {string} eventName\n * @param data\n */\n public notify(eventName: string, ...data: Array<any>) {\n this._eventNotifier.notify.apply(this._eventNotifier, arguments);\n }\n\n public ngAfterViewInit() {\n setTimeout(() => {\n updateDeviceView(this.nativeElement, this.getAppInstance().isTabletApplicationType);\n }, 1);\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Destroy EventNotifier to release subscribers\n if (this._eventNotifier) {\n this._eventNotifier.destroy();\n this._eventNotifier = null;\n }\n\n super.ngOnDestroy();\n }\n}\n","import { PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-page-content',\n new Map(\n [\n ['class', PROP_STRING],\n ['columnwidth', PROP_NUMBER],\n ['content', PROP_STRING],\n ['name', PROP_STRING],\n ['pulltorefresh', {value: false, ...PROP_BOOLEAN}]\n ]\n )\n );\n};\n","import {Component, Inject, Injector, OnDestroy, Optional} from '@angular/core';\n\nimport {App, switchClass} from '@wm/core';\nimport { APPLY_STYLES_TYPE, PullToRefresh, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\n\nimport { registerProps } from './page-content.props';\n\nconst DEFAULT_CLS = 'app-page-content app-content-column';\nconst WIDGET_CONFIG = {widgetType: 'wm-page-content', hostClass: DEFAULT_CLS};\n\n@Component({\n standalone: true,\n selector: '[wmPageContent]',\n templateUrl: './page-content.component.html',\n providers: [\n provideAsWidgetRef(PageContentComponent)\n ]\n})\nexport class PageContentComponent extends StylableComponent implements OnDestroy {\n static initializeProps = registerProps();\n\n public pullToRefreshIns: PullToRefresh;\n private pulltorefresh: boolean;\n private childPullToRefresh: boolean;\n\n constructor(inj: Injector, private app: App, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n\n this.registerDestroyListener(this.app.subscribe('pullToRefresh:enable', () => {\n this.childPullToRefresh = true;\n this.initPullToRefresh();\n }));\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'columnwidth') {\n switchClass(this.nativeElement, `col-md-${nv} col-sm-${nv}`, `col-md-${ov} col-sm-${ov}`);\n } else if (key === 'pulltorefresh' && nv) {\n // creating instance after timeout as the smoothscroll styles where getting added on pull refresh-container\n setTimeout(() => {\n this.initPullToRefresh();\n });\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n // when list component is ready, pulltorefresh instance is created and this appends pullToRefresh element on the page content.\n private initPullToRefresh() {\n const hasPullToRefreshEvent = this.hasEventCallback('pulltorefresh');\n if (!this.pullToRefreshIns && (this.childPullToRefresh || hasPullToRefreshEvent) && this.pulltorefresh) {\n this.pullToRefreshIns = new PullToRefresh($(this.nativeElement), this.app, () => {\n if (hasPullToRefreshEvent) {\n this.invokeEventCallback('pulltorefresh');\n } else {\n this.app.notify('pulltorefresh');\n }\n });\n this.registerDestroyListener(() => {\n if (this.pullToRefreshIns && this.pullToRefreshIns.destroy) {\n this.pullToRefreshIns.destroy();\n this.pullToRefreshIns = null;\n }\n });\n }\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clean up pullToRefresh instance\n // This is already handled by registerDestroyListener, but adding explicit cleanup as backup\n if (this.pullToRefreshIns && this.pullToRefreshIns.destroy) {\n this.pullToRefreshIns.destroy();\n this.pullToRefreshIns = null;\n }\n\n super.ngOnDestroy();\n }\n}\n","<ng-content></ng-content>","import { PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-content',\n new Map(\n [\n ['name', PROP_STRING],\n ['class', PROP_STRING]\n ]\n )\n );\n};\n","import {Component, Inject, Injector, Optional} from '@angular/core';\n\nimport { IWidgetConfig, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\n\nimport { registerProps } from './content.props';\n\nconst DEFAULT_CLS = 'app-content clearfix';\nconst WIDGET_CONFIG: IWidgetConfig = {widgetType: 'wm-content', hostClass: DEFAULT_CLS};\n\n@Component({\n standalone: true,\n selector: '[wmContent]',\n templateUrl: './content.component.html',\n providers: [\n provideAsWidgetRef(ContentComponent)\n ]\n})\nexport class ContentComponent extends StylableComponent {\n static initializeProps = registerProps();\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n styler(this.nativeElement, this);\n }\n}\n","<div class=\"row app-content-row clearfix\">\n <ng-content></ng-content>\n</div>","import { PROP_STRING, PROP_BOOLEAN, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-spa-page',\n new Map(\n [\n ['cache', {value: false, ...PROP_BOOLEAN}],\n ['refreshdataonattach', {value: true, ...PROP_BOOLEAN}],\n ['pagetitle', PROP_STRING],\n ['hint', PROP_STRING]\n ]\n )\n );\n};\n","import {AfterViewInit, Directive, Inject, Injector, OnDestroy, Optional, SkipSelf} from '@angular/core';\nimport { Title } from '@angular/platform-browser';\n\nimport {EventNotifier, Viewport, ViewportEvent} from '@wm/core';\nimport { updateDeviceView, provideAsWidgetRef, StylableComponent } from '@wm/components/base';\n\nimport { registerProps } from './spa-page.props';\n\nconst DEFAULT_CLS = 'app-spa-page';\nconst WIDGET_CONFIG = {widgetType: 'wm-spa-page', hostClass: DEFAULT_CLS};\n\n@Directive({\n standalone: true,\n selector: '[wmSpaPage]',\n providers: [\n provideAsWidgetRef(SpaPageDirective)\n ],\n exportAs: 'wmSpaPage'\n})\nexport class SpaPageDirective extends StylableComponent implements AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n\n private _eventNotifier = new EventNotifier(false);\n public refreshdataonattach = true;\n public pagetitle: string;\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'pagetitle') {\n this.titleService.setTitle(nv);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n constructor(inj: Injector, private titleService: Title, private viewport: Viewport, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n /**\n * A child component can notify page using this method. Notified event will be passed to\n * subscribed children only after page initialization.\n *\n * @param {string} eventName\n * @param data\n */\n public notify(eventName: string, ...data: Array<any>) {\n this._eventNotifier.notify.apply(this._eventNotifier, arguments);\n }\n\n /**\n * The main purpose of this function is to provide communication between page children objects.\n * Child component can subscribe for an event that will be emitted by another child component.\n *\n * @param eventName\n * @param {(data: any) => void} callback\n * @returns {any}\n */\n public subscribe(eventName, callback: (data: any) => void): () => void {\n return this._eventNotifier.subscribe(eventName, callback);\n }\n\n public ngAfterViewInit() {\n setTimeout(() => {\n this._eventNotifier.start();\n updateDeviceView(this.nativeElement, this.getAppInstance().isTabletApplicationType);\n }, 1);\n this.registerDestroyListener(this.viewport.subscribe(ViewportEvent.RESIZE, args => {\n this.invokeEventCallback('resize', { $event: args.$event, widget: this, data: args.data });\n }));\n this.registerDestroyListener(this.viewport.subscribe(ViewportEvent.ORIENTATION_CHANGE, args => {\n this.invokeEventCallback('orientationchange', { $event: args.$event, widget: this, data: args.data });\n }));\n }\n\n public ngOnAttach() {\n this.titleService.setTitle(this.pagetitle);\n this.invokeEventCallback('attach', { widget: this });\n this.notify('attach', {\n refreshData : this.refreshdataonattach\n });\n }\n\n public ngOnDetach() {\n this.invokeEventCallback('detach', { widget: this });\n this.notify('detach');\n }\n\n public ngOnDestroy() {\n this.invokeEventCallback('destroy', { widget: this });\n this._eventNotifier.destroy();\n }\n}\n","import { PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-router-outlet',\n new Map(\n [\n ['columnwidth', PROP_NUMBER],\n ['name', PROP_STRING]\n ]\n )\n );\n};\n","import { Directive, Inject, Injector, Optional } from '@angular/core';\n\nimport { App, switchClass } from '@wm/core';\n\nimport { IWidgetConfig, provideAsWidgetRef, StylableComponent } from '@wm/components/base';\nimport { registerProps } from './router-outlet.props';\n\nconst DEFAULT_CLS = 'app-content-column-wrapper';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-router-outlet',\n hostClass: DEFAULT_CLS\n};\n\n@Directive({\n standalone: true,\n selector: '[wmRouterOutlet]',\n providers: [\n provideAsWidgetRef(RouterOutletDirective)\n ]\n})\nexport class RouterOutletDirective extends StylableComponent {\n static initializeProps = registerProps();\n isPrism: boolean;\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any, public app: App) {\n super(inj, WIDGET_CONFIG, explicitContext);\n this.isPrism = this.app.isPrism;\n // Add w-100 class only for Prism appsmvn -v\n if (this.isPrism) {\n this.nativeElement.classList.add('w-100');\n }\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'columnwidth' && !this.isPrism) {\n switchClass(this.nativeElement, `col-md-${nv} col-sm-${nv}`, `col-md-${ov} col-sm-${ov}`);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","DEFAULT_CLS","WIDGET_CONFIG","i1"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { AfterViewInit, Injector } from '@angular/core';
1
+ import { AfterViewInit, Injector, OnDestroy } from '@angular/core';
2
2
  import { StylableComponent } from '@wm/components/base';
3
3
  import * as i0 from "@angular/core";
4
- export declare class LayoutDirective extends StylableComponent implements AfterViewInit {
4
+ export declare class LayoutDirective extends StylableComponent implements AfterViewInit, OnDestroy {
5
5
  static initializeProps: void;
6
6
  private _eventNotifier;
7
7
  constructor(inj: Injector, explicitContext: any);
@@ -14,6 +14,7 @@ export declare class LayoutDirective extends StylableComponent implements AfterV
14
14
  */
15
15
  notify(eventName: string, ...data: Array<any>): void;
16
16
  ngAfterViewInit(): void;
17
+ ngOnDestroy(): void;
17
18
  static ɵfac: i0.ɵɵFactoryDeclaration<LayoutDirective, [null, { optional: true; }]>;
18
19
  static ɵdir: i0.ɵɵDirectiveDeclaration<LayoutDirective, "[wmLayout]", ["wmLayout"], {}, {}, never, never, true, never>;
19
20
  }
@@ -1,8 +1,8 @@
1
- import { Injector } from '@angular/core';
1
+ import { Injector, OnDestroy } from '@angular/core';
2
2
  import { App } from '@wm/core';
3
3
  import { PullToRefresh, StylableComponent } from '@wm/components/base';
4
4
  import * as i0 from "@angular/core";
5
- export declare class PageContentComponent extends StylableComponent {
5
+ export declare class PageContentComponent extends StylableComponent implements OnDestroy {
6
6
  private app;
7
7
  static initializeProps: void;
8
8
  pullToRefreshIns: PullToRefresh;
@@ -11,6 +11,7 @@ export declare class PageContentComponent extends StylableComponent {
11
11
  constructor(inj: Injector, app: App, explicitContext: any);
12
12
  onPropertyChange(key: string, nv: any, ov?: any): void;
13
13
  private initPullToRefresh;
14
+ ngOnDestroy(): void;
14
15
  static ɵfac: i0.ɵɵFactoryDeclaration<PageContentComponent, [null, null, { optional: true; }]>;
15
16
  static ɵcmp: i0.ɵɵComponentDeclaration<PageContentComponent, "[wmPageContent]", never, {}, {}, never, ["*"], true, never>;
16
17
  }
@@ -1,10 +1,13 @@
1
1
  import { Injector } from '@angular/core';
2
+ import { App } from '@wm/core';
2
3
  import { StylableComponent } from '@wm/components/base';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class RouterOutletDirective extends StylableComponent {
6
+ app: App;
5
7
  static initializeProps: void;
6
- constructor(inj: Injector, explicitContext: any);
8
+ isPrism: boolean;
9
+ constructor(inj: Injector, explicitContext: any, app: App);
7
10
  onPropertyChange(key: string, nv: any, ov?: any): void;
8
- static ɵfac: i0.ɵɵFactoryDeclaration<RouterOutletDirective, [null, { optional: true; }]>;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<RouterOutletDirective, [null, { optional: true; }, null]>;
9
12
  static ɵdir: i0.ɵɵDirectiveDeclaration<RouterOutletDirective, "[wmRouterOutlet]", never, {}, {}, never, never, true, never>;
10
13
  }
@@ -362,6 +362,22 @@
362
362
  }
363
363
  });
364
364
  }
365
+ ngOnDestroy() {
366
+ // MEMORY LEAK FIX: Clean up collapse action listener
367
+ if (this._destroyCollapseActionListener) {
368
+ this._destroyCollapseActionListener();
369
+ this._destroyCollapseActionListener = null;
370
+ }
371
+ // MEMORY LEAK FIX: Clear left panel animator reference
372
+ if (this._leftPanelAnimator) {
373
+ this._leftPanelAnimator = null;
374
+ }
375
+ // MEMORY LEAK FIX: Clear jQuery references
376
+ this.$ele = null;
377
+ this.$page = null;
378
+ // Note: Router subscription is already cleaned up via registerDestroyListener
379
+ super.ngOnDestroy();
380
+ }
365
381
  static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: LeftPanelDirective, deps: [{ token: i1__namespace.App }, { token: i2__namespace.PageDirective, optional: true }, { token: i2__namespace.LayoutDirective, optional: true }, { token: i0__namespace.Injector }, { token: i3__namespace.Router }, { token: 'EXPLICIT_CONTEXT', optional: true }, { token: 'navtype', attribute: true }, { token: 'navheight', attribute: true }], target: i0__namespace.ɵɵFactoryTarget.Directive }); }
366
382
  static { this.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: LeftPanelDirective, isStandalone: true, selector: "[wmLeftPanel]", providers: [
367
383
  base.provideAsWidgetRef(LeftPanelDirective)
@@ -201,6 +201,22 @@ export class LeftPanelDirective extends StylableComponent {
201
201
  }
202
202
  });
203
203
  }
204
+ ngOnDestroy() {
205
+ // MEMORY LEAK FIX: Clean up collapse action listener
206
+ if (this._destroyCollapseActionListener) {
207
+ this._destroyCollapseActionListener();
208
+ this._destroyCollapseActionListener = null;
209
+ }
210
+ // MEMORY LEAK FIX: Clear left panel animator reference
211
+ if (this._leftPanelAnimator) {
212
+ this._leftPanelAnimator = null;
213
+ }
214
+ // MEMORY LEAK FIX: Clear jQuery references
215
+ this.$ele = null;
216
+ this.$page = null;
217
+ // Note: Router subscription is already cleaned up via registerDestroyListener
218
+ super.ngOnDestroy();
219
+ }
204
220
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LeftPanelDirective, deps: [{ token: i1.App }, { token: i2.PageDirective, optional: true }, { token: i2.LayoutDirective, optional: true }, { token: i0.Injector }, { token: i3.Router }, { token: 'EXPLICIT_CONTEXT', optional: true }, { token: 'navtype', attribute: true }, { token: 'navheight', attribute: true }], target: i0.ɵɵFactoryTarget.Directive }); }
205
221
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: LeftPanelDirective, isStandalone: true, selector: "[wmLeftPanel]", providers: [
206
222
  provideAsWidgetRef(LeftPanelDirective)
@@ -232,4 +248,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
232
248
  type: Attribute,
233
249
  args: ['navheight']
234
250
  }] }] });
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVmdC1wYW5lbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvcGFnZS9sZWZ0LXBhbmVsL3NyYy9sZWZ0LXBhbmVsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTFELE9BQU8sRUFBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLDRCQUE0QixFQUFrQixrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNySixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFFMUQsTUFBTSxXQUFXLEdBQUcscUNBQXFDLENBQUM7QUFDMUQsTUFBTSxhQUFhLEdBQWtCO0lBQ2pDLFVBQVUsRUFBRSxlQUFlO0lBQzNCLFNBQVMsRUFBRSxXQUFXO0NBQ3pCLENBQUM7QUFFRixNQUFNLENBQU4sSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3JCLHNDQUFxQixDQUFBO0lBQ3JCLDBDQUF5QixDQUFBO0FBQzdCLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QjtBQVVELE1BQU0sT0FBTyxrQkFBbUIs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O2dCQUNULFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLHdCQUF3QixNQUFNLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDaEYsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0FyTVEsa0JBQWtCLCtLQWdCK0gsa0JBQWtCLDZCQUErQyxTQUFTLDhCQUE4QixXQUFXO21HQWhCcFEsa0JBQWtCLDREQUxoQjtZQUNQLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDO1NBQ3pDOzs0RkFHUSxrQkFBa0I7a0JBUjlCLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFNBQVMsRUFBRTt3QkFDUCxrQkFBa0Isb0JBQW9CO3FCQUN6QztvQkFDRCxRQUFRLEVBQUUsYUFBYTtpQkFDMUI7OzBCQWlCaUMsUUFBUTs7MEJBQWlDLFFBQVE7OzBCQUFvRSxNQUFNOzJCQUFDLGtCQUFrQjs7MEJBQUcsUUFBUTs7MEJBQTBCLFNBQVM7MkJBQUMsU0FBUzs7MEJBQW9CLFNBQVM7MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXR0cmlidXRlLCBEaXJlY3RpdmUsIEluamVjdCwgSW5qZWN0b3IsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25TdGFydCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtBcHAsIGFkZENsYXNzLCByZW1vdmVDbGFzcywgc3dpdGNoQ2xhc3MsIHRvZ2dsZUNsYXNzLCBpc01vYmlsZSwgZ2V0TmF2Q2xhc3MgfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBBUFBMWV9TVFlMRVNfVFlQRSwgZ2V0S2V5Ym9hcmRGb2N1c2FibGVFbGVtZW50cywgIElXaWRnZXRDb25maWcsIHByb3ZpZGVBc1dpZGdldFJlZiwgU3R5bGFibGVDb21wb25lbnQsIHN0eWxlciB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgTGF5b3V0RGlyZWN0aXZlLCBQYWdlRGlyZWN0aXZlIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvcGFnZSc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL2xlZnQtcGFuZWwucHJvcHMnO1xuaW1wb3J0IHsgTGVmdFBhbmVsQW5pbWF0b3IgfSBmcm9tICcuL2xlZnQtcGFuZWwuYW5pbWF0b3InO1xuXG5jb25zdCBERUZBVUxUX0NMUyA9ICdhcHAtbGVmdC1wYW5lbCBsZWZ0LXBhbmVsLWNvbGxhcHNlZCc7XG5jb25zdCBXSURHRVRfQ09ORklHOiBJV2lkZ2V0Q29uZmlnID0ge1xuICAgIHdpZGdldFR5cGU6ICd3bS1sZWZ0LXBhbmVsJyxcbiAgICBob3N0Q2xhc3M6IERFRkFVTFRfQ0xTXG59O1xuXG5leHBvcnQgZW51bSBBbmltYXRpb25UeXBlIHtcbiAgICBTTElERV9JTiA9ICdzbGlkZS1pbicsXG4gICAgU0xJREVfT1ZFUiA9ICdzbGlkZS1vdmVyJ1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1t3bUxlZnRQYW5lbF0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoTGVmdFBhbmVsRGlyZWN0aXZlKVxuICAgIF0sXG4gICAgZXhwb3J0QXM6ICd3bUxlZnRQYW5lbCdcbn0pXG5leHBvcnQgY2xhc3MgTGVmdFBhbmVsRGlyZWN0aXZlIGV4dGVuZHMgU3R5bGFibGVDb21wb25lbnQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBwdWJsaWMgYW5pbWF0aW9uOiBBbmltYXRpb25UeXBlO1xuICAgIHB1YmxpYyBjb2x1bW53aWR0aDogbnVtYmVyO1xuICAgIHB1YmxpYyBleHBhbmRlZDogYm9vbGVhbjtcbiAgICBwdWJsaWMgZ2VzdHVyZXM6IHN0cmluZztcbiAgICBwdWJsaWMgeHNjb2x1bW53aWR0aDogbnVtYmVyO1xuXG4gICAgcHVibGljICRlbGU7XG4gICAgcHVibGljICRwYWdlO1xuXG4gICAgcHJpdmF0ZSBfZGVzdHJveUNvbGxhcHNlQWN0aW9uTGlzdGVuZXI6ICgpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSBfbGVmdFBhbmVsQW5pbWF0b3I7XG5cbiAgICAvL0lmIFwic3BhXCIgYXR0cmlidXRlIGlzIHNldCBMYXlvdXREaXJlY3RpdmUgd2lsbCBwcmVzZW50IGFuZCBQYWdlRGlyZWN0aXZlIGlzIHVuZGVmaW5lZCBlbHNlIFBhZ2VEaXJlY3RpdmUgd2lsbCBwcmVzZW50IGFuZCBMYXlvdXREaXJlY3RpdmUgaXMgdW5kZWZpbmVkXG4gICAgY29uc3RydWN0b3IocHVibGljIGFwcDogQXBwLCBAT3B0aW9uYWwoKSBwcml2YXRlIHBhZ2U6IFBhZ2VEaXJlY3RpdmUsIEBPcHRpb25hbCgpIHByaXZhdGUgbGF5b3V0OiBMYXlvdXREaXJlY3RpdmUsIGluajogSW5qZWN0b3IsIHJvdXRlcjogUm91dGVyLCBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnksIEBBdHRyaWJ1dGUoJ25hdnR5cGUnKSBuYXZ0eXBlOiBzdHJpbmcsIEBBdHRyaWJ1dGUoJ25hdmhlaWdodCcpIG5hdkhlaWdodDogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgZXhwbGljaXRDb250ZXh0KTtcbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcywgQVBQTFlfU1RZTEVTX1RZUEUuQ09OVEFJTkVSKTtcbiAgICAgICAgdGhpcy4kZWxlID0gdGhpcy4kZWxlbWVudDtcbiAgICAgICAgdGhpcy4kcGFnZSA9IHRoaXMuZ2V0QXR0cignc3BhJykgJiYgbGF5b3V0ICYmIGxheW91dC4kZWxlbWVudCB8fCBwYWdlICYmIHBhZ2UuJGVsZW1lbnQ7XG4gICAgICAgIGFkZENsYXNzKHRoaXMuJHBhZ2VbMF0sICdsZWZ0LXBhbmVsLWNvbGxhcHNlZC1jb250YWluZXInKTtcbiAgICAgICAgaWYgKHRoaXMuY29sdW1ud2lkdGgpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0TGVmdFBhbmVsV2lkdGgoWydtZCcsICdzbSddLCB0aGlzLmNvbHVtbndpZHRoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5hcHAuaXNUYWJsZXRBcHBsaWNhdGlvblR5cGUpIHtcbiAgICAgICAgICAgIGFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ3dtLXRhYmxldC1hcHAtbGVmdC1wYW5lbCcpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9uUm91dGVDaGFuZ2UgPSByb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShlID0+IHtcbiAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb2xsYXBzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiBvblJvdXRlQ2hhbmdlLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICBpZighbmF2dHlwZSkgbmF2dHlwZSA9ICdkcmF3ZXInO1xuICAgICAgICB0aGlzLiRlbGVtZW50LmFkZENsYXNzKGdldE5hdkNsYXNzKG5hdnR5cGUpKTtcbiAgICAgICAgaWYgKG5hdkhlaWdodCkge1xuICAgICAgICAgICAgdGhpcy4kZWxlbWVudC5hZGRDbGFzcyhnZXROYXZDbGFzcyhuYXZIZWlnaHQpKTtcbiAgICAgICAgICAgIGFkZENsYXNzKHRoaXMuJHBhZ2VbMF0sIGdldE5hdkNsYXNzKG5hdkhlaWdodCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNvbGxhcHNlKCk6IHZvaWQge1xuICAgICAgICBhZGRDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsICdzd2lwZWUtdHJhbnNpdGlvbicpO1xuICAgICAgICBzd2l0Y2hDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsICdsZWZ0LXBhbmVsLWNvbGxhcHNlZCcsICdsZWZ0LXBhbmVsLWV4cGFuZGVkJyk7XG4gICAgICAgIGlmICh0aGlzLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBsZWZ0TmF2QnV0dG9uID0gJCgnLmFwcC1oZWFkZXItYWN0aW9uJyk7XG4gICAgICAgICAgICAgICAgbGVmdE5hdkJ1dHRvbi5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gICAgICAgICAgICAgICAgbGVmdE5hdkJ1dHRvbi5mb2N1cygpO1xuICAgICAgICAgICAgfSwgNTApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc01vYmlsZSgpKSB7XG4gICAgICAgICAgICBhZGRDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsICdoaWRkZW4nKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmV4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgIHN3aXRjaENsYXNzKHRoaXMuJHBhZ2VbMF0sICdsZWZ0LXBhbmVsLWNvbGxhcHNlZC1jb250YWluZXInLCAnbGVmdC1wYW5lbC1leHBhbmRlZC1jb250YWluZXInKTtcbiAgICAgICAgaWYgKHRoaXMuYW5pbWF0aW9uID09PSBBbmltYXRpb25UeXBlLlNMSURFX0lOKSB7XG4gICAgICAgICAgICB0aGlzLnNldFBhZ2VXaWR0aEFuZFBvc2l0aW9uKFsnbWQnLCAnc20nXSwgbnVsbCwgdGhpcy5jb2x1bW53aWR0aCk7XG4gICAgICAgICAgICB0aGlzLnNldFBhZ2VXaWR0aEFuZFBvc2l0aW9uKFsneHMnXSwgbnVsbCwgdGhpcy54c2NvbHVtbndpZHRoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fZGVzdHJveUNvbGxhcHNlQWN0aW9uTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rlc3Ryb3lDb2xsYXBzZUFjdGlvbkxpc3RlbmVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgKHRoaXMuZ2V0QXR0cihcInNwYVwiKSAmJiB0aGlzLmxheW91dCB8fCB0aGlzLnBhZ2UpLm5vdGlmeSgnd21MZWZ0UGFuZWw6Y29sbGFwc2UnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXhwYW5kKCk6IHZvaWQge1xuICAgICAgICByZW1vdmVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsICdoaWRkZW4nKTtcbiAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnc3dpcGVlLXRyYW5zaXRpb24nKTtcbiAgICAgICAgc3dpdGNoQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnbGVmdC1wYW5lbC1leHBhbmRlZCcsICdsZWZ0LXBhbmVsLWNvbGxhcHNlZCcpO1xuICAgICAgICB0aGlzLmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgaWYgKCEodGhpcy5hcHAuaXNUYWJsZXRBcHBsaWNhdGlvblR5cGUgJiYgdGhpcy5hbmltYXRpb24gPT09IEFuaW1hdGlvblR5cGUuU0xJREVfSU4pKSB7XG4gICAgICAgICAgICB0aGlzLl9kZXN0cm95Q29sbGFwc2VBY3Rpb25MaXN0ZW5lciA9IHRoaXMubGlzdGVuRm9yQ29sbGFwc2VBY3Rpb24oKTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2hDbGFzcyh0aGlzLiRwYWdlWzBdLCAnbGVmdC1wYW5lbC1leHBhbmRlZC1jb250YWluZXInLCAnbGVmdC1wYW5lbC1jb2xsYXBzZWQtY29udGFpbmVyJyk7XG4gICAgICAgIGlmICh0aGlzLmFuaW1hdGlvbiA9PT0gQW5pbWF0aW9uVHlwZS5TTElERV9JTikge1xuICAgICAgICAgICAgdGhpcy5zZXRQYWdlV2lkdGhBbmRQb3NpdGlvbihbJ21kJywgJ3NtJ10sIHRoaXMuY29sdW1ud2lkdGgpO1xuICAgICAgICAgICAgdGhpcy5zZXRQYWdlV2lkdGhBbmRQb3NpdGlvbihbJ3hzJ10sIHRoaXMueHNjb2x1bW53aWR0aCk7XG4gICAgICAgIH1cbiAgICAgICAgKHRoaXMuZ2V0QXR0cihcInNwYVwiKSAmJiB0aGlzLmxheW91dCB8fCB0aGlzLnBhZ2UpLm5vdGlmeSgnd21MZWZ0UGFuZWw6ZXhwYW5kJyk7XG4gICAgICAgICQoJy5hcHAtaGVhZGVyLWFjdGlvbicpLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCBgJHt0aGlzLmV4cGFuZGVkfWApO1xuICAgICAgICBjb25zdCBmb2N1c2FibGVFbGVtZW50cyA9IGdldEtleWJvYXJkRm9jdXNhYmxlRWxlbWVudHModGhpcy5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgY29uc3QgZmlyc3RGb2N1c2FibGVFbGVtZW50ID0gZm9jdXNhYmxlRWxlbWVudHNbMF07XG4gICAgICAgIGNvbnN0IGxhc3RGb2N1c2FibGVFbGVtZW50ID0gZm9jdXNhYmxlRWxlbWVudHNbZm9jdXNhYmxlRWxlbWVudHMubGVuZ3RoIC0gMV07XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgJChmaXJzdEZvY3VzYWJsZUVsZW1lbnQpLmZvY3VzKCk7XG4gICAgICAgIH0sIDUwKTtcbiAgICAgICAgJChmaXJzdEZvY3VzYWJsZUVsZW1lbnQpLm9uKCdrZXlkb3duJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQuc2hpZnRLZXkgJiYgZXZlbnQua2V5ID09PSAnVGFiJykge1xuICAgICAgICAgICAgICAgIHRoaXMuY29sbGFwc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgICQobGFzdEZvY3VzYWJsZUVsZW1lbnQpLm9uKCdrZXlkb3duJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnVGFiJykge1xuICAgICAgICAgICAgICAgIHRoaXMuY29sbGFwc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuJGVsZW1lbnQub24oJ2tleWRvd24nLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb2xsYXBzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNHZXN0dXJlc0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdlc3R1cmVzID09PSAnb24nO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1Zpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4cGFuZGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KSB7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdhbmltYXRpb24nIDpcbiAgICAgICAgICAgICAgICBpZiAobnYgPT09IEFuaW1hdGlvblR5cGUuU0xJREVfSU4pIHtcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy4kcGFnZVswXSwgJ3NsaWRlLW92ZXItbGVmdC1wYW5lbC1jb250YWluZXInKTtcbiAgICAgICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy4kcGFnZVswXSwgJ3NsaWRlLWluLWxlZnQtcGFuZWwtY29udGFpbmVyJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UGFnZVdpZHRoQW5kUG9zaXRpb24oWydtZCcsICdzbSddLCB0aGlzLmNvbHVtbndpZHRoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRQYWdlV2lkdGhBbmRQb3NpdGlvbihbJ3hzJ10sIHRoaXMueHNjb2x1bW53aWR0aCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudiA9PT0gQW5pbWF0aW9uVHlwZS5TTElERV9PVkVSKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZUNsYXNzKHRoaXMuJHBhZ2VbMF0sICdzbGlkZS1pbi1sZWZ0LXBhbmVsLWNvbnRhaW5lcicpO1xuICAgICAgICAgICAgICAgICAgICBhZGRDbGFzcyh0aGlzLiRwYWdlWzBdLCAnc2xpZGUtb3Zlci1sZWZ0LXBhbmVsLWNvbnRhaW5lcicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9sZWZ0UGFuZWxBbmltYXRvciA9IG5ldyBMZWZ0UGFuZWxBbmltYXRvcih0aGlzKTtcbiAgICAgICAgICAgICAgICBzd2l0Y2hDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIG52LCBvdik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdjb2x1bW53aWR0aCc6XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRMZWZ0UGFuZWxXaWR0aChbJ21kJywgJ3NtJ10sIG52LCBvdik7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYW5pbWF0aW9uID09PSBBbmltYXRpb25UeXBlLlNMSURFX0lOKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UGFnZVdpZHRoQW5kUG9zaXRpb24oWydtZCcsICdzbSddLCBudiwgb3YpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2V4cGFuZGVkJzpcbiAgICAgICAgICAgICAgICB0b2dnbGVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsICdsZWZ0LXBhbmVsLWV4cGFuZGVkJywgbnYpO1xuICAgICAgICAgICAgICAgIHRvZ2dsZUNsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ2xlZnQtcGFuZWwtY29sbGFwc2VkJywgIW52KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3hzY29sdW1ud2lkdGgnOlxuICAgICAgICAgICAgICAgIHRoaXMuc2V0TGVmdFBhbmVsV2lkdGgoWyd4cyddLCBudiwgb3YpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFuaW1hdGlvbiA9PT0gQW5pbWF0aW9uVHlwZS5TTElERV9JTikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFBhZ2VXaWR0aEFuZFBvc2l0aW9uKFsneHMnXSwgbnYsIG92KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljICB0b2dnbGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmFwcC5pc1RhYmxldEFwcGxpY2F0aW9uVHlwZSkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5leHBhbmRlZCA/IHRoaXMuY29sbGFwc2UoKSA6IHRoaXMuZXhwYW5kKCk7XG4gICAgICAgICAgICB9LCA1MCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLiRlbGUuc3dpcGVBbmltYXRpb24odGhpcy5leHBhbmRlZCA/ICdnb3RvTG93ZXInIDogJ2dvdG9VcHBlcicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsaXN0ZW5Gb3JDb2xsYXBzZUFjdGlvbigpOiAoKSA9PiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXZlbnROYW1lID0gJ2NsaWNrLmxlZnROYXZUb2dnbGUnO1xuICAgICAgICBsZXQgc2tpcEV2ZW50ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuJGVsZS5vbihldmVudE5hbWUsICgpID0+IHtcbiAgICAgICAgICAgIHNraXBFdmVudCA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLiRwYWdlLm9uKGV2ZW50TmFtZSwgKCkgPT4gIHtcbiAgICAgICAgICAgIGlmICghc2tpcEV2ZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNraXBFdmVudCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuJGVsZS5vZmYoZXZlbnROYW1lKTtcbiAgICAgICAgICAgIHRoaXMuJHBhZ2Uub2ZmKGV2ZW50TmFtZSk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRMZWZ0UGFuZWxXaWR0aChkZXZpY2VzOiBzdHJpbmdbXSwgbmV3VmFsOiBudW1iZXIsIG9sZFZhbD86IG51bWJlcikge1xuICAgICAgICBkZXZpY2VzLmZvckVhY2goZGV2aWNlID0+IHtcbiAgICAgICAgICAgIGlmIChuZXdWYWwpIHtcbiAgICAgICAgICAgICAgICBhZGRDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIGBjb2wtJHtkZXZpY2V9LSR7bmV3VmFsfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9sZFZhbCkge1xuICAgICAgICAgICAgICAgIHJlbW92ZUNsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgYGNvbC0ke2RldmljZX0tJHtvbGRWYWx9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UGFnZVdpZHRoQW5kUG9zaXRpb24oZGV2aWNlczogc3RyaW5nW10sIG5ld1ZhbDogbnVtYmVyLCBvbGRWYWw/OiBudW1iZXIpIHtcbiAgICAgICAgZGV2aWNlcy5mb3JFYWNoKGRldmljZSA9PiB7XG4gICAgICAgICAgICBpZiAobmV3VmFsKSB7XG4gICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy4kcGFnZVswXSwgYGxlZnQtcGFuZWwtY29udGFpbmVyLSR7ZGV2aWNlfS0kezEyIC0gbmV3VmFsfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9sZFZhbCkge1xuICAgICAgICAgICAgICAgIHJlbW92ZUNsYXNzKHRoaXMuJHBhZ2VbMF0sIGBsZWZ0LXBhbmVsLWNvbnRhaW5lci0ke2RldmljZX0tJHsxMiAtIG9sZFZhbH1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVmdC1wYW5lbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvcGFnZS9sZWZ0LXBhbmVsL3NyYy9sZWZ0LXBhbmVsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFhLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTFELE9BQU8sRUFBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLDRCQUE0QixFQUFrQixrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNySixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFFMUQsTUFBTSxXQUFXLEdBQUcscUNBQXFDLENBQUM7QUFDMUQsTUFBTSxhQUFhLEdBQWtCO0lBQ2pDLFVBQVUsRUFBRSxlQUFlO0lBQzNCLFNBQVMsRUFBRSxXQUFXO0NBQ3pCLENBQUM7QUFFRixNQUFNLENBQU4sSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3JCLHNDQUFxQixDQUFBO0lBQ3JCLDBDQUF5QixDQUFBO0FBQzdCLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QjtBQVVELE1BQU0sT0FBTyxrQkFBbUIs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bnRlbnQiOlsiaW1wb3J0IHtBdHRyaWJ1dGUsIERpcmVjdGl2ZSwgSW5qZWN0LCBJbmplY3RvciwgT25EZXN0cm95LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7QXBwLCBhZGRDbGFzcywgcmVtb3ZlQ2xhc3MsIHN3aXRjaENsYXNzLCB0b2dnbGVDbGFzcywgaXNNb2JpbGUsIGdldE5hdkNsYXNzIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgQVBQTFlfU1RZTEVTX1RZUEUsIGdldEtleWJvYXJkRm9jdXNhYmxlRWxlbWVudHMsICBJV2lkZ2V0Q29uZmlnLCBwcm92aWRlQXNXaWRnZXRSZWYsIFN0eWxhYmxlQ29tcG9uZW50LCBzdHlsZXIgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7IExheW91dERpcmVjdGl2ZSwgUGFnZURpcmVjdGl2ZSB9IGZyb20gJ0B3bS9jb21wb25lbnRzL3BhZ2UnO1xuXG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi9sZWZ0LXBhbmVsLnByb3BzJztcbmltcG9ydCB7IExlZnRQYW5lbEFuaW1hdG9yIH0gZnJvbSAnLi9sZWZ0LXBhbmVsLmFuaW1hdG9yJztcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLWxlZnQtcGFuZWwgbGVmdC1wYW5lbC1jb2xsYXBzZWQnO1xuY29uc3QgV0lER0VUX0NPTkZJRzogSVdpZGdldENvbmZpZyA9IHtcbiAgICB3aWRnZXRUeXBlOiAnd20tbGVmdC1wYW5lbCcsXG4gICAgaG9zdENsYXNzOiBERUZBVUxUX0NMU1xufTtcblxuZXhwb3J0IGVudW0gQW5pbWF0aW9uVHlwZSB7XG4gICAgU0xJREVfSU4gPSAnc2xpZGUtaW4nLFxuICAgIFNMSURFX09WRVIgPSAnc2xpZGUtb3Zlcidcbn1cblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdbd21MZWZ0UGFuZWxdJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKExlZnRQYW5lbERpcmVjdGl2ZSlcbiAgICBdLFxuICAgIGV4cG9ydEFzOiAnd21MZWZ0UGFuZWwnXG59KVxuZXhwb3J0IGNsYXNzIExlZnRQYW5lbERpcmVjdGl2ZSBleHRlbmRzIFN0eWxhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuXG4gICAgcHVibGljIGFuaW1hdGlvbjogQW5pbWF0aW9uVHlwZTtcbiAgICBwdWJsaWMgY29sdW1ud2lkdGg6IG51bWJlcjtcbiAgICBwdWJsaWMgZXhwYW5kZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIGdlc3R1cmVzOiBzdHJpbmc7XG4gICAgcHVibGljIHhzY29sdW1ud2lkdGg6IG51bWJlcjtcblxuICAgIHB1YmxpYyAkZWxlO1xuICAgIHB1YmxpYyAkcGFnZTtcblxuICAgIHByaXZhdGUgX2Rlc3Ryb3lDb2xsYXBzZUFjdGlvbkxpc3RlbmVyOiAoKSA9PiB2b2lkO1xuICAgIHByaXZhdGUgX2xlZnRQYW5lbEFuaW1hdG9yO1xuXG4gICAgLy9JZiBcInNwYVwiIGF0dHJpYnV0ZSBpcyBzZXQgTGF5b3V0RGlyZWN0aXZlIHdpbGwgcHJlc2VudCBhbmQgUGFnZURpcmVjdGl2ZSBpcyB1bmRlZmluZWQgZWxzZSBQYWdlRGlyZWN0aXZlIHdpbGwgcHJlc2VudCBhbmQgTGF5b3V0RGlyZWN0aXZlIGlzIHVuZGVmaW5lZFxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBhcHA6IEFwcCwgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYWdlOiBQYWdlRGlyZWN0aXZlLCBAT3B0aW9uYWwoKSBwcml2YXRlIGxheW91dDogTGF5b3V0RGlyZWN0aXZlLCBpbmo6IEluamVjdG9yLCByb3V0ZXI6IFJvdXRlciwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55LCBAQXR0cmlidXRlKCduYXZ0eXBlJykgbmF2dHlwZTogc3RyaW5nLCBAQXR0cmlidXRlKCduYXZoZWlnaHQnKSBuYXZIZWlnaHQ6IHN0cmluZykge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMsIEFQUExZX1NUWUxFU19UWVBFLkNPTlRBSU5FUik7XG4gICAgICAgIHRoaXMuJGVsZSA9IHRoaXMuJGVsZW1lbnQ7XG4gICAgICAgIHRoaXMuJHBhZ2UgPSB0aGlzLmdldEF0dHIoJ3NwYScpICYmIGxheW91dCAmJiBsYXlvdXQuJGVsZW1lbnQgfHwgcGFnZSAmJiBwYWdlLiRlbGVtZW50O1xuICAgICAgICBhZGRDbGFzcyh0aGlzLiRwYWdlWzBdLCAnbGVmdC1wYW5lbC1jb2xsYXBzZWQtY29udGFpbmVyJyk7XG4gICAgICAgIGlmICh0aGlzLmNvbHVtbndpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLnNldExlZnRQYW5lbFdpZHRoKFsnbWQnLCAnc20nXSwgdGhpcy5jb2x1bW53aWR0aCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXBwLmlzVGFibGV0QXBwbGljYXRpb25UeXBlKSB7XG4gICAgICAgICAgICBhZGRDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsICd3bS10YWJsZXQtYXBwLWxlZnQtcGFuZWwnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvblJvdXRlQ2hhbmdlID0gcm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29sbGFwc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoKCkgPT4gb25Sb3V0ZUNoYW5nZS51bnN1YnNjcmliZSgpKTtcbiAgICAgICAgaWYoIW5hdnR5cGUpIG5hdnR5cGUgPSAnZHJhd2VyJztcbiAgICAgICAgdGhpcy4kZWxlbWVudC5hZGRDbGFzcyhnZXROYXZDbGFzcyhuYXZ0eXBlKSk7XG4gICAgICAgIGlmIChuYXZIZWlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuYWRkQ2xhc3MoZ2V0TmF2Q2xhc3MobmF2SGVpZ2h0KSk7XG4gICAgICAgICAgICBhZGRDbGFzcyh0aGlzLiRwYWdlWzBdLCBnZXROYXZDbGFzcyhuYXZIZWlnaHQpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjb2xsYXBzZSgpOiB2b2lkIHtcbiAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnc3dpcGVlLXRyYW5zaXRpb24nKTtcbiAgICAgICAgc3dpdGNoQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnbGVmdC1wYW5lbC1jb2xsYXBzZWQnLCAnbGVmdC1wYW5lbC1leHBhbmRlZCcpO1xuICAgICAgICBpZiAodGhpcy5leHBhbmRlZCkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGVmdE5hdkJ1dHRvbiA9ICQoJy5hcHAtaGVhZGVyLWFjdGlvbicpO1xuICAgICAgICAgICAgICAgIGxlZnROYXZCdXR0b24uYXR0cignYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xuICAgICAgICAgICAgICAgIGxlZnROYXZCdXR0b24uZm9jdXMoKTtcbiAgICAgICAgICAgIH0sIDUwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNNb2JpbGUoKSkge1xuICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnaGlkZGVuJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5leHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICBzd2l0Y2hDbGFzcyh0aGlzLiRwYWdlWzBdLCAnbGVmdC1wYW5lbC1jb2xsYXBzZWQtY29udGFpbmVyJywgJ2xlZnQtcGFuZWwtZXhwYW5kZWQtY29udGFpbmVyJyk7XG4gICAgICAgIGlmICh0aGlzLmFuaW1hdGlvbiA9PT0gQW5pbWF0aW9uVHlwZS5TTElERV9JTikge1xuICAgICAgICAgICAgdGhpcy5zZXRQYWdlV2lkdGhBbmRQb3NpdGlvbihbJ21kJywgJ3NtJ10sIG51bGwsIHRoaXMuY29sdW1ud2lkdGgpO1xuICAgICAgICAgICAgdGhpcy5zZXRQYWdlV2lkdGhBbmRQb3NpdGlvbihbJ3hzJ10sIG51bGwsIHRoaXMueHNjb2x1bW53aWR0aCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2Rlc3Ryb3lDb2xsYXBzZUFjdGlvbkxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLl9kZXN0cm95Q29sbGFwc2VBY3Rpb25MaXN0ZW5lcigpO1xuICAgICAgICB9XG4gICAgICAgICh0aGlzLmdldEF0dHIoXCJzcGFcIikgJiYgdGhpcy5sYXlvdXQgfHwgdGhpcy5wYWdlKS5ub3RpZnkoJ3dtTGVmdFBhbmVsOmNvbGxhcHNlJyk7XG4gICAgfVxuXG4gICAgcHVibGljIGV4cGFuZCgpOiB2b2lkIHtcbiAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnaGlkZGVuJyk7XG4gICAgICAgIHJlbW92ZUNsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ3N3aXBlZS10cmFuc2l0aW9uJyk7XG4gICAgICAgIHN3aXRjaENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ2xlZnQtcGFuZWwtZXhwYW5kZWQnLCAnbGVmdC1wYW5lbC1jb2xsYXBzZWQnKTtcbiAgICAgICAgdGhpcy5leHBhbmRlZCA9IHRydWU7XG4gICAgICAgIGlmICghKHRoaXMuYXBwLmlzVGFibGV0QXBwbGljYXRpb25UeXBlICYmIHRoaXMuYW5pbWF0aW9uID09PSBBbmltYXRpb25UeXBlLlNMSURFX0lOKSkge1xuICAgICAgICAgICAgdGhpcy5fZGVzdHJveUNvbGxhcHNlQWN0aW9uTGlzdGVuZXIgPSB0aGlzLmxpc3RlbkZvckNvbGxhcHNlQWN0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoQ2xhc3ModGhpcy4kcGFnZVswXSwgJ2xlZnQtcGFuZWwtZXhwYW5kZWQtY29udGFpbmVyJywgJ2xlZnQtcGFuZWwtY29sbGFwc2VkLWNvbnRhaW5lcicpO1xuICAgICAgICBpZiAodGhpcy5hbmltYXRpb24gPT09IEFuaW1hdGlvblR5cGUuU0xJREVfSU4pIHtcbiAgICAgICAgICAgIHRoaXMuc2V0UGFnZVdpZHRoQW5kUG9zaXRpb24oWydtZCcsICdzbSddLCB0aGlzLmNvbHVtbndpZHRoKTtcbiAgICAgICAgICAgIHRoaXMuc2V0UGFnZVdpZHRoQW5kUG9zaXRpb24oWyd4cyddLCB0aGlzLnhzY29sdW1ud2lkdGgpO1xuICAgICAgICB9XG4gICAgICAgICh0aGlzLmdldEF0dHIoXCJzcGFcIikgJiYgdGhpcy5sYXlvdXQgfHwgdGhpcy5wYWdlKS5ub3RpZnkoJ3dtTGVmdFBhbmVsOmV4cGFuZCcpO1xuICAgICAgICAkKCcuYXBwLWhlYWRlci1hY3Rpb24nKS5hdHRyKCdhcmlhLWV4cGFuZGVkJywgYCR7dGhpcy5leHBhbmRlZH1gKTtcbiAgICAgICAgY29uc3QgZm9jdXNhYmxlRWxlbWVudHMgPSBnZXRLZXlib2FyZEZvY3VzYWJsZUVsZW1lbnRzKHRoaXMubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlRWxlbWVudCA9IGZvY3VzYWJsZUVsZW1lbnRzWzBdO1xuICAgICAgICBjb25zdCBsYXN0Rm9jdXNhYmxlRWxlbWVudCA9IGZvY3VzYWJsZUVsZW1lbnRzW2ZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCAtIDFdO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICQoZmlyc3RGb2N1c2FibGVFbGVtZW50KS5mb2N1cygpO1xuICAgICAgICB9LCA1MCk7XG4gICAgICAgICQoZmlyc3RGb2N1c2FibGVFbGVtZW50KS5vbigna2V5ZG93bicsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5ICYmIGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbGxhcHNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAkKGxhc3RGb2N1c2FibGVFbGVtZW50KS5vbigna2V5ZG93bicsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbGxhcHNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLiRlbGVtZW50Lm9uKCdrZXlkb3duJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgICAgICAgIHRoaXMuY29sbGFwc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzR2VzdHVyZXNFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXN0dXJlcyA9PT0gJ29uJztcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5leHBhbmRlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdikge1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnYW5pbWF0aW9uJyA6XG4gICAgICAgICAgICAgICAgaWYgKG52ID09PSBBbmltYXRpb25UeXBlLlNMSURFX0lOKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZUNsYXNzKHRoaXMuJHBhZ2VbMF0sICdzbGlkZS1vdmVyLWxlZnQtcGFuZWwtY29udGFpbmVyJyk7XG4gICAgICAgICAgICAgICAgICAgIGFkZENsYXNzKHRoaXMuJHBhZ2VbMF0sICdzbGlkZS1pbi1sZWZ0LXBhbmVsLWNvbnRhaW5lcicpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFBhZ2VXaWR0aEFuZFBvc2l0aW9uKFsnbWQnLCAnc20nXSwgdGhpcy5jb2x1bW53aWR0aCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UGFnZVdpZHRoQW5kUG9zaXRpb24oWyd4cyddLCB0aGlzLnhzY29sdW1ud2lkdGgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnYgPT09IEFuaW1hdGlvblR5cGUuU0xJREVfT1ZFUikge1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLiRwYWdlWzBdLCAnc2xpZGUtaW4tbGVmdC1wYW5lbC1jb250YWluZXInKTtcbiAgICAgICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy4kcGFnZVswXSwgJ3NsaWRlLW92ZXItbGVmdC1wYW5lbC1jb250YWluZXInKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVmdFBhbmVsQW5pbWF0b3IgPSBuZXcgTGVmdFBhbmVsQW5pbWF0b3IodGhpcyk7XG4gICAgICAgICAgICAgICAgc3dpdGNoQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCBudiwgb3YpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnY29sdW1ud2lkdGgnOlxuICAgICAgICAgICAgICAgIHRoaXMuc2V0TGVmdFBhbmVsV2lkdGgoWydtZCcsICdzbSddLCBudiwgb3YpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFuaW1hdGlvbiA9PT0gQW5pbWF0aW9uVHlwZS5TTElERV9JTikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFBhZ2VXaWR0aEFuZFBvc2l0aW9uKFsnbWQnLCAnc20nXSwgbnYsIG92KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdleHBhbmRlZCc6XG4gICAgICAgICAgICAgICAgdG9nZ2xlQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnbGVmdC1wYW5lbC1leHBhbmRlZCcsIG52KTtcbiAgICAgICAgICAgICAgICB0b2dnbGVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsICdsZWZ0LXBhbmVsLWNvbGxhcHNlZCcsICFudik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd4c2NvbHVtbndpZHRoJzpcbiAgICAgICAgICAgICAgICB0aGlzLnNldExlZnRQYW5lbFdpZHRoKFsneHMnXSwgbnYsIG92KTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hbmltYXRpb24gPT09IEFuaW1hdGlvblR5cGUuU0xJREVfSU4pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRQYWdlV2lkdGhBbmRQb3NpdGlvbihbJ3hzJ10sIG52LCBvdik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyAgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hcHAuaXNUYWJsZXRBcHBsaWNhdGlvblR5cGUpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZXhwYW5kZWQgPyB0aGlzLmNvbGxhcHNlKCkgOiB0aGlzLmV4cGFuZCgpO1xuICAgICAgICAgICAgfSwgNTApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy4kZWxlLnN3aXBlQW5pbWF0aW9uKHRoaXMuZXhwYW5kZWQgPyAnZ290b0xvd2VyJyA6ICdnb3RvVXBwZXInKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbGlzdGVuRm9yQ29sbGFwc2VBY3Rpb24oKTogKCkgPT4gdm9pZCB7XG4gICAgICAgIGNvbnN0IGV2ZW50TmFtZSA9ICdjbGljay5sZWZ0TmF2VG9nZ2xlJztcbiAgICAgICAgbGV0IHNraXBFdmVudCA9IGZhbHNlO1xuICAgICAgICB0aGlzLiRlbGUub24oZXZlbnROYW1lLCAoKSA9PiB7XG4gICAgICAgICAgICBza2lwRXZlbnQgPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy4kcGFnZS5vbihldmVudE5hbWUsICgpID0+ICB7XG4gICAgICAgICAgICBpZiAoIXNraXBFdmVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBza2lwRXZlbnQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiRlbGUub2ZmKGV2ZW50TmFtZSk7XG4gICAgICAgICAgICB0aGlzLiRwYWdlLm9mZihldmVudE5hbWUpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TGVmdFBhbmVsV2lkdGgoZGV2aWNlczogc3RyaW5nW10sIG5ld1ZhbDogbnVtYmVyLCBvbGRWYWw/OiBudW1iZXIpIHtcbiAgICAgICAgZGV2aWNlcy5mb3JFYWNoKGRldmljZSA9PiB7XG4gICAgICAgICAgICBpZiAobmV3VmFsKSB7XG4gICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCBgY29sLSR7ZGV2aWNlfS0ke25ld1ZhbH1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvbGRWYWwpIHtcbiAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIGBjb2wtJHtkZXZpY2V9LSR7b2xkVmFsfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFBhZ2VXaWR0aEFuZFBvc2l0aW9uKGRldmljZXM6IHN0cmluZ1tdLCBuZXdWYWw6IG51bWJlciwgb2xkVmFsPzogbnVtYmVyKSB7XG4gICAgICAgIGRldmljZXMuZm9yRWFjaChkZXZpY2UgPT4ge1xuICAgICAgICAgICAgaWYgKG5ld1ZhbCkge1xuICAgICAgICAgICAgICAgIGFkZENsYXNzKHRoaXMuJHBhZ2VbMF0sIGBsZWZ0LXBhbmVsLWNvbnRhaW5lci0ke2RldmljZX0tJHsxMiAtIG5ld1ZhbH1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvbGRWYWwpIHtcbiAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLiRwYWdlWzBdLCBgbGVmdC1wYW5lbC1jb250YWluZXItJHtkZXZpY2V9LSR7MTIgLSBvbGRWYWx9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IENsZWFuIHVwIGNvbGxhcHNlIGFjdGlvbiBsaXN0ZW5lclxuICAgICAgICBpZiAodGhpcy5fZGVzdHJveUNvbGxhcHNlQWN0aW9uTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rlc3Ryb3lDb2xsYXBzZUFjdGlvbkxpc3RlbmVyKCk7XG4gICAgICAgICAgICB0aGlzLl9kZXN0cm95Q29sbGFwc2VBY3Rpb25MaXN0ZW5lciA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IENsZWFyIGxlZnQgcGFuZWwgYW5pbWF0b3IgcmVmZXJlbmNlXG4gICAgICAgIGlmICh0aGlzLl9sZWZ0UGFuZWxBbmltYXRvcikge1xuICAgICAgICAgICAgdGhpcy5fbGVmdFBhbmVsQW5pbWF0b3IgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciBqUXVlcnkgcmVmZXJlbmNlc1xuICAgICAgICB0aGlzLiRlbGUgPSBudWxsO1xuICAgICAgICB0aGlzLiRwYWdlID0gbnVsbDtcblxuICAgICAgICAvLyBOb3RlOiBSb3V0ZXIgc3Vic2NyaXB0aW9uIGlzIGFscmVhZHkgY2xlYW5lZCB1cCB2aWEgcmVnaXN0ZXJEZXN0cm95TGlzdGVuZXJcblxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -344,6 +344,22 @@ class LeftPanelDirective extends StylableComponent {
344
344
  }
345
345
  });
346
346
  }
347
+ ngOnDestroy() {
348
+ // MEMORY LEAK FIX: Clean up collapse action listener
349
+ if (this._destroyCollapseActionListener) {
350
+ this._destroyCollapseActionListener();
351
+ this._destroyCollapseActionListener = null;
352
+ }
353
+ // MEMORY LEAK FIX: Clear left panel animator reference
354
+ if (this._leftPanelAnimator) {
355
+ this._leftPanelAnimator = null;
356
+ }
357
+ // MEMORY LEAK FIX: Clear jQuery references
358
+ this.$ele = null;
359
+ this.$page = null;
360
+ // Note: Router subscription is already cleaned up via registerDestroyListener
361
+ super.ngOnDestroy();
362
+ }
347
363
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LeftPanelDirective, deps: [{ token: i1.App }, { token: i2.PageDirective, optional: true }, { token: i2.LayoutDirective, optional: true }, { token: i0.Injector }, { token: i3.Router }, { token: 'EXPLICIT_CONTEXT', optional: true }, { token: 'navtype', attribute: true }, { token: 'navheight', attribute: true }], target: i0.ɵɵFactoryTarget.Directive }); }
348
364
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: LeftPanelDirective, isStandalone: true, selector: "[wmLeftPanel]", providers: [
349
365
  provideAsWidgetRef(LeftPanelDirective)