@wavemaker/app-ng-runtime 11.10.5-rc.6100 → 11.11.0-next.27920

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 (1167) hide show
  1. package/build-task/bundles/index.umd.js +94 -68
  2. package/build-task/esm2022/advanced/carousel/carousel-template/carousel-template.build.mjs +8 -8
  3. package/build-task/esm2022/containers/repeat-template.build.mjs +5 -5
  4. package/build-task/esm2022/containers/wizard/wizard-step/wizard-step.build.mjs +2 -2
  5. package/build-task/esm2022/containers/wizard/wizard.build.mjs +33 -4
  6. package/build-task/esm2022/data/form/form-field/form-field.build.mjs +10 -10
  7. package/build-task/esm2022/data/table/table-column/table-column.build.mjs +15 -11
  8. package/build-task/esm2022/page/page.build.mjs +2 -8
  9. package/build-task/esm2022/public_api.mjs +1 -1
  10. package/build-task/fesm2022/index.mjs +95 -69
  11. package/build-task/fesm2022/index.mjs.map +1 -1
  12. package/components/advanced/carousel/bundles/index.umd.js +8 -36
  13. package/components/advanced/carousel/carousel-template/carousel-template.directive.d.ts +1 -1
  14. package/components/advanced/carousel/carousel.directive.d.ts +1 -1
  15. package/components/advanced/carousel/esm2022/carousel-template/carousel-template.directive.mjs +3 -2
  16. package/components/advanced/carousel/esm2022/carousel.directive.mjs +3 -2
  17. package/components/advanced/carousel/esm2022/public_api.mjs +1 -2
  18. package/components/advanced/carousel/fesm2022/index.mjs +8 -36
  19. package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  20. package/components/advanced/carousel/public_api.d.ts +0 -1
  21. package/components/advanced/custom/bundles/index.umd.js +8 -33
  22. package/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +1 -1
  23. package/components/advanced/custom/custom-widget.directive.d.ts +1 -1
  24. package/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +3 -2
  25. package/components/advanced/custom/esm2022/custom-widget.directive.mjs +3 -2
  26. package/components/advanced/custom/esm2022/public_api.mjs +1 -2
  27. package/components/advanced/custom/fesm2022/index.mjs +7 -32
  28. package/components/advanced/custom/fesm2022/index.mjs.map +1 -1
  29. package/components/advanced/custom/public_api.d.ts +0 -1
  30. package/components/advanced/login/bundles/index.umd.js +10 -34
  31. package/components/advanced/login/esm2022/login.component.mjs +7 -6
  32. package/components/advanced/login/esm2022/public_api.mjs +1 -2
  33. package/components/advanced/login/fesm2022/index.mjs +8 -32
  34. package/components/advanced/login/fesm2022/index.mjs.map +1 -1
  35. package/components/advanced/login/login.component.d.ts +1 -1
  36. package/components/advanced/login/public_api.d.ts +0 -1
  37. package/components/advanced/marquee/bundles/index.umd.js +6 -29
  38. package/components/advanced/marquee/esm2022/marquee.directive.mjs +3 -2
  39. package/components/advanced/marquee/esm2022/public_api.mjs +1 -2
  40. package/components/advanced/marquee/fesm2022/index.mjs +5 -28
  41. package/components/advanced/marquee/fesm2022/index.mjs.map +1 -1
  42. package/components/advanced/marquee/marquee.directive.d.ts +1 -1
  43. package/components/advanced/marquee/public_api.d.ts +0 -1
  44. package/components/base/bundles/index.umd.js +76 -274
  45. package/components/base/components.module.d.ts +13 -15
  46. package/components/base/directives/show-in-device.directive.d.ts +1 -1
  47. package/components/base/esm2022/components.module.mjs +7 -13
  48. package/components/base/esm2022/directives/show-in-device.directive.mjs +3 -2
  49. package/components/base/esm2022/pipes/custom-pipes.mjs +32 -16
  50. package/components/base/esm2022/pipes/image.pipe.mjs +3 -2
  51. package/components/base/esm2022/pipes/sanitize.pipe.mjs +3 -2
  52. package/components/base/esm2022/pipes/trust-as.pipe.mjs +3 -2
  53. package/components/base/esm2022/public_api.mjs +1 -2
  54. package/components/base/esm2022/utils/form-utils.mjs +2 -1
  55. package/components/base/esm2022/utils/live-utils.mjs +3 -7
  56. package/components/base/esm2022/widgets/common/base/base.component.mjs +3 -5
  57. package/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +3 -2
  58. package/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +3 -2
  59. package/components/base/esm2022/widgets/common/base/text-content.directive.mjs +3 -2
  60. package/components/base/esm2022/widgets/common/container/container.directive.mjs +3 -2
  61. package/components/base/esm2022/widgets/common/dialog/dialog.service.mjs +3 -3
  62. package/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +3 -2
  63. package/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +3 -2
  64. package/components/base/esm2022/widgets/common/message/message.component.mjs +5 -5
  65. package/components/base/esm2022/widgets/common/partial/partial.directive.mjs +3 -2
  66. package/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +5 -3
  67. package/components/base/esm2022/widgets/common/redraw/redrawable.directive.mjs +3 -2
  68. package/components/base/esm2022/widgets/common/repeat-template/repeat-template.directive.mjs +3 -2
  69. package/components/base/fesm2022/index.mjs +76 -272
  70. package/components/base/fesm2022/index.mjs.map +1 -1
  71. package/components/base/pipes/custom-pipes.d.ts +16 -16
  72. package/components/base/pipes/image.pipe.d.ts +1 -1
  73. package/components/base/pipes/sanitize.pipe.d.ts +1 -1
  74. package/components/base/pipes/trust-as.pipe.d.ts +1 -1
  75. package/components/base/public_api.d.ts +0 -1
  76. package/components/base/widgets/common/base/custom-widget-container.directive.d.ts +1 -1
  77. package/components/base/widgets/common/base/partial-container.directive.d.ts +1 -1
  78. package/components/base/widgets/common/base/text-content.directive.d.ts +1 -1
  79. package/components/base/widgets/common/container/container.directive.d.ts +1 -1
  80. package/components/base/widgets/common/item-template/item-template.directive.d.ts +1 -1
  81. package/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +1 -1
  82. package/components/base/widgets/common/message/message.component.d.ts +1 -1
  83. package/components/base/widgets/common/partial/partial.directive.d.ts +1 -1
  84. package/components/base/widgets/common/partial-param/partial-param.directive.d.ts +2 -2
  85. package/components/base/widgets/common/redraw/redrawable.directive.d.ts +1 -1
  86. package/components/base/widgets/common/repeat-template/repeat-template.directive.d.ts +1 -1
  87. package/components/basic/default/anchor/anchor.component.d.ts +1 -1
  88. package/components/basic/default/audio/audio.component.d.ts +1 -1
  89. package/components/basic/default/bundles/index.umd.js +100 -148
  90. package/components/basic/default/esm2022/anchor/anchor.component.mjs +23 -21
  91. package/components/basic/default/esm2022/audio/audio.component.mjs +7 -6
  92. package/components/basic/default/esm2022/html/html.directive.mjs +3 -2
  93. package/components/basic/default/esm2022/icon/icon.component.mjs +17 -16
  94. package/components/basic/default/esm2022/iframe/iframe.component.mjs +14 -13
  95. package/components/basic/default/esm2022/label/label.directive.mjs +3 -2
  96. package/components/basic/default/esm2022/picture/picture.directive.mjs +3 -2
  97. package/components/basic/default/esm2022/picture/picture.props.mjs +1 -5
  98. package/components/basic/default/esm2022/public_api.mjs +1 -2
  99. package/components/basic/default/esm2022/spinner/spinner.component.mjs +26 -24
  100. package/components/basic/default/esm2022/video/video.component.mjs +19 -18
  101. package/components/basic/default/fesm2022/index.mjs +101 -148
  102. package/components/basic/default/fesm2022/index.mjs.map +1 -1
  103. package/components/basic/default/html/html.directive.d.ts +1 -1
  104. package/components/basic/default/icon/icon.component.d.ts +1 -1
  105. package/components/basic/default/iframe/iframe.component.d.ts +1 -1
  106. package/components/basic/default/label/label.directive.d.ts +1 -1
  107. package/components/basic/default/picture/picture.directive.d.ts +1 -1
  108. package/components/basic/default/public_api.d.ts +0 -1
  109. package/components/basic/default/spinner/spinner.component.d.ts +1 -1
  110. package/components/basic/default/video/video.component.d.ts +1 -1
  111. package/components/basic/progress/bundles/index.umd.js +20 -51
  112. package/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +12 -11
  113. package/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +8 -6
  114. package/components/basic/progress/esm2022/public_api.mjs +1 -2
  115. package/components/basic/progress/fesm2022/index.mjs +19 -49
  116. package/components/basic/progress/fesm2022/index.mjs.map +1 -1
  117. package/components/basic/progress/progress-bar/progress-bar.component.d.ts +1 -1
  118. package/components/basic/progress/progress-circle/progress-circle.component.d.ts +1 -1
  119. package/components/basic/progress/public_api.d.ts +0 -1
  120. package/components/basic/rich-text-editor/bundles/index.umd.js +15 -40
  121. package/components/basic/rich-text-editor/esm2022/public_api.mjs +1 -2
  122. package/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +13 -12
  123. package/components/basic/rich-text-editor/fesm2022/index.mjs +13 -37
  124. package/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  125. package/components/basic/rich-text-editor/public_api.d.ts +0 -1
  126. package/components/basic/rich-text-editor/rich-text-editor.component.d.ts +1 -1
  127. package/components/basic/search/bundles/index.umd.js +170 -207
  128. package/components/basic/search/esm2022/public_api.mjs +1 -2
  129. package/components/basic/search/esm2022/scrollable.directive.mjs +3 -2
  130. package/components/basic/search/esm2022/search.component.mjs +76 -72
  131. package/components/basic/search/fesm2022/index.mjs +107 -143
  132. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  133. package/components/basic/search/public_api.d.ts +0 -1
  134. package/components/basic/search/scrollable.directive.d.ts +1 -1
  135. package/components/basic/search/search.component.d.ts +1 -1
  136. package/components/basic/tree/bundles/index.umd.js +9 -33
  137. package/components/basic/tree/esm2022/public_api.mjs +1 -2
  138. package/components/basic/tree/esm2022/tree.component.mjs +7 -6
  139. package/components/basic/tree/fesm2022/index.mjs +8 -32
  140. package/components/basic/tree/fesm2022/index.mjs.map +1 -1
  141. package/components/basic/tree/public_api.d.ts +0 -1
  142. package/components/basic/tree/tree.component.d.ts +1 -1
  143. package/components/chart/bundles/index.umd.js +25 -53
  144. package/components/chart/chart.component.d.ts +1 -1
  145. package/components/chart/esm2022/chart.component.mjs +26 -24
  146. package/components/chart/esm2022/chart.utils.mjs +2 -1
  147. package/components/chart/esm2022/public_api.mjs +1 -2
  148. package/components/chart/fesm2022/index.mjs +26 -52
  149. package/components/chart/fesm2022/index.mjs.map +1 -1
  150. package/components/chart/public_api.d.ts +0 -1
  151. package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +1 -1
  152. package/components/containers/accordion/accordion.directive.d.ts +1 -1
  153. package/components/containers/accordion/bundles/index.umd.js +208 -237
  154. package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +10 -11
  155. package/components/containers/accordion/esm2022/accordion.directive.mjs +5 -4
  156. package/components/containers/accordion/esm2022/public_api.mjs +1 -2
  157. package/components/containers/accordion/fesm2022/index.mjs +189 -217
  158. package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  159. package/components/containers/accordion/public_api.d.ts +0 -1
  160. package/components/containers/layout-grid/bundles/index.umd.js +13 -43
  161. package/components/containers/layout-grid/esm2022/layout-grid-column/layout-grid-column.directive.mjs +7 -9
  162. package/components/containers/layout-grid/esm2022/layout-grid-row/layout-grid-row.directive.mjs +3 -2
  163. package/components/containers/layout-grid/esm2022/layout-grid.directive.mjs +3 -2
  164. package/components/containers/layout-grid/esm2022/public_api.mjs +1 -2
  165. package/components/containers/layout-grid/fesm2022/index.mjs +13 -43
  166. package/components/containers/layout-grid/fesm2022/index.mjs.map +1 -1
  167. package/components/containers/layout-grid/layout-grid-column/layout-grid-column.directive.d.ts +1 -1
  168. package/components/containers/layout-grid/layout-grid-row/layout-grid-row.directive.d.ts +1 -1
  169. package/components/containers/layout-grid/layout-grid.directive.d.ts +1 -1
  170. package/components/containers/layout-grid/public_api.d.ts +0 -1
  171. package/components/containers/linear-layout/bundles/index.umd.js +8 -33
  172. package/components/containers/linear-layout/esm2022/linear-layout-item/linear-layout-item.directive.mjs +3 -2
  173. package/components/containers/linear-layout/esm2022/linear-layout.directive.mjs +3 -2
  174. package/components/containers/linear-layout/esm2022/public_api.mjs +1 -2
  175. package/components/containers/linear-layout/fesm2022/index.mjs +7 -32
  176. package/components/containers/linear-layout/fesm2022/index.mjs.map +1 -1
  177. package/components/containers/linear-layout/linear-layout-item/linear-layout-item.directive.d.ts +1 -1
  178. package/components/containers/linear-layout/linear-layout.directive.d.ts +1 -1
  179. package/components/containers/linear-layout/public_api.d.ts +0 -1
  180. package/components/containers/panel/bundles/index.umd.js +87 -118
  181. package/components/containers/panel/esm2022/panel.component.mjs +48 -46
  182. package/components/containers/panel/esm2022/public_api.mjs +1 -2
  183. package/components/containers/panel/fesm2022/index.mjs +49 -79
  184. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  185. package/components/containers/panel/panel.component.d.ts +1 -1
  186. package/components/containers/panel/public_api.d.ts +0 -1
  187. package/components/containers/tabs/bundles/index.umd.js +84 -116
  188. package/components/containers/tabs/esm2022/public_api.mjs +1 -2
  189. package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +8 -10
  190. package/components/containers/tabs/esm2022/tabs.component.mjs +35 -33
  191. package/components/containers/tabs/esm2022/tabs.props.mjs +1 -5
  192. package/components/containers/tabs/fesm2022/index.mjs +45 -76
  193. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  194. package/components/containers/tabs/public_api.d.ts +0 -1
  195. package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +1 -1
  196. package/components/containers/tabs/tabs.component.d.ts +1 -1
  197. package/components/containers/tile/bundles/index.umd.js +6 -29
  198. package/components/containers/tile/esm2022/public_api.mjs +1 -2
  199. package/components/containers/tile/esm2022/tile.directive.mjs +3 -2
  200. package/components/containers/tile/fesm2022/index.mjs +5 -28
  201. package/components/containers/tile/fesm2022/index.mjs.map +1 -1
  202. package/components/containers/tile/public_api.d.ts +0 -1
  203. package/components/containers/tile/tile.directive.d.ts +1 -1
  204. package/components/containers/wizard/bundles/index.umd.js +355 -186
  205. package/components/containers/wizard/esm2022/public_api.mjs +2 -3
  206. package/components/containers/wizard/esm2022/wizard-action/wizard-action.directive.mjs +3 -2
  207. package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +176 -0
  208. package/components/containers/wizard/esm2022/wizard-step/wizard-step.props.mjs +8 -5
  209. package/components/containers/wizard/esm2022/wizard.component.mjs +264 -102
  210. package/components/containers/wizard/esm2022/wizard.props.mjs +8 -4
  211. package/components/containers/wizard/fesm2022/index.mjs +323 -152
  212. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  213. package/components/containers/wizard/public_api.d.ts +1 -2
  214. package/components/containers/wizard/wizard-action/wizard-action.directive.d.ts +1 -1
  215. package/components/containers/wizard/wizard-step/{wizard-step.directive.d.ts → wizard-step.component.d.ts} +12 -6
  216. package/components/containers/wizard/wizard.component.d.ts +64 -18
  217. package/components/data/card/bundles/index.umd.js +92 -135
  218. package/components/data/card/card-actions/card-actions.directive.d.ts +1 -1
  219. package/components/data/card/card-content/card-content.component.d.ts +1 -1
  220. package/components/data/card/card-footer/card-footer.directive.d.ts +1 -1
  221. package/components/data/card/card.component.d.ts +1 -1
  222. package/components/data/card/esm2022/card-actions/card-actions.directive.mjs +3 -2
  223. package/components/data/card/esm2022/card-content/card-content.component.mjs +7 -6
  224. package/components/data/card/esm2022/card-footer/card-footer.directive.mjs +3 -2
  225. package/components/data/card/esm2022/card.component.mjs +39 -38
  226. package/components/data/card/esm2022/public_api.mjs +1 -2
  227. package/components/data/card/fesm2022/index.mjs +49 -92
  228. package/components/data/card/fesm2022/index.mjs.map +1 -1
  229. package/components/data/card/public_api.d.ts +0 -1
  230. package/components/data/form/bundles/index.umd.js +115 -182
  231. package/components/data/form/esm2022/form-action/form-action.directive.mjs +3 -2
  232. package/components/data/form/esm2022/form-field/form-field.directive.mjs +3 -2
  233. package/components/data/form/esm2022/form-widget.directive.mjs +3 -2
  234. package/components/data/form/esm2022/form.component.mjs +101 -104
  235. package/components/data/form/esm2022/form.props.mjs +1 -11
  236. package/components/data/form/esm2022/live-actions/dependson.directive.mjs +3 -2
  237. package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +3 -2
  238. package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +3 -2
  239. package/components/data/form/esm2022/live-form/live-form.directive.mjs +3 -6
  240. package/components/data/form/esm2022/public_api.mjs +1 -2
  241. package/components/data/form/fesm2022/index.mjs +117 -184
  242. package/components/data/form/fesm2022/index.mjs.map +1 -1
  243. package/components/data/form/form-action/form-action.directive.d.ts +1 -1
  244. package/components/data/form/form-field/form-field.directive.d.ts +1 -1
  245. package/components/data/form/form-widget.directive.d.ts +1 -1
  246. package/components/data/form/form.component.d.ts +1 -1
  247. package/components/data/form/live-actions/dependson.directive.d.ts +1 -1
  248. package/components/data/form/live-actions/live-actions.directive.d.ts +1 -1
  249. package/components/data/form/live-filter/live-filter.directive.d.ts +1 -1
  250. package/components/data/form/live-form/live-form.directive.d.ts +1 -1
  251. package/components/data/form/public_api.d.ts +0 -1
  252. package/components/data/list/bundles/index.umd.js +195 -504
  253. package/components/data/list/esm2022/list-item.directive.mjs +4 -3
  254. package/components/data/list/esm2022/list.component.mjs +187 -232
  255. package/components/data/list/esm2022/list.props.mjs +2 -3
  256. package/components/data/list/esm2022/public_api.mjs +1 -2
  257. package/components/data/list/fesm2022/index.mjs +193 -502
  258. package/components/data/list/fesm2022/index.mjs.map +1 -1
  259. package/components/data/list/list-item.directive.d.ts +1 -1
  260. package/components/data/list/list.component.d.ts +1 -1
  261. package/components/data/list/public_api.d.ts +0 -1
  262. package/components/data/live-table/bundles/index.umd.js +9 -33
  263. package/components/data/live-table/esm2022/live-table.component.mjs +7 -6
  264. package/components/data/live-table/esm2022/public_api.mjs +1 -2
  265. package/components/data/live-table/fesm2022/index.mjs +8 -32
  266. package/components/data/live-table/fesm2022/index.mjs.map +1 -1
  267. package/components/data/live-table/live-table.component.d.ts +1 -1
  268. package/components/data/live-table/public_api.d.ts +0 -1
  269. package/components/data/pagination/bundles/index.umd.js +80 -110
  270. package/components/data/pagination/esm2022/pagination.component.mjs +80 -76
  271. package/components/data/pagination/esm2022/public_api.mjs +1 -2
  272. package/components/data/pagination/fesm2022/index.mjs +81 -110
  273. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  274. package/components/data/pagination/pagination.component.d.ts +1 -1
  275. package/components/data/pagination/public_api.d.ts +0 -1
  276. package/components/data/table/bundles/index.umd.js +66 -135
  277. package/components/data/table/esm2022/public_api.mjs +1 -2
  278. package/components/data/table/esm2022/table-action/table-action.directive.mjs +3 -2
  279. package/components/data/table/esm2022/table-column/table-column.directive.mjs +3 -2
  280. package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +3 -2
  281. package/components/data/table/esm2022/table-cud.directive.mjs +3 -2
  282. package/components/data/table/esm2022/table-filter.directive.mjs +4 -2
  283. package/components/data/table/esm2022/table-row/table-row.directive.mjs +3 -2
  284. package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +3 -2
  285. package/components/data/table/esm2022/table.component.mjs +50 -49
  286. package/components/data/table/fesm2022/index.mjs +70 -140
  287. package/components/data/table/fesm2022/index.mjs.map +1 -1
  288. package/components/data/table/public_api.d.ts +0 -1
  289. package/components/data/table/table-action/table-action.directive.d.ts +1 -1
  290. package/components/data/table/table-column/table-column.directive.d.ts +1 -1
  291. package/components/data/table/table-column-group/table-column-group.directive.d.ts +1 -1
  292. package/components/data/table/table-cud.directive.d.ts +1 -1
  293. package/components/data/table/table-filter.directive.d.ts +1 -1
  294. package/components/data/table/table-row/table-row.directive.d.ts +1 -1
  295. package/components/data/table/table-row-action/table-row-action.directive.d.ts +1 -1
  296. package/components/data/table/table.component.d.ts +1 -1
  297. package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +1 -1
  298. package/components/dialogs/alert-dialog/bundles/index.umd.js +32 -64
  299. package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +10 -10
  300. package/components/dialogs/alert-dialog/esm2022/public_api.mjs +1 -2
  301. package/components/dialogs/alert-dialog/fesm2022/index.mjs +11 -43
  302. package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  303. package/components/dialogs/alert-dialog/public_api.d.ts +0 -1
  304. package/components/dialogs/confirm-dialog/bundles/index.umd.js +10 -42
  305. package/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +1 -1
  306. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +9 -9
  307. package/components/dialogs/confirm-dialog/esm2022/public_api.mjs +1 -2
  308. package/components/dialogs/confirm-dialog/fesm2022/index.mjs +10 -42
  309. package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  310. package/components/dialogs/confirm-dialog/public_api.d.ts +0 -1
  311. package/components/dialogs/default/bundles/index.umd.js +76 -136
  312. package/components/dialogs/default/dialog-body/dialog-body.directive.d.ts +1 -1
  313. package/components/dialogs/default/dialog-footer/dialog-footer.directive.d.ts +1 -1
  314. package/components/dialogs/default/dialog-header/dialog-header.component.d.ts +1 -1
  315. package/components/dialogs/default/esm2022/base-dialog.mjs +3 -3
  316. package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +3 -2
  317. package/components/dialogs/default/esm2022/dialog-footer/dialog-footer.directive.mjs +3 -2
  318. package/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +70 -97
  319. package/components/dialogs/default/esm2022/public_api.mjs +1 -2
  320. package/components/dialogs/default/fesm2022/index.mjs +78 -137
  321. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  322. package/components/dialogs/default/public_api.d.ts +0 -1
  323. package/components/dialogs/design-dialog/bundles/index.umd.js +16 -47
  324. package/components/dialogs/design-dialog/dialog.component.d.ts +1 -1
  325. package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +14 -13
  326. package/components/dialogs/design-dialog/esm2022/public_api.mjs +1 -2
  327. package/components/dialogs/design-dialog/fesm2022/index.mjs +14 -45
  328. package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  329. package/components/dialogs/design-dialog/public_api.d.ts +0 -1
  330. package/components/dialogs/iframe-dialog/bundles/index.umd.js +20 -57
  331. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +21 -21
  332. package/components/dialogs/iframe-dialog/esm2022/public_api.mjs +1 -2
  333. package/components/dialogs/iframe-dialog/fesm2022/index.mjs +21 -57
  334. package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  335. package/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +1 -1
  336. package/components/dialogs/iframe-dialog/public_api.d.ts +0 -1
  337. package/components/dialogs/login-dialog/bundles/index.umd.js +6 -38
  338. package/components/dialogs/login-dialog/esm2022/login-dialog.directive.mjs +3 -2
  339. package/components/dialogs/login-dialog/esm2022/public_api.mjs +1 -2
  340. package/components/dialogs/login-dialog/fesm2022/index.mjs +6 -41
  341. package/components/dialogs/login-dialog/fesm2022/index.mjs.map +1 -1
  342. package/components/dialogs/login-dialog/login-dialog.directive.d.ts +1 -1
  343. package/components/dialogs/login-dialog/public_api.d.ts +0 -1
  344. package/components/dialogs/partial-dialog/bundles/index.umd.js +17 -49
  345. package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +16 -15
  346. package/components/dialogs/partial-dialog/esm2022/public_api.mjs +1 -2
  347. package/components/dialogs/partial-dialog/fesm2022/index.mjs +16 -47
  348. package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  349. package/components/dialogs/partial-dialog/partial-dialog.component.d.ts +1 -1
  350. package/components/dialogs/partial-dialog/public_api.d.ts +0 -1
  351. package/components/input/calendar/bundles/index.umd.js +19 -46
  352. package/components/input/calendar/calendar.component.d.ts +1 -1
  353. package/components/input/calendar/esm2022/calendar.component.mjs +24 -10
  354. package/components/input/calendar/esm2022/calendar.props.mjs +1 -1
  355. package/components/input/calendar/esm2022/public_api.mjs +1 -2
  356. package/components/input/calendar/fesm2022/index.mjs +26 -48
  357. package/components/input/calendar/fesm2022/index.mjs.map +1 -1
  358. package/components/input/calendar/public_api.d.ts +0 -1
  359. package/components/input/chips/bundles/index.umd.js +86 -114
  360. package/components/input/chips/chips.component.d.ts +1 -1
  361. package/components/input/chips/esm2022/chips.component.mjs +28 -27
  362. package/components/input/chips/esm2022/public_api.mjs +1 -2
  363. package/components/input/chips/fesm2022/index.mjs +29 -56
  364. package/components/input/chips/fesm2022/index.mjs.map +1 -1
  365. package/components/input/chips/public_api.d.ts +0 -1
  366. package/components/input/color-picker/bundles/index.umd.js +10 -40
  367. package/components/input/color-picker/color-picker.component.d.ts +1 -1
  368. package/components/input/color-picker/esm2022/color-picker.component.mjs +10 -6
  369. package/components/input/color-picker/esm2022/public_api.mjs +1 -2
  370. package/components/input/color-picker/fesm2022/index.mjs +11 -40
  371. package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  372. package/components/input/color-picker/public_api.d.ts +0 -1
  373. package/components/input/currency/bundles/index.umd.js +11 -41
  374. package/components/input/currency/currency.component.d.ts +1 -1
  375. package/components/input/currency/esm2022/currency.component.mjs +8 -6
  376. package/components/input/currency/esm2022/public_api.mjs +1 -2
  377. package/components/input/currency/fesm2022/index.mjs +11 -41
  378. package/components/input/currency/fesm2022/index.mjs.map +1 -1
  379. package/components/input/currency/public_api.d.ts +0 -1
  380. package/components/input/default/bundles/index.umd.js +2183 -2263
  381. package/components/input/default/button/button.component.d.ts +1 -1
  382. package/components/input/default/button-group/button-group.directive.d.ts +1 -1
  383. package/components/input/default/caption-position.directive.d.ts +1 -1
  384. package/components/input/default/checkbox/checkbox.component.d.ts +1 -1
  385. package/components/input/default/checkboxset/checkboxset.component.d.ts +1 -1
  386. package/components/input/default/composite/composite.directive.d.ts +1 -1
  387. package/components/input/default/esm2022/button/button.component.mjs +23 -21
  388. package/components/input/default/esm2022/button-group/button-group.directive.mjs +3 -2
  389. package/components/input/default/esm2022/caption-position.directive.mjs +3 -2
  390. package/components/input/default/esm2022/checkbox/checkbox.component.mjs +9 -6
  391. package/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +73 -72
  392. package/components/input/default/esm2022/composite/composite.directive.mjs +3 -2
  393. package/components/input/default/esm2022/number/number.component.mjs +9 -6
  394. package/components/input/default/esm2022/public_api.mjs +1 -2
  395. package/components/input/default/esm2022/radioset/radioset.component.mjs +73 -72
  396. package/components/input/default/esm2022/select/select.component.mjs +29 -32
  397. package/components/input/default/esm2022/switch/switch.component.mjs +29 -27
  398. package/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +9 -6
  399. package/components/input/default/esm2022/text/color/input-color.component.mjs +9 -6
  400. package/components/input/default/esm2022/text/email/input-email.component.mjs +9 -6
  401. package/components/input/default/esm2022/text/number/input-number.component.mjs +9 -6
  402. package/components/input/default/esm2022/text/text/input-text.component.mjs +10 -6
  403. package/components/input/default/esm2022/textarea/textarea.component.mjs +14 -11
  404. package/components/input/default/fesm2022/index.mjs +2198 -2277
  405. package/components/input/default/fesm2022/index.mjs.map +1 -1
  406. package/components/input/default/number/number.component.d.ts +1 -1
  407. package/components/input/default/public_api.d.ts +0 -1
  408. package/components/input/default/radioset/radioset.component.d.ts +1 -1
  409. package/components/input/default/select/select.component.d.ts +1 -1
  410. package/components/input/default/switch/switch.component.d.ts +1 -1
  411. package/components/input/default/text/calendar/input-calendar.component.d.ts +1 -1
  412. package/components/input/default/text/color/input-color.component.d.ts +1 -1
  413. package/components/input/default/text/email/input-email.component.d.ts +1 -1
  414. package/components/input/default/text/number/input-number.component.d.ts +1 -1
  415. package/components/input/default/text/text/input-text.component.d.ts +1 -1
  416. package/components/input/default/textarea/textarea.component.d.ts +1 -1
  417. package/components/input/epoch/base-date-time.component.d.ts +0 -1
  418. package/components/input/epoch/bundles/index.umd.js +181 -229
  419. package/components/input/epoch/date/date.component.d.ts +1 -1
  420. package/components/input/epoch/date/imaskUtil.d.ts +2 -2
  421. package/components/input/epoch/date-time/date-time-picker.component.d.ts +6 -6
  422. package/components/input/epoch/date-time/date-time.component.d.ts +1 -1
  423. package/components/input/epoch/esm2022/base-date-time.component.mjs +5 -9
  424. package/components/input/epoch/esm2022/date/date.component.mjs +19 -18
  425. package/components/input/epoch/esm2022/date/imaskUtil.mjs +2 -1
  426. package/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +75 -62
  427. package/components/input/epoch/esm2022/date-time/date-time.component.mjs +27 -24
  428. package/components/input/epoch/esm2022/picker/picker.component.mjs +33 -28
  429. package/components/input/epoch/esm2022/public_api.mjs +1 -2
  430. package/components/input/epoch/esm2022/time/time.component.mjs +24 -21
  431. package/components/input/epoch/fesm2022/index.mjs +158 -204
  432. package/components/input/epoch/fesm2022/index.mjs.map +1 -1
  433. package/components/input/epoch/picker/picker.component.d.ts +2 -2
  434. package/components/input/epoch/public_api.d.ts +0 -1
  435. package/components/input/epoch/time/time.component.d.ts +1 -1
  436. package/components/input/file-upload/bundles/index.umd.js +135 -178
  437. package/components/input/file-upload/esm2022/file-upload.component.mjs +133 -150
  438. package/components/input/file-upload/esm2022/public_api.mjs +1 -2
  439. package/components/input/file-upload/fesm2022/index.mjs +133 -175
  440. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  441. package/components/input/file-upload/file-upload.component.d.ts +1 -2
  442. package/components/input/file-upload/public_api.d.ts +0 -1
  443. package/components/input/rating/bundles/index.umd.js +50 -77
  444. package/components/input/rating/esm2022/public_api.mjs +1 -2
  445. package/components/input/rating/esm2022/rating.component.mjs +23 -20
  446. package/components/input/rating/fesm2022/index.mjs +23 -49
  447. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  448. package/components/input/rating/public_api.d.ts +0 -1
  449. package/components/input/rating/rating.component.d.ts +1 -1
  450. package/components/input/slider/bundles/index.umd.js +35 -63
  451. package/components/input/slider/esm2022/public_api.mjs +1 -2
  452. package/components/input/slider/esm2022/slider.component.mjs +15 -13
  453. package/components/input/slider/fesm2022/index.mjs +15 -42
  454. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  455. package/components/input/slider/public_api.d.ts +0 -1
  456. package/components/input/slider/slider.component.d.ts +1 -1
  457. package/components/navigation/breadcrumb/breadcrumb.component.d.ts +1 -1
  458. package/components/navigation/breadcrumb/bundles/index.umd.js +40 -67
  459. package/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +23 -21
  460. package/components/navigation/breadcrumb/esm2022/public_api.mjs +1 -2
  461. package/components/navigation/breadcrumb/fesm2022/index.mjs +23 -50
  462. package/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  463. package/components/navigation/breadcrumb/public_api.d.ts +0 -1
  464. package/components/navigation/menu/bundles/index.umd.js +642 -696
  465. package/components/navigation/menu/esm2022/menu-adapator.component.mjs +1 -1
  466. package/components/navigation/menu/esm2022/menu-dropdown/menu-dropdown.component.mjs +11 -9
  467. package/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +24 -18
  468. package/components/navigation/menu/esm2022/menu.component.mjs +34 -31
  469. package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +3 -2
  470. package/components/navigation/menu/esm2022/nav/nav.component.mjs +39 -29
  471. package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +6 -3
  472. package/components/navigation/menu/esm2022/public_api.mjs +1 -2
  473. package/components/navigation/menu/fesm2022/index.mjs +534 -587
  474. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  475. package/components/navigation/menu/menu-dropdown/menu-dropdown.component.d.ts +1 -1
  476. package/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +1 -1
  477. package/components/navigation/menu/menu.component.d.ts +1 -1
  478. package/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +1 -1
  479. package/components/navigation/menu/nav/nav.component.d.ts +1 -1
  480. package/components/navigation/menu/nav/navigation-control.directive.d.ts +1 -1
  481. package/components/navigation/menu/public_api.d.ts +0 -1
  482. package/components/navigation/navbar/bundles/index.umd.js +20 -44
  483. package/components/navigation/navbar/esm2022/navbar.component.mjs +18 -16
  484. package/components/navigation/navbar/esm2022/public_api.mjs +1 -2
  485. package/components/navigation/navbar/fesm2022/index.mjs +18 -41
  486. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  487. package/components/navigation/navbar/navbar.component.d.ts +1 -1
  488. package/components/navigation/navbar/public_api.d.ts +0 -1
  489. package/components/navigation/popover/bundles/index.umd.js +12 -43
  490. package/components/navigation/popover/esm2022/popover.component.mjs +11 -9
  491. package/components/navigation/popover/esm2022/public_api.mjs +1 -2
  492. package/components/navigation/popover/fesm2022/index.mjs +11 -41
  493. package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  494. package/components/navigation/popover/popover.component.d.ts +1 -1
  495. package/components/navigation/popover/public_api.d.ts +0 -1
  496. package/components/page/default/bundles/index.umd.js +96 -138
  497. package/components/page/default/content/content.component.d.ts +1 -1
  498. package/components/page/default/esm2022/content/content.component.mjs +7 -6
  499. package/components/page/default/esm2022/layout.directive.mjs +3 -2
  500. package/components/page/default/esm2022/page-content/page-content.component.mjs +7 -6
  501. package/components/page/default/esm2022/page-content/page-content.props.mjs +2 -3
  502. package/components/page/default/esm2022/page.directive.mjs +3 -2
  503. package/components/page/default/esm2022/public_api.mjs +1 -2
  504. package/components/page/default/esm2022/router-outlet.directive.mjs +3 -2
  505. package/components/page/default/esm2022/spa-page.directive.mjs +3 -2
  506. package/components/page/default/fesm2022/index.mjs +96 -138
  507. package/components/page/default/fesm2022/index.mjs.map +1 -1
  508. package/components/page/default/layout.directive.d.ts +1 -1
  509. package/components/page/default/page-content/page-content.component.d.ts +1 -1
  510. package/components/page/default/page.directive.d.ts +1 -1
  511. package/components/page/default/public_api.d.ts +0 -1
  512. package/components/page/default/router-outlet.directive.d.ts +1 -1
  513. package/components/page/default/spa-page.directive.d.ts +1 -1
  514. package/components/page/footer/bundles/index.umd.js +6 -29
  515. package/components/page/footer/esm2022/footer.directive.mjs +3 -2
  516. package/components/page/footer/esm2022/public_api.mjs +1 -2
  517. package/components/page/footer/fesm2022/index.mjs +5 -28
  518. package/components/page/footer/fesm2022/index.mjs.map +1 -1
  519. package/components/page/footer/footer.directive.d.ts +1 -1
  520. package/components/page/footer/public_api.d.ts +0 -1
  521. package/components/page/header/bundles/index.umd.js +9 -33
  522. package/components/page/header/esm2022/header.component.mjs +7 -6
  523. package/components/page/header/esm2022/public_api.mjs +1 -2
  524. package/components/page/header/fesm2022/index.mjs +8 -32
  525. package/components/page/header/fesm2022/index.mjs.map +1 -1
  526. package/components/page/header/header.component.d.ts +1 -1
  527. package/components/page/header/public_api.d.ts +0 -1
  528. package/components/page/left-panel/bundles/index.umd.js +6 -29
  529. package/components/page/left-panel/esm2022/left-panel.directive.mjs +3 -2
  530. package/components/page/left-panel/esm2022/public_api.mjs +1 -2
  531. package/components/page/left-panel/fesm2022/index.mjs +5 -28
  532. package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  533. package/components/page/left-panel/left-panel.directive.d.ts +1 -1
  534. package/components/page/left-panel/public_api.d.ts +0 -1
  535. package/components/page/right-panel/bundles/index.umd.js +6 -29
  536. package/components/page/right-panel/esm2022/public_api.mjs +1 -2
  537. package/components/page/right-panel/esm2022/right-panel.directive.mjs +3 -2
  538. package/components/page/right-panel/fesm2022/index.mjs +5 -28
  539. package/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  540. package/components/page/right-panel/public_api.d.ts +0 -1
  541. package/components/page/right-panel/right-panel.directive.d.ts +1 -1
  542. package/components/page/top-nav/bundles/index.umd.js +6 -29
  543. package/components/page/top-nav/esm2022/public_api.mjs +1 -2
  544. package/components/page/top-nav/esm2022/top-nav.directive.mjs +3 -2
  545. package/components/page/top-nav/fesm2022/index.mjs +5 -28
  546. package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  547. package/components/page/top-nav/public_api.d.ts +0 -1
  548. package/components/page/top-nav/top-nav.directive.d.ts +1 -1
  549. package/components/prefab/bundles/index.umd.js +8 -33
  550. package/components/prefab/esm2022/prefab-container/prefab-container.directive.mjs +3 -2
  551. package/components/prefab/esm2022/prefab.directive.mjs +3 -2
  552. package/components/prefab/esm2022/public_api.mjs +1 -2
  553. package/components/prefab/fesm2022/index.mjs +7 -32
  554. package/components/prefab/fesm2022/index.mjs.map +1 -1
  555. package/components/prefab/prefab-container/prefab-container.directive.d.ts +1 -1
  556. package/components/prefab/prefab.directive.d.ts +1 -1
  557. package/components/prefab/public_api.d.ts +0 -1
  558. package/core/bundles/index.umd.js +30 -85
  559. package/core/esm2022/public_api.mjs +2 -3
  560. package/core/esm2022/utils/build-utils.mjs +9 -5
  561. package/core/esm2022/utils/utils.mjs +11 -40
  562. package/core/fesm2022/index.mjs +31 -81
  563. package/core/fesm2022/index.mjs.map +1 -1
  564. package/core/public_api.d.ts +1 -2
  565. package/core/utils/utils.d.ts +1 -3
  566. package/http/bundles/index.umd.js +9 -34
  567. package/http/esm2022/http.service.mjs +6 -3
  568. package/http/esm2022/public_api.mjs +4 -2
  569. package/http/fesm2022/index.mjs +9 -34
  570. package/http/fesm2022/index.mjs.map +1 -1
  571. package/http/public_api.d.ts +3 -1
  572. package/npm-shrinkwrap.json +2 -2
  573. package/oAuth/bundles/index.umd.js +7 -42
  574. package/oAuth/esm2022/oAuth.utils.mjs +6 -23
  575. package/oAuth/esm2022/public_api.mjs +1 -2
  576. package/oAuth/fesm2022/index.mjs +7 -40
  577. package/oAuth/fesm2022/index.mjs.map +1 -1
  578. package/oAuth/public_api.d.ts +0 -1
  579. package/package-lock.json +2 -2
  580. package/package.json +1 -1
  581. package/runtime/base/bundles/index.umd.js +681 -596
  582. package/runtime/base/components/app-component/app.component.d.ts +1 -1
  583. package/runtime/base/components/app-spinner.component.d.ts +1 -1
  584. package/runtime/base/components/custom-toaster.component.d.ts +1 -1
  585. package/runtime/base/components/empty-component/empty-page.component.d.ts +1 -1
  586. package/runtime/base/components/prefab-preview.component.d.ts +1 -1
  587. package/runtime/base/directives/accessroles.directive.d.ts +1 -1
  588. package/runtime/base/directives/prefab.directive.d.ts +1 -1
  589. package/runtime/base/esm2022/components/app-component/app.component.mjs +42 -49
  590. package/runtime/base/esm2022/components/app-spinner.component.mjs +29 -21
  591. package/runtime/base/esm2022/components/base-page.component.mjs +3 -11
  592. package/runtime/base/esm2022/components/base-spa-page.component.mjs +3 -11
  593. package/runtime/base/esm2022/components/custom-toaster.component.mjs +20 -14
  594. package/runtime/base/esm2022/components/empty-component/empty-page.component.mjs +4 -3
  595. package/runtime/base/esm2022/components/prefab-preview.component.mjs +8 -6
  596. package/runtime/base/esm2022/directives/accessroles.directive.mjs +3 -2
  597. package/runtime/base/esm2022/directives/prefab.directive.mjs +3 -2
  598. package/runtime/base/esm2022/public_api.mjs +1 -1
  599. package/runtime/base/esm2022/resolves/security-config.resolve.mjs +4 -6
  600. package/runtime/base/esm2022/runtime-base.module.mjs +486 -337
  601. package/runtime/base/esm2022/services/app.manager.service.mjs +31 -48
  602. package/runtime/base/esm2022/services/i18n.service.mjs +37 -72
  603. package/runtime/base/fesm2022/index.mjs +689 -605
  604. package/runtime/base/fesm2022/index.mjs.map +1 -1
  605. package/runtime/base/runtime-base.module.d.ts +115 -84
  606. package/runtime/base/services/i18n.service.d.ts +1 -1
  607. package/runtime/dynamic/app/components/page-wrapper.component.d.ts +1 -1
  608. package/runtime/dynamic/bundles/index.umd.js +113 -69
  609. package/runtime/dynamic/esm2022/app/app.module.mjs +151 -105
  610. package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +7 -4
  611. package/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +4 -2
  612. package/runtime/dynamic/esm2022/main.mjs +2 -7
  613. package/runtime/dynamic/fesm2022/index.mjs +159 -114
  614. package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  615. package/security/bundles/index.umd.js +3 -34
  616. package/security/esm2022/public_api.mjs +1 -2
  617. package/security/esm2022/security.service.mjs +4 -15
  618. package/security/fesm2022/index.mjs +5 -32
  619. package/security/fesm2022/index.mjs.map +1 -1
  620. package/security/public_api.d.ts +0 -1
  621. package/transpiler/bundles/index.umd.js +271 -168
  622. package/transpiler/esm2022/build.mjs +1 -6
  623. package/transpiler/esm2022/imports.mjs +268 -161
  624. package/transpiler/fesm2022/index.mjs +267 -165
  625. package/transpiler/fesm2022/index.mjs.map +1 -1
  626. package/variables/bundles/index.umd.js +14 -198
  627. package/variables/constants/variables.constants.d.ts +0 -2
  628. package/variables/esm2022/constants/variables.constants.mjs +1 -3
  629. package/variables/esm2022/factory/variable-manager.factory.mjs +1 -3
  630. package/variables/esm2022/factory/variable.factory.mjs +1 -5
  631. package/variables/esm2022/manager/action/logout-action.manager.mjs +5 -7
  632. package/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +3 -3
  633. package/variables/esm2022/public_api.mjs +1 -5
  634. package/variables/esm2022/service/metadata-service/metadata.service.mjs +6 -11
  635. package/variables/esm2022/util/variable/service-variable.utils.mjs +1 -4
  636. package/variables/esm2022/util/variable/variables.utils.mjs +4 -19
  637. package/variables/fesm2022/index.mjs +15 -198
  638. package/variables/fesm2022/index.mjs.map +1 -1
  639. package/variables/public_api.d.ts +0 -4
  640. package/components/advanced/carousel/carousel.module.d.ts +0 -11
  641. package/components/advanced/carousel/esm2022/carousel.module.mjs +0 -36
  642. package/components/advanced/custom/custom-widget.module.d.ts +0 -10
  643. package/components/advanced/custom/esm2022/custom-widget.module.mjs +0 -32
  644. package/components/advanced/login/esm2022/login.module.mjs +0 -28
  645. package/components/advanced/login/login.module.d.ts +0 -9
  646. package/components/advanced/marquee/esm2022/marquee.module.mjs +0 -28
  647. package/components/advanced/marquee/marquee.module.d.ts +0 -9
  648. package/components/base/esm2022/widgets/common/smooth-scroll/smooth-scroll.directive.mjs +0 -221
  649. package/components/base/widgets/common/smooth-scroll/smooth-scroll.directive.d.ts +0 -22
  650. package/components/basic/default/basic.module.d.ts +0 -17
  651. package/components/basic/default/esm2022/basic.module.mjs +0 -60
  652. package/components/basic/progress/esm2022/progress.module.mjs +0 -36
  653. package/components/basic/progress/progress.module.d.ts +0 -11
  654. package/components/basic/rich-text-editor/esm2022/rich-text-editor.module.mjs +0 -28
  655. package/components/basic/rich-text-editor/rich-text-editor.module.d.ts +0 -9
  656. package/components/basic/search/esm2022/search.module.mjs +0 -45
  657. package/components/basic/search/search.module.d.ts +0 -12
  658. package/components/basic/tree/esm2022/tree.module.mjs +0 -28
  659. package/components/basic/tree/tree.module.d.ts +0 -9
  660. package/components/chart/chart.module.d.ts +0 -10
  661. package/components/chart/esm2022/chart.module.mjs +0 -32
  662. package/components/containers/accordion/accordion.module.d.ts +0 -10
  663. package/components/containers/accordion/esm2022/accordion.module.mjs +0 -32
  664. package/components/containers/layout-grid/esm2022/layout-grid.module.mjs +0 -36
  665. package/components/containers/layout-grid/layout-grid.module.d.ts +0 -11
  666. package/components/containers/linear-layout/esm2022/linear-layout.module.mjs +0 -32
  667. package/components/containers/linear-layout/linear-layout.module.d.ts +0 -10
  668. package/components/containers/panel/esm2022/panel.module.mjs +0 -36
  669. package/components/containers/panel/panel.module.d.ts +0 -11
  670. package/components/containers/tabs/esm2022/tabs.module.mjs +0 -32
  671. package/components/containers/tabs/tabs.module.d.ts +0 -10
  672. package/components/containers/tile/esm2022/tile.module.mjs +0 -28
  673. package/components/containers/tile/tile.module.d.ts +0 -9
  674. package/components/containers/wizard/esm2022/wizard-step/wizard-step.directive.mjs +0 -140
  675. package/components/containers/wizard/esm2022/wizard.module.mjs +0 -40
  676. package/components/containers/wizard/wizard.module.d.ts +0 -12
  677. package/components/data/card/card.module.d.ts +0 -15
  678. package/components/data/card/esm2022/card.module.mjs +0 -52
  679. package/components/data/form/esm2022/form.module.mjs +0 -68
  680. package/components/data/form/form.module.d.ts +0 -19
  681. package/components/data/list/esm2022/list.module.mjs +0 -40
  682. package/components/data/list/list.module.d.ts +0 -11
  683. package/components/data/live-table/esm2022/live-table.module.mjs +0 -28
  684. package/components/data/live-table/live-table.module.d.ts +0 -9
  685. package/components/data/pagination/esm2022/pagination.module.mjs +0 -36
  686. package/components/data/pagination/pagination.module.d.ts +0 -11
  687. package/components/data/table/esm2022/table.module.mjs +0 -91
  688. package/components/data/table/table.module.d.ts +0 -24
  689. package/components/dialogs/alert-dialog/alert-dialog.module.d.ts +0 -11
  690. package/components/dialogs/alert-dialog/esm2022/alert-dialog.module.mjs +0 -36
  691. package/components/dialogs/confirm-dialog/confirm-dialog.module.d.ts +0 -11
  692. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.module.mjs +0 -36
  693. package/components/dialogs/default/dialog.module.d.ts +0 -12
  694. package/components/dialogs/default/esm2022/dialog.module.mjs +0 -40
  695. package/components/dialogs/design-dialog/design-dialog.module.d.ts +0 -11
  696. package/components/dialogs/design-dialog/esm2022/design-dialog.module.mjs +0 -36
  697. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.module.mjs +0 -40
  698. package/components/dialogs/iframe-dialog/iframe-dialog.module.d.ts +0 -12
  699. package/components/dialogs/login-dialog/esm2022/login-dialog.module.mjs +0 -40
  700. package/components/dialogs/login-dialog/login-dialog.module.d.ts +0 -12
  701. package/components/dialogs/partial-dialog/esm2022/partial-dialog.module.mjs +0 -36
  702. package/components/dialogs/partial-dialog/partial-dialog.module.d.ts +0 -11
  703. package/components/input/calendar/calendar.module.d.ts +0 -12
  704. package/components/input/calendar/esm2022/calendar.module.mjs +0 -40
  705. package/components/input/chips/chips.module.d.ts +0 -10
  706. package/components/input/chips/esm2022/chips.module.mjs +0 -32
  707. package/components/input/color-picker/color-picker.module.d.ts +0 -11
  708. package/components/input/color-picker/esm2022/color-picker.module.mjs +0 -36
  709. package/components/input/currency/currency.module.d.ts +0 -11
  710. package/components/input/currency/esm2022/currency.module.mjs +0 -36
  711. package/components/input/default/esm2022/input.module.mjs +0 -96
  712. package/components/input/default/input.module.d.ts +0 -26
  713. package/components/input/epoch/epoch.module.d.ts +0 -18
  714. package/components/input/epoch/esm2022/epoch.module.mjs +0 -70
  715. package/components/input/file-upload/esm2022/file-upload.module.mjs +0 -28
  716. package/components/input/file-upload/file-upload.module.d.ts +0 -9
  717. package/components/input/rating/esm2022/rating.module.mjs +0 -32
  718. package/components/input/rating/rating.module.d.ts +0 -10
  719. package/components/input/slider/esm2022/slider.module.mjs +0 -32
  720. package/components/input/slider/slider.module.d.ts +0 -10
  721. package/components/navigation/breadcrumb/breadcrumb.module.d.ts +0 -10
  722. package/components/navigation/breadcrumb/esm2022/breadcrumb.module.mjs +0 -32
  723. package/components/navigation/menu/esm2022/menu.module.mjs +0 -71
  724. package/components/navigation/menu/menu.module.d.ts +0 -17
  725. package/components/navigation/navbar/esm2022/navbar.module.mjs +0 -28
  726. package/components/navigation/navbar/navbar.module.d.ts +0 -9
  727. package/components/navigation/popover/esm2022/popover.module.mjs +0 -36
  728. package/components/navigation/popover/popover.module.d.ts +0 -11
  729. package/components/page/default/esm2022/page.module.mjs +0 -55
  730. package/components/page/default/page.module.d.ts +0 -14
  731. package/components/page/footer/esm2022/footer.module.mjs +0 -28
  732. package/components/page/footer/footer.module.d.ts +0 -9
  733. package/components/page/header/esm2022/header.module.mjs +0 -28
  734. package/components/page/header/header.module.d.ts +0 -9
  735. package/components/page/left-panel/esm2022/left-panel.module.mjs +0 -28
  736. package/components/page/left-panel/left-panel.module.d.ts +0 -9
  737. package/components/page/right-panel/esm2022/right-panel.module.mjs +0 -28
  738. package/components/page/right-panel/right-panel.module.d.ts +0 -9
  739. package/components/page/top-nav/esm2022/top-nav.module.mjs +0 -28
  740. package/components/page/top-nav/top-nav.module.d.ts +0 -9
  741. package/components/prefab/esm2022/prefab.module.mjs +0 -32
  742. package/components/prefab/prefab.module.d.ts +0 -10
  743. package/core/core.module.d.ts +0 -9
  744. package/core/esm2022/core.module.mjs +0 -27
  745. package/http/esm2022/http-service.module.mjs +0 -36
  746. package/http/http-service.module.d.ts +0 -14
  747. package/locales/fullcalendar/af.js +0 -27
  748. package/locales/fullcalendar/ar-dz.js +0 -28
  749. package/locales/fullcalendar/ar-kw.js +0 -28
  750. package/locales/fullcalendar/ar-ly.js +0 -28
  751. package/locales/fullcalendar/ar-ma.js +0 -28
  752. package/locales/fullcalendar/ar-sa.js +0 -28
  753. package/locales/fullcalendar/ar-tn.js +0 -28
  754. package/locales/fullcalendar/ar.js +0 -28
  755. package/locales/fullcalendar/az.js +0 -29
  756. package/locales/fullcalendar/bg.js +0 -28
  757. package/locales/fullcalendar/bs.js +0 -29
  758. package/locales/fullcalendar/ca.js +0 -27
  759. package/locales/fullcalendar/cs.js +0 -29
  760. package/locales/fullcalendar/da.js +0 -27
  761. package/locales/fullcalendar/de.js +0 -30
  762. package/locales/fullcalendar/el.js +0 -27
  763. package/locales/fullcalendar/en-au.js +0 -14
  764. package/locales/fullcalendar/en-gb.js +0 -14
  765. package/locales/fullcalendar/en-nz.js +0 -14
  766. package/locales/fullcalendar/es-us.js +0 -27
  767. package/locales/fullcalendar/es.js +0 -27
  768. package/locales/fullcalendar/et.js +0 -29
  769. package/locales/fullcalendar/eu.js +0 -27
  770. package/locales/fullcalendar/fa.js +0 -30
  771. package/locales/fullcalendar/fi.js +0 -27
  772. package/locales/fullcalendar/fr-ca.js +0 -24
  773. package/locales/fullcalendar/fr-ch.js +0 -28
  774. package/locales/fullcalendar/fr.js +0 -28
  775. package/locales/fullcalendar/gl.js +0 -27
  776. package/locales/fullcalendar/he.js +0 -24
  777. package/locales/fullcalendar/hi.js +0 -29
  778. package/locales/fullcalendar/hr.js +0 -29
  779. package/locales/fullcalendar/hu.js +0 -27
  780. package/locales/fullcalendar/id.js +0 -27
  781. package/locales/fullcalendar/is.js +0 -27
  782. package/locales/fullcalendar/it.js +0 -29
  783. package/locales/fullcalendar/ja.js +0 -25
  784. package/locales/fullcalendar/ka.js +0 -29
  785. package/locales/fullcalendar/kk.js +0 -29
  786. package/locales/fullcalendar/ko.js +0 -23
  787. package/locales/fullcalendar/lb.js +0 -27
  788. package/locales/fullcalendar/lt.js +0 -27
  789. package/locales/fullcalendar/lv.js +0 -29
  790. package/locales/fullcalendar/mk.js +0 -25
  791. package/locales/fullcalendar/ms.js +0 -29
  792. package/locales/fullcalendar/nb.js +0 -27
  793. package/locales/fullcalendar/ne.js +0 -27
  794. package/locales/fullcalendar/nl.js +0 -27
  795. package/locales/fullcalendar/nn.js +0 -27
  796. package/locales/fullcalendar/pl.js +0 -27
  797. package/locales/fullcalendar/pt-br.js +0 -25
  798. package/locales/fullcalendar/pt.js +0 -27
  799. package/locales/fullcalendar/ro.js +0 -29
  800. package/locales/fullcalendar/ru.js +0 -29
  801. package/locales/fullcalendar/sk.js +0 -29
  802. package/locales/fullcalendar/sl.js +0 -27
  803. package/locales/fullcalendar/sq.js +0 -29
  804. package/locales/fullcalendar/sr-cyrl.js +0 -29
  805. package/locales/fullcalendar/sr.js +0 -29
  806. package/locales/fullcalendar/sv.js +0 -27
  807. package/locales/fullcalendar/th.js +0 -30
  808. package/locales/fullcalendar/tr.js +0 -27
  809. package/locales/fullcalendar/ug.js +0 -17
  810. package/locales/fullcalendar/uk.js +0 -29
  811. package/locales/fullcalendar/uz.js +0 -21
  812. package/locales/fullcalendar/vi.js +0 -29
  813. package/locales/fullcalendar/zh-cn.js +0 -30
  814. package/locales/fullcalendar/zh-tw.js +0 -23
  815. package/mobile/components/basic/default/.npmignore +0 -2
  816. package/mobile/components/basic/default/anchor/anchor.directive.d.ts +0 -8
  817. package/mobile/components/basic/default/app-update/app-update.component.d.ts +0 -26
  818. package/mobile/components/basic/default/basic.module.d.ts +0 -15
  819. package/mobile/components/basic/default/bundles/index.umd.js +0 -980
  820. package/mobile/components/basic/default/esm2022/anchor/anchor.directive.mjs +0 -44
  821. package/mobile/components/basic/default/esm2022/app-update/app-update.component.mjs +0 -116
  822. package/mobile/components/basic/default/esm2022/basic.module.mjs +0 -52
  823. package/mobile/components/basic/default/esm2022/file-browser/file-browser.component.mjs +0 -236
  824. package/mobile/components/basic/default/esm2022/file-browser/file-selector.service.mjs +0 -85
  825. package/mobile/components/basic/default/esm2022/image-cache/image-cache.directive.mjs +0 -61
  826. package/mobile/components/basic/default/esm2022/index.mjs +0 -5
  827. package/mobile/components/basic/default/esm2022/network-info-toaster/network-info-toaster.component.mjs +0 -183
  828. package/mobile/components/basic/default/esm2022/network-info-toaster/network-info-toaster.props.mjs +0 -5
  829. package/mobile/components/basic/default/esm2022/process-manager/process-management.service.mjs +0 -47
  830. package/mobile/components/basic/default/esm2022/process-manager/process-manager.component.mjs +0 -175
  831. package/mobile/components/basic/default/esm2022/public_api.mjs +0 -10
  832. package/mobile/components/basic/default/fesm2022/index.mjs +0 -958
  833. package/mobile/components/basic/default/fesm2022/index.mjs.map +0 -1
  834. package/mobile/components/basic/default/file-browser/file-browser.component.d.ts +0 -39
  835. package/mobile/components/basic/default/file-browser/file-selector.service.d.ts +0 -27
  836. package/mobile/components/basic/default/image-cache/image-cache.directive.d.ts +0 -18
  837. package/mobile/components/basic/default/index.d.ts +0 -5
  838. package/mobile/components/basic/default/network-info-toaster/network-info-toaster.component.d.ts +0 -28
  839. package/mobile/components/basic/default/network-info-toaster/network-info-toaster.props.d.ts +0 -1
  840. package/mobile/components/basic/default/package.json +0 -23
  841. package/mobile/components/basic/default/process-manager/process-management.service.d.ts +0 -36
  842. package/mobile/components/basic/default/process-manager/process-manager.component.d.ts +0 -33
  843. package/mobile/components/basic/default/public_api.d.ts +0 -9
  844. package/mobile/components/basic/search/.npmignore +0 -2
  845. package/mobile/components/basic/search/bundles/index.umd.js +0 -66
  846. package/mobile/components/basic/search/esm2022/index.mjs +0 -5
  847. package/mobile/components/basic/search/esm2022/public_api.mjs +0 -3
  848. package/mobile/components/basic/search/esm2022/search.directive.mjs +0 -17
  849. package/mobile/components/basic/search/esm2022/search.module.mjs +0 -28
  850. package/mobile/components/basic/search/fesm2022/index.mjs +0 -49
  851. package/mobile/components/basic/search/fesm2022/index.mjs.map +0 -1
  852. package/mobile/components/basic/search/index.d.ts +0 -5
  853. package/mobile/components/basic/search/package.json +0 -23
  854. package/mobile/components/basic/search/public_api.d.ts +0 -2
  855. package/mobile/components/basic/search/search.directive.d.ts +0 -7
  856. package/mobile/components/basic/search/search.module.d.ts +0 -9
  857. package/mobile/components/containers/segmented-control/.npmignore +0 -2
  858. package/mobile/components/containers/segmented-control/bundles/index.umd.js +0 -281
  859. package/mobile/components/containers/segmented-control/esm2022/index.mjs +0 -5
  860. package/mobile/components/containers/segmented-control/esm2022/public_api.mjs +0 -4
  861. package/mobile/components/containers/segmented-control/esm2022/segment-content/segment-content.component.mjs +0 -70
  862. package/mobile/components/containers/segmented-control/esm2022/segment-content/segment-content.props.mjs +0 -14
  863. package/mobile/components/containers/segmented-control/esm2022/segmented-control.component.mjs +0 -147
  864. package/mobile/components/containers/segmented-control/esm2022/segmented-control.module.mjs +0 -32
  865. package/mobile/components/containers/segmented-control/esm2022/segmented-control.props.mjs +0 -9
  866. package/mobile/components/containers/segmented-control/fesm2022/index.mjs +0 -264
  867. package/mobile/components/containers/segmented-control/fesm2022/index.mjs.map +0 -1
  868. package/mobile/components/containers/segmented-control/index.d.ts +0 -5
  869. package/mobile/components/containers/segmented-control/package.json +0 -23
  870. package/mobile/components/containers/segmented-control/public_api.d.ts +0 -3
  871. package/mobile/components/containers/segmented-control/segment-content/segment-content.component.d.ts +0 -18
  872. package/mobile/components/containers/segmented-control/segment-content/segment-content.props.d.ts +0 -1
  873. package/mobile/components/containers/segmented-control/segmented-control.component.d.ts +0 -20
  874. package/mobile/components/containers/segmented-control/segmented-control.module.d.ts +0 -10
  875. package/mobile/components/containers/segmented-control/segmented-control.props.d.ts +0 -1
  876. package/mobile/components/data/media-list/.npmignore +0 -2
  877. package/mobile/components/data/media-list/bundles/index.umd.js +0 -310
  878. package/mobile/components/data/media-list/esm2022/index.mjs +0 -5
  879. package/mobile/components/data/media-list/esm2022/media-list-item/media-list-item.directive.mjs +0 -24
  880. package/mobile/components/data/media-list/esm2022/media-list.component.mjs +0 -213
  881. package/mobile/components/data/media-list/esm2022/media-list.module.mjs +0 -48
  882. package/mobile/components/data/media-list/esm2022/media-list.props.mjs +0 -16
  883. package/mobile/components/data/media-list/esm2022/public_api.mjs +0 -4
  884. package/mobile/components/data/media-list/fesm2022/index.mjs +0 -297
  885. package/mobile/components/data/media-list/fesm2022/index.mjs.map +0 -1
  886. package/mobile/components/data/media-list/index.d.ts +0 -5
  887. package/mobile/components/data/media-list/media-list-item/media-list-item.directive.d.ts +0 -8
  888. package/mobile/components/data/media-list/media-list.component.d.ts +0 -33
  889. package/mobile/components/data/media-list/media-list.module.d.ts +0 -14
  890. package/mobile/components/data/media-list/media-list.props.d.ts +0 -1
  891. package/mobile/components/data/media-list/package.json +0 -23
  892. package/mobile/components/data/media-list/public_api.d.ts +0 -3
  893. package/mobile/components/device/barcode-scanner/.npmignore +0 -2
  894. package/mobile/components/device/barcode-scanner/barcode-scanner.component.d.ts +0 -18
  895. package/mobile/components/device/barcode-scanner/barcode-scanner.module.d.ts +0 -9
  896. package/mobile/components/device/barcode-scanner/barcode-scanner.props.d.ts +0 -1
  897. package/mobile/components/device/barcode-scanner/bundles/index.umd.js +0 -129
  898. package/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.component.mjs +0 -69
  899. package/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.module.mjs +0 -28
  900. package/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.props.mjs +0 -15
  901. package/mobile/components/device/barcode-scanner/esm2022/index.mjs +0 -5
  902. package/mobile/components/device/barcode-scanner/esm2022/public_api.mjs +0 -3
  903. package/mobile/components/device/barcode-scanner/fesm2022/index.mjs +0 -112
  904. package/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +0 -1
  905. package/mobile/components/device/barcode-scanner/index.d.ts +0 -5
  906. package/mobile/components/device/barcode-scanner/package.json +0 -23
  907. package/mobile/components/device/barcode-scanner/public_api.d.ts +0 -2
  908. package/mobile/components/device/camera/.npmignore +0 -2
  909. package/mobile/components/device/camera/bundles/index.umd.js +0 -170
  910. package/mobile/components/device/camera/camera.component.d.ts +0 -37
  911. package/mobile/components/device/camera/camera.module.d.ts +0 -9
  912. package/mobile/components/device/camera/camera.props.d.ts +0 -1
  913. package/mobile/components/device/camera/esm2022/camera.component.mjs +0 -101
  914. package/mobile/components/device/camera/esm2022/camera.module.mjs +0 -28
  915. package/mobile/components/device/camera/esm2022/camera.props.mjs +0 -25
  916. package/mobile/components/device/camera/esm2022/index.mjs +0 -5
  917. package/mobile/components/device/camera/esm2022/public_api.mjs +0 -3
  918. package/mobile/components/device/camera/fesm2022/index.mjs +0 -153
  919. package/mobile/components/device/camera/fesm2022/index.mjs.map +0 -1
  920. package/mobile/components/device/camera/index.d.ts +0 -5
  921. package/mobile/components/device/camera/package.json +0 -23
  922. package/mobile/components/device/camera/public_api.d.ts +0 -2
  923. package/mobile/components/input/file-upload/.npmignore +0 -2
  924. package/mobile/components/input/file-upload/bundles/index.umd.js +0 -88
  925. package/mobile/components/input/file-upload/esm2022/file-upload.directive.mjs +0 -41
  926. package/mobile/components/input/file-upload/esm2022/file-upload.module.mjs +0 -28
  927. package/mobile/components/input/file-upload/esm2022/index.mjs +0 -5
  928. package/mobile/components/input/file-upload/esm2022/public_api.mjs +0 -3
  929. package/mobile/components/input/file-upload/fesm2022/index.mjs +0 -71
  930. package/mobile/components/input/file-upload/fesm2022/index.mjs.map +0 -1
  931. package/mobile/components/input/file-upload/file-upload.directive.d.ts +0 -11
  932. package/mobile/components/input/file-upload/file-upload.module.d.ts +0 -9
  933. package/mobile/components/input/file-upload/index.d.ts +0 -5
  934. package/mobile/components/input/file-upload/package.json +0 -23
  935. package/mobile/components/input/file-upload/public_api.d.ts +0 -2
  936. package/mobile/components/page/default/.npmignore +0 -2
  937. package/mobile/components/page/default/bundles/index.umd.js +0 -127
  938. package/mobile/components/page/default/esm2022/index.mjs +0 -5
  939. package/mobile/components/page/default/esm2022/page-content-loader/page-content-loader.component.mjs +0 -24
  940. package/mobile/components/page/default/esm2022/page.directive.mjs +0 -58
  941. package/mobile/components/page/default/esm2022/page.module.mjs +0 -32
  942. package/mobile/components/page/default/esm2022/public_api.mjs +0 -4
  943. package/mobile/components/page/default/fesm2022/index.mjs +0 -110
  944. package/mobile/components/page/default/fesm2022/index.mjs.map +0 -1
  945. package/mobile/components/page/default/index.d.ts +0 -5
  946. package/mobile/components/page/default/package.json +0 -23
  947. package/mobile/components/page/default/page-content-loader/page-content-loader.component.d.ts +0 -7
  948. package/mobile/components/page/default/page.directive.d.ts +0 -19
  949. package/mobile/components/page/default/page.module.d.ts +0 -10
  950. package/mobile/components/page/default/public_api.d.ts +0 -3
  951. package/mobile/components/page/left-panel/.npmignore +0 -2
  952. package/mobile/components/page/left-panel/bundles/index.umd.js +0 -91
  953. package/mobile/components/page/left-panel/esm2022/index.mjs +0 -5
  954. package/mobile/components/page/left-panel/esm2022/left-panel.directive.mjs +0 -45
  955. package/mobile/components/page/left-panel/esm2022/left-panel.module.mjs +0 -28
  956. package/mobile/components/page/left-panel/esm2022/public_api.mjs +0 -3
  957. package/mobile/components/page/left-panel/fesm2022/index.mjs +0 -74
  958. package/mobile/components/page/left-panel/fesm2022/index.mjs.map +0 -1
  959. package/mobile/components/page/left-panel/index.d.ts +0 -5
  960. package/mobile/components/page/left-panel/left-panel.directive.d.ts +0 -16
  961. package/mobile/components/page/left-panel/left-panel.module.d.ts +0 -9
  962. package/mobile/components/page/left-panel/package.json +0 -23
  963. package/mobile/components/page/left-panel/public_api.d.ts +0 -2
  964. package/mobile/components/page/mobile-navbar/.npmignore +0 -2
  965. package/mobile/components/page/mobile-navbar/bundles/index.umd.js +0 -332
  966. package/mobile/components/page/mobile-navbar/esm2022/index.mjs +0 -5
  967. package/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.component.mjs +0 -247
  968. package/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.module.mjs +0 -32
  969. package/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.props.mjs +0 -41
  970. package/mobile/components/page/mobile-navbar/esm2022/public_api.mjs +0 -3
  971. package/mobile/components/page/mobile-navbar/fesm2022/index.mjs +0 -317
  972. package/mobile/components/page/mobile-navbar/fesm2022/index.mjs.map +0 -1
  973. package/mobile/components/page/mobile-navbar/index.d.ts +0 -5
  974. package/mobile/components/page/mobile-navbar/mobile-navbar.component.d.ts +0 -50
  975. package/mobile/components/page/mobile-navbar/mobile-navbar.module.d.ts +0 -10
  976. package/mobile/components/page/mobile-navbar/mobile-navbar.props.d.ts +0 -2
  977. package/mobile/components/page/mobile-navbar/package.json +0 -23
  978. package/mobile/components/page/mobile-navbar/public_api.d.ts +0 -2
  979. package/mobile/components/page/tab-bar/.npmignore +0 -2
  980. package/mobile/components/page/tab-bar/bundles/index.umd.js +0 -279
  981. package/mobile/components/page/tab-bar/esm2022/index.mjs +0 -5
  982. package/mobile/components/page/tab-bar/esm2022/public_api.mjs +0 -3
  983. package/mobile/components/page/tab-bar/esm2022/tab-bar.module.mjs +0 -28
  984. package/mobile/components/page/tab-bar/esm2022/tabbar.component.mjs +0 -219
  985. package/mobile/components/page/tab-bar/esm2022/tabbar.props.mjs +0 -15
  986. package/mobile/components/page/tab-bar/fesm2022/index.mjs +0 -262
  987. package/mobile/components/page/tab-bar/fesm2022/index.mjs.map +0 -1
  988. package/mobile/components/page/tab-bar/index.d.ts +0 -5
  989. package/mobile/components/page/tab-bar/package.json +0 -23
  990. package/mobile/components/page/tab-bar/public_api.d.ts +0 -2
  991. package/mobile/components/page/tab-bar/tab-bar.module.d.ts +0 -9
  992. package/mobile/components/page/tab-bar/tabbar.component.d.ts +0 -40
  993. package/mobile/components/page/tab-bar/tabbar.props.d.ts +0 -1
  994. package/mobile/core/.npmignore +0 -2
  995. package/mobile/core/bundles/index.umd.js +0 -1658
  996. package/mobile/core/core.module.d.ts +0 -15
  997. package/mobile/core/esm2022/core.module.mjs +0 -79
  998. package/mobile/core/esm2022/index.mjs +0 -5
  999. package/mobile/core/esm2022/native.xhr.mjs +0 -340
  1000. package/mobile/core/esm2022/public_api.mjs +0 -12
  1001. package/mobile/core/esm2022/services/device-file-cache.service.mjs +0 -92
  1002. package/mobile/core/esm2022/services/device-file-download.service.mjs +0 -154
  1003. package/mobile/core/esm2022/services/device-file-opener.service.mjs +0 -112
  1004. package/mobile/core/esm2022/services/device-file-upload.service.mjs +0 -91
  1005. package/mobile/core/esm2022/services/device-file.service.mjs +0 -237
  1006. package/mobile/core/esm2022/services/device-start-up-service.mjs +0 -2
  1007. package/mobile/core/esm2022/services/device.service.mjs +0 -150
  1008. package/mobile/core/esm2022/services/ext-app-message.service.mjs +0 -114
  1009. package/mobile/core/esm2022/services/network.service.mjs +0 -358
  1010. package/mobile/core/fesm2022/index.mjs +0 -1660
  1011. package/mobile/core/fesm2022/index.mjs.map +0 -1
  1012. package/mobile/core/index.d.ts +0 -5
  1013. package/mobile/core/native.xhr.d.ts +0 -36
  1014. package/mobile/core/package.json +0 -28
  1015. package/mobile/core/public_api.d.ts +0 -11
  1016. package/mobile/core/services/device-file-cache.service.d.ts +0 -24
  1017. package/mobile/core/services/device-file-download.service.d.ts +0 -36
  1018. package/mobile/core/services/device-file-opener.service.d.ts +0 -25
  1019. package/mobile/core/services/device-file-upload.service.d.ts +0 -27
  1020. package/mobile/core/services/device-file.service.d.ts +0 -45
  1021. package/mobile/core/services/device-start-up-service.d.ts +0 -4
  1022. package/mobile/core/services/device.service.d.ts +0 -52
  1023. package/mobile/core/services/ext-app-message.service.d.ts +0 -24
  1024. package/mobile/core/services/network.service.d.ts +0 -118
  1025. package/mobile/offline/.npmignore +0 -2
  1026. package/mobile/offline/bundles/index.umd.js +0 -3512
  1027. package/mobile/offline/esm2022/index.mjs +0 -5
  1028. package/mobile/offline/esm2022/models/config.mjs +0 -64
  1029. package/mobile/offline/esm2022/models/local-db-store.mjs +0 -412
  1030. package/mobile/offline/esm2022/offline.module.mjs +0 -100
  1031. package/mobile/offline/esm2022/public_api.mjs +0 -7
  1032. package/mobile/offline/esm2022/services/change-log.service.mjs +0 -332
  1033. package/mobile/offline/esm2022/services/local-db-data-pull.service.mjs +0 -525
  1034. package/mobile/offline/esm2022/services/local-db-management.service.mjs +0 -855
  1035. package/mobile/offline/esm2022/services/local-db.service.mjs +0 -193
  1036. package/mobile/offline/esm2022/services/local-key-value.service.mjs +0 -87
  1037. package/mobile/offline/esm2022/services/push.service.mjs +0 -49
  1038. package/mobile/offline/esm2022/services/workers/error-blocker.mjs +0 -115
  1039. package/mobile/offline/esm2022/services/workers/file-handler.mjs +0 -162
  1040. package/mobile/offline/esm2022/services/workers/id-resolver.mjs +0 -154
  1041. package/mobile/offline/esm2022/services/workers/multi-part-param-transformer.mjs +0 -63
  1042. package/mobile/offline/esm2022/utils/file-upload.utils.mjs +0 -59
  1043. package/mobile/offline/esm2022/utils/live-variable.utils.mjs +0 -232
  1044. package/mobile/offline/esm2022/utils/query-executor.utils.mjs +0 -82
  1045. package/mobile/offline/esm2022/utils/security.utils.mjs +0 -119
  1046. package/mobile/offline/esm2022/utils/utils.mjs +0 -8
  1047. package/mobile/offline/fesm2022/index.mjs +0 -3529
  1048. package/mobile/offline/fesm2022/index.mjs.map +0 -1
  1049. package/mobile/offline/index.d.ts +0 -5
  1050. package/mobile/offline/models/config.d.ts +0 -80
  1051. package/mobile/offline/models/local-db-store.d.ts +0 -119
  1052. package/mobile/offline/offline.module.d.ts +0 -17
  1053. package/mobile/offline/package.json +0 -28
  1054. package/mobile/offline/public_api.d.ts +0 -6
  1055. package/mobile/offline/services/change-log.service.d.ts +0 -112
  1056. package/mobile/offline/services/local-db-data-pull.service.d.ts +0 -139
  1057. package/mobile/offline/services/local-db-management.service.d.ts +0 -179
  1058. package/mobile/offline/services/local-db.service.d.ts +0 -83
  1059. package/mobile/offline/services/local-key-value.service.d.ts +0 -38
  1060. package/mobile/offline/services/push.service.d.ts +0 -11
  1061. package/mobile/offline/services/workers/error-blocker.d.ts +0 -26
  1062. package/mobile/offline/services/workers/file-handler.d.ts +0 -56
  1063. package/mobile/offline/services/workers/id-resolver.d.ts +0 -26
  1064. package/mobile/offline/services/workers/multi-part-param-transformer.d.ts +0 -11
  1065. package/mobile/offline/utils/file-upload.utils.d.ts +0 -14
  1066. package/mobile/offline/utils/live-variable.utils.d.ts +0 -24
  1067. package/mobile/offline/utils/query-executor.utils.d.ts +0 -15
  1068. package/mobile/offline/utils/security.utils.d.ts +0 -19
  1069. package/mobile/offline/utils/utils.d.ts +0 -2
  1070. package/mobile/placeholder/runtime/.npmignore +0 -2
  1071. package/mobile/placeholder/runtime/bundles/index.umd.js +0 -70
  1072. package/mobile/placeholder/runtime/components/app-ext.component.d.ts +0 -5
  1073. package/mobile/placeholder/runtime/esm2022/components/app-ext.component.mjs +0 -19
  1074. package/mobile/placeholder/runtime/esm2022/index.mjs +0 -5
  1075. package/mobile/placeholder/runtime/esm2022/mobile-runtime.module.mjs +0 -27
  1076. package/mobile/placeholder/runtime/esm2022/public_api.mjs +0 -3
  1077. package/mobile/placeholder/runtime/fesm2022/index.mjs +0 -50
  1078. package/mobile/placeholder/runtime/fesm2022/index.mjs.map +0 -1
  1079. package/mobile/placeholder/runtime/index.d.ts +0 -5
  1080. package/mobile/placeholder/runtime/mobile-runtime.module.d.ts +0 -9
  1081. package/mobile/placeholder/runtime/package.json +0 -27
  1082. package/mobile/placeholder/runtime/public_api.d.ts +0 -2
  1083. package/mobile/placeholder/runtime-dynamic/.npmignore +0 -2
  1084. package/mobile/placeholder/runtime-dynamic/bundles/index.umd.js +0 -40
  1085. package/mobile/placeholder/runtime-dynamic/esm2022/index.mjs +0 -5
  1086. package/mobile/placeholder/runtime-dynamic/esm2022/mobile-runtime-dynamic.module.mjs +0 -13
  1087. package/mobile/placeholder/runtime-dynamic/esm2022/public_api.mjs +0 -2
  1088. package/mobile/placeholder/runtime-dynamic/fesm2022/index.mjs +0 -20
  1089. package/mobile/placeholder/runtime-dynamic/fesm2022/index.mjs.map +0 -1
  1090. package/mobile/placeholder/runtime-dynamic/index.d.ts +0 -5
  1091. package/mobile/placeholder/runtime-dynamic/mobile-runtime-dynamic.module.d.ts +0 -7
  1092. package/mobile/placeholder/runtime-dynamic/package.json +0 -23
  1093. package/mobile/placeholder/runtime-dynamic/public_api.d.ts +0 -1
  1094. package/mobile/runtime/.npmignore +0 -2
  1095. package/mobile/runtime/bundles/index.umd.js +0 -732
  1096. package/mobile/runtime/components/app-ext.component.d.ts +0 -14
  1097. package/mobile/runtime/esm2022/components/app-ext.component.mjs +0 -59
  1098. package/mobile/runtime/esm2022/index.mjs +0 -5
  1099. package/mobile/runtime/esm2022/mobile-runtime.module.mjs +0 -351
  1100. package/mobile/runtime/esm2022/public_api.mjs +0 -6
  1101. package/mobile/runtime/esm2022/services/cookie.service.mjs +0 -135
  1102. package/mobile/runtime/esm2022/services/http-interceptor.service.mjs +0 -147
  1103. package/mobile/runtime/esm2022/services/webprocess.service.mjs +0 -76
  1104. package/mobile/runtime/fesm2022/index.mjs +0 -742
  1105. package/mobile/runtime/fesm2022/index.mjs.map +0 -1
  1106. package/mobile/runtime/index.d.ts +0 -5
  1107. package/mobile/runtime/mobile-runtime.module.d.ts +0 -51
  1108. package/mobile/runtime/package.json +0 -28
  1109. package/mobile/runtime/public_api.d.ts +0 -5
  1110. package/mobile/runtime/services/cookie.service.d.ts +0 -31
  1111. package/mobile/runtime/services/http-interceptor.service.d.ts +0 -19
  1112. package/mobile/runtime/services/webprocess.service.d.ts +0 -15
  1113. package/mobile/runtime-dynamic/.npmignore +0 -2
  1114. package/mobile/runtime-dynamic/bundles/index.umd.js +0 -461
  1115. package/mobile/runtime-dynamic/esm2022/index.mjs +0 -5
  1116. package/mobile/runtime-dynamic/esm2022/mobile-runtime-dynamic.module.mjs +0 -48
  1117. package/mobile/runtime-dynamic/esm2022/public_api.mjs +0 -2
  1118. package/mobile/runtime-dynamic/esm2022/services/live-sync.service.mjs +0 -404
  1119. package/mobile/runtime-dynamic/fesm2022/index.mjs +0 -454
  1120. package/mobile/runtime-dynamic/fesm2022/index.mjs.map +0 -1
  1121. package/mobile/runtime-dynamic/index.d.ts +0 -5
  1122. package/mobile/runtime-dynamic/mobile-runtime-dynamic.module.d.ts +0 -8
  1123. package/mobile/runtime-dynamic/package.json +0 -23
  1124. package/mobile/runtime-dynamic/public_api.d.ts +0 -1
  1125. package/mobile/runtime-dynamic/services/live-sync.service.d.ts +0 -38
  1126. package/mobile/variables/.npmignore +0 -2
  1127. package/mobile/variables/bundles/index.umd.js +0 -1166
  1128. package/mobile/variables/esm2022/index.mjs +0 -5
  1129. package/mobile/variables/esm2022/public_api.mjs +0 -10
  1130. package/mobile/variables/esm2022/services/calendar-service.mjs +0 -77
  1131. package/mobile/variables/esm2022/services/camera-service.mjs +0 -70
  1132. package/mobile/variables/esm2022/services/contacts-service.mjs +0 -74
  1133. package/mobile/variables/esm2022/services/datasync-service.mjs +0 -363
  1134. package/mobile/variables/esm2022/services/device-service/device-service.mjs +0 -161
  1135. package/mobile/variables/esm2022/services/device-service/location-service.mjs +0 -200
  1136. package/mobile/variables/esm2022/services/file-service.mjs +0 -87
  1137. package/mobile/variables/esm2022/services/scan-service.mjs +0 -60
  1138. package/mobile/variables/esm2022/variables.module.mjs +0 -78
  1139. package/mobile/variables/fesm2022/index.mjs +0 -1143
  1140. package/mobile/variables/fesm2022/index.mjs.map +0 -1
  1141. package/mobile/variables/index.d.ts +0 -5
  1142. package/mobile/variables/package.json +0 -28
  1143. package/mobile/variables/public_api.d.ts +0 -9
  1144. package/mobile/variables/services/calendar-service.d.ts +0 -10
  1145. package/mobile/variables/services/camera-service.d.ts +0 -8
  1146. package/mobile/variables/services/contacts-service.d.ts +0 -6
  1147. package/mobile/variables/services/datasync-service.d.ts +0 -11
  1148. package/mobile/variables/services/device-service/device-service.d.ts +0 -17
  1149. package/mobile/variables/services/device-service/location-service.d.ts +0 -63
  1150. package/mobile/variables/services/file-service.d.ts +0 -7
  1151. package/mobile/variables/services/scan-service.d.ts +0 -7
  1152. package/mobile/variables/variables.module.d.ts +0 -25
  1153. package/oAuth/esm2022/oAuth.module.mjs +0 -19
  1154. package/oAuth/oAuth.module.d.ts +0 -8
  1155. package/scripts/fullcalendar/main.min.js +0 -6
  1156. package/security/esm2022/security.module.mjs +0 -19
  1157. package/security/security.module.d.ts +0 -8
  1158. package/variables/esm2022/manager/variable/device-variable-manager.mjs +0 -48
  1159. package/variables/esm2022/manager/variable/device-variable-operation.mjs +0 -2
  1160. package/variables/esm2022/manager/variable/device-variable-service.mjs +0 -45
  1161. package/variables/esm2022/model/variable/device-variable.mjs +0 -19
  1162. package/variables/esm2022/variables.module.mjs +0 -52
  1163. package/variables/manager/variable/device-variable-manager.d.ts +0 -26
  1164. package/variables/manager/variable/device-variable-operation.d.ts +0 -37
  1165. package/variables/manager/variable/device-variable-service.d.ts +0 -6
  1166. package/variables/model/variable/device-variable.d.ts +0 -6
  1167. package/variables/variables.module.d.ts +0 -16
@@ -2,9 +2,9 @@ import { Injectable, Injector } from '@angular/core';
2
2
  import { HttpClient } from '@angular/common/http';
3
3
  import { defineLocale } from 'ngx-bootstrap/chronos';
4
4
  import { BsLocaleService } from 'ngx-bootstrap/datepicker';
5
- import { _WM_APP_PROJECT, AbstractI18nService, AppDefaults, getSessionStorageItem, getWmProjectProperties, isMobile, isMobileApp, loadScripts, replace, setCSS, setSessionStorageItem, App } from '@wm/core';
6
- import { CONSTANTS } from '@wm/variables';
7
- import { find, forEach, get, includes, intersection, isObject, map, toLower } from "lodash-es";
5
+ import { _WM_APP_PROJECT, AbstractI18nService, AppDefaults, getSessionStorageItem, getWmProjectProperties, loadScripts, replace, setCSS, setSessionStorageItem, App } from '@wm/core';
6
+ import { find, get, includes, intersection, isObject, map, toLower } from "lodash-es";
7
+ import moment from 'moment';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@angular/common/http";
10
10
  import * as i2 from "ngx-bootstrap/datepicker";
@@ -91,23 +91,30 @@ export class I18nServiceImpl extends AbstractI18nService {
91
91
  });
92
92
  }
93
93
  loadMomentLocaleBundle(momentLocale) {
94
- const _cdnUrl = _WM_APP_PROJECT.cdnUrl || _WM_APP_PROJECT.ngDest;
95
94
  if (this.selectedLocale === this.defaultSupportedLocale) {
96
95
  moment.locale(this.defaultSupportedLocale);
97
96
  return;
98
97
  }
99
- const path = _cdnUrl + `locales/moment/${momentLocale}.js`;
100
- loadScripts([path], true).then(() => {
101
- moment.locale(this.selectedLocale);
102
- // For ngx bootstrap locale, get the config from script and apply locale
103
- // moment.localeData(momentLocale) will return moment locale instance. _config inside will have actual config
104
- let _config = moment.localeData(momentLocale);
105
- _config = _config && _config._config;
106
- defineLocale(this.selectedLocale, _config);
107
- this.bsLocaleService.use(this.getSelectedLocale() || this.defaultSupportedLocale);
108
- this.bundleLoaded.moment = true;
109
- this.notifyLocaleChanged();
110
- });
98
+ if (_WM_APP_PROJECT.isPreview) {
99
+ const path = `${_WM_APP_PROJECT.cdnUrl}locales/moment/${momentLocale}.js`;
100
+ loadScripts([path], true).then(() => {
101
+ this.loadScriptForMoment(momentLocale);
102
+ });
103
+ }
104
+ else {
105
+ this.loadScriptForMoment(momentLocale);
106
+ }
107
+ }
108
+ loadScriptForMoment(momentLocale) {
109
+ moment.locale(this.selectedLocale);
110
+ // For ngx bootstrap locale, get the config from script and apply locale
111
+ // moment.localeData(momentLocale) will return moment locale instance. _config inside will have actual config
112
+ let _config = moment.localeData(momentLocale);
113
+ _config = _config && _config._config;
114
+ defineLocale(this.selectedLocale, _config);
115
+ this.bsLocaleService.use(this.getSelectedLocale() || this.defaultSupportedLocale);
116
+ this.bundleLoaded.moment = true;
117
+ this.notifyLocaleChanged();
111
118
  }
112
119
  loadAngularLocaleBundle(angLocale) {
113
120
  return new Promise(resolve => {
@@ -123,23 +130,6 @@ export class I18nServiceImpl extends AbstractI18nService {
123
130
  }, resolve);
124
131
  });
125
132
  }
126
- loadCalendarLocaleBundle(calendarLocale, force = false) {
127
- const _cdnUrl = _WM_APP_PROJECT.cdnUrl || _WM_APP_PROJECT.ngDest;
128
- let path;
129
- if (calendarLocale) {
130
- path = _cdnUrl + `locales/fullcalendar/${calendarLocale}.js`;
131
- }
132
- else {
133
- return Promise.resolve();
134
- }
135
- // return in case of mobile app or if selected locale is default supported locale.
136
- if (!force && (isMobile() || isMobileApp() || this.selectedLocale === this.defaultSupportedLocale)) {
137
- this.bundleLoaded.fullCalendar = true;
138
- return;
139
- }
140
- // Call the script. In script, moment defines the loaded locale
141
- return loadScripts([path], true);
142
- }
143
133
  loadMomentTimeZoneBundle(locale, compInstance) {
144
134
  return new Promise(resolve => {
145
135
  const _cdnUrl = _WM_APP_PROJECT.cdnUrl || _WM_APP_PROJECT.ngDest;
@@ -176,10 +166,8 @@ export class I18nServiceImpl extends AbstractI18nService {
176
166
  this.bundleLoaded.moment = true;
177
167
  }
178
168
  if (libLocale.fullCalendar && window['FullCalendar']) {
179
- this.loadCalendarLocaleBundle(libLocale.fullCalendar)?.then(() => {
180
- this.bundleLoaded.fullCalendar = true;
181
- this.notifyLocaleChanged();
182
- });
169
+ this.bundleLoaded.fullCalendar = true;
170
+ this.notifyLocaleChanged();
183
171
  }
184
172
  else {
185
173
  this.bundleLoaded.fullCalendar = true;
@@ -255,21 +243,6 @@ export class I18nServiceImpl extends AbstractI18nService {
255
243
  // when preference is given to browser set languages, do not populate _selectedDefaultLang variable
256
244
  let _selectedDefaultLang = preferBrowserLang ? undefined : _defaultLanguage;
257
245
  let _appSupportedLang;
258
- /**
259
- * for cordova, check for language ignoring the locale
260
- * As the navigator.languages always returns the language with locale (en-us)
261
- * The supportedLanguages from BE doesn't include locale (en) which leads to mismatch
262
- */
263
- if (CONSTANTS.hasCordova) {
264
- let supportedLang = [];
265
- forEach(_acceptLang, function (lang) {
266
- let matchedLang = find(_supportedLang, (val) => lang === val) || find(_supportedLang, (val) => lang.startsWith(val));
267
- if (matchedLang) {
268
- supportedLang.push(matchedLang);
269
- }
270
- });
271
- _appSupportedLang = supportedLang[0];
272
- }
273
246
  // check for the session storage to load any pre-requested locale
274
247
  const _defaultLang = getSessionStorageItem('selectedLocale') || _selectedDefaultLang || _appSupportedLang || intersection(_acceptLang, _supportedLang)[0] || this.defaultSupportedLocale;
275
248
  // if the supportedLocale is not available set it to defaultLocale
@@ -288,28 +261,20 @@ export class I18nServiceImpl extends AbstractI18nService {
288
261
  // This function returns the accepted languages list
289
262
  getAcceptedLanguages() {
290
263
  let languages;
291
- if (CONSTANTS.hasCordova) {
292
- languages = navigator.languages || [navigator.language];
293
- }
294
- else {
295
- languages = decodeURIComponent(getWmProjectProperties().preferredLanguage || '');
296
- /**
297
- * Accept-Language Header will contain set of supported locale, so try splitting the string to proper locale set
298
- * Ex: en,en-US;q=0.9,de;q=0.6,ar;q=0.2,hi
299
- *
300
- * Split the above into [en,en-us,de,ar,hi]
301
- * @type {Array}
302
- */
303
- languages = languages.split(',').map(function (locale) {
304
- return locale.split(';')[0];
305
- });
306
- }
264
+ languages = decodeURIComponent(getWmProjectProperties().preferredLanguage || '');
265
+ /**
266
+ * Accept-Language Header will contain set of supported locale, so try splitting the string to proper locale set
267
+ * Ex: en,en-US;q=0.9,de;q=0.6,ar;q=0.2,hi
268
+ *
269
+ * Split the above into [en,en-us,de,ar,hi]
270
+ * @type {Array}
271
+ */
272
+ languages = languages.split(',').map(function (locale) {
273
+ return locale.split(';')[0];
274
+ });
307
275
  return map(languages, toLower);
308
276
  }
309
277
  initCalendarLocale() {
310
- if (this.selectedLocale !== 'en') {
311
- return this.loadCalendarLocaleBundle(this.selectedLocale, true);
312
- }
313
278
  return Promise.resolve();
314
279
  }
315
280
  isAngularLocaleLoaded() {
@@ -332,4 +297,4 @@ export class I18nServiceImpl extends AbstractI18nService {
332
297
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(I18nServiceImpl, [{
333
298
  type: Injectable
334
299
  }], () => [{ type: i1.HttpClient }, { type: i2.BsLocaleService }, { type: i3.AppDefaults }, { type: i0.Injector }], null); })();
335
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcnVudGltZS1iYXNlL3NyYy9zZXJ2aWNlcy9pMThuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUNILGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsV0FBVyxFQUNYLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsUUFBUSxFQUNSLFdBQVcsRUFDWCxXQUFXLEVBQ1gsT0FBTyxFQUNQLE1BQU0sRUFDTixxQkFBcUIsRUFDckIsR0FBRyxFQUNOLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7Ozs7O0FBSTdGLE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUM7QUFDOUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPO0lBQ3ZILE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxP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UyxDQUFDLENBQUM7UUFDckUsQ0FBQztJQUNMLENBQUM7Z0hBMVdRLGVBQWU7dUVBQWYsZUFBZSxXQUFmLGVBQWU7O2lGQUFmLGVBQWU7Y0FEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgZGVmaW5lTG9jYWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9jaHJvbm9zJztcbmltcG9ydCB7IEJzTG9jYWxlU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvZGF0ZXBpY2tlcic7XG5cbmltcG9ydCB7XG4gICAgX1dNX0FQUF9QUk9KRUNULFxuICAgIEFic3RyYWN0STE4blNlcnZpY2UsXG4gICAgQXBwRGVmYXVsdHMsXG4gICAgZ2V0U2Vzc2lvblN0b3JhZ2VJdGVtLFxuICAgIGdldFdtUHJvamVjdFByb3BlcnRpZXMsXG4gICAgaXNNb2JpbGUsXG4gICAgaXNNb2JpbGVBcHAsXG4gICAgbG9hZFNjcmlwdHMsXG4gICAgcmVwbGFjZSxcbiAgICBzZXRDU1MsXG4gICAgc2V0U2Vzc2lvblN0b3JhZ2VJdGVtLFxuICAgIEFwcFxufSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBDT05TVEFOVFMgfSBmcm9tICdAd20vdmFyaWFibGVzJztcbmltcG9ydCB7ZmluZCwgZm9yRWFjaCwgZ2V0LCBpbmNsdWRlcywgaW50ZXJzZWN0aW9uLCBpc09iamVjdCwgbWFwLCB0b0xvd2VyfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmRlY2xhcmUgY29uc3QgbW9tZW50O1xuXG5jb25zdCBBUFBfTE9DQUxFX1JPT1RfUEFUSCA9ICdyZXNvdXJjZXMvaTE4bic7XG5jb25zdCBSVExfTEFOR1VBR0VfQ09ERVMgPSBbJ2FyJywgJ2FyLTAwMScsICdhci1hZScsICdhci1iaCcsICdhci1keicsICdhci1lZycsICdhci1pcScsICdhci1qbycsICdhci1rdycsICdhci1sYicsICdhci1seScsXG4gICAgJ2FyLW1hJywgJ2FyLW9tJywgJ2FyLXFhJywgJ2FyLXNhJywgJ2FyLXNkJywgJ2FyLXN5JywgJ2FyLXRuJywgJ2FyLXllJywgJ2FyYycsICdiY2MnLCAnYnFpJywgJ2NrYicsICdkdicsICdmYScsICdnbGsnLFxuICAgICdoZScsICdrdScsICdtem4nLCAncG5iJywgJ3BzJywgJ3NkJywgJ3VnJywgJ3VyJywgJ3lpJ107XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJMThuU2VydmljZUltcGwgZXh0ZW5kcyBBYnN0cmFjdEkxOG5TZXJ2aWNlIHtcblxuICAgIHByaXZhdGUgc2VsZWN0ZWRMb2NhbGU6IHN0cmluZztcbiAgICBwcml2YXRlIGRlZmF1bHRTdXBwb3J0ZWRMb2NhbGUgPSAnZW4nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwTG9jYWxlOiBhbnk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmVmYWJMb2NhbGU6IE1hcDxTdHJpbmcsIGFueT47XG4gICAgcHJpdmF0ZSBtZXNzYWdlczogYW55O1xuICAgIHByaXZhdGUgX2lzQW5ndWxhckxvY2FsZUxvYWRlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgZm9ybWF0c0J5TG9jYWxlID0geyd0aW1lem9uZSc6ICcnLCAnbnVtYmVyJzogJyd9O1xuICAgIHByaXZhdGUgZ2V0IGFwcCgpIHsgcmV0dXJuIHRoaXMuaW5qLmdldChBcHApIH07XG5cbiAgICBwcml2YXRlIGJ1bmRsZUxvYWRlZDp7W2tleTpzdHJpbmddIDogYW55fSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgJGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgIHByaXZhdGUgYnNMb2NhbGVTZXJ2aWNlOiBCc0xvY2FsZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXBwRGVmYXVsdHM6IEFwcERlZmF1bHRzLFxuICAgICAgICBwcml2YXRlIGluajogSW5qZWN0b3JcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5hcHBMb2NhbGUgPSB7fTtcbiAgICAgICAgdGhpcy5wcmVmYWJMb2NhbGUgPSBuZXcgTWFwKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVMb2NhbGVEaXJlY3Rpb24oKSB7XG4gICAgICAgIGxldCBkaXJlY3Rpb246ICdsdHInIHwgJ3J0bCcgPSAnbHRyJztcbiAgICAgICAgaWYgKFJUTF9MQU5HVUFHRV9DT0RFUy5pbmNsdWRlcyh0aGlzLnNlbGVjdGVkTG9jYWxlKSkge1xuICAgICAgICAgICAgZGlyZWN0aW9uID0gJ3J0bCc7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRDU1MoZG9jdW1lbnQuYm9keSwgJ2RpcmVjdGlvbicsIGRpcmVjdGlvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0KCkge1xuICAgICAgICB0aGlzLm1lc3NhZ2VzID0ge307XG5cbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMuYXBwTG9jYWxlLCB0aGlzLm1lc3NhZ2VzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2VsZWN0ZWRMb2NhbGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRMb2NhbGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldERlZmF1bHRTdXBwb3J0ZWRMb2NhbGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFN1cHBvcnRlZExvY2FsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXBwTG9jYWxlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcExvY2FsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UHJlZmFiTG9jYWxlQnVuZGxlKHByZWZhYk5hbWU6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIGlmICghdGhpcy5wcmVmYWJMb2NhbGUuaGFzKHByZWZhYk5hbWUpKSB7XG4gICAgICAgICAgICB0aGlzLnByZWZhYkxvY2FsZS5zZXQocHJlZmFiTmFtZSwgT2JqZWN0LmNyZWF0ZSh0aGlzLmFwcExvY2FsZSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnByZWZhYkxvY2FsZS5nZXQocHJlZmFiTmFtZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleHRlbmRQcmVmYWJNZXNzYWdlcyhtZXNzYWdlczogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICghbWVzc2FnZXMucHJlZmFiTWVzc2FnZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIE9iamVjdC5rZXlzKG1lc3NhZ2VzLnByZWZhYk1lc3NhZ2VzKS5mb3JFYWNoKChwcmVmYWJOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGxldCBidW5kbGUgPSB0aGlzLnByZWZhYkxvY2FsZS5nZXQocHJlZmFiTmFtZSk7XG4gICAgICAgICAgICBpZiAoIWJ1bmRsZSkge1xuICAgICAgICAgICAgICAgIGJ1bmRsZSA9IE9iamVjdC5jcmVhdGUodGhpcy5hcHBMb2NhbGUpO1xuICAgICAgICAgICAgICAgIHRoaXMucHJlZmFiTG9jYWxlLnNldChwcmVmYWJOYW1lLCBidW5kbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihidW5kbGUsIG1lc3NhZ2VzLnByZWZhYk1lc3NhZ2VzW3ByZWZhYk5hbWVdKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleHRlbmRNZXNzYWdlcyhtZXNzYWdlczogYW55KTogdm9pZCB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5tZXNzYWdlcywgbWVzc2FnZXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFJlc291cmNlKHBhdGgpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy4kaHR0cC5nZXQocGF0aClcbiAgICAgICAgICAgIC50b1Byb21pc2UoKVxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYGVycm9yIGxvYWRpbmcgbG9jYWxlIHJlc291cmNlIGZyb20gJHtwYXRofWApO1xuICAgICAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbG9hZEFwcExvY2FsZUJ1bmRsZSgpIHtcbiAgICAgICAgY29uc3QgYmFzZVBhdGggPSBfV01fQVBQX1BST0pFQ1QuaXNQcmV2aWV3IHx8ICh3aW5kb3cgYXMgYW55KS5fV01fQVBQX1BST1BFUlRJRVM/Lmxhbmd1YWdlQnVuZGxlU291cmNlcyA9PT0gJ0RZTkFNSUMnID8gJycgOiAgX1dNX0FQUF9QUk9KRUNULmNkblVybFxuICAgICAgICB0aGlzLmxvYWRSZXNvdXJjZSggYmFzZVBhdGggKyBgJHtBUFBfTE9DQUxFX1JPT1RfUEFUSH0vJHt0aGlzLnNlbGVjdGVkTG9jYWxlfS5qc29uYClcbiAgICAgICAgICAgIC50aGVuKGJ1bmRsZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5leHRlbmRNZXNzYWdlcyhidW5kbGUubWVzc2FnZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuZXh0ZW5kUHJlZmFiTWVzc2FnZXMoYnVuZGxlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFwcERlZmF1bHRzLnNldEZvcm1hdHMoYnVuZGxlLmZvcm1hdHMpO1xuICAgICAgICAgICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLmFwcCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5ub3RpZnlMb2NhbGVDaGFuZ2VkKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbG9hZE1vbWVudExvY2FsZUJ1bmRsZShtb21lbnRMb2NhbGUpIHtcbiAgICAgICAgY29uc3QgX2NkblVybCA9IF9XTV9BUFBfUFJPSkVDVC5jZG5VcmwgfHwgX1dNX0FQUF9QUk9KRUNULm5nRGVzdDtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRMb2NhbGUgPT09IHRoaXMuZGVmYXVsdFN1cHBvcnRlZExvY2FsZSkge1xuICAgICAgICAgICAgbW9tZW50LmxvY2FsZSh0aGlzLmRlZmF1bHRTdXBwb3J0ZWRMb2NhbGUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhdGggPSBfY2RuVXJsICsgYGxvY2FsZXMvbW9tZW50LyR7bW9tZW50TG9jYWxlfS5qc2A7XG4gICAgICAgIGxvYWRTY3JpcHRzKFtwYXRoXSwgdHJ1ZSkudGhlbigoKT0+e1xuICAgICAgICAgICAgbW9tZW50LmxvY2FsZSh0aGlzLnNlbGVjdGVkTG9jYWxlKTtcblxuICAgICAgICAgICAgLy8gRm9yIG5neCBib290c3RyYXAgbG9jYWxlLCBnZXQgdGhlIGNvbmZpZyBmcm9tIHNjcmlwdCBhbmQgYXBwbHkgbG9jYWxlXG4gICAgICAgICAgICAvLyBtb21lbnQubG9jYWxlRGF0YShtb21lbnRMb2NhbGUpIHdpbGwgcmV0dXJuIG1vbWVudCBsb2NhbGUgaW5zdGFuY2UuIF9jb25maWcgaW5zaWRlIHdpbGwgaGF2ZSBhY3R1YWwgY29uZmlnXG4gICAgICAgICAgICBsZXQgX2NvbmZpZyA9IG1vbWVudC5sb2NhbGVEYXRhKG1vbWVudExvY2FsZSk7XG4gICAgICAgICAgICBfY29uZmlnID0gX2NvbmZpZyAmJiBfY29uZmlnLl9jb25maWc7XG4gICAgICAgICAgICBkZWZpbmVMb2NhbGUodGhpcy5zZWxlY3RlZExvY2FsZSwgX2NvbmZpZyk7XG4gICAgICAgICAgICB0aGlzLmJzTG9jYWxlU2VydmljZS51c2UodGhpcy5nZXRTZWxlY3RlZExvY2FsZSgpIHx8IHRoaXMuZGVmYXVsdFN1cHBvcnRlZExvY2FsZSk7XG4gICAgICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5tb21lbnQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5ub3RpZnlMb2NhbGVDaGFuZ2VkKCk7XG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxvYWRBbmd1bGFyTG9jYWxlQnVuZGxlKGFuZ0xvY2FsZSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4ocmVzb2x2ZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBfY2RuVXJsID0gX1dNX0FQUF9QUk9KRUNULmNkblVybCB8fCBfV01fQVBQX1BST0pFQ1QubmdEZXN0O1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRMb2NhbGUgPT09IHRoaXMuZGVmYXVsdFN1cHBvcnRlZExvY2FsZSkge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gX2NkblVybCArIGBsb2NhbGVzL2FuZ3VsYXIvZ2xvYmFsLyR7YW5nTG9jYWxlfS5qc2A7XG5cbiAgICAgICAgICAgIGxvYWRTY3JpcHRzKFtwYXRoXSwgdHJ1ZSkudGhlbigoKT0+e1xuICAgICAgICAgICAgICAgIHRoaXMuX2lzQW5ndWxhckxvY2FsZUxvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgfSwgcmVzb2x2ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBsb2FkQ2FsZW5kYXJMb2NhbGVCdW5kbGUoY2FsZW5kYXJMb2NhbGUsIGZvcmNlID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgX2NkblVybCA9IF9XTV9BUFBfUFJPSkVDVC5jZG5VcmwgfHwgX1dNX0FQUF9QUk9KRUNULm5nRGVzdDtcbiAgICAgICAgbGV0IHBhdGg6IHN0cmluZztcbiAgICAgICAgaWYgKGNhbGVuZGFyTG9jYWxlKSB7XG4gICAgICAgICAgICBwYXRoID0gX2NkblVybCArIGBsb2NhbGVzL2Z1bGxjYWxlbmRhci8ke2NhbGVuZGFyTG9jYWxlfS5qc2A7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyByZXR1cm4gaW4gY2FzZSBvZiBtb2JpbGUgYXBwIG9yIGlmIHNlbGVjdGVkIGxvY2FsZSBpcyBkZWZhdWx0IHN1cHBvcnRlZCBsb2NhbGUuXG4gICAgICAgIGlmICghZm9yY2UgJiYgKGlzTW9iaWxlKCkgfHwgaXNNb2JpbGVBcHAoKSB8fCB0aGlzLnNlbGVjdGVkTG9jYWxlID09PSB0aGlzLmRlZmF1bHRTdXBwb3J0ZWRMb2NhbGUpKSB7XG4gICAgICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5mdWxsQ2FsZW5kYXIgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2FsbCB0aGUgc2NyaXB0LiBJbiBzY3JpcHQsIG1vbWVudCBkZWZpbmVzIHRoZSBsb2FkZWQgbG9jYWxlXG4gICAgICAgIHJldHVybiBsb2FkU2NyaXB0cyhbcGF0aF0sIHRydWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBsb2FkTW9tZW50VGltZVpvbmVCdW5kbGUobG9jYWxlLCBjb21wSW5zdGFuY2U/KSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihyZXNvbHZlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IF9jZG5VcmwgPSBfV01fQVBQX1BST0pFQ1QuY2RuVXJsIHx8IF9XTV9BUFBfUFJPSkVDVC5uZ0Rlc3Q7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gX2NkblVybCArIGBsb2NhbGVzL21vbWVudC10aW1lem9uZS9tb21lbnQtdGltZXpvbmUtd2l0aC1kYXRhLmpzYDtcbiAgICAgICAgICAgIGxvYWRTY3JpcHRzKFtwYXRoXSwgdHJ1ZSkudGhlbigoKT0+e1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIElmIGxvY2FsZSBpcyBwcm92aWRlZCBpbiB0aGUgZm9ybSBvZiBvZmZzZXQgYW5kIG5vdCB0aW1lem9uZSBuYW1lLCBkZWR1Y2UgdGhlIG5hbWUuXG4gICAgICAgICAgICAgICAgICogSWYgbG9jYWxlIGlzIHByb3ZpZGVkIGFzIEdNVCs5LCBuYW1lIHdpbGwgYmUgZGVkdWNlZCBhcyBBc2lhL1Rva3lvXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBsZXQgbG9jYWxlT2JqID0gbG9jYWxlO1xuICAgICAgICAgICAgICAgIGxvY2FsZSA9IGxvY2FsZU9ialsndGltZXpvbmUnXTtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbGVJbmRleCA9IGxvY2FsZS5pbmRleE9mKCcrJyk7XG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsZUluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxvY2FsZUluZGV4ID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlID0gbG9jYWxlLnN1YnN0cihsb2NhbGVJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlT2JqWyd0aW1lem9uZSddID0gZmluZChtb21lbnQudHoubmFtZXMoKSwgKHRpbWV6b25lTmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxvY2FsZSA9PT0gbW9tZW50LnR6KHRpbWV6b25lTmFtZSkuZm9ybWF0KCdaJyk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBtb21lbnQudHouc2V0RGVmYXVsdChsb2NhbGUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvY2FsZURhdGEgPSAgY29tcEluc3RhbmNlICYmIGNvbXBJbnN0YW5jZS5mb3JtYXRzQnlMb2NhbGUgPyBjb21wSW5zdGFuY2UuZm9ybWF0c0J5TG9jYWxlIDogdGhpcy5mb3JtYXRzQnlMb2NhbGU7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihsb2NhbGVEYXRhLCBsb2NhbGVPYmopO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgIH0sIHJlc29sdmUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbG9hZExvY2FsZUJ1bmRsZXMobGliTG9jYWxlKSB7XG4gICAgICAgIGlmIChsaWJMb2NhbGUubW9tZW50KSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRNb21lbnRMb2NhbGVCdW5kbGUobGliTG9jYWxlLm1vbWVudCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZExvY2FsZSA9PT0gdGhpcy5kZWZhdWx0U3VwcG9ydGVkTG9jYWxlKSB7XG4gICAgICAgICAgICB0aGlzLmJzTG9jYWxlU2VydmljZS51c2UodGhpcy5nZXRTZWxlY3RlZExvY2FsZSgpIHx8IHRoaXMuZGVmYXVsdFN1cHBvcnRlZExvY2FsZSk7XG4gICAgICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5tb21lbnQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaWJMb2NhbGUuZnVsbENhbGVuZGFyICYmIHdpbmRvd1snRnVsbENhbGVuZGFyJ10pIHtcbiAgICAgICAgICAgIHRoaXMubG9hZENhbGVuZGFyTG9jYWxlQnVuZGxlKGxpYkxvY2FsZS5mdWxsQ2FsZW5kYXIpPy50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5mdWxsQ2FsZW5kYXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMubm90aWZ5TG9jYWxlQ2hhbmdlZCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5mdWxsQ2FsZW5kYXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaWJMb2NhbGUuYW5ndWxhcikge1xuICAgICAgICAgICAgdGhpcy5sb2FkQXBwTG9jYWxlQnVuZGxlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZEFuZ3VsYXJMb2NhbGVCdW5kbGUobGliTG9jYWxlLmFuZ3VsYXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRUaW1lem9uZShsb2NhbGUsIGNvbXBJbnN0YW5jZT8pIHtcbiAgICAgICAgdGhpcy5sb2FkTW9tZW50VGltZVpvbmVCdW5kbGUobG9jYWxlLCBjb21wSW5zdGFuY2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUaW1lem9uZShjb21wSW5zdGFuY2U/KSB7XG4gICAgICAgIGNvbnN0IHBhZ2VDb25maWcgPSBnZXQodGhpcy5hcHAsICdhY3RpdmVQYWdlLmZvcm1hdHNCeUxvY2FsZS50aW1lem9uZScpO1xuICAgICAgICBjb25zdCBjb21wQ29uZmlnID0gZ2V0KGNvbXBJbnN0YW5jZSwgJ2Zvcm1hdHNCeUxvY2FsZS50aW1lem9uZScpO1xuICAgICAgICBpZiAoY29tcENvbmZpZykge1xuICAgICAgICAgICAgcmV0dXJuIGNvbXBDb25maWc7XG4gICAgICAgIH0gZWxzZSBpZiAocGFnZUNvbmZpZykge1xuICAgICAgICAgICAgcmV0dXJuIHBhZ2VDb25maWc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRzQnlMb2NhbGVbJ3RpbWV6b25lJ107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Rm9ybWF0c0J5TG9jYWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRzQnlMb2NhbGU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFNlbGVjdGVkTG9jYWxlKGxvY2FsZSkge1xuXG4gICAgICAgIC8vIGNoZWNrIGlmIHRoZSBldmVudCBpcyBwcm9wYWdhdGVkIGZyb20gdGhlIHNlbGVjdCBvciBhbnkgc3VjaCB3aWRnZXRcbiAgICAgICAgaWYgKGlzT2JqZWN0KGxvY2FsZSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGxvY2FsZSA9IGxvY2FsZS5kYXRhdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsaWJMb2NhbGUgPSBnZXRXbVByb2plY3RQcm9wZXJ0aWVzKCkuc3VwcG9ydGVkTGFuZ3VhZ2VzW2xvY2FsZV07XG4gICAgICAgIGNvbnN0IHN1cHBvcnRlZExvY2FsZSA9IE9iamVjdC5rZXlzKGdldFdtUHJvamVjdFByb3BlcnRpZXMoKS5zdXBwb3J0ZWRMYW5ndWFnZXMpO1xuXG4gICAgICAgIGlmICghaW5jbHVkZXMoc3VwcG9ydGVkTG9jYWxlLCBsb2NhbGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWxvY2FsZSB8fCBsb2NhbGUgPT09IHRoaXMuc2VsZWN0ZWRMb2NhbGUpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFNlc3Npb25TdG9yYWdlSXRlbSgnc2VsZWN0ZWRMb2NhbGUnLCBsb2NhbGUpO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRMb2NhbGUgPSBsb2NhbGU7XG5cbiAgICAgICAgLy8gcmVzZXQgdGhlIGxvY2FsZURhdGEgb2JqZWN0XG4gICAgICAgIHRoaXMuaW5pdCgpO1xuXG4gICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLm1vbWVudCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5mdWxsQ2FsZW5kYXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5idW5kbGVMb2FkZWQuYXBwID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLmFuZ3VsYXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5idW5kbGVMb2FkZWQubGliTG9jYWxlID0gbGliTG9jYWxlO1xuXG4gICAgICAgIC8vIGxvYWQgdGhlIGxvY2FsZSBidW5kbGVzIG9mIHRoZSBzZWxlY3RlZCBsb2NhbGVcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZExvY2FsZUJ1bmRsZXMobGliTG9jYWxlKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTG9jYWxlRGlyZWN0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5hbmd1bGFyID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubm90aWZ5TG9jYWxlQ2hhbmdlZCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlZHVjZUFwcExvY2FsZSgpIHtcbiAgICAgICAgLy8gY29tcHV0YXRpb24gdG8gZmluZCBhcHAgZGVmYXVsdCBsb2NhbGVcbiAgICAgICAgY29uc3QgX2FjY2VwdExhbmcgPSB0aGlzLmdldEFjY2VwdGVkTGFuZ3VhZ2VzKCk7XG4gICAgICAgIGNvbnN0IF9kZWZhdWx0TGFuZ3VhZ2UgPSBnZXRXbVByb2plY3RQcm9wZXJ0aWVzKCkuZGVmYXVsdExhbmd1YWdlO1xuICAgICAgICBfYWNjZXB0TGFuZy5wdXNoKF9kZWZhdWx0TGFuZ3VhZ2UpO1xuXG4gICAgICAgIC8vIGNoZWNrcyB3aGV0aGVyIHVzZXIgcHJlZmVyZW5jZSBpcyBiYXNlZCBvbiBicm93c2VyIHNldCBsYW5ndWFnZXMgb3IgZGVmYXVsdCBsYW5ndWFnZSBzZXQgaW4gcHJvamVjdFxuICAgICAgICBsZXQgcHJlZmVyQnJvd3NlckxhbmcgPSBnZXRXbVByb2plY3RQcm9wZXJ0aWVzKCkucHJlZmVyQnJvd3Nlckxhbmc7XG4gICAgICAgIGlmICghcHJlZmVyQnJvd3NlckxhbmcpIHsgLy8gd2hlbiBwcmVmZXJCcm93c2VyTGFuZyBpcyBub3QgZGVmaW5lZCwgc2V0IHRvIGl0cyBkZWZhdWx0IHZhbHVlXG4gICAgICAgICAgICBwcmVmZXJCcm93c2VyTGFuZyAgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgeyAvLyBjb252ZXJ0IHN0cmluZ2lmaWVkIGJvb2xlYW4gdmFsdWVzIHJlY2lldmVkIGZyb20gQkUgdG8gYm9vbGVhbnNcbiAgICAgICAgICAgIHByZWZlckJyb3dzZXJMYW5nPSAocHJlZmVyQnJvd3NlckxhbmcgPT09ICd0cnVlJyB8fCBwcmVmZXJCcm93c2VyTGFuZyA9PT0gdHJ1ZSkgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgX3N1cHBvcnRlZExhbmcgPSBPYmplY3Qua2V5cyhnZXRXbVByb2plY3RQcm9wZXJ0aWVzKCkuc3VwcG9ydGVkTGFuZ3VhZ2VzKSB8fCBbdGhpcy5kZWZhdWx0U3VwcG9ydGVkTG9jYWxlXTtcblxuICAgICAgICAvLyB3aGVuIHByZWZlcmVuY2UgaXMgZ2l2ZW4gdG8gYnJvd3NlciBzZXQgbGFuZ3VhZ2VzLCBkbyBub3QgcG9wdWxhdGUgX3NlbGVjdGVkRGVmYXVsdExhbmcgdmFyaWFibGVcbiAgICAgICAgbGV0IF9zZWxlY3RlZERlZmF1bHRMYW5nID0gcHJlZmVyQnJvd3NlckxhbmcgPyB1bmRlZmluZWQgOiBfZGVmYXVsdExhbmd1YWdlO1xuXG4gICAgICAgIGxldCBfYXBwU3VwcG9ydGVkTGFuZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGZvciBjb3Jkb3ZhLCBjaGVjayBmb3IgbGFuZ3VhZ2UgaWdub3JpbmcgdGhlIGxvY2FsZVxuICAgICAgICAgKiBBcyB0aGUgbmF2aWdhdG9yLmxhbmd1YWdlcyBhbHdheXMgcmV0dXJucyB0aGUgbGFuZ3VhZ2Ugd2l0aCBsb2NhbGUgKGVuLXVzKVxuICAgICAgICAgKiBUaGUgc3VwcG9ydGVkTGFuZ3VhZ2VzIGZyb20gQkUgZG9lc24ndCBpbmNsdWRlIGxvY2FsZSAoZW4pIHdoaWNoIGxlYWRzIHRvIG1pc21hdGNoXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoQ09OU1RBTlRTLmhhc0NvcmRvdmEpIHtcbiAgICAgICAgICAgIGxldCBzdXBwb3J0ZWRMYW5nID0gW107XG4gICAgICAgICAgICBmb3JFYWNoKF9hY2NlcHRMYW5nLCBmdW5jdGlvbiAobGFuZykge1xuICAgICAgICAgICAgICAgIGxldCBtYXRjaGVkTGFuZyA9IGZpbmQoX3N1cHBvcnRlZExhbmcsICh2YWwpID0+IGxhbmcgPT09IHZhbCkgfHwgZmluZChfc3VwcG9ydGVkTGFuZywgKHZhbCkgPT4gbGFuZy5zdGFydHNXaXRoKHZhbCkpO1xuICAgICAgICAgICAgICAgIGlmIChtYXRjaGVkTGFuZykge1xuICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRMYW5nLnB1c2gobWF0Y2hlZExhbmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgX2FwcFN1cHBvcnRlZExhbmcgPSBzdXBwb3J0ZWRMYW5nWzBdO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNoZWNrIGZvciB0aGUgc2Vzc2lvbiBzdG9yYWdlIHRvIGxvYWQgYW55IHByZS1yZXF1ZXN0ZWQgbG9jYWxlXG4gICAgICAgIGNvbnN0IF9kZWZhdWx0TGFuZyA9IGdldFNlc3Npb25TdG9yYWdlSXRlbSgnc2VsZWN0ZWRMb2NhbGUnKSB8fCBfc2VsZWN0ZWREZWZhdWx0TGFuZyB8fCBfYXBwU3VwcG9ydGVkTGFuZyB8fCBpbnRlcnNlY3Rpb24oX2FjY2VwdExhbmcsIF9zdXBwb3J0ZWRMYW5nKVswXSB8fCB0aGlzLmRlZmF1bHRTdXBwb3J0ZWRMb2NhbGU7XG4gICAgICAgIC8vIGlmIHRoZSBzdXBwb3J0ZWRMb2NhbGUgaXMgbm90IGF2YWlsYWJsZSBzZXQgaXQgdG8gZGVmYXVsdExvY2FsZVxuICAgICAgICBfc3VwcG9ydGVkTGFuZyA9IF9zdXBwb3J0ZWRMYW5nIHx8IFtfZGVmYXVsdExhbmddO1xuXG4gICAgICAgIGNvbnN0IGRlZmF1bHRMYW5ndWFnZSA9IF9kZWZhdWx0TGFuZyB8fCBfc3VwcG9ydGVkTGFuZ1swXTtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbG9hZERlZmF1bHRMb2NhbGUoKSB7XG4gICAgICAgIERhdGUucHJvdG90eXBlW1wibW9udGhcIl0gPSBEYXRlLnByb3RvdHlwZS5nZXRNb250aDtcbiAgICAgICAgY29uc3QgbG9jYWxlID0gdGhpcy5kZWR1Y2VBcHBMb2NhbGUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0U2VsZWN0ZWRMb2NhbGUobG9jYWxlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TG9jYWxpemVkTWVzc2FnZShtZXNzYWdlLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiByZXBsYWNlKHRoaXMuYXBwTG9jYWxlW21lc3NhZ2VdLCBhcmdzKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFjY2VwdGVkIGxhbmd1YWdlcyBsaXN0XG4gICAgcHVibGljIGdldEFjY2VwdGVkTGFuZ3VhZ2VzKCkge1xuICAgICAgICBsZXQgbGFuZ3VhZ2VzO1xuICAgICAgICBpZiAoQ09OU1RBTlRTLmhhc0NvcmRvdmEpIHtcbiAgICAgICAgICAgIGxhbmd1YWdlcyA9IG5hdmlnYXRvci5sYW5ndWFnZXMgfHwgW25hdmlnYXRvci5sYW5ndWFnZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsYW5ndWFnZXMgPSBkZWNvZGVVUklDb21wb25lbnQoZ2V0V21Qcm9qZWN0UHJvcGVydGllcygpLnByZWZlcnJlZExhbmd1YWdlIHx8ICcnKTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQWNjZXB0LUxhbmd1YWdlIEhlYWRlciB3aWxsIGNvbnRhaW4gc2V0IG9mIHN1cHBvcnRlZCBsb2NhbGUsIHNvIHRyeSBzcGxpdHRpbmcgdGhlIHN0cmluZyB0byBwcm9wZXIgbG9jYWxlIHNldFxuICAgICAgICAgICAgICogRXg6IGVuLGVuLVVTO3E9MC45LGRlO3E9MC42LGFyO3E9MC4yLGhpXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogU3BsaXQgdGhlIGFib3ZlIGludG8gW2VuLGVuLXVzLGRlLGFyLGhpXVxuICAgICAgICAgICAgICogQHR5cGUge0FycmF5fVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBsYW5ndWFnZXMgPSBsYW5ndWFnZXMuc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24obG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxvY2FsZS5zcGxpdCgnOycpWzBdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1hcChsYW5ndWFnZXMsIHRvTG93ZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0Q2FsZW5kYXJMb2NhbGUoKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRMb2NhbGUgIT09ICdlbicpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWRDYWxlbmRhckxvY2FsZUJ1bmRsZSh0aGlzLnNlbGVjdGVkTG9jYWxlLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQW5ndWxhckxvY2FsZUxvYWRlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzQW5ndWxhckxvY2FsZUxvYWRlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0d2lkZ2V0TG9jYWxlKGxvY2FsZSkge1xuICAgICAgICB0aGlzLmZvcm1hdHNCeUxvY2FsZVsnbnVtYmVyJ10gPSBsb2NhbGVbJ251bWJlciddO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXR3aWRnZXRMb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdHNCeUxvY2FsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG5vdGlmeUxvY2FsZUNoYW5nZWQoKSB7XG4gICAgICAgIGlmKHRoaXMuYnVuZGxlTG9hZGVkLm1vbWVudCAmJiB0aGlzLmJ1bmRsZUxvYWRlZC5mdWxsQ2FsZW5kYXIgJiYgdGhpcy5idW5kbGVMb2FkZWQuYW5ndWxhciAmJiB0aGlzLmJ1bmRsZUxvYWRlZC5hcHApIHtcbiAgICAgICAgICAgIHRoaXMuYXBwLm5vdGlmeSggICdsb2NhbGUtY2hhbmdlZCcsIHRoaXMuYnVuZGxlTG9hZGVkLmxpYkxvY2FsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiJdfQ==
300
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcnVudGltZS1iYXNlL3NyYy9zZXJ2aWNlcy9pMThuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUNILGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsV0FBVyxFQUNYLHFCQUFxQixFQUNyQixzQkFBc0IsRUFFdEIsV0FBVyxFQUNYLE9BQU8sRUFDUCxNQUFNLEVBQ04scUJBQXFCLEVBQ3JCLEdBQUcsRUFDTixNQUFNLFVBQVUsQ0FBQztBQUVsQixPQUFPLEVBQUMsSUFBSSxFQUFXLEdBQUcsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRTdGLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7Ozs7QUFFNUIsTUFBTSxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUM5QyxNQUFNLGtCQUFrQixHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU87SUFDdkgsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxL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QztRQUNoQyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sa0JBQWtCO1FBQ3JCLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxxQkFBcUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDdkMsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFNO1FBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxlQUFlO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDO0lBRU8sbUJBQW1CO1FBQ3ZCLElBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsSCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBRyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7SUFDTCxDQUFDO2dIQXhVUSxlQUFlO3VFQUFmLGVBQWUsV0FBZixlQUFlOztpRkFBZixlQUFlO2NBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGRlZmluZUxvY2FsZSB9IGZyb20gJ25neC1ib290c3RyYXAvY2hyb25vcyc7XG5pbXBvcnQgeyBCc0xvY2FsZVNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2RhdGVwaWNrZXInO1xuXG5pbXBvcnQge1xuICAgIF9XTV9BUFBfUFJPSkVDVCxcbiAgICBBYnN0cmFjdEkxOG5TZXJ2aWNlLFxuICAgIEFwcERlZmF1bHRzLFxuICAgIGdldFNlc3Npb25TdG9yYWdlSXRlbSxcbiAgICBnZXRXbVByb2plY3RQcm9wZXJ0aWVzLFxuICAgIGlzTW9iaWxlLFxuICAgIGxvYWRTY3JpcHRzLFxuICAgIHJlcGxhY2UsXG4gICAgc2V0Q1NTLFxuICAgIHNldFNlc3Npb25TdG9yYWdlSXRlbSxcbiAgICBBcHBcbn0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgQ09OU1RBTlRTIH0gZnJvbSAnQHdtL3ZhcmlhYmxlcyc7XG5pbXBvcnQge2ZpbmQsIGZvckVhY2gsIGdldCwgaW5jbHVkZXMsIGludGVyc2VjdGlvbiwgaXNPYmplY3QsIG1hcCwgdG9Mb3dlcn0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbmNvbnN0IEFQUF9MT0NBTEVfUk9PVF9QQVRIID0gJ3Jlc291cmNlcy9pMThuJztcbmNvbnN0IFJUTF9MQU5HVUFHRV9DT0RFUyA9IFsnYXInLCAnYXItMDAxJywgJ2FyLWFlJywgJ2FyLWJoJywgJ2FyLWR6JywgJ2FyLWVnJywgJ2FyLWlxJywgJ2FyLWpvJywgJ2FyLWt3JywgJ2FyLWxiJywgJ2FyLWx5JyxcbiAgICAnYXItbWEnLCAnYXItb20nLCAnYXItcWEnLCAnYXItc2EnLCAnYXItc2QnLCAnYXItc3knLCAnYXItdG4nLCAnYXIteWUnLCAnYXJjJywgJ2JjYycsICdicWknLCAnY2tiJywgJ2R2JywgJ2ZhJywgJ2dsaycsXG4gICAgJ2hlJywgJ2t1JywgJ216bicsICdwbmInLCAncHMnLCAnc2QnLCAndWcnLCAndXInLCAneWknXTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEkxOG5TZXJ2aWNlSW1wbCBleHRlbmRzIEFic3RyYWN0STE4blNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBzZWxlY3RlZExvY2FsZTogc3RyaW5nO1xuICAgIHByaXZhdGUgZGVmYXVsdFN1cHBvcnRlZExvY2FsZSA9ICdlbic7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBMb2NhbGU6IGFueTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByZWZhYkxvY2FsZTogTWFwPFN0cmluZywgYW55PjtcbiAgICBwcml2YXRlIG1lc3NhZ2VzOiBhbnk7XG4gICAgcHJpdmF0ZSBfaXNBbmd1bGFyTG9jYWxlTG9hZGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBmb3JtYXRzQnlMb2NhbGUgPSB7J3RpbWV6b25lJzogJycsICdudW1iZXInOiAnJ307XG4gICAgcHJpdmF0ZSBnZXQgYXBwKCkgeyByZXR1cm4gdGhpcy5pbmouZ2V0KEFwcCkgfTtcblxuICAgIHByaXZhdGUgYnVuZGxlTG9hZGVkOntba2V5OnN0cmluZ10gOiBhbnl9ID0ge307XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSAkaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgcHJpdmF0ZSBic0xvY2FsZVNlcnZpY2U6IEJzTG9jYWxlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBhcHBEZWZhdWx0czogQXBwRGVmYXVsdHMsXG4gICAgICAgIHByaXZhdGUgaW5qOiBJbmplY3RvclxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmFwcExvY2FsZSA9IHt9O1xuICAgICAgICB0aGlzLnByZWZhYkxvY2FsZSA9IG5ldyBNYXAoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUxvY2FsZURpcmVjdGlvbigpIHtcbiAgICAgICAgbGV0IGRpcmVjdGlvbjogJ2x0cicgfCAncnRsJyA9ICdsdHInO1xuICAgICAgICBpZiAoUlRMX0xBTkdVQUdFX0NPREVTLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRMb2NhbGUpKSB7XG4gICAgICAgICAgICBkaXJlY3Rpb24gPSAncnRsJztcbiAgICAgICAgfVxuXG4gICAgICAgIHNldENTUyhkb2N1bWVudC5ib2R5LCAnZGlyZWN0aW9uJywgZGlyZWN0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXQoKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZXMgPSB7fTtcblxuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcy5hcHBMb2NhbGUsIHRoaXMubWVzc2FnZXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTZWxlY3RlZExvY2FsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZExvY2FsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGVmYXVsdFN1cHBvcnRlZExvY2FsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0U3VwcG9ydGVkTG9jYWxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBcHBMb2NhbGUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwTG9jYWxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQcmVmYWJMb2NhbGVCdW5kbGUocHJlZmFiTmFtZTogc3RyaW5nKTogYW55IHtcbiAgICAgICAgaWYgKCF0aGlzLnByZWZhYkxvY2FsZS5oYXMocHJlZmFiTmFtZSkpIHtcbiAgICAgICAgICAgIHRoaXMucHJlZmFiTG9jYWxlLnNldChwcmVmYWJOYW1lLCBPYmplY3QuY3JlYXRlKHRoaXMuYXBwTG9jYWxlKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucHJlZmFiTG9jYWxlLmdldChwcmVmYWJOYW1lKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4dGVuZFByZWZhYk1lc3NhZ2VzKG1lc3NhZ2VzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFtZXNzYWdlcy5wcmVmYWJNZXNzYWdlcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgT2JqZWN0LmtleXMobWVzc2FnZXMucHJlZmFiTWVzc2FnZXMpLmZvckVhY2goKHByZWZhYk5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgbGV0IGJ1bmRsZSA9IHRoaXMucHJlZmFiTG9jYWxlLmdldChwcmVmYWJOYW1lKTtcbiAgICAgICAgICAgIGlmICghYnVuZGxlKSB7XG4gICAgICAgICAgICAgICAgYnVuZGxlID0gT2JqZWN0LmNyZWF0ZSh0aGlzLmFwcExvY2FsZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmVmYWJMb2NhbGUuc2V0KHByZWZhYk5hbWUsIGJ1bmRsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKGJ1bmRsZSwgbWVzc2FnZXMucHJlZmFiTWVzc2FnZXNbcHJlZmFiTmFtZV0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4dGVuZE1lc3NhZ2VzKG1lc3NhZ2VzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLm1lc3NhZ2VzLCBtZXNzYWdlcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkUmVzb3VyY2UocGF0aCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLiRodHRwLmdldChwYXRoKVxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgZXJyb3IgbG9hZGluZyBsb2NhbGUgcmVzb3VyY2UgZnJvbSAke3BhdGh9YCk7XG4gICAgICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBsb2FkQXBwTG9jYWxlQnVuZGxlKCkge1xuICAgICAgICBjb25zdCBiYXNlUGF0aCA9IF9XTV9BUFBfUFJPSkVDVC5pc1ByZXZpZXcgfHwgKHdpbmRvdyBhcyBhbnkpLl9XTV9BUFBfUFJPUEVSVElFUz8ubGFuZ3VhZ2VCdW5kbGVTb3VyY2VzID09PSAnRFlOQU1JQycgPyAnJyA6ICBfV01fQVBQX1BST0pFQ1QuY2RuVXJsXG4gICAgICAgIHRoaXMubG9hZFJlc291cmNlKCBiYXNlUGF0aCArIGAke0FQUF9MT0NBTEVfUk9PVF9QQVRIfS8ke3RoaXMuc2VsZWN0ZWRMb2NhbGV9Lmpzb25gKVxuICAgICAgICAgICAgLnRoZW4oYnVuZGxlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmV4dGVuZE1lc3NhZ2VzKGJ1bmRsZS5tZXNzYWdlcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5leHRlbmRQcmVmYWJNZXNzYWdlcyhidW5kbGUpO1xuICAgICAgICAgICAgICAgIHRoaXMuYXBwRGVmYXVsdHMuc2V0Rm9ybWF0cyhidW5kbGUuZm9ybWF0cyk7XG4gICAgICAgICAgICAgICAgdGhpcy5idW5kbGVMb2FkZWQuYXBwID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeUxvY2FsZUNoYW5nZWQoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBsb2FkTW9tZW50TG9jYWxlQnVuZGxlKG1vbWVudExvY2FsZSkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZExvY2FsZSA9PT0gdGhpcy5kZWZhdWx0U3VwcG9ydGVkTG9jYWxlKSB7XG4gICAgICAgICAgICBtb21lbnQubG9jYWxlKHRoaXMuZGVmYXVsdFN1cHBvcnRlZExvY2FsZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKF9XTV9BUFBfUFJPSkVDVC5pc1ByZXZpZXcpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBgJHtfV01fQVBQX1BST0pFQ1QuY2RuVXJsfWxvY2FsZXMvbW9tZW50LyR7bW9tZW50TG9jYWxlfS5qc2A7XG4gICAgICAgICAgICBsb2FkU2NyaXB0cyhbcGF0aF0sIHRydWUpLnRoZW4oKCk9PntcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRTY3JpcHRGb3JNb21lbnQobW9tZW50TG9jYWxlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgZWxzZXtcbiAgICAgICAgICAgIHRoaXMubG9hZFNjcmlwdEZvck1vbWVudChtb21lbnRMb2NhbGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIHByb3RlY3RlZCBsb2FkU2NyaXB0Rm9yTW9tZW50KG1vbWVudExvY2FsZSl7XG4gICAgICAgICAgICBtb21lbnQubG9jYWxlKHRoaXMuc2VsZWN0ZWRMb2NhbGUpO1xuICAgICAgICAgICAgLy8gRm9yIG5neCBib290c3RyYXAgbG9jYWxlLCBnZXQgdGhlIGNvbmZpZyBmcm9tIHNjcmlwdCBhbmQgYXBwbHkgbG9jYWxlXG4gICAgICAgICAgICAvLyBtb21lbnQubG9jYWxlRGF0YShtb21lbnRMb2NhbGUpIHdpbGwgcmV0dXJuIG1vbWVudCBsb2NhbGUgaW5zdGFuY2UuIF9jb25maWcgaW5zaWRlIHdpbGwgaGF2ZSBhY3R1YWwgY29uZmlnXG4gICAgICAgICAgICBsZXQgX2NvbmZpZzogYW55ID0gbW9tZW50LmxvY2FsZURhdGEobW9tZW50TG9jYWxlKTtcbiAgICAgICAgICAgIF9jb25maWcgPSBfY29uZmlnICYmIF9jb25maWcuX2NvbmZpZztcbiAgICAgICAgICAgIGRlZmluZUxvY2FsZSh0aGlzLnNlbGVjdGVkTG9jYWxlLCBfY29uZmlnKTtcbiAgICAgICAgICAgIHRoaXMuYnNMb2NhbGVTZXJ2aWNlLnVzZSh0aGlzLmdldFNlbGVjdGVkTG9jYWxlKCkgfHwgdGhpcy5kZWZhdWx0U3VwcG9ydGVkTG9jYWxlKTtcbiAgICAgICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLm1vbWVudCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeUxvY2FsZUNoYW5nZWQoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbG9hZEFuZ3VsYXJMb2NhbGVCdW5kbGUoYW5nTG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihyZXNvbHZlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IF9jZG5VcmwgPSBfV01fQVBQX1BST0pFQ1QuY2RuVXJsIHx8IF9XTV9BUFBfUFJPSkVDVC5uZ0Rlc3Q7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZExvY2FsZSA9PT0gdGhpcy5kZWZhdWx0U3VwcG9ydGVkTG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBfY2RuVXJsICsgYGxvY2FsZXMvYW5ndWxhci9nbG9iYWwvJHthbmdMb2NhbGV9LmpzYDtcblxuICAgICAgICAgICAgbG9hZFNjcmlwdHMoW3BhdGhdLCB0cnVlKS50aGVuKCgpPT57XG4gICAgICAgICAgICAgICAgdGhpcy5faXNBbmd1bGFyTG9jYWxlTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICB9LCByZXNvbHZlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxvYWRNb21lbnRUaW1lWm9uZUJ1bmRsZShsb2NhbGUsIGNvbXBJbnN0YW5jZT8pIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KHJlc29sdmUgPT4ge1xuICAgICAgICAgICAgY29uc3QgX2NkblVybCA9IF9XTV9BUFBfUFJPSkVDVC5jZG5VcmwgfHwgX1dNX0FQUF9QUk9KRUNULm5nRGVzdDtcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBfY2RuVXJsICsgYGxvY2FsZXMvbW9tZW50LXRpbWV6b25lL21vbWVudC10aW1lem9uZS13aXRoLWRhdGEuanNgO1xuICAgICAgICAgICAgbG9hZFNjcmlwdHMoW3BhdGhdLCB0cnVlKS50aGVuKCgpPT57XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogSWYgbG9jYWxlIGlzIHByb3ZpZGVkIGluIHRoZSBmb3JtIG9mIG9mZnNldCBhbmQgbm90IHRpbWV6b25lIG5hbWUsIGRlZHVjZSB0aGUgbmFtZS5cbiAgICAgICAgICAgICAgICAgKiBJZiBsb2NhbGUgaXMgcHJvdmlkZWQgYXMgR01UKzksIG5hbWUgd2lsbCBiZSBkZWR1Y2VkIGFzIEFzaWEvVG9reW9cbiAgICAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICAgIGxldCBsb2NhbGVPYmogPSBsb2NhbGU7XG4gICAgICAgICAgICAgICAgbG9jYWxlID0gbG9jYWxlT2JqWyd0aW1lem9uZSddO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvY2FsZUluZGV4ID0gbG9jYWxlLmluZGV4T2YoJysnKTtcbiAgICAgICAgICAgICAgICBpZiAobG9jYWxlSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxlSW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGUgPSBsb2NhbGUuc3Vic3RyKGxvY2FsZUluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBsb2NhbGVPYmpbJ3RpbWV6b25lJ10gPSBmaW5kKChtb21lbnQgYXMgYW55KS50ei5uYW1lcygpLCAodGltZXpvbmVOYW1lKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxlID09PSAobW9tZW50IGFzIGFueSkudHoodGltZXpvbmVOYW1lKS5mb3JtYXQoJ1onKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIChtb21lbnQgYXMgYW55KS50ei5zZXREZWZhdWx0KGxvY2FsZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgbG9jYWxlRGF0YSA9ICBjb21wSW5zdGFuY2UgJiYgY29tcEluc3RhbmNlLmZvcm1hdHNCeUxvY2FsZSA/IGNvbXBJbnN0YW5jZS5mb3JtYXRzQnlMb2NhbGUgOiB0aGlzLmZvcm1hdHNCeUxvY2FsZTtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGxvY2FsZURhdGEsIGxvY2FsZU9iaik7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgfSwgcmVzb2x2ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBsb2FkTG9jYWxlQnVuZGxlcyhsaWJMb2NhbGUpIHtcbiAgICAgICAgaWYgKGxpYkxvY2FsZS5tb21lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZE1vbWVudExvY2FsZUJ1bmRsZShsaWJMb2NhbGUubW9tZW50KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkTG9jYWxlID09PSB0aGlzLmRlZmF1bHRTdXBwb3J0ZWRMb2NhbGUpIHtcbiAgICAgICAgICAgIHRoaXMuYnNMb2NhbGVTZXJ2aWNlLnVzZSh0aGlzLmdldFNlbGVjdGVkTG9jYWxlKCkgfHwgdGhpcy5kZWZhdWx0U3VwcG9ydGVkTG9jYWxlKTtcbiAgICAgICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLm1vbWVudCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpYkxvY2FsZS5mdWxsQ2FsZW5kYXIgJiYgd2luZG93WydGdWxsQ2FsZW5kYXInXSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLmZ1bGxDYWxlbmRhciA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5ub3RpZnlMb2NhbGVDaGFuZ2VkKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5mdWxsQ2FsZW5kYXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaWJMb2NhbGUuYW5ndWxhcikge1xuICAgICAgICAgICAgdGhpcy5sb2FkQXBwTG9jYWxlQnVuZGxlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZEFuZ3VsYXJMb2NhbGVCdW5kbGUobGliTG9jYWxlLmFuZ3VsYXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRUaW1lem9uZShsb2NhbGUsIGNvbXBJbnN0YW5jZT8pIHtcbiAgICAgICAgdGhpcy5sb2FkTW9tZW50VGltZVpvbmVCdW5kbGUobG9jYWxlLCBjb21wSW5zdGFuY2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUaW1lem9uZShjb21wSW5zdGFuY2U/KSB7XG4gICAgICAgIGNvbnN0IHBhZ2VDb25maWcgPSBnZXQodGhpcy5hcHAsICdhY3RpdmVQYWdlLmZvcm1hdHNCeUxvY2FsZS50aW1lem9uZScpO1xuICAgICAgICBjb25zdCBjb21wQ29uZmlnID0gZ2V0KGNvbXBJbnN0YW5jZSwgJ2Zvcm1hdHNCeUxvY2FsZS50aW1lem9uZScpO1xuICAgICAgICBpZiAoY29tcENvbmZpZykge1xuICAgICAgICAgICAgcmV0dXJuIGNvbXBDb25maWc7XG4gICAgICAgIH0gZWxzZSBpZiAocGFnZUNvbmZpZykge1xuICAgICAgICAgICAgcmV0dXJuIHBhZ2VDb25maWc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRzQnlMb2NhbGVbJ3RpbWV6b25lJ107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Rm9ybWF0c0J5TG9jYWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRzQnlMb2NhbGU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFNlbGVjdGVkTG9jYWxlKGxvY2FsZSkge1xuXG4gICAgICAgIC8vIGNoZWNrIGlmIHRoZSBldmVudCBpcyBwcm9wYWdhdGVkIGZyb20gdGhlIHNlbGVjdCBvciBhbnkgc3VjaCB3aWRnZXRcbiAgICAgICAgaWYgKGlzT2JqZWN0KGxvY2FsZSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGxvY2FsZSA9IGxvY2FsZS5kYXRhdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsaWJMb2NhbGUgPSBnZXRXbVByb2plY3RQcm9wZXJ0aWVzKCkuc3VwcG9ydGVkTGFuZ3VhZ2VzW2xvY2FsZV07XG4gICAgICAgIGNvbnN0IHN1cHBvcnRlZExvY2FsZSA9IE9iamVjdC5rZXlzKGdldFdtUHJvamVjdFByb3BlcnRpZXMoKS5zdXBwb3J0ZWRMYW5ndWFnZXMpO1xuXG4gICAgICAgIGlmICghaW5jbHVkZXMoc3VwcG9ydGVkTG9jYWxlLCBsb2NhbGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWxvY2FsZSB8fCBsb2NhbGUgPT09IHRoaXMuc2VsZWN0ZWRMb2NhbGUpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFNlc3Npb25TdG9yYWdlSXRlbSgnc2VsZWN0ZWRMb2NhbGUnLCBsb2NhbGUpO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRMb2NhbGUgPSBsb2NhbGU7XG5cbiAgICAgICAgLy8gcmVzZXQgdGhlIGxvY2FsZURhdGEgb2JqZWN0XG4gICAgICAgIHRoaXMuaW5pdCgpO1xuXG4gICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLm1vbWVudCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5mdWxsQ2FsZW5kYXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5idW5kbGVMb2FkZWQuYXBwID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLmFuZ3VsYXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5idW5kbGVMb2FkZWQubGliTG9jYWxlID0gbGliTG9jYWxlO1xuXG4gICAgICAgIC8vIGxvYWQgdGhlIGxvY2FsZSBidW5kbGVzIG9mIHRoZSBzZWxlY3RlZCBsb2NhbGVcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZExvY2FsZUJ1bmRsZXMobGliTG9jYWxlKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTG9jYWxlRGlyZWN0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5hbmd1bGFyID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubm90aWZ5TG9jYWxlQ2hhbmdlZCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlZHVjZUFwcExvY2FsZSgpIHtcbiAgICAgICAgLy8gY29tcHV0YXRpb24gdG8gZmluZCBhcHAgZGVmYXVsdCBsb2NhbGVcbiAgICAgICAgY29uc3QgX2FjY2VwdExhbmcgPSB0aGlzLmdldEFjY2VwdGVkTGFuZ3VhZ2VzKCk7XG4gICAgICAgIGNvbnN0IF9kZWZhdWx0TGFuZ3VhZ2UgPSBnZXRXbVByb2plY3RQcm9wZXJ0aWVzKCkuZGVmYXVsdExhbmd1YWdlO1xuICAgICAgICBfYWNjZXB0TGFuZy5wdXNoKF9kZWZhdWx0TGFuZ3VhZ2UpO1xuXG4gICAgICAgIC8vIGNoZWNrcyB3aGV0aGVyIHVzZXIgcHJlZmVyZW5jZSBpcyBiYXNlZCBvbiBicm93c2VyIHNldCBsYW5ndWFnZXMgb3IgZGVmYXVsdCBsYW5ndWFnZSBzZXQgaW4gcHJvamVjdFxuICAgICAgICBsZXQgcHJlZmVyQnJvd3NlckxhbmcgPSBnZXRXbVByb2plY3RQcm9wZXJ0aWVzKCkucHJlZmVyQnJvd3Nlckxhbmc7XG4gICAgICAgIGlmICghcHJlZmVyQnJvd3NlckxhbmcpIHsgLy8gd2hlbiBwcmVmZXJCcm93c2VyTGFuZyBpcyBub3QgZGVmaW5lZCwgc2V0IHRvIGl0cyBkZWZhdWx0IHZhbHVlXG4gICAgICAgICAgICBwcmVmZXJCcm93c2VyTGFuZyAgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgeyAvLyBjb252ZXJ0IHN0cmluZ2lmaWVkIGJvb2xlYW4gdmFsdWVzIHJlY2lldmVkIGZyb20gQkUgdG8gYm9vbGVhbnNcbiAgICAgICAgICAgIHByZWZlckJyb3dzZXJMYW5nPSAocHJlZmVyQnJvd3NlckxhbmcgPT09ICd0cnVlJyB8fCBwcmVmZXJCcm93c2VyTGFuZyA9PT0gdHJ1ZSkgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgX3N1cHBvcnRlZExhbmcgPSBPYmplY3Qua2V5cyhnZXRXbVByb2plY3RQcm9wZXJ0aWVzKCkuc3VwcG9ydGVkTGFuZ3VhZ2VzKSB8fCBbdGhpcy5kZWZhdWx0U3VwcG9ydGVkTG9jYWxlXTtcblxuICAgICAgICAvLyB3aGVuIHByZWZlcmVuY2UgaXMgZ2l2ZW4gdG8gYnJvd3NlciBzZXQgbGFuZ3VhZ2VzLCBkbyBub3QgcG9wdWxhdGUgX3NlbGVjdGVkRGVmYXVsdExhbmcgdmFyaWFibGVcbiAgICAgICAgbGV0IF9zZWxlY3RlZERlZmF1bHRMYW5nID0gcHJlZmVyQnJvd3NlckxhbmcgPyB1bmRlZmluZWQgOiBfZGVmYXVsdExhbmd1YWdlO1xuXG4gICAgICAgIGxldCBfYXBwU3VwcG9ydGVkTGFuZztcbiAgICAgICAgXG4gICAgICAgIC8vIGNoZWNrIGZvciB0aGUgc2Vzc2lvbiBzdG9yYWdlIHRvIGxvYWQgYW55IHByZS1yZXF1ZXN0ZWQgbG9jYWxlXG4gICAgICAgIGNvbnN0IF9kZWZhdWx0TGFuZyA9IGdldFNlc3Npb25TdG9yYWdlSXRlbSgnc2VsZWN0ZWRMb2NhbGUnKSB8fCBfc2VsZWN0ZWREZWZhdWx0TGFuZyB8fCBfYXBwU3VwcG9ydGVkTGFuZyB8fCBpbnRlcnNlY3Rpb24oX2FjY2VwdExhbmcsIF9zdXBwb3J0ZWRMYW5nKVswXSB8fCB0aGlzLmRlZmF1bHRTdXBwb3J0ZWRMb2NhbGU7XG4gICAgICAgIC8vIGlmIHRoZSBzdXBwb3J0ZWRMb2NhbGUgaXMgbm90IGF2YWlsYWJsZSBzZXQgaXQgdG8gZGVmYXVsdExvY2FsZVxuICAgICAgICBfc3VwcG9ydGVkTGFuZyA9IF9zdXBwb3J0ZWRMYW5nIHx8IFtfZGVmYXVsdExhbmddO1xuXG4gICAgICAgIGNvbnN0IGRlZmF1bHRMYW5ndWFnZSA9IF9kZWZhdWx0TGFuZyB8fCBfc3VwcG9ydGVkTGFuZ1swXTtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbG9hZERlZmF1bHRMb2NhbGUoKSB7XG4gICAgICAgIERhdGUucHJvdG90eXBlW1wibW9udGhcIl0gPSBEYXRlLnByb3RvdHlwZS5nZXRNb250aDtcbiAgICAgICAgY29uc3QgbG9jYWxlID0gdGhpcy5kZWR1Y2VBcHBMb2NhbGUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0U2VsZWN0ZWRMb2NhbGUobG9jYWxlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TG9jYWxpemVkTWVzc2FnZShtZXNzYWdlLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiByZXBsYWNlKHRoaXMuYXBwTG9jYWxlW21lc3NhZ2VdLCBhcmdzKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFjY2VwdGVkIGxhbmd1YWdlcyBsaXN0XG4gICAgcHVibGljIGdldEFjY2VwdGVkTGFuZ3VhZ2VzKCkge1xuICAgICAgICBsZXQgbGFuZ3VhZ2VzO1xuICAgICAgIFxuICAgICAgICBsYW5ndWFnZXMgPSBkZWNvZGVVUklDb21wb25lbnQoZ2V0V21Qcm9qZWN0UHJvcGVydGllcygpLnByZWZlcnJlZExhbmd1YWdlIHx8ICcnKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFjY2VwdC1MYW5ndWFnZSBIZWFkZXIgd2lsbCBjb250YWluIHNldCBvZiBzdXBwb3J0ZWQgbG9jYWxlLCBzbyB0cnkgc3BsaXR0aW5nIHRoZSBzdHJpbmcgdG8gcHJvcGVyIGxvY2FsZSBzZXRcbiAgICAgICAgICogRXg6IGVuLGVuLVVTO3E9MC45LGRlO3E9MC42LGFyO3E9MC4yLGhpXG4gICAgICAgICAqXG4gICAgICAgICAqIFNwbGl0IHRoZSBhYm92ZSBpbnRvIFtlbixlbi11cyxkZSxhcixoaV1cbiAgICAgICAgICogQHR5cGUge0FycmF5fVxuICAgICAgICAgKi9cbiAgICAgICAgbGFuZ3VhZ2VzID0gbGFuZ3VhZ2VzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uKGxvY2FsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGxvY2FsZS5zcGxpdCgnOycpWzBdO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG1hcChsYW5ndWFnZXMsIHRvTG93ZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0Q2FsZW5kYXJMb2NhbGUoKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0FuZ3VsYXJMb2NhbGVMb2FkZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0FuZ3VsYXJMb2NhbGVMb2FkZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldHdpZGdldExvY2FsZShsb2NhbGUpIHtcbiAgICAgICAgdGhpcy5mb3JtYXRzQnlMb2NhbGVbJ251bWJlciddID0gbG9jYWxlWydudW1iZXInXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0d2lkZ2V0TG9jYWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRzQnlMb2NhbGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBub3RpZnlMb2NhbGVDaGFuZ2VkKCkge1xuICAgICAgICBpZih0aGlzLmJ1bmRsZUxvYWRlZC5tb21lbnQgJiYgdGhpcy5idW5kbGVMb2FkZWQuZnVsbENhbGVuZGFyICYmIHRoaXMuYnVuZGxlTG9hZGVkLmFuZ3VsYXIgJiYgdGhpcy5idW5kbGVMb2FkZWQuYXBwKSB7XG4gICAgICAgICAgICB0aGlzLmFwcC5ub3RpZnkoICAnbG9jYWxlLWNoYW5nZWQnLCB0aGlzLmJ1bmRsZUxvYWRlZC5saWJMb2NhbGUpO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0=