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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (412) hide show
  1. package/components/advanced/carousel/bundles/index.umd.js +15 -1
  2. package/components/advanced/carousel/carousel.directive.d.ts +1 -0
  3. package/components/advanced/carousel/esm2022/carousel.directive.mjs +16 -2
  4. package/components/advanced/carousel/fesm2022/index.mjs +15 -1
  5. package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  6. package/components/advanced/login/bundles/index.umd.js +24 -3
  7. package/components/advanced/login/esm2022/login.component.mjs +25 -4
  8. package/components/advanced/login/fesm2022/index.mjs +24 -3
  9. package/components/advanced/login/fesm2022/index.mjs.map +1 -1
  10. package/components/advanced/login/login.component.d.ts +5 -2
  11. package/components/base/bundles/index.umd.js +331 -36
  12. package/components/base/directives/show-in-device.directive.d.ts +2 -1
  13. package/components/base/esm2022/directives/show-in-device.directive.mjs +22 -4
  14. package/components/base/esm2022/pipes/custom-pipes.mjs +10 -10
  15. package/components/base/esm2022/utils/widget-utils.mjs +3 -3
  16. package/components/base/esm2022/widgets/common/base/base-container.component.mjs +27 -1
  17. package/components/base/esm2022/widgets/common/base/base-field-validations.mjs +18 -1
  18. package/components/base/esm2022/widgets/common/base/base.component.mjs +68 -7
  19. package/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +9 -1
  20. package/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +44 -11
  21. package/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +20 -1
  22. package/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +26 -1
  23. package/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +44 -4
  24. package/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +16 -1
  25. package/components/base/esm2022/widgets/common/pull-to-refresh/pull-to-refresh.mjs +22 -1
  26. package/components/base/esm2022/widgets/framework/property-change-handler.mjs +7 -2
  27. package/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +5 -3
  28. package/components/base/esm2022/widgets/framework/widget-registry.mjs +6 -3
  29. package/components/base/fesm2022/index.mjs +327 -34
  30. package/components/base/fesm2022/index.mjs.map +1 -1
  31. package/components/base/pipes/custom-pipes.d.ts +5 -5
  32. package/components/base/widgets/common/base/base-container.component.d.ts +3 -2
  33. package/components/base/widgets/common/base/base-field-validations.d.ts +1 -0
  34. package/components/base/widgets/common/base/custom-widget-container.directive.d.ts +3 -2
  35. package/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +6 -2
  36. package/components/base/widgets/common/base/partial-container.directive.d.ts +3 -2
  37. package/components/base/widgets/common/item-template/item-template.directive.d.ts +3 -2
  38. package/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +1 -1
  39. package/components/base/widgets/common/partial-param/partial-param.directive.d.ts +3 -2
  40. package/components/base/widgets/common/pull-to-refresh/pull-to-refresh.d.ts +3 -2
  41. package/components/basic/anchor/bundles/index.umd.js +13 -1
  42. package/components/basic/anchor/esm2022/anchor.component.mjs +14 -2
  43. package/components/basic/anchor/fesm2022/index.mjs +13 -1
  44. package/components/basic/anchor/fesm2022/index.mjs.map +1 -1
  45. package/components/basic/html/bundles/index.umd.js +13 -1
  46. package/components/basic/html/esm2022/html.directive.mjs +14 -2
  47. package/components/basic/html/fesm2022/index.mjs +13 -1
  48. package/components/basic/html/fesm2022/index.mjs.map +1 -1
  49. package/components/basic/label/bundles/index.umd.js +17 -1
  50. package/components/basic/label/esm2022/label.directive.mjs +18 -2
  51. package/components/basic/label/fesm2022/index.mjs +17 -1
  52. package/components/basic/label/fesm2022/index.mjs.map +1 -1
  53. package/components/basic/label/label.directive.d.ts +3 -2
  54. package/components/basic/progress/progress-circle/bundles/index.umd.js +10 -0
  55. package/components/basic/progress/progress-circle/esm2022/progress-circle.component.mjs +11 -1
  56. package/components/basic/progress/progress-circle/fesm2022/index.mjs +10 -0
  57. package/components/basic/progress/progress-circle/fesm2022/index.mjs.map +1 -1
  58. package/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -2
  59. package/components/basic/search/bundles/index.umd.js +42 -14
  60. package/components/basic/search/esm2022/scrollable.directive.mjs +13 -4
  61. package/components/basic/search/esm2022/search.component.mjs +31 -12
  62. package/components/basic/search/fesm2022/index.mjs +42 -14
  63. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  64. package/components/basic/search/scrollable.directive.d.ts +5 -3
  65. package/components/basic/search/search.component.d.ts +3 -2
  66. package/components/basic/spinner/bundles/index.umd.js +9 -1
  67. package/components/basic/spinner/esm2022/spinner.component.mjs +10 -2
  68. package/components/basic/spinner/fesm2022/index.mjs +9 -1
  69. package/components/basic/spinner/fesm2022/index.mjs.map +1 -1
  70. package/components/basic/spinner/spinner.component.d.ts +4 -2
  71. package/components/chart/bundles/index.umd.js +21 -3
  72. package/components/chart/esm2022/chart.component.mjs +22 -4
  73. package/components/chart/fesm2022/index.mjs +21 -3
  74. package/components/chart/fesm2022/index.mjs.map +1 -1
  75. package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +3 -2
  76. package/components/containers/accordion/accordion.directive.d.ts +5 -2
  77. package/components/containers/accordion/bundles/index.umd.js +49 -2
  78. package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +10 -1
  79. package/components/containers/accordion/esm2022/accordion.directive.mjs +41 -3
  80. package/components/containers/accordion/fesm2022/index.mjs +49 -2
  81. package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  82. package/components/containers/panel/bundles/index.umd.js +13 -0
  83. package/components/containers/panel/esm2022/panel.component.mjs +14 -1
  84. package/components/containers/panel/fesm2022/index.mjs +13 -0
  85. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  86. package/components/containers/panel/panel.component.d.ts +3 -2
  87. package/components/containers/tabs/bundles/index.umd.js +54 -2
  88. package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +10 -1
  89. package/components/containers/tabs/esm2022/tabs.component.mjs +46 -3
  90. package/components/containers/tabs/fesm2022/index.mjs +54 -2
  91. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  92. package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +3 -2
  93. package/components/containers/tabs/tabs.component.d.ts +5 -2
  94. package/components/containers/wizard/bundles/index.umd.js +47 -3
  95. package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +16 -3
  96. package/components/containers/wizard/esm2022/wizard.component.mjs +33 -2
  97. package/components/containers/wizard/fesm2022/index.mjs +47 -3
  98. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  99. package/components/containers/wizard/wizard-step/wizard-step.component.d.ts +3 -2
  100. package/components/containers/wizard/wizard.component.d.ts +4 -2
  101. package/components/data/card/bundles/index.umd.js +17 -1
  102. package/components/data/card/card-content/card-content.component.d.ts +3 -2
  103. package/components/data/card/card.component.d.ts +4 -2
  104. package/components/data/card/esm2022/card-content/card-content.component.mjs +6 -1
  105. package/components/data/card/esm2022/card.component.mjs +13 -2
  106. package/components/data/card/fesm2022/index.mjs +17 -1
  107. package/components/data/card/fesm2022/index.mjs.map +1 -1
  108. package/components/data/form/bundles/index.umd.js +92 -0
  109. package/components/data/form/esm2022/form-action/form-action.directive.mjs +7 -1
  110. package/components/data/form/esm2022/form-field/form-field.directive.mjs +28 -1
  111. package/components/data/form/esm2022/form-widget.directive.mjs +8 -1
  112. package/components/data/form/esm2022/form.component.mjs +27 -1
  113. package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +7 -1
  114. package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +12 -1
  115. package/components/data/form/esm2022/live-form/live-form.directive.mjs +10 -1
  116. package/components/data/form/fesm2022/index.mjs +92 -0
  117. package/components/data/form/fesm2022/index.mjs.map +1 -1
  118. package/components/data/form/form-action/form-action.directive.d.ts +3 -2
  119. package/components/data/form/form-field/form-field.directive.d.ts +3 -2
  120. package/components/data/form/form-widget.directive.d.ts +3 -2
  121. package/components/data/form/live-actions/live-actions.directive.d.ts +3 -1
  122. package/components/data/form/live-filter/live-filter.directive.d.ts +3 -1
  123. package/components/data/form/live-form/live-form.directive.d.ts +3 -1
  124. package/components/data/list/bundles/index.umd.js +213 -19
  125. package/components/data/list/esm2022/list-item.directive.mjs +95 -11
  126. package/components/data/list/esm2022/list.component.mjs +120 -10
  127. package/components/data/list/fesm2022/index.mjs +213 -19
  128. package/components/data/list/fesm2022/index.mjs.map +1 -1
  129. package/components/data/list/list-item.directive.d.ts +7 -2
  130. package/components/data/list/list.component.d.ts +7 -0
  131. package/components/data/live-table/bundles/index.umd.js +13 -1
  132. package/components/data/live-table/esm2022/live-table.component.mjs +14 -2
  133. package/components/data/live-table/fesm2022/index.mjs +13 -1
  134. package/components/data/live-table/fesm2022/index.mjs.map +1 -1
  135. package/components/data/live-table/live-table.component.d.ts +4 -2
  136. package/components/data/pagination/bundles/index.umd.js +57 -4
  137. package/components/data/pagination/esm2022/pagination.component.mjs +58 -5
  138. package/components/data/pagination/fesm2022/index.mjs +57 -4
  139. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  140. package/components/data/pagination/pagination.component.d.ts +4 -2
  141. package/components/data/table/bundles/index.umd.js +345 -15
  142. package/components/data/table/esm2022/table-action/table-action.directive.mjs +8 -1
  143. package/components/data/table/esm2022/table-column/table-column.directive.mjs +107 -3
  144. package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +9 -1
  145. package/components/data/table/esm2022/table-cud.directive.mjs +8 -2
  146. package/components/data/table/esm2022/table-filter.directive.mjs +12 -2
  147. package/components/data/table/esm2022/table-row/table-row.directive.mjs +8 -1
  148. package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +8 -1
  149. package/components/data/table/esm2022/table.component.mjs +193 -12
  150. package/components/data/table/fesm2022/index.mjs +345 -15
  151. package/components/data/table/fesm2022/index.mjs.map +1 -1
  152. package/components/data/table/table-action/table-action.directive.d.ts +3 -2
  153. package/components/data/table/table-column/table-column.directive.d.ts +3 -2
  154. package/components/data/table/table-column-group/table-column-group.directive.d.ts +3 -2
  155. package/components/data/table/table-cud.directive.d.ts +3 -1
  156. package/components/data/table/table-filter.directive.d.ts +3 -1
  157. package/components/data/table/table-row/table-row.directive.d.ts +3 -2
  158. package/components/data/table/table-row-action/table-row-action.directive.d.ts +3 -2
  159. package/components/data/table/table.component.d.ts +6 -2
  160. package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +3 -2
  161. package/components/dialogs/alert-dialog/bundles/index.umd.js +5 -0
  162. package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +6 -1
  163. package/components/dialogs/alert-dialog/fesm2022/index.mjs +5 -0
  164. package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  165. package/components/dialogs/confirm-dialog/bundles/index.umd.js +5 -0
  166. package/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +3 -2
  167. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +6 -1
  168. package/components/dialogs/confirm-dialog/fesm2022/index.mjs +5 -0
  169. package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  170. package/components/dialogs/default/bundles/index.umd.js +15 -2
  171. package/components/dialogs/default/dialog-body/dialog-body.directive.d.ts +4 -2
  172. package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +16 -3
  173. package/components/dialogs/default/fesm2022/index.mjs +15 -2
  174. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  175. package/components/dialogs/design-dialog/bundles/index.umd.js +7 -0
  176. package/components/dialogs/design-dialog/dialog.component.d.ts +3 -2
  177. package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +8 -1
  178. package/components/dialogs/design-dialog/fesm2022/index.mjs +7 -0
  179. package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  180. package/components/dialogs/iframe-dialog/bundles/index.umd.js +5 -0
  181. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +6 -1
  182. package/components/dialogs/iframe-dialog/fesm2022/index.mjs +5 -0
  183. package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  184. package/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +3 -2
  185. package/components/dialogs/partial-dialog/bundles/index.umd.js +23 -3
  186. package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +24 -4
  187. package/components/dialogs/partial-dialog/fesm2022/index.mjs +23 -3
  188. package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  189. package/components/dialogs/partial-dialog/partial-dialog.component.d.ts +4 -2
  190. package/components/input/base-form/base-form.component.d.ts +4 -2
  191. package/components/input/base-form/bundles/index.umd.js +16 -2
  192. package/components/input/base-form/esm2022/base-form.component.mjs +17 -3
  193. package/components/input/base-form/fesm2022/index.mjs +16 -2
  194. package/components/input/base-form/fesm2022/index.mjs.map +1 -1
  195. package/components/input/base-form-custom/base-form-custom.component.d.ts +3 -2
  196. package/components/input/base-form-custom/bundles/index.umd.js +13 -2
  197. package/components/input/base-form-custom/esm2022/base-form-custom.component.mjs +14 -3
  198. package/components/input/base-form-custom/fesm2022/index.mjs +13 -2
  199. package/components/input/base-form-custom/fesm2022/index.mjs.map +1 -1
  200. package/components/input/checkbox/bundles/index.umd.js +7 -0
  201. package/components/input/checkbox/checkbox.component.d.ts +3 -2
  202. package/components/input/checkbox/esm2022/checkbox.component.mjs +8 -1
  203. package/components/input/checkbox/fesm2022/index.mjs +7 -0
  204. package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
  205. package/components/input/checkboxset/bundles/index.umd.js +18 -2
  206. package/components/input/checkboxset/checkboxset.component.d.ts +4 -2
  207. package/components/input/checkboxset/esm2022/checkboxset.component.mjs +19 -3
  208. package/components/input/checkboxset/fesm2022/index.mjs +18 -2
  209. package/components/input/checkboxset/fesm2022/index.mjs.map +1 -1
  210. package/components/input/chips/bundles/index.umd.js +45 -5
  211. package/components/input/chips/chips.component.d.ts +3 -2
  212. package/components/input/chips/esm2022/chips.component.mjs +46 -6
  213. package/components/input/chips/fesm2022/index.mjs +45 -5
  214. package/components/input/chips/fesm2022/index.mjs.map +1 -1
  215. package/components/input/color-picker/bundles/index.umd.js +8 -0
  216. package/components/input/color-picker/color-picker.component.d.ts +3 -2
  217. package/components/input/color-picker/esm2022/color-picker.component.mjs +9 -1
  218. package/components/input/color-picker/fesm2022/index.mjs +8 -0
  219. package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  220. package/components/input/composite/bundles/index.umd.js +10 -1
  221. package/components/input/composite/composite.directive.d.ts +3 -2
  222. package/components/input/composite/esm2022/composite.directive.mjs +11 -2
  223. package/components/input/composite/fesm2022/index.mjs +10 -1
  224. package/components/input/composite/fesm2022/index.mjs.map +1 -1
  225. package/components/input/currency/bundles/index.umd.js +7 -0
  226. package/components/input/currency/currency.component.d.ts +3 -2
  227. package/components/input/currency/esm2022/currency.component.mjs +8 -1
  228. package/components/input/currency/fesm2022/index.mjs +7 -0
  229. package/components/input/currency/fesm2022/index.mjs.map +1 -1
  230. package/components/input/dataset-aware-form/bundles/index.umd.js +26 -2
  231. package/components/input/dataset-aware-form/esm2022/dataset-aware-form.component.mjs +27 -3
  232. package/components/input/dataset-aware-form/fesm2022/index.mjs +26 -2
  233. package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -1
  234. package/components/input/epoch/date/bundles/index.umd.js +22 -0
  235. package/components/input/epoch/date/date.component.d.ts +1 -0
  236. package/components/input/epoch/date/esm2022/date.component.mjs +23 -1
  237. package/components/input/epoch/date/fesm2022/index.mjs +22 -0
  238. package/components/input/epoch/date/fesm2022/index.mjs.map +1 -1
  239. package/components/input/file-upload/bundles/index.umd.js +25 -8
  240. package/components/input/file-upload/esm2022/file-upload.component.mjs +26 -9
  241. package/components/input/file-upload/fesm2022/index.mjs +25 -8
  242. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  243. package/components/input/file-upload/file-upload.component.d.ts +3 -0
  244. package/components/input/number/bundles/index.umd.js +8 -0
  245. package/components/input/number/esm2022/number.component.mjs +9 -1
  246. package/components/input/number/fesm2022/index.mjs +8 -0
  247. package/components/input/number/fesm2022/index.mjs.map +1 -1
  248. package/components/input/number/number.component.d.ts +3 -2
  249. package/components/input/radioset/bundles/index.umd.js +18 -2
  250. package/components/input/radioset/esm2022/radioset.component.mjs +19 -3
  251. package/components/input/radioset/fesm2022/index.mjs +18 -2
  252. package/components/input/radioset/fesm2022/index.mjs.map +1 -1
  253. package/components/input/radioset/radioset.component.d.ts +4 -2
  254. package/components/input/rating/bundles/index.umd.js +10 -0
  255. package/components/input/rating/esm2022/rating.component.mjs +11 -1
  256. package/components/input/rating/fesm2022/index.mjs +10 -0
  257. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  258. package/components/input/rating/rating.component.d.ts +3 -2
  259. package/components/input/select/bundles/index.umd.js +6 -0
  260. package/components/input/select/esm2022/select.component.mjs +7 -1
  261. package/components/input/select/fesm2022/index.mjs +6 -0
  262. package/components/input/select/fesm2022/index.mjs.map +1 -1
  263. package/components/input/select/select.component.d.ts +3 -2
  264. package/components/input/slider/bundles/index.umd.js +10 -0
  265. package/components/input/slider/esm2022/slider.component.mjs +11 -1
  266. package/components/input/slider/fesm2022/index.mjs +10 -0
  267. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  268. package/components/input/slider/slider.component.d.ts +3 -2
  269. package/components/input/switch/bundles/index.umd.js +22 -2
  270. package/components/input/switch/esm2022/switch.component.mjs +23 -3
  271. package/components/input/switch/fesm2022/index.mjs +22 -2
  272. package/components/input/switch/fesm2022/index.mjs.map +1 -1
  273. package/components/input/switch/switch.component.d.ts +3 -2
  274. package/components/input/text/bundles/index.umd.js +36 -0
  275. package/components/input/text/esm2022/input-calendar/input-calendar.component.mjs +8 -1
  276. package/components/input/text/esm2022/input-color/input-color.component.mjs +8 -1
  277. package/components/input/text/esm2022/input-email/input-email.component.mjs +8 -1
  278. package/components/input/text/esm2022/input-number/input-number.component.mjs +8 -1
  279. package/components/input/text/esm2022/input-text/input-text.component.mjs +9 -1
  280. package/components/input/text/fesm2022/index.mjs +36 -0
  281. package/components/input/text/fesm2022/index.mjs.map +1 -1
  282. package/components/input/text/input-calendar/input-calendar.component.d.ts +3 -2
  283. package/components/input/text/input-color/input-color.component.d.ts +3 -2
  284. package/components/input/text/input-email/input-email.component.d.ts +3 -2
  285. package/components/input/text/input-number/input-number.component.d.ts +3 -2
  286. package/components/input/text/input-text/input-text.component.d.ts +3 -2
  287. package/components/input/textarea/bundles/index.umd.js +7 -0
  288. package/components/input/textarea/esm2022/textarea.component.mjs +8 -1
  289. package/components/input/textarea/fesm2022/index.mjs +7 -0
  290. package/components/input/textarea/fesm2022/index.mjs.map +1 -1
  291. package/components/input/textarea/textarea.component.d.ts +3 -2
  292. package/components/navigation/menu/bundles/index.umd.js +55 -6
  293. package/components/navigation/menu/esm2022/menu-adapator.component.mjs +17 -3
  294. package/components/navigation/menu/esm2022/menu.component.mjs +10 -3
  295. package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +6 -1
  296. package/components/navigation/menu/esm2022/nav/nav.component.mjs +11 -1
  297. package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +16 -3
  298. package/components/navigation/menu/fesm2022/index.mjs +55 -6
  299. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  300. package/components/navigation/menu/menu-adapator.component.d.ts +4 -2
  301. package/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +3 -2
  302. package/components/navigation/menu/nav/nav.component.d.ts +3 -2
  303. package/components/navigation/menu/nav/navigation-control.directive.d.ts +4 -2
  304. package/components/navigation/navbar/bundles/index.umd.js +5 -0
  305. package/components/navigation/navbar/esm2022/navbar.component.mjs +6 -1
  306. package/components/navigation/navbar/fesm2022/index.mjs +5 -0
  307. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  308. package/components/navigation/navbar/navbar.component.d.ts +3 -2
  309. package/components/navigation/popover/bundles/index.umd.js +65 -13
  310. package/components/navigation/popover/esm2022/popover.component.mjs +63 -11
  311. package/components/navigation/popover/fesm2022/index.mjs +62 -10
  312. package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  313. package/components/navigation/popover/popover.component.d.ts +11 -3
  314. package/components/page/default/bundles/index.umd.js +30 -6
  315. package/components/page/default/esm2022/layout.directive.mjs +9 -1
  316. package/components/page/default/esm2022/page-content/page-content.component.mjs +13 -3
  317. package/components/page/default/esm2022/router-outlet.directive.mjs +13 -6
  318. package/components/page/default/fesm2022/index.mjs +30 -6
  319. package/components/page/default/fesm2022/index.mjs.map +1 -1
  320. package/components/page/default/layout.directive.d.ts +3 -2
  321. package/components/page/default/page-content/page-content.component.d.ts +3 -2
  322. package/components/page/default/router-outlet.directive.d.ts +5 -2
  323. package/components/page/left-panel/bundles/index.umd.js +16 -0
  324. package/components/page/left-panel/esm2022/left-panel.directive.mjs +17 -1
  325. package/components/page/left-panel/fesm2022/index.mjs +16 -0
  326. package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  327. package/components/page/left-panel/left-panel.directive.d.ts +3 -2
  328. package/components/page/top-nav/bundles/index.umd.js +2 -1
  329. package/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
  330. package/components/page/top-nav/fesm2022/index.mjs +2 -1
  331. package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  332. package/components/prefab/bundles/index.umd.js +4 -0
  333. package/components/prefab/esm2022/prefab.directive.mjs +5 -1
  334. package/components/prefab/fesm2022/index.mjs +4 -0
  335. package/components/prefab/fesm2022/index.mjs.map +1 -1
  336. package/core/bundles/index.umd.js +391 -94
  337. package/core/esm2022/public_api.mjs +3 -3
  338. package/core/esm2022/services/viewport.service.mjs +24 -10
  339. package/core/esm2022/types/types.mjs +1 -1
  340. package/core/esm2022/utils/dom.mjs +18 -2
  341. package/core/esm2022/utils/event-notifier.mjs +5 -2
  342. package/core/esm2022/utils/lru-cache.mjs +16 -2
  343. package/core/esm2022/utils/utils.mjs +6 -2
  344. package/core/esm2022/utils/watcher.mjs +323 -81
  345. package/core/fesm2022/index.mjs +390 -96
  346. package/core/fesm2022/index.mjs.map +1 -1
  347. package/core/public_api.d.ts +2 -2
  348. package/core/services/viewport.service.d.ts +5 -2
  349. package/core/types/types.d.ts +1 -0
  350. package/core/utils/lru-cache.d.ts +6 -0
  351. package/core/utils/utils.d.ts +1 -0
  352. package/core/utils/watcher.d.ts +26 -5
  353. package/http/bundles/index.umd.js +31 -1
  354. package/http/esm2022/http.service.mjs +32 -2
  355. package/http/fesm2022/index.mjs +31 -1
  356. package/http/fesm2022/index.mjs.map +1 -1
  357. package/http/http.service.d.ts +6 -2
  358. package/npm-shrinkwrap.json +2 -2
  359. package/oAuth/bundles/index.umd.js +9 -0
  360. package/oAuth/esm2022/oAuth.service.mjs +10 -1
  361. package/oAuth/fesm2022/index.mjs +9 -0
  362. package/oAuth/fesm2022/index.mjs.map +1 -1
  363. package/oAuth/oAuth.service.d.ts +3 -1
  364. package/package-lock.json +2 -2
  365. package/package.json +1 -1
  366. package/runtime/base/bundles/index.umd.js +367 -32
  367. package/runtime/base/components/app-component/app.component.d.ts +4 -0
  368. package/runtime/base/components/prefab-preview.component.d.ts +5 -2
  369. package/runtime/base/directives/accessroles.directive.d.ts +4 -3
  370. package/runtime/base/directives/prefab.directive.d.ts +3 -2
  371. package/runtime/base/esm2022/components/app-component/app.component.mjs +40 -9
  372. package/runtime/base/esm2022/components/base-custom-widget.component.mjs +33 -2
  373. package/runtime/base/esm2022/components/base-layout.component.mjs +7 -1
  374. package/runtime/base/esm2022/components/base-page.component.mjs +36 -3
  375. package/runtime/base/esm2022/components/base-partial.component.mjs +37 -3
  376. package/runtime/base/esm2022/components/base-prefab.component.mjs +32 -3
  377. package/runtime/base/esm2022/components/base-spa-page.component.mjs +37 -3
  378. package/runtime/base/esm2022/components/prefab-preview.component.mjs +23 -4
  379. package/runtime/base/esm2022/directives/accessroles.directive.mjs +11 -2
  380. package/runtime/base/esm2022/directives/prefab.directive.mjs +9 -1
  381. package/runtime/base/esm2022/services/app.manager.service.mjs +40 -12
  382. package/runtime/base/esm2022/services/app.service.mjs +34 -2
  383. package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +4 -1
  384. package/runtime/base/esm2022/services/pipe-provider.service.mjs +7 -4
  385. package/runtime/base/esm2022/services/spinner.service.mjs +15 -1
  386. package/runtime/base/esm2022/util/fragment-monitor.mjs +23 -2
  387. package/runtime/base/fesm2022/index.mjs +368 -33
  388. package/runtime/base/fesm2022/index.mjs.map +1 -1
  389. package/runtime/base/runtime-base.module.d.ts +2 -2
  390. package/runtime/base/services/app.manager.service.d.ts +6 -1
  391. package/runtime/base/services/app.service.d.ts +12 -2
  392. package/runtime/base/services/dynamic-component-ref-provider.service.d.ts +2 -1
  393. package/runtime/base/services/spinner.service.d.ts +3 -1
  394. package/runtime/base/util/fragment-monitor.d.ts +6 -0
  395. package/runtime/dynamic/bundles/index.umd.js +5 -0
  396. package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +6 -1
  397. package/runtime/dynamic/fesm2022/index.mjs +5 -0
  398. package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  399. package/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -1
  400. package/scripts/datatable/datatable.js +100 -14
  401. package/security/bundles/index.umd.js +41 -2
  402. package/security/esm2022/security.service.mjs +42 -3
  403. package/security/fesm2022/index.mjs +41 -2
  404. package/security/fesm2022/index.mjs.map +1 -1
  405. package/security/security.service.d.ts +5 -2
  406. package/variables/bundles/index.umd.js +50 -6
  407. package/variables/esm2022/manager/action/notification-action.manager.mjs +18 -3
  408. package/variables/esm2022/manager/variable/base-variable.manager.mjs +15 -2
  409. package/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +13 -3
  410. package/variables/esm2022/service/variables.service.mjs +8 -2
  411. package/variables/fesm2022/index.mjs +50 -6
  412. package/variables/fesm2022/index.mjs.map +1 -1
@@ -1,7 +1,7 @@
1
1
  import { ChangeDetectorRef, Compiler, Injectable, Injector, KeyValueDiffers } from '@angular/core';
2
2
  import { AsyncPipe, CurrencyPipe, DatePipe, DecimalPipe, I18nPluralPipe, I18nSelectPipe, JsonPipe, KeyValuePipe, LowerCasePipe, NgLocalization, PercentPipe, SlicePipe, TitleCasePipe, UpperCasePipe } from '@angular/common';
3
3
  import { CustomPipe, FileExtensionFromMimePipe, FileIconClassPipe, FileSizePipe, FilterPipe, NumberToStringPipe, PrefixPipe, SanitizePipe, StateClassPipe, StringToNumberPipe, SuffixPipe, TemplateReplacePipe, TimeFromNowPipe, ToCurrencyPipe, ToDatePipe, ToNumberPipe, TrustAsPipe } from '@wm/components/base';
4
- import { AbstractI18nService, CustomPipeManager, getSessionStorageItem } from '@wm/core';
4
+ import { AbstractI18nService, App, CustomPipeManager, getSessionStorageItem } from '@wm/core';
5
5
  import { DomSanitizer } from "@angular/platform-browser";
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/platform-browser";
@@ -34,7 +34,10 @@ export class PipeProvider {
34
34
  this.preparePipeMeta(CurrencyPipe, 'currency', true, [this._locale]),
35
35
  this.preparePipeMeta(DatePipe, 'date', true, [this._locale]),
36
36
  this.preparePipeMeta(ToDatePipe, 'toDate', true, [
37
- new DatePipe(this._locale), undefined, this.injector.get(CustomPipeManager)
37
+ new DatePipe(this._locale),
38
+ undefined,
39
+ this.injector.get(App),
40
+ this.injector.get(CustomPipeManager)
38
41
  ]),
39
42
  this.preparePipeMeta(ToNumberPipe, 'toNumber', true, [
40
43
  new DecimalPipe(this._locale),
@@ -51,7 +54,7 @@ export class PipeProvider {
51
54
  new DecimalPipe(this._locale)
52
55
  ]),
53
56
  this.preparePipeMeta(StringToNumberPipe, 'stringToNumber', true),
54
- this.preparePipeMeta(CustomPipe, 'custom', true, [this.injector.get(CustomPipeManager)]),
57
+ this.preparePipeMeta(CustomPipe, 'custom', true, [this.injector.get(App), this.injector.get(CustomPipeManager)]),
55
58
  this.preparePipeMeta(TrustAsPipe, 'trustAs', true, [this.domSanitizer]),
56
59
  this.preparePipeMeta(SanitizePipe, 'sanitize', true, [this.domSanitizer]),
57
60
  this.preparePipeMeta(TemplateReplacePipe, 'templateReplace', true),
@@ -121,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
121
124
  providedIn: 'root'
122
125
  }]
123
126
  }], ctorParameters: () => [{ type: i0.Compiler }, { type: i0.Injector }, { type: i1.DomSanitizer }, { type: i2.AbstractI18nService }] });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS1wcm92aWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcnVudGltZS1iYXNlL3NyYy9zZXJ2aWNlcy9waXBlLXByb3ZpZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBTyxNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixRQUFRLEVBQ1IsV0FBVyxFQUNYLGNBQWMsRUFDZCxjQUFjLEVBQ2QsUUFBUSxFQUNSLFlBQVksRUFDWixhQUFhLEVBQ2IsY0FBYyxFQUNkLFdBQVcsRUFDWCxTQUFTLEVBQ1QsYUFBYSxFQUNiLGFBQWEsRUFDaEIsTUFBTSxpQkFBaUIsQ0FBQTtBQUN4QixPQUFPLEVBQ0gsVUFBVSxFQUNWLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsVUFBVSxFQUNWLFlBQVksRUFDWixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGNBQWMsRUFDZCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDZCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUN2RixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFLdkQsTUFBTSxPQUFPLFlBQVk7SUFnQnJCLFdBQVc7UUFDUCxJQUFJLENBQUMsU0FBUyxHQUFHO1lBQ2IsMkJBQTJCO1lBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxpQkFBaUIs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LFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQUk7UUFDWixNQUFNLEVBQ0YsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQ3pDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2YsT0FBTyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ2hCLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkIsQ0FBQztZQUNELE9BQU8sSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQzsrR0ExSFEsWUFBWTttSEFBWixZQUFZLGNBRlQsTUFBTTs7NEZBRVQsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21waWxlciwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIEtleVZhbHVlRGlmZmVycywgUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFzeW5jUGlwZSxcbiAgICBDdXJyZW5jeVBpcGUsXG4gICAgRGF0ZVBpcGUsXG4gICAgRGVjaW1hbFBpcGUsXG4gICAgSTE4blBsdXJhbFBpcGUsXG4gICAgSTE4blNlbGVjdFBpcGUsXG4gICAgSnNvblBpcGUsXG4gICAgS2V5VmFsdWVQaXBlLFxuICAgIExvd2VyQ2FzZVBpcGUsXG4gICAgTmdMb2NhbGl6YXRpb24sXG4gICAgUGVyY2VudFBpcGUsXG4gICAgU2xpY2VQaXBlLFxuICAgIFRpdGxlQ2FzZVBpcGUsXG4gICAgVXBwZXJDYXNlUGlwZVxufSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICAgIEN1c3RvbVBpcGUsXG4gICAgRmlsZUV4dGVuc2lvbkZyb21NaW1lUGlwZSxcbiAgICBGaWxlSWNvbkNsYXNzUGlwZSxcbiAgICBGaWxlU2l6ZVBpcGUsXG4gICAgRmlsdGVyUGlwZSxcbiAgICBOdW1iZXJUb1N0cmluZ1BpcGUsXG4gICAgUHJlZml4UGlwZSxcbiAgICBTYW5pdGl6ZVBpcGUsXG4gICAgU3RhdGVDbGFzc1BpcGUsXG4gICAgU3RyaW5nVG9OdW1iZXJQaXBlLFxuICAgIFN1ZmZpeFBpcGUsXG4gICAgVGVtcGxhdGVSZXBsYWNlUGlwZSxcbiAgICBUaW1lRnJvbU5vd1BpcGUsXG4gICAgVG9DdXJyZW5jeVBpcGUsXG4gICAgVG9EYXRlUGlwZSxcbiAgICBUb051bWJlclBpcGUsXG4gICAgVHJ1c3RBc1BpcGVcbn0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQge0Fic3RyYWN0STE4blNlcnZpY2UsIEN1c3RvbVBpcGVNYW5hZ2VyLCBnZXRTZXNzaW9uU3RvcmFnZUl0ZW19IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7RG9tU2FuaXRpemVyfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBpcGVQcm92aWRlciB7XG4gICAgX3BpcGVNZXRhO1xuICAgIF9sb2NhbGUgPSBnZXRTZXNzaW9uU3RvcmFnZUl0ZW0oJ3NlbGVjdGVkTG9jYWxlJykgfHwgJ2VuJztcbiAgICBmb3JtYXRzQnlMb2NhbGU7XG4gICAgcHJlcGFyZVBpcGVNZXRhID0gKFxuICAgICAgICByZWZlcmVuY2U6IFBpcGUsXG4gICAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgICAgcHVyZTogYm9vbGVhbixcbiAgICAgICAgZGlEZXBzID0gW11cbiAgICApID0+ICh7XG4gICAgICAgIHR5cGU6IHsgcmVmZXJlbmNlLCBkaURlcHMgfSxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgcHVyZVxuICAgIH0pO1xuICAgIF9waXBlRGF0YSA9IFtdO1xuXG4gICAgc2V0UGlwZURhdGEoKSB7XG4gICAgICAgIHRoaXMuX3BpcGVEYXRhID0gW1xuICAgICAgICAgICAgLy8gVE9ETyB8IE5FRUQgVE8gQkUgVEVTVEVEXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShBc3luY1BpcGUsICdhc3luYycsIGZhbHNlLCBbQ2hhbmdlRGV0ZWN0b3JSZWZdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFNsaWNlUGlwZSwgJ3NsaWNlJywgZmFsc2UpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoUGVyY2VudFBpcGUsICdwZXJjZW50JywgdHJ1ZSwgW3RoaXMuX2xvY2FsZV0pLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoSTE4blBsdXJhbFBpcGUsICdpMThuUGx1cmFsJywgdHJ1ZSwgW1xuICAgICAgICAgICAgICAgIE5nTG9jYWxpemF0aW9uXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKEkxOG5TZWxlY3RQaXBlLCAnaTE4blNlbGVjdCcsIHRydWUpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoS2V5VmFsdWVQaXBlLCAna2V5dmFsdWUnLCBmYWxzZSwgW1xuICAgICAgICAgICAgICAgIEtleVZhbHVlRGlmZmVyc1xuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShGaWxlSWNvbkNsYXNzUGlwZSwgJ2ZpbGVJY29uQ2xhc3MnLCB0cnVlKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFxuICAgICAgICAgICAgICAgIEZpbGVFeHRlbnNpb25Gcm9tTWltZVBpcGUsXG4gICAgICAgICAgICAgICAgJ2ZpbGVFeHRlbnNpb25Gcm9tTWltZScsXG4gICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFN0YXRlQ2xhc3NQaXBlLCAnc3RhdGVDbGFzcycsIHRydWUpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoRmlsZVNpemVQaXBlLCAnZmlsZXNpemUnLCB0cnVlKSxcbiAgICAgICAgICAgIC8vIFRFU1RFRFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoRmlsdGVyUGlwZSwgJ2ZpbHRlcicsIHRydWUpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoVXBwZXJDYXNlUGlwZSwgJ3VwcGVyY2FzZScsIHRydWUpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoTG93ZXJDYXNlUGlwZSwgJ2xvd2VyY2FzZScsIHRydWUpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoSnNvblBpcGUsICdqc29uJywgZmFsc2UpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoRGVjaW1hbFBpcGUsICdudW1iZXInLCB0cnVlLCBbdGhpcy5fbG9jYWxlXSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShUaXRsZUNhc2VQaXBlLCAndGl0bGVjYXNlJywgdHJ1ZSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShDdXJyZW5jeVBpcGUsICdjdXJyZW5jeScsIHRydWUsIFt0aGlzLl9sb2NhbGVdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKERhdGVQaXBlLCAnZGF0ZScsIHRydWUsIFt0aGlzLl9sb2NhbGVdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFRvRGF0ZVBpcGUsICd0b0RhdGUnLCB0cnVlLCBbXG4gICAgICAgICAgICAgICAgbmV3IERhdGVQaXBlKHRoaXMuX2xvY2FsZSksIHVuZGVmaW5lZCwgdGhpcy5pbmplY3Rvci5nZXQoQ3VzdG9tUGlwZU1hbmFnZXIpXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFRvTnVtYmVyUGlwZSwgJ3RvTnVtYmVyJywgdHJ1ZSwgW1xuICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsUGlwZSh0aGlzLl9sb2NhbGUpLFxuICAgICAgICAgICAgICAgIHRoaXMuaTE4c2VydmljZVxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShUb0N1cnJlbmN5UGlwZSwgJ3RvQ3VycmVuY3knLCB0cnVlLCBbXG4gICAgICAgICAgICAgICAgbmV3IERlY2ltYWxQaXBlKHRoaXMuX2xvY2FsZSksXG4gICAgICAgICAgICAgICAgdGhpcy5pMThzZXJ2aWNlXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFByZWZpeFBpcGUsICdwcmVmaXgnLCB0cnVlKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFN1ZmZpeFBpcGUsICdzdWZmaXgnLCB0cnVlKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFRpbWVGcm9tTm93UGlwZSwgJ3RpbWVGcm9tTm93JywgdHJ1ZSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShOdW1iZXJUb1N0cmluZ1BpcGUsICdudW1iZXJUb1N0cmluZycsIHRydWUsIFtcbiAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbFBpcGUodGhpcy5fbG9jYWxlKVxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShTdHJpbmdUb051bWJlclBpcGUsICdzdHJpbmdUb051bWJlcicsIHRydWUpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoQ3VzdG9tUGlwZSwgJ2N1c3RvbScsIHRydWUsIFt0aGlzLmluamVjdG9yLmdldChDdXN0b21QaXBlTWFuYWdlcildKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFRydXN0QXNQaXBlLCAndHJ1c3RBcycsIHRydWUsIFt0aGlzLmRvbVNhbml0aXplcl0pLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoU2FuaXRpemVQaXBlLCAnc2FuaXRpemUnLCB0cnVlLCBbdGhpcy5kb21TYW5pdGl6ZXJdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFRlbXBsYXRlUmVwbGFjZVBpcGUsICd0ZW1wbGF0ZVJlcGxhY2UnLCB0cnVlKSxcbiAgICAgICAgXTtcbiAgICB9XG5cblxuICAgIHVua25vd25QaXBlKG5hbWUpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYFRoZSBwaXBlICcke25hbWV9JyBjb3VsZCBub3QgYmUgZm91bmRgKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbXBpbGVyOiBDb21waWxlciwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgZG9tU2FuaXRpemVyOkRvbVNhbml0aXplciwgcHJpdmF0ZSBpMThzZXJ2aWNlOiBBYnN0cmFjdEkxOG5TZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuX3BpcGVNZXRhID0gbmV3IE1hcCgpO1xuICAgICAgICB0aGlzLnNldFBpcGVEYXRhKCk7XG4gICAgICAgIHRoaXMuX3BpcGVEYXRhLmZvckVhY2godiA9PiB7XG4gICAgICAgICAgICB0aGlzLl9waXBlTWV0YS5zZXQodi5uYW1lLCB2KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZm9ybWF0c0J5TG9jYWxlID0gdGhpcy5pMThzZXJ2aWNlPyB0aGlzLmkxOHNlcnZpY2UuZ2V0d2lkZ2V0TG9jYWxlKCkgOiB7fTtcbiAgICB9XG5cbiAgICBtZXRhKG5hbWUpIHtcbiAgICAgICAgY29uc3QgbWV0YSA9IHRoaXMuX3BpcGVNZXRhLmdldChuYW1lKTtcbiAgICAgICAgaWYgKCFtZXRhKSB7XG4gICAgICAgICAgICB0aGlzLnVua25vd25QaXBlKG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtZXRhO1xuICAgIH1cblxuICAgIGdldFBpcGVOYW1lVnNJc1B1cmVNYXAoKSB7XG4gICAgICAgIGNvbnN0IF9tYXAgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMuX3BpcGVNZXRhLmZvckVhY2goKHYsIGspID0+IHtcbiAgICAgICAgICAgIF9tYXAuc2V0KGssIHYucHVyZSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gX21hcDtcbiAgICB9XG5cbiAgICByZXNvbHZlRGVwKGRlcCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoZGVwLnRva2VuLmlkZW50aWZpZXIucmVmZXJlbmNlKTtcbiAgICB9XG5cbiAgICBnZXRJbnN0YW5jZShuYW1lKSB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIHR5cGU6IHsgcmVmZXJlbmNlOiByZWYsIGRpRGVwczogZGVwcyB9XG4gICAgICAgIH0gPSB0aGlzLm1ldGEobmFtZSk7XG4gICAgICAgIGlmICghcmVmKSB7XG4gICAgICAgICAgICB0aGlzLnVua25vd25QaXBlKG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFkZXBzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyByZWYoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGFyZ3MgPSBbXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZGVwIG9mIGRlcHMpIHtcbiAgICAgICAgICAgICAgICBhcmdzLnB1c2goZGVwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBuZXcgcmVmKC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS1wcm92aWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcnVudGltZS1iYXNlL3NyYy9zZXJ2aWNlcy9waXBlLXByb3ZpZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBTyxNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixRQUFRLEVBQ1IsV0FBVyxFQUNYLGNBQWMsRUFDZCxjQUFjLEVBQ2QsUUFBUSxFQUNSLFlBQVksRUFDWixhQUFhLEVBQ2IsY0FBYyxFQUNkLFdBQVcsRUFDWCxTQUFTLEVBQ1QsYUFBYSxFQUNiLGFBQWEsRUFDaEIsTUFBTSxpQkFBaUIsQ0FBQTtBQUN4QixPQUFPLEVBQ0gsVUFBVSxFQUNWLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsVUFBVSxFQUNWLFlBQVksRUFDWixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGNBQWMsRUFDZCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDZCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDNUYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDOzs7O0FBS3ZELE1BQU0sT0FBTyxZQUFZO0lBZ0JyQixXQUFXO1FBQ1AsSUFBSSxDQUFDLFNBQVMsR0FBRztZQUNiLDJCQUEyQjtZQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENB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T0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFHO1FBQ1YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQUk7UUFDWixNQUFNLEVBQ0YsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQ3pDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2YsT0FBTyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ2hCLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkIsQ0FBQztZQUNELE9BQU8sSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQzsrR0E3SFEsWUFBWTttSEFBWixZQUFZLGNBRlQsTUFBTTs7NEZBRVQsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21waWxlciwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIEtleVZhbHVlRGlmZmVycywgUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFzeW5jUGlwZSxcbiAgICBDdXJyZW5jeVBpcGUsXG4gICAgRGF0ZVBpcGUsXG4gICAgRGVjaW1hbFBpcGUsXG4gICAgSTE4blBsdXJhbFBpcGUsXG4gICAgSTE4blNlbGVjdFBpcGUsXG4gICAgSnNvblBpcGUsXG4gICAgS2V5VmFsdWVQaXBlLFxuICAgIExvd2VyQ2FzZVBpcGUsXG4gICAgTmdMb2NhbGl6YXRpb24sXG4gICAgUGVyY2VudFBpcGUsXG4gICAgU2xpY2VQaXBlLFxuICAgIFRpdGxlQ2FzZVBpcGUsXG4gICAgVXBwZXJDYXNlUGlwZVxufSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICAgIEN1c3RvbVBpcGUsXG4gICAgRmlsZUV4dGVuc2lvbkZyb21NaW1lUGlwZSxcbiAgICBGaWxlSWNvbkNsYXNzUGlwZSxcbiAgICBGaWxlU2l6ZVBpcGUsXG4gICAgRmlsdGVyUGlwZSxcbiAgICBOdW1iZXJUb1N0cmluZ1BpcGUsXG4gICAgUHJlZml4UGlwZSxcbiAgICBTYW5pdGl6ZVBpcGUsXG4gICAgU3RhdGVDbGFzc1BpcGUsXG4gICAgU3RyaW5nVG9OdW1iZXJQaXBlLFxuICAgIFN1ZmZpeFBpcGUsXG4gICAgVGVtcGxhdGVSZXBsYWNlUGlwZSxcbiAgICBUaW1lRnJvbU5vd1BpcGUsXG4gICAgVG9DdXJyZW5jeVBpcGUsXG4gICAgVG9EYXRlUGlwZSxcbiAgICBUb051bWJlclBpcGUsXG4gICAgVHJ1c3RBc1BpcGVcbn0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQge0Fic3RyYWN0STE4blNlcnZpY2UsIEFwcCwgQ3VzdG9tUGlwZU1hbmFnZXIsIGdldFNlc3Npb25TdG9yYWdlSXRlbX0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHtEb21TYW5pdGl6ZXJ9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGlwZVByb3ZpZGVyIHtcbiAgICBfcGlwZU1ldGE7XG4gICAgX2xvY2FsZSA9IGdldFNlc3Npb25TdG9yYWdlSXRlbSgnc2VsZWN0ZWRMb2NhbGUnKSB8fCAnZW4nO1xuICAgIGZvcm1hdHNCeUxvY2FsZTtcbiAgICBwcmVwYXJlUGlwZU1ldGEgPSAoXG4gICAgICAgIHJlZmVyZW5jZTogUGlwZSxcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICBwdXJlOiBib29sZWFuLFxuICAgICAgICBkaURlcHMgPSBbXVxuICAgICkgPT4gKHtcbiAgICAgICAgdHlwZTogeyByZWZlcmVuY2UsIGRpRGVwcyB9LFxuICAgICAgICBuYW1lLFxuICAgICAgICBwdXJlXG4gICAgfSk7XG4gICAgX3BpcGVEYXRhID0gW107XG5cbiAgICBzZXRQaXBlRGF0YSgpIHtcbiAgICAgICAgdGhpcy5fcGlwZURhdGEgPSBbXG4gICAgICAgICAgICAvLyBUT0RPIHwgTkVFRCBUTyBCRSBURVNURURcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKEFzeW5jUGlwZSwgJ2FzeW5jJywgZmFsc2UsIFtDaGFuZ2VEZXRlY3RvclJlZl0pLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoU2xpY2VQaXBlLCAnc2xpY2UnLCBmYWxzZSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShQZXJjZW50UGlwZSwgJ3BlcmNlbnQnLCB0cnVlLCBbdGhpcy5fbG9jYWxlXSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShJMThuUGx1cmFsUGlwZSwgJ2kxOG5QbHVyYWwnLCB0cnVlLCBbXG4gICAgICAgICAgICAgICAgTmdMb2NhbGl6YXRpb25cbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoSTE4blNlbGVjdFBpcGUsICdpMThuU2VsZWN0JywgdHJ1ZSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShLZXlWYWx1ZVBpcGUsICdrZXl2YWx1ZScsIGZhbHNlLCBbXG4gICAgICAgICAgICAgICAgS2V5VmFsdWVEaWZmZXJzXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKEZpbGVJY29uQ2xhc3NQaXBlLCAnZmlsZUljb25DbGFzcycsIHRydWUpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoXG4gICAgICAgICAgICAgICAgRmlsZUV4dGVuc2lvbkZyb21NaW1lUGlwZSxcbiAgICAgICAgICAgICAgICAnZmlsZUV4dGVuc2lvbkZyb21NaW1lJyxcbiAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoU3RhdGVDbGFzc1BpcGUsICdzdGF0ZUNsYXNzJywgdHJ1ZSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShGaWxlU2l6ZVBpcGUsICdmaWxlc2l6ZScsIHRydWUpLFxuICAgICAgICAgICAgLy8gVEVTVEVEXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShGaWx0ZXJQaXBlLCAnZmlsdGVyJywgdHJ1ZSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShVcHBlckNhc2VQaXBlLCAndXBwZXJjYXNlJywgdHJ1ZSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShMb3dlckNhc2VQaXBlLCAnbG93ZXJjYXNlJywgdHJ1ZSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShKc29uUGlwZSwgJ2pzb24nLCBmYWxzZSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShEZWNpbWFsUGlwZSwgJ251bWJlcicsIHRydWUsIFt0aGlzLl9sb2NhbGVdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFRpdGxlQ2FzZVBpcGUsICd0aXRsZWNhc2UnLCB0cnVlKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKEN1cnJlbmN5UGlwZSwgJ2N1cnJlbmN5JywgdHJ1ZSwgW3RoaXMuX2xvY2FsZV0pLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoRGF0ZVBpcGUsICdkYXRlJywgdHJ1ZSwgW3RoaXMuX2xvY2FsZV0pLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoVG9EYXRlUGlwZSwgJ3RvRGF0ZScsIHRydWUsIFtcbiAgICAgICAgICAgICAgICBuZXcgRGF0ZVBpcGUodGhpcy5fbG9jYWxlKSxcbiAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgdGhpcy5pbmplY3Rvci5nZXQoQXBwKSxcbiAgICAgICAgICAgICAgICB0aGlzLmluamVjdG9yLmdldChDdXN0b21QaXBlTWFuYWdlcilcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoVG9OdW1iZXJQaXBlLCAndG9OdW1iZXInLCB0cnVlLCBbXG4gICAgICAgICAgICAgICAgbmV3IERlY2ltYWxQaXBlKHRoaXMuX2xvY2FsZSksXG4gICAgICAgICAgICAgICAgdGhpcy5pMThzZXJ2aWNlXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFRvQ3VycmVuY3lQaXBlLCAndG9DdXJyZW5jeScsIHRydWUsIFtcbiAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbFBpcGUodGhpcy5fbG9jYWxlKSxcbiAgICAgICAgICAgICAgICB0aGlzLmkxOHNlcnZpY2VcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoUHJlZml4UGlwZSwgJ3ByZWZpeCcsIHRydWUpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoU3VmZml4UGlwZSwgJ3N1ZmZpeCcsIHRydWUpLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoVGltZUZyb21Ob3dQaXBlLCAndGltZUZyb21Ob3cnLCB0cnVlKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKE51bWJlclRvU3RyaW5nUGlwZSwgJ251bWJlclRvU3RyaW5nJywgdHJ1ZSwgW1xuICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsUGlwZSh0aGlzLl9sb2NhbGUpXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBpcGVNZXRhKFN0cmluZ1RvTnVtYmVyUGlwZSwgJ3N0cmluZ1RvTnVtYmVyJywgdHJ1ZSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShDdXN0b21QaXBlLCAnY3VzdG9tJywgdHJ1ZSwgW3RoaXMuaW5qZWN0b3IuZ2V0KEFwcCksIHRoaXMuaW5qZWN0b3IuZ2V0KEN1c3RvbVBpcGVNYW5hZ2VyKV0pLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoVHJ1c3RBc1BpcGUsICd0cnVzdEFzJywgdHJ1ZSwgW3RoaXMuZG9tU2FuaXRpemVyXSksXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVQaXBlTWV0YShTYW5pdGl6ZVBpcGUsICdzYW5pdGl6ZScsIHRydWUsIFt0aGlzLmRvbVNhbml0aXplcl0pLFxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGlwZU1ldGEoVGVtcGxhdGVSZXBsYWNlUGlwZSwgJ3RlbXBsYXRlUmVwbGFjZScsIHRydWUpLFxuICAgICAgICBdO1xuICAgIH1cblxuXG4gICAgdW5rbm93blBpcGUobmFtZSkge1xuICAgICAgICB0aHJvdyBFcnJvcihgVGhlIHBpcGUgJyR7bmFtZX0nIGNvdWxkIG5vdCBiZSBmb3VuZGApO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY29tcGlsZXI6IENvbXBpbGVyLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBkb21TYW5pdGl6ZXI6RG9tU2FuaXRpemVyLCBwcml2YXRlIGkxOHNlcnZpY2U6IEFic3RyYWN0STE4blNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5fcGlwZU1ldGEgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMuc2V0UGlwZURhdGEoKTtcbiAgICAgICAgdGhpcy5fcGlwZURhdGEuZm9yRWFjaCh2ID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3BpcGVNZXRhLnNldCh2Lm5hbWUsIHYpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5mb3JtYXRzQnlMb2NhbGUgPSB0aGlzLmkxOHNlcnZpY2U/IHRoaXMuaTE4c2VydmljZS5nZXR3aWRnZXRMb2NhbGUoKSA6IHt9O1xuICAgIH1cblxuICAgIG1ldGEobmFtZSkge1xuICAgICAgICBjb25zdCBtZXRhID0gdGhpcy5fcGlwZU1ldGEuZ2V0KG5hbWUpO1xuICAgICAgICBpZiAoIW1ldGEpIHtcbiAgICAgICAgICAgIHRoaXMudW5rbm93blBpcGUobmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1ldGE7XG4gICAgfVxuXG4gICAgZ2V0UGlwZU5hbWVWc0lzUHVyZU1hcCgpIHtcbiAgICAgICAgY29uc3QgX21hcCA9IG5ldyBNYXAoKTtcbiAgICAgICAgdGhpcy5fcGlwZU1ldGEuZm9yRWFjaCgodiwgaykgPT4ge1xuICAgICAgICAgICAgX21hcC5zZXQoaywgdi5wdXJlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBfbWFwO1xuICAgIH1cblxuICAgIHJlc29sdmVEZXAoZGVwKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmluamVjdG9yLmdldChkZXAudG9rZW4uaWRlbnRpZmllci5yZWZlcmVuY2UpO1xuICAgIH1cblxuICAgIGdldEluc3RhbmNlKG5hbWUpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgdHlwZTogeyByZWZlcmVuY2U6IHJlZiwgZGlEZXBzOiBkZXBzIH1cbiAgICAgICAgfSA9IHRoaXMubWV0YShuYW1lKTtcbiAgICAgICAgaWYgKCFyZWYpIHtcbiAgICAgICAgICAgIHRoaXMudW5rbm93blBpcGUobmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWRlcHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IHJlZigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgYXJncyA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBkZXAgb2YgZGVwcykge1xuICAgICAgICAgICAgICAgIGFyZ3MucHVzaChkZXApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5ldyByZWYoLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICB9XG59Il19
@@ -121,10 +121,24 @@ export class SpinnerServiceImpl extends AbstractSpinnerService {
121
121
  this.messagesByContext[ctx] = {};
122
122
  }
123
123
  }
124
+ ngOnDestroy() {
125
+ // MEMORY LEAK FIX: Complete Subject to release subscriptions
126
+ if (this.messageSource) {
127
+ this.messageSource.complete();
128
+ this.messageSource = null;
129
+ }
130
+ // MEMORY LEAK FIX: Clear messages by context
131
+ if (this.messagesByContext) {
132
+ Object.keys(this.messagesByContext).forEach(key => {
133
+ delete this.messagesByContext[key];
134
+ });
135
+ this.messagesByContext = null;
136
+ }
137
+ }
124
138
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpinnerServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
125
139
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpinnerServiceImpl }); }
126
140
  }
127
141
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpinnerServiceImpl, decorators: [{
128
142
  type: Injectable
129
143
  }], ctorParameters: () => [] });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcnVudGltZS1iYXNlL3NyYy9zZXJ2aWNlcy9zcGlubmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsRCxPQUFPLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLE1BQU0sV0FBVyxDQUFDOztBQUkxRCxNQUFNLGVBQWUsR0FBRzs7Ozs7OztnQ0FPUSxDQUFDO0FBR2pDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxzQkFBc0I7SUFLMUQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQUxaLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDOUIsc0JBQWlCLEdBQUcsRUFBRSxDQUFDO0lBSXZCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxnQkFBZ0I7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsa0JBQWtCLENBQUMsR0FBVyxFQUFFLE9BQWUsRUFBRSxFQUFVO1FBQ3ZELE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hFLCtDQUErQztRQUMvQywrREFBK0Q7UUFDL0QseUJBQXlCO1FBQ3pCLElBQUksTUFBTSxDQUFDLElBQUksQ0FB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QUFDO1lBQ0osSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNyQyxDQUFDO0lBQ0wsQ0FBQzsrR0F0SFEsa0JBQWtCO21IQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RTcGlubmVyU2VydmljZSB9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7ZmluZEtleSwgaW5jbHVkZXMsIGtleXMsIHZhbHVlc30gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5kZWNsYXJlIGNvbnN0ICQ7XG5cbmNvbnN0IHNwaW5uZXJUZW1wbGF0ZSA9IGA8ZGl2IGNsYXNzPVwiYXBwLXNwaW5uZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1tZXNzYWdlXCIgYXJpYS1sYWJlbD1cImxvYWRpbmcgZ2lmXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwic3Bpbm5lci1pbWFnZSBhbmltYXRlZCBpbmZpbml0ZSBmYSBmYS1jaXJjbGUtby1ub3RjaCBmYS1zcGluXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1tZXNzYWdlc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzcGlubmVyLW1lc3NhZ2VzLWNvbnRhaW5lclwiPjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU3Bpbm5lclNlcnZpY2VJbXBsIGV4dGVuZHMgQWJzdHJhY3RTcGlubmVyU2VydmljZSB7XG4gICAgc3Bpbm5lcklkID0gMDtcbiAgICBtZXNzYWdlU291cmNlID0gbmV3IFN1YmplY3QoKTtcbiAgICBtZXNzYWdlc0J5Q29udGV4dCA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyB0aGUgbWVzc2FnZSBzb3VyY2Ugc3ViamVjdFxuICAgICAqIEByZXR1cm5zIHtTdWJqZWN0PGFueT59XG4gICAgICovXG4gICAgZ2V0TWVzc2FnZVNvdXJjZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWVzc2FnZVNvdXJjZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzaG93IHNwaW5uZXIgb24gYSBjb250YWluZXIgZWxlbWVudFxuICAgICAqL1xuICAgIHNob3dDb250ZXh0U3Bpbm5lcihjdHg6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCBpZDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGN0eE1hcmt1cCA9ICQoJ1tuYW1lPVwiJyArIGN0eCArICdcIl0nKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlc0J5Q29udGV4dFtjdHhdID0gdGhpcy5tZXNzYWdlc0J5Q29udGV4dFtjdHhdIHx8IHt9O1xuICAgICAgICAvLyBJZiB0aGUgc3Bpbm5lciBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgY29udGV4dFxuICAgICAgICAvLyB0aGVuIGp1c3QgYXBwZW5kIHRoZSBtZXNzYWdlIHRvIHRoZSBleGlzdGluZyBzcGlubmVyIG1lc3NhZ2VcbiAgICAgICAgLy8gZWxzZSBhZGQgYSBuZXcgc3Bpbm5lclxuICAgICAgICBpZiAoT2JqZWN0LmtleXModGhpcy5tZXNzYWdlc0J5Q29udGV4dFtjdHhdKS5sZW5ndGggIT09IDAgKSB7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VzQnlDb250ZXh0W2N0eF1baWRdID0gbWVzc2FnZTtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZXNCeUNvbnRleHRbY3R4XVsnZmluYWxNZXNzYWdlJ10gPSB0aGlzLm1lc3NhZ2VzQnlDb250ZXh0W2N0eF1bJ2ZpbmFsTWVzc2FnZSddICsgJyAnICsgdGhpcy5tZXNzYWdlc0J5Q29udGV4dFtjdHhdW2lkXTtcbiAgICAgICAgICAgIGN0eE1hcmt1cC5maW5kKCcuc3Bpbm5lci1tZXNzYWdlcy1jb250YWluZXInKS5odG1sKHRoaXMubWVzc2FnZXNCeUNvbnRleHRbY3R4XVsnZmluYWxNZXNzYWdlJ10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgY3R4U3Bpbm5lclRlbXAgPSAkKHNwaW5uZXJUZW1wbGF0ZSk7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VzQnlDb250ZXh0W2N0eF1baWRdID0gbWVzc2FnZTtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZXNCeUNvbnRleHRbY3R4XVsnZmluYWxNZXNzYWdlJ10gPSB0aGlzLm1lc3NhZ2VzQnlDb250ZXh0W2N0eF1baWRdO1xuICAgICAgICAgICAgY3R4U3Bpbm5lclRlbXAuZmluZCgnLnNwaW5uZXItbWVzc2FnZXMtY29udGFpbmVyJykuaHRtbCh0aGlzLm1lc3NhZ2VzQnlDb250ZXh0W2N0eF1bJ2ZpbmFsTWVzc2FnZSddKTtcbiAgICAgICAgICAgIGN0eE1hcmt1cC5wcmVwZW5kKGN0eFNwaW5uZXJUZW1wKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2hvdyB0aGUgYXBwIHNwaW5uZXIgd2l0aCBwcm92aWRlZCBtZXNzYWdlXG4gICAgICogQHBhcmFtIG1zZ1xuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAgICovXG4gICAgc2hvd0FwcFNwaW5uZXIobXNnLCBpZCkge1xuICAgICAgICBjb25zdCBjdHggPSAncGFnZSc7XG4gICAgICAgIHRoaXMubWVzc2FnZXNCeUNvbnRleHRbY3R4XSA9IHRoaXMubWVzc2FnZXNCeUNvbnRleHRbY3R4XSB8fCB7fTtcbiAgICAgICAgdGhpcy5tZXNzYWdlc0J5Q29udGV4dFtjdHhdW2lkXSA9IG1zZztcblxuICAgICAgICB0aGlzLm1lc3NhZ2VTb3VyY2UubmV4dCh7XG4gICAgICAgICAgICBzaG93OiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogbXNnLFxuICAgICAgICAgICAgbWVzc2FnZXM6IHZhbHVlcyh0aGlzLm1lc3NhZ2VzQnlDb250ZXh0W2N0eF0pXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGhpZGVzIHRoZSBzcGlubmVyIG9uIGEgcGFydGljdWxhciBjb250YWluZXIoY29udGV4dClcbiAgICAgKiBAcGFyYW0gY3R4XG4gICAgICogQHBhcmFtIGlkXG4gICAgICovXG4gICAgaGlkZUNvbnRleHRTcGlubmVyKGN0eCwgaWQpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMubWVzc2FnZXNCeUNvbnRleHRbY3R4XVtpZF07XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLm1lc3NhZ2VzQnlDb250ZXh0W2N0eF0pLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlc0J5Q29udGV4dFtjdHhdID0ge307XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3R4TWFya3VwID0gJCgnW25hbWU9XCInICsgY3R4ICsgJ1wiXScpO1xuICAgICAgICBjdHhNYXJrdXAuZmluZCgnLmFwcC1zcGlubmVyJykucmVtb3ZlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2hvdyBzcGlubmVyXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gaWRcbiAgICAgKiBAcGFyYW0gc3Bpbm5lckNsYXNzXG4gICAgICogQHBhcmFtIHNwaW5uZXJDb250ZXh0XG4gICAgICogQHBhcmFtIHZhcmlhYmxlU2NvcGVJZFxuICAgICAqIEByZXR1cm5zIHthbnl9XG4gICAgICovXG4gICAgc2hvdyhtZXNzYWdlLCBpZD8sIHNwaW5uZXJDbGFzcz8sIHNwaW5uZXJDb250ZXh0PywgdmFyaWFibGVTY29wZUlkPykge1xuICAgICAgICBpZCAgICAgID0gaWQgfHwgKyt0aGlzLnNwaW5uZXJJZDtcbiAgICAgICAgLy8gaWYgc3Bpbm5lckNvbnRleHQgaXMgcGFzc2VkLCB0aGVuIGFwcGVuZCB0aGUgc3Bpbm5lciB0byB0aGUgZWxlbWVudChkZWZhdWx0IG1ldGhvZCBmb3IgdmFyaWFibGUgY2FsbHMpLlxuICAgICAgICBpZiAoc3Bpbm5lckNvbnRleHQgJiYgc3Bpbm5lckNvbnRleHQgIT09ICdwYWdlJykge1xuICAgICAgICAgICAgLy8gcmV0dXJuIGFmdGVyIHRoZSBjb21waWxlZCBzcGlubmVyIGlzIGFwcGVuZGVkIHRvIHRoZSBlbGVtZW50IHJlZmVyZW5jZVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2hvd0NvbnRleHRTcGlubmVyKHNwaW5uZXJDb250ZXh0LCBtZXNzYWdlLCBpZCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNob3dBcHBTcGlubmVyKG1lc3NhZ2UsIGlkKTtcbiAgICAgICAgcmV0dXJuIGlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGhpZGUgdGhlIHNwaW5uZXJcbiAgICAgKiBAcGFyYW0gc3Bpbm5lcklkXG4gICAgICovXG4gICAgaGlkZShpZCkge1xuICAgICAgICAvLyBmaW5kIHRoZSBzcGlubmVyIGNvbnRleHQgb2YgdGhlIGlkIGZyb20gdGhlIG1lc3NhZ2VzQnlDb250ZXh0XG4gICAgICAgIGNvbnN0IGN0eCA9IGZpbmRLZXkodGhpcy5tZXNzYWdlc0J5Q29udGV4dCwgZnVuY3Rpb24gKG9iaikge1xuICAgICAgICAgICAgcmV0dXJuIGluY2x1ZGVzKGtleXMob2JqKSwgaWQpO1xuICAgICAgICB9KSB8fCAncGFnZSc7XG5cbiAgICAgICAgLy8gaWYgc3Bpbm5lckNvbnRleHQgZXhpc3RzIGp1c3QgcmVtb3ZlIHRoZSBzcGlubmVyIGZyb20gdGhlIHJlZmVyZW5jZSBhbmQgZGVzdHJveSB0aGUgc2NvcGUgYXNzb2NpYXRlZC5cbiAgICAgICAgaWYgKGN0eCAhPT0gJ3BhZ2UnKSB7XG4gICAgICAgICAgICB0aGlzLmhpZGVDb250ZXh0U3Bpbm5lcihjdHgsIGlkKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpZCkge1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMubWVzc2FnZXNCeUNvbnRleHRbY3R4XVtpZF07XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlcyA9IHZhbHVlcyh0aGlzLm1lc3NhZ2VzQnlDb250ZXh0W2N0eF0pO1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU291cmNlLm5leHQoe1xuICAgICAgICAgICAgICAgIHNob3c6IG1lc3NhZ2VzLmxlbmd0aCA/IHRydWUgOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlczogdmFsdWVzKHRoaXMubWVzc2FnZXNCeUNvbnRleHRbY3R4XSlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlc0J5Q29udGV4dFtjdHhdID0ge307XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcnVudGltZS1iYXNlL3NyYy9zZXJ2aWNlcy9zcGlubmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsRCxPQUFPLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLE1BQU0sV0FBVyxDQUFDOztBQUkxRCxNQUFNLGVBQWUsR0FBRzs7Ozs7OztnQ0FPUSxDQUFDO0FBR2pDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxzQkFBc0I7SUFLMUQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQUxaLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDOUIsc0JBQWlCLEdBQUcsRUFBRSxDQUFDO0lBSXZCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxnQkFBZ0I7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsa0JBQWtCLENBQUMsR0FBVyxFQUFFLE9BQWUsRUFBRSxFQUFVO1FBQ3ZELE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hFLCtDQUErQztRQUMvQywrREFBK0Q7UUFDL0QseUJBQXlCO1FBQ3pCLElBQUksTUFBTSxDQUFDLElBQUksQ0FB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QUFDO1lBQ0osSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNyQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCw2REFBNkQ7UUFDN0QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUM5QixDQUFDO1FBRUQsNkNBQTZDO1FBQzdDLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzlDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUNsQyxDQUFDO0lBQ0wsQ0FBQzsrR0F0SVEsa0JBQWtCO21IQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFNwaW5uZXJTZXJ2aWNlIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHtmaW5kS2V5LCBpbmNsdWRlcywga2V5cywgdmFsdWVzfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmRlY2xhcmUgY29uc3QgJDtcblxuY29uc3Qgc3Bpbm5lclRlbXBsYXRlID0gYDxkaXYgY2xhc3M9XCJhcHAtc3Bpbm5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyLW1lc3NhZ2VcIiBhcmlhLWxhYmVsPVwibG9hZGluZyBnaWZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJzcGlubmVyLWltYWdlIGFuaW1hdGVkIGluZmluaXRlIGZhIGZhLWNpcmNsZS1vLW5vdGNoIGZhLXNwaW5cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyLW1lc3NhZ2VzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInNwaW5uZXItbWVzc2FnZXMtY29udGFpbmVyXCI+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTcGlubmVyU2VydmljZUltcGwgZXh0ZW5kcyBBYnN0cmFjdFNwaW5uZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBzcGlubmVySWQgPSAwO1xuICAgIG1lc3NhZ2VTb3VyY2UgPSBuZXcgU3ViamVjdCgpO1xuICAgIG1lc3NhZ2VzQnlDb250ZXh0ID0ge307XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIHRoZSBtZXNzYWdlIHNvdXJjZSBzdWJqZWN0XG4gICAgICogQHJldHVybnMge1N1YmplY3Q8YW55Pn1cbiAgICAgKi9cbiAgICBnZXRNZXNzYWdlU291cmNlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tZXNzYWdlU291cmNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHNob3cgc3Bpbm5lciBvbiBhIGNvbnRhaW5lciBlbGVtZW50XG4gICAgICovXG4gICAgc2hvd0NvbnRleHRTcGlubmVyKGN0eDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGlkOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgY3R4TWFya3VwID0gJCgnW25hbWU9XCInICsgY3R4ICsgJ1wiXScpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VzQnlDb250ZXh0W2N0eF0gPSB0aGlzLm1lc3NhZ2VzQnlDb250ZXh0W2N0eF0gfHwge307XG4gICAgICAgIC8vIElmIHRoZSBzcGlubmVyIGFscmVhZHkgZXhpc3RzIG9uIHRoZSBjb250ZXh0XG4gICAgICAgIC8vIHRoZW4ganVzdCBhcHBlbmQgdGhlIG1lc3NhZ2UgdG8gdGhlIGV4aXN0aW5nIHNwaW5uZXIgbWVzc2FnZVxuICAgICAgICAvLyBlbHNlIGFkZCBhIG5ldyBzcGlubmVyXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLm1lc3NhZ2VzQnlDb250ZXh0W2N0eF0pLmxlbmd0aCAhPT0gMCApIHtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZXNCeUNvbnRleHRbY3R4XVtpZF0gPSBtZXNzYWdlO1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlc0J5Q29udGV4dFtjdHhdWydmaW5hbE1lc3NhZ2UnXSA9IHRoaXMubWVzc2FnZXNCeUNvbnRleHRbY3R4XVsnZmluYWxNZXNzYWdlJ10gKyAnICcgKyB0aGlzLm1lc3NhZ2VzQnlDb250ZXh0W2N0eF1baWRdO1xuICAgICAgICAgICAgY3R4TWFya3VwLmZpbmQoJy5zcGlubmVyLW1lc3NhZ2VzLWNvbnRhaW5lcicpLmh0bWwodGhpcy5tZXNzYWdlc0J5Q29udGV4dFtjdHhdWydmaW5hbE1lc3NhZ2UnXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBjdHhTcGlubmVyVGVtcCA9ICQoc3Bpbm5lclRlbXBsYXRlKTtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZXNCeUNvbnRleHRbY3R4XVtpZF0gPSBtZXNzYWdlO1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlc0J5Q29udGV4dFtjdHhdWydmaW5hbE1lc3NhZ2UnXSA9IHRoaXMubWVzc2FnZXNCeUNvbnRleHRbY3R4XVtpZF07XG4gICAgICAgICAgICBjdHhTcGlubmVyVGVtcC5maW5kKCcuc3Bpbm5lci1tZXNzYWdlcy1jb250YWluZXInKS5odG1sKHRoaXMubWVzc2FnZXNCeUNvbnRleHRbY3R4XVsnZmluYWxNZXNzYWdlJ10pO1xuICAgICAgICAgICAgY3R4TWFya3VwLnByZXBlbmQoY3R4U3Bpbm5lclRlbXApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzaG93IHRoZSBhcHAgc3Bpbm5lciB3aXRoIHByb3ZpZGVkIG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gbXNnXG4gICAgICogQHJldHVybnMge3N0cmluZ31cbiAgICAgKi9cbiAgICBzaG93QXBwU3Bpbm5lcihtc2csIGlkKSB7XG4gICAgICAgIGNvbnN0IGN0eCA9ICdwYWdlJztcbiAgICAgICAgdGhpcy5tZXNzYWdlc0J5Q29udGV4dFtjdHhdID0gdGhpcy5tZXNzYWdlc0J5Q29udGV4dFtjdHhdIHx8IHt9O1xuICAgICAgICB0aGlzLm1lc3NhZ2VzQnlDb250ZXh0W2N0eF1baWRdID0gbXNnO1xuXG4gICAgICAgIHRoaXMubWVzc2FnZVNvdXJjZS5uZXh0KHtcbiAgICAgICAgICAgIHNob3c6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiBtc2csXG4gICAgICAgICAgICBtZXNzYWdlczogdmFsdWVzKHRoaXMubWVzc2FnZXNCeUNvbnRleHRbY3R4XSlcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaGlkZXMgdGhlIHNwaW5uZXIgb24gYSBwYXJ0aWN1bGFyIGNvbnRhaW5lcihjb250ZXh0KVxuICAgICAqIEBwYXJhbSBjdHhcbiAgICAgKiBAcGFyYW0gaWRcbiAgICAgKi9cbiAgICBoaWRlQ29udGV4dFNwaW5uZXIoY3R4LCBpZCkge1xuICAgICAgICBkZWxldGUgdGhpcy5tZXNzYWdlc0J5Q29udGV4dFtjdHhdW2lkXTtcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKHRoaXMubWVzc2FnZXNCeUNvbnRleHRbY3R4XSkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VzQnlDb250ZXh0W2N0eF0gPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdHhNYXJrdXAgPSAkKCdbbmFtZT1cIicgKyBjdHggKyAnXCJdJyk7XG4gICAgICAgIGN0eE1hcmt1cC5maW5kKCcuYXBwLXNwaW5uZXInKS5yZW1vdmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzaG93IHNwaW5uZXJcbiAgICAgKiBAcGFyYW0gbWVzc2FnZVxuICAgICAqIEBwYXJhbSBpZFxuICAgICAqIEBwYXJhbSBzcGlubmVyQ2xhc3NcbiAgICAgKiBAcGFyYW0gc3Bpbm5lckNvbnRleHRcbiAgICAgKiBAcGFyYW0gdmFyaWFibGVTY29wZUlkXG4gICAgICogQHJldHVybnMge2FueX1cbiAgICAgKi9cbiAgICBzaG93KG1lc3NhZ2UsIGlkPywgc3Bpbm5lckNsYXNzPywgc3Bpbm5lckNvbnRleHQ/LCB2YXJpYWJsZVNjb3BlSWQ/KSB7XG4gICAgICAgIGlkICAgICAgPSBpZCB8fCArK3RoaXMuc3Bpbm5lcklkO1xuICAgICAgICAvLyBpZiBzcGlubmVyQ29udGV4dCBpcyBwYXNzZWQsIHRoZW4gYXBwZW5kIHRoZSBzcGlubmVyIHRvIHRoZSBlbGVtZW50KGRlZmF1bHQgbWV0aG9kIGZvciB2YXJpYWJsZSBjYWxscykuXG4gICAgICAgIGlmIChzcGlubmVyQ29udGV4dCAmJiBzcGlubmVyQ29udGV4dCAhPT0gJ3BhZ2UnKSB7XG4gICAgICAgICAgICAvLyByZXR1cm4gYWZ0ZXIgdGhlIGNvbXBpbGVkIHNwaW5uZXIgaXMgYXBwZW5kZWQgdG8gdGhlIGVsZW1lbnQgcmVmZXJlbmNlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zaG93Q29udGV4dFNwaW5uZXIoc3Bpbm5lckNvbnRleHQsIG1lc3NhZ2UsIGlkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2hvd0FwcFNwaW5uZXIobWVzc2FnZSwgaWQpO1xuICAgICAgICByZXR1cm4gaWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaGlkZSB0aGUgc3Bpbm5lclxuICAgICAqIEBwYXJhbSBzcGlubmVySWRcbiAgICAgKi9cbiAgICBoaWRlKGlkKSB7XG4gICAgICAgIC8vIGZpbmQgdGhlIHNwaW5uZXIgY29udGV4dCBvZiB0aGUgaWQgZnJvbSB0aGUgbWVzc2FnZXNCeUNvbnRleHRcbiAgICAgICAgY29uc3QgY3R4ID0gZmluZEtleSh0aGlzLm1lc3NhZ2VzQnlDb250ZXh0LCBmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5jbHVkZXMoa2V5cyhvYmopLCBpZCk7XG4gICAgICAgIH0pIHx8ICdwYWdlJztcblxuICAgICAgICAvLyBpZiBzcGlubmVyQ29udGV4dCBleGlzdHMganVzdCByZW1vdmUgdGhlIHNwaW5uZXIgZnJvbSB0aGUgcmVmZXJlbmNlIGFuZCBkZXN0cm95IHRoZSBzY29wZSBhc3NvY2lhdGVkLlxuICAgICAgICBpZiAoY3R4ICE9PSAncGFnZScpIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZUNvbnRleHRTcGlubmVyKGN0eCwgaWQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5tZXNzYWdlc0J5Q29udGV4dFtjdHhdW2lkXTtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gdmFsdWVzKHRoaXMubWVzc2FnZXNCeUNvbnRleHRbY3R4XSk7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VTb3VyY2UubmV4dCh7XG4gICAgICAgICAgICAgICAgc2hvdzogbWVzc2FnZXMubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2VzOiB2YWx1ZXModGhpcy5tZXNzYWdlc0J5Q29udGV4dFtjdHhdKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VzQnlDb250ZXh0W2N0eF0gPSB7fTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICAvLyBNRU1PUlkgTEVBSyBGSVg6IENvbXBsZXRlIFN1YmplY3QgdG8gcmVsZWFzZSBzdWJzY3JpcHRpb25zXG4gICAgICAgIGlmICh0aGlzLm1lc3NhZ2VTb3VyY2UpIHtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNvdXJjZS5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU291cmNlID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogQ2xlYXIgbWVzc2FnZXMgYnkgY29udGV4dFxuICAgICAgICBpZiAodGhpcy5tZXNzYWdlc0J5Q29udGV4dCkge1xuICAgICAgICAgICAgT2JqZWN0LmtleXModGhpcy5tZXNzYWdlc0J5Q29udGV4dCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLm1lc3NhZ2VzQnlDb250ZXh0W2tleV07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZXNCeUNvbnRleHQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -10,11 +10,32 @@ export class FragmentMonitor {
10
10
  }
11
11
  init() {
12
12
  // console.log(`inside fragmentMonitor: Page-${(this as any).pageName}, Partial-${(this as any).partialName}`);
13
- this.viewInit$.subscribe(noop, noop, () => {
13
+ // MEMORY LEAK FIX: Store subscription reference for cleanup
14
+ this.viewInitSubscription = this.viewInit$.subscribe(noop, noop, () => {
14
15
  this.isViewInitialized = true;
15
16
  this.isReady();
16
17
  });
17
18
  }
19
+ /**
20
+ * MEMORY LEAK FIX: Clean up FragmentMonitor resources
21
+ * Should be called from implementing class's ngOnDestroy
22
+ */
23
+ cleanupFragmentMonitor() {
24
+ // MEMORY LEAK FIX: Unsubscribe from viewInit$ subscription
25
+ if (this.viewInitSubscription) {
26
+ this.viewInitSubscription.unsubscribe();
27
+ this.viewInitSubscription = null;
28
+ }
29
+ // MEMORY LEAK FIX: Complete Subjects to release subscriptions (if not already completed)
30
+ if (this.viewInit$ && !this.viewInit$.closed) {
31
+ this.viewInit$.complete();
32
+ }
33
+ this.viewInit$ = null;
34
+ if (this.fragmentsLoaded$ && !this.fragmentsLoaded$.closed) {
35
+ this.fragmentsLoaded$.complete();
36
+ }
37
+ this.fragmentsLoaded$ = null;
38
+ }
18
39
  registerFragment() {
19
40
  this.fragments++;
20
41
  }
@@ -35,4 +56,4 @@ export class FragmentMonitor {
35
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FragmentMonitor, decorators: [{
36
57
  type: Directive
37
58
  }], ctorParameters: () => [] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhZ21lbnQtbW9uaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtYmFzZS9zcmMvdXRpbC9mcmFnbWVudC1tb25pdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUcxQyxNQUFNLE9BQWdCLGVBQWU7SUFRakM7UUFQQSxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBR2Qsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFFaEMscUJBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUVsQixDQUFDO0lBRWhCLElBQUk7UUFDQSwrR0FBK0c7UUFFL0csSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUU7WUFDdEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztZQUM5QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsT0FBTztRQUNILElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7WUFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3JDLENBQUM7SUFDTCxDQUFDOytHQWxDaUIsZUFBZTttR0FBZixlQUFlOzs0RkFBZixlQUFlO2tCQURwQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9vcCB9IGZyb20gJ0B3bS9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRnJhZ21lbnRNb25pdG9yIHtcbiAgICBmcmFnbWVudHMgPSAwO1xuICAgIHZpZXdJbml0JDogU3ViamVjdDxhbnk+O1xuICAgIGlzVmlld0luaXRpYWxpemVkOiBib29sZWFuO1xuICAgIGlzUGFnZUNvbXBvbmVudDogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBmcmFnbWVudHNMb2FkZWQkID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge31cblxuICAgIGluaXQoKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBpbnNpZGUgZnJhZ21lbnRNb25pdG9yOiBQYWdlLSR7KHRoaXMgYXMgYW55KS5wYWdlTmFtZX0sIFBhcnRpYWwtJHsodGhpcyBhcyBhbnkpLnBhcnRpYWxOYW1lfWApO1xuXG4gICAgICAgIHRoaXMudmlld0luaXQkLnN1YnNjcmliZShub29wLCBub29wLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzVmlld0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuaXNSZWFkeSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZWdpc3RlckZyYWdtZW50KCkge1xuICAgICAgICB0aGlzLmZyYWdtZW50cysrO1xuICAgIH1cblxuICAgIHJlc29sdmVGcmFnbWVudCgpIHtcbiAgICAgICAgdGhpcy5mcmFnbWVudHMtLTtcbiAgICAgICAgdGhpcy5pc1JlYWR5KCk7XG4gICAgfVxuXG4gICAgaXNSZWFkeSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNWaWV3SW5pdGlhbGl6ZWQgJiYgIXRoaXMuZnJhZ21lbnRzKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyRnJhZ21lbnQgPSBub29wO1xuICAgICAgICAgICAgdGhpcy5yZXNvbHZlRnJhZ21lbnQgPSBub29wO1xuICAgICAgICAgICAgdGhpcy5mcmFnbWVudHNMb2FkZWQkLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhZ21lbnQtbW9uaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtYmFzZS9zcmMvdXRpbC9mcmFnbWVudC1tb25pdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFaEMsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHMUMsTUFBTSxPQUFnQixlQUFlO0lBU2pDO1FBUkEsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUdkLG9CQUFlLEdBQVksSUFBSSxDQUFDO1FBRWhDLHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFHbEIsQ0FBQztJQUVoQixJQUFJO1FBQ0EsK0dBQStHO1FBRS9HLDREQUE0RDtRQUM1RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUU7WUFDbEUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztZQUM5QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sc0JBQXNCO1FBQzVCLDJEQUEyRDtRQUMzRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1FBQ3JDLENBQUM7UUFFRCx5RkFBeUY7UUFDekYsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUV0QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN6RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDckMsQ0FBQztRQUNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDakMsQ0FBQztJQUVELGdCQUFnQjtRQUNaLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1lBQzdCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1lBQzVCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyQyxDQUFDO0lBQ0wsQ0FBQzsrR0EzRGlCLGVBQWU7bUdBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFEcEMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vb3AgfSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRnJhZ21lbnRNb25pdG9yIHtcbiAgICBmcmFnbWVudHMgPSAwO1xuICAgIHZpZXdJbml0JDogU3ViamVjdDxhbnk+O1xuICAgIGlzVmlld0luaXRpYWxpemVkOiBib29sZWFuO1xuICAgIGlzUGFnZUNvbXBvbmVudDogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBmcmFnbWVudHNMb2FkZWQkID0gbmV3IFN1YmplY3QoKTtcbiAgICBwcml2YXRlIHZpZXdJbml0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247IC8vIE1FTU9SWSBMRUFLIEZJWDogU3RvcmUgc3Vic2NyaXB0aW9uIHJlZmVyZW5jZVxuXG4gICAgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgaW5pdCgpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coYGluc2lkZSBmcmFnbWVudE1vbml0b3I6IFBhZ2UtJHsodGhpcyBhcyBhbnkpLnBhZ2VOYW1lfSwgUGFydGlhbC0keyh0aGlzIGFzIGFueSkucGFydGlhbE5hbWV9YCk7XG5cbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBTdG9yZSBzdWJzY3JpcHRpb24gcmVmZXJlbmNlIGZvciBjbGVhbnVwXG4gICAgICAgIHRoaXMudmlld0luaXRTdWJzY3JpcHRpb24gPSB0aGlzLnZpZXdJbml0JC5zdWJzY3JpYmUobm9vcCwgbm9vcCwgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc1ZpZXdJbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmlzUmVhZHkoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTUVNT1JZIExFQUsgRklYOiBDbGVhbiB1cCBGcmFnbWVudE1vbml0b3IgcmVzb3VyY2VzXG4gICAgICogU2hvdWxkIGJlIGNhbGxlZCBmcm9tIGltcGxlbWVudGluZyBjbGFzcydzIG5nT25EZXN0cm95XG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNsZWFudXBGcmFnbWVudE1vbml0b3IoKSB7XG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogVW5zdWJzY3JpYmUgZnJvbSB2aWV3SW5pdCQgc3Vic2NyaXB0aW9uXG4gICAgICAgIGlmICh0aGlzLnZpZXdJbml0U3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnZpZXdJbml0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLnZpZXdJbml0U3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogQ29tcGxldGUgU3ViamVjdHMgdG8gcmVsZWFzZSBzdWJzY3JpcHRpb25zIChpZiBub3QgYWxyZWFkeSBjb21wbGV0ZWQpXG4gICAgICAgIGlmICh0aGlzLnZpZXdJbml0JCAmJiAhdGhpcy52aWV3SW5pdCQuY2xvc2VkKSB7XG4gICAgICAgICAgICB0aGlzLnZpZXdJbml0JC5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmlld0luaXQkID0gbnVsbDtcblxuICAgICAgICBpZiAodGhpcy5mcmFnbWVudHNMb2FkZWQkICYmICF0aGlzLmZyYWdtZW50c0xvYWRlZCQuY2xvc2VkKSB7XG4gICAgICAgICAgICB0aGlzLmZyYWdtZW50c0xvYWRlZCQuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZyYWdtZW50c0xvYWRlZCQgPSBudWxsO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyRnJhZ21lbnQoKSB7XG4gICAgICAgIHRoaXMuZnJhZ21lbnRzKys7XG4gICAgfVxuXG4gICAgcmVzb2x2ZUZyYWdtZW50KCkge1xuICAgICAgICB0aGlzLmZyYWdtZW50cy0tO1xuICAgICAgICB0aGlzLmlzUmVhZHkoKTtcbiAgICB9XG5cbiAgICBpc1JlYWR5KCkge1xuICAgICAgICBpZiAodGhpcy5pc1ZpZXdJbml0aWFsaXplZCAmJiAhdGhpcy5mcmFnbWVudHMpIHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJGcmFnbWVudCA9IG5vb3A7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVGcmFnbWVudCA9IG5vb3A7XG4gICAgICAgICAgICB0aGlzLmZyYWdtZW50c0xvYWRlZCQuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==