@wavemaker/app-ng-runtime 12.0.0-next.141131 → 12.0.0-next.141138

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 (398) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +402 -440
  2. app-ng-runtime/build-task/esm2022/basic/default/anchor/anchor.build.mjs +2 -2
  3. app-ng-runtime/build-task/esm2022/basic/default/html/html.build.mjs +2 -2
  4. app-ng-runtime/build-task/esm2022/basic/default/icon/icon.build.mjs +2 -2
  5. app-ng-runtime/build-task/esm2022/basic/default/label/label.build.mjs +2 -2
  6. app-ng-runtime/build-task/esm2022/basic/default/picture/picture.build.mjs +2 -2
  7. app-ng-runtime/build-task/esm2022/basic/default/spinner/spinner.build.mjs +2 -2
  8. app-ng-runtime/build-task/esm2022/basic/progress/progress-circle/progress-circle.build.mjs +7 -2
  9. app-ng-runtime/build-task/esm2022/basic/rich-text-editor/rich-text-editor.build.mjs +2 -2
  10. app-ng-runtime/build-task/esm2022/containers/accordion/accordion-pane/accordion-pane.build.mjs +2 -2
  11. app-ng-runtime/build-task/esm2022/containers/accordion/accordion.build.mjs +3 -3
  12. app-ng-runtime/build-task/esm2022/containers/tile/tile.build.mjs +2 -2
  13. app-ng-runtime/build-task/esm2022/containers/wizard/wizard.build.mjs +2 -2
  14. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +3 -4
  15. app-ng-runtime/build-task/esm2022/device/barcode-scanner/barcode-scanner.build.mjs +2 -2
  16. app-ng-runtime/build-task/esm2022/device/camera/camera.build.mjs +2 -2
  17. app-ng-runtime/build-task/esm2022/dialogs/alert-dialog/alert-dialog.build.mjs +2 -2
  18. app-ng-runtime/build-task/esm2022/input/calendar/calendar.build.mjs +2 -2
  19. app-ng-runtime/build-task/esm2022/input/chips/chips.build.mjs +2 -2
  20. app-ng-runtime/build-task/esm2022/input/color-picker/color-picker.build.mjs +3 -3
  21. app-ng-runtime/build-task/esm2022/input/currency/currency.build.mjs +3 -3
  22. app-ng-runtime/build-task/esm2022/input/default/button/button.build.mjs +2 -2
  23. app-ng-runtime/build-task/esm2022/input/default/button-group/button-group.build.mjs +2 -2
  24. app-ng-runtime/build-task/esm2022/input/default/switch/switch.build.mjs +2 -2
  25. app-ng-runtime/build-task/esm2022/input/file-upload/file-upload.build.mjs +6 -2
  26. app-ng-runtime/build-task/esm2022/page/footer/footer.build.mjs +2 -2
  27. app-ng-runtime/build-task/esm2022/page/header/header.build.mjs +2 -2
  28. app-ng-runtime/build-task/esm2022/page/layout.build.mjs +2 -2
  29. app-ng-runtime/build-task/esm2022/page/left-panel/left-panel.build.mjs +2 -2
  30. app-ng-runtime/build-task/esm2022/page/page.build.mjs +2 -2
  31. app-ng-runtime/build-task/esm2022/page/right-panel/right-panel.build.mjs +2 -2
  32. app-ng-runtime/build-task/esm2022/page/top-nav/top-nav.build.mjs +2 -2
  33. app-ng-runtime/build-task/esm2022/public_api.mjs +1 -3
  34. app-ng-runtime/build-task/fesm2022/index.mjs +403 -443
  35. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  36. app-ng-runtime/build-task/public_api.d.ts +0 -2
  37. app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +1 -1
  38. app-ng-runtime/components/advanced/carousel/esm2022/carousel.animator.mjs +2 -2
  39. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +1 -1
  40. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  41. app-ng-runtime/components/base/bundles/index.umd.js +22 -69
  42. app-ng-runtime/components/base/components.module.d.ts +11 -12
  43. app-ng-runtime/components/base/esm2022/components.module.mjs +1 -5
  44. app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +3 -3
  45. app-ng-runtime/components/base/esm2022/public_api.mjs +1 -2
  46. app-ng-runtime/components/base/esm2022/utils/live-utils.mjs +8 -2
  47. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +15 -30
  48. app-ng-runtime/components/base/fesm2022/index.mjs +23 -69
  49. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  50. app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -1
  51. app-ng-runtime/components/base/public_api.d.ts +0 -1
  52. app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +5 -10
  53. app-ng-runtime/components/basic/default/anchor/anchor.component.d.ts +1 -0
  54. app-ng-runtime/components/basic/default/audio/audio.component.d.ts +3 -0
  55. app-ng-runtime/components/basic/default/bundles/index.umd.js +39 -19
  56. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.component.mjs +4 -4
  57. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.props.mjs +2 -1
  58. app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +14 -6
  59. app-ng-runtime/components/basic/default/esm2022/audio/audio.props.mjs +2 -1
  60. app-ng-runtime/components/basic/default/esm2022/html/html.props.mjs +2 -1
  61. app-ng-runtime/components/basic/default/esm2022/icon/icon.component.mjs +6 -7
  62. app-ng-runtime/components/basic/default/esm2022/icon/icon.props.mjs +2 -1
  63. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.component.mjs +3 -3
  64. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.props.mjs +3 -2
  65. app-ng-runtime/components/basic/default/esm2022/label/label.props.mjs +1 -1
  66. app-ng-runtime/components/basic/default/esm2022/picture/picture.directive.mjs +2 -2
  67. app-ng-runtime/components/basic/default/esm2022/picture/picture.props.mjs +3 -1
  68. app-ng-runtime/components/basic/default/esm2022/spinner/spinner.props.mjs +3 -2
  69. app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +8 -4
  70. app-ng-runtime/components/basic/default/esm2022/video/video.props.mjs +2 -1
  71. app-ng-runtime/components/basic/default/fesm2022/index.mjs +39 -19
  72. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  73. app-ng-runtime/components/basic/default/icon/icon.component.d.ts +1 -0
  74. app-ng-runtime/components/basic/default/iframe/iframe.component.d.ts +1 -0
  75. app-ng-runtime/components/basic/default/picture/picture.directive.d.ts +2 -1
  76. app-ng-runtime/components/basic/default/video/video.component.d.ts +2 -0
  77. app-ng-runtime/components/basic/progress/bundles/index.umd.js +17 -9
  78. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +9 -5
  79. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.props.mjs +2 -1
  80. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +8 -6
  81. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.props.mjs +2 -1
  82. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +17 -9
  83. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  84. app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +2 -0
  85. app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -1
  86. app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +2 -0
  87. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +2 -1
  88. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.props.mjs +2 -1
  89. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +2 -0
  90. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  91. app-ng-runtime/components/basic/search/bundles/index.umd.js +35 -40
  92. app-ng-runtime/components/basic/search/esm2022/search.component.mjs +37 -40
  93. app-ng-runtime/components/basic/search/esm2022/search.props.mjs +3 -5
  94. app-ng-runtime/components/basic/search/fesm2022/index.mjs +35 -40
  95. app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
  96. app-ng-runtime/components/basic/search/search.component.d.ts +4 -5
  97. app-ng-runtime/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +1 -0
  98. app-ng-runtime/components/containers/accordion/bundles/index.umd.js +15 -9
  99. app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +13 -10
  100. app-ng-runtime/components/containers/accordion/esm2022/accordion.directive.mjs +4 -1
  101. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +15 -9
  102. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  103. app-ng-runtime/components/containers/panel/bundles/index.umd.js +14 -14
  104. app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +15 -15
  105. app-ng-runtime/components/containers/panel/fesm2022/index.mjs +14 -14
  106. app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
  107. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +6 -14
  108. app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +7 -14
  109. app-ng-runtime/components/containers/tabs/esm2022/tabs.props.mjs +2 -3
  110. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +6 -14
  111. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  112. app-ng-runtime/components/containers/tabs/tabs.component.d.ts +0 -1
  113. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +23 -6
  114. app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +24 -7
  115. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +23 -6
  116. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  117. app-ng-runtime/components/containers/wizard/wizard.component.d.ts +1 -0
  118. app-ng-runtime/components/data/form/bundles/index.umd.js +4 -0
  119. app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +5 -3
  120. app-ng-runtime/components/data/form/fesm2022/index.mjs +4 -2
  121. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  122. app-ng-runtime/components/data/form/form-field/form-field.directive.d.ts +1 -0
  123. app-ng-runtime/components/data/list/bundles/index.umd.js +11 -11
  124. app-ng-runtime/components/data/list/esm2022/list.component.mjs +12 -12
  125. app-ng-runtime/components/data/list/fesm2022/index.mjs +11 -11
  126. app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
  127. app-ng-runtime/components/data/live-table/bundles/index.umd.js +2 -2
  128. app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +3 -3
  129. app-ng-runtime/components/data/live-table/fesm2022/index.mjs +2 -2
  130. app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
  131. app-ng-runtime/components/data/pagination/bundles/index.umd.js +2 -0
  132. app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +3 -1
  133. app-ng-runtime/components/data/pagination/fesm2022/index.mjs +2 -0
  134. app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
  135. app-ng-runtime/components/data/table/bundles/index.umd.js +44 -10
  136. app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +14 -5
  137. app-ng-runtime/components/data/table/esm2022/table.component.mjs +30 -7
  138. app-ng-runtime/components/data/table/esm2022/table.props.mjs +3 -1
  139. app-ng-runtime/components/data/table/fesm2022/index.mjs +45 -11
  140. app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
  141. app-ng-runtime/components/data/table/table.component.d.ts +8 -1
  142. app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +6 -4
  143. app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +7 -5
  144. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs +6 -4
  145. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  146. app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +8 -5
  147. app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +9 -6
  148. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs +8 -5
  149. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  150. app-ng-runtime/components/dialogs/default/base-dialog.d.ts +0 -2
  151. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +23 -17
  152. app-ng-runtime/components/dialogs/default/dialog-header/dialog-header.component.d.ts +2 -1
  153. app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +13 -1
  154. app-ng-runtime/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +2 -14
  155. app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +12 -6
  156. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +24 -18
  157. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  158. app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +7 -25
  159. app-ng-runtime/components/dialogs/design-dialog/dialog.component.d.ts +2 -3
  160. app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +8 -26
  161. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +7 -25
  162. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  163. app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +9 -5
  164. app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +10 -6
  165. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs +9 -5
  166. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  167. app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +9 -5
  168. app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +10 -6
  169. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs +9 -5
  170. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  171. app-ng-runtime/components/input/calendar/bundles/index.umd.js +2 -4
  172. app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +3 -5
  173. app-ng-runtime/components/input/calendar/fesm2022/index.mjs +2 -4
  174. app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
  175. app-ng-runtime/components/input/chips/bundles/index.umd.js +7 -3
  176. app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +7 -4
  177. app-ng-runtime/components/input/chips/esm2022/chips.props.mjs +2 -1
  178. app-ng-runtime/components/input/chips/fesm2022/index.mjs +7 -3
  179. app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
  180. app-ng-runtime/components/input/color-picker/bundles/index.umd.js +5 -3
  181. app-ng-runtime/components/input/color-picker/color-picker.component.d.ts +1 -0
  182. app-ng-runtime/components/input/color-picker/esm2022/color-picker.component.mjs +6 -5
  183. app-ng-runtime/components/input/color-picker/esm2022/color-picker.props.mjs +2 -1
  184. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs +5 -3
  185. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  186. app-ng-runtime/components/input/currency/bundles/index.umd.js +4 -3
  187. app-ng-runtime/components/input/currency/currency.component.d.ts +1 -0
  188. app-ng-runtime/components/input/currency/esm2022/currency.component.mjs +6 -6
  189. app-ng-runtime/components/input/currency/esm2022/currency.props.mjs +2 -1
  190. app-ng-runtime/components/input/currency/fesm2022/index.mjs +4 -3
  191. app-ng-runtime/components/input/currency/fesm2022/index.mjs.map +1 -1
  192. app-ng-runtime/components/input/default/bundles/index.umd.js +257 -197
  193. app-ng-runtime/components/input/default/button/button.component.d.ts +1 -0
  194. app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +1 -0
  195. app-ng-runtime/components/input/default/checkboxset/checkboxset.component.d.ts +0 -1
  196. app-ng-runtime/components/input/default/esm2022/button/button.component.mjs +1 -1
  197. app-ng-runtime/components/input/default/esm2022/button/button.props.mjs +2 -1
  198. app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +8 -7
  199. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +7 -7
  200. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.props.mjs +2 -1
  201. app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +25 -23
  202. app-ng-runtime/components/input/default/esm2022/number/number.component.mjs +5 -5
  203. app-ng-runtime/components/input/default/esm2022/number/number.props.mjs +3 -1
  204. app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +32 -30
  205. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +60 -30
  206. app-ng-runtime/components/input/default/esm2022/select/select.props.mjs +2 -1
  207. app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +39 -64
  208. app-ng-runtime/components/input/default/esm2022/switch/switch.props.mjs +2 -2
  209. app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +1 -4
  210. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +5 -5
  211. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.props.mjs +2 -1
  212. app-ng-runtime/components/input/default/esm2022/text/color/input-color.component.mjs +5 -5
  213. app-ng-runtime/components/input/default/esm2022/text/color/input-color.props.mjs +2 -1
  214. app-ng-runtime/components/input/default/esm2022/text/email/input-email.component.mjs +5 -5
  215. app-ng-runtime/components/input/default/esm2022/text/email/input-email.props.mjs +2 -1
  216. app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +51 -14
  217. app-ng-runtime/components/input/default/esm2022/text/number/input-number.component.mjs +5 -5
  218. app-ng-runtime/components/input/default/esm2022/text/number/input-number.props.mjs +2 -1
  219. app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +5 -5
  220. app-ng-runtime/components/input/default/esm2022/text/text/input-text.props.mjs +2 -1
  221. app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +9 -6
  222. app-ng-runtime/components/input/default/esm2022/textarea/textarea.props.mjs +2 -1
  223. app-ng-runtime/components/input/default/fesm2022/index.mjs +257 -197
  224. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  225. app-ng-runtime/components/input/default/number/number.component.d.ts +1 -0
  226. app-ng-runtime/components/input/default/radioset/radioset.component.d.ts +0 -1
  227. app-ng-runtime/components/input/default/select/select.component.d.ts +4 -4
  228. app-ng-runtime/components/input/default/switch/switch.component.d.ts +0 -2
  229. app-ng-runtime/components/input/default/text/calendar/input-calendar.component.d.ts +1 -0
  230. app-ng-runtime/components/input/default/text/color/input-color.component.d.ts +1 -0
  231. app-ng-runtime/components/input/default/text/email/input-email.component.d.ts +1 -0
  232. app-ng-runtime/components/input/default/text/locale/number-locale.d.ts +1 -0
  233. app-ng-runtime/components/input/default/text/number/input-number.component.d.ts +1 -0
  234. app-ng-runtime/components/input/default/text/text/input-text.component.d.ts +1 -0
  235. app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +4 -2
  236. app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +2 -1
  237. app-ng-runtime/components/input/epoch/bundles/index.umd.js +31 -21
  238. app-ng-runtime/components/input/epoch/date/date.component.d.ts +1 -0
  239. app-ng-runtime/components/input/epoch/date-time/date-time.component.d.ts +2 -1
  240. app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +10 -6
  241. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +8 -8
  242. app-ng-runtime/components/input/epoch/esm2022/date/date.props.mjs +2 -1
  243. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +12 -9
  244. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.props.mjs +2 -1
  245. app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +7 -7
  246. app-ng-runtime/components/input/epoch/esm2022/time/time.props.mjs +2 -1
  247. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +28 -18
  248. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  249. app-ng-runtime/components/input/epoch/time/time.component.d.ts +1 -0
  250. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +241 -112
  251. app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +238 -115
  252. app-ng-runtime/components/input/file-upload/esm2022/file-upload.props.mjs +7 -1
  253. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +242 -113
  254. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  255. app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +23 -12
  256. app-ng-runtime/components/input/rating/bundles/index.umd.js +35 -26
  257. app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +37 -26
  258. app-ng-runtime/components/input/rating/esm2022/rating.props.mjs +1 -3
  259. app-ng-runtime/components/input/rating/fesm2022/index.mjs +36 -27
  260. app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
  261. app-ng-runtime/components/input/rating/rating.component.d.ts +1 -3
  262. app-ng-runtime/components/input/slider/bundles/index.umd.js +5 -6
  263. app-ng-runtime/components/input/slider/esm2022/slider.component.mjs +6 -8
  264. app-ng-runtime/components/input/slider/esm2022/slider.props.mjs +2 -1
  265. app-ng-runtime/components/input/slider/fesm2022/index.mjs +5 -6
  266. app-ng-runtime/components/input/slider/fesm2022/index.mjs.map +1 -1
  267. app-ng-runtime/components/input/slider/slider.component.d.ts +1 -0
  268. app-ng-runtime/components/navigation/breadcrumb/bundles/index.umd.js +6 -6
  269. app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +7 -7
  270. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +6 -6
  271. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  272. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +10 -8
  273. app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +9 -8
  274. app-ng-runtime/components/navigation/menu/esm2022/menu.props.mjs +2 -1
  275. app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +2 -2
  276. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +10 -8
  277. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  278. app-ng-runtime/components/navigation/menu/menu.component.d.ts +1 -0
  279. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +121 -13
  280. app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +122 -15
  281. app-ng-runtime/components/navigation/popover/esm2022/popover.props.mjs +2 -1
  282. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +121 -13
  283. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  284. app-ng-runtime/components/navigation/popover/popover.component.d.ts +15 -3
  285. app-ng-runtime/components/page/default/bundles/index.umd.js +2 -1
  286. app-ng-runtime/components/page/default/esm2022/page.props.mjs +4 -3
  287. app-ng-runtime/components/page/default/fesm2022/index.mjs +2 -1
  288. app-ng-runtime/components/page/default/fesm2022/index.mjs.map +1 -1
  289. app-ng-runtime/components/page/footer/bundles/index.umd.js +2 -1
  290. app-ng-runtime/components/page/footer/esm2022/footer.props.mjs +3 -2
  291. app-ng-runtime/components/page/footer/fesm2022/index.mjs +2 -1
  292. app-ng-runtime/components/page/footer/fesm2022/index.mjs.map +1 -1
  293. app-ng-runtime/components/page/header/bundles/index.umd.js +2 -1
  294. app-ng-runtime/components/page/header/esm2022/header.props.mjs +3 -2
  295. app-ng-runtime/components/page/header/fesm2022/index.mjs +2 -1
  296. app-ng-runtime/components/page/header/fesm2022/index.mjs.map +1 -1
  297. app-ng-runtime/components/page/left-panel/bundles/index.umd.js +4 -7
  298. app-ng-runtime/components/page/left-panel/esm2022/left-panel.directive.mjs +5 -9
  299. app-ng-runtime/components/page/left-panel/esm2022/left-panel.props.mjs +3 -2
  300. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +6 -9
  301. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  302. app-ng-runtime/components/page/left-panel/left-panel.directive.d.ts +2 -2
  303. app-ng-runtime/components/page/right-panel/bundles/index.umd.js +4 -7
  304. app-ng-runtime/components/page/right-panel/esm2022/right-panel.directive.mjs +5 -9
  305. app-ng-runtime/components/page/right-panel/esm2022/right-panel.props.mjs +3 -2
  306. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +6 -9
  307. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  308. app-ng-runtime/components/page/right-panel/right-panel.directive.d.ts +2 -2
  309. app-ng-runtime/components/page/top-nav/bundles/index.umd.js +2 -1
  310. app-ng-runtime/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
  311. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs +2 -1
  312. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  313. app-ng-runtime/core/bundles/index.umd.js +11 -31
  314. app-ng-runtime/core/enums/enums.d.ts +1 -2
  315. app-ng-runtime/core/esm2022/enums/enums.mjs +1 -2
  316. app-ng-runtime/core/esm2022/public_api.mjs +2 -2
  317. app-ng-runtime/core/esm2022/types/types.mjs +1 -4
  318. app-ng-runtime/core/esm2022/utils/build-utils.mjs +7 -12
  319. app-ng-runtime/core/esm2022/utils/utils.mjs +4 -12
  320. app-ng-runtime/core/fesm2022/index.mjs +11 -29
  321. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  322. app-ng-runtime/core/public_api.d.ts +1 -1
  323. app-ng-runtime/core/types/types.d.ts +1 -5
  324. app-ng-runtime/core/utils/utils.d.ts +1 -2
  325. app-ng-runtime/mobile/components/device/barcode-scanner/bundles/index.umd.js +2 -1
  326. app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.props.mjs +3 -2
  327. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs +2 -1
  328. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
  329. app-ng-runtime/mobile/components/device/camera/bundles/index.umd.js +2 -1
  330. app-ng-runtime/mobile/components/device/camera/esm2022/camera.props.mjs +3 -2
  331. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs +2 -1
  332. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
  333. app-ng-runtime/mobile/core/bundles/index.umd.js +18 -2
  334. app-ng-runtime/mobile/core/esm2022/native.xhr.mjs +19 -3
  335. app-ng-runtime/mobile/core/fesm2022/index.mjs +18 -2
  336. app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
  337. app-ng-runtime/package.json +1 -1
  338. app-ng-runtime/runtime/base/bundles/index.umd.js +11 -300
  339. app-ng-runtime/runtime/base/components/app-component/app.component.d.ts +2 -3
  340. app-ng-runtime/runtime/base/esm2022/components/app-component/app.component.mjs +5 -5
  341. app-ng-runtime/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +5 -4
  342. app-ng-runtime/runtime/base/esm2022/public_api.mjs +1 -2
  343. app-ng-runtime/runtime/base/esm2022/runtime-base.module.mjs +1 -6
  344. app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +2 -2
  345. app-ng-runtime/runtime/base/esm2022/types/types.mjs +1 -4
  346. app-ng-runtime/runtime/base/fesm2022/index.mjs +10 -298
  347. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  348. app-ng-runtime/runtime/base/guards/can-deactivate-page.guard.d.ts +2 -1
  349. app-ng-runtime/runtime/base/public_api.d.ts +0 -1
  350. app-ng-runtime/runtime/base/runtime-base.module.d.ts +8 -9
  351. app-ng-runtime/runtime/base/types/types.d.ts +1 -5
  352. app-ng-runtime/runtime/dynamic/bundles/index.umd.js +13 -49
  353. app-ng-runtime/runtime/dynamic/esm2022/app/app.module.mjs +3 -8
  354. app-ng-runtime/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +7 -23
  355. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +11 -50
  356. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  357. app-ng-runtime/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -1
  358. app-ng-runtime/scripts/datatable/datatable.js +38 -34
  359. app-ng-runtime/scripts/summernote/dist/summernote-lite.min.js +2 -3
  360. app-ng-runtime/transpiler/bundles/index.umd.js +0 -5
  361. app-ng-runtime/transpiler/esm2022/build.mjs +1 -4
  362. app-ng-runtime/transpiler/esm2022/imports.mjs +1 -3
  363. app-ng-runtime/transpiler/fesm2022/index.mjs +0 -5
  364. app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
  365. app-ng-runtime/variables/bundles/index.umd.js +34 -16
  366. app-ng-runtime/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +35 -17
  367. app-ng-runtime/variables/fesm2022/index.mjs +34 -16
  368. app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
  369. app-ng-runtime/variables/manager/variable/web-socket-variable.manager.d.ts +0 -4
  370. app-ng-runtime/build-task/advanced/custom-widget-container/custom-widget-container.build.d.ts +0 -2
  371. app-ng-runtime/build-task/advanced/custom-widget-wrapper/custom-widget-wrapper.build.d.ts +0 -2
  372. app-ng-runtime/build-task/esm2022/advanced/custom-widget-container/custom-widget-container.build.mjs +0 -15
  373. app-ng-runtime/build-task/esm2022/advanced/custom-widget-wrapper/custom-widget-wrapper.build.mjs +0 -26
  374. app-ng-runtime/components/advanced/custom/.npmignore +0 -2
  375. app-ng-runtime/components/advanced/custom/bundles/index.umd.js +0 -232
  376. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +0 -19
  377. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget.props.d.ts +0 -2
  378. app-ng-runtime/components/advanced/custom/custom-widget-prop.d.ts +0 -1
  379. app-ng-runtime/components/advanced/custom/custom-widget.directive.d.ts +0 -19
  380. app-ng-runtime/components/advanced/custom/custom-widget.module.d.ts +0 -10
  381. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +0 -102
  382. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget.props.mjs +0 -12
  383. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-prop.mjs +0 -8
  384. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.directive.mjs +0 -68
  385. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.module.mjs +0 -32
  386. app-ng-runtime/components/advanced/custom/esm2022/index.mjs +0 -5
  387. app-ng-runtime/components/advanced/custom/esm2022/public_api.mjs +0 -4
  388. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs +0 -215
  389. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs.map +0 -1
  390. app-ng-runtime/components/advanced/custom/index.d.ts +0 -5
  391. app-ng-runtime/components/advanced/custom/package.json +0 -23
  392. app-ng-runtime/components/advanced/custom/public_api.d.ts +0 -3
  393. app-ng-runtime/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +0 -39
  394. app-ng-runtime/components/base/widgets/common/base/custom-widget-container.directive.d.ts +0 -14
  395. app-ng-runtime/runtime/base/components/base-custom-widget.component.d.ts +0 -73
  396. app-ng-runtime/runtime/base/esm2022/components/base-custom-widget.component.mjs +0 -294
  397. app-ng-runtime/runtime/dynamic/app/services/customwidget-config-provider.service.d.ts +0 -8
  398. app-ng-runtime/runtime/dynamic/esm2022/app/services/customwidget-config-provider.service.mjs +0 -22
@@ -2,10 +2,9 @@ import { __decorate, __metadata, __param } from "tslib";
2
2
  import { Compiler, Component, CUSTOM_ELEMENTS_SCHEMA, Inject, Injectable, Injector, NgModule, NO_ERRORS_SCHEMA, ViewEncapsulation } from '@angular/core';
3
3
  import { App, getValidJSON, UserDefinedExecutionContext } from '@wm/core';
4
4
  import { transpile, scopeComponentStyles } from '@wm/transpiler';
5
- import { AppManagerService, BasePageComponent, BasePartialComponent, BaseCustomWidgetComponent, BasePrefabComponent, ComponentRefProvider, ComponentType, RuntimeBaseModule, getPrefabMinJsonUrl, getPrefabPartialJsonUrl } from '@wm/runtime/base';
5
+ import { AppManagerService, BasePageComponent, BasePartialComponent, BasePrefabComponent, ComponentRefProvider, ComponentType, RuntimeBaseModule, getPrefabMinJsonUrl, getPrefabPartialJsonUrl } from '@wm/runtime/base';
6
6
  import { AppResourceManagerService } from './app-resource-manager.service';
7
7
  import { isString, isUndefined } from "lodash-es";
8
- import * as customWidgets from '@wavemaker/custom-widgets-m3';
9
8
  import * as i0 from "@angular/core";
10
9
  import * as i1 from "./app-resource-manager.service";
11
10
  import * as i2 from "@wm/core";
@@ -16,7 +15,6 @@ const componentFactoryRefCache = new Map();
16
15
  componentFactoryRefCache.set(ComponentType.PAGE, new Map());
17
16
  componentFactoryRefCache.set(ComponentType.PARTIAL, new Map());
18
17
  componentFactoryRefCache.set(ComponentType.PREFAB, new Map());
19
- componentFactoryRefCache.set(ComponentType.WIDGET, new Map());
20
18
  const _decodeURIComponent = (str) => decodeURIComponent(str.replace(/\+/g, ' '));
21
19
  const getFragmentUrl = (fragmentName, type, options) => {
22
20
  if (type === ComponentType.PAGE || type === ComponentType.PARTIAL) {
@@ -25,9 +23,6 @@ const getFragmentUrl = (fragmentName, type, options) => {
25
23
  else if (type === ComponentType.PREFAB) {
26
24
  return getPrefabMinJsonUrl(fragmentName);
27
25
  }
28
- else if (type === ComponentType.WIDGET) {
29
- return `./custom-widgets/${fragmentName}/page.min.json`;
30
- }
31
26
  };
32
27
  const scriptCache = new Map();
33
28
  const execScript = (script, identifier, ctx, instance, app, utils) => {
@@ -77,11 +72,6 @@ const getDynamicComponent = (componentName, type, template, css, script, variabl
77
72
  selector = `app-prefab-${componentName}`;
78
73
  context = 'Prefab';
79
74
  break;
80
- case ComponentType.WIDGET:
81
- BaseClass = BaseCustomWidgetComponent;
82
- selector = `app-custom-${componentName}`;
83
- context = 'Widget';
84
- break;
85
75
  }
86
76
  let DynamicComponent = class DynamicComponent extends BaseClass {
87
77
  constructor(injector) {
@@ -99,9 +89,6 @@ const getDynamicComponent = (componentName, type, template, css, script, variabl
99
89
  case ComponentType.PREFAB:
100
90
  this.prefabName = componentName;
101
91
  break;
102
- case ComponentType.WIDGET:
103
- this.customWidgetName = componentName;
104
- break;
105
92
  }
106
93
  super.init();
107
94
  }
@@ -137,18 +124,17 @@ export class ComponentRefProviderService extends ComponentRefProvider {
137
124
  const url = getFragmentUrl(componentName, componentType, options);
138
125
  const resource = fragmentCache.get(url);
139
126
  if (resource) {
140
- return resource;
127
+ return Promise.resolve(resource);
141
128
  }
142
- const promise = (((componentType === ComponentType.WIDGET && !customWidgets[componentName]) || componentType !== ComponentType.WIDGET) ? this.resouceMngr.get(url, true) : Promise.resolve(customWidgets[componentName]))
143
- .then(({ markup, script, styles, variables, config }) => {
129
+ return this.resouceMngr.get(url, true)
130
+ .then(({ markup, script, styles, variables }) => {
144
131
  const response = {
145
132
  markup: transpile(_decodeURIComponent(markup)).markup,
146
133
  script: _decodeURIComponent(script),
147
134
  styles: scopeComponentStyles(componentName, componentType, _decodeURIComponent(styles)),
148
- variables: getValidJSON(_decodeURIComponent(variables)),
149
- ...(config ? { config: getValidJSON(_decodeURIComponent(config)) } : {})
135
+ variables: getValidJSON(_decodeURIComponent(variables))
150
136
  };
151
- fragmentCache.set(url, Promise.resolve(response));
137
+ fragmentCache.set(url, response);
152
138
  return response;
153
139
  }, e => {
154
140
  const status = e.details.status;
@@ -158,8 +144,6 @@ export class ComponentRefProviderService extends ComponentRefProvider {
158
144
  };
159
145
  return Promise.reject(errorMsgMap[status]);
160
146
  });
161
- fragmentCache.set(url, promise);
162
- return promise;
163
147
  }
164
148
  constructor(resouceMngr, app, appManager, compiler) {
165
149
  super();
@@ -214,4 +198,4 @@ export class ComponentRefProviderService extends ComponentRefProvider {
214
198
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ComponentRefProviderService, [{
215
199
  type: Injectable
216
200
  }], () => [{ type: i1.AppResourceManagerService }, { type: i2.App }, { type: i3.AppManagerService }, { type: i0.Compiler }], null); })();
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXJlZi1wcm92aWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcnVudGltZS1keW5hbWljL3NyYy9hcHAvc2VydmljZXMvY29tcG9uZW50LXJlZi1wcm92aWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsUUFBUSxFQUNSLFNBQVMsRUFDVCxzQkFBc0IsRUFBYyxNQUFNLEVBQzFDLFVBQVUsRUFDVixRQUFRLEVBQ1IsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQix5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQix1QkFBdUIsRUFDMUIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUMsUUFBUSxFQUFFLFdBQVcsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUNoRCxPQUFPLEtBQUssYUFBYSxNQUFNLDhCQUE4QixDQUFDOzs7OztBQVk5RCxNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0FBRXJDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUM7QUFFNUUsd0JBQXdCLENBQUMsR0FBRyxDQUFDLGFB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SCx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLG1CQUFtQixDQUFDLENBQUM7WUFFM0YsT0FBTyxtQkFBbUIsQ0FBQztRQUMvQixDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNQLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ04sTUFBTSxHQUFHLEdBQUcsMEJBQTBCLENBQUM7Z0JBQ3ZDLHVDQUF1QztnQkFDdkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUNyQixRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLDJDQUEyQyxFQUN2RSxPQUFPLENBQ1YsQ0FBQztZQUNOLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCx1QkFBdUI7SUFDaEIsNkJBQTZCO1FBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDOUIsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNuQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzRGQTFGUSwyQkFBMkI7dUVBQTNCLDJCQUEyQixXQUEzQiwyQkFBMkI7O2lGQUEzQiwyQkFBMkI7Y0FEdkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcGlsZXIsXG4gICAgQ29tcG9uZW50LFxuICAgIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIGZvcndhcmRSZWYsIEluamVjdCxcbiAgICBJbmplY3RhYmxlLFxuICAgIEluamVjdG9yLFxuICAgIE5nTW9kdWxlLFxuICAgIE5PX0VSUk9SU19TQ0hFTUEsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFwcCwgZ2V0VmFsaWRKU09OLCBVc2VyRGVmaW5lZEV4ZWN1dGlvbkNvbnRleHQgfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyB0cmFuc3BpbGUsIHNjb3BlQ29tcG9uZW50U3R5bGVzIH0gZnJvbSAnQHdtL3RyYW5zcGlsZXInO1xuaW1wb3J0IHtcbiAgICBBcHBNYW5hZ2VyU2VydmljZSxcbiAgICBCYXNlUGFnZUNvbXBvbmVudCxcbiAgICBCYXNlUGFydGlhbENvbXBvbmVudCxcbiAgICBCYXNlQ3VzdG9tV2lkZ2V0Q29tcG9uZW50LFxuICAgIEJhc2VQcmVmYWJDb21wb25lbnQsXG4gICAgQ29tcG9uZW50UmVmUHJvdmlkZXIsXG4gICAgQ29tcG9uZW50VHlwZSxcbiAgICBSdW50aW1lQmFzZU1vZHVsZSxcbiAgICBnZXRQcmVmYWJNaW5Kc29uVXJsLFxuICAgIGdldFByZWZhYlBhcnRpYWxKc29uVXJsXG59IGZyb20gJ0B3bS9ydW50aW1lL2Jhc2UnO1xuXG5pbXBvcnQgeyBBcHBSZXNvdXJjZU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9hcHAtcmVzb3VyY2UtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7aXNTdHJpbmcsIGlzVW5kZWZpbmVkfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgKiBhcyBjdXN0b21XaWRnZXRzIGZyb20gJ0B3YXZlbWFrZXIvY3VzdG9tLXdpZGdldHMtbTMnO1xuXG5pbnRlcmZhY2UgSVBhZ2VNaW5KU09OIHtcbiAgICBtYXJrdXA6IHN0cmluZztcbiAgICBzY3JpcHQ6IHN0cmluZztcbiAgICBzdHlsZXM6IHN0cmluZztcbiAgICB2YXJpYWJsZXM6IHN0cmluZztcbiAgICBjb25maWc/OiBzdHJpbmc7XG59XG5cbmRlY2xhcmUgY29uc3Qgd2luZG93OiBhbnk7XG5cbmNvbnN0IGZyYWdtZW50Q2FjaGUgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xuXG53aW5kb3cucmVzb3VyY2VDYWNoZSA9IGZyYWdtZW50Q2FjaGU7XG5cbmNvbnN0IGNvbXBvbmVudEZhY3RvcnlSZWZDYWNoZSA9IG5ldyBNYXA8Q29tcG9uZW50VHlwZSwgTWFwPHN0cmluZywgYW55Pj4oKTtcblxuY29tcG9uZW50RmFjdG9yeVJlZkNhY2hlLnNldChDb21wb25lbnRUeXBlLlBBR0UsIG5ldyBNYXA8c3RyaW5nLCBhbnk+KCkpO1xuY29tcG9uZW50RmFjdG9yeVJlZkNhY2hlLnNldChDb21wb25lbnRUeXBlLlBBUlRJQUwsIG5ldyBNYXA8c3RyaW5nLCBhbnk+KCkpO1xuY29tcG9uZW50RmFjdG9yeVJlZkNhY2hlLnNldChDb21wb25lbnRUeXBlLlBSRUZBQiwgbmV3IE1hcDxzdHJpbmcsIGFueT4oKSk7XG5jb21wb25lbnRGYWN0b3J5UmVmQ2FjaGUuc2V0KENvbXBvbmVudFR5cGUuV0lER0VULCBuZXcgTWFwPHN0cmluZywgYW55PigpKTtcblxuY29uc3QgX2RlY29kZVVSSUNvbXBvbmVudCA9IChzdHI6IHN0cmluZykgPT4gZGVjb2RlVVJJQ29tcG9uZW50KHN0ci5yZXBsYWNlKC9cXCsvZywgJyAnKSk7XG5cbmNvbnN0IGdldEZyYWdtZW50VXJsID0gKGZyYWdtZW50TmFtZTogc3RyaW5nLCB0eXBlOiBDb21wb25lbnRUeXBlLCBvcHRpb25zPykgPT4ge1xuICAgIGlmICh0eXBlID09PSBDb21wb25lbnRUeXBlLlBBR0UgfHwgdHlwZSA9PT0gQ29tcG9uZW50VHlwZS5QQVJUSUFMKSB7XG4gICAgICAgIHJldHVybiBvcHRpb25zICYmIG9wdGlvbnMucHJlZmFiID8gZ2V0UHJlZmFiUGFydGlhbEpzb25Vcmwob3B0aW9ucy5wcmVmYWIsIGZyYWdtZW50TmFtZSkgOiBgLi9wYWdlcy8ke2ZyYWdtZW50TmFtZX0vcGFnZS5taW4uanNvbmA7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSBDb21wb25lbnRUeXBlLlBSRUZBQikge1xuICAgICAgICByZXR1cm4gZ2V0UHJlZmFiTWluSnNvblVybChmcmFnbWVudE5hbWUpO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gQ29tcG9uZW50VHlwZS5XSURHRVQpe1xuICAgICAgICByZXR1cm4gYC4vY3VzdG9tLXdpZGdldHMvJHtmcmFnbWVudE5hbWV9L3BhZ2UubWluLmpzb25gICAgIFxuICAgIH1cbn07XG5cbmNvbnN0IHNjcmlwdENhY2hlID0gbmV3IE1hcDxzdHJpbmcsIEZ1bmN0aW9uPigpO1xuY29uc3QgZXhlY1NjcmlwdCA9IChcbiAgICBzY3JpcHQ6IHN0cmluZyxcbiAgICBpZGVudGlmaWVyOiBzdHJpbmcsXG4gICAgY3R4OiBzdHJpbmcsXG4gICAgaW5zdGFuY2U6IGFueSxcbiAgICBhcHA6IGFueSxcbiAgICB1dGlsczogYW55XG4pID0+IHtcbiAgICBsZXQgZm4gPSBzY3JpcHRDYWNoZS5nZXQoaWRlbnRpZmllcik7XG4gICAgLy8gRml4IGZvciBbV01TLTIxMTk2XTogSW5jb3JyZWN0IHNjcmlwdCBpcyBiZWluZyBhc3NpZ25lZCwgIHdoZW4gMiBwcmVmYWJzIGhhdmUgc2FtZSBwYXJ0aWFsIG5hbWUgKGkuZS4gc2FtZSBpZGVudGlmaWVyKS5cbiAgICBpZiAoKGN0eCA9PT0gJ1BhcnRpYWwnICYmICFpc1VuZGVmaW5lZChpbnN0YW5jZS5QcmVmYWIpKSB8fCAhZm4pIHtcbiAgICAgICAgZm4gPSBuZXcgRnVuY3Rpb24oY3R4LCAnQXBwJywgJ1V0aWxzJywgc2NyaXB0KTtcbiAgICAgICAgc2NyaXB0Q2FjaGUuc2V0KGlkZW50aWZpZXIsIGZuKTtcbiAgICB9XG4gICAgZm4oaW5zdGFuY2UsIGFwcCwgdXRpbHMpO1xufTtcblxuY2xhc3MgQmFzZUR5bmFtaWNDb21wb25lbnQge1xuICAgIGluaXQoKSB7fVxufVxuXG5jb25zdCBnZXREeW5hbWljTW9kdWxlID0gKGNvbXBvbmVudFJlZjogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiBOZ01vZHVsZSh7XG4gICAgICAgICAgICBkZWNsYXJhdGlvbnM6IFtjb21wb25lbnRSZWZdLFxuICAgICAgICAgICAgaW1wb3J0czogW1xuICAgICAgICAgICAgICAgIFJ1bnRpbWVCYXNlTW9kdWxlLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBOT19FUlJPUlNfU0NIRU1BXVxuICAgIH0pKGNsYXNzIER5bmFtaWNNb2R1bGUge30pO1xufTtcblxuY29uc3QgZ2V0RHluYW1pY0NvbXBvbmVudCA9IChcbiAgICBjb21wb25lbnROYW1lLFxuICAgIHR5cGU6IENvbXBvbmVudFR5cGUsXG4gICAgdGVtcGxhdGU6IHN0cmluZyxcbiAgICBjc3M6IHN0cmluZyxcbiAgICBzY3JpcHQ6IGFueSxcbiAgICB2YXJpYWJsZXM6IHN0cmluZyxcbikgPT4ge1xuXG4gICAgY29uc3QgY29tcG9uZW50RGVmID0ge1xuICAgICAgICB0ZW1wbGF0ZSxcbiAgICAgICAgc3R5bGVzOiBbY3NzXSxcbiAgICAgICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxuICAgIH07XG5cbiAgICBsZXQgQmFzZUNsYXNzOiBhbnkgPSBCYXNlRHluYW1pY0NvbXBvbmVudDtcbiAgICBsZXQgc2VsZWN0b3IgPSAnJztcbiAgICBsZXQgY29udGV4dCA9ICcnO1xuXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgQ29tcG9uZW50VHlwZS5QQUdFOlxuICAgICAgICAgICAgQmFzZUNsYXNzID0gQmFzZVBhZ2VDb21wb25lbnQ7XG4gICAgICAgICAgICBzZWxlY3RvciA9IGBhcHAtcGFnZS0ke2NvbXBvbmVudE5hbWV9YDtcbiAgICAgICAgICAgIGNvbnRleHQgPSAnUGFnZSc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBDb21wb25lbnRUeXBlLlBBUlRJQUw6XG4gICAgICAgICAgICBCYXNlQ2xhc3MgPSBCYXNlUGFydGlhbENvbXBvbmVudDtcbiAgICAgICAgICAgIHNlbGVjdG9yID0gYGFwcC1wYXJ0aWFsLSR7Y29tcG9uZW50TmFtZX1gO1xuICAgICAgICAgICAgY29udGV4dCA9ICdQYXJ0aWFsJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIENvbXBvbmVudFR5cGUuUFJFRkFCOlxuICAgICAgICAgICAgQmFzZUNsYXNzID0gQmFzZVByZWZhYkNvbXBvbmVudDtcbiAgICAgICAgICAgIHNlbGVjdG9yID0gYGFwcC1wcmVmYWItJHtjb21wb25lbnROYW1lfWA7XG4gICAgICAgICAgICBjb250ZXh0ID0gJ1ByZWZhYic7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBDb21wb25lbnRUeXBlLldJREdFVDpcbiAgICAgICAgICAgIEJhc2VDbGFzcyA9IEJhc2VDdXN0b21XaWRnZXRDb21wb25lbnQ7XG4gICAgICAgICAgICBzZWxlY3RvciA9IGBhcHAtY3VzdG9tLSR7Y29tcG9uZW50TmFtZX1gO1xuICAgICAgICAgICAgY29udGV4dCA9ICdXaWRnZXQnO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY2xhc3MgRHluYW1pY0NvbXBvbmVudCBleHRlbmRzIEJhc2VDbGFzcyB7XG4gICAgICAgIGlzRHluYW1pY0NvbXBvbmVudDogYm9vbGVhbiA9IHRydWU7XG4gICAgICAgIHBhZ2VOYW1lO1xuICAgICAgICBwYXJ0aWFsTmFtZTtcbiAgICAgICAgcHJlZmFiTmFtZTtcbiAgICAgICAgY3VzdG9tV2lkZ2V0TmFtZTtcbiAgICAgICAgY29uc3RydWN0b3IoQEluamVjdChJbmplY3RvcikgcHVibGljIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgICAgIHRoaXMuaW5qZWN0b3IgPSBpbmplY3RvcjtcbiAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgQ29tcG9uZW50VHlwZS5QQUdFOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhZ2VOYW1lID0gY29tcG9uZW50TmFtZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBDb21wb25lbnRUeXBlLlBBUlRJQUw6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFydGlhbE5hbWUgPSBjb21wb25lbnROYW1lO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIENvbXBvbmVudFR5cGUuUFJFRkFCOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByZWZhYk5hbWUgPSBjb21wb25lbnROYW1lO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIENvbXBvbmVudFR5cGUuV0lER0VUOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbVdpZGdldE5hbWUgPSBjb21wb25lbnROYW1lO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3VwZXIuaW5pdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZhbFVzZXJTY3JpcHQoaW5zdGFuY2U6IGFueSwgYXBwQ29udGV4dDogYW55LCB1dGlsczogYW55KSB7XG4gICAgICAgICAgICBleGVjU2NyaXB0KHNjcmlwdCwgc2VsZWN0b3IsIGNvbnRleHQsIGluc3RhbmNlLCBhcHBDb250ZXh0LCB1dGlscyk7XG4gICAgICAgIH1cblxuICAgICAgICBnZXRWYXJpYWJsZXMoKSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh2YXJpYWJsZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaW4gcHJldmlldyBtb2RlLCB0aGVyZSB3aWxsIGJlIG5vIGZ1bmN0aW9uIHJlZ2lzdGVyZWQuIGZ1bmN0aW9ucyB3aWxsIGJlIGdlbmVyYXRlZCBkeW5hbWljYWxseSB0aHJvdWdoICRwYXJzZUV2ZW50IGFuZCAkcGFyc2VFeHByXG4gICAgICAgIGdldEV4cHJlc3Npb25zKCkge1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY29tcG9uZW50ID0gQ29tcG9uZW50KHtcbiAgICAgICAgLi4uY29tcG9uZW50RGVmLFxuICAgICAgICBzZWxlY3RvcixcbiAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogVXNlckRlZmluZWRFeGVjdXRpb25Db250ZXh0LFxuICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBEeW5hbWljQ29tcG9uZW50XG4gICAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICB9KShEeW5hbWljQ29tcG9uZW50KVxuICAgIHJldHVybiBjb21wb25lbnQ7XG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50UmVmUHJvdmlkZXJTZXJ2aWNlIGV4dGVuZHMgQ29tcG9uZW50UmVmUHJvdmlkZXIge1xuXG4gICAgcHJpdmF0ZSBsb2FkUmVzb3VyY2VzT2ZGcmFnbWVudChjb21wb25lbnROYW1lLCBjb21wb25lbnRUeXBlLCBvcHRpb25zPyk6IFByb21pc2U8SVBhZ2VNaW5KU09OPiB7XG4gICAgICAgIGNvbnN0IHVybCA9IGdldEZyYWdtZW50VXJsKGNvbXBvbmVudE5hbWUsIGNvbXBvbmVudFR5cGUsIG9wdGlvbnMpO1xuXG4gICAgICAgIGNvbnN0IHJlc291cmNlID0gZnJhZ21lbnRDYWNoZS5nZXQodXJsKTtcblxuICAgICAgICBpZiAocmVzb3VyY2UpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNvdXJjZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcm9taXNlID0gKCgoY29tcG9uZW50VHlwZSA9PT0gQ29tcG9uZW50VHlwZS5XSURHRVQgJiYgIWN1c3RvbVdpZGdldHNbY29tcG9uZW50TmFtZV0pIHx8IGNvbXBvbmVudFR5cGUgIT09IENvbXBvbmVudFR5cGUuV0lER0VUKSAgPyB0aGlzLnJlc291Y2VNbmdyLmdldCh1cmwsIHRydWUpIDogUHJvbWlzZS5yZXNvbHZlKGN1c3RvbVdpZGdldHNbY29tcG9uZW50TmFtZV0pKVxuICAgICAgICAgICAgLnRoZW4oKHttYXJrdXAsIHNjcmlwdCwgc3R5bGVzLCB2YXJpYWJsZXMsIGNvbmZpZ306IElQYWdlTWluSlNPTikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJrdXA6IHRyYW5zcGlsZShfZGVjb2RlVVJJQ29tcG9uZW50KG1hcmt1cCkpLm1hcmt1cCxcbiAgICAgICAgICAgICAgICAgICAgc2NyaXB0OiBfZGVjb2RlVVJJQ29tcG9uZW50KHNjcmlwdCksXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlczogc2NvcGVDb21wb25lbnRTdHlsZXMoY29tcG9uZW50TmFtZSwgY29tcG9uZW50VHlwZSwgX2RlY29kZVVSSUNvbXBvbmVudChzdHlsZXMpKSxcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzOiBnZXRWYWxpZEpTT04oX2RlY29kZVVSSUNvbXBvbmVudCh2YXJpYWJsZXMpKSxcbiAgICAgICAgICAgICAgICAgICAgLi4uKGNvbmZpZz8ge2NvbmZpZyA6IGdldFZhbGlkSlNPTihfZGVjb2RlVVJJQ29tcG9uZW50KGNvbmZpZykpfSA6IHt9KVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZnJhZ21lbnRDYWNoZS5zZXQodXJsLCBQcm9taXNlLnJlc29sdmUocmVzcG9uc2UpKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0sIGUgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IGUuZGV0YWlscy5zdGF0dXM7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JNc2dNYXAgPSB7XG4gICAgICAgICAgICAgICAgICAgIDQwNCA6IHRoaXMuYXBwLmFwcExvY2FsZS5NRVNTQUdFX1BBR0VfTk9UX0ZPVU5EIHx8ICdUaGUgcGFnZSB5b3UgYXJlIHRyeWluZyB0byByZWFjaCBpcyBub3QgYXZhaWxhYmxlJyxcbiAgICAgICAgICAgICAgICAgICAgNDAzIDogdGhpcy5hcHAuYXBwTG9jYWxlLkxBQkVMX0FDQ0VTU19ERU5JRUQgfHwgJ0FjY2VzcyBEZW5pZWQnXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3JNc2dNYXBbc3RhdHVzXSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZyYWdtZW50Q2FjaGUuc2V0KHVybCwgcHJvbWlzZSk7XG4gICAgICAgICAgICByZXR1cm4gcHJvbWlzZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZXNvdWNlTW5ncjogQXBwUmVzb3VyY2VNYW5hZ2VyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBhcHA6IEFwcCxcbiAgICAgICAgcHJpdmF0ZSBhcHBNYW5hZ2VyOiBBcHBNYW5hZ2VyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjb21waWxlcjogQ29tcGlsZXJcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0Q29tcG9uZW50RmFjdG9yeVJlZihjb21wb25lbnROYW1lOiBzdHJpbmcsIGNvbXBvbmVudFR5cGU6IENvbXBvbmVudFR5cGUsIG9wdGlvbnM/OiB7fSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIC8vIGNoZWNrIGluIHRoZSBjYWNoZS5cbiAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeU1hcCA9IGNvbXBvbmVudEZhY3RvcnlSZWZDYWNoZS5nZXQoY29tcG9uZW50VHlwZSk7XG4gICAgICAgIGxldCBjb21wb25lbnRGYWN0b3J5UmVmO1xuICAgICAgICBpZiAoY29tcG9uZW50RmFjdG9yeU1hcCkge1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZENvbXBvbmVudE5hbWUgPSAob3B0aW9ucyAmJiBvcHRpb25zWydwcmVmYWInXSkgPyBvcHRpb25zWydwcmVmYWInXSArICBjb21wb25lbnROYW1lIDogY29tcG9uZW50TmFtZTtcbiAgICAgICAgICAgIGNvbXBvbmVudEZhY3RvcnlSZWYgPSBjb21wb25lbnRGYWN0b3J5TWFwLmdldCh1cGRhdGVkQ29tcG9uZW50TmFtZSk7XG5cbiAgICAgICAgICAgIGlmIChjb21wb25lbnRGYWN0b3J5UmVmKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBvbmVudEZhY3RvcnlSZWY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkUmVzb3VyY2VzT2ZGcmFnbWVudChjb21wb25lbnROYW1lLCBjb21wb25lbnRUeXBlLCBvcHRpb25zKVxuICAgICAgICAgICAgLnRoZW4oKHttYXJrdXAsIHNjcmlwdCwgc3R5bGVzLCB2YXJpYWJsZXN9KSAgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudERlZiA9IGdldER5bmFtaWNDb21wb25lbnQoY29tcG9uZW50TmFtZSwgY29tcG9uZW50VHlwZSwgbWFya3VwLCBzdHlsZXMsIHNjcmlwdCwgSlNPTi5zdHJpbmdpZnkodmFyaWFibGVzKSk7XG4gICAgICAgICAgICAgICAgY29uc3QgbW9kdWxlRGVmID0gZ2V0RHluYW1pY01vZHVsZShjb21wb25lbnREZWYpO1xuXG4gICAgICAgICAgICAgICAgY29tcG9uZW50RmFjdG9yeVJlZiA9IHRoaXMuY29tcGlsZXJcbiAgICAgICAgICAgICAgICAgICAgLmNvbXBpbGVNb2R1bGVBbmRBbGxDb21wb25lbnRzU3luYyhtb2R1bGVEZWYpXG4gICAgICAgICAgICAgICAgICAgIC5jb21wb25lbnRGYWN0b3JpZXNcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihmYWN0b3J5ID0+IC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhY3RvcnkuY29tcG9uZW50VHlwZSA9PT0gY29tcG9uZW50RGVmKVswXTtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkQ29tcG9uZW50TmFtZSA9IChvcHRpb25zICYmIG9wdGlvbnNbJ3ByZWZhYiddKSA/IG9wdGlvbnNbJ3ByZWZhYiddICsgIGNvbXBvbmVudE5hbWUgOiBjb21wb25lbnROYW1lO1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudEZhY3RvcnlSZWZDYWNoZS5nZXQoY29tcG9uZW50VHlwZSkuc2V0KHVwZGF0ZWRDb21wb25lbnROYW1lLCBjb21wb25lbnRGYWN0b3J5UmVmKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBjb21wb25lbnRGYWN0b3J5UmVmO1xuICAgICAgICAgICAgfSwgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbXNnID0gXCJFcnJvciB3aGlsZSBsb2FkaW5nIHBhZ2VcIjtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZSB0aGUgZXJyb3IgZm9yIGVhc3kgZGVidWdnaW5nXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKG1zZywgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBNYW5hZ2VyLm5vdGlmeUFwcChcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzU3RyaW5nKGVycikgPyBlcnIgOiBtc2cgKyAnLCBjaGVjayBicm93c2VyIGNvbnNvbGUgZm9yIGVycm9yIGRldGFpbHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2Vycm9yJ1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIGNsZWFycyB0aGUgY2FjaGUgbWFwXG4gICAgcHVibGljIGNsZWFyQ29tcG9uZW50RmFjdG9yeVJlZkNhY2hlKCkge1xuICAgICAgICB0aGlzLnJlc291Y2VNbmdyLmNsZWFyQ2FjaGUoKTtcbiAgICAgICAgZnJhZ21lbnRDYWNoZS5jbGVhcigpO1xuICAgICAgICBjb21wb25lbnRGYWN0b3J5UmVmQ2FjaGUuZm9yRWFjaChtYXAgPT4ge1xuICAgICAgICAgICAgbWFwLmNsZWFyKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXJlZi1wcm92aWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcnVudGltZS1keW5hbWljL3NyYy9hcHAvc2VydmljZXMvY29tcG9uZW50LXJlZi1wcm92aWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsUUFBUSxFQUNSLFNBQVMsRUFDVCxzQkFBc0IsRUFBYyxNQUFNLEVBQzFDLFVBQVUsRUFDVixRQUFRLEVBQ1IsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUMxQixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxRQUFRLEVBQUUsV0FBVyxFQUFDLE1BQU0sV0FBVyxDQUFDOzs7OztBQVloRCxNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0FBRXJDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUM7QUFFNUUsd0JBQXdCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFHLEVBQWUsQ0FBQyxDQUFDO0FBQ3pFLHdC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QyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztZQUNqSCx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLG1CQUFtQixDQUFDLENBQUM7WUFFM0YsT0FBTyxtQkFBbUIsQ0FBQztRQUMvQixDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNQLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ04sTUFBTSxHQUFHLEdBQUcsMEJBQTBCLENBQUM7Z0JBQ3ZDLHVDQUF1QztnQkFDdkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUNyQixRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLDJDQUEyQyxFQUN2RSxPQUFPLENBQ1YsQ0FBQztZQUNOLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCx1QkFBdUI7SUFDaEIsNkJBQTZCO1FBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDOUIsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNuQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzRGQXpGUSwyQkFBMkI7dUVBQTNCLDJCQUEyQixXQUEzQiwyQkFBMkI7O2lGQUEzQiwyQkFBMkI7Y0FEdkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcGlsZXIsXG4gICAgQ29tcG9uZW50LFxuICAgIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIGZvcndhcmRSZWYsIEluamVjdCxcbiAgICBJbmplY3RhYmxlLFxuICAgIEluamVjdG9yLFxuICAgIE5nTW9kdWxlLFxuICAgIE5PX0VSUk9SU19TQ0hFTUEsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFwcCwgZ2V0VmFsaWRKU09OLCBVc2VyRGVmaW5lZEV4ZWN1dGlvbkNvbnRleHQgfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyB0cmFuc3BpbGUsIHNjb3BlQ29tcG9uZW50U3R5bGVzIH0gZnJvbSAnQHdtL3RyYW5zcGlsZXInO1xuaW1wb3J0IHtcbiAgICBBcHBNYW5hZ2VyU2VydmljZSxcbiAgICBCYXNlUGFnZUNvbXBvbmVudCxcbiAgICBCYXNlUGFydGlhbENvbXBvbmVudCxcbiAgICBCYXNlUHJlZmFiQ29tcG9uZW50LFxuICAgIENvbXBvbmVudFJlZlByb3ZpZGVyLFxuICAgIENvbXBvbmVudFR5cGUsXG4gICAgUnVudGltZUJhc2VNb2R1bGUsXG4gICAgZ2V0UHJlZmFiTWluSnNvblVybCxcbiAgICBnZXRQcmVmYWJQYXJ0aWFsSnNvblVybFxufSBmcm9tICdAd20vcnVudGltZS9iYXNlJztcblxuaW1wb3J0IHsgQXBwUmVzb3VyY2VNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vYXBwLXJlc291cmNlLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQge2lzU3RyaW5nLCBpc1VuZGVmaW5lZH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5pbnRlcmZhY2UgSVBhZ2VNaW5KU09OIHtcbiAgICBtYXJrdXA6IHN0cmluZztcbiAgICBzY3JpcHQ6IHN0cmluZztcbiAgICBzdHlsZXM6IHN0cmluZztcbiAgICB2YXJpYWJsZXM6IHN0cmluZztcbiAgICBjb25maWc/OiBzdHJpbmc7XG59XG5cbmRlY2xhcmUgY29uc3Qgd2luZG93OiBhbnk7XG5cbmNvbnN0IGZyYWdtZW50Q2FjaGUgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xuXG53aW5kb3cucmVzb3VyY2VDYWNoZSA9IGZyYWdtZW50Q2FjaGU7XG5cbmNvbnN0IGNvbXBvbmVudEZhY3RvcnlSZWZDYWNoZSA9IG5ldyBNYXA8Q29tcG9uZW50VHlwZSwgTWFwPHN0cmluZywgYW55Pj4oKTtcblxuY29tcG9uZW50RmFjdG9yeVJlZkNhY2hlLnNldChDb21wb25lbnRUeXBlLlBBR0UsIG5ldyBNYXA8c3RyaW5nLCBhbnk+KCkpO1xuY29tcG9uZW50RmFjdG9yeVJlZkNhY2hlLnNldChDb21wb25lbnRUeXBlLlBBUlRJQUwsIG5ldyBNYXA8c3RyaW5nLCBhbnk+KCkpO1xuY29tcG9uZW50RmFjdG9yeVJlZkNhY2hlLnNldChDb21wb25lbnRUeXBlLlBSRUZBQiwgbmV3IE1hcDxzdHJpbmcsIGFueT4oKSk7XG5cbmNvbnN0IF9kZWNvZGVVUklDb21wb25lbnQgPSAoc3RyOiBzdHJpbmcpID0+IGRlY29kZVVSSUNvbXBvbmVudChzdHIucmVwbGFjZSgvXFwrL2csICcgJykpO1xuXG5jb25zdCBnZXRGcmFnbWVudFVybCA9IChmcmFnbWVudE5hbWU6IHN0cmluZywgdHlwZTogQ29tcG9uZW50VHlwZSwgb3B0aW9ucz8pID0+IHtcbiAgICBpZiAodHlwZSA9PT0gQ29tcG9uZW50VHlwZS5QQUdFIHx8IHR5cGUgPT09IENvbXBvbmVudFR5cGUuUEFSVElBTCkge1xuICAgICAgICByZXR1cm4gb3B0aW9ucyAmJiBvcHRpb25zLnByZWZhYiA/IGdldFByZWZhYlBhcnRpYWxKc29uVXJsKG9wdGlvbnMucHJlZmFiLCBmcmFnbWVudE5hbWUpIDogYC4vcGFnZXMvJHtmcmFnbWVudE5hbWV9L3BhZ2UubWluLmpzb25gO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gQ29tcG9uZW50VHlwZS5QUkVGQUIpIHtcbiAgICAgICAgcmV0dXJuIGdldFByZWZhYk1pbkpzb25VcmwoZnJhZ21lbnROYW1lKTtcbiAgICB9XG59O1xuXG5jb25zdCBzY3JpcHRDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBGdW5jdGlvbj4oKTtcbmNvbnN0IGV4ZWNTY3JpcHQgPSAoXG4gICAgc2NyaXB0OiBzdHJpbmcsXG4gICAgaWRlbnRpZmllcjogc3RyaW5nLFxuICAgIGN0eDogc3RyaW5nLFxuICAgIGluc3RhbmNlOiBhbnksXG4gICAgYXBwOiBhbnksXG4gICAgdXRpbHM6IGFueVxuKSA9PiB7XG4gICAgbGV0IGZuID0gc2NyaXB0Q2FjaGUuZ2V0KGlkZW50aWZpZXIpO1xuICAgIC8vIEZpeCBmb3IgW1dNUy0yMTE5Nl06IEluY29ycmVjdCBzY3JpcHQgaXMgYmVpbmcgYXNzaWduZWQsICB3aGVuIDIgcHJlZmFicyBoYXZlIHNhbWUgcGFydGlhbCBuYW1lIChpLmUuIHNhbWUgaWRlbnRpZmllcikuXG4gICAgaWYgKChjdHggPT09ICdQYXJ0aWFsJyAmJiAhaXNVbmRlZmluZWQoaW5zdGFuY2UuUHJlZmFiKSkgfHwgIWZuKSB7XG4gICAgICAgIGZuID0gbmV3IEZ1bmN0aW9uKGN0eCwgJ0FwcCcsICdVdGlscycsIHNjcmlwdCk7XG4gICAgICAgIHNjcmlwdENhY2hlLnNldChpZGVudGlmaWVyLCBmbik7XG4gICAgfVxuICAgIGZuKGluc3RhbmNlLCBhcHAsIHV0aWxzKTtcbn07XG5cbmNsYXNzIEJhc2VEeW5hbWljQ29tcG9uZW50IHtcbiAgICBpbml0KCkge31cbn1cblxuY29uc3QgZ2V0RHluYW1pY01vZHVsZSA9IChjb21wb25lbnRSZWY6IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gTmdNb2R1bGUoe1xuICAgICAgICAgICAgZGVjbGFyYXRpb25zOiBbY29tcG9uZW50UmVmXSxcbiAgICAgICAgICAgIGltcG9ydHM6IFtcbiAgICAgICAgICAgICAgICBSdW50aW1lQmFzZU1vZHVsZSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQV1cbiAgICB9KShjbGFzcyBEeW5hbWljTW9kdWxlIHt9KTtcbn07XG5cbmNvbnN0IGdldER5bmFtaWNDb21wb25lbnQgPSAoXG4gICAgY29tcG9uZW50TmFtZSxcbiAgICB0eXBlOiBDb21wb25lbnRUeXBlLFxuICAgIHRlbXBsYXRlOiBzdHJpbmcsXG4gICAgY3NzOiBzdHJpbmcsXG4gICAgc2NyaXB0OiBhbnksXG4gICAgdmFyaWFibGVzOiBzdHJpbmcsXG4pID0+IHtcblxuICAgIGNvbnN0IGNvbXBvbmVudERlZiA9IHtcbiAgICAgICAgdGVtcGxhdGUsXG4gICAgICAgIHN0eWxlczogW2Nzc10sXG4gICAgICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbiAgICB9O1xuXG4gICAgbGV0IEJhc2VDbGFzczogYW55ID0gQmFzZUR5bmFtaWNDb21wb25lbnQ7XG4gICAgbGV0IHNlbGVjdG9yID0gJyc7XG4gICAgbGV0IGNvbnRleHQgPSAnJztcblxuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlIENvbXBvbmVudFR5cGUuUEFHRTpcbiAgICAgICAgICAgIEJhc2VDbGFzcyA9IEJhc2VQYWdlQ29tcG9uZW50O1xuICAgICAgICAgICAgc2VsZWN0b3IgPSBgYXBwLXBhZ2UtJHtjb21wb25lbnROYW1lfWA7XG4gICAgICAgICAgICBjb250ZXh0ID0gJ1BhZ2UnO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgQ29tcG9uZW50VHlwZS5QQVJUSUFMOlxuICAgICAgICAgICAgQmFzZUNsYXNzID0gQmFzZVBhcnRpYWxDb21wb25lbnQ7XG4gICAgICAgICAgICBzZWxlY3RvciA9IGBhcHAtcGFydGlhbC0ke2NvbXBvbmVudE5hbWV9YDtcbiAgICAgICAgICAgIGNvbnRleHQgPSAnUGFydGlhbCc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBDb21wb25lbnRUeXBlLlBSRUZBQjpcbiAgICAgICAgICAgIEJhc2VDbGFzcyA9IEJhc2VQcmVmYWJDb21wb25lbnQ7XG4gICAgICAgICAgICBzZWxlY3RvciA9IGBhcHAtcHJlZmFiLSR7Y29tcG9uZW50TmFtZX1gO1xuICAgICAgICAgICAgY29udGV4dCA9ICdQcmVmYWInO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY2xhc3MgRHluYW1pY0NvbXBvbmVudCBleHRlbmRzIEJhc2VDbGFzcyB7XG4gICAgICAgIGlzRHluYW1pY0NvbXBvbmVudDogYm9vbGVhbiA9IHRydWU7XG4gICAgICAgIHBhZ2VOYW1lO1xuICAgICAgICBwYXJ0aWFsTmFtZTtcbiAgICAgICAgcHJlZmFiTmFtZTtcbiAgICAgICAgY29uc3RydWN0b3IoQEluamVjdChJbmplY3RvcikgcHVibGljIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgICAgIHRoaXMuaW5qZWN0b3IgPSBpbmplY3RvcjtcbiAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgQ29tcG9uZW50VHlwZS5QQUdFOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhZ2VOYW1lID0gY29tcG9uZW50TmFtZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBDb21wb25lbnRUeXBlLlBBUlRJQUw6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFydGlhbE5hbWUgPSBjb21wb25lbnROYW1lO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIENvbXBvbmVudFR5cGUuUFJFRkFCOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByZWZhYk5hbWUgPSBjb21wb25lbnROYW1lO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3VwZXIuaW5pdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZhbFVzZXJTY3JpcHQoaW5zdGFuY2U6IGFueSwgYXBwQ29udGV4dDogYW55LCB1dGlsczogYW55KSB7XG4gICAgICAgICAgICBleGVjU2NyaXB0KHNjcmlwdCwgc2VsZWN0b3IsIGNvbnRleHQsIGluc3RhbmNlLCBhcHBDb250ZXh0LCB1dGlscyk7XG4gICAgICAgIH1cblxuICAgICAgICBnZXRWYXJpYWJsZXMoKSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh2YXJpYWJsZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaW4gcHJldmlldyBtb2RlLCB0aGVyZSB3aWxsIGJlIG5vIGZ1bmN0aW9uIHJlZ2lzdGVyZWQuIGZ1bmN0aW9ucyB3aWxsIGJlIGdlbmVyYXRlZCBkeW5hbWljYWxseSB0aHJvdWdoICRwYXJzZUV2ZW50IGFuZCAkcGFyc2VFeHByXG4gICAgICAgIGdldEV4cHJlc3Npb25zKCkge1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY29tcG9uZW50ID0gQ29tcG9uZW50KHtcbiAgICAgICAgLi4uY29tcG9uZW50RGVmLFxuICAgICAgICBzZWxlY3RvcixcbiAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogVXNlckRlZmluZWRFeGVjdXRpb25Db250ZXh0LFxuICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBEeW5hbWljQ29tcG9uZW50XG4gICAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICB9KShEeW5hbWljQ29tcG9uZW50KVxuICAgIHJldHVybiBjb21wb25lbnQ7XG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50UmVmUHJvdmlkZXJTZXJ2aWNlIGV4dGVuZHMgQ29tcG9uZW50UmVmUHJvdmlkZXIge1xuXG4gICAgcHJpdmF0ZSBsb2FkUmVzb3VyY2VzT2ZGcmFnbWVudChjb21wb25lbnROYW1lLCBjb21wb25lbnRUeXBlLCBvcHRpb25zPyk6IFByb21pc2U8SVBhZ2VNaW5KU09OPiB7XG4gICAgICAgIGNvbnN0IHVybCA9IGdldEZyYWdtZW50VXJsKGNvbXBvbmVudE5hbWUsIGNvbXBvbmVudFR5cGUsIG9wdGlvbnMpO1xuXG4gICAgICAgIGNvbnN0IHJlc291cmNlID0gZnJhZ21lbnRDYWNoZS5nZXQodXJsKTtcblxuICAgICAgICBpZiAocmVzb3VyY2UpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzb3VyY2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucmVzb3VjZU1uZ3IuZ2V0KHVybCwgdHJ1ZSlcbiAgICAgICAgICAgIC50aGVuKCh7bWFya3VwLCBzY3JpcHQsIHN0eWxlcywgdmFyaWFibGVzfTogSVBhZ2VNaW5KU09OKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmt1cDogdHJhbnNwaWxlKF9kZWNvZGVVUklDb21wb25lbnQobWFya3VwKSkubWFya3VwLFxuICAgICAgICAgICAgICAgICAgICBzY3JpcHQ6IF9kZWNvZGVVUklDb21wb25lbnQoc2NyaXB0KSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVzOiBzY29wZUNvbXBvbmVudFN0eWxlcyhjb21wb25lbnROYW1lLCBjb21wb25lbnRUeXBlLCBfZGVjb2RlVVJJQ29tcG9uZW50KHN0eWxlcykpLFxuICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IGdldFZhbGlkSlNPTihfZGVjb2RlVVJJQ29tcG9uZW50KHZhcmlhYmxlcykpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBmcmFnbWVudENhY2hlLnNldCh1cmwsIHJlc3BvbnNlKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0sIGUgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IGUuZGV0YWlscy5zdGF0dXM7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JNc2dNYXAgPSB7XG4gICAgICAgICAgICAgICAgICAgIDQwNCA6IHRoaXMuYXBwLmFwcExvY2FsZS5NRVNTQUdFX1BBR0VfTk9UX0ZPVU5EIHx8ICdUaGUgcGFnZSB5b3UgYXJlIHRyeWluZyB0byByZWFjaCBpcyBub3QgYXZhaWxhYmxlJyxcbiAgICAgICAgICAgICAgICAgICAgNDAzIDogdGhpcy5hcHAuYXBwTG9jYWxlLkxBQkVMX0FDQ0VTU19ERU5JRUQgfHwgJ0FjY2VzcyBEZW5pZWQnXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3JNc2dNYXBbc3RhdHVzXSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZXNvdWNlTW5ncjogQXBwUmVzb3VyY2VNYW5hZ2VyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBhcHA6IEFwcCxcbiAgICAgICAgcHJpdmF0ZSBhcHBNYW5hZ2VyOiBBcHBNYW5hZ2VyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjb21waWxlcjogQ29tcGlsZXJcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0Q29tcG9uZW50RmFjdG9yeVJlZihjb21wb25lbnROYW1lOiBzdHJpbmcsIGNvbXBvbmVudFR5cGU6IENvbXBvbmVudFR5cGUsIG9wdGlvbnM/OiB7fSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIC8vIGNoZWNrIGluIHRoZSBjYWNoZS5cbiAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeU1hcCA9IGNvbXBvbmVudEZhY3RvcnlSZWZDYWNoZS5nZXQoY29tcG9uZW50VHlwZSk7XG4gICAgICAgIGxldCBjb21wb25lbnRGYWN0b3J5UmVmO1xuICAgICAgICBpZiAoY29tcG9uZW50RmFjdG9yeU1hcCkge1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZENvbXBvbmVudE5hbWUgPSAob3B0aW9ucyAmJiBvcHRpb25zWydwcmVmYWInXSkgPyBvcHRpb25zWydwcmVmYWInXSArICBjb21wb25lbnROYW1lIDogY29tcG9uZW50TmFtZTtcbiAgICAgICAgICAgIGNvbXBvbmVudEZhY3RvcnlSZWYgPSBjb21wb25lbnRGYWN0b3J5TWFwLmdldCh1cGRhdGVkQ29tcG9uZW50TmFtZSk7XG5cbiAgICAgICAgICAgIGlmIChjb21wb25lbnRGYWN0b3J5UmVmKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBvbmVudEZhY3RvcnlSZWY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkUmVzb3VyY2VzT2ZGcmFnbWVudChjb21wb25lbnROYW1lLCBjb21wb25lbnRUeXBlLCBvcHRpb25zKVxuICAgICAgICAgICAgLnRoZW4oKHttYXJrdXAsIHNjcmlwdCwgc3R5bGVzLCB2YXJpYWJsZXN9KSAgPT4ge1xuXG4gICAgICAgICAgICAgICAgY29uc3QgY29tcG9uZW50RGVmID0gZ2V0RHluYW1pY0NvbXBvbmVudChjb21wb25lbnROYW1lLCBjb21wb25lbnRUeXBlLCBtYXJrdXAsIHN0eWxlcywgc2NyaXB0LCBKU09OLnN0cmluZ2lmeSh2YXJpYWJsZXMpKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtb2R1bGVEZWYgPSBnZXREeW5hbWljTW9kdWxlKGNvbXBvbmVudERlZik7XG5cbiAgICAgICAgICAgICAgICBjb21wb25lbnRGYWN0b3J5UmVmID0gdGhpcy5jb21waWxlclxuICAgICAgICAgICAgICAgICAgICAuY29tcGlsZU1vZHVsZUFuZEFsbENvbXBvbmVudHNTeW5jKG1vZHVsZURlZilcbiAgICAgICAgICAgICAgICAgICAgLmNvbXBvbmVudEZhY3Rvcmllc1xuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKGZhY3RvcnkgPT4gLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgZmFjdG9yeS5jb21wb25lbnRUeXBlID09PSBjb21wb25lbnREZWYpWzBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRDb21wb25lbnROYW1lID0gKG9wdGlvbnMgJiYgb3B0aW9uc1sncHJlZmFiJ10pID8gb3B0aW9uc1sncHJlZmFiJ10gKyAgY29tcG9uZW50TmFtZSA6IGNvbXBvbmVudE5hbWU7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50RmFjdG9yeVJlZkNhY2hlLmdldChjb21wb25lbnRUeXBlKS5zZXQodXBkYXRlZENvbXBvbmVudE5hbWUsIGNvbXBvbmVudEZhY3RvcnlSZWYpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBvbmVudEZhY3RvcnlSZWY7XG4gICAgICAgICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtc2cgPSBcIkVycm9yIHdoaWxlIGxvYWRpbmcgcGFnZVwiO1xuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlIHRoZSBlcnJvciBmb3IgZWFzeSBkZWJ1Z2dpbmdcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cobXNnLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcE1hbmFnZXIubm90aWZ5QXBwKFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNTdHJpbmcoZXJyKSA/IGVyciA6IG1zZyArICcsIGNoZWNrIGJyb3dzZXIgY29uc29sZSBmb3IgZXJyb3IgZGV0YWlscycsXG4gICAgICAgICAgICAgICAgICAgICAgICAnZXJyb3InXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gY2xlYXJzIHRoZSBjYWNoZSBtYXBcbiAgICBwdWJsaWMgY2xlYXJDb21wb25lbnRGYWN0b3J5UmVmQ2FjaGUoKSB7XG4gICAgICAgIHRoaXMucmVzb3VjZU1uZ3IuY2xlYXJDYWNoZSgpO1xuICAgICAgICBmcmFnbWVudENhY2hlLmNsZWFyKCk7XG4gICAgICAgIGNvbXBvbmVudEZhY3RvcnlSZWZDYWNoZS5mb3JFYWNoKG1hcCA9PiB7XG4gICAgICAgICAgICBtYXAuY2xlYXIoKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -22,7 +22,7 @@ import { NgCircleProgressModule } from 'ng-circle-progress';
22
22
  import { ToastNoAnimationModule } from 'ngx-toastr';
23
23
  import { CarouselModule } from 'ngx-bootstrap/carousel';
24
24
  import * as i5 from '@wm/core';
25
- import { appendScriptToHead, UserDefinedExecutionContext, getValidJSON, getWmProjectProperties, PartialRefProvider, CustomWidgetRefProvider, App } from '@wm/core';
25
+ import { appendScriptToHead, UserDefinedExecutionContext, getValidJSON, getWmProjectProperties, PartialRefProvider, App } from '@wm/core';
26
26
  import { BasicModule } from '@wm/components/basic';
27
27
  import { ProgressModule } from '@wm/components/basic/progress';
28
28
  import { RichTextEditorModule } from '@wm/components/basic/rich-text-editor';
@@ -63,7 +63,6 @@ import { PopoverModule as PopoverModule$1 } from '@wm/components/navigation/popo
63
63
  import { CarouselModule as CarouselModule$1 } from '@wm/components/advanced/carousel';
64
64
  import { LoginModule } from '@wm/components/advanced/login';
65
65
  import { MarqueeModule } from '@wm/components/advanced/marquee';
66
- import { CustomModule } from '@wm/components/advanced/custom';
67
66
  import { PageModule } from '@wm/components/page';
68
67
  import { FooterModule } from '@wm/components/page/footer';
69
68
  import { HeaderModule } from '@wm/components/page/header';
@@ -72,12 +71,11 @@ import { RightPanelModule } from '@wm/components/page/right-panel';
72
71
  import { TopNavModule } from '@wm/components/page/top-nav';
73
72
  import { PrefabModule } from '@wm/components/prefab';
74
73
  import * as i4 from '@wm/runtime/base';
75
- import { ComponentType, BasePageComponent, SecurityConfigResolve, MetadataResolve, AppExtensionJSResolve, EmptyPageComponent, PrefabPreviewComponent, CanDeactivatePageGuard, AppJSProvider, AppVariablesProvider, AppExtensionProvider, getPrefabPartialJsonUrl, getPrefabMinJsonUrl, RuntimeBaseModule, BaseCustomWidgetComponent, BasePrefabComponent, BasePartialComponent, ComponentRefProvider, CustomwidgetConfigProvider, PrefabConfigProvider, getPrefabConfigUrl, REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS, WM_MODULES_FOR_ROOT, WmRouteReuseStrategy, AppComponent } from '@wm/runtime/base';
74
+ import { ComponentType, BasePageComponent, SecurityConfigResolve, MetadataResolve, AppExtensionJSResolve, EmptyPageComponent, PrefabPreviewComponent, CanDeactivatePageGuard, AppJSProvider, AppVariablesProvider, AppExtensionProvider, getPrefabPartialJsonUrl, getPrefabMinJsonUrl, RuntimeBaseModule, BasePrefabComponent, BasePartialComponent, ComponentRefProvider, PrefabConfigProvider, getPrefabConfigUrl, REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS, WM_MODULES_FOR_ROOT, WmRouteReuseStrategy, AppComponent } from '@wm/runtime/base';
76
75
  import * as i2 from '@wm/variables';
77
76
  import * as i3 from '@wm/security';
78
77
  import { transpile, scopeComponentStyles } from '@wm/transpiler';
79
78
  import { isUndefined, isString, isEmpty } from 'lodash-es';
80
- import * as customWidgets from '@wavemaker/custom-widgets-m3';
81
79
  import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
82
80
 
83
81
  class PageWrapperComponent {
@@ -218,22 +216,22 @@ class AppJSProviderService extends AppJSProvider {
218
216
  }]
219
217
  }], () => [{ type: i1$1.HttpClient }], null); })();
220
218
 
221
- const cache$2 = new Map();
219
+ const cache$1 = new Map();
222
220
  class AppResourceManagerService {
223
221
  get(url, useCache) {
224
- const cachedResponse = cache$2.get(url);
222
+ const cachedResponse = cache$1.get(url);
225
223
  if (cachedResponse) {
226
224
  return Promise.resolve(cachedResponse);
227
225
  }
228
226
  return this.$http.get(url).then(response => {
229
227
  if (useCache) {
230
- cache$2.set(url, response);
228
+ cache$1.set(url, response);
231
229
  }
232
230
  return response;
233
231
  });
234
232
  }
235
233
  clearCache() {
236
- cache$2.clear();
234
+ cache$1.clear();
237
235
  }
238
236
  constructor($http) {
239
237
  this.$http = $http;
@@ -289,7 +287,6 @@ const componentFactoryRefCache = new Map();
289
287
  componentFactoryRefCache.set(ComponentType.PAGE, new Map());
290
288
  componentFactoryRefCache.set(ComponentType.PARTIAL, new Map());
291
289
  componentFactoryRefCache.set(ComponentType.PREFAB, new Map());
292
- componentFactoryRefCache.set(ComponentType.WIDGET, new Map());
293
290
  const _decodeURIComponent = (str) => decodeURIComponent(str.replace(/\+/g, ' '));
294
291
  const getFragmentUrl = (fragmentName, type, options) => {
295
292
  if (type === ComponentType.PAGE || type === ComponentType.PARTIAL) {
@@ -298,9 +295,6 @@ const getFragmentUrl = (fragmentName, type, options) => {
298
295
  else if (type === ComponentType.PREFAB) {
299
296
  return getPrefabMinJsonUrl(fragmentName);
300
297
  }
301
- else if (type === ComponentType.WIDGET) {
302
- return `./custom-widgets/${fragmentName}/page.min.json`;
303
- }
304
298
  };
305
299
  const scriptCache = new Map();
306
300
  const execScript = (script, identifier, ctx, instance, app, utils) => {
@@ -350,11 +344,6 @@ const getDynamicComponent = (componentName, type, template, css, script, variabl
350
344
  selector = `app-prefab-${componentName}`;
351
345
  context = 'Prefab';
352
346
  break;
353
- case ComponentType.WIDGET:
354
- BaseClass = BaseCustomWidgetComponent;
355
- selector = `app-custom-${componentName}`;
356
- context = 'Widget';
357
- break;
358
347
  }
359
348
  let DynamicComponent = class DynamicComponent extends BaseClass {
360
349
  constructor(injector) {
@@ -372,9 +361,6 @@ const getDynamicComponent = (componentName, type, template, css, script, variabl
372
361
  case ComponentType.PREFAB:
373
362
  this.prefabName = componentName;
374
363
  break;
375
- case ComponentType.WIDGET:
376
- this.customWidgetName = componentName;
377
- break;
378
364
  }
379
365
  super.init();
380
366
  }
@@ -410,18 +396,17 @@ class ComponentRefProviderService extends ComponentRefProvider {
410
396
  const url = getFragmentUrl(componentName, componentType, options);
411
397
  const resource = fragmentCache.get(url);
412
398
  if (resource) {
413
- return resource;
399
+ return Promise.resolve(resource);
414
400
  }
415
- const promise = (((componentType === ComponentType.WIDGET && !customWidgets[componentName]) || componentType !== ComponentType.WIDGET) ? this.resouceMngr.get(url, true) : Promise.resolve(customWidgets[componentName]))
416
- .then(({ markup, script, styles, variables, config }) => {
401
+ return this.resouceMngr.get(url, true)
402
+ .then(({ markup, script, styles, variables }) => {
417
403
  const response = {
418
404
  markup: transpile(_decodeURIComponent(markup)).markup,
419
405
  script: _decodeURIComponent(script),
420
406
  styles: scopeComponentStyles(componentName, componentType, _decodeURIComponent(styles)),
421
- variables: getValidJSON(_decodeURIComponent(variables)),
422
- ...(config ? { config: getValidJSON(_decodeURIComponent(config)) } : {})
407
+ variables: getValidJSON(_decodeURIComponent(variables))
423
408
  };
424
- fragmentCache.set(url, Promise.resolve(response));
409
+ fragmentCache.set(url, response);
425
410
  return response;
426
411
  }, e => {
427
412
  const status = e.details.status;
@@ -431,8 +416,6 @@ class ComponentRefProviderService extends ComponentRefProvider {
431
416
  };
432
417
  return Promise.reject(errorMsgMap[status]);
433
418
  });
434
- fragmentCache.set(url, promise);
435
- return promise;
436
419
  }
437
420
  constructor(resouceMngr, app, appManager, compiler) {
438
421
  super();
@@ -488,25 +471,6 @@ class ComponentRefProviderService extends ComponentRefProvider {
488
471
  type: Injectable
489
472
  }], () => [{ type: AppResourceManagerService }, { type: i5.App }, { type: i4.AppManagerService }, { type: i0.Compiler }], null); })();
490
473
 
491
- const cache$1 = new Map();
492
- class CustomwidgetConfigProviderService extends CustomwidgetConfigProvider {
493
- constructor() {
494
- super();
495
- }
496
- getConfig(widgetname) {
497
- return new Promise((res, rej) => {
498
- Promise.resolve(window['resourceCache'].get(`./custom-widgets/${widgetname}/page.min.json`)).then((pageInfo) => {
499
- res(pageInfo.config);
500
- });
501
- });
502
- }
503
- static { this.ɵfac = function CustomwidgetConfigProviderService_Factory(t) { return new (t || CustomwidgetConfigProviderService)(); }; }
504
- static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CustomwidgetConfigProviderService, factory: CustomwidgetConfigProviderService.ɵfac }); }
505
- }
506
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CustomwidgetConfigProviderService, [{
507
- type: Injectable
508
- }], () => [], null); })();
509
-
510
474
  const cache = new Map();
511
475
  class PrefabConfigProviderService extends PrefabConfigProvider {
512
476
  constructor(resourceMngr) {
@@ -613,7 +577,6 @@ const componentsModule = [
613
577
  CarouselModule$1,
614
578
  LoginModule,
615
579
  MarqueeModule,
616
- CustomModule,
617
580
  PageModule,
618
581
  FooterModule,
619
582
  HeaderModule,
@@ -671,8 +634,6 @@ AppModule = __decorate([
671
634
  { provide: AppExtensionProvider, useClass: AppExtensionProviderService },
672
635
  { provide: ComponentRefProvider, useClass: ComponentRefProviderService },
673
636
  { provide: PartialRefProvider, useClass: ComponentRefProviderService },
674
- { provide: CustomWidgetRefProvider, useClass: ComponentRefProviderService },
675
- { provide: CustomwidgetConfigProvider, useClass: CustomwidgetConfigProviderService },
676
637
  { provide: PrefabConfigProvider, useClass: PrefabConfigProviderService },
677
638
  { provide: RouteReuseStrategy, useClass: WmRouteReuseStrategy }
678
639
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../projects/runtime-dynamic/src/app/components/page-wrapper.component.ts","../../../../projects/runtime-dynamic/src/app/app.routes.ts","../../../../projects/runtime-dynamic/src/app/services/app-js-provider.service.ts","../../../../projects/runtime-dynamic/src/app/services/app-resource-manager.service.ts","../../../../projects/runtime-dynamic/src/app/services/app-variables-provider.service.ts","../../../../projects/runtime-dynamic/src/app/services/app-extension.service.ts","../../../../projects/runtime-dynamic/src/app/services/component-ref-provider.service.ts","../../../../projects/runtime-dynamic/src/app/services/customwidget-config-provider.service.ts","../../../../projects/runtime-dynamic/src/app/services/prefab-config-provider.service.ts","../../../../projects/runtime-dynamic/src/app/app.module.ts","../../../../projects/runtime-dynamic/src/main.ts","../../../../projects/runtime-dynamic/src/index.ts"],"sourcesContent":["import {\n ApplicationRef,\n Component,\n ElementRef,\n Injector,\n NgZone,\n OnDestroy,\n OnInit,\n ViewContainerRef,\n HostListener\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { Subscription } from 'rxjs';\n\nimport { AbstractSpinnerService, App, noop} from '@wm/core';\nimport { MetadataService } from '@wm/variables';\nimport { SecurityService } from '@wm/security';\nimport { AppManagerService, BasePageComponent, ComponentRefProvider, ComponentType } from '@wm/runtime/base';\n\n@Component({\n selector: 'app-page-outlet',\n template: '<div></div>'\n})\nexport class PageWrapperComponent implements OnInit, OnDestroy {\n\n subscription: Subscription;\n instance: any;\n\n constructor(\n private injector: Injector,\n private route: ActivatedRoute,\n private vcRef: ViewContainerRef,\n private appRef: ApplicationRef,\n private metadataService: MetadataService,\n private securityService: SecurityService,\n private appManager: AppManagerService,\n private app: App,\n private ngZone: NgZone,\n private elRef: ElementRef,\n private spinnerService: AbstractSpinnerService,\n private componentRefProvider: ComponentRefProvider,\n private router: Router\n ) {}\n\n getTargetNode() {\n return this.elRef.nativeElement;\n }\n\n resetViewContainer() {\n this.vcRef.clear();\n const $target = this.getTargetNode();\n $target.innerHTML = '';\n }\n\n renderPage(pageName) {\n const $target = this.getTargetNode();\n\n this.appManager.loadAppVariables()\n .then(async () => {\n const pageComponentFactoryRef = await this.componentRefProvider.getComponentFactoryRef(pageName, ComponentType.PAGE);\n if (pageComponentFactoryRef) {\n const componentRef = this.vcRef.createComponent(pageComponentFactoryRef, 0, this.injector);\n this.instance = componentRef.instance;\n $target.appendChild(componentRef.location.nativeElement);\n } else {\n BasePageComponent.clear();\n }\n if (this.vcRef.length > 1) {\n this.vcRef.remove(1);\n }\n });\n }\n\n renderPrefabPreviewPage() {\n this.router.navigate(['prefab-preview']);\n }\n\n loadPage(pageName) {\n this.ngZone.run(() => {\n if (pageName) {\n this.renderPage(pageName);\n }\n });\n }\n\n ngOnInit() {\n if (this.app.isPrefabType) {\n // there is only one route\n this.renderPrefabPreviewPage();\n } else {\n $(this.getTargetNode()).find('>div').first().remove();\n this.subscription = this.route.params.subscribe(({pageName}: any) => {\n this.loadPage(pageName);\n });\n }\n }\n\n ngOnDestroy() {\n this.vcRef.clear();\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n ngOnAttach() {\n this.getTargetNode().appendChild(this.instance.$page[0]);\n this.instance.ngOnAttach();\n }\n\n ngOnDetach() {\n this.instance.ngOnDetach();\n }\n}\n","import { MetadataResolve, AppExtensionJSResolve } from '@wm/runtime/base';\nimport { SecurityConfigResolve, PrefabPreviewComponent, CanDeactivatePageGuard, EmptyPageComponent } from '@wm/runtime/base';\n\nimport { PageWrapperComponent } from './components/page-wrapper.component';\nimport {Routes} from '@angular/router';\n\nconst appDependenciesResolve = {\n securityConfig: SecurityConfigResolve,\n metadata: MetadataResolve,\n appMetaConfig: AppExtensionJSResolve\n};\n\nexport const routes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n resolve: appDependenciesResolve,\n component: EmptyPageComponent\n },\n {\n path: 'prefab-preview',\n pathMatch: 'full',\n resolve: appDependenciesResolve,\n component: PrefabPreviewComponent\n },\n {\n path: ':pageName',\n pathMatch: 'full',\n resolve: appDependenciesResolve,\n component: PageWrapperComponent,\n canDeactivate: [CanDeactivatePageGuard]\n }\n];\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { AppJSProvider } from '@wm/runtime/base';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppJSProviderService extends AppJSProvider {\n constructor(private $http: HttpClient) {\n super();\n }\n\n public getAppScriptFn(): Promise<Function> {\n return this.$http.get('./app.js', {responseType: 'text'})\n .toPromise()\n .then(script => new Function('App', 'Utils', 'Injector', script));\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AbstractHttpService, App } from '@wm/core';\n\nconst cache = new Map<string, string>();\n\n@Injectable()\nexport class AppResourceManagerService {\n\n get(url: string, useCache?: boolean): string | any {\n const cachedResponse = cache.get(url);\n\n if (cachedResponse) {\n return Promise.resolve(cachedResponse);\n }\n\n return this.$http.get(url).then(response => {\n if (useCache) {\n cache.set(url, response);\n }\n return response;\n });\n }\n\n public clearCache() {\n cache.clear();\n }\n\n constructor(private $http: AbstractHttpService) {}\n}\n","import { Injectable } from '@angular/core';\nimport { AppVariablesProvider } from '@wm/runtime/base';\nimport { AppResourceManagerService } from './app-resource-manager.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppVariablesProviderService extends AppVariablesProvider {\n constructor(private resourceManager: AppResourceManagerService) {\n super();\n }\n\n public async getAppVariables(): Promise<any> {\n return this.resourceManager.get('./app.variables.json');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AppExtensionProvider } from '@wm/runtime/base';\nimport { appendScriptToHead } from '@wm/core';\n@Injectable({\n providedIn: 'root'\n})\nexport class AppExtensionProviderService extends AppExtensionProvider {\n\n // With renderer create element, added onloaded callback the append to the body\n public loadFormatterConfigScript(callback:Function):void {\n try{\n appendScriptToHead(callback);\n }catch(e){\n console.warn('Error while loading the formatters.js file');\n }\n }\n}\n","import {\n Compiler,\n Component,\n CUSTOM_ELEMENTS_SCHEMA, forwardRef, Inject,\n Injectable,\n Injector,\n NgModule,\n NO_ERRORS_SCHEMA,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { App, getValidJSON, UserDefinedExecutionContext } from '@wm/core';\nimport { transpile, scopeComponentStyles } from '@wm/transpiler';\nimport {\n AppManagerService,\n BasePageComponent,\n BasePartialComponent,\n BaseCustomWidgetComponent,\n BasePrefabComponent,\n ComponentRefProvider,\n ComponentType,\n RuntimeBaseModule,\n getPrefabMinJsonUrl,\n getPrefabPartialJsonUrl\n} from '@wm/runtime/base';\n\nimport { AppResourceManagerService } from './app-resource-manager.service';\nimport {isString, isUndefined} from \"lodash-es\";\nimport * as customWidgets from '@wavemaker/custom-widgets-m3';\n\ninterface IPageMinJSON {\n markup: string;\n script: string;\n styles: string;\n variables: string;\n config?: string;\n}\n\ndeclare const window: any;\n\nconst fragmentCache = new Map<string, any>();\n\nwindow.resourceCache = fragmentCache;\n\nconst componentFactoryRefCache = new Map<ComponentType, Map<string, any>>();\n\ncomponentFactoryRefCache.set(ComponentType.PAGE, new Map<string, any>());\ncomponentFactoryRefCache.set(ComponentType.PARTIAL, new Map<string, any>());\ncomponentFactoryRefCache.set(ComponentType.PREFAB, new Map<string, any>());\ncomponentFactoryRefCache.set(ComponentType.WIDGET, new Map<string, any>());\n\nconst _decodeURIComponent = (str: string) => decodeURIComponent(str.replace(/\\+/g, ' '));\n\nconst getFragmentUrl = (fragmentName: string, type: ComponentType, options?) => {\n if (type === ComponentType.PAGE || type === ComponentType.PARTIAL) {\n return options && options.prefab ? getPrefabPartialJsonUrl(options.prefab, fragmentName) : `./pages/${fragmentName}/page.min.json`;\n } else if (type === ComponentType.PREFAB) {\n return getPrefabMinJsonUrl(fragmentName);\n } else if (type === ComponentType.WIDGET){\n return `./custom-widgets/${fragmentName}/page.min.json` \n }\n};\n\nconst scriptCache = new Map<string, Function>();\nconst execScript = (\n script: string,\n identifier: string,\n ctx: string,\n instance: any,\n app: any,\n utils: any\n) => {\n let fn = scriptCache.get(identifier);\n // Fix for [WMS-21196]: Incorrect script is being assigned, when 2 prefabs have same partial name (i.e. same identifier).\n if ((ctx === 'Partial' && !isUndefined(instance.Prefab)) || !fn) {\n fn = new Function(ctx, 'App', 'Utils', script);\n scriptCache.set(identifier, fn);\n }\n fn(instance, app, utils);\n};\n\nclass BaseDynamicComponent {\n init() {}\n}\n\nconst getDynamicModule = (componentRef: any) => {\n return NgModule({\n declarations: [componentRef],\n imports: [\n RuntimeBaseModule,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA]\n })(class DynamicModule {});\n};\n\nconst getDynamicComponent = (\n componentName,\n type: ComponentType,\n template: string,\n css: string,\n script: any,\n variables: string,\n) => {\n\n const componentDef = {\n template,\n styles: [css],\n encapsulation: ViewEncapsulation.None\n };\n\n let BaseClass: any = BaseDynamicComponent;\n let selector = '';\n let context = '';\n\n switch (type) {\n case ComponentType.PAGE:\n BaseClass = BasePageComponent;\n selector = `app-page-${componentName}`;\n context = 'Page';\n break;\n case ComponentType.PARTIAL:\n BaseClass = BasePartialComponent;\n selector = `app-partial-${componentName}`;\n context = 'Partial';\n break;\n case ComponentType.PREFAB:\n BaseClass = BasePrefabComponent;\n selector = `app-prefab-${componentName}`;\n context = 'Prefab';\n break;\n case ComponentType.WIDGET:\n BaseClass = BaseCustomWidgetComponent;\n selector = `app-custom-${componentName}`;\n context = 'Widget';\n break;\n }\n\n class DynamicComponent extends BaseClass {\n isDynamicComponent: boolean = true;\n pageName;\n partialName;\n prefabName;\n customWidgetName;\n constructor(@Inject(Injector) public injector: Injector) {\n super();\n this.injector = injector;\n switch (type) {\n case ComponentType.PAGE:\n this.pageName = componentName;\n break;\n case ComponentType.PARTIAL:\n this.partialName = componentName;\n break;\n case ComponentType.PREFAB:\n this.prefabName = componentName;\n break;\n case ComponentType.WIDGET:\n this.customWidgetName = componentName;\n break;\n }\n\n super.init();\n }\n\n evalUserScript(instance: any, appContext: any, utils: any) {\n execScript(script, selector, context, instance, appContext, utils);\n }\n\n getVariables() {\n return JSON.parse(variables);\n }\n\n // in preview mode, there will be no function registered. functions will be generated dynamically through $parseEvent and $parseExpr\n getExpressions() {\n return {};\n }\n }\n\n const component = Component({\n ...componentDef,\n selector,\n providers: [\n {\n provide: UserDefinedExecutionContext,\n useExisting: DynamicComponent\n }\n ]\n })(DynamicComponent)\n return component;\n};\n\n@Injectable()\nexport class ComponentRefProviderService extends ComponentRefProvider {\n\n private loadResourcesOfFragment(componentName, componentType, options?): Promise<IPageMinJSON> {\n const url = getFragmentUrl(componentName, componentType, options);\n\n const resource = fragmentCache.get(url);\n\n if (resource) {\n return resource;\n }\n const promise = (((componentType === ComponentType.WIDGET && !customWidgets[componentName]) || componentType !== ComponentType.WIDGET) ? this.resouceMngr.get(url, true) : Promise.resolve(customWidgets[componentName]))\n .then(({markup, script, styles, variables, config}: IPageMinJSON) => {\n const response = {\n markup: transpile(_decodeURIComponent(markup)).markup,\n script: _decodeURIComponent(script),\n styles: scopeComponentStyles(componentName, componentType, _decodeURIComponent(styles)),\n variables: getValidJSON(_decodeURIComponent(variables)),\n ...(config? {config : getValidJSON(_decodeURIComponent(config))} : {})\n };\n fragmentCache.set(url, Promise.resolve(response));\n\n return response;\n }, e => {\n const status = e.details.status;\n const errorMsgMap = {\n 404 : this.app.appLocale.MESSAGE_PAGE_NOT_FOUND || 'The page you are trying to reach is not available',\n 403 : this.app.appLocale.LABEL_ACCESS_DENIED || 'Access Denied'\n };\n return Promise.reject(errorMsgMap[status]);\n });\n fragmentCache.set(url, promise);\n return promise;\n }\n\n constructor(\n private resouceMngr: AppResourceManagerService,\n private app: App,\n private appManager: AppManagerService,\n private compiler: Compiler\n ) {\n super();\n }\n\n public async getComponentFactoryRef(componentName: string, componentType: ComponentType, options?: {}): Promise<any> {\n // check in the cache.\n const componentFactoryMap = componentFactoryRefCache.get(componentType);\n let componentFactoryRef;\n if (componentFactoryMap) {\n const updatedComponentName = (options && options['prefab']) ? options['prefab'] + componentName : componentName;\n componentFactoryRef = componentFactoryMap.get(updatedComponentName);\n\n if (componentFactoryRef) {\n return componentFactoryRef;\n }\n }\n\n return this.loadResourcesOfFragment(componentName, componentType, options)\n .then(({markup, script, styles, variables}) => {\n const componentDef = getDynamicComponent(componentName, componentType, markup, styles, script, JSON.stringify(variables));\n const moduleDef = getDynamicModule(componentDef);\n\n componentFactoryRef = this.compiler\n .compileModuleAndAllComponentsSync(moduleDef)\n .componentFactories\n .filter(factory => // @ts-ignore\n factory.componentType === componentDef)[0];\n const updatedComponentName = (options && options['prefab']) ? options['prefab'] + componentName : componentName;\n componentFactoryRefCache.get(componentType).set(updatedComponentName, componentFactoryRef);\n\n return componentFactoryRef;\n }, (err) => {\n if (err) {\n const msg = \"Error while loading page\";\n // console the error for easy debugging\n console.log(msg, err);\n this.appManager.notifyApp(\n isString(err) ? err : msg + ', check browser console for error details',\n 'error'\n );\n }\n });\n }\n\n // clears the cache map\n public clearComponentFactoryRefCache() {\n this.resouceMngr.clearCache();\n fragmentCache.clear();\n componentFactoryRefCache.forEach(map => {\n map.clear();\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { CustomwidgetConfigProvider } from '@wm/runtime/base';\n\nconst cache = new Map<string, any>();\n@Injectable()\nexport class CustomwidgetConfigProviderService extends CustomwidgetConfigProvider {\n\n constructor() {\n super();\n }\n\n public getConfig(widgetname: string): Promise<any> {\n return new Promise((res, rej) => {\n Promise.resolve(window['resourceCache'].get(`./custom-widgets/${widgetname}/page.min.json`)).then((pageInfo) => {\n res(pageInfo.config);\n });\n })\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { getPrefabConfigUrl, PrefabConfigProvider } from '@wm/runtime/base';\n\nimport { AppResourceManagerService } from './app-resource-manager.service';\n\nconst cache = new Map<string, any>();\n@Injectable()\nexport class PrefabConfigProviderService extends PrefabConfigProvider {\n\n constructor(private resourceMngr: AppResourceManagerService) {\n super();\n }\n\n public getConfig(prefabName: string): Promise<any> {\n const config = cache.get(prefabName);\n if (config) {\n return Promise.resolve(config);\n }\n\n return this.resourceMngr.get(getPrefabConfigUrl(prefabName))\n .then(_config => {\n cache.set(prefabName, _config);\n return _config;\n });\n }\n}\n","import { Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { CommonModule } from '@angular/common';\nimport { RouteReuseStrategy, RouterModule } from '@angular/router';\nimport { HttpClientModule, HttpClientXsrfModule } from '@angular/common/http';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { TypeaheadModule } from 'ngx-bootstrap/typeahead';\nimport { TimepickerModule as ngxTimepickerModule } from 'ngx-bootstrap/timepicker';\nimport { ProgressbarModule } from 'ngx-bootstrap/progressbar';\nimport { PaginationModule as ngxPaginationModule } from 'ngx-bootstrap/pagination';\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { PopoverModule as ngxPopoverModule } from 'ngx-bootstrap/popover';\n\nimport { NgCircleProgressModule } from 'ng-circle-progress';\nimport { ToastNoAnimationModule } from 'ngx-toastr';\nimport { CarouselModule as ngxCarouselModule, } from 'ngx-bootstrap/carousel';\n\nimport {App, getWmProjectProperties, PartialRefProvider, CustomWidgetRefProvider} from '@wm/core';\n// Basic widgets\n\nimport { BasicModule } from '@wm/components/basic';\nimport { ProgressModule } from '@wm/components/basic/progress';\nimport { RichTextEditorModule } from '@wm/components/basic/rich-text-editor';\nimport { SearchModule } from '@wm/components/basic/search';\nimport { TreeModule } from '@wm/components/basic/tree';\n\n// input\nimport { InputModule } from '@wm/components/input';\nimport { CalendarModule } from '@wm/components/input/calendar';\nimport { ChipsModule } from '@wm/components/input/chips';\nimport { ColorPickerModule } from '@wm/components/input/color-picker';\nimport { CurrencyModule } from '@wm/components/input/currency';\nimport { EpochModule } from '@wm/components/input/epoch';\nimport { FileUploadModule } from '@wm/components/input/file-upload';\nimport { RatingModule } from '@wm/components/input/rating';\nimport { SliderModule } from '@wm/components/input/slider';\n\nimport { MobileRuntimeDynamicModule, MOBILE_COMPONENT_MODULES_FOR_ROOT } from '@wm/mobile/runtime/dynamic';\n\n// Data\nimport { CardModule } from '@wm/components/data/card';\nimport { FormModule } from '@wm/components/data/form';\nimport { ListModule } from '@wm/components/data/list';\nimport { LiveTableModule } from '@wm/components/data/live-table';\nimport { PaginationModule } from '@wm/components/data/pagination';\nimport { TableModule } from '@wm/components/data/table';\n\n// Chart\nimport { ChartModule } from '@wm/components/chart';\n\n// Containers\nimport { AccordionModule } from '@wm/components/containers/accordion';\nimport { LinearLayoutModule } from '@wm/components/containers/linear-layout';\nimport { LayoutGridModule } from '@wm/components/containers/layout-grid';\nimport { PanelModule } from '@wm/components/containers/panel';\nimport { TabsModule } from '@wm/components/containers/tabs';\nimport { TileModule } from '@wm/components/containers/tile';\nimport { WizardModule } from '@wm/components/containers/wizard';\n\n// Dialogs\nimport { AlertDialogModule } from '@wm/components/dialogs/alert-dialog';\nimport { IframeDialogModule } from '@wm/components/dialogs/iframe-dialog';\nimport { LoginDialogModule } from '@wm/components/dialogs/login-dialog';\nimport { PartialDialogModule } from '@wm/components/dialogs/partial-dialog';\n\n// Navigation\nimport { BreadcrumbModule } from '@wm/components/navigation/breadcrumb';\nimport { MenuModule } from '@wm/components/navigation/menu';\nimport { NavbarModule } from '@wm/components/navigation/navbar';\nimport { PopoverModule } from '@wm/components/navigation/popover';\n\n// Advanced\nimport { CarouselModule } from '@wm/components/advanced/carousel';\nimport { LoginModule } from '@wm/components/advanced/login';\nimport { MarqueeModule } from '@wm/components/advanced/marquee';\nimport { CustomModule } from '@wm/components/advanced/custom';\n\nimport { PageModule } from '@wm/components/page';\nimport { FooterModule } from '@wm/components/page/footer';\nimport { HeaderModule } from '@wm/components/page/header';\nimport { LeftPanelModule } from '@wm/components/page/left-panel';\nimport { RightPanelModule } from '@wm/components/page/right-panel';\nimport { TopNavModule } from '@wm/components/page/top-nav';\n\nimport { PrefabModule } from '@wm/components/prefab';\n\nimport {\n AppComponent,\n AppJSProvider,\n AppVariablesProvider,\n ComponentRefProvider,\n PrefabConfigProvider,\n WmRouteReuseStrategy,\n WM_MODULES_FOR_ROOT,\n CustomwidgetConfigProvider,\n REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS,\n AppExtensionProvider\n} from '@wm/runtime/base';\n\nimport { routes } from './app.routes';\nimport { PageWrapperComponent } from './components/page-wrapper.component';\nimport { AppJSProviderService } from './services/app-js-provider.service';\nimport { AppVariablesProviderService } from './services/app-variables-provider.service';\nimport { AppExtensionProviderService } from './services/app-extension.service';\nimport { ComponentRefProviderService } from './services/component-ref-provider.service';\nimport { CustomwidgetConfigProviderService } from './services/customwidget-config-provider.service';\nimport { PrefabConfigProviderService } from './services/prefab-config-provider.service';\nimport { AppResourceManagerService } from './services/app-resource-manager.service';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\nexport const routerModule = RouterModule.forRoot(routes, { useHash: true, scrollPositionRestoration: 'top' });\nexport const toastrModule = ToastNoAnimationModule.forRoot({ maxOpened: 1, autoDismiss: true });\n\n// In angular 15, xsrf headerName should not be null. Angular 15 is not using default header value like it used to send in calls\n// for angular 12 if the headerName is null . The user has to take care of not sending null values. Then ng 15 uses default value for headerName\nlet xsrfHeaderName = getWmProjectProperties().xsrf_header_name;\nlet xsrfOptions = {\n cookieName: 'wm_xsrf_token'\n}\nif(xsrfHeaderName) {\n xsrfOptions['headerName'] = xsrfHeaderName;\n}\nexport const httpClientXsrfModule = HttpClientXsrfModule.withOptions(xsrfOptions);\n\nexport const modalModule: ModuleWithProviders<ModalModule> = ModalModule.forRoot();\nexport const bsDatePickerModule: ModuleWithProviders<BsDatepickerModule> = BsDatepickerModule.forRoot();\nexport const timepickerModule: ModuleWithProviders<ngxTimepickerModule> = ngxTimepickerModule.forRoot();\nexport const bsDropdownModule: ModuleWithProviders<BsDropdownModule> = BsDropdownModule.forRoot();\nexport const paginationModule: ModuleWithProviders<ngxPaginationModule> = ngxPaginationModule.forRoot();\nexport const typeaheadModule: ModuleWithProviders<TypeaheadModule> = TypeaheadModule.forRoot();\nexport const progressbarModule: ModuleWithProviders<ProgressbarModule> = ProgressbarModule.forRoot();\nexport const carouselModule: ModuleWithProviders<ngxCarouselModule> = ngxCarouselModule.forRoot();\nexport const popoverModule: ModuleWithProviders<ngxPopoverModule> = ngxPopoverModule.forRoot();\nexport const ngCircleProgressModule: ModuleWithProviders<NgCircleProgressModule> = NgCircleProgressModule.forRoot({});\nexport const tooltipModule: ModuleWithProviders<TooltipModule> = TooltipModule.forRoot();\n\nconst componentsModule = [\n // NGX Bootstrap\n BsDatepickerModule,\n ngxTimepickerModule,\n BsDropdownModule,\n ngxPaginationModule,\n TypeaheadModule,\n ProgressbarModule,\n ngxCarouselModule,\n ngxPopoverModule,\n NgCircleProgressModule,\n TooltipModule,\n\n // Basic widgets\n BasicModule,\n ProgressModule,\n RichTextEditorModule,\n SearchModule,\n TreeModule,\n\n // Input\n CalendarModule,\n ChipsModule,\n ColorPickerModule,\n CurrencyModule,\n EpochModule,\n FileUploadModule,\n InputModule,\n RatingModule,\n SliderModule,\n\n // Data\n CardModule,\n FormModule,\n ListModule,\n LiveTableModule,\n PaginationModule,\n TableModule,\n\n // chart\n ChartModule,\n\n // container modules\n AccordionModule,\n LinearLayoutModule,\n LayoutGridModule,\n PanelModule,\n TabsModule,\n TileModule,\n WizardModule,\n\n // dialogs\n AlertDialogModule,\n IframeDialogModule,\n LoginDialogModule,\n PartialDialogModule,\n\n // navigation\n BreadcrumbModule,\n MenuModule,\n NavbarModule,\n PopoverModule,\n\n // Advanced\n CarouselModule,\n LoginModule,\n MarqueeModule,\n CustomModule,\n\n PageModule,\n FooterModule,\n HeaderModule,\n LeftPanelModule,\n RightPanelModule,\n TopNavModule,\n\n PrefabModule\n];\n\nREQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS.push(...componentsModule);\nREQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS.push(...MOBILE_COMPONENT_MODULES_FOR_ROOT);\nREQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS.push(FormsModule, ReactiveFormsModule);\n\n@NgModule({\n declarations: [\n PageWrapperComponent\n ],\n imports: [\n BrowserModule,\n BrowserAnimationsModule,\n CommonModule,\n RouterModule,\n HttpClientModule,\n\n modalModule,\n bsDatePickerModule,\n timepickerModule,\n bsDropdownModule,\n paginationModule,\n typeaheadModule,\n tooltipModule,\n progressbarModule,\n carouselModule,\n popoverModule,\n ngCircleProgressModule,\n\n routerModule,\n toastrModule,\n httpClientXsrfModule,\n\n MobileRuntimeDynamicModule,\n WM_MODULES_FOR_ROOT\n ],\n providers: [\n AppResourceManagerService,\n { provide: AppJSProvider, useClass: AppJSProviderService },\n { provide: AppVariablesProvider, useClass: AppVariablesProviderService },\n { provide: AppExtensionProvider,useClass:AppExtensionProviderService},\n { provide: ComponentRefProvider, useClass: ComponentRefProviderService },\n { provide: PartialRefProvider, useClass: ComponentRefProviderService },\n { provide: CustomWidgetRefProvider, useClass: ComponentRefProviderService },\n { provide: CustomwidgetConfigProvider, useClass: CustomwidgetConfigProviderService },\n { provide: PrefabConfigProvider, useClass: PrefabConfigProviderService },\n { provide: RouteReuseStrategy, useClass: WmRouteReuseStrategy }\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule {\n constructor(private app: App, private inj: Injector, private componentRefProvider: ComponentRefProvider) {\n if (window['cordova']) {\n // clear the cached urls on logout, to load the Login Page and not the Main Page as app reload(window.location.reload) is not invoked in mobile\n this.app.subscribe('userLoggedOut', this.componentRefProvider.clearComponentFactoryRefCache.bind(this.componentRefProvider));\n }\n }\n}\n","import { ApplicationRef, enableProdMode, NgModuleRef } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport {isEmpty} from \"lodash-es\";\n\nconst DEBUG_MODE = 'debugMode';\n\nif (sessionStorage.getItem(DEBUG_MODE) !== 'true') {\n enableProdMode();\n}\n\nconsole.time('bootstrap');\n\n\ndocument.addEventListener('DOMContentLoaded', () => {\n new Promise<void|Event>( resolve => {\n if (window['cordova']) {\n document.addEventListener('deviceready', resolve);\n } else {\n resolve();\n }\n }).then(() => platformBrowserDynamic().bootstrapModule(AppModule))\n .then((appModuleRef: NgModuleRef<AppModule>) => {\n const applicationRef = appModuleRef.injector.get(ApplicationRef);\n window.addEventListener('unload', () => {\n applicationRef.components.map(c => c && c.destroy());\n });\n console.timeEnd('bootstrap');\n }, err => console.log(err));\n});\n\n(window as any).debugMode = function(on) {\n if (isEmpty(on)) {\n on = true;\n }\n const value = on ? 'true' : 'false';\n if (sessionStorage.getItem(DEBUG_MODE) !== value) {\n sessionStorage.setItem(DEBUG_MODE, value);\n window.location.reload();\n }\n};\n\nexport default () => {};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","cache","i1.AppResourceManagerService","i2","i3","ngxTimepickerModule","ngxPaginationModule","ngxCarouselModule","ngxPopoverModule","PaginationModule","PopoverModule","CarouselModule"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../projects/runtime-dynamic/src/app/components/page-wrapper.component.ts","../../../../projects/runtime-dynamic/src/app/app.routes.ts","../../../../projects/runtime-dynamic/src/app/services/app-js-provider.service.ts","../../../../projects/runtime-dynamic/src/app/services/app-resource-manager.service.ts","../../../../projects/runtime-dynamic/src/app/services/app-variables-provider.service.ts","../../../../projects/runtime-dynamic/src/app/services/app-extension.service.ts","../../../../projects/runtime-dynamic/src/app/services/component-ref-provider.service.ts","../../../../projects/runtime-dynamic/src/app/services/prefab-config-provider.service.ts","../../../../projects/runtime-dynamic/src/app/app.module.ts","../../../../projects/runtime-dynamic/src/main.ts","../../../../projects/runtime-dynamic/src/index.ts"],"sourcesContent":["import {\n ApplicationRef,\n Component,\n ElementRef,\n Injector,\n NgZone,\n OnDestroy,\n OnInit,\n ViewContainerRef,\n HostListener\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { Subscription } from 'rxjs';\n\nimport { AbstractSpinnerService, App, noop} from '@wm/core';\nimport { MetadataService } from '@wm/variables';\nimport { SecurityService } from '@wm/security';\nimport { AppManagerService, BasePageComponent, ComponentRefProvider, ComponentType } from '@wm/runtime/base';\n\n@Component({\n selector: 'app-page-outlet',\n template: '<div></div>'\n})\nexport class PageWrapperComponent implements OnInit, OnDestroy {\n\n subscription: Subscription;\n instance: any;\n\n constructor(\n private injector: Injector,\n private route: ActivatedRoute,\n private vcRef: ViewContainerRef,\n private appRef: ApplicationRef,\n private metadataService: MetadataService,\n private securityService: SecurityService,\n private appManager: AppManagerService,\n private app: App,\n private ngZone: NgZone,\n private elRef: ElementRef,\n private spinnerService: AbstractSpinnerService,\n private componentRefProvider: ComponentRefProvider,\n private router: Router\n ) {}\n\n getTargetNode() {\n return this.elRef.nativeElement;\n }\n\n resetViewContainer() {\n this.vcRef.clear();\n const $target = this.getTargetNode();\n $target.innerHTML = '';\n }\n\n renderPage(pageName) {\n const $target = this.getTargetNode();\n\n this.appManager.loadAppVariables()\n .then(async () => {\n const pageComponentFactoryRef = await this.componentRefProvider.getComponentFactoryRef(pageName, ComponentType.PAGE);\n if (pageComponentFactoryRef) {\n const componentRef = this.vcRef.createComponent(pageComponentFactoryRef, 0, this.injector);\n this.instance = componentRef.instance;\n $target.appendChild(componentRef.location.nativeElement);\n } else {\n BasePageComponent.clear();\n }\n if (this.vcRef.length > 1) {\n this.vcRef.remove(1);\n }\n });\n }\n\n renderPrefabPreviewPage() {\n this.router.navigate(['prefab-preview']);\n }\n\n loadPage(pageName) {\n this.ngZone.run(() => {\n if (pageName) {\n this.renderPage(pageName);\n }\n });\n }\n\n ngOnInit() {\n if (this.app.isPrefabType) {\n // there is only one route\n this.renderPrefabPreviewPage();\n } else {\n $(this.getTargetNode()).find('>div').first().remove();\n this.subscription = this.route.params.subscribe(({pageName}: any) => {\n this.loadPage(pageName);\n });\n }\n }\n\n ngOnDestroy() {\n this.vcRef.clear();\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n ngOnAttach() {\n this.getTargetNode().appendChild(this.instance.$page[0]);\n this.instance.ngOnAttach();\n }\n\n ngOnDetach() {\n this.instance.ngOnDetach();\n }\n}\n","import { MetadataResolve, AppExtensionJSResolve } from '@wm/runtime/base';\nimport { SecurityConfigResolve, PrefabPreviewComponent, CanDeactivatePageGuard, EmptyPageComponent } from '@wm/runtime/base';\n\nimport { PageWrapperComponent } from './components/page-wrapper.component';\nimport {Routes} from '@angular/router';\n\nconst appDependenciesResolve = {\n securityConfig: SecurityConfigResolve,\n metadata: MetadataResolve,\n appMetaConfig: AppExtensionJSResolve\n};\n\nexport const routes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n resolve: appDependenciesResolve,\n component: EmptyPageComponent\n },\n {\n path: 'prefab-preview',\n pathMatch: 'full',\n resolve: appDependenciesResolve,\n component: PrefabPreviewComponent\n },\n {\n path: ':pageName',\n pathMatch: 'full',\n resolve: appDependenciesResolve,\n component: PageWrapperComponent,\n canDeactivate: [CanDeactivatePageGuard]\n }\n];\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { AppJSProvider } from '@wm/runtime/base';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppJSProviderService extends AppJSProvider {\n constructor(private $http: HttpClient) {\n super();\n }\n\n public getAppScriptFn(): Promise<Function> {\n return this.$http.get('./app.js', {responseType: 'text'})\n .toPromise()\n .then(script => new Function('App', 'Utils', 'Injector', script));\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AbstractHttpService, App } from '@wm/core';\n\nconst cache = new Map<string, string>();\n\n@Injectable()\nexport class AppResourceManagerService {\n\n get(url: string, useCache?: boolean): string | any {\n const cachedResponse = cache.get(url);\n\n if (cachedResponse) {\n return Promise.resolve(cachedResponse);\n }\n\n return this.$http.get(url).then(response => {\n if (useCache) {\n cache.set(url, response);\n }\n return response;\n });\n }\n\n public clearCache() {\n cache.clear();\n }\n\n constructor(private $http: AbstractHttpService) {}\n}\n","import { Injectable } from '@angular/core';\nimport { AppVariablesProvider } from '@wm/runtime/base';\nimport { AppResourceManagerService } from './app-resource-manager.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppVariablesProviderService extends AppVariablesProvider {\n constructor(private resourceManager: AppResourceManagerService) {\n super();\n }\n\n public async getAppVariables(): Promise<any> {\n return this.resourceManager.get('./app.variables.json');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AppExtensionProvider } from '@wm/runtime/base';\nimport { appendScriptToHead } from '@wm/core';\n@Injectable({\n providedIn: 'root'\n})\nexport class AppExtensionProviderService extends AppExtensionProvider {\n\n // With renderer create element, added onloaded callback the append to the body\n public loadFormatterConfigScript(callback:Function):void {\n try{\n appendScriptToHead(callback);\n }catch(e){\n console.warn('Error while loading the formatters.js file');\n }\n }\n}\n","import {\n Compiler,\n Component,\n CUSTOM_ELEMENTS_SCHEMA, forwardRef, Inject,\n Injectable,\n Injector,\n NgModule,\n NO_ERRORS_SCHEMA,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { App, getValidJSON, UserDefinedExecutionContext } from '@wm/core';\nimport { transpile, scopeComponentStyles } from '@wm/transpiler';\nimport {\n AppManagerService,\n BasePageComponent,\n BasePartialComponent,\n BasePrefabComponent,\n ComponentRefProvider,\n ComponentType,\n RuntimeBaseModule,\n getPrefabMinJsonUrl,\n getPrefabPartialJsonUrl\n} from '@wm/runtime/base';\n\nimport { AppResourceManagerService } from './app-resource-manager.service';\nimport {isString, isUndefined} from \"lodash-es\";\n\ninterface IPageMinJSON {\n markup: string;\n script: string;\n styles: string;\n variables: string;\n config?: string;\n}\n\ndeclare const window: any;\n\nconst fragmentCache = new Map<string, any>();\n\nwindow.resourceCache = fragmentCache;\n\nconst componentFactoryRefCache = new Map<ComponentType, Map<string, any>>();\n\ncomponentFactoryRefCache.set(ComponentType.PAGE, new Map<string, any>());\ncomponentFactoryRefCache.set(ComponentType.PARTIAL, new Map<string, any>());\ncomponentFactoryRefCache.set(ComponentType.PREFAB, new Map<string, any>());\n\nconst _decodeURIComponent = (str: string) => decodeURIComponent(str.replace(/\\+/g, ' '));\n\nconst getFragmentUrl = (fragmentName: string, type: ComponentType, options?) => {\n if (type === ComponentType.PAGE || type === ComponentType.PARTIAL) {\n return options && options.prefab ? getPrefabPartialJsonUrl(options.prefab, fragmentName) : `./pages/${fragmentName}/page.min.json`;\n } else if (type === ComponentType.PREFAB) {\n return getPrefabMinJsonUrl(fragmentName);\n }\n};\n\nconst scriptCache = new Map<string, Function>();\nconst execScript = (\n script: string,\n identifier: string,\n ctx: string,\n instance: any,\n app: any,\n utils: any\n) => {\n let fn = scriptCache.get(identifier);\n // Fix for [WMS-21196]: Incorrect script is being assigned, when 2 prefabs have same partial name (i.e. same identifier).\n if ((ctx === 'Partial' && !isUndefined(instance.Prefab)) || !fn) {\n fn = new Function(ctx, 'App', 'Utils', script);\n scriptCache.set(identifier, fn);\n }\n fn(instance, app, utils);\n};\n\nclass BaseDynamicComponent {\n init() {}\n}\n\nconst getDynamicModule = (componentRef: any) => {\n return NgModule({\n declarations: [componentRef],\n imports: [\n RuntimeBaseModule,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA]\n })(class DynamicModule {});\n};\n\nconst getDynamicComponent = (\n componentName,\n type: ComponentType,\n template: string,\n css: string,\n script: any,\n variables: string,\n) => {\n\n const componentDef = {\n template,\n styles: [css],\n encapsulation: ViewEncapsulation.None\n };\n\n let BaseClass: any = BaseDynamicComponent;\n let selector = '';\n let context = '';\n\n switch (type) {\n case ComponentType.PAGE:\n BaseClass = BasePageComponent;\n selector = `app-page-${componentName}`;\n context = 'Page';\n break;\n case ComponentType.PARTIAL:\n BaseClass = BasePartialComponent;\n selector = `app-partial-${componentName}`;\n context = 'Partial';\n break;\n case ComponentType.PREFAB:\n BaseClass = BasePrefabComponent;\n selector = `app-prefab-${componentName}`;\n context = 'Prefab';\n break;\n }\n\n class DynamicComponent extends BaseClass {\n isDynamicComponent: boolean = true;\n pageName;\n partialName;\n prefabName;\n constructor(@Inject(Injector) public injector: Injector) {\n super();\n this.injector = injector;\n switch (type) {\n case ComponentType.PAGE:\n this.pageName = componentName;\n break;\n case ComponentType.PARTIAL:\n this.partialName = componentName;\n break;\n case ComponentType.PREFAB:\n this.prefabName = componentName;\n break;\n }\n\n super.init();\n }\n\n evalUserScript(instance: any, appContext: any, utils: any) {\n execScript(script, selector, context, instance, appContext, utils);\n }\n\n getVariables() {\n return JSON.parse(variables);\n }\n\n // in preview mode, there will be no function registered. functions will be generated dynamically through $parseEvent and $parseExpr\n getExpressions() {\n return {};\n }\n }\n\n const component = Component({\n ...componentDef,\n selector,\n providers: [\n {\n provide: UserDefinedExecutionContext,\n useExisting: DynamicComponent\n }\n ]\n })(DynamicComponent)\n return component;\n};\n\n@Injectable()\nexport class ComponentRefProviderService extends ComponentRefProvider {\n\n private loadResourcesOfFragment(componentName, componentType, options?): Promise<IPageMinJSON> {\n const url = getFragmentUrl(componentName, componentType, options);\n\n const resource = fragmentCache.get(url);\n\n if (resource) {\n return Promise.resolve(resource);\n }\n\n return this.resouceMngr.get(url, true)\n .then(({markup, script, styles, variables}: IPageMinJSON) => {\n const response = {\n markup: transpile(_decodeURIComponent(markup)).markup,\n script: _decodeURIComponent(script),\n styles: scopeComponentStyles(componentName, componentType, _decodeURIComponent(styles)),\n variables: getValidJSON(_decodeURIComponent(variables))\n };\n fragmentCache.set(url, response);\n\n return response;\n }, e => {\n const status = e.details.status;\n const errorMsgMap = {\n 404 : this.app.appLocale.MESSAGE_PAGE_NOT_FOUND || 'The page you are trying to reach is not available',\n 403 : this.app.appLocale.LABEL_ACCESS_DENIED || 'Access Denied'\n };\n return Promise.reject(errorMsgMap[status]);\n });\n }\n\n constructor(\n private resouceMngr: AppResourceManagerService,\n private app: App,\n private appManager: AppManagerService,\n private compiler: Compiler\n ) {\n super();\n }\n\n public async getComponentFactoryRef(componentName: string, componentType: ComponentType, options?: {}): Promise<any> {\n // check in the cache.\n const componentFactoryMap = componentFactoryRefCache.get(componentType);\n let componentFactoryRef;\n if (componentFactoryMap) {\n const updatedComponentName = (options && options['prefab']) ? options['prefab'] + componentName : componentName;\n componentFactoryRef = componentFactoryMap.get(updatedComponentName);\n\n if (componentFactoryRef) {\n return componentFactoryRef;\n }\n }\n\n return this.loadResourcesOfFragment(componentName, componentType, options)\n .then(({markup, script, styles, variables}) => {\n\n const componentDef = getDynamicComponent(componentName, componentType, markup, styles, script, JSON.stringify(variables));\n const moduleDef = getDynamicModule(componentDef);\n\n componentFactoryRef = this.compiler\n .compileModuleAndAllComponentsSync(moduleDef)\n .componentFactories\n .filter(factory => // @ts-ignore\n factory.componentType === componentDef)[0];\n const updatedComponentName = (options && options['prefab']) ? options['prefab'] + componentName : componentName;\n componentFactoryRefCache.get(componentType).set(updatedComponentName, componentFactoryRef);\n\n return componentFactoryRef;\n }, (err) => {\n if (err) {\n const msg = \"Error while loading page\";\n // console the error for easy debugging\n console.log(msg, err);\n this.appManager.notifyApp(\n isString(err) ? err : msg + ', check browser console for error details',\n 'error'\n );\n }\n });\n }\n\n // clears the cache map\n public clearComponentFactoryRefCache() {\n this.resouceMngr.clearCache();\n fragmentCache.clear();\n componentFactoryRefCache.forEach(map => {\n map.clear();\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { getPrefabConfigUrl, PrefabConfigProvider } from '@wm/runtime/base';\n\nimport { AppResourceManagerService } from './app-resource-manager.service';\n\nconst cache = new Map<string, any>();\n@Injectable()\nexport class PrefabConfigProviderService extends PrefabConfigProvider {\n\n constructor(private resourceMngr: AppResourceManagerService) {\n super();\n }\n\n public getConfig(prefabName: string): Promise<any> {\n const config = cache.get(prefabName);\n if (config) {\n return Promise.resolve(config);\n }\n\n return this.resourceMngr.get(getPrefabConfigUrl(prefabName))\n .then(_config => {\n cache.set(prefabName, _config);\n return _config;\n });\n }\n}\n","import { Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { CommonModule } from '@angular/common';\nimport { RouteReuseStrategy, RouterModule } from '@angular/router';\nimport { HttpClientModule, HttpClientXsrfModule } from '@angular/common/http';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { TypeaheadModule } from 'ngx-bootstrap/typeahead';\nimport { TimepickerModule as ngxTimepickerModule } from 'ngx-bootstrap/timepicker';\nimport { ProgressbarModule } from 'ngx-bootstrap/progressbar';\nimport { PaginationModule as ngxPaginationModule } from 'ngx-bootstrap/pagination';\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { PopoverModule as ngxPopoverModule } from 'ngx-bootstrap/popover';\n\nimport { NgCircleProgressModule } from 'ng-circle-progress';\nimport { ToastNoAnimationModule } from 'ngx-toastr';\nimport { CarouselModule as ngxCarouselModule, } from 'ngx-bootstrap/carousel';\n\nimport {App, getWmProjectProperties, PartialRefProvider} from '@wm/core';\n// Basic widgets\n\nimport { BasicModule } from '@wm/components/basic';\nimport { ProgressModule } from '@wm/components/basic/progress';\nimport { RichTextEditorModule } from '@wm/components/basic/rich-text-editor';\nimport { SearchModule } from '@wm/components/basic/search';\nimport { TreeModule } from '@wm/components/basic/tree';\n\n// input\nimport { InputModule } from '@wm/components/input';\nimport { CalendarModule } from '@wm/components/input/calendar';\nimport { ChipsModule } from '@wm/components/input/chips';\nimport { ColorPickerModule } from '@wm/components/input/color-picker';\nimport { CurrencyModule } from '@wm/components/input/currency';\nimport { EpochModule } from '@wm/components/input/epoch';\nimport { FileUploadModule } from '@wm/components/input/file-upload';\nimport { RatingModule } from '@wm/components/input/rating';\nimport { SliderModule } from '@wm/components/input/slider';\n\nimport { MobileRuntimeDynamicModule, MOBILE_COMPONENT_MODULES_FOR_ROOT } from '@wm/mobile/runtime/dynamic';\n\n// Data\nimport { CardModule } from '@wm/components/data/card';\nimport { FormModule } from '@wm/components/data/form';\nimport { ListModule } from '@wm/components/data/list';\nimport { LiveTableModule } from '@wm/components/data/live-table';\nimport { PaginationModule } from '@wm/components/data/pagination';\nimport { TableModule } from '@wm/components/data/table';\n\n// Chart\nimport { ChartModule } from '@wm/components/chart';\n\n// Containers\nimport { AccordionModule } from '@wm/components/containers/accordion';\nimport { LinearLayoutModule } from '@wm/components/containers/linear-layout';\nimport { LayoutGridModule } from '@wm/components/containers/layout-grid';\nimport { PanelModule } from '@wm/components/containers/panel';\nimport { TabsModule } from '@wm/components/containers/tabs';\nimport { TileModule } from '@wm/components/containers/tile';\nimport { WizardModule } from '@wm/components/containers/wizard';\n\n// Dialogs\nimport { AlertDialogModule } from '@wm/components/dialogs/alert-dialog';\nimport { IframeDialogModule } from '@wm/components/dialogs/iframe-dialog';\nimport { LoginDialogModule } from '@wm/components/dialogs/login-dialog';\nimport { PartialDialogModule } from '@wm/components/dialogs/partial-dialog';\n\n// Navigation\nimport { BreadcrumbModule } from '@wm/components/navigation/breadcrumb';\nimport { MenuModule } from '@wm/components/navigation/menu';\nimport { NavbarModule } from '@wm/components/navigation/navbar';\nimport { PopoverModule } from '@wm/components/navigation/popover';\n\n// Advanced\nimport { CarouselModule } from '@wm/components/advanced/carousel';\nimport { LoginModule } from '@wm/components/advanced/login';\nimport { MarqueeModule } from '@wm/components/advanced/marquee';\n\nimport { PageModule } from '@wm/components/page';\nimport { FooterModule } from '@wm/components/page/footer';\nimport { HeaderModule } from '@wm/components/page/header';\nimport { LeftPanelModule } from '@wm/components/page/left-panel';\nimport { RightPanelModule } from '@wm/components/page/right-panel';\nimport { TopNavModule } from '@wm/components/page/top-nav';\n\nimport { PrefabModule } from '@wm/components/prefab';\n\nimport {\n AppComponent,\n AppJSProvider,\n AppVariablesProvider,\n ComponentRefProvider,\n PrefabConfigProvider,\n WmRouteReuseStrategy,\n WM_MODULES_FOR_ROOT,\n REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS,\n AppExtensionProvider\n} from '@wm/runtime/base';\n\nimport { routes } from './app.routes';\nimport { PageWrapperComponent } from './components/page-wrapper.component';\nimport { AppJSProviderService } from './services/app-js-provider.service';\nimport { AppVariablesProviderService } from './services/app-variables-provider.service';\nimport { AppExtensionProviderService } from './services/app-extension.service';\nimport { ComponentRefProviderService } from './services/component-ref-provider.service';\nimport { PrefabConfigProviderService } from './services/prefab-config-provider.service';\nimport { AppResourceManagerService } from './services/app-resource-manager.service';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\nexport const routerModule = RouterModule.forRoot(routes, { useHash: true, scrollPositionRestoration: 'top' });\nexport const toastrModule = ToastNoAnimationModule.forRoot({ maxOpened: 1, autoDismiss: true });\n\n// In angular 15, xsrf headerName should not be null. Angular 15 is not using default header value like it used to send in calls\n// for angular 12 if the headerName is null . The user has to take care of not sending null values. Then ng 15 uses default value for headerName\nlet xsrfHeaderName = getWmProjectProperties().xsrf_header_name;\nlet xsrfOptions = {\n cookieName: 'wm_xsrf_token'\n}\nif(xsrfHeaderName) {\n xsrfOptions['headerName'] = xsrfHeaderName;\n}\nexport const httpClientXsrfModule = HttpClientXsrfModule.withOptions(xsrfOptions);\n\nexport const modalModule: ModuleWithProviders<ModalModule> = ModalModule.forRoot();\nexport const bsDatePickerModule: ModuleWithProviders<BsDatepickerModule> = BsDatepickerModule.forRoot();\nexport const timepickerModule: ModuleWithProviders<ngxTimepickerModule> = ngxTimepickerModule.forRoot();\nexport const bsDropdownModule: ModuleWithProviders<BsDropdownModule> = BsDropdownModule.forRoot();\nexport const paginationModule: ModuleWithProviders<ngxPaginationModule> = ngxPaginationModule.forRoot();\nexport const typeaheadModule: ModuleWithProviders<TypeaheadModule> = TypeaheadModule.forRoot();\nexport const progressbarModule: ModuleWithProviders<ProgressbarModule> = ProgressbarModule.forRoot();\nexport const carouselModule: ModuleWithProviders<ngxCarouselModule> = ngxCarouselModule.forRoot();\nexport const popoverModule: ModuleWithProviders<ngxPopoverModule> = ngxPopoverModule.forRoot();\nexport const ngCircleProgressModule: ModuleWithProviders<NgCircleProgressModule> = NgCircleProgressModule.forRoot({});\nexport const tooltipModule: ModuleWithProviders<TooltipModule> = TooltipModule.forRoot();\n\nconst componentsModule = [\n // NGX Bootstrap\n BsDatepickerModule,\n ngxTimepickerModule,\n BsDropdownModule,\n ngxPaginationModule,\n TypeaheadModule,\n ProgressbarModule,\n ngxCarouselModule,\n ngxPopoverModule,\n NgCircleProgressModule,\n TooltipModule,\n\n // Basic widgets\n BasicModule,\n ProgressModule,\n RichTextEditorModule,\n SearchModule,\n TreeModule,\n\n // Input\n CalendarModule,\n ChipsModule,\n ColorPickerModule,\n CurrencyModule,\n EpochModule,\n FileUploadModule,\n InputModule,\n RatingModule,\n SliderModule,\n\n // Data\n CardModule,\n FormModule,\n ListModule,\n LiveTableModule,\n PaginationModule,\n TableModule,\n\n // chart\n ChartModule,\n\n // container modules\n AccordionModule,\n LinearLayoutModule,\n LayoutGridModule,\n PanelModule,\n TabsModule,\n TileModule,\n WizardModule,\n\n // dialogs\n AlertDialogModule,\n IframeDialogModule,\n LoginDialogModule,\n PartialDialogModule,\n\n // navigation\n BreadcrumbModule,\n MenuModule,\n NavbarModule,\n PopoverModule,\n\n // Advanced\n CarouselModule,\n LoginModule,\n MarqueeModule,\n\n PageModule,\n FooterModule,\n HeaderModule,\n LeftPanelModule,\n RightPanelModule,\n TopNavModule,\n\n PrefabModule\n];\n\nREQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS.push(...componentsModule);\nREQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS.push(...MOBILE_COMPONENT_MODULES_FOR_ROOT);\nREQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS.push(FormsModule, ReactiveFormsModule);\n\n@NgModule({\n declarations: [\n PageWrapperComponent\n ],\n imports: [\n BrowserModule,\n BrowserAnimationsModule,\n CommonModule,\n RouterModule,\n HttpClientModule,\n\n modalModule,\n bsDatePickerModule,\n timepickerModule,\n bsDropdownModule,\n paginationModule,\n typeaheadModule,\n tooltipModule,\n progressbarModule,\n carouselModule,\n popoverModule,\n ngCircleProgressModule,\n\n routerModule,\n toastrModule,\n httpClientXsrfModule,\n\n MobileRuntimeDynamicModule,\n WM_MODULES_FOR_ROOT\n ],\n providers: [\n AppResourceManagerService,\n { provide: AppJSProvider, useClass: AppJSProviderService },\n { provide: AppVariablesProvider, useClass: AppVariablesProviderService },\n { provide: AppExtensionProvider,useClass:AppExtensionProviderService},\n { provide: ComponentRefProvider, useClass: ComponentRefProviderService },\n { provide: PartialRefProvider, useClass: ComponentRefProviderService },\n { provide: PrefabConfigProvider, useClass: PrefabConfigProviderService },\n { provide: RouteReuseStrategy, useClass: WmRouteReuseStrategy }\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule {\n constructor(private app: App, private inj: Injector, private componentRefProvider: ComponentRefProvider) {\n if (window['cordova']) {\n // clear the cached urls on logout, to load the Login Page and not the Main Page as app reload(window.location.reload) is not invoked in mobile\n this.app.subscribe('userLoggedOut', this.componentRefProvider.clearComponentFactoryRefCache.bind(this.componentRefProvider));\n }\n }\n}\n","import { ApplicationRef, enableProdMode, NgModuleRef } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport {isEmpty} from \"lodash-es\";\n\nconst DEBUG_MODE = 'debugMode';\n\nif (sessionStorage.getItem(DEBUG_MODE) !== 'true') {\n enableProdMode();\n}\n\nconsole.time('bootstrap');\n\n\ndocument.addEventListener('DOMContentLoaded', () => {\n new Promise<void|Event>( resolve => {\n if (window['cordova']) {\n document.addEventListener('deviceready', resolve);\n } else {\n resolve();\n }\n }).then(() => platformBrowserDynamic().bootstrapModule(AppModule))\n .then((appModuleRef: NgModuleRef<AppModule>) => {\n const applicationRef = appModuleRef.injector.get(ApplicationRef);\n window.addEventListener('unload', () => {\n applicationRef.components.map(c => c && c.destroy());\n });\n console.timeEnd('bootstrap');\n }, err => console.log(err));\n});\n\n(window as any).debugMode = function(on) {\n if (isEmpty(on)) {\n on = true;\n }\n const value = on ? 'true' : 'false';\n if (sessionStorage.getItem(DEBUG_MODE) !== value) {\n sessionStorage.setItem(DEBUG_MODE, value);\n window.location.reload();\n }\n};\n\nexport default () => {};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","cache","i1.AppResourceManagerService","i2","i3","ngxTimepickerModule","ngxPaginationModule","ngxCarouselModule","ngxPopoverModule","PaginationModule","PopoverModule","CarouselModule"],"mappings":"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"}