@wavemaker/app-ng-runtime 11.14.1-rc.6311 → 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 (407) hide show
  1. package/components/advanced/carousel/bundles/index.umd.js +15 -1
  2. package/components/advanced/carousel/carousel.directive.d.ts +1 -0
  3. package/components/advanced/carousel/esm2022/carousel.directive.mjs +16 -2
  4. package/components/advanced/carousel/fesm2022/index.mjs +15 -1
  5. package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  6. package/components/advanced/login/bundles/index.umd.js +24 -3
  7. package/components/advanced/login/esm2022/login.component.mjs +25 -4
  8. package/components/advanced/login/fesm2022/index.mjs +24 -3
  9. package/components/advanced/login/fesm2022/index.mjs.map +1 -1
  10. package/components/advanced/login/login.component.d.ts +5 -2
  11. package/components/base/bundles/index.umd.js +323 -28
  12. package/components/base/directives/show-in-device.directive.d.ts +2 -1
  13. package/components/base/esm2022/directives/show-in-device.directive.mjs +22 -4
  14. package/components/base/esm2022/pipes/custom-pipes.mjs +1 -1
  15. package/components/base/esm2022/utils/widget-utils.mjs +3 -3
  16. package/components/base/esm2022/widgets/common/base/base-container.component.mjs +27 -1
  17. package/components/base/esm2022/widgets/common/base/base-field-validations.mjs +18 -1
  18. package/components/base/esm2022/widgets/common/base/base.component.mjs +68 -7
  19. package/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +9 -1
  20. package/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +44 -11
  21. package/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +20 -1
  22. package/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +26 -1
  23. package/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +44 -4
  24. package/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +16 -1
  25. package/components/base/esm2022/widgets/common/pull-to-refresh/pull-to-refresh.mjs +22 -1
  26. package/components/base/esm2022/widgets/framework/property-change-handler.mjs +7 -2
  27. package/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +5 -3
  28. package/components/base/esm2022/widgets/framework/widget-registry.mjs +6 -3
  29. package/components/base/fesm2022/index.mjs +319 -26
  30. package/components/base/fesm2022/index.mjs.map +1 -1
  31. package/components/base/widgets/common/base/base-container.component.d.ts +3 -2
  32. package/components/base/widgets/common/base/base-field-validations.d.ts +1 -0
  33. package/components/base/widgets/common/base/custom-widget-container.directive.d.ts +3 -2
  34. package/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +6 -2
  35. package/components/base/widgets/common/base/partial-container.directive.d.ts +3 -2
  36. package/components/base/widgets/common/item-template/item-template.directive.d.ts +3 -2
  37. package/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +1 -1
  38. package/components/base/widgets/common/partial-param/partial-param.directive.d.ts +3 -2
  39. package/components/base/widgets/common/pull-to-refresh/pull-to-refresh.d.ts +3 -2
  40. package/components/basic/anchor/bundles/index.umd.js +13 -1
  41. package/components/basic/anchor/esm2022/anchor.component.mjs +14 -2
  42. package/components/basic/anchor/fesm2022/index.mjs +13 -1
  43. package/components/basic/anchor/fesm2022/index.mjs.map +1 -1
  44. package/components/basic/html/bundles/index.umd.js +13 -1
  45. package/components/basic/html/esm2022/html.directive.mjs +14 -2
  46. package/components/basic/html/fesm2022/index.mjs +13 -1
  47. package/components/basic/html/fesm2022/index.mjs.map +1 -1
  48. package/components/basic/label/bundles/index.umd.js +17 -1
  49. package/components/basic/label/esm2022/label.directive.mjs +18 -2
  50. package/components/basic/label/fesm2022/index.mjs +17 -1
  51. package/components/basic/label/fesm2022/index.mjs.map +1 -1
  52. package/components/basic/label/label.directive.d.ts +3 -2
  53. package/components/basic/progress/progress-circle/bundles/index.umd.js +10 -0
  54. package/components/basic/progress/progress-circle/esm2022/progress-circle.component.mjs +11 -1
  55. package/components/basic/progress/progress-circle/fesm2022/index.mjs +10 -0
  56. package/components/basic/progress/progress-circle/fesm2022/index.mjs.map +1 -1
  57. package/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -2
  58. package/components/basic/search/bundles/index.umd.js +27 -1
  59. package/components/basic/search/esm2022/scrollable.directive.mjs +11 -2
  60. package/components/basic/search/esm2022/search.component.mjs +18 -1
  61. package/components/basic/search/fesm2022/index.mjs +27 -1
  62. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  63. package/components/basic/search/scrollable.directive.d.ts +4 -2
  64. package/components/basic/search/search.component.d.ts +3 -2
  65. package/components/basic/spinner/bundles/index.umd.js +9 -1
  66. package/components/basic/spinner/esm2022/spinner.component.mjs +10 -2
  67. package/components/basic/spinner/fesm2022/index.mjs +9 -1
  68. package/components/basic/spinner/fesm2022/index.mjs.map +1 -1
  69. package/components/basic/spinner/spinner.component.d.ts +4 -2
  70. package/components/chart/bundles/index.umd.js +21 -3
  71. package/components/chart/esm2022/chart.component.mjs +22 -4
  72. package/components/chart/fesm2022/index.mjs +21 -3
  73. package/components/chart/fesm2022/index.mjs.map +1 -1
  74. package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +3 -2
  75. package/components/containers/accordion/accordion.directive.d.ts +5 -2
  76. package/components/containers/accordion/bundles/index.umd.js +49 -2
  77. package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +10 -1
  78. package/components/containers/accordion/esm2022/accordion.directive.mjs +41 -3
  79. package/components/containers/accordion/fesm2022/index.mjs +49 -2
  80. package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  81. package/components/containers/panel/bundles/index.umd.js +13 -0
  82. package/components/containers/panel/esm2022/panel.component.mjs +14 -1
  83. package/components/containers/panel/fesm2022/index.mjs +13 -0
  84. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  85. package/components/containers/panel/panel.component.d.ts +3 -2
  86. package/components/containers/tabs/bundles/index.umd.js +54 -2
  87. package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +10 -1
  88. package/components/containers/tabs/esm2022/tabs.component.mjs +46 -3
  89. package/components/containers/tabs/fesm2022/index.mjs +54 -2
  90. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  91. package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +3 -2
  92. package/components/containers/tabs/tabs.component.d.ts +5 -2
  93. package/components/containers/wizard/bundles/index.umd.js +47 -3
  94. package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +16 -3
  95. package/components/containers/wizard/esm2022/wizard.component.mjs +33 -2
  96. package/components/containers/wizard/fesm2022/index.mjs +47 -3
  97. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  98. package/components/containers/wizard/wizard-step/wizard-step.component.d.ts +3 -2
  99. package/components/containers/wizard/wizard.component.d.ts +4 -2
  100. package/components/data/card/bundles/index.umd.js +17 -1
  101. package/components/data/card/card-content/card-content.component.d.ts +3 -2
  102. package/components/data/card/card.component.d.ts +4 -2
  103. package/components/data/card/esm2022/card-content/card-content.component.mjs +6 -1
  104. package/components/data/card/esm2022/card.component.mjs +13 -2
  105. package/components/data/card/fesm2022/index.mjs +17 -1
  106. package/components/data/card/fesm2022/index.mjs.map +1 -1
  107. package/components/data/form/bundles/index.umd.js +92 -0
  108. package/components/data/form/esm2022/form-action/form-action.directive.mjs +7 -1
  109. package/components/data/form/esm2022/form-field/form-field.directive.mjs +28 -1
  110. package/components/data/form/esm2022/form-widget.directive.mjs +8 -1
  111. package/components/data/form/esm2022/form.component.mjs +27 -1
  112. package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +7 -1
  113. package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +12 -1
  114. package/components/data/form/esm2022/live-form/live-form.directive.mjs +10 -1
  115. package/components/data/form/fesm2022/index.mjs +92 -0
  116. package/components/data/form/fesm2022/index.mjs.map +1 -1
  117. package/components/data/form/form-action/form-action.directive.d.ts +3 -2
  118. package/components/data/form/form-field/form-field.directive.d.ts +3 -2
  119. package/components/data/form/form-widget.directive.d.ts +3 -2
  120. package/components/data/form/live-actions/live-actions.directive.d.ts +3 -1
  121. package/components/data/form/live-filter/live-filter.directive.d.ts +3 -1
  122. package/components/data/form/live-form/live-form.directive.d.ts +3 -1
  123. package/components/data/list/bundles/index.umd.js +180 -17
  124. package/components/data/list/esm2022/list-item.directive.mjs +95 -11
  125. package/components/data/list/esm2022/list.component.mjs +87 -8
  126. package/components/data/list/fesm2022/index.mjs +180 -17
  127. package/components/data/list/fesm2022/index.mjs.map +1 -1
  128. package/components/data/list/list-item.directive.d.ts +7 -2
  129. package/components/data/list/list.component.d.ts +3 -0
  130. package/components/data/live-table/bundles/index.umd.js +13 -1
  131. package/components/data/live-table/esm2022/live-table.component.mjs +14 -2
  132. package/components/data/live-table/fesm2022/index.mjs +13 -1
  133. package/components/data/live-table/fesm2022/index.mjs.map +1 -1
  134. package/components/data/live-table/live-table.component.d.ts +4 -2
  135. package/components/data/pagination/bundles/index.umd.js +57 -4
  136. package/components/data/pagination/esm2022/pagination.component.mjs +58 -5
  137. package/components/data/pagination/fesm2022/index.mjs +57 -4
  138. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  139. package/components/data/pagination/pagination.component.d.ts +4 -2
  140. package/components/data/table/bundles/index.umd.js +311 -12
  141. package/components/data/table/esm2022/table-action/table-action.directive.mjs +8 -1
  142. package/components/data/table/esm2022/table-column/table-column.directive.mjs +107 -3
  143. package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +9 -1
  144. package/components/data/table/esm2022/table-cud.directive.mjs +8 -2
  145. package/components/data/table/esm2022/table-filter.directive.mjs +12 -2
  146. package/components/data/table/esm2022/table-row/table-row.directive.mjs +8 -1
  147. package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +8 -1
  148. package/components/data/table/esm2022/table.component.mjs +159 -9
  149. package/components/data/table/fesm2022/index.mjs +311 -12
  150. package/components/data/table/fesm2022/index.mjs.map +1 -1
  151. package/components/data/table/table-action/table-action.directive.d.ts +3 -2
  152. package/components/data/table/table-column/table-column.directive.d.ts +3 -2
  153. package/components/data/table/table-column-group/table-column-group.directive.d.ts +3 -2
  154. package/components/data/table/table-cud.directive.d.ts +3 -1
  155. package/components/data/table/table-filter.directive.d.ts +3 -1
  156. package/components/data/table/table-row/table-row.directive.d.ts +3 -2
  157. package/components/data/table/table-row-action/table-row-action.directive.d.ts +3 -2
  158. package/components/data/table/table.component.d.ts +2 -2
  159. package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +3 -2
  160. package/components/dialogs/alert-dialog/bundles/index.umd.js +5 -0
  161. package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +6 -1
  162. package/components/dialogs/alert-dialog/fesm2022/index.mjs +5 -0
  163. package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  164. package/components/dialogs/confirm-dialog/bundles/index.umd.js +5 -0
  165. package/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +3 -2
  166. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +6 -1
  167. package/components/dialogs/confirm-dialog/fesm2022/index.mjs +5 -0
  168. package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  169. package/components/dialogs/default/bundles/index.umd.js +15 -2
  170. package/components/dialogs/default/dialog-body/dialog-body.directive.d.ts +4 -2
  171. package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +16 -3
  172. package/components/dialogs/default/fesm2022/index.mjs +15 -2
  173. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  174. package/components/dialogs/design-dialog/bundles/index.umd.js +7 -0
  175. package/components/dialogs/design-dialog/dialog.component.d.ts +3 -2
  176. package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +8 -1
  177. package/components/dialogs/design-dialog/fesm2022/index.mjs +7 -0
  178. package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  179. package/components/dialogs/iframe-dialog/bundles/index.umd.js +5 -0
  180. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +6 -1
  181. package/components/dialogs/iframe-dialog/fesm2022/index.mjs +5 -0
  182. package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  183. package/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +3 -2
  184. package/components/dialogs/partial-dialog/bundles/index.umd.js +23 -3
  185. package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +24 -4
  186. package/components/dialogs/partial-dialog/fesm2022/index.mjs +23 -3
  187. package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  188. package/components/dialogs/partial-dialog/partial-dialog.component.d.ts +4 -2
  189. package/components/input/base-form/base-form.component.d.ts +4 -2
  190. package/components/input/base-form/bundles/index.umd.js +16 -2
  191. package/components/input/base-form/esm2022/base-form.component.mjs +17 -3
  192. package/components/input/base-form/fesm2022/index.mjs +16 -2
  193. package/components/input/base-form/fesm2022/index.mjs.map +1 -1
  194. package/components/input/base-form-custom/base-form-custom.component.d.ts +3 -2
  195. package/components/input/base-form-custom/bundles/index.umd.js +13 -2
  196. package/components/input/base-form-custom/esm2022/base-form-custom.component.mjs +14 -3
  197. package/components/input/base-form-custom/fesm2022/index.mjs +13 -2
  198. package/components/input/base-form-custom/fesm2022/index.mjs.map +1 -1
  199. package/components/input/checkbox/bundles/index.umd.js +7 -0
  200. package/components/input/checkbox/checkbox.component.d.ts +3 -2
  201. package/components/input/checkbox/esm2022/checkbox.component.mjs +8 -1
  202. package/components/input/checkbox/fesm2022/index.mjs +7 -0
  203. package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
  204. package/components/input/checkboxset/bundles/index.umd.js +18 -2
  205. package/components/input/checkboxset/checkboxset.component.d.ts +4 -2
  206. package/components/input/checkboxset/esm2022/checkboxset.component.mjs +19 -3
  207. package/components/input/checkboxset/fesm2022/index.mjs +18 -2
  208. package/components/input/checkboxset/fesm2022/index.mjs.map +1 -1
  209. package/components/input/chips/bundles/index.umd.js +45 -5
  210. package/components/input/chips/chips.component.d.ts +3 -2
  211. package/components/input/chips/esm2022/chips.component.mjs +46 -6
  212. package/components/input/chips/fesm2022/index.mjs +45 -5
  213. package/components/input/chips/fesm2022/index.mjs.map +1 -1
  214. package/components/input/color-picker/bundles/index.umd.js +8 -0
  215. package/components/input/color-picker/color-picker.component.d.ts +3 -2
  216. package/components/input/color-picker/esm2022/color-picker.component.mjs +9 -1
  217. package/components/input/color-picker/fesm2022/index.mjs +8 -0
  218. package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  219. package/components/input/composite/bundles/index.umd.js +10 -1
  220. package/components/input/composite/composite.directive.d.ts +3 -2
  221. package/components/input/composite/esm2022/composite.directive.mjs +11 -2
  222. package/components/input/composite/fesm2022/index.mjs +10 -1
  223. package/components/input/composite/fesm2022/index.mjs.map +1 -1
  224. package/components/input/currency/bundles/index.umd.js +7 -0
  225. package/components/input/currency/currency.component.d.ts +3 -2
  226. package/components/input/currency/esm2022/currency.component.mjs +8 -1
  227. package/components/input/currency/fesm2022/index.mjs +7 -0
  228. package/components/input/currency/fesm2022/index.mjs.map +1 -1
  229. package/components/input/dataset-aware-form/bundles/index.umd.js +26 -2
  230. package/components/input/dataset-aware-form/esm2022/dataset-aware-form.component.mjs +27 -3
  231. package/components/input/dataset-aware-form/fesm2022/index.mjs +26 -2
  232. package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -1
  233. package/components/input/epoch/date/bundles/index.umd.js +22 -0
  234. package/components/input/epoch/date/date.component.d.ts +1 -0
  235. package/components/input/epoch/date/esm2022/date.component.mjs +23 -1
  236. package/components/input/epoch/date/fesm2022/index.mjs +22 -0
  237. package/components/input/epoch/date/fesm2022/index.mjs.map +1 -1
  238. package/components/input/file-upload/bundles/index.umd.js +25 -8
  239. package/components/input/file-upload/esm2022/file-upload.component.mjs +26 -9
  240. package/components/input/file-upload/fesm2022/index.mjs +25 -8
  241. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  242. package/components/input/file-upload/file-upload.component.d.ts +3 -0
  243. package/components/input/number/bundles/index.umd.js +8 -0
  244. package/components/input/number/esm2022/number.component.mjs +9 -1
  245. package/components/input/number/fesm2022/index.mjs +8 -0
  246. package/components/input/number/fesm2022/index.mjs.map +1 -1
  247. package/components/input/number/number.component.d.ts +3 -2
  248. package/components/input/radioset/bundles/index.umd.js +18 -2
  249. package/components/input/radioset/esm2022/radioset.component.mjs +19 -3
  250. package/components/input/radioset/fesm2022/index.mjs +18 -2
  251. package/components/input/radioset/fesm2022/index.mjs.map +1 -1
  252. package/components/input/radioset/radioset.component.d.ts +4 -2
  253. package/components/input/rating/bundles/index.umd.js +10 -0
  254. package/components/input/rating/esm2022/rating.component.mjs +11 -1
  255. package/components/input/rating/fesm2022/index.mjs +10 -0
  256. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  257. package/components/input/rating/rating.component.d.ts +3 -2
  258. package/components/input/select/bundles/index.umd.js +6 -0
  259. package/components/input/select/esm2022/select.component.mjs +7 -1
  260. package/components/input/select/fesm2022/index.mjs +6 -0
  261. package/components/input/select/fesm2022/index.mjs.map +1 -1
  262. package/components/input/select/select.component.d.ts +3 -2
  263. package/components/input/slider/bundles/index.umd.js +10 -0
  264. package/components/input/slider/esm2022/slider.component.mjs +11 -1
  265. package/components/input/slider/fesm2022/index.mjs +10 -0
  266. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  267. package/components/input/slider/slider.component.d.ts +3 -2
  268. package/components/input/switch/bundles/index.umd.js +22 -2
  269. package/components/input/switch/esm2022/switch.component.mjs +23 -3
  270. package/components/input/switch/fesm2022/index.mjs +22 -2
  271. package/components/input/switch/fesm2022/index.mjs.map +1 -1
  272. package/components/input/switch/switch.component.d.ts +3 -2
  273. package/components/input/text/bundles/index.umd.js +36 -0
  274. package/components/input/text/esm2022/input-calendar/input-calendar.component.mjs +8 -1
  275. package/components/input/text/esm2022/input-color/input-color.component.mjs +8 -1
  276. package/components/input/text/esm2022/input-email/input-email.component.mjs +8 -1
  277. package/components/input/text/esm2022/input-number/input-number.component.mjs +8 -1
  278. package/components/input/text/esm2022/input-text/input-text.component.mjs +9 -1
  279. package/components/input/text/fesm2022/index.mjs +36 -0
  280. package/components/input/text/fesm2022/index.mjs.map +1 -1
  281. package/components/input/text/input-calendar/input-calendar.component.d.ts +3 -2
  282. package/components/input/text/input-color/input-color.component.d.ts +3 -2
  283. package/components/input/text/input-email/input-email.component.d.ts +3 -2
  284. package/components/input/text/input-number/input-number.component.d.ts +3 -2
  285. package/components/input/text/input-text/input-text.component.d.ts +3 -2
  286. package/components/input/textarea/bundles/index.umd.js +7 -0
  287. package/components/input/textarea/esm2022/textarea.component.mjs +8 -1
  288. package/components/input/textarea/fesm2022/index.mjs +7 -0
  289. package/components/input/textarea/fesm2022/index.mjs.map +1 -1
  290. package/components/input/textarea/textarea.component.d.ts +3 -2
  291. package/components/navigation/menu/bundles/index.umd.js +55 -6
  292. package/components/navigation/menu/esm2022/menu-adapator.component.mjs +17 -3
  293. package/components/navigation/menu/esm2022/menu.component.mjs +10 -3
  294. package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +6 -1
  295. package/components/navigation/menu/esm2022/nav/nav.component.mjs +11 -1
  296. package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +16 -3
  297. package/components/navigation/menu/fesm2022/index.mjs +55 -6
  298. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  299. package/components/navigation/menu/menu-adapator.component.d.ts +4 -2
  300. package/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +3 -2
  301. package/components/navigation/menu/nav/nav.component.d.ts +3 -2
  302. package/components/navigation/menu/nav/navigation-control.directive.d.ts +4 -2
  303. package/components/navigation/navbar/bundles/index.umd.js +5 -0
  304. package/components/navigation/navbar/esm2022/navbar.component.mjs +6 -1
  305. package/components/navigation/navbar/fesm2022/index.mjs +5 -0
  306. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  307. package/components/navigation/navbar/navbar.component.d.ts +3 -2
  308. package/components/navigation/popover/bundles/index.umd.js +65 -13
  309. package/components/navigation/popover/esm2022/popover.component.mjs +63 -11
  310. package/components/navigation/popover/fesm2022/index.mjs +62 -10
  311. package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  312. package/components/navigation/popover/popover.component.d.ts +11 -3
  313. package/components/page/default/bundles/index.umd.js +20 -2
  314. package/components/page/default/esm2022/layout.directive.mjs +9 -1
  315. package/components/page/default/esm2022/page-content/page-content.component.mjs +13 -3
  316. package/components/page/default/fesm2022/index.mjs +20 -2
  317. package/components/page/default/fesm2022/index.mjs.map +1 -1
  318. package/components/page/default/layout.directive.d.ts +3 -2
  319. package/components/page/default/page-content/page-content.component.d.ts +3 -2
  320. package/components/page/left-panel/bundles/index.umd.js +16 -0
  321. package/components/page/left-panel/esm2022/left-panel.directive.mjs +17 -1
  322. package/components/page/left-panel/fesm2022/index.mjs +16 -0
  323. package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  324. package/components/page/left-panel/left-panel.directive.d.ts +3 -2
  325. package/components/page/top-nav/bundles/index.umd.js +2 -1
  326. package/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
  327. package/components/page/top-nav/fesm2022/index.mjs +2 -1
  328. package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  329. package/components/prefab/bundles/index.umd.js +4 -0
  330. package/components/prefab/esm2022/prefab.directive.mjs +5 -1
  331. package/components/prefab/fesm2022/index.mjs +4 -0
  332. package/components/prefab/fesm2022/index.mjs.map +1 -1
  333. package/core/bundles/index.umd.js +391 -94
  334. package/core/esm2022/public_api.mjs +3 -3
  335. package/core/esm2022/services/viewport.service.mjs +24 -10
  336. package/core/esm2022/types/types.mjs +1 -1
  337. package/core/esm2022/utils/dom.mjs +18 -2
  338. package/core/esm2022/utils/event-notifier.mjs +5 -2
  339. package/core/esm2022/utils/lru-cache.mjs +16 -2
  340. package/core/esm2022/utils/utils.mjs +6 -2
  341. package/core/esm2022/utils/watcher.mjs +323 -81
  342. package/core/fesm2022/index.mjs +390 -96
  343. package/core/fesm2022/index.mjs.map +1 -1
  344. package/core/public_api.d.ts +2 -2
  345. package/core/services/viewport.service.d.ts +5 -2
  346. package/core/types/types.d.ts +1 -0
  347. package/core/utils/lru-cache.d.ts +6 -0
  348. package/core/utils/utils.d.ts +1 -0
  349. package/core/utils/watcher.d.ts +26 -5
  350. package/http/bundles/index.umd.js +31 -1
  351. package/http/esm2022/http.service.mjs +32 -2
  352. package/http/fesm2022/index.mjs +31 -1
  353. package/http/fesm2022/index.mjs.map +1 -1
  354. package/http/http.service.d.ts +6 -2
  355. package/npm-shrinkwrap.json +2 -2
  356. package/oAuth/bundles/index.umd.js +9 -0
  357. package/oAuth/esm2022/oAuth.service.mjs +10 -1
  358. package/oAuth/fesm2022/index.mjs +9 -0
  359. package/oAuth/fesm2022/index.mjs.map +1 -1
  360. package/oAuth/oAuth.service.d.ts +3 -1
  361. package/package-lock.json +2 -2
  362. package/package.json +1 -1
  363. package/runtime/base/bundles/index.umd.js +364 -30
  364. package/runtime/base/components/app-component/app.component.d.ts +4 -0
  365. package/runtime/base/components/prefab-preview.component.d.ts +5 -2
  366. package/runtime/base/directives/accessroles.directive.d.ts +4 -3
  367. package/runtime/base/directives/prefab.directive.d.ts +3 -2
  368. package/runtime/base/esm2022/components/app-component/app.component.mjs +40 -9
  369. package/runtime/base/esm2022/components/base-custom-widget.component.mjs +33 -2
  370. package/runtime/base/esm2022/components/base-layout.component.mjs +7 -1
  371. package/runtime/base/esm2022/components/base-page.component.mjs +36 -3
  372. package/runtime/base/esm2022/components/base-partial.component.mjs +37 -3
  373. package/runtime/base/esm2022/components/base-prefab.component.mjs +32 -3
  374. package/runtime/base/esm2022/components/base-spa-page.component.mjs +37 -3
  375. package/runtime/base/esm2022/components/prefab-preview.component.mjs +23 -4
  376. package/runtime/base/esm2022/directives/accessroles.directive.mjs +11 -2
  377. package/runtime/base/esm2022/directives/prefab.directive.mjs +9 -1
  378. package/runtime/base/esm2022/services/app.manager.service.mjs +37 -10
  379. package/runtime/base/esm2022/services/app.service.mjs +34 -2
  380. package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +4 -1
  381. package/runtime/base/esm2022/services/pipe-provider.service.mjs +7 -4
  382. package/runtime/base/esm2022/services/spinner.service.mjs +15 -1
  383. package/runtime/base/esm2022/util/fragment-monitor.mjs +23 -2
  384. package/runtime/base/fesm2022/index.mjs +365 -31
  385. package/runtime/base/fesm2022/index.mjs.map +1 -1
  386. package/runtime/base/services/app.manager.service.d.ts +6 -1
  387. package/runtime/base/services/app.service.d.ts +12 -2
  388. package/runtime/base/services/dynamic-component-ref-provider.service.d.ts +2 -1
  389. package/runtime/base/services/spinner.service.d.ts +3 -1
  390. package/runtime/base/util/fragment-monitor.d.ts +6 -0
  391. package/runtime/dynamic/bundles/index.umd.js +5 -0
  392. package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +6 -1
  393. package/runtime/dynamic/fesm2022/index.mjs +5 -0
  394. package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  395. package/scripts/datatable/datatable.js +100 -14
  396. package/security/bundles/index.umd.js +41 -2
  397. package/security/esm2022/security.service.mjs +42 -3
  398. package/security/fesm2022/index.mjs +41 -2
  399. package/security/fesm2022/index.mjs.map +1 -1
  400. package/security/security.service.d.ts +5 -2
  401. package/variables/bundles/index.umd.js +50 -6
  402. package/variables/esm2022/manager/action/notification-action.manager.mjs +18 -3
  403. package/variables/esm2022/manager/variable/base-variable.manager.mjs +15 -2
  404. package/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +13 -3
  405. package/variables/esm2022/service/variables.service.mjs +8 -2
  406. package/variables/fesm2022/index.mjs +50 -6
  407. package/variables/fesm2022/index.mjs.map +1 -1
@@ -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 { 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":";;;;;;;AAEO,MAAMA,eAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,SAAS,EACT,IAAI,GAAG,CACH;QACI,CAAC,OAAO,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,EAAC,CAAC;QAC1C,CAAC,qBAAqB,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;QACvD,CAAC,WAAW,EAAE,WAAW,CAAC;QAC1B,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,WAAW,EAAE,WAAW;AAC5B,KAAA,CACJ,CACJ;AACL,CAAC;;ACPD,MAAMC,aAAW,GAAG,oBAAoB;AACxC,MAAMC,eAAa,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAED,aAAW,EAAE;AAUjE,MAAO,aAAc,SAAQ,iBAAiB,CAAA;AACzC,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGD,eAAa,EAAhB,CAAmB;AAMzC,IAAA,gBAAgB,CAAC,GAAW,EAAE,EAAO,EAAE,EAAQ,EAAA;AAC3C,QAAA,IAAI,GAAG,KAAK,WAAW,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC;aAAO;YACH,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;QACvC;IACJ;AAEA,IAAA,WAAA,CAAY,GAAa,EAAU,YAAmB,EAAU,QAAkB,EAA0C,eAAoB,EAAA;AAC5I,QAAA,KAAK,CAAC,GAAG,EAAEE,eAAa,EAAE,eAAe,CAAC;QADX,IAAA,CAAA,YAAY,GAAZ,YAAY;QAAiB,IAAA,CAAA,QAAQ,GAAR,QAAQ;AAZhE,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC;QAC1C,IAAA,CAAA,mBAAmB,GAAG,IAAI;IAajC;AAEA;;;;;;AAMG;AACI,IAAA,MAAM,CAAC,SAAiB,EAAE,GAAG,IAAgB,EAAA;AAChD,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC;IACpE;AAEA;;;;;;;AAOG;IACI,SAAS,CAAC,SAAS,EAAE,QAA6B,EAAA;QACrD,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7D;IAEO,eAAe,GAAA;QAClB,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AAC3B,YAAA,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,uBAAuB,CAAC;QACvF,CAAC,EAAE,CAAC,CAAC;QACL,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAA,QAAA,6BAAuB,IAAI,IAAG;YAC9E,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9F,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAA,mBAAA,yCAAmC,IAAI,IAAG;YAC1F,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACzG,CAAC,CAAC,CAAC;IACP;IAEO,UAAU,GAAA;QACb,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1C,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACpD,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAClB,WAAW,EAAE,IAAI,CAAC;AACrB,SAAA,CAAC;IACN;IAEO,UAAU,GAAA;QACb,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACpD,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IACzB;IAEO,WAAW,GAAA;QACd,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACrD,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;IACjC;AAvES,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,uFAesE,kBAAkB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAfrG,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EALX;YACP,kBAAkB,CAAC,aAAa;AACnC,SAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGQ,aAAa,EAAA,UAAA,EAAA,CAAA;kBARzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,SAAS,EAAE;AACP,wBAAA,kBAAkB,CAAA,aAAA;AACrB,qBAAA;AACD,oBAAA,QAAQ,EAAE;AACb,iBAAA;;0BAgBwF,MAAM;2BAAC,kBAAkB;;0BAAG;;;AChC9G,MAAMF,eAAa,GAAG,MAAK;IAC9B,QAAQ,CACJ,WAAW,EACX,IAAI,GAAG,CACH,EAAE,CACL,CACJ;AACL,CAAC;;ACFD,MAAMC,aAAW,GAAG,oBAAoB;AACxC,MAAMC,eAAa,GAAG,EAAC,UAAU,EAAE,WAAW,EAAE,SAAS,EAAED,aAAW,EAAC;AAUjE,MAAO,eAAgB,SAAQ,iBAAiB,CAAA;AAC3C,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGD,eAAa,EAAhB,CAAmB;IAIzC,WAAA,CAAY,GAAa,EAA0C,eAAoB,EAAA;AACnF,QAAA,KAAK,CAAC,GAAG,EAAEE,eAAa,EAAE,eAAe,CAAC;AAHtC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC;IAIjD;AAEA;;;;;;AAMG;AACI,IAAA,MAAM,CAAC,SAAiB,EAAE,GAAG,IAAgB,EAAA;AAChD,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC;IACpE;IAEO,eAAe,GAAA;QAClB,UAAU,CAAC,MAAK;AACZ,YAAA,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,uBAAuB,CAAC;QACvF,CAAC,EAAE,CAAC,CAAC;IACT;AAxBS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,0CAKW,kBAAkB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAL5C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,SAAA,EALb;YACP,kBAAkB,CAAC,eAAe;AACrC,SAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGQ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAR3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AACd,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,SAAS,EAAE;AACP,wBAAA,kBAAkB,CAAA,eAAA;AACrB,qBAAA;AACD,oBAAA,QAAQ,EAAE;AACb,iBAAA;;0BAM+B,MAAM;2BAAC,kBAAkB;;0BAAG;;;ACrBrD,MAAMF,eAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,iBAAiB,EACjB,IAAI,GAAG,CACH;QACI,CAAC,OAAO,EAAE,WAAW,CAAC;QACtB,CAAC,aAAa,EAAE,WAAW,CAAC;QAC5B,CAAC,SAAS,EAAE,WAAW,CAAC;QACxB,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,eAAe,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,EAAC;AACpD,KAAA,CACJ,CACJ;AACL,CAAC;;ACRD,MAAMC,aAAW,GAAG,qCAAqC;AACzD,MAAMC,eAAa,GAAG,EAAC,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAED,aAAW,EAAC;AAUvE,MAAO,oBAAqB,SAAQ,iBAAiB,CAAA;AAChD,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGD,eAAa,EAAhB,CAAmB;AAMzC,IAAA,WAAA,CAAY,GAAa,EAAU,GAAQ,EAA0C,eAAoB,EAAA;AACrG,QAAA,KAAK,CAAC,GAAG,EAAEE,eAAa,EAAE,eAAe,CAAC;QADX,IAAA,CAAA,GAAG,GAAH,GAAG;QAGlC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC;AAE7D,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,sBAAsB,EAAE,MAAK;AACzE,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;YAC9B,IAAI,CAAC,iBAAiB,EAAE;QAC5B,CAAC,CAAC,CAAC;IACP;AAEA,IAAA,gBAAgB,CAAC,GAAW,EAAE,EAAO,EAAE,EAAQ,EAAA;AAC3C,QAAA,IAAI,GAAG,KAAK,aAAa,EAAE;AACvB,YAAA,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,CAAA,QAAA,EAAW,EAAE,CAAA,CAAE,EAAE,CAAA,OAAA,EAAU,EAAE,WAAW,EAAE,CAAA,CAAE,CAAC;QAC7F;AAAO,aAAA,IAAI,GAAG,KAAK,eAAe,IAAI,EAAE,EAAE;;YAEtC,UAAU,CAAC,MAAK;gBACZ,IAAI,CAAC,iBAAiB,EAAE;AAC5B,YAAA,CAAC,CAAC;QACN;aAAO;YACH,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;QACvC;IACJ;;IAGQ,iBAAiB,GAAA;QACrB,MAAM,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC;AACpE,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,kBAAkB,IAAI,qBAAqB,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE;AACpG,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,MAAK;gBAC5E,IAAI,qBAAqB,EAAE;AACvB,oBAAA,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC;gBAC7C;qBAAO;AACH,oBAAA,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC;gBACpC;AACJ,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,CAAC,uBAAuB,CAAC,MAAK;AAC9B,gBAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE;AAC1C,oBAAA,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE;gBAC9C;AACJ,YAAA,CAAC,CAAC;QACN;IACJ;AAhDS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,6DAOwB,kBAAkB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAP9D,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,SAAA,EAJlB;YACP,kBAAkB,CAAC,oBAAoB;AAC1C,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBL,2BAAyB,EAAA,CAAA,CAAA;;4FDkBZ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBARhC,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,iBAAiB,EAAA,SAAA,EAEhB;AACP,wBAAA,kBAAkB,CAAA,oBAAA;AACrB,qBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA;;0BAS6C,MAAM;2BAAC,kBAAkB;;0BAAG;;;AEvBvE,MAAMF,eAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,YAAY,EACZ,IAAI,GAAG,CACH;QACI,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,OAAO,EAAE,WAAW;AACxB,KAAA,CACJ,CACJ;AACL,CAAC;;ACND,MAAMC,aAAW,GAAG,sBAAsB;AAC1C,MAAMC,eAAa,GAAkB,EAAC,UAAU,EAAE,YAAY,EAAE,SAAS,EAAED,aAAW,EAAC;AAUjF,MAAO,gBAAiB,SAAQ,iBAAiB,CAAA;AAC5C,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGD,eAAa,EAAhB,CAAmB;IAEzC,WAAA,CAAY,GAAa,EAA0C,eAAoB,EAAA;AACnF,QAAA,KAAK,CAAC,GAAG,EAAEE,eAAa,EAAE,eAAe,CAAC;AAE1C,QAAA,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;IACpC;AAPS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,0CAGU,kBAAkB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAH5C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,SAAA,EAJd;YACP,kBAAkB,CAAC,gBAAgB;AACtC,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECfL,qFAEM,EAAA,CAAA,CAAA;;4FDeO,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAR5B,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,aAAa,EAAA,SAAA,EAEZ;AACP,wBAAA,kBAAkB,CAAA,gBAAA;AACrB,qBAAA,EAAA,QAAA,EAAA,qFAAA,EAAA;;0BAK2B,MAAM;2BAAC,kBAAkB;;0BAAG;;;AElBrD,MAAMF,eAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,aAAa,EACb,IAAI,GAAG,CACH;QACI,CAAC,OAAO,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,EAAC,CAAC;QAC1C,CAAC,qBAAqB,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;QACvD,CAAC,WAAW,EAAE,WAAW,CAAC;QAC1B,CAAC,MAAM,EAAE,WAAW;AACvB,KAAA,CACJ,CACJ;AACL,CAAC;;ACND,MAAMC,aAAW,GAAG,cAAc;AAClC,MAAMC,eAAa,GAAG,EAAC,UAAU,EAAE,aAAa,EAAE,SAAS,EAAED,aAAW,EAAC;AAUnE,MAAO,gBAAiB,SAAQ,iBAAiB,CAAA;AAC5C,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGD,eAAa,EAAhB,CAAmB;AAMzC,IAAA,gBAAgB,CAAC,GAAW,EAAE,EAAO,EAAE,EAAQ,EAAA;AAC3C,QAAA,IAAI,GAAG,KAAK,WAAW,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC;aAAO;YACH,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;QACvC;IACJ;AAEA,IAAA,WAAA,CAAY,GAAa,EAAU,YAAmB,EAAU,QAAkB,EAA0C,eAAoB,EAAA;AAC5I,QAAA,KAAK,CAAC,GAAG,EAAEE,eAAa,EAAE,eAAe,CAAC;QADX,IAAA,CAAA,YAAY,GAAZ,YAAY;QAAiB,IAAA,CAAA,QAAQ,GAAR,QAAQ;AAZhE,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC;QAC1C,IAAA,CAAA,mBAAmB,GAAG,IAAI;IAajC;AAEA;;;;;;AAMG;AACI,IAAA,MAAM,CAAC,SAAiB,EAAE,GAAG,IAAgB,EAAA;AAChD,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC;IACpE;AAEA;;;;;;;AAOG;IACI,SAAS,CAAC,SAAS,EAAE,QAA6B,EAAA;QACrD,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7D;IAEO,eAAe,GAAA;QAClB,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AAC3B,YAAA,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,uBAAuB,CAAC;QACvF,CAAC,EAAE,CAAC,CAAC;QACL,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAA,QAAA,6BAAuB,IAAI,IAAG;YAC9E,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9F,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAA,mBAAA,yCAAmC,IAAI,IAAG;YAC1F,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACzG,CAAC,CAAC,CAAC;IACP;IAEO,UAAU,GAAA;QACb,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1C,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACpD,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAClB,WAAW,EAAG,IAAI,CAAC;AACtB,SAAA,CAAC;IACN;IAEO,UAAU,GAAA;QACb,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACpD,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IACzB;IAEO,WAAW,GAAA;QACd,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACrD,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;IACjC;AAvES,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,uFAemE,kBAAkB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAfrG,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,SAAA,EALd;YACP,kBAAkB,CAAC,gBAAgB;AACtC,SAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGQ,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAR5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AACd,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,SAAS,EAAE;AACP,wBAAA,kBAAkB,CAAA,gBAAA;AACrB,qBAAA;AACD,oBAAA,QAAQ,EAAE;AACb,iBAAA;;0BAgBwF,MAAM;2BAAC,kBAAkB;;0BAAG;;;AChC9G,MAAM,aAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,kBAAkB,EAClB,IAAI,GAAG,CACH;QACI,CAAC,aAAa,EAAE,WAAW,CAAC;QAC5B,CAAC,MAAM,EAAE,WAAW;AACvB,KAAA,CACJ,CACJ;AACL,CAAC;;ACLD,MAAM,WAAW,GAAG,4BAA4B;AAChD,MAAM,aAAa,GAAkB;AACjC,IAAA,UAAU,EAAE,kBAAkB;AAC9B,IAAA,SAAS,EAAE;CACd;AASK,MAAO,qBAAsB,SAAQ,iBAAiB,CAAA;AACjD,IAAA,SAAA,IAAA,CAAA,eAAe,GAAG,aAAa,EAAhB,CAAmB;AAEzC,IAAA,WAAA,CAAY,GAAa,EAA0C,eAAoB,EAAS,GAAQ,EAAA;AACpG,QAAA,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,eAAe,CAAC;QADkD,IAAA,CAAA,GAAG,GAAH,GAAG;QAE/F,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO;;AAE/B,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;QAC7C;IACJ;AAEA,IAAA,gBAAgB,CAAC,GAAW,EAAE,EAAO,EAAE,EAAQ,EAAA;QAC3C,IAAI,GAAG,KAAK,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACxC,YAAA,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,CAAA,QAAA,EAAW,EAAE,CAAA,CAAE,EAAE,CAAA,OAAA,EAAU,EAAE,WAAW,EAAE,CAAA,CAAE,CAAC;QAC7F;aAAO;YACH,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;QACvC;IACJ;AAlBS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,0CAGK,kBAAkB,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,GAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAH5C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,SAAA,EAJnB;YACP,kBAAkB,CAAC,qBAAqB;AAC3C,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAEQ,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,SAAS,EAAE;AACP,wBAAA,kBAAkB,CAAA,qBAAA;AACrB;AACJ,iBAAA;;0BAI+B,MAAM;2BAAC,kBAAkB;;0BAAG;;;ACvB5D;;AAEG;;;;"}
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
  }
@@ -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)
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/page/left-panel/src/left-panel.props.ts","../../../../../projects/components/widgets/page/left-panel/src/left-panel.animator.ts","../../../../../projects/components/widgets/page/left-panel/src/left-panel.directive.ts","../../../../../projects/components/widgets/page/left-panel/src/index.ts"],"sourcesContent":["import {PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-left-panel',\n new Map(\n [\n ['animation', {value: 'slide-in', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['columnwidth', { value: 3, ...PROP_NUMBER}],\n ['content', PROP_STRING],\n ['gestures', {value: 'on', ... PROP_STRING}],\n ['name', PROP_STRING],\n ['xscolumnwidth', { value: 10, ...PROP_NUMBER}],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING]\n ]\n )\n );\n};\n","import { SwipeAnimation } from '@swipey';\n\nimport { $appDigest } from '@wm/core';\n\nimport { AnimationType, LeftPanelDirective } from './left-panel.directive';\n\nexport class LeftPanelAnimator extends SwipeAnimation {\n private _$animatedElements;\n private _expanded: boolean;\n private _leftPanelWidth: number;\n private _maxX: number;\n private _pageContainerWidth: number;\n private _width: number;\n\n constructor(private leftPanel: LeftPanelDirective) {\n super();\n this.init(this.leftPanel.$ele, this.leftPanel.$page);\n }\n\n public bounds(e, length): {} {\n let offset = 0;\n this.setGesturesEnabled(this.leftPanel.isGesturesEnabled());\n if (!this._width) {\n this._pageContainerWidth = this.leftPanel.$page.width();\n this._leftPanelWidth = this.leftPanel.$ele.width();\n this._maxX = this._leftPanelWidth / this._pageContainerWidth * 100;\n this._width = this.leftPanel.animation === AnimationType.SLIDE_IN ? this._pageContainerWidth : this._leftPanelWidth;\n }\n this._expanded = this.leftPanel.expanded;\n\n if (this._expanded) {\n return {\n 'center': this._leftPanelWidth,\n 'lower': -(this._leftPanelWidth - offset)\n };\n }\n if (this.leftPanel.app.isTabletApplicationType) {\n offset = 53.32;\n }\n if (e && (e.pageX || (e.touches && e.touches[0].pageX)) > offset + 100) {\n return {\n strict: true\n };\n }\n return {\n 'center': 0,\n 'upper': this._leftPanelWidth - offset\n };\n }\n\n public context() {\n return {\n 'w': this._width,\n 'pageW': this._pageContainerWidth,\n 'leftW': this._leftPanelWidth,\n 'maxX': this._maxX,\n 'limit': (min: number, v: number, max: number) => {\n if (v < min) {\n return min;\n }\n if (v > max) {\n return max;\n }\n return v;\n }\n };\n }\n\n public animation() {\n this._$animatedElements = this.leftPanel.$ele;\n if (this.leftPanel.animation === AnimationType.SLIDE_IN) {\n this._$animatedElements = this._$animatedElements.add(this.leftPanel.$page);\n if (this.leftPanel.app.isTabletApplicationType) {\n return [\n {\n 'target': this.leftPanel.$ele,\n 'css': {\n 'transform': 'translate3d(${{ limit(-100, -($d * 100 / leftW), 0) + \\'%\\' }}, 0, 0)'\n }\n },\n {\n 'target': this.leftPanel.$page,\n 'css': {\n 'transform': 'translate3d(${{ (($d) * 100 / pageW) + \\'%\\' }}, 0, 0)',\n 'width': '${{ (pageW - $d) + \\'px\\' }}',\n 'z-index': 101\n }\n }\n ];\n }\n return [\n {\n 'target': this.leftPanel.$ele,\n 'css': {\n 'transform': 'translate3d(-100%, 0, 0)',\n 'opacity': 1,\n 'z-index': 101\n }\n },\n {\n 'target': this.leftPanel.$page,\n 'css': {\n 'transform': 'translate3d(${{ limit( 0, ((($D + $d) * 100 / w)), maxX ) + \\'%\\' }}, 0, 0)',\n 'opacity': 1,\n 'z-index': 101\n }\n }];\n } else {\n return {\n 'transform': 'translate3d(${{ limit( -100, ((($D + $d) * 100 / w) - 100), 0 ) + \\'%\\'}}, 0, 0)',\n 'opacity': 1,\n 'z-index': 101\n };\n }\n }\n\n public onLower(): void {\n this._expanded = false;\n this.leftPanel.collapse();\n this.resetTransition();\n $appDigest();\n }\n\n public onUpper(): void {\n this._expanded = true;\n this.leftPanel.expand();\n this.resetTransition();\n $appDigest();\n }\n\n private resetTransition() {\n if (this._$animatedElements) {\n /*\n * This timeout is for preventing UI flicker at the end of animation.\n */\n setTimeout(() => {\n this._$animatedElements.css({\n 'transform': '',\n 'opacity': '',\n 'z-index': '',\n 'width': ''\n });\n }, 100);\n }\n }\n}\n","import {Attribute, Directive, Inject, Injector, Optional} from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\n\nimport {App, addClass, removeClass, switchClass, toggleClass, isMobile, getNavClass } from '@wm/core';\nimport { APPLY_STYLES_TYPE, getKeyboardFocusableElements, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { LayoutDirective, PageDirective } from '@wm/components/page';\n\nimport { registerProps } from './left-panel.props';\nimport { LeftPanelAnimator } from './left-panel.animator';\n\nconst DEFAULT_CLS = 'app-left-panel left-panel-collapsed';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-left-panel',\n hostClass: DEFAULT_CLS\n};\n\nexport enum AnimationType {\n SLIDE_IN = 'slide-in',\n SLIDE_OVER = 'slide-over'\n}\n\n@Directive({\n standalone: true,\n selector: '[wmLeftPanel]',\n providers: [\n provideAsWidgetRef(LeftPanelDirective)\n ],\n exportAs: 'wmLeftPanel'\n})\nexport class LeftPanelDirective extends StylableComponent {\n static initializeProps = registerProps();\n\n public animation: AnimationType;\n public columnwidth: number;\n public expanded: boolean;\n public gestures: string;\n public xscolumnwidth: number;\n\n public $ele;\n public $page;\n\n private _destroyCollapseActionListener: () => void;\n private _leftPanelAnimator;\n\n //If \"spa\" attribute is set LayoutDirective will present and PageDirective is undefined else PageDirective will present and LayoutDirective is undefined\n constructor(public app: App, @Optional() private page: PageDirective, @Optional() private layout: LayoutDirective, inj: Injector, router: Router, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any, @Attribute('navtype') navtype: string, @Attribute('navheight') navHeight: string) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n this.$ele = this.$element;\n this.$page = this.getAttr('spa') && layout && layout.$element || page && page.$element;\n addClass(this.$page[0], 'left-panel-collapsed-container');\n if (this.columnwidth) {\n this.setLeftPanelWidth(['md', 'sm'], this.columnwidth);\n }\n if (this.app.isTabletApplicationType) {\n addClass(this.nativeElement, 'wm-tablet-app-left-panel');\n }\n const onRouteChange = router.events.subscribe(e => {\n if (e instanceof NavigationStart) {\n this.collapse();\n }\n });\n this.registerDestroyListener(() => onRouteChange.unsubscribe());\n if(!navtype) navtype = 'drawer';\n this.$element.addClass(getNavClass(navtype));\n if (navHeight) {\n this.$element.addClass(getNavClass(navHeight));\n addClass(this.$page[0], getNavClass(navHeight));\n }\n }\n\n public collapse(): void {\n addClass(this.nativeElement, 'swipee-transition');\n switchClass(this.nativeElement, 'left-panel-collapsed', 'left-panel-expanded');\n if (this.expanded) {\n setTimeout(() => {\n const leftNavButton = $('.app-header-action');\n leftNavButton.attr('aria-expanded', 'false');\n leftNavButton.focus();\n }, 50);\n }\n if (isMobile()) {\n addClass(this.nativeElement, 'hidden');\n }\n this.expanded = false;\n switchClass(this.$page[0], 'left-panel-collapsed-container', 'left-panel-expanded-container');\n if (this.animation === AnimationType.SLIDE_IN) {\n this.setPageWidthAndPosition(['md', 'sm'], null, this.columnwidth);\n this.setPageWidthAndPosition(['xs'], null, this.xscolumnwidth);\n }\n if (this._destroyCollapseActionListener) {\n this._destroyCollapseActionListener();\n }\n (this.getAttr(\"spa\") && this.layout || this.page).notify('wmLeftPanel:collapse');\n }\n\n public expand(): void {\n removeClass(this.nativeElement, 'hidden');\n removeClass(this.nativeElement, 'swipee-transition');\n switchClass(this.nativeElement, 'left-panel-expanded', 'left-panel-collapsed');\n this.expanded = true;\n if (!(this.app.isTabletApplicationType && this.animation === AnimationType.SLIDE_IN)) {\n this._destroyCollapseActionListener = this.listenForCollapseAction();\n }\n switchClass(this.$page[0], 'left-panel-expanded-container', 'left-panel-collapsed-container');\n if (this.animation === AnimationType.SLIDE_IN) {\n this.setPageWidthAndPosition(['md', 'sm'], this.columnwidth);\n this.setPageWidthAndPosition(['xs'], this.xscolumnwidth);\n }\n (this.getAttr(\"spa\") && this.layout || this.page).notify('wmLeftPanel:expand');\n $('.app-header-action').attr('aria-expanded', `${this.expanded}`);\n const focusableElements = getKeyboardFocusableElements(this.nativeElement);\n const firstFocusableElement = focusableElements[0];\n const lastFocusableElement = focusableElements[focusableElements.length - 1];\n setTimeout(() => {\n $(firstFocusableElement).focus();\n }, 50);\n $(firstFocusableElement).on('keydown', (event) => {\n if (event.shiftKey && event.key === 'Tab') {\n this.collapse();\n }\n });\n $(lastFocusableElement).on('keydown', (event) => {\n if (event.key === 'Tab') {\n this.collapse();\n }\n });\n this.$element.on('keydown', (event) => {\n if (event.key === 'Escape') {\n this.collapse();\n }\n });\n }\n\n public isGesturesEnabled(): boolean {\n return this.gestures === 'on';\n }\n\n public isVisible(): boolean {\n return this.expanded;\n }\n\n public onPropertyChange(key, nv, ov) {\n switch (key) {\n case 'animation' :\n if (nv === AnimationType.SLIDE_IN) {\n removeClass(this.$page[0], 'slide-over-left-panel-container');\n addClass(this.$page[0], 'slide-in-left-panel-container');\n this.setPageWidthAndPosition(['md', 'sm'], this.columnwidth);\n this.setPageWidthAndPosition(['xs'], this.xscolumnwidth);\n } else if (nv === AnimationType.SLIDE_OVER) {\n removeClass(this.$page[0], 'slide-in-left-panel-container');\n addClass(this.$page[0], 'slide-over-left-panel-container');\n }\n this._leftPanelAnimator = new LeftPanelAnimator(this);\n switchClass(this.nativeElement, nv, ov);\n break;\n case 'columnwidth':\n this.setLeftPanelWidth(['md', 'sm'], nv, ov);\n if (this.animation === AnimationType.SLIDE_IN) {\n this.setPageWidthAndPosition(['md', 'sm'], nv, ov);\n }\n break;\n case 'expanded':\n toggleClass(this.nativeElement, 'left-panel-expanded', nv);\n toggleClass(this.nativeElement, 'left-panel-collapsed', !nv);\n break;\n case 'xscolumnwidth':\n this.setLeftPanelWidth(['xs'], nv, ov);\n if (this.animation === AnimationType.SLIDE_IN) {\n this.setPageWidthAndPosition(['xs'], nv, ov);\n }\n break;\n default:\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n public toggle(): void {\n if (this.app.isTabletApplicationType) {\n setTimeout(() => {\n this.expanded ? this.collapse() : this.expand();\n }, 50);\n } else {\n this.$ele.swipeAnimation(this.expanded ? 'gotoLower' : 'gotoUpper');\n }\n }\n\n private listenForCollapseAction(): () => void {\n const eventName = 'click.leftNavToggle';\n let skipEvent = false;\n this.$ele.on(eventName, () => {\n skipEvent = true;\n });\n this.$page.on(eventName, () => {\n if (!skipEvent) {\n this.toggle();\n }\n skipEvent = false;\n });\n return () => {\n this.$ele.off(eventName);\n this.$page.off(eventName);\n };\n }\n\n private setLeftPanelWidth(devices: string[], newVal: number, oldVal?: number) {\n devices.forEach(device => {\n if (newVal) {\n addClass(this.nativeElement, `col-${device}-${newVal}`);\n }\n if (oldVal) {\n removeClass(this.nativeElement, `col-${device}-${oldVal}`);\n }\n });\n }\n\n private setPageWidthAndPosition(devices: string[], newVal: number, oldVal?: number) {\n devices.forEach(device => {\n if (newVal) {\n addClass(this.$page[0], `left-panel-container-${device}-${12 - newVal}`);\n }\n if (oldVal) {\n removeClass(this.$page[0], `left-panel-container-${device}-${12 - oldVal}`);\n }\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/page/left-panel/src/left-panel.props.ts","../../../../../projects/components/widgets/page/left-panel/src/left-panel.animator.ts","../../../../../projects/components/widgets/page/left-panel/src/left-panel.directive.ts","../../../../../projects/components/widgets/page/left-panel/src/index.ts"],"sourcesContent":["import {PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-left-panel',\n new Map(\n [\n ['animation', {value: 'slide-in', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['columnwidth', { value: 3, ...PROP_NUMBER}],\n ['content', PROP_STRING],\n ['gestures', {value: 'on', ... PROP_STRING}],\n ['name', PROP_STRING],\n ['xscolumnwidth', { value: 10, ...PROP_NUMBER}],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING]\n ]\n )\n );\n};\n","import { SwipeAnimation } from '@swipey';\n\nimport { $appDigest } from '@wm/core';\n\nimport { AnimationType, LeftPanelDirective } from './left-panel.directive';\n\nexport class LeftPanelAnimator extends SwipeAnimation {\n private _$animatedElements;\n private _expanded: boolean;\n private _leftPanelWidth: number;\n private _maxX: number;\n private _pageContainerWidth: number;\n private _width: number;\n\n constructor(private leftPanel: LeftPanelDirective) {\n super();\n this.init(this.leftPanel.$ele, this.leftPanel.$page);\n }\n\n public bounds(e, length): {} {\n let offset = 0;\n this.setGesturesEnabled(this.leftPanel.isGesturesEnabled());\n if (!this._width) {\n this._pageContainerWidth = this.leftPanel.$page.width();\n this._leftPanelWidth = this.leftPanel.$ele.width();\n this._maxX = this._leftPanelWidth / this._pageContainerWidth * 100;\n this._width = this.leftPanel.animation === AnimationType.SLIDE_IN ? this._pageContainerWidth : this._leftPanelWidth;\n }\n this._expanded = this.leftPanel.expanded;\n\n if (this._expanded) {\n return {\n 'center': this._leftPanelWidth,\n 'lower': -(this._leftPanelWidth - offset)\n };\n }\n if (this.leftPanel.app.isTabletApplicationType) {\n offset = 53.32;\n }\n if (e && (e.pageX || (e.touches && e.touches[0].pageX)) > offset + 100) {\n return {\n strict: true\n };\n }\n return {\n 'center': 0,\n 'upper': this._leftPanelWidth - offset\n };\n }\n\n public context() {\n return {\n 'w': this._width,\n 'pageW': this._pageContainerWidth,\n 'leftW': this._leftPanelWidth,\n 'maxX': this._maxX,\n 'limit': (min: number, v: number, max: number) => {\n if (v < min) {\n return min;\n }\n if (v > max) {\n return max;\n }\n return v;\n }\n };\n }\n\n public animation() {\n this._$animatedElements = this.leftPanel.$ele;\n if (this.leftPanel.animation === AnimationType.SLIDE_IN) {\n this._$animatedElements = this._$animatedElements.add(this.leftPanel.$page);\n if (this.leftPanel.app.isTabletApplicationType) {\n return [\n {\n 'target': this.leftPanel.$ele,\n 'css': {\n 'transform': 'translate3d(${{ limit(-100, -($d * 100 / leftW), 0) + \\'%\\' }}, 0, 0)'\n }\n },\n {\n 'target': this.leftPanel.$page,\n 'css': {\n 'transform': 'translate3d(${{ (($d) * 100 / pageW) + \\'%\\' }}, 0, 0)',\n 'width': '${{ (pageW - $d) + \\'px\\' }}',\n 'z-index': 101\n }\n }\n ];\n }\n return [\n {\n 'target': this.leftPanel.$ele,\n 'css': {\n 'transform': 'translate3d(-100%, 0, 0)',\n 'opacity': 1,\n 'z-index': 101\n }\n },\n {\n 'target': this.leftPanel.$page,\n 'css': {\n 'transform': 'translate3d(${{ limit( 0, ((($D + $d) * 100 / w)), maxX ) + \\'%\\' }}, 0, 0)',\n 'opacity': 1,\n 'z-index': 101\n }\n }];\n } else {\n return {\n 'transform': 'translate3d(${{ limit( -100, ((($D + $d) * 100 / w) - 100), 0 ) + \\'%\\'}}, 0, 0)',\n 'opacity': 1,\n 'z-index': 101\n };\n }\n }\n\n public onLower(): void {\n this._expanded = false;\n this.leftPanel.collapse();\n this.resetTransition();\n $appDigest();\n }\n\n public onUpper(): void {\n this._expanded = true;\n this.leftPanel.expand();\n this.resetTransition();\n $appDigest();\n }\n\n private resetTransition() {\n if (this._$animatedElements) {\n /*\n * This timeout is for preventing UI flicker at the end of animation.\n */\n setTimeout(() => {\n this._$animatedElements.css({\n 'transform': '',\n 'opacity': '',\n 'z-index': '',\n 'width': ''\n });\n }, 100);\n }\n }\n}\n","import {Attribute, Directive, Inject, Injector, OnDestroy, Optional} from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\n\nimport {App, addClass, removeClass, switchClass, toggleClass, isMobile, getNavClass } from '@wm/core';\nimport { APPLY_STYLES_TYPE, getKeyboardFocusableElements, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { LayoutDirective, PageDirective } from '@wm/components/page';\n\nimport { registerProps } from './left-panel.props';\nimport { LeftPanelAnimator } from './left-panel.animator';\n\nconst DEFAULT_CLS = 'app-left-panel left-panel-collapsed';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-left-panel',\n hostClass: DEFAULT_CLS\n};\n\nexport enum AnimationType {\n SLIDE_IN = 'slide-in',\n SLIDE_OVER = 'slide-over'\n}\n\n@Directive({\n standalone: true,\n selector: '[wmLeftPanel]',\n providers: [\n provideAsWidgetRef(LeftPanelDirective)\n ],\n exportAs: 'wmLeftPanel'\n})\nexport class LeftPanelDirective extends StylableComponent implements OnDestroy {\n static initializeProps = registerProps();\n\n public animation: AnimationType;\n public columnwidth: number;\n public expanded: boolean;\n public gestures: string;\n public xscolumnwidth: number;\n\n public $ele;\n public $page;\n\n private _destroyCollapseActionListener: () => void;\n private _leftPanelAnimator;\n\n //If \"spa\" attribute is set LayoutDirective will present and PageDirective is undefined else PageDirective will present and LayoutDirective is undefined\n constructor(public app: App, @Optional() private page: PageDirective, @Optional() private layout: LayoutDirective, inj: Injector, router: Router, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any, @Attribute('navtype') navtype: string, @Attribute('navheight') navHeight: string) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n this.$ele = this.$element;\n this.$page = this.getAttr('spa') && layout && layout.$element || page && page.$element;\n addClass(this.$page[0], 'left-panel-collapsed-container');\n if (this.columnwidth) {\n this.setLeftPanelWidth(['md', 'sm'], this.columnwidth);\n }\n if (this.app.isTabletApplicationType) {\n addClass(this.nativeElement, 'wm-tablet-app-left-panel');\n }\n const onRouteChange = router.events.subscribe(e => {\n if (e instanceof NavigationStart) {\n this.collapse();\n }\n });\n this.registerDestroyListener(() => onRouteChange.unsubscribe());\n if(!navtype) navtype = 'drawer';\n this.$element.addClass(getNavClass(navtype));\n if (navHeight) {\n this.$element.addClass(getNavClass(navHeight));\n addClass(this.$page[0], getNavClass(navHeight));\n }\n }\n\n public collapse(): void {\n addClass(this.nativeElement, 'swipee-transition');\n switchClass(this.nativeElement, 'left-panel-collapsed', 'left-panel-expanded');\n if (this.expanded) {\n setTimeout(() => {\n const leftNavButton = $('.app-header-action');\n leftNavButton.attr('aria-expanded', 'false');\n leftNavButton.focus();\n }, 50);\n }\n if (isMobile()) {\n addClass(this.nativeElement, 'hidden');\n }\n this.expanded = false;\n switchClass(this.$page[0], 'left-panel-collapsed-container', 'left-panel-expanded-container');\n if (this.animation === AnimationType.SLIDE_IN) {\n this.setPageWidthAndPosition(['md', 'sm'], null, this.columnwidth);\n this.setPageWidthAndPosition(['xs'], null, this.xscolumnwidth);\n }\n if (this._destroyCollapseActionListener) {\n this._destroyCollapseActionListener();\n }\n (this.getAttr(\"spa\") && this.layout || this.page).notify('wmLeftPanel:collapse');\n }\n\n public expand(): void {\n removeClass(this.nativeElement, 'hidden');\n removeClass(this.nativeElement, 'swipee-transition');\n switchClass(this.nativeElement, 'left-panel-expanded', 'left-panel-collapsed');\n this.expanded = true;\n if (!(this.app.isTabletApplicationType && this.animation === AnimationType.SLIDE_IN)) {\n this._destroyCollapseActionListener = this.listenForCollapseAction();\n }\n switchClass(this.$page[0], 'left-panel-expanded-container', 'left-panel-collapsed-container');\n if (this.animation === AnimationType.SLIDE_IN) {\n this.setPageWidthAndPosition(['md', 'sm'], this.columnwidth);\n this.setPageWidthAndPosition(['xs'], this.xscolumnwidth);\n }\n (this.getAttr(\"spa\") && this.layout || this.page).notify('wmLeftPanel:expand');\n $('.app-header-action').attr('aria-expanded', `${this.expanded}`);\n const focusableElements = getKeyboardFocusableElements(this.nativeElement);\n const firstFocusableElement = focusableElements[0];\n const lastFocusableElement = focusableElements[focusableElements.length - 1];\n setTimeout(() => {\n $(firstFocusableElement).focus();\n }, 50);\n $(firstFocusableElement).on('keydown', (event) => {\n if (event.shiftKey && event.key === 'Tab') {\n this.collapse();\n }\n });\n $(lastFocusableElement).on('keydown', (event) => {\n if (event.key === 'Tab') {\n this.collapse();\n }\n });\n this.$element.on('keydown', (event) => {\n if (event.key === 'Escape') {\n this.collapse();\n }\n });\n }\n\n public isGesturesEnabled(): boolean {\n return this.gestures === 'on';\n }\n\n public isVisible(): boolean {\n return this.expanded;\n }\n\n public onPropertyChange(key, nv, ov) {\n switch (key) {\n case 'animation' :\n if (nv === AnimationType.SLIDE_IN) {\n removeClass(this.$page[0], 'slide-over-left-panel-container');\n addClass(this.$page[0], 'slide-in-left-panel-container');\n this.setPageWidthAndPosition(['md', 'sm'], this.columnwidth);\n this.setPageWidthAndPosition(['xs'], this.xscolumnwidth);\n } else if (nv === AnimationType.SLIDE_OVER) {\n removeClass(this.$page[0], 'slide-in-left-panel-container');\n addClass(this.$page[0], 'slide-over-left-panel-container');\n }\n this._leftPanelAnimator = new LeftPanelAnimator(this);\n switchClass(this.nativeElement, nv, ov);\n break;\n case 'columnwidth':\n this.setLeftPanelWidth(['md', 'sm'], nv, ov);\n if (this.animation === AnimationType.SLIDE_IN) {\n this.setPageWidthAndPosition(['md', 'sm'], nv, ov);\n }\n break;\n case 'expanded':\n toggleClass(this.nativeElement, 'left-panel-expanded', nv);\n toggleClass(this.nativeElement, 'left-panel-collapsed', !nv);\n break;\n case 'xscolumnwidth':\n this.setLeftPanelWidth(['xs'], nv, ov);\n if (this.animation === AnimationType.SLIDE_IN) {\n this.setPageWidthAndPosition(['xs'], nv, ov);\n }\n break;\n default:\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n public toggle(): void {\n if (this.app.isTabletApplicationType) {\n setTimeout(() => {\n this.expanded ? this.collapse() : this.expand();\n }, 50);\n } else {\n this.$ele.swipeAnimation(this.expanded ? 'gotoLower' : 'gotoUpper');\n }\n }\n\n private listenForCollapseAction(): () => void {\n const eventName = 'click.leftNavToggle';\n let skipEvent = false;\n this.$ele.on(eventName, () => {\n skipEvent = true;\n });\n this.$page.on(eventName, () => {\n if (!skipEvent) {\n this.toggle();\n }\n skipEvent = false;\n });\n return () => {\n this.$ele.off(eventName);\n this.$page.off(eventName);\n };\n }\n\n private setLeftPanelWidth(devices: string[], newVal: number, oldVal?: number) {\n devices.forEach(device => {\n if (newVal) {\n addClass(this.nativeElement, `col-${device}-${newVal}`);\n }\n if (oldVal) {\n removeClass(this.nativeElement, `col-${device}-${oldVal}`);\n }\n });\n }\n\n private setPageWidthAndPosition(devices: string[], newVal: number, oldVal?: number) {\n devices.forEach(device => {\n if (newVal) {\n addClass(this.$page[0], `left-panel-container-${device}-${12 - newVal}`);\n }\n if (oldVal) {\n removeClass(this.$page[0], `left-panel-container-${device}-${12 - oldVal}`);\n }\n });\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clean up collapse action listener\n if (this._destroyCollapseActionListener) {\n this._destroyCollapseActionListener();\n this._destroyCollapseActionListener = null;\n }\n\n // MEMORY LEAK FIX: Clear left panel animator reference\n if (this._leftPanelAnimator) {\n this._leftPanelAnimator = null;\n }\n\n // MEMORY LEAK FIX: Clear jQuery references\n this.$ele = null;\n this.$page = null;\n\n // Note: Router subscription is already cleaned up via registerDestroyListener\n\n super.ngOnDestroy();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;;AAEO,MAAM,aAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,eAAe,EACf,IAAI,GAAG,CACH;QACI,CAAC,WAAW,EAAE,EAAC,KAAK,EAAE,UAAU,EAAE,GAAG,WAAW,EAAC,CAAC;QAClD,CAAC,OAAO,EAAE,WAAW,CAAC;QACtB,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;QAC5C,CAAC,SAAS,EAAE,WAAW,CAAC;QACxB,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAI,WAAW,EAAC,CAAC;QAC5C,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,WAAW,EAAC,CAAC;QAC/C,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,WAAW,EAAE,WAAW;AAC5B,KAAA,CACJ,CACJ;AACL,CAAC;;ACbK,MAAO,iBAAkB,SAAQ,cAAc,CAAA;AAQjD,IAAA,WAAA,CAAoB,SAA6B,EAAA;AAC7C,QAAA,KAAK,EAAE;QADS,IAAA,CAAA,SAAS,GAAT,SAAS;AAEzB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACxD;IAEO,MAAM,CAAC,CAAC,EAAE,MAAM,EAAA;QACnB,IAAI,MAAM,GAAG,CAAC;QACd,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC;AAC3D,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE;YACvD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE;AAClD,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,mBAAmB,GAAG,GAAG;YAClE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,KAAK,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,eAAe;QACvH;QACA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ;AAExC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,OAAO;gBACH,QAAQ,EAAE,IAAI,CAAC,eAAe;gBAC9B,OAAO,EAAE,EAAE,IAAI,CAAC,eAAe,GAAG,MAAM;aAC3C;QACL;QACA,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAuB,EAAE;YAC5C,MAAM,GAAG,KAAK;QAClB;QACA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,GAAG,GAAG,EAAE;YACpE,OAAO;AACH,gBAAA,MAAM,EAAE;aACX;QACL;QACA,OAAO;AACH,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,OAAO,EAAE,IAAI,CAAC,eAAe,GAAG;SACnC;IACL;IAEO,OAAO,GAAA;QACV,OAAO;YACH,GAAG,EAAE,IAAI,CAAC,MAAM;YAChB,OAAO,EAAE,IAAI,CAAC,mBAAmB;YACjC,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,MAAM,EAAE,IAAI,CAAC,KAAK;YAClB,OAAO,EAAE,CAAC,GAAW,EAAE,CAAS,EAAE,GAAW,KAAI;AAC7C,gBAAA,IAAI,CAAC,GAAG,GAAG,EAAE;AACT,oBAAA,OAAO,GAAG;gBACd;AACA,gBAAA,IAAI,CAAC,GAAG,GAAG,EAAE;AACT,oBAAA,OAAO,GAAG;gBACd;AACA,gBAAA,OAAO,CAAC;YACZ;SACH;IACL;IAEO,SAAS,GAAA;QACZ,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI;QAC7C,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,KAAK,aAAa,CAAC,QAAQ,EAAE;AACrD,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC3E,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAuB,EAAE;gBAC5C,OAAO;AACH,oBAAA;AACI,wBAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;AAC7B,wBAAA,KAAK,EAAE;AACH,4BAAA,WAAW,EAAE;AAChB;AACJ,qBAAA;AACD,oBAAA;AACI,wBAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK;AAC9B,wBAAA,KAAK,EAAE;AACH,4BAAA,WAAW,EAAE,wDAAwD;AACrE,4BAAA,OAAO,EAAE,8BAA8B;AACvC,4BAAA,SAAS,EAAE;AACd;AACJ;iBACJ;YACL;YACA,OAAO;AACH,gBAAA;AACI,oBAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;AAC7B,oBAAA,KAAK,EAAE;AACH,wBAAA,WAAW,EAAE,0BAA0B;AACvC,wBAAA,SAAS,EAAE,CAAC;AACZ,wBAAA,SAAS,EAAE;AACd;AACJ,iBAAA;AACD,gBAAA;AACI,oBAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK;AAC9B,oBAAA,KAAK,EAAE;AACH,wBAAA,WAAW,EAAE,6EAA6E;AAC1F,wBAAA,SAAS,EAAE,CAAC;AACZ,wBAAA,SAAS,EAAE;AACd;AACJ;aAAC;QACV;aAAO;YACH,OAAO;AACH,gBAAA,WAAW,EAAE,kFAAkF;AAC/F,gBAAA,SAAS,EAAE,CAAC;AACZ,gBAAA,SAAS,EAAE;aACd;QACL;IACJ;IAEO,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;QACzB,IAAI,CAAC,eAAe,EAAE;AACtB,QAAA,UAAU,EAAE;IAChB;IAEO,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;QACvB,IAAI,CAAC,eAAe,EAAE;AACtB,QAAA,UAAU,EAAE;IAChB;IAEQ,eAAe,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB;;AAEG;YACH,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;AACxB,oBAAA,WAAW,EAAE,EAAE;AACf,oBAAA,SAAS,EAAE,EAAE;AACb,oBAAA,SAAS,EAAE,EAAE;AACb,oBAAA,OAAO,EAAE;AACZ,iBAAA,CAAC;YACN,CAAC,EAAE,GAAG,CAAC;QACX;IACJ;AACH;;ACvID,MAAM,WAAW,GAAG,qCAAqC;AACzD,MAAM,aAAa,GAAkB;AACjC,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,SAAS,EAAE;CACd;IAEW;AAAZ,CAAA,UAAY,aAAa,EAAA;AACrB,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AAC7B,CAAC,EAHW,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;AAanB,MAAO,kBAAmB,SAAQ,iBAAiB,CAAA;AAC9C,IAAA,SAAA,IAAA,CAAA,eAAe,GAAG,aAAa,EAAhB,CAAmB;;AAezC,IAAA,WAAA,CAAmB,GAAQ,EAAsB,IAAmB,EAAsB,MAAuB,EAAE,GAAa,EAAE,MAAc,EAA0C,eAAoB,EAAwB,OAAe,EAA0B,SAAiB,EAAA;AAC5R,QAAA,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,eAAe,CAAC;QAD3B,IAAA,CAAA,GAAG,GAAH,GAAG;QAA2B,IAAA,CAAA,IAAI,GAAJ,IAAI;QAAqC,IAAA,CAAA,MAAM,GAAN,MAAM;QAE5F,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC;AAC7D,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ;QACtF,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,gCAAgC,CAAC;AACzD,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC;QAC1D;AACA,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE;AAClC,YAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,0BAA0B,CAAC;QAC5D;QACA,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAG;AAC9C,YAAA,IAAI,CAAC,YAAY,eAAe,EAAE;gBAC9B,IAAI,CAAC,QAAQ,EAAE;YACnB;AACJ,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,uBAAuB,CAAC,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;AAC/D,QAAA,IAAG,CAAC,OAAO;YAAE,OAAO,GAAG,QAAQ;QAC/B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,SAAS,EAAE;YACX,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AAC9C,YAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QACnD;IACJ;IAEO,QAAQ,GAAA;AACX,QAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,mBAAmB,CAAC;QACjD,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,sBAAsB,EAAE,qBAAqB,CAAC;AAC9E,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,UAAU,CAAC,MAAK;AACZ,gBAAA,MAAM,aAAa,GAAG,CAAC,CAAC,oBAAoB,CAAC;AAC7C,gBAAA,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC;gBAC5C,aAAa,CAAC,KAAK,EAAE;YACzB,CAAC,EAAE,EAAE,CAAC;QACV;QACA,IAAI,QAAQ,EAAE,EAAE;AACZ,YAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;QAC1C;AACA,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,gCAAgC,EAAE,+BAA+B,CAAC;QAC7F,IAAI,IAAI,CAAC,SAAS,KAAK,aAAa,CAAC,QAAQ,EAAE;AAC3C,YAAA,IAAI,CAAC,uBAAuB,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC;AAClE,YAAA,IAAI,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC;QAClE;AACA,QAAA,IAAI,IAAI,CAAC,8BAA8B,EAAE;YACrC,IAAI,CAAC,8BAA8B,EAAE;QACzC;QACA,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,sBAAsB,CAAC;IACpF;IAEO,MAAM,GAAA;AACT,QAAA,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;AACzC,QAAA,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,mBAAmB,CAAC;QACpD,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,qBAAqB,EAAE,sBAAsB,CAAC;AAC9E,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,uBAAuB,IAAI,IAAI,CAAC,SAAS,KAAK,aAAa,CAAC,QAAQ,CAAC,EAAE;AAClF,YAAA,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC,uBAAuB,EAAE;QACxE;AACA,QAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,+BAA+B,EAAE,gCAAgC,CAAC;QAC7F,IAAI,IAAI,CAAC,SAAS,KAAK,aAAa,CAAC,QAAQ,EAAE;AAC3C,YAAA,IAAI,CAAC,uBAAuB,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC;YAC5D,IAAI,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC;QAC5D;QACA,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,oBAAoB,CAAC;AAC9E,QAAA,CAAC,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAA,CAAE,CAAC;QACjE,MAAM,iBAAiB,GAAG,4BAA4B,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1E,QAAA,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,CAAC,CAAC;QAClD,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5E,UAAU,CAAC,MAAK;AACZ,YAAA,CAAC,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE;QACpC,CAAC,EAAE,EAAE,CAAC;QACN,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,KAAI;YAC7C,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;gBACvC,IAAI,CAAC,QAAQ,EAAE;YACnB;AACJ,QAAA,CAAC,CAAC;QACF,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,KAAI;AAC5C,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;gBACrB,IAAI,CAAC,QAAQ,EAAE;YACnB;AACJ,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,KAAI;AAClC,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;gBACxB,IAAI,CAAC,QAAQ,EAAE;YACnB;AACJ,QAAA,CAAC,CAAC;IACN;IAEO,iBAAiB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI;IACjC;IAEO,SAAS,GAAA;QACZ,OAAO,IAAI,CAAC,QAAQ;IACxB;AAEO,IAAA,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAA;QAC/B,QAAQ,GAAG;AACP,YAAA,KAAK,WAAW;AACZ,gBAAA,IAAI,EAAE,KAAK,aAAa,CAAC,QAAQ,EAAE;oBAC/B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,iCAAiC,CAAC;oBAC7D,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,+BAA+B,CAAC;AACxD,oBAAA,IAAI,CAAC,uBAAuB,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC;oBAC5D,IAAI,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC;gBAC5D;AAAO,qBAAA,IAAI,EAAE,KAAK,aAAa,CAAC,UAAU,EAAE;oBACxC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,+BAA+B,CAAC;oBAC3D,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,iCAAiC,CAAC;gBAC9D;gBACA,IAAI,CAAC,kBAAkB,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC;gBACrD,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,CAAC;gBACvC;AACJ,YAAA,KAAK,aAAa;AACd,gBAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;gBAC5C,IAAI,IAAI,CAAC,SAAS,KAAK,aAAa,CAAC,QAAQ,EAAE;AAC3C,oBAAA,IAAI,CAAC,uBAAuB,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;gBACtD;gBACA;AACJ,YAAA,KAAK,UAAU;gBACX,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,qBAAqB,EAAE,EAAE,CAAC;gBAC1D,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,sBAAsB,EAAE,CAAC,EAAE,CAAC;gBAC5D;AACJ,YAAA,KAAK,eAAe;gBAChB,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;gBACtC,IAAI,IAAI,CAAC,SAAS,KAAK,aAAa,CAAC,QAAQ,EAAE;oBAC3C,IAAI,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;gBAChD;gBACA;AACJ,YAAA;gBACI,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;;IAE/C;IAEQ,MAAM,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE;YAClC,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE;YACnD,CAAC,EAAE,EAAE,CAAC;QACV;aAAO;AACH,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;QACvE;IACJ;IAEQ,uBAAuB,GAAA;QAC3B,MAAM,SAAS,GAAG,qBAAqB;QACvC,IAAI,SAAS,GAAG,KAAK;QACrB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,MAAK;YACzB,SAAS,GAAG,IAAI;AACpB,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,MAAK;YAC1B,IAAI,CAAC,SAAS,EAAE;gBACZ,IAAI,CAAC,MAAM,EAAE;YACjB;YACA,SAAS,GAAG,KAAK;AACrB,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,MAAK;AACR,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;AACxB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;AAC7B,QAAA,CAAC;IACL;AAEQ,IAAA,iBAAiB,CAAC,OAAiB,EAAE,MAAc,EAAE,MAAe,EAAA;AACxE,QAAA,OAAO,CAAC,OAAO,CAAC,MAAM,IAAG;YACrB,IAAI,MAAM,EAAE;gBACR,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAA,IAAA,EAAO,MAAM,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE,CAAC;YAC3D;YACA,IAAI,MAAM,EAAE;gBACR,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,CAAA,IAAA,EAAO,MAAM,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE,CAAC;YAC9D;AACJ,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,uBAAuB,CAAC,OAAiB,EAAE,MAAc,EAAE,MAAe,EAAA;AAC9E,QAAA,OAAO,CAAC,OAAO,CAAC,MAAM,IAAG;YACrB,IAAI,MAAM,EAAE;AACR,gBAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA,qBAAA,EAAwB,MAAM,IAAI,EAAE,GAAG,MAAM,CAAA,CAAE,CAAC;YAC5E;YACA,IAAI,MAAM,EAAE;AACR,gBAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA,qBAAA,EAAwB,MAAM,IAAI,EAAE,GAAG,MAAM,CAAA,CAAE,CAAC;YAC/E;AACJ,QAAA,CAAC,CAAC;IACN;IAEA,WAAW,GAAA;;AAEP,QAAA,IAAI,IAAI,CAAC,8BAA8B,EAAE;YACrC,IAAI,CAAC,8BAA8B,EAAE;AACrC,YAAA,IAAI,CAAC,8BAA8B,GAAG,IAAI;QAC9C;;AAGA,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;QAClC;;AAGA,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;;QAIjB,KAAK,CAAC,WAAW,EAAE;IACvB;AA1NS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,GAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAgB+H,kBAAkB,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAA+C,SAAS,8BAA8B,WAAW,EAAA,SAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAhBpQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,SAAA,EALhB;YACP,kBAAkB,CAAC,kBAAkB;AACxC,SAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGQ,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AACd,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,SAAS,EAAE;AACP,wBAAA,kBAAkB,CAAA,kBAAA;AACrB,qBAAA;AACD,oBAAA,QAAQ,EAAE;AACb,iBAAA;;0BAiBiC;;0BAAyC;;0BAA4E,MAAM;2BAAC,kBAAkB;;0BAAG;;0BAAkC,SAAS;2BAAC,SAAS;;0BAAoB,SAAS;2BAAC,WAAW;;;AC7CjR;;AAEG;;;;"}
@@ -1,4 +1,4 @@
1
- import { Injector } from '@angular/core';
1
+ import { Injector, OnDestroy } from '@angular/core';
2
2
  import { Router } from '@angular/router';
3
3
  import { App } from '@wm/core';
4
4
  import { StylableComponent } from '@wm/components/base';
@@ -8,7 +8,7 @@ export declare enum AnimationType {
8
8
  SLIDE_IN = "slide-in",
9
9
  SLIDE_OVER = "slide-over"
10
10
  }
11
- export declare class LeftPanelDirective extends StylableComponent {
11
+ export declare class LeftPanelDirective extends StylableComponent implements OnDestroy {
12
12
  app: App;
13
13
  private page;
14
14
  private layout;
@@ -32,6 +32,7 @@ export declare class LeftPanelDirective extends StylableComponent {
32
32
  private listenForCollapseAction;
33
33
  private setLeftPanelWidth;
34
34
  private setPageWidthAndPosition;
35
+ ngOnDestroy(): void;
35
36
  static ɵfac: i0.ɵɵFactoryDeclaration<LeftPanelDirective, [null, { optional: true; }, { optional: true; }, null, null, { optional: true; }, { attribute: "navtype"; }, { attribute: "navheight"; }]>;
36
37
  static ɵdir: i0.ɵɵDirectiveDeclaration<LeftPanelDirective, "[wmLeftPanel]", ["wmLeftPanel"], {}, {}, never, never, true, never>;
37
38
  }
@@ -28,7 +28,8 @@
28
28
  ['name', base.PROP_STRING],
29
29
  ['content', base.PROP_STRING],
30
30
  ['hint', base.PROP_STRING],
31
- ['arialabel', base.PROP_STRING]
31
+ ['arialabel', base.PROP_STRING],
32
+ ['class', base.PROP_STRING]
32
33
  ]));
33
34
  };
34
35
 
@@ -4,7 +4,8 @@ export const registerProps = () => {
4
4
  ['name', PROP_STRING],
5
5
  ['content', PROP_STRING],
6
6
  ['hint', PROP_STRING],
7
- ['arialabel', PROP_STRING]
7
+ ['arialabel', PROP_STRING],
8
+ ['class', PROP_STRING]
8
9
  ]));
9
10
  };
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLW5hdi5wcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9wYWdlL3RvcC1uYXYvc3JjL3RvcC1uYXYucHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUxRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFO0lBQzlCLFFBQVEsQ0FDSixZQUFZLEVBQ1osSUFBSSxHQUFHLENBQ0g7UUFDSSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUM7UUFDckIsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDO1FBQ3hCLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQztRQUNyQixDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUM7S0FDN0IsQ0FDSixDQUNKLENBQUM7QUFDTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BST1BfU1RSSU5HLCByZWdpc3Rlcn0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cbmV4cG9ydCBjb25zdCByZWdpc3RlclByb3BzID0gKCkgPT4ge1xuICAgIHJlZ2lzdGVyKFxuICAgICAgICAnd20tdG9wLW5hdicsXG4gICAgICAgIG5ldyBNYXAoXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgWyduYW1lJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnY29udGVudCcsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ2hpbnQnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydhcmlhbGFiZWwnLCBQUk9QX1NUUklOR11cbiAgICAgICAgICAgIF1cbiAgICAgICAgKVxuICAgICk7XG59O1xuIl19
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLW5hdi5wcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9wYWdlL3RvcC1uYXYvc3JjL3RvcC1uYXYucHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUxRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFO0lBQzlCLFFBQVEsQ0FDSixZQUFZLEVBQ1osSUFBSSxHQUFHLENBQ0g7UUFDSSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUM7UUFDckIsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDO1FBQ3hCLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQztRQUNyQixDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUM7UUFDMUIsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDO0tBQ3pCLENBQ0osQ0FDSixDQUFDO0FBQ04sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQUk9QX1NUUklORywgcmVnaXN0ZXJ9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJQcm9wcyA9ICgpID0+IHtcbiAgICByZWdpc3RlcihcbiAgICAgICAgJ3dtLXRvcC1uYXYnLFxuICAgICAgICBuZXcgTWFwKFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIFsnbmFtZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgICAgICBbJ2NvbnRlbnQnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICAgICAgWydoaW50JywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnYXJpYWxhYmVsJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgICAgIFsnY2xhc3MnLCBQUk9QX1NUUklOR11cbiAgICAgICAgICAgIF1cbiAgICAgICAgKVxuICAgICk7XG59O1xuIl19
@@ -7,7 +7,8 @@ const registerProps = () => {
7
7
  ['name', PROP_STRING],
8
8
  ['content', PROP_STRING],
9
9
  ['hint', PROP_STRING],
10
- ['arialabel', PROP_STRING]
10
+ ['arialabel', PROP_STRING],
11
+ ['class', PROP_STRING]
11
12
  ]));
12
13
  };
13
14