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

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 (1174) 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 +86 -278
  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 +33 -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 +3 -1
  55. package/components/base/esm2022/utils/live-utils.mjs +3 -7
  56. package/components/base/esm2022/widgets/common/base/base-field-validations.mjs +4 -2
  57. package/components/base/esm2022/widgets/common/base/base.component.mjs +3 -5
  58. package/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +3 -2
  59. package/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +3 -2
  60. package/components/base/esm2022/widgets/common/base/text-content.directive.mjs +3 -2
  61. package/components/base/esm2022/widgets/common/container/container.directive.mjs +3 -2
  62. package/components/base/esm2022/widgets/common/dialog/dialog.service.mjs +3 -3
  63. package/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +3 -2
  64. package/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +3 -2
  65. package/components/base/esm2022/widgets/common/message/message.component.mjs +5 -5
  66. package/components/base/esm2022/widgets/common/partial/partial.directive.mjs +3 -2
  67. package/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +5 -3
  68. package/components/base/esm2022/widgets/common/redraw/redrawable.directive.mjs +3 -2
  69. package/components/base/esm2022/widgets/common/repeat-template/repeat-template.directive.mjs +3 -2
  70. package/components/base/fesm2022/index.mjs +85 -276
  71. package/components/base/fesm2022/index.mjs.map +1 -1
  72. package/components/base/pipes/custom-pipes.d.ts +15 -15
  73. package/components/base/pipes/image.pipe.d.ts +1 -1
  74. package/components/base/pipes/sanitize.pipe.d.ts +1 -1
  75. package/components/base/pipes/trust-as.pipe.d.ts +1 -1
  76. package/components/base/public_api.d.ts +0 -1
  77. package/components/base/widgets/common/base/custom-widget-container.directive.d.ts +1 -1
  78. package/components/base/widgets/common/base/partial-container.directive.d.ts +1 -1
  79. package/components/base/widgets/common/base/text-content.directive.d.ts +1 -1
  80. package/components/base/widgets/common/container/container.directive.d.ts +1 -1
  81. package/components/base/widgets/common/item-template/item-template.directive.d.ts +1 -1
  82. package/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +1 -1
  83. package/components/base/widgets/common/message/message.component.d.ts +1 -1
  84. package/components/base/widgets/common/partial/partial.directive.d.ts +1 -1
  85. package/components/base/widgets/common/partial-param/partial-param.directive.d.ts +2 -2
  86. package/components/base/widgets/common/redraw/redrawable.directive.d.ts +1 -1
  87. package/components/base/widgets/common/repeat-template/repeat-template.directive.d.ts +1 -1
  88. package/components/basic/default/anchor/anchor.component.d.ts +1 -1
  89. package/components/basic/default/audio/audio.component.d.ts +1 -1
  90. package/components/basic/default/bundles/index.umd.js +100 -148
  91. package/components/basic/default/esm2022/anchor/anchor.component.mjs +23 -21
  92. package/components/basic/default/esm2022/audio/audio.component.mjs +7 -6
  93. package/components/basic/default/esm2022/html/html.directive.mjs +3 -2
  94. package/components/basic/default/esm2022/icon/icon.component.mjs +17 -16
  95. package/components/basic/default/esm2022/iframe/iframe.component.mjs +14 -13
  96. package/components/basic/default/esm2022/label/label.directive.mjs +3 -2
  97. package/components/basic/default/esm2022/picture/picture.directive.mjs +3 -2
  98. package/components/basic/default/esm2022/picture/picture.props.mjs +1 -5
  99. package/components/basic/default/esm2022/public_api.mjs +1 -2
  100. package/components/basic/default/esm2022/spinner/spinner.component.mjs +26 -24
  101. package/components/basic/default/esm2022/video/video.component.mjs +19 -18
  102. package/components/basic/default/fesm2022/index.mjs +101 -148
  103. package/components/basic/default/fesm2022/index.mjs.map +1 -1
  104. package/components/basic/default/html/html.directive.d.ts +1 -1
  105. package/components/basic/default/icon/icon.component.d.ts +1 -1
  106. package/components/basic/default/iframe/iframe.component.d.ts +1 -1
  107. package/components/basic/default/label/label.directive.d.ts +1 -1
  108. package/components/basic/default/picture/picture.directive.d.ts +1 -1
  109. package/components/basic/default/public_api.d.ts +0 -1
  110. package/components/basic/default/spinner/spinner.component.d.ts +1 -1
  111. package/components/basic/default/video/video.component.d.ts +1 -1
  112. package/components/basic/progress/bundles/index.umd.js +20 -51
  113. package/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +12 -11
  114. package/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +8 -6
  115. package/components/basic/progress/esm2022/public_api.mjs +1 -2
  116. package/components/basic/progress/fesm2022/index.mjs +19 -49
  117. package/components/basic/progress/fesm2022/index.mjs.map +1 -1
  118. package/components/basic/progress/progress-bar/progress-bar.component.d.ts +1 -1
  119. package/components/basic/progress/progress-circle/progress-circle.component.d.ts +1 -1
  120. package/components/basic/progress/public_api.d.ts +0 -1
  121. package/components/basic/rich-text-editor/bundles/index.umd.js +15 -40
  122. package/components/basic/rich-text-editor/esm2022/public_api.mjs +1 -2
  123. package/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +13 -12
  124. package/components/basic/rich-text-editor/fesm2022/index.mjs +13 -37
  125. package/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  126. package/components/basic/rich-text-editor/public_api.d.ts +0 -1
  127. package/components/basic/rich-text-editor/rich-text-editor.component.d.ts +1 -1
  128. package/components/basic/search/bundles/index.umd.js +170 -207
  129. package/components/basic/search/esm2022/public_api.mjs +1 -2
  130. package/components/basic/search/esm2022/scrollable.directive.mjs +3 -2
  131. package/components/basic/search/esm2022/search.component.mjs +76 -72
  132. package/components/basic/search/fesm2022/index.mjs +107 -143
  133. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  134. package/components/basic/search/public_api.d.ts +0 -1
  135. package/components/basic/search/scrollable.directive.d.ts +1 -1
  136. package/components/basic/search/search.component.d.ts +1 -1
  137. package/components/basic/tree/bundles/index.umd.js +9 -33
  138. package/components/basic/tree/esm2022/public_api.mjs +1 -2
  139. package/components/basic/tree/esm2022/tree.component.mjs +7 -6
  140. package/components/basic/tree/fesm2022/index.mjs +8 -32
  141. package/components/basic/tree/fesm2022/index.mjs.map +1 -1
  142. package/components/basic/tree/public_api.d.ts +0 -1
  143. package/components/basic/tree/tree.component.d.ts +1 -1
  144. package/components/chart/bundles/index.umd.js +27 -53
  145. package/components/chart/chart.component.d.ts +1 -1
  146. package/components/chart/esm2022/chart.component.mjs +26 -24
  147. package/components/chart/esm2022/chart.utils.mjs +3 -1
  148. package/components/chart/esm2022/public_api.mjs +1 -2
  149. package/components/chart/fesm2022/index.mjs +27 -52
  150. package/components/chart/fesm2022/index.mjs.map +1 -1
  151. package/components/chart/public_api.d.ts +0 -1
  152. package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +1 -1
  153. package/components/containers/accordion/accordion.directive.d.ts +1 -1
  154. package/components/containers/accordion/bundles/index.umd.js +208 -237
  155. package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +10 -11
  156. package/components/containers/accordion/esm2022/accordion.directive.mjs +5 -4
  157. package/components/containers/accordion/esm2022/public_api.mjs +1 -2
  158. package/components/containers/accordion/fesm2022/index.mjs +189 -217
  159. package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  160. package/components/containers/accordion/public_api.d.ts +0 -1
  161. package/components/containers/layout-grid/bundles/index.umd.js +13 -43
  162. package/components/containers/layout-grid/esm2022/layout-grid-column/layout-grid-column.directive.mjs +7 -9
  163. package/components/containers/layout-grid/esm2022/layout-grid-row/layout-grid-row.directive.mjs +3 -2
  164. package/components/containers/layout-grid/esm2022/layout-grid.directive.mjs +3 -2
  165. package/components/containers/layout-grid/esm2022/public_api.mjs +1 -2
  166. package/components/containers/layout-grid/fesm2022/index.mjs +13 -43
  167. package/components/containers/layout-grid/fesm2022/index.mjs.map +1 -1
  168. package/components/containers/layout-grid/layout-grid-column/layout-grid-column.directive.d.ts +1 -1
  169. package/components/containers/layout-grid/layout-grid-row/layout-grid-row.directive.d.ts +1 -1
  170. package/components/containers/layout-grid/layout-grid.directive.d.ts +1 -1
  171. package/components/containers/layout-grid/public_api.d.ts +0 -1
  172. package/components/containers/linear-layout/bundles/index.umd.js +8 -33
  173. package/components/containers/linear-layout/esm2022/linear-layout-item/linear-layout-item.directive.mjs +3 -2
  174. package/components/containers/linear-layout/esm2022/linear-layout.directive.mjs +3 -2
  175. package/components/containers/linear-layout/esm2022/public_api.mjs +1 -2
  176. package/components/containers/linear-layout/fesm2022/index.mjs +7 -32
  177. package/components/containers/linear-layout/fesm2022/index.mjs.map +1 -1
  178. package/components/containers/linear-layout/linear-layout-item/linear-layout-item.directive.d.ts +1 -1
  179. package/components/containers/linear-layout/linear-layout.directive.d.ts +1 -1
  180. package/components/containers/linear-layout/public_api.d.ts +0 -1
  181. package/components/containers/panel/bundles/index.umd.js +87 -118
  182. package/components/containers/panel/esm2022/panel.component.mjs +48 -46
  183. package/components/containers/panel/esm2022/public_api.mjs +1 -2
  184. package/components/containers/panel/fesm2022/index.mjs +49 -79
  185. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  186. package/components/containers/panel/panel.component.d.ts +1 -1
  187. package/components/containers/panel/public_api.d.ts +0 -1
  188. package/components/containers/tabs/bundles/index.umd.js +112 -120
  189. package/components/containers/tabs/esm2022/public_api.mjs +1 -2
  190. package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +8 -10
  191. package/components/containers/tabs/esm2022/tabs.component.mjs +61 -38
  192. package/components/containers/tabs/esm2022/tabs.props.mjs +2 -5
  193. package/components/containers/tabs/fesm2022/index.mjs +72 -81
  194. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  195. package/components/containers/tabs/public_api.d.ts +0 -1
  196. package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +1 -1
  197. package/components/containers/tabs/tabs.component.d.ts +3 -1
  198. package/components/containers/tile/bundles/index.umd.js +6 -29
  199. package/components/containers/tile/esm2022/public_api.mjs +1 -2
  200. package/components/containers/tile/esm2022/tile.directive.mjs +3 -2
  201. package/components/containers/tile/fesm2022/index.mjs +5 -28
  202. package/components/containers/tile/fesm2022/index.mjs.map +1 -1
  203. package/components/containers/tile/public_api.d.ts +0 -1
  204. package/components/containers/tile/tile.directive.d.ts +1 -1
  205. package/components/containers/wizard/bundles/index.umd.js +355 -189
  206. package/components/containers/wizard/esm2022/public_api.mjs +2 -3
  207. package/components/containers/wizard/esm2022/wizard-action/wizard-action.directive.mjs +3 -2
  208. package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +176 -0
  209. package/components/containers/wizard/esm2022/wizard-step/wizard-step.props.mjs +8 -5
  210. package/components/containers/wizard/esm2022/wizard.component.mjs +264 -105
  211. package/components/containers/wizard/esm2022/wizard.props.mjs +8 -4
  212. package/components/containers/wizard/fesm2022/index.mjs +323 -155
  213. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  214. package/components/containers/wizard/public_api.d.ts +1 -2
  215. package/components/containers/wizard/wizard-action/wizard-action.directive.d.ts +1 -1
  216. package/components/containers/wizard/wizard-step/{wizard-step.directive.d.ts → wizard-step.component.d.ts} +12 -6
  217. package/components/containers/wizard/wizard.component.d.ts +64 -18
  218. package/components/data/card/bundles/index.umd.js +92 -135
  219. package/components/data/card/card-actions/card-actions.directive.d.ts +1 -1
  220. package/components/data/card/card-content/card-content.component.d.ts +1 -1
  221. package/components/data/card/card-footer/card-footer.directive.d.ts +1 -1
  222. package/components/data/card/card.component.d.ts +1 -1
  223. package/components/data/card/esm2022/card-actions/card-actions.directive.mjs +3 -2
  224. package/components/data/card/esm2022/card-content/card-content.component.mjs +7 -6
  225. package/components/data/card/esm2022/card-footer/card-footer.directive.mjs +3 -2
  226. package/components/data/card/esm2022/card.component.mjs +39 -38
  227. package/components/data/card/esm2022/public_api.mjs +1 -2
  228. package/components/data/card/fesm2022/index.mjs +49 -92
  229. package/components/data/card/fesm2022/index.mjs.map +1 -1
  230. package/components/data/card/public_api.d.ts +0 -1
  231. package/components/data/form/bundles/index.umd.js +115 -182
  232. package/components/data/form/esm2022/form-action/form-action.directive.mjs +3 -2
  233. package/components/data/form/esm2022/form-field/form-field.directive.mjs +3 -2
  234. package/components/data/form/esm2022/form-widget.directive.mjs +3 -2
  235. package/components/data/form/esm2022/form.component.mjs +101 -104
  236. package/components/data/form/esm2022/form.props.mjs +1 -11
  237. package/components/data/form/esm2022/live-actions/dependson.directive.mjs +3 -2
  238. package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +3 -2
  239. package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +3 -2
  240. package/components/data/form/esm2022/live-form/live-form.directive.mjs +3 -6
  241. package/components/data/form/esm2022/public_api.mjs +1 -2
  242. package/components/data/form/fesm2022/index.mjs +117 -184
  243. package/components/data/form/fesm2022/index.mjs.map +1 -1
  244. package/components/data/form/form-action/form-action.directive.d.ts +1 -1
  245. package/components/data/form/form-field/form-field.directive.d.ts +1 -1
  246. package/components/data/form/form-widget.directive.d.ts +1 -1
  247. package/components/data/form/form.component.d.ts +1 -1
  248. package/components/data/form/live-actions/dependson.directive.d.ts +1 -1
  249. package/components/data/form/live-actions/live-actions.directive.d.ts +1 -1
  250. package/components/data/form/live-filter/live-filter.directive.d.ts +1 -1
  251. package/components/data/form/live-form/live-form.directive.d.ts +1 -1
  252. package/components/data/form/public_api.d.ts +0 -1
  253. package/components/data/list/bundles/index.umd.js +195 -504
  254. package/components/data/list/esm2022/list-item.directive.mjs +4 -3
  255. package/components/data/list/esm2022/list.component.mjs +187 -232
  256. package/components/data/list/esm2022/list.props.mjs +2 -3
  257. package/components/data/list/esm2022/public_api.mjs +1 -2
  258. package/components/data/list/fesm2022/index.mjs +193 -502
  259. package/components/data/list/fesm2022/index.mjs.map +1 -1
  260. package/components/data/list/list-item.directive.d.ts +1 -1
  261. package/components/data/list/list.component.d.ts +1 -1
  262. package/components/data/list/public_api.d.ts +0 -1
  263. package/components/data/live-table/bundles/index.umd.js +9 -33
  264. package/components/data/live-table/esm2022/live-table.component.mjs +7 -6
  265. package/components/data/live-table/esm2022/public_api.mjs +1 -2
  266. package/components/data/live-table/fesm2022/index.mjs +8 -32
  267. package/components/data/live-table/fesm2022/index.mjs.map +1 -1
  268. package/components/data/live-table/live-table.component.d.ts +1 -1
  269. package/components/data/live-table/public_api.d.ts +0 -1
  270. package/components/data/pagination/bundles/index.umd.js +80 -110
  271. package/components/data/pagination/esm2022/pagination.component.mjs +80 -76
  272. package/components/data/pagination/esm2022/public_api.mjs +1 -2
  273. package/components/data/pagination/fesm2022/index.mjs +81 -110
  274. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  275. package/components/data/pagination/pagination.component.d.ts +1 -1
  276. package/components/data/pagination/public_api.d.ts +0 -1
  277. package/components/data/table/bundles/index.umd.js +69 -135
  278. package/components/data/table/esm2022/public_api.mjs +1 -2
  279. package/components/data/table/esm2022/table-action/table-action.directive.mjs +3 -2
  280. package/components/data/table/esm2022/table-column/table-column.directive.mjs +3 -2
  281. package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +3 -2
  282. package/components/data/table/esm2022/table-cud.directive.mjs +3 -2
  283. package/components/data/table/esm2022/table-filter.directive.mjs +5 -2
  284. package/components/data/table/esm2022/table-row/table-row.directive.mjs +3 -2
  285. package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +3 -2
  286. package/components/data/table/esm2022/table.component.mjs +51 -48
  287. package/components/data/table/fesm2022/index.mjs +73 -140
  288. package/components/data/table/fesm2022/index.mjs.map +1 -1
  289. package/components/data/table/public_api.d.ts +0 -1
  290. package/components/data/table/table-action/table-action.directive.d.ts +1 -1
  291. package/components/data/table/table-column/table-column.directive.d.ts +1 -1
  292. package/components/data/table/table-column-group/table-column-group.directive.d.ts +1 -1
  293. package/components/data/table/table-cud.directive.d.ts +1 -1
  294. package/components/data/table/table-filter.directive.d.ts +1 -1
  295. package/components/data/table/table-row/table-row.directive.d.ts +1 -1
  296. package/components/data/table/table-row-action/table-row-action.directive.d.ts +1 -1
  297. package/components/data/table/table.component.d.ts +1 -1
  298. package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +1 -1
  299. package/components/dialogs/alert-dialog/bundles/index.umd.js +32 -64
  300. package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +10 -10
  301. package/components/dialogs/alert-dialog/esm2022/public_api.mjs +1 -2
  302. package/components/dialogs/alert-dialog/fesm2022/index.mjs +11 -43
  303. package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  304. package/components/dialogs/alert-dialog/public_api.d.ts +0 -1
  305. package/components/dialogs/confirm-dialog/bundles/index.umd.js +10 -42
  306. package/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +1 -1
  307. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +9 -9
  308. package/components/dialogs/confirm-dialog/esm2022/public_api.mjs +1 -2
  309. package/components/dialogs/confirm-dialog/fesm2022/index.mjs +10 -42
  310. package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  311. package/components/dialogs/confirm-dialog/public_api.d.ts +0 -1
  312. package/components/dialogs/default/bundles/index.umd.js +76 -136
  313. package/components/dialogs/default/dialog-body/dialog-body.directive.d.ts +1 -1
  314. package/components/dialogs/default/dialog-footer/dialog-footer.directive.d.ts +1 -1
  315. package/components/dialogs/default/dialog-header/dialog-header.component.d.ts +1 -1
  316. package/components/dialogs/default/esm2022/base-dialog.mjs +3 -3
  317. package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +3 -2
  318. package/components/dialogs/default/esm2022/dialog-footer/dialog-footer.directive.mjs +3 -2
  319. package/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +70 -97
  320. package/components/dialogs/default/esm2022/public_api.mjs +1 -2
  321. package/components/dialogs/default/fesm2022/index.mjs +78 -137
  322. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  323. package/components/dialogs/default/public_api.d.ts +0 -1
  324. package/components/dialogs/design-dialog/bundles/index.umd.js +16 -47
  325. package/components/dialogs/design-dialog/dialog.component.d.ts +1 -1
  326. package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +14 -13
  327. package/components/dialogs/design-dialog/esm2022/public_api.mjs +1 -2
  328. package/components/dialogs/design-dialog/fesm2022/index.mjs +14 -45
  329. package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  330. package/components/dialogs/design-dialog/public_api.d.ts +0 -1
  331. package/components/dialogs/iframe-dialog/bundles/index.umd.js +20 -57
  332. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +21 -21
  333. package/components/dialogs/iframe-dialog/esm2022/public_api.mjs +1 -2
  334. package/components/dialogs/iframe-dialog/fesm2022/index.mjs +21 -57
  335. package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  336. package/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +1 -1
  337. package/components/dialogs/iframe-dialog/public_api.d.ts +0 -1
  338. package/components/dialogs/login-dialog/bundles/index.umd.js +6 -38
  339. package/components/dialogs/login-dialog/esm2022/login-dialog.directive.mjs +3 -2
  340. package/components/dialogs/login-dialog/esm2022/public_api.mjs +1 -2
  341. package/components/dialogs/login-dialog/fesm2022/index.mjs +6 -41
  342. package/components/dialogs/login-dialog/fesm2022/index.mjs.map +1 -1
  343. package/components/dialogs/login-dialog/login-dialog.directive.d.ts +1 -1
  344. package/components/dialogs/login-dialog/public_api.d.ts +0 -1
  345. package/components/dialogs/partial-dialog/bundles/index.umd.js +17 -49
  346. package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +16 -15
  347. package/components/dialogs/partial-dialog/esm2022/public_api.mjs +1 -2
  348. package/components/dialogs/partial-dialog/fesm2022/index.mjs +16 -47
  349. package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  350. package/components/dialogs/partial-dialog/partial-dialog.component.d.ts +1 -1
  351. package/components/dialogs/partial-dialog/public_api.d.ts +0 -1
  352. package/components/input/calendar/bundles/index.umd.js +24 -46
  353. package/components/input/calendar/calendar.component.d.ts +1 -1
  354. package/components/input/calendar/esm2022/calendar.component.mjs +28 -10
  355. package/components/input/calendar/esm2022/calendar.props.mjs +1 -1
  356. package/components/input/calendar/esm2022/public_api.mjs +1 -2
  357. package/components/input/calendar/fesm2022/index.mjs +30 -48
  358. package/components/input/calendar/fesm2022/index.mjs.map +1 -1
  359. package/components/input/calendar/public_api.d.ts +0 -1
  360. package/components/input/chips/bundles/index.umd.js +86 -114
  361. package/components/input/chips/chips.component.d.ts +1 -1
  362. package/components/input/chips/esm2022/chips.component.mjs +28 -27
  363. package/components/input/chips/esm2022/public_api.mjs +1 -2
  364. package/components/input/chips/fesm2022/index.mjs +29 -56
  365. package/components/input/chips/fesm2022/index.mjs.map +1 -1
  366. package/components/input/chips/public_api.d.ts +0 -1
  367. package/components/input/color-picker/bundles/index.umd.js +14 -42
  368. package/components/input/color-picker/color-picker.component.d.ts +1 -1
  369. package/components/input/color-picker/esm2022/color-picker.component.mjs +14 -8
  370. package/components/input/color-picker/esm2022/public_api.mjs +1 -2
  371. package/components/input/color-picker/fesm2022/index.mjs +15 -42
  372. package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  373. package/components/input/color-picker/public_api.d.ts +0 -1
  374. package/components/input/currency/bundles/index.umd.js +11 -41
  375. package/components/input/currency/currency.component.d.ts +1 -1
  376. package/components/input/currency/esm2022/currency.component.mjs +8 -6
  377. package/components/input/currency/esm2022/public_api.mjs +1 -2
  378. package/components/input/currency/fesm2022/index.mjs +11 -41
  379. package/components/input/currency/fesm2022/index.mjs.map +1 -1
  380. package/components/input/currency/public_api.d.ts +0 -1
  381. package/components/input/default/bundles/index.umd.js +2183 -2263
  382. package/components/input/default/button/button.component.d.ts +1 -1
  383. package/components/input/default/button-group/button-group.directive.d.ts +1 -1
  384. package/components/input/default/caption-position.directive.d.ts +1 -1
  385. package/components/input/default/checkbox/checkbox.component.d.ts +1 -1
  386. package/components/input/default/checkboxset/checkboxset.component.d.ts +1 -1
  387. package/components/input/default/composite/composite.directive.d.ts +1 -1
  388. package/components/input/default/esm2022/button/button.component.mjs +23 -21
  389. package/components/input/default/esm2022/button-group/button-group.directive.mjs +3 -2
  390. package/components/input/default/esm2022/caption-position.directive.mjs +3 -2
  391. package/components/input/default/esm2022/checkbox/checkbox.component.mjs +9 -6
  392. package/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +73 -72
  393. package/components/input/default/esm2022/composite/composite.directive.mjs +3 -2
  394. package/components/input/default/esm2022/number/number.component.mjs +9 -6
  395. package/components/input/default/esm2022/public_api.mjs +1 -2
  396. package/components/input/default/esm2022/radioset/radioset.component.mjs +73 -72
  397. package/components/input/default/esm2022/select/select.component.mjs +29 -32
  398. package/components/input/default/esm2022/switch/switch.component.mjs +29 -27
  399. package/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +9 -6
  400. package/components/input/default/esm2022/text/color/input-color.component.mjs +9 -6
  401. package/components/input/default/esm2022/text/email/input-email.component.mjs +9 -6
  402. package/components/input/default/esm2022/text/number/input-number.component.mjs +9 -6
  403. package/components/input/default/esm2022/text/text/input-text.component.mjs +10 -6
  404. package/components/input/default/esm2022/textarea/textarea.component.mjs +14 -11
  405. package/components/input/default/fesm2022/index.mjs +2198 -2277
  406. package/components/input/default/fesm2022/index.mjs.map +1 -1
  407. package/components/input/default/number/number.component.d.ts +1 -1
  408. package/components/input/default/public_api.d.ts +0 -1
  409. package/components/input/default/radioset/radioset.component.d.ts +1 -1
  410. package/components/input/default/select/select.component.d.ts +1 -1
  411. package/components/input/default/switch/switch.component.d.ts +1 -1
  412. package/components/input/default/text/calendar/input-calendar.component.d.ts +1 -1
  413. package/components/input/default/text/color/input-color.component.d.ts +1 -1
  414. package/components/input/default/text/email/input-email.component.d.ts +1 -1
  415. package/components/input/default/text/number/input-number.component.d.ts +1 -1
  416. package/components/input/default/text/text/input-text.component.d.ts +1 -1
  417. package/components/input/default/textarea/textarea.component.d.ts +1 -1
  418. package/components/input/epoch/base-date-time.component.d.ts +0 -1
  419. package/components/input/epoch/bundles/index.umd.js +220 -262
  420. package/components/input/epoch/date/date.component.d.ts +1 -1
  421. package/components/input/epoch/date/imaskUtil.d.ts +2 -2
  422. package/components/input/epoch/date-time/date-time-picker.component.d.ts +6 -6
  423. package/components/input/epoch/date-time/date-time.component.d.ts +1 -1
  424. package/components/input/epoch/esm2022/base-date-time.component.mjs +6 -9
  425. package/components/input/epoch/esm2022/date/date.component.mjs +19 -18
  426. package/components/input/epoch/esm2022/date/imaskUtil.mjs +3 -1
  427. package/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +76 -62
  428. package/components/input/epoch/esm2022/date-time/date-time.component.mjs +28 -24
  429. package/components/input/epoch/esm2022/picker/picker.component.mjs +33 -28
  430. package/components/input/epoch/esm2022/public_api.mjs +1 -2
  431. package/components/input/epoch/esm2022/time/time.component.mjs +25 -21
  432. package/components/input/epoch/fesm2022/index.mjs +196 -237
  433. package/components/input/epoch/fesm2022/index.mjs.map +1 -1
  434. package/components/input/epoch/picker/picker.component.d.ts +2 -2
  435. package/components/input/epoch/public_api.d.ts +0 -1
  436. package/components/input/epoch/time/time.component.d.ts +1 -1
  437. package/components/input/file-upload/bundles/index.umd.js +135 -178
  438. package/components/input/file-upload/esm2022/file-upload.component.mjs +133 -150
  439. package/components/input/file-upload/esm2022/public_api.mjs +1 -2
  440. package/components/input/file-upload/fesm2022/index.mjs +133 -175
  441. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  442. package/components/input/file-upload/file-upload.component.d.ts +1 -2
  443. package/components/input/file-upload/public_api.d.ts +0 -1
  444. package/components/input/rating/bundles/index.umd.js +50 -77
  445. package/components/input/rating/esm2022/public_api.mjs +1 -2
  446. package/components/input/rating/esm2022/rating.component.mjs +23 -20
  447. package/components/input/rating/fesm2022/index.mjs +23 -49
  448. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  449. package/components/input/rating/public_api.d.ts +0 -1
  450. package/components/input/rating/rating.component.d.ts +1 -1
  451. package/components/input/slider/bundles/index.umd.js +35 -63
  452. package/components/input/slider/esm2022/public_api.mjs +1 -2
  453. package/components/input/slider/esm2022/slider.component.mjs +15 -13
  454. package/components/input/slider/fesm2022/index.mjs +15 -42
  455. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  456. package/components/input/slider/public_api.d.ts +0 -1
  457. package/components/input/slider/slider.component.d.ts +1 -1
  458. package/components/navigation/breadcrumb/breadcrumb.component.d.ts +1 -1
  459. package/components/navigation/breadcrumb/bundles/index.umd.js +40 -67
  460. package/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +23 -21
  461. package/components/navigation/breadcrumb/esm2022/public_api.mjs +1 -2
  462. package/components/navigation/breadcrumb/fesm2022/index.mjs +23 -50
  463. package/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  464. package/components/navigation/breadcrumb/public_api.d.ts +0 -1
  465. package/components/navigation/menu/bundles/index.umd.js +642 -696
  466. package/components/navigation/menu/esm2022/menu-adapator.component.mjs +1 -1
  467. package/components/navigation/menu/esm2022/menu-dropdown/menu-dropdown.component.mjs +11 -9
  468. package/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +24 -18
  469. package/components/navigation/menu/esm2022/menu.component.mjs +34 -31
  470. package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +3 -2
  471. package/components/navigation/menu/esm2022/nav/nav.component.mjs +39 -29
  472. package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +6 -3
  473. package/components/navigation/menu/esm2022/public_api.mjs +1 -2
  474. package/components/navigation/menu/fesm2022/index.mjs +534 -587
  475. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  476. package/components/navigation/menu/menu-dropdown/menu-dropdown.component.d.ts +1 -1
  477. package/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +1 -1
  478. package/components/navigation/menu/menu.component.d.ts +1 -1
  479. package/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +1 -1
  480. package/components/navigation/menu/nav/nav.component.d.ts +1 -1
  481. package/components/navigation/menu/nav/navigation-control.directive.d.ts +1 -1
  482. package/components/navigation/menu/public_api.d.ts +0 -1
  483. package/components/navigation/navbar/bundles/index.umd.js +20 -44
  484. package/components/navigation/navbar/esm2022/navbar.component.mjs +18 -16
  485. package/components/navigation/navbar/esm2022/public_api.mjs +1 -2
  486. package/components/navigation/navbar/fesm2022/index.mjs +18 -41
  487. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  488. package/components/navigation/navbar/navbar.component.d.ts +1 -1
  489. package/components/navigation/navbar/public_api.d.ts +0 -1
  490. package/components/navigation/popover/bundles/index.umd.js +12 -43
  491. package/components/navigation/popover/esm2022/popover.component.mjs +11 -9
  492. package/components/navigation/popover/esm2022/public_api.mjs +1 -2
  493. package/components/navigation/popover/fesm2022/index.mjs +11 -41
  494. package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  495. package/components/navigation/popover/popover.component.d.ts +1 -1
  496. package/components/navigation/popover/public_api.d.ts +0 -1
  497. package/components/page/default/bundles/index.umd.js +96 -138
  498. package/components/page/default/content/content.component.d.ts +1 -1
  499. package/components/page/default/esm2022/content/content.component.mjs +7 -6
  500. package/components/page/default/esm2022/layout.directive.mjs +3 -2
  501. package/components/page/default/esm2022/page-content/page-content.component.mjs +7 -6
  502. package/components/page/default/esm2022/page-content/page-content.props.mjs +2 -3
  503. package/components/page/default/esm2022/page.directive.mjs +3 -2
  504. package/components/page/default/esm2022/public_api.mjs +1 -2
  505. package/components/page/default/esm2022/router-outlet.directive.mjs +3 -2
  506. package/components/page/default/esm2022/spa-page.directive.mjs +3 -2
  507. package/components/page/default/fesm2022/index.mjs +96 -138
  508. package/components/page/default/fesm2022/index.mjs.map +1 -1
  509. package/components/page/default/layout.directive.d.ts +1 -1
  510. package/components/page/default/page-content/page-content.component.d.ts +1 -1
  511. package/components/page/default/page.directive.d.ts +1 -1
  512. package/components/page/default/public_api.d.ts +0 -1
  513. package/components/page/default/router-outlet.directive.d.ts +1 -1
  514. package/components/page/default/spa-page.directive.d.ts +1 -1
  515. package/components/page/footer/bundles/index.umd.js +6 -29
  516. package/components/page/footer/esm2022/footer.directive.mjs +3 -2
  517. package/components/page/footer/esm2022/public_api.mjs +1 -2
  518. package/components/page/footer/fesm2022/index.mjs +5 -28
  519. package/components/page/footer/fesm2022/index.mjs.map +1 -1
  520. package/components/page/footer/footer.directive.d.ts +1 -1
  521. package/components/page/footer/public_api.d.ts +0 -1
  522. package/components/page/header/bundles/index.umd.js +9 -33
  523. package/components/page/header/esm2022/header.component.mjs +7 -6
  524. package/components/page/header/esm2022/public_api.mjs +1 -2
  525. package/components/page/header/fesm2022/index.mjs +8 -32
  526. package/components/page/header/fesm2022/index.mjs.map +1 -1
  527. package/components/page/header/header.component.d.ts +1 -1
  528. package/components/page/header/public_api.d.ts +0 -1
  529. package/components/page/left-panel/bundles/index.umd.js +6 -29
  530. package/components/page/left-panel/esm2022/left-panel.directive.mjs +3 -2
  531. package/components/page/left-panel/esm2022/public_api.mjs +1 -2
  532. package/components/page/left-panel/fesm2022/index.mjs +5 -28
  533. package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  534. package/components/page/left-panel/left-panel.directive.d.ts +1 -1
  535. package/components/page/left-panel/public_api.d.ts +0 -1
  536. package/components/page/right-panel/bundles/index.umd.js +6 -29
  537. package/components/page/right-panel/esm2022/public_api.mjs +1 -2
  538. package/components/page/right-panel/esm2022/right-panel.directive.mjs +3 -2
  539. package/components/page/right-panel/fesm2022/index.mjs +5 -28
  540. package/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  541. package/components/page/right-panel/public_api.d.ts +0 -1
  542. package/components/page/right-panel/right-panel.directive.d.ts +1 -1
  543. package/components/page/top-nav/bundles/index.umd.js +6 -29
  544. package/components/page/top-nav/esm2022/public_api.mjs +1 -2
  545. package/components/page/top-nav/esm2022/top-nav.directive.mjs +3 -2
  546. package/components/page/top-nav/fesm2022/index.mjs +5 -28
  547. package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  548. package/components/page/top-nav/public_api.d.ts +0 -1
  549. package/components/page/top-nav/top-nav.directive.d.ts +1 -1
  550. package/components/prefab/bundles/index.umd.js +8 -33
  551. package/components/prefab/esm2022/prefab-container/prefab-container.directive.mjs +3 -2
  552. package/components/prefab/esm2022/prefab.directive.mjs +3 -2
  553. package/components/prefab/esm2022/public_api.mjs +1 -2
  554. package/components/prefab/fesm2022/index.mjs +7 -32
  555. package/components/prefab/fesm2022/index.mjs.map +1 -1
  556. package/components/prefab/prefab-container/prefab-container.directive.d.ts +1 -1
  557. package/components/prefab/prefab.directive.d.ts +1 -1
  558. package/components/prefab/public_api.d.ts +0 -1
  559. package/core/bundles/index.umd.js +32 -85
  560. package/core/esm2022/public_api.mjs +2 -3
  561. package/core/esm2022/types/types.mjs +1 -1
  562. package/core/esm2022/utils/build-utils.mjs +9 -5
  563. package/core/esm2022/utils/utils.mjs +12 -40
  564. package/core/fesm2022/index.mjs +32 -81
  565. package/core/fesm2022/index.mjs.map +1 -1
  566. package/core/public_api.d.ts +1 -2
  567. package/core/types/types.d.ts +1 -0
  568. package/core/utils/utils.d.ts +1 -3
  569. package/http/bundles/index.umd.js +9 -34
  570. package/http/esm2022/http.service.mjs +6 -3
  571. package/http/esm2022/public_api.mjs +4 -2
  572. package/http/fesm2022/index.mjs +9 -34
  573. package/http/fesm2022/index.mjs.map +1 -1
  574. package/http/public_api.d.ts +3 -1
  575. package/npm-shrinkwrap.json +2 -2
  576. package/oAuth/bundles/index.umd.js +9 -42
  577. package/oAuth/esm2022/oAuth.utils.mjs +7 -23
  578. package/oAuth/esm2022/public_api.mjs +1 -2
  579. package/oAuth/fesm2022/index.mjs +8 -40
  580. package/oAuth/fesm2022/index.mjs.map +1 -1
  581. package/oAuth/public_api.d.ts +0 -1
  582. package/package-lock.json +2 -2
  583. package/package.json +1 -1
  584. package/runtime/base/bundles/index.umd.js +690 -596
  585. package/runtime/base/components/app-component/app.component.d.ts +1 -1
  586. package/runtime/base/components/app-spinner.component.d.ts +1 -1
  587. package/runtime/base/components/custom-toaster.component.d.ts +1 -1
  588. package/runtime/base/components/empty-component/empty-page.component.d.ts +1 -1
  589. package/runtime/base/components/prefab-preview.component.d.ts +1 -1
  590. package/runtime/base/directives/accessroles.directive.d.ts +1 -1
  591. package/runtime/base/directives/prefab.directive.d.ts +1 -1
  592. package/runtime/base/esm2022/components/app-component/app.component.mjs +42 -49
  593. package/runtime/base/esm2022/components/app-spinner.component.mjs +29 -21
  594. package/runtime/base/esm2022/components/base-page.component.mjs +3 -11
  595. package/runtime/base/esm2022/components/base-spa-page.component.mjs +3 -11
  596. package/runtime/base/esm2022/components/custom-toaster.component.mjs +20 -14
  597. package/runtime/base/esm2022/components/empty-component/empty-page.component.mjs +4 -3
  598. package/runtime/base/esm2022/components/prefab-preview.component.mjs +8 -6
  599. package/runtime/base/esm2022/directives/accessroles.directive.mjs +3 -2
  600. package/runtime/base/esm2022/directives/prefab.directive.mjs +3 -2
  601. package/runtime/base/esm2022/public_api.mjs +1 -1
  602. package/runtime/base/esm2022/resolves/security-config.resolve.mjs +4 -6
  603. package/runtime/base/esm2022/runtime-base.module.mjs +486 -337
  604. package/runtime/base/esm2022/services/app.manager.service.mjs +31 -48
  605. package/runtime/base/esm2022/services/app.service.mjs +8 -1
  606. package/runtime/base/esm2022/services/i18n.service.mjs +39 -72
  607. package/runtime/base/fesm2022/index.mjs +697 -605
  608. package/runtime/base/fesm2022/index.mjs.map +1 -1
  609. package/runtime/base/runtime-base.module.d.ts +115 -84
  610. package/runtime/base/services/app.service.d.ts +1 -0
  611. package/runtime/base/services/i18n.service.d.ts +1 -1
  612. package/runtime/dynamic/app/app.config.d.ts +5 -0
  613. package/runtime/dynamic/app/components/page-wrapper.component.d.ts +1 -1
  614. package/runtime/dynamic/bundles/index.umd.js +270 -117
  615. package/runtime/dynamic/esm2022/app/app.config.mjs +136 -0
  616. package/runtime/dynamic/esm2022/app/app.module.mjs +151 -105
  617. package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +7 -4
  618. package/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +1 -1
  619. package/runtime/dynamic/esm2022/main.mjs +11 -16
  620. package/runtime/dynamic/fesm2022/index.mjs +340 -184
  621. package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  622. package/security/bundles/index.umd.js +3 -34
  623. package/security/esm2022/public_api.mjs +1 -2
  624. package/security/esm2022/security.service.mjs +4 -15
  625. package/security/fesm2022/index.mjs +5 -32
  626. package/security/fesm2022/index.mjs.map +1 -1
  627. package/security/public_api.d.ts +0 -1
  628. package/transpiler/bundles/index.umd.js +271 -168
  629. package/transpiler/esm2022/build.mjs +1 -6
  630. package/transpiler/esm2022/imports.mjs +268 -161
  631. package/transpiler/fesm2022/index.mjs +267 -165
  632. package/transpiler/fesm2022/index.mjs.map +1 -1
  633. package/variables/bundles/index.umd.js +16 -197
  634. package/variables/constants/variables.constants.d.ts +0 -2
  635. package/variables/esm2022/constants/variables.constants.mjs +1 -3
  636. package/variables/esm2022/factory/variable-manager.factory.mjs +1 -3
  637. package/variables/esm2022/factory/variable.factory.mjs +1 -5
  638. package/variables/esm2022/manager/action/logout-action.manager.mjs +5 -7
  639. package/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +3 -3
  640. package/variables/esm2022/public_api.mjs +1 -5
  641. package/variables/esm2022/service/metadata-service/metadata.service.mjs +6 -11
  642. package/variables/esm2022/util/variable/service-variable.utils.mjs +1 -4
  643. package/variables/esm2022/util/variable/variables.utils.mjs +5 -19
  644. package/variables/fesm2022/index.mjs +16 -198
  645. package/variables/fesm2022/index.mjs.map +1 -1
  646. package/variables/public_api.d.ts +0 -4
  647. package/components/advanced/carousel/carousel.module.d.ts +0 -11
  648. package/components/advanced/carousel/esm2022/carousel.module.mjs +0 -36
  649. package/components/advanced/custom/custom-widget.module.d.ts +0 -10
  650. package/components/advanced/custom/esm2022/custom-widget.module.mjs +0 -32
  651. package/components/advanced/login/esm2022/login.module.mjs +0 -28
  652. package/components/advanced/login/login.module.d.ts +0 -9
  653. package/components/advanced/marquee/esm2022/marquee.module.mjs +0 -28
  654. package/components/advanced/marquee/marquee.module.d.ts +0 -9
  655. package/components/base/esm2022/widgets/common/smooth-scroll/smooth-scroll.directive.mjs +0 -221
  656. package/components/base/widgets/common/smooth-scroll/smooth-scroll.directive.d.ts +0 -22
  657. package/components/basic/default/basic.module.d.ts +0 -17
  658. package/components/basic/default/esm2022/basic.module.mjs +0 -60
  659. package/components/basic/progress/esm2022/progress.module.mjs +0 -36
  660. package/components/basic/progress/progress.module.d.ts +0 -11
  661. package/components/basic/rich-text-editor/esm2022/rich-text-editor.module.mjs +0 -28
  662. package/components/basic/rich-text-editor/rich-text-editor.module.d.ts +0 -9
  663. package/components/basic/search/esm2022/search.module.mjs +0 -45
  664. package/components/basic/search/search.module.d.ts +0 -12
  665. package/components/basic/tree/esm2022/tree.module.mjs +0 -28
  666. package/components/basic/tree/tree.module.d.ts +0 -9
  667. package/components/chart/chart.module.d.ts +0 -10
  668. package/components/chart/esm2022/chart.module.mjs +0 -32
  669. package/components/containers/accordion/accordion.module.d.ts +0 -10
  670. package/components/containers/accordion/esm2022/accordion.module.mjs +0 -32
  671. package/components/containers/layout-grid/esm2022/layout-grid.module.mjs +0 -36
  672. package/components/containers/layout-grid/layout-grid.module.d.ts +0 -11
  673. package/components/containers/linear-layout/esm2022/linear-layout.module.mjs +0 -32
  674. package/components/containers/linear-layout/linear-layout.module.d.ts +0 -10
  675. package/components/containers/panel/esm2022/panel.module.mjs +0 -36
  676. package/components/containers/panel/panel.module.d.ts +0 -11
  677. package/components/containers/tabs/esm2022/tabs.module.mjs +0 -32
  678. package/components/containers/tabs/tabs.module.d.ts +0 -10
  679. package/components/containers/tile/esm2022/tile.module.mjs +0 -28
  680. package/components/containers/tile/tile.module.d.ts +0 -9
  681. package/components/containers/wizard/esm2022/wizard-step/wizard-step.directive.mjs +0 -140
  682. package/components/containers/wizard/esm2022/wizard.module.mjs +0 -40
  683. package/components/containers/wizard/wizard.module.d.ts +0 -12
  684. package/components/data/card/card.module.d.ts +0 -15
  685. package/components/data/card/esm2022/card.module.mjs +0 -52
  686. package/components/data/form/esm2022/form.module.mjs +0 -68
  687. package/components/data/form/form.module.d.ts +0 -19
  688. package/components/data/list/esm2022/list.module.mjs +0 -40
  689. package/components/data/list/list.module.d.ts +0 -11
  690. package/components/data/live-table/esm2022/live-table.module.mjs +0 -28
  691. package/components/data/live-table/live-table.module.d.ts +0 -9
  692. package/components/data/pagination/esm2022/pagination.module.mjs +0 -36
  693. package/components/data/pagination/pagination.module.d.ts +0 -11
  694. package/components/data/table/esm2022/table.module.mjs +0 -91
  695. package/components/data/table/table.module.d.ts +0 -24
  696. package/components/dialogs/alert-dialog/alert-dialog.module.d.ts +0 -11
  697. package/components/dialogs/alert-dialog/esm2022/alert-dialog.module.mjs +0 -36
  698. package/components/dialogs/confirm-dialog/confirm-dialog.module.d.ts +0 -11
  699. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.module.mjs +0 -36
  700. package/components/dialogs/default/dialog.module.d.ts +0 -12
  701. package/components/dialogs/default/esm2022/dialog.module.mjs +0 -40
  702. package/components/dialogs/design-dialog/design-dialog.module.d.ts +0 -11
  703. package/components/dialogs/design-dialog/esm2022/design-dialog.module.mjs +0 -36
  704. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.module.mjs +0 -40
  705. package/components/dialogs/iframe-dialog/iframe-dialog.module.d.ts +0 -12
  706. package/components/dialogs/login-dialog/esm2022/login-dialog.module.mjs +0 -40
  707. package/components/dialogs/login-dialog/login-dialog.module.d.ts +0 -12
  708. package/components/dialogs/partial-dialog/esm2022/partial-dialog.module.mjs +0 -36
  709. package/components/dialogs/partial-dialog/partial-dialog.module.d.ts +0 -11
  710. package/components/input/calendar/calendar.module.d.ts +0 -12
  711. package/components/input/calendar/esm2022/calendar.module.mjs +0 -40
  712. package/components/input/chips/chips.module.d.ts +0 -10
  713. package/components/input/chips/esm2022/chips.module.mjs +0 -32
  714. package/components/input/color-picker/color-picker.module.d.ts +0 -11
  715. package/components/input/color-picker/esm2022/color-picker.module.mjs +0 -36
  716. package/components/input/currency/currency.module.d.ts +0 -11
  717. package/components/input/currency/esm2022/currency.module.mjs +0 -36
  718. package/components/input/default/esm2022/input.module.mjs +0 -96
  719. package/components/input/default/input.module.d.ts +0 -26
  720. package/components/input/epoch/epoch.module.d.ts +0 -18
  721. package/components/input/epoch/esm2022/epoch.module.mjs +0 -70
  722. package/components/input/file-upload/esm2022/file-upload.module.mjs +0 -28
  723. package/components/input/file-upload/file-upload.module.d.ts +0 -9
  724. package/components/input/rating/esm2022/rating.module.mjs +0 -32
  725. package/components/input/rating/rating.module.d.ts +0 -10
  726. package/components/input/slider/esm2022/slider.module.mjs +0 -32
  727. package/components/input/slider/slider.module.d.ts +0 -10
  728. package/components/navigation/breadcrumb/breadcrumb.module.d.ts +0 -10
  729. package/components/navigation/breadcrumb/esm2022/breadcrumb.module.mjs +0 -32
  730. package/components/navigation/menu/esm2022/menu.module.mjs +0 -71
  731. package/components/navigation/menu/menu.module.d.ts +0 -17
  732. package/components/navigation/navbar/esm2022/navbar.module.mjs +0 -28
  733. package/components/navigation/navbar/navbar.module.d.ts +0 -9
  734. package/components/navigation/popover/esm2022/popover.module.mjs +0 -36
  735. package/components/navigation/popover/popover.module.d.ts +0 -11
  736. package/components/page/default/esm2022/page.module.mjs +0 -55
  737. package/components/page/default/page.module.d.ts +0 -14
  738. package/components/page/footer/esm2022/footer.module.mjs +0 -28
  739. package/components/page/footer/footer.module.d.ts +0 -9
  740. package/components/page/header/esm2022/header.module.mjs +0 -28
  741. package/components/page/header/header.module.d.ts +0 -9
  742. package/components/page/left-panel/esm2022/left-panel.module.mjs +0 -28
  743. package/components/page/left-panel/left-panel.module.d.ts +0 -9
  744. package/components/page/right-panel/esm2022/right-panel.module.mjs +0 -28
  745. package/components/page/right-panel/right-panel.module.d.ts +0 -9
  746. package/components/page/top-nav/esm2022/top-nav.module.mjs +0 -28
  747. package/components/page/top-nav/top-nav.module.d.ts +0 -9
  748. package/components/prefab/esm2022/prefab.module.mjs +0 -32
  749. package/components/prefab/prefab.module.d.ts +0 -10
  750. package/core/core.module.d.ts +0 -9
  751. package/core/esm2022/core.module.mjs +0 -27
  752. package/http/esm2022/http-service.module.mjs +0 -36
  753. package/http/http-service.module.d.ts +0 -14
  754. package/locales/fullcalendar/af.js +0 -27
  755. package/locales/fullcalendar/ar-dz.js +0 -28
  756. package/locales/fullcalendar/ar-kw.js +0 -28
  757. package/locales/fullcalendar/ar-ly.js +0 -28
  758. package/locales/fullcalendar/ar-ma.js +0 -28
  759. package/locales/fullcalendar/ar-sa.js +0 -28
  760. package/locales/fullcalendar/ar-tn.js +0 -28
  761. package/locales/fullcalendar/ar.js +0 -28
  762. package/locales/fullcalendar/az.js +0 -29
  763. package/locales/fullcalendar/bg.js +0 -28
  764. package/locales/fullcalendar/bs.js +0 -29
  765. package/locales/fullcalendar/ca.js +0 -27
  766. package/locales/fullcalendar/cs.js +0 -29
  767. package/locales/fullcalendar/da.js +0 -27
  768. package/locales/fullcalendar/de.js +0 -30
  769. package/locales/fullcalendar/el.js +0 -27
  770. package/locales/fullcalendar/en-au.js +0 -14
  771. package/locales/fullcalendar/en-gb.js +0 -14
  772. package/locales/fullcalendar/en-nz.js +0 -14
  773. package/locales/fullcalendar/es-us.js +0 -27
  774. package/locales/fullcalendar/es.js +0 -27
  775. package/locales/fullcalendar/et.js +0 -29
  776. package/locales/fullcalendar/eu.js +0 -27
  777. package/locales/fullcalendar/fa.js +0 -30
  778. package/locales/fullcalendar/fi.js +0 -27
  779. package/locales/fullcalendar/fr-ca.js +0 -24
  780. package/locales/fullcalendar/fr-ch.js +0 -28
  781. package/locales/fullcalendar/fr.js +0 -28
  782. package/locales/fullcalendar/gl.js +0 -27
  783. package/locales/fullcalendar/he.js +0 -24
  784. package/locales/fullcalendar/hi.js +0 -29
  785. package/locales/fullcalendar/hr.js +0 -29
  786. package/locales/fullcalendar/hu.js +0 -27
  787. package/locales/fullcalendar/id.js +0 -27
  788. package/locales/fullcalendar/is.js +0 -27
  789. package/locales/fullcalendar/it.js +0 -29
  790. package/locales/fullcalendar/ja.js +0 -25
  791. package/locales/fullcalendar/ka.js +0 -29
  792. package/locales/fullcalendar/kk.js +0 -29
  793. package/locales/fullcalendar/ko.js +0 -23
  794. package/locales/fullcalendar/lb.js +0 -27
  795. package/locales/fullcalendar/lt.js +0 -27
  796. package/locales/fullcalendar/lv.js +0 -29
  797. package/locales/fullcalendar/mk.js +0 -25
  798. package/locales/fullcalendar/ms.js +0 -29
  799. package/locales/fullcalendar/nb.js +0 -27
  800. package/locales/fullcalendar/ne.js +0 -27
  801. package/locales/fullcalendar/nl.js +0 -27
  802. package/locales/fullcalendar/nn.js +0 -27
  803. package/locales/fullcalendar/pl.js +0 -27
  804. package/locales/fullcalendar/pt-br.js +0 -25
  805. package/locales/fullcalendar/pt.js +0 -27
  806. package/locales/fullcalendar/ro.js +0 -29
  807. package/locales/fullcalendar/ru.js +0 -29
  808. package/locales/fullcalendar/sk.js +0 -29
  809. package/locales/fullcalendar/sl.js +0 -27
  810. package/locales/fullcalendar/sq.js +0 -29
  811. package/locales/fullcalendar/sr-cyrl.js +0 -29
  812. package/locales/fullcalendar/sr.js +0 -29
  813. package/locales/fullcalendar/sv.js +0 -27
  814. package/locales/fullcalendar/th.js +0 -30
  815. package/locales/fullcalendar/tr.js +0 -27
  816. package/locales/fullcalendar/ug.js +0 -17
  817. package/locales/fullcalendar/uk.js +0 -29
  818. package/locales/fullcalendar/uz.js +0 -21
  819. package/locales/fullcalendar/vi.js +0 -29
  820. package/locales/fullcalendar/zh-cn.js +0 -30
  821. package/locales/fullcalendar/zh-tw.js +0 -23
  822. package/mobile/components/basic/default/.npmignore +0 -2
  823. package/mobile/components/basic/default/anchor/anchor.directive.d.ts +0 -8
  824. package/mobile/components/basic/default/app-update/app-update.component.d.ts +0 -26
  825. package/mobile/components/basic/default/basic.module.d.ts +0 -15
  826. package/mobile/components/basic/default/bundles/index.umd.js +0 -980
  827. package/mobile/components/basic/default/esm2022/anchor/anchor.directive.mjs +0 -44
  828. package/mobile/components/basic/default/esm2022/app-update/app-update.component.mjs +0 -116
  829. package/mobile/components/basic/default/esm2022/basic.module.mjs +0 -52
  830. package/mobile/components/basic/default/esm2022/file-browser/file-browser.component.mjs +0 -236
  831. package/mobile/components/basic/default/esm2022/file-browser/file-selector.service.mjs +0 -85
  832. package/mobile/components/basic/default/esm2022/image-cache/image-cache.directive.mjs +0 -61
  833. package/mobile/components/basic/default/esm2022/index.mjs +0 -5
  834. package/mobile/components/basic/default/esm2022/network-info-toaster/network-info-toaster.component.mjs +0 -183
  835. package/mobile/components/basic/default/esm2022/network-info-toaster/network-info-toaster.props.mjs +0 -5
  836. package/mobile/components/basic/default/esm2022/process-manager/process-management.service.mjs +0 -47
  837. package/mobile/components/basic/default/esm2022/process-manager/process-manager.component.mjs +0 -175
  838. package/mobile/components/basic/default/esm2022/public_api.mjs +0 -10
  839. package/mobile/components/basic/default/fesm2022/index.mjs +0 -958
  840. package/mobile/components/basic/default/fesm2022/index.mjs.map +0 -1
  841. package/mobile/components/basic/default/file-browser/file-browser.component.d.ts +0 -39
  842. package/mobile/components/basic/default/file-browser/file-selector.service.d.ts +0 -27
  843. package/mobile/components/basic/default/image-cache/image-cache.directive.d.ts +0 -18
  844. package/mobile/components/basic/default/index.d.ts +0 -5
  845. package/mobile/components/basic/default/network-info-toaster/network-info-toaster.component.d.ts +0 -28
  846. package/mobile/components/basic/default/network-info-toaster/network-info-toaster.props.d.ts +0 -1
  847. package/mobile/components/basic/default/package.json +0 -23
  848. package/mobile/components/basic/default/process-manager/process-management.service.d.ts +0 -36
  849. package/mobile/components/basic/default/process-manager/process-manager.component.d.ts +0 -33
  850. package/mobile/components/basic/default/public_api.d.ts +0 -9
  851. package/mobile/components/basic/search/.npmignore +0 -2
  852. package/mobile/components/basic/search/bundles/index.umd.js +0 -66
  853. package/mobile/components/basic/search/esm2022/index.mjs +0 -5
  854. package/mobile/components/basic/search/esm2022/public_api.mjs +0 -3
  855. package/mobile/components/basic/search/esm2022/search.directive.mjs +0 -17
  856. package/mobile/components/basic/search/esm2022/search.module.mjs +0 -28
  857. package/mobile/components/basic/search/fesm2022/index.mjs +0 -49
  858. package/mobile/components/basic/search/fesm2022/index.mjs.map +0 -1
  859. package/mobile/components/basic/search/index.d.ts +0 -5
  860. package/mobile/components/basic/search/package.json +0 -23
  861. package/mobile/components/basic/search/public_api.d.ts +0 -2
  862. package/mobile/components/basic/search/search.directive.d.ts +0 -7
  863. package/mobile/components/basic/search/search.module.d.ts +0 -9
  864. package/mobile/components/containers/segmented-control/.npmignore +0 -2
  865. package/mobile/components/containers/segmented-control/bundles/index.umd.js +0 -281
  866. package/mobile/components/containers/segmented-control/esm2022/index.mjs +0 -5
  867. package/mobile/components/containers/segmented-control/esm2022/public_api.mjs +0 -4
  868. package/mobile/components/containers/segmented-control/esm2022/segment-content/segment-content.component.mjs +0 -70
  869. package/mobile/components/containers/segmented-control/esm2022/segment-content/segment-content.props.mjs +0 -14
  870. package/mobile/components/containers/segmented-control/esm2022/segmented-control.component.mjs +0 -147
  871. package/mobile/components/containers/segmented-control/esm2022/segmented-control.module.mjs +0 -32
  872. package/mobile/components/containers/segmented-control/esm2022/segmented-control.props.mjs +0 -9
  873. package/mobile/components/containers/segmented-control/fesm2022/index.mjs +0 -264
  874. package/mobile/components/containers/segmented-control/fesm2022/index.mjs.map +0 -1
  875. package/mobile/components/containers/segmented-control/index.d.ts +0 -5
  876. package/mobile/components/containers/segmented-control/package.json +0 -23
  877. package/mobile/components/containers/segmented-control/public_api.d.ts +0 -3
  878. package/mobile/components/containers/segmented-control/segment-content/segment-content.component.d.ts +0 -18
  879. package/mobile/components/containers/segmented-control/segment-content/segment-content.props.d.ts +0 -1
  880. package/mobile/components/containers/segmented-control/segmented-control.component.d.ts +0 -20
  881. package/mobile/components/containers/segmented-control/segmented-control.module.d.ts +0 -10
  882. package/mobile/components/containers/segmented-control/segmented-control.props.d.ts +0 -1
  883. package/mobile/components/data/media-list/.npmignore +0 -2
  884. package/mobile/components/data/media-list/bundles/index.umd.js +0 -310
  885. package/mobile/components/data/media-list/esm2022/index.mjs +0 -5
  886. package/mobile/components/data/media-list/esm2022/media-list-item/media-list-item.directive.mjs +0 -24
  887. package/mobile/components/data/media-list/esm2022/media-list.component.mjs +0 -213
  888. package/mobile/components/data/media-list/esm2022/media-list.module.mjs +0 -48
  889. package/mobile/components/data/media-list/esm2022/media-list.props.mjs +0 -16
  890. package/mobile/components/data/media-list/esm2022/public_api.mjs +0 -4
  891. package/mobile/components/data/media-list/fesm2022/index.mjs +0 -297
  892. package/mobile/components/data/media-list/fesm2022/index.mjs.map +0 -1
  893. package/mobile/components/data/media-list/index.d.ts +0 -5
  894. package/mobile/components/data/media-list/media-list-item/media-list-item.directive.d.ts +0 -8
  895. package/mobile/components/data/media-list/media-list.component.d.ts +0 -33
  896. package/mobile/components/data/media-list/media-list.module.d.ts +0 -14
  897. package/mobile/components/data/media-list/media-list.props.d.ts +0 -1
  898. package/mobile/components/data/media-list/package.json +0 -23
  899. package/mobile/components/data/media-list/public_api.d.ts +0 -3
  900. package/mobile/components/device/barcode-scanner/.npmignore +0 -2
  901. package/mobile/components/device/barcode-scanner/barcode-scanner.component.d.ts +0 -18
  902. package/mobile/components/device/barcode-scanner/barcode-scanner.module.d.ts +0 -9
  903. package/mobile/components/device/barcode-scanner/barcode-scanner.props.d.ts +0 -1
  904. package/mobile/components/device/barcode-scanner/bundles/index.umd.js +0 -129
  905. package/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.component.mjs +0 -69
  906. package/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.module.mjs +0 -28
  907. package/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.props.mjs +0 -15
  908. package/mobile/components/device/barcode-scanner/esm2022/index.mjs +0 -5
  909. package/mobile/components/device/barcode-scanner/esm2022/public_api.mjs +0 -3
  910. package/mobile/components/device/barcode-scanner/fesm2022/index.mjs +0 -112
  911. package/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +0 -1
  912. package/mobile/components/device/barcode-scanner/index.d.ts +0 -5
  913. package/mobile/components/device/barcode-scanner/package.json +0 -23
  914. package/mobile/components/device/barcode-scanner/public_api.d.ts +0 -2
  915. package/mobile/components/device/camera/.npmignore +0 -2
  916. package/mobile/components/device/camera/bundles/index.umd.js +0 -170
  917. package/mobile/components/device/camera/camera.component.d.ts +0 -37
  918. package/mobile/components/device/camera/camera.module.d.ts +0 -9
  919. package/mobile/components/device/camera/camera.props.d.ts +0 -1
  920. package/mobile/components/device/camera/esm2022/camera.component.mjs +0 -101
  921. package/mobile/components/device/camera/esm2022/camera.module.mjs +0 -28
  922. package/mobile/components/device/camera/esm2022/camera.props.mjs +0 -25
  923. package/mobile/components/device/camera/esm2022/index.mjs +0 -5
  924. package/mobile/components/device/camera/esm2022/public_api.mjs +0 -3
  925. package/mobile/components/device/camera/fesm2022/index.mjs +0 -153
  926. package/mobile/components/device/camera/fesm2022/index.mjs.map +0 -1
  927. package/mobile/components/device/camera/index.d.ts +0 -5
  928. package/mobile/components/device/camera/package.json +0 -23
  929. package/mobile/components/device/camera/public_api.d.ts +0 -2
  930. package/mobile/components/input/file-upload/.npmignore +0 -2
  931. package/mobile/components/input/file-upload/bundles/index.umd.js +0 -88
  932. package/mobile/components/input/file-upload/esm2022/file-upload.directive.mjs +0 -41
  933. package/mobile/components/input/file-upload/esm2022/file-upload.module.mjs +0 -28
  934. package/mobile/components/input/file-upload/esm2022/index.mjs +0 -5
  935. package/mobile/components/input/file-upload/esm2022/public_api.mjs +0 -3
  936. package/mobile/components/input/file-upload/fesm2022/index.mjs +0 -71
  937. package/mobile/components/input/file-upload/fesm2022/index.mjs.map +0 -1
  938. package/mobile/components/input/file-upload/file-upload.directive.d.ts +0 -11
  939. package/mobile/components/input/file-upload/file-upload.module.d.ts +0 -9
  940. package/mobile/components/input/file-upload/index.d.ts +0 -5
  941. package/mobile/components/input/file-upload/package.json +0 -23
  942. package/mobile/components/input/file-upload/public_api.d.ts +0 -2
  943. package/mobile/components/page/default/.npmignore +0 -2
  944. package/mobile/components/page/default/bundles/index.umd.js +0 -127
  945. package/mobile/components/page/default/esm2022/index.mjs +0 -5
  946. package/mobile/components/page/default/esm2022/page-content-loader/page-content-loader.component.mjs +0 -24
  947. package/mobile/components/page/default/esm2022/page.directive.mjs +0 -58
  948. package/mobile/components/page/default/esm2022/page.module.mjs +0 -32
  949. package/mobile/components/page/default/esm2022/public_api.mjs +0 -4
  950. package/mobile/components/page/default/fesm2022/index.mjs +0 -110
  951. package/mobile/components/page/default/fesm2022/index.mjs.map +0 -1
  952. package/mobile/components/page/default/index.d.ts +0 -5
  953. package/mobile/components/page/default/package.json +0 -23
  954. package/mobile/components/page/default/page-content-loader/page-content-loader.component.d.ts +0 -7
  955. package/mobile/components/page/default/page.directive.d.ts +0 -19
  956. package/mobile/components/page/default/page.module.d.ts +0 -10
  957. package/mobile/components/page/default/public_api.d.ts +0 -3
  958. package/mobile/components/page/left-panel/.npmignore +0 -2
  959. package/mobile/components/page/left-panel/bundles/index.umd.js +0 -91
  960. package/mobile/components/page/left-panel/esm2022/index.mjs +0 -5
  961. package/mobile/components/page/left-panel/esm2022/left-panel.directive.mjs +0 -45
  962. package/mobile/components/page/left-panel/esm2022/left-panel.module.mjs +0 -28
  963. package/mobile/components/page/left-panel/esm2022/public_api.mjs +0 -3
  964. package/mobile/components/page/left-panel/fesm2022/index.mjs +0 -74
  965. package/mobile/components/page/left-panel/fesm2022/index.mjs.map +0 -1
  966. package/mobile/components/page/left-panel/index.d.ts +0 -5
  967. package/mobile/components/page/left-panel/left-panel.directive.d.ts +0 -16
  968. package/mobile/components/page/left-panel/left-panel.module.d.ts +0 -9
  969. package/mobile/components/page/left-panel/package.json +0 -23
  970. package/mobile/components/page/left-panel/public_api.d.ts +0 -2
  971. package/mobile/components/page/mobile-navbar/.npmignore +0 -2
  972. package/mobile/components/page/mobile-navbar/bundles/index.umd.js +0 -332
  973. package/mobile/components/page/mobile-navbar/esm2022/index.mjs +0 -5
  974. package/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.component.mjs +0 -247
  975. package/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.module.mjs +0 -32
  976. package/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.props.mjs +0 -41
  977. package/mobile/components/page/mobile-navbar/esm2022/public_api.mjs +0 -3
  978. package/mobile/components/page/mobile-navbar/fesm2022/index.mjs +0 -317
  979. package/mobile/components/page/mobile-navbar/fesm2022/index.mjs.map +0 -1
  980. package/mobile/components/page/mobile-navbar/index.d.ts +0 -5
  981. package/mobile/components/page/mobile-navbar/mobile-navbar.component.d.ts +0 -50
  982. package/mobile/components/page/mobile-navbar/mobile-navbar.module.d.ts +0 -10
  983. package/mobile/components/page/mobile-navbar/mobile-navbar.props.d.ts +0 -2
  984. package/mobile/components/page/mobile-navbar/package.json +0 -23
  985. package/mobile/components/page/mobile-navbar/public_api.d.ts +0 -2
  986. package/mobile/components/page/tab-bar/.npmignore +0 -2
  987. package/mobile/components/page/tab-bar/bundles/index.umd.js +0 -279
  988. package/mobile/components/page/tab-bar/esm2022/index.mjs +0 -5
  989. package/mobile/components/page/tab-bar/esm2022/public_api.mjs +0 -3
  990. package/mobile/components/page/tab-bar/esm2022/tab-bar.module.mjs +0 -28
  991. package/mobile/components/page/tab-bar/esm2022/tabbar.component.mjs +0 -219
  992. package/mobile/components/page/tab-bar/esm2022/tabbar.props.mjs +0 -15
  993. package/mobile/components/page/tab-bar/fesm2022/index.mjs +0 -262
  994. package/mobile/components/page/tab-bar/fesm2022/index.mjs.map +0 -1
  995. package/mobile/components/page/tab-bar/index.d.ts +0 -5
  996. package/mobile/components/page/tab-bar/package.json +0 -23
  997. package/mobile/components/page/tab-bar/public_api.d.ts +0 -2
  998. package/mobile/components/page/tab-bar/tab-bar.module.d.ts +0 -9
  999. package/mobile/components/page/tab-bar/tabbar.component.d.ts +0 -40
  1000. package/mobile/components/page/tab-bar/tabbar.props.d.ts +0 -1
  1001. package/mobile/core/.npmignore +0 -2
  1002. package/mobile/core/bundles/index.umd.js +0 -1658
  1003. package/mobile/core/core.module.d.ts +0 -15
  1004. package/mobile/core/esm2022/core.module.mjs +0 -79
  1005. package/mobile/core/esm2022/index.mjs +0 -5
  1006. package/mobile/core/esm2022/native.xhr.mjs +0 -340
  1007. package/mobile/core/esm2022/public_api.mjs +0 -12
  1008. package/mobile/core/esm2022/services/device-file-cache.service.mjs +0 -92
  1009. package/mobile/core/esm2022/services/device-file-download.service.mjs +0 -154
  1010. package/mobile/core/esm2022/services/device-file-opener.service.mjs +0 -112
  1011. package/mobile/core/esm2022/services/device-file-upload.service.mjs +0 -91
  1012. package/mobile/core/esm2022/services/device-file.service.mjs +0 -237
  1013. package/mobile/core/esm2022/services/device-start-up-service.mjs +0 -2
  1014. package/mobile/core/esm2022/services/device.service.mjs +0 -150
  1015. package/mobile/core/esm2022/services/ext-app-message.service.mjs +0 -114
  1016. package/mobile/core/esm2022/services/network.service.mjs +0 -358
  1017. package/mobile/core/fesm2022/index.mjs +0 -1660
  1018. package/mobile/core/fesm2022/index.mjs.map +0 -1
  1019. package/mobile/core/index.d.ts +0 -5
  1020. package/mobile/core/native.xhr.d.ts +0 -36
  1021. package/mobile/core/package.json +0 -28
  1022. package/mobile/core/public_api.d.ts +0 -11
  1023. package/mobile/core/services/device-file-cache.service.d.ts +0 -24
  1024. package/mobile/core/services/device-file-download.service.d.ts +0 -36
  1025. package/mobile/core/services/device-file-opener.service.d.ts +0 -25
  1026. package/mobile/core/services/device-file-upload.service.d.ts +0 -27
  1027. package/mobile/core/services/device-file.service.d.ts +0 -45
  1028. package/mobile/core/services/device-start-up-service.d.ts +0 -4
  1029. package/mobile/core/services/device.service.d.ts +0 -52
  1030. package/mobile/core/services/ext-app-message.service.d.ts +0 -24
  1031. package/mobile/core/services/network.service.d.ts +0 -118
  1032. package/mobile/offline/.npmignore +0 -2
  1033. package/mobile/offline/bundles/index.umd.js +0 -3512
  1034. package/mobile/offline/esm2022/index.mjs +0 -5
  1035. package/mobile/offline/esm2022/models/config.mjs +0 -64
  1036. package/mobile/offline/esm2022/models/local-db-store.mjs +0 -412
  1037. package/mobile/offline/esm2022/offline.module.mjs +0 -100
  1038. package/mobile/offline/esm2022/public_api.mjs +0 -7
  1039. package/mobile/offline/esm2022/services/change-log.service.mjs +0 -332
  1040. package/mobile/offline/esm2022/services/local-db-data-pull.service.mjs +0 -525
  1041. package/mobile/offline/esm2022/services/local-db-management.service.mjs +0 -855
  1042. package/mobile/offline/esm2022/services/local-db.service.mjs +0 -193
  1043. package/mobile/offline/esm2022/services/local-key-value.service.mjs +0 -87
  1044. package/mobile/offline/esm2022/services/push.service.mjs +0 -49
  1045. package/mobile/offline/esm2022/services/workers/error-blocker.mjs +0 -115
  1046. package/mobile/offline/esm2022/services/workers/file-handler.mjs +0 -162
  1047. package/mobile/offline/esm2022/services/workers/id-resolver.mjs +0 -154
  1048. package/mobile/offline/esm2022/services/workers/multi-part-param-transformer.mjs +0 -63
  1049. package/mobile/offline/esm2022/utils/file-upload.utils.mjs +0 -59
  1050. package/mobile/offline/esm2022/utils/live-variable.utils.mjs +0 -232
  1051. package/mobile/offline/esm2022/utils/query-executor.utils.mjs +0 -82
  1052. package/mobile/offline/esm2022/utils/security.utils.mjs +0 -119
  1053. package/mobile/offline/esm2022/utils/utils.mjs +0 -8
  1054. package/mobile/offline/fesm2022/index.mjs +0 -3529
  1055. package/mobile/offline/fesm2022/index.mjs.map +0 -1
  1056. package/mobile/offline/index.d.ts +0 -5
  1057. package/mobile/offline/models/config.d.ts +0 -80
  1058. package/mobile/offline/models/local-db-store.d.ts +0 -119
  1059. package/mobile/offline/offline.module.d.ts +0 -17
  1060. package/mobile/offline/package.json +0 -28
  1061. package/mobile/offline/public_api.d.ts +0 -6
  1062. package/mobile/offline/services/change-log.service.d.ts +0 -112
  1063. package/mobile/offline/services/local-db-data-pull.service.d.ts +0 -139
  1064. package/mobile/offline/services/local-db-management.service.d.ts +0 -179
  1065. package/mobile/offline/services/local-db.service.d.ts +0 -83
  1066. package/mobile/offline/services/local-key-value.service.d.ts +0 -38
  1067. package/mobile/offline/services/push.service.d.ts +0 -11
  1068. package/mobile/offline/services/workers/error-blocker.d.ts +0 -26
  1069. package/mobile/offline/services/workers/file-handler.d.ts +0 -56
  1070. package/mobile/offline/services/workers/id-resolver.d.ts +0 -26
  1071. package/mobile/offline/services/workers/multi-part-param-transformer.d.ts +0 -11
  1072. package/mobile/offline/utils/file-upload.utils.d.ts +0 -14
  1073. package/mobile/offline/utils/live-variable.utils.d.ts +0 -24
  1074. package/mobile/offline/utils/query-executor.utils.d.ts +0 -15
  1075. package/mobile/offline/utils/security.utils.d.ts +0 -19
  1076. package/mobile/offline/utils/utils.d.ts +0 -2
  1077. package/mobile/placeholder/runtime/.npmignore +0 -2
  1078. package/mobile/placeholder/runtime/bundles/index.umd.js +0 -70
  1079. package/mobile/placeholder/runtime/components/app-ext.component.d.ts +0 -5
  1080. package/mobile/placeholder/runtime/esm2022/components/app-ext.component.mjs +0 -19
  1081. package/mobile/placeholder/runtime/esm2022/index.mjs +0 -5
  1082. package/mobile/placeholder/runtime/esm2022/mobile-runtime.module.mjs +0 -27
  1083. package/mobile/placeholder/runtime/esm2022/public_api.mjs +0 -3
  1084. package/mobile/placeholder/runtime/fesm2022/index.mjs +0 -50
  1085. package/mobile/placeholder/runtime/fesm2022/index.mjs.map +0 -1
  1086. package/mobile/placeholder/runtime/index.d.ts +0 -5
  1087. package/mobile/placeholder/runtime/mobile-runtime.module.d.ts +0 -9
  1088. package/mobile/placeholder/runtime/package.json +0 -27
  1089. package/mobile/placeholder/runtime/public_api.d.ts +0 -2
  1090. package/mobile/placeholder/runtime-dynamic/.npmignore +0 -2
  1091. package/mobile/placeholder/runtime-dynamic/bundles/index.umd.js +0 -40
  1092. package/mobile/placeholder/runtime-dynamic/esm2022/index.mjs +0 -5
  1093. package/mobile/placeholder/runtime-dynamic/esm2022/mobile-runtime-dynamic.module.mjs +0 -13
  1094. package/mobile/placeholder/runtime-dynamic/esm2022/public_api.mjs +0 -2
  1095. package/mobile/placeholder/runtime-dynamic/fesm2022/index.mjs +0 -20
  1096. package/mobile/placeholder/runtime-dynamic/fesm2022/index.mjs.map +0 -1
  1097. package/mobile/placeholder/runtime-dynamic/index.d.ts +0 -5
  1098. package/mobile/placeholder/runtime-dynamic/mobile-runtime-dynamic.module.d.ts +0 -7
  1099. package/mobile/placeholder/runtime-dynamic/package.json +0 -23
  1100. package/mobile/placeholder/runtime-dynamic/public_api.d.ts +0 -1
  1101. package/mobile/runtime/.npmignore +0 -2
  1102. package/mobile/runtime/bundles/index.umd.js +0 -732
  1103. package/mobile/runtime/components/app-ext.component.d.ts +0 -14
  1104. package/mobile/runtime/esm2022/components/app-ext.component.mjs +0 -59
  1105. package/mobile/runtime/esm2022/index.mjs +0 -5
  1106. package/mobile/runtime/esm2022/mobile-runtime.module.mjs +0 -351
  1107. package/mobile/runtime/esm2022/public_api.mjs +0 -6
  1108. package/mobile/runtime/esm2022/services/cookie.service.mjs +0 -135
  1109. package/mobile/runtime/esm2022/services/http-interceptor.service.mjs +0 -147
  1110. package/mobile/runtime/esm2022/services/webprocess.service.mjs +0 -76
  1111. package/mobile/runtime/fesm2022/index.mjs +0 -742
  1112. package/mobile/runtime/fesm2022/index.mjs.map +0 -1
  1113. package/mobile/runtime/index.d.ts +0 -5
  1114. package/mobile/runtime/mobile-runtime.module.d.ts +0 -51
  1115. package/mobile/runtime/package.json +0 -28
  1116. package/mobile/runtime/public_api.d.ts +0 -5
  1117. package/mobile/runtime/services/cookie.service.d.ts +0 -31
  1118. package/mobile/runtime/services/http-interceptor.service.d.ts +0 -19
  1119. package/mobile/runtime/services/webprocess.service.d.ts +0 -15
  1120. package/mobile/runtime-dynamic/.npmignore +0 -2
  1121. package/mobile/runtime-dynamic/bundles/index.umd.js +0 -461
  1122. package/mobile/runtime-dynamic/esm2022/index.mjs +0 -5
  1123. package/mobile/runtime-dynamic/esm2022/mobile-runtime-dynamic.module.mjs +0 -48
  1124. package/mobile/runtime-dynamic/esm2022/public_api.mjs +0 -2
  1125. package/mobile/runtime-dynamic/esm2022/services/live-sync.service.mjs +0 -404
  1126. package/mobile/runtime-dynamic/fesm2022/index.mjs +0 -454
  1127. package/mobile/runtime-dynamic/fesm2022/index.mjs.map +0 -1
  1128. package/mobile/runtime-dynamic/index.d.ts +0 -5
  1129. package/mobile/runtime-dynamic/mobile-runtime-dynamic.module.d.ts +0 -8
  1130. package/mobile/runtime-dynamic/package.json +0 -23
  1131. package/mobile/runtime-dynamic/public_api.d.ts +0 -1
  1132. package/mobile/runtime-dynamic/services/live-sync.service.d.ts +0 -38
  1133. package/mobile/variables/.npmignore +0 -2
  1134. package/mobile/variables/bundles/index.umd.js +0 -1166
  1135. package/mobile/variables/esm2022/index.mjs +0 -5
  1136. package/mobile/variables/esm2022/public_api.mjs +0 -10
  1137. package/mobile/variables/esm2022/services/calendar-service.mjs +0 -77
  1138. package/mobile/variables/esm2022/services/camera-service.mjs +0 -70
  1139. package/mobile/variables/esm2022/services/contacts-service.mjs +0 -74
  1140. package/mobile/variables/esm2022/services/datasync-service.mjs +0 -363
  1141. package/mobile/variables/esm2022/services/device-service/device-service.mjs +0 -161
  1142. package/mobile/variables/esm2022/services/device-service/location-service.mjs +0 -200
  1143. package/mobile/variables/esm2022/services/file-service.mjs +0 -87
  1144. package/mobile/variables/esm2022/services/scan-service.mjs +0 -60
  1145. package/mobile/variables/esm2022/variables.module.mjs +0 -78
  1146. package/mobile/variables/fesm2022/index.mjs +0 -1143
  1147. package/mobile/variables/fesm2022/index.mjs.map +0 -1
  1148. package/mobile/variables/index.d.ts +0 -5
  1149. package/mobile/variables/package.json +0 -28
  1150. package/mobile/variables/public_api.d.ts +0 -9
  1151. package/mobile/variables/services/calendar-service.d.ts +0 -10
  1152. package/mobile/variables/services/camera-service.d.ts +0 -8
  1153. package/mobile/variables/services/contacts-service.d.ts +0 -6
  1154. package/mobile/variables/services/datasync-service.d.ts +0 -11
  1155. package/mobile/variables/services/device-service/device-service.d.ts +0 -17
  1156. package/mobile/variables/services/device-service/location-service.d.ts +0 -63
  1157. package/mobile/variables/services/file-service.d.ts +0 -7
  1158. package/mobile/variables/services/scan-service.d.ts +0 -7
  1159. package/mobile/variables/variables.module.d.ts +0 -25
  1160. package/oAuth/esm2022/oAuth.module.mjs +0 -19
  1161. package/oAuth/oAuth.module.d.ts +0 -8
  1162. package/scripts/fullcalendar/main.min.js +0 -6
  1163. package/security/esm2022/security.module.mjs +0 -19
  1164. package/security/security.module.d.ts +0 -8
  1165. package/variables/esm2022/manager/variable/device-variable-manager.mjs +0 -48
  1166. package/variables/esm2022/manager/variable/device-variable-operation.mjs +0 -2
  1167. package/variables/esm2022/manager/variable/device-variable-service.mjs +0 -45
  1168. package/variables/esm2022/model/variable/device-variable.mjs +0 -19
  1169. package/variables/esm2022/variables.module.mjs +0 -52
  1170. package/variables/manager/variable/device-variable-manager.d.ts +0 -26
  1171. package/variables/manager/variable/device-variable-operation.d.ts +0 -37
  1172. package/variables/manager/variable/device-variable-service.d.ts +0 -6
  1173. package/variables/model/variable/device-variable.d.ts +0 -6
  1174. package/variables/variables.module.d.ts +0 -16
@@ -1,3 +1,5 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { WmComponentsModule } from "@wm/components/base";
1
3
  import { Attribute, Component, ContentChildren, HostBinding, Inject, Injector, Optional, QueryList } from '@angular/core';
2
4
  import { addClass, appendNode, DynamicComponentRefProvider, noop, removeClass, StatePersistence } from '@wm/core';
3
5
  import { APPLY_STYLES_TYPE, provideAsWidgetRef, styler, StylableComponent, createArrayFrom } from '@wm/components/base';
@@ -16,26 +18,26 @@ const _c3 = (a0, a1) => ({ "nav-stacked": a0, "nav-justified": a1 });
16
18
  const _c4 = (a0, a1) => ({ "active": a0, "disabled": a1 });
17
19
  const _c5 = a0 => ["app-icon", a0];
18
20
  const _c6 = (a0, a1) => ({ "tab-stacked": a0, "tab-justified": a1 });
19
- function TabsComponent_li_1_i_2_Template(rf, ctx) { if (rf & 1) {
20
- i0.ɵɵelement(0, "i", 8);
21
+ function TabsComponent_For_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
22
+ i0.ɵɵelement(0, "i", 4);
21
23
  } if (rf & 2) {
22
24
  const pane_r3 = i0.ɵɵnextContext().$implicit;
23
25
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(1, _c5, pane_r3.paneicon));
24
26
  } }
25
- function TabsComponent_li_1_span_4_Template(rf, ctx) { if (rf & 1) {
26
- i0.ɵɵelement(0, "span", 6);
27
+ function TabsComponent_For_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
28
+ i0.ɵɵelement(0, "span", 5);
27
29
  } if (rf & 2) {
28
30
  const pane_r3 = i0.ɵɵnextContext().$implicit;
29
31
  i0.ɵɵclassMapInterpolate1("label label-", pane_r3.badgetype, "");
30
32
  i0.ɵɵproperty("textContent", pane_r3.badgevalue);
31
33
  } }
32
- function TabsComponent_li_1_Template(rf, ctx) { if (rf & 1) {
34
+ function TabsComponent_For_2_Template(rf, ctx) { if (rf & 1) {
33
35
  const _r1 = i0.ɵɵgetCurrentView();
34
- i0.ɵɵelementStart(0, "li", 3)(1, "a", 4);
35
- i0.ɵɵlistener("click", function TabsComponent_li_1_Template_a_click_1_listener($event) { const ctx_r1 = i0.ɵɵrestoreView(_r1); const pane_r3 = ctx_r1.$implicit; const i_r4 = ctx_r1.index; pane_r3.select($event); return i0.ɵɵresetView(pane_r3.tabpaneHeaderClick($event, i_r4)); })("keydown", function TabsComponent_li_1_Template_a_keydown_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.onkeydown($event)); });
36
- i0.ɵɵtemplate(2, TabsComponent_li_1_i_2_Template, 1, 3, "i", 5);
37
- i0.ɵɵelement(3, "span", 6);
38
- i0.ɵɵtemplate(4, TabsComponent_li_1_span_4_Template, 1, 4, "span", 7);
36
+ i0.ɵɵelementStart(0, "li", 1)(1, "a", 3);
37
+ i0.ɵɵlistener("click", function TabsComponent_For_2_Template_a_click_1_listener($event) { const ctx_r1 = i0.ɵɵrestoreView(_r1); const pane_r3 = ctx_r1.$implicit; const ɵ$index_3_r4 = ctx_r1.$index; pane_r3.select($event); return i0.ɵɵresetView(pane_r3.tabpaneHeaderClick($event, ɵ$index_3_r4)); })("keydown", function TabsComponent_For_2_Template_a_keydown_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.onkeydown($event)); });
38
+ i0.ɵɵtemplate(2, TabsComponent_For_2_Conditional_2_Template, 1, 3, "i", 4);
39
+ i0.ɵɵelement(3, "span", 5);
40
+ i0.ɵɵtemplate(4, TabsComponent_For_2_Conditional_4_Template, 1, 4, "span", 6);
39
41
  i0.ɵɵelementEnd()();
40
42
  } if (rf & 2) {
41
43
  const pane_r3 = ctx.$implicit;
@@ -46,21 +48,21 @@ function TabsComponent_li_1_Template(rf, ctx) { if (rf & 1) {
46
48
  i0.ɵɵproperty("tabindex", pane_r3.isActive ? "0" : "-1");
47
49
  i0.ɵɵattribute("aria-label", pane_r3.badgevalue ? pane_r3.title + " " + pane_r3.badgevalue : pane_r3.title)("icon-position", ctx_r4.iconposition)("title", pane_r3.title)("aria-selected", pane_r3.isActive);
48
50
  i0.ɵɵadvance();
49
- i0.ɵɵproperty("ngIf", pane_r3.paneicon);
51
+ i0.ɵɵconditional(pane_r3.paneicon ? 2 : -1);
50
52
  i0.ɵɵadvance();
51
53
  i0.ɵɵproperty("textContent", pane_r3.title);
52
54
  i0.ɵɵadvance();
53
- i0.ɵɵproperty("ngIf", pane_r3.badgevalue);
55
+ i0.ɵɵconditional(pane_r3.badgevalue ? 4 : -1);
54
56
  } }
55
- function TabsComponent_div_2_Template(rf, ctx) { if (rf & 1) {
56
- i0.ɵɵelementStart(0, "div", 9);
57
+ function TabsComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
58
+ i0.ɵɵelementStart(0, "div", 2);
57
59
  i0.ɵɵprojection(1, 0, ["ngProjectAs", "div[wmTabPane]", 5, ["div", "wmTabPane", ""]]);
58
60
  i0.ɵɵelementEnd();
59
61
  } if (rf & 2) {
60
62
  const ctx_r4 = i0.ɵɵnextContext();
61
63
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(1, _c6, ctx_r4.vertical, ctx_r4.justified));
62
64
  } }
63
- function TabsComponent_div_3_div_1_Template(rf, ctx) { if (rf & 1) {
65
+ function TabsComponent_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
64
66
  i0.ɵɵelementStart(0, "div");
65
67
  i0.ɵɵtext(1);
66
68
  i0.ɵɵelementEnd();
@@ -69,16 +71,16 @@ function TabsComponent_div_3_div_1_Template(rf, ctx) { if (rf & 1) {
69
71
  i0.ɵɵadvance();
70
72
  i0.ɵɵtextInterpolate(ctx_r4.nodatamessage);
71
73
  } }
72
- function TabsComponent_div_3_Template(rf, ctx) { if (rf & 1) {
73
- i0.ɵɵelementStart(0, "div", 9);
74
- i0.ɵɵtemplate(1, TabsComponent_div_3_div_1_Template, 2, 1, "div", 10);
74
+ function TabsComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
75
+ i0.ɵɵelementStart(0, "div", 2);
76
+ i0.ɵɵtemplate(1, TabsComponent_Conditional_4_Conditional_1_Template, 2, 1, "div");
75
77
  i0.ɵɵprojection(2, 1);
76
78
  i0.ɵɵelementEnd();
77
79
  } if (rf & 2) {
78
80
  const ctx_r4 = i0.ɵɵnextContext();
79
81
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(2, _c6, ctx_r4.vertical, ctx_r4.justified));
80
82
  i0.ɵɵadvance();
81
- i0.ɵɵproperty("ngIf", ctx_r4.fieldDefs && !ctx_r4.fieldDefs.length);
83
+ i0.ɵɵconditional(ctx_r4.fieldDefs && !ctx_r4.fieldDefs.length ? 1 : -1);
82
84
  } }
83
85
  const DEFAULT_CLS = 'app-tabs clearfix';
84
86
  const WIDGET_CONFIG = {
@@ -374,6 +376,9 @@ export class TabsComponent extends StylableComponent {
374
376
  setTimeout(() => this.selectDefaultPaneByIndex(this.defaultpaneindex || 0), 20);
375
377
  }
376
378
  }
379
+ else if (key === 'autotabactivation') {
380
+ this.autoActivation = nv;
381
+ }
377
382
  else {
378
383
  super.onPropertyChange(key, nv, ov);
379
384
  }
@@ -395,20 +400,34 @@ export class TabsComponent extends StylableComponent {
395
400
  });
396
401
  }
397
402
  onkeydown(event) {
403
+ let newPane;
398
404
  switch (event.key) {
399
405
  case 'ArrowLeft':
400
406
  case 'ArrowUp':
401
- this.prev(null, true);
402
- event.preventDefault();
407
+ newPane = this.autoActivation ? (this.prev(null, true), null) : this.getSelectableTabBeforeIndex(this.getSelectedPaneIndex());
403
408
  break;
404
409
  case 'ArrowRight':
405
410
  case 'ArrowDown':
406
- this.next(null, true);
407
- event.preventDefault();
411
+ newPane = this.autoActivation ? (this.next(null, true), null) : this.getSelectableTabAfterIndex(this.getSelectedPaneIndex());
408
412
  break;
413
+ case 'Enter': {
414
+ const pane = this.getSelectableTabAfterIndex(this.getSelectedPaneIndex() - 1);
415
+ if (pane) {
416
+ const enterEvent = new KeyboardEvent('keydown', { key: 'Enter', code: 'Enter', bubbles: true, cancelable: true });
417
+ pane.nativeElement.dispatchEvent(enterEvent);
418
+ pane.select(enterEvent, true);
419
+ }
420
+ event.preventDefault();
421
+ return;
422
+ }
409
423
  default:
410
- break;
424
+ return;
411
425
  }
426
+ if (newPane) {
427
+ this.nativeElement.querySelector('li.select')?.classList.remove('select');
428
+ this.nativeElement.querySelector(`li[data-paneid="${newPane.widgetId}"]`)?.classList.add('select');
429
+ }
430
+ event.preventDefault();
412
431
  }
413
432
  ngAfterContentInit() {
414
433
  this.promiseResolverFn();
@@ -424,6 +443,10 @@ export class TabsComponent extends StylableComponent {
424
443
  super.ngAfterViewInit();
425
444
  this.registerTabsScroll();
426
445
  }
446
+ getSelectedPaneIndex() {
447
+ const index = this.panes.toArray().findIndex(pane => this.nativeElement.querySelector(`li[data-paneid="${pane.widgetId}"]`)?.classList.contains("select"));
448
+ return index >= 0 ? index : this.getActiveTabIndex();
449
+ }
427
450
  static { this.ɵfac = function TabsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TabsComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.DynamicComponentRefProvider), i0.ɵɵinjectAttribute('transition'), i0.ɵɵinjectAttribute('tabsposition'), i0.ɵɵdirectiveInject(i1.StatePersistence), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
428
451
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TabsComponent, selectors: [["div", "wmTabs", ""]], contentQueries: function TabsComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
429
452
  i0.ɵɵcontentQuery(dirIndex, TabPaneComponent, 4);
@@ -432,29 +455,29 @@ export class TabsComponent extends StylableComponent {
432
455
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.panes = _t);
433
456
  } }, hostVars: 1, hostBindings: function TabsComponent_HostBindings(rf, ctx) { if (rf & 2) {
434
457
  i0.ɵɵattribute("icon-position", ctx.iconposition);
435
- } }, exportAs: ["wmTabs"], features: [i0.ɵɵProvidersFeature([
458
+ } }, exportAs: ["wmTabs"], standalone: true, features: [i0.ɵɵProvidersFeature([
436
459
  provideAsWidgetRef(TabsComponent)
437
- ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, ngContentSelectors: _c2, decls: 4, vars: 7, consts: [["role", "tablist", 1, "nav", "nav-tabs", 3, "ngClass"], ["class", "tab-header", "role", "presentation", 3, "ngClass", "hidden", 4, "ngFor", "ngForOf"], ["class", "tab-content", 3, "ngClass", 4, "ngIf"], ["role", "presentation", 1, "tab-header", 3, "ngClass", "hidden"], ["href", "javascript:void(0);", "role", "tab", 1, "tab-heading", 3, "click", "keydown", "tabindex"], [3, "ngClass", 4, "ngIf"], [3, "textContent"], [3, "class", "textContent", 4, "ngIf"], [3, "ngClass"], [1, "tab-content", 3, "ngClass"], [4, "ngIf"]], template: function TabsComponent_Template(rf, ctx) { if (rf & 1) {
460
+ ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], attrs: _c0, ngContentSelectors: _c2, decls: 5, vars: 6, consts: [["role", "tablist", 1, "nav", "nav-tabs", 3, "ngClass"], ["role", "presentation", 1, "tab-header", 3, "ngClass", "hidden"], [1, "tab-content", 3, "ngClass"], ["href", "javascript:void(0);", "role", "tab", 1, "tab-heading", 3, "click", "keydown", "tabindex"], [3, "ngClass"], [3, "textContent"], [3, "class", "textContent"]], template: function TabsComponent_Template(rf, ctx) { if (rf & 1) {
438
461
  i0.ɵɵprojectionDef(_c1);
439
462
  i0.ɵɵelementStart(0, "ul", 0);
440
- i0.ɵɵtemplate(1, TabsComponent_li_1_Template, 5, 14, "li", 1);
463
+ i0.ɵɵrepeaterCreate(1, TabsComponent_For_2_Template, 5, 14, "li", 1, i0.ɵɵrepeaterTrackByIdentity);
441
464
  i0.ɵɵelementEnd();
442
- i0.ɵɵtemplate(2, TabsComponent_div_2_Template, 2, 4, "div", 2)(3, TabsComponent_div_3_Template, 3, 5, "div", 2);
465
+ i0.ɵɵtemplate(3, TabsComponent_Conditional_3_Template, 2, 4, "div", 2)(4, TabsComponent_Conditional_4_Template, 3, 5, "div", 2);
443
466
  } if (rf & 2) {
444
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(4, _c3, ctx.vertical, ctx.justified));
445
- i0.ɵɵadvance();
446
- i0.ɵɵproperty("ngForOf", ctx.panes);
467
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(3, _c3, ctx.vertical, ctx.justified));
447
468
  i0.ɵɵadvance();
448
- i0.ɵɵproperty("ngIf", ctx.type !== "dynamic");
469
+ i0.ɵɵrepeater(ctx.panes);
470
+ i0.ɵɵadvance(2);
471
+ i0.ɵɵconditional(ctx.type !== "dynamic" ? 3 : -1);
449
472
  i0.ɵɵadvance();
450
- i0.ɵɵproperty("ngIf", ctx.type === "dynamic");
451
- } }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i3.TextContentDirective], encapsulation: 2 }); }
473
+ i0.ɵɵconditional(ctx.type === "dynamic" ? 4 : -1);
474
+ } }, dependencies: [CommonModule, i2.NgClass, WmComponentsModule, i3.TextContentDirective], encapsulation: 2 }); }
452
475
  }
453
476
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TabsComponent, [{
454
477
  type: Component,
455
- args: [{ selector: 'div[wmTabs]', exportAs: 'wmTabs', providers: [
478
+ args: [{ standalone: true, imports: [CommonModule, WmComponentsModule], selector: 'div[wmTabs]', exportAs: 'wmTabs', providers: [
456
479
  provideAsWidgetRef(TabsComponent)
457
- ], template: "<ul class=\"nav nav-tabs\" [ngClass]=\"{'nav-stacked': vertical, 'nav-justified': justified}\" role=\"tablist\">\n <li class=\"tab-header\" *ngFor=\"let pane of panes; let i=index;\" [attr.data-paneid]=\"pane.widgetId\" [ngClass]=\"{'active': pane.isActive, 'disabled': pane.disabled}\"\n [hidden]=\"!pane.show\" role=\"presentation\">\n <a [attr.aria-label]=\"pane.badgevalue ? pane.title + ' ' + pane.badgevalue : pane.title\"\n [attr.icon-position]=\"iconposition\" \n [attr.title]=\"pane.title\"\n [tabindex]=\"pane.isActive ? '0' : '-1'\"\n class=\"tab-heading\" href=\"javascript:void(0);\"\n [attr.aria-selected]=\"pane.isActive\" role=\"tab\" (click)=\"pane.select($event); pane.tabpaneHeaderClick($event, i);\" (keydown)=\"onkeydown($event)\">\n <i [ngClass]=\"['app-icon', pane.paneicon]\" *ngIf=\"pane.paneicon\"></i>\n <span [textContent]=\"pane.title\"></span>\n <span *ngIf=\"pane.badgevalue\" class=\"label label-{{pane.badgetype}}\" [textContent]=\"pane.badgevalue\"></span>\n </a>\n </li>\n</ul>\n<div class=\"tab-content\" *ngIf=\"type !== 'dynamic'\" [ngClass]=\"{'tab-stacked': vertical, 'tab-justified': justified}\">\n <ng-content ngProjectAs=\"div[wmTabPane]\"></ng-content>\n</div>\n<div class=\"tab-content\" *ngIf=\"type === 'dynamic'\" [ngClass]=\"{'tab-stacked': vertical, 'tab-justified': justified}\">\n <div *ngIf=\"fieldDefs && !fieldDefs.length\">{{nodatamessage}}</div>\n <ng-content select=\"div[wmRepeatTemplate]\"></ng-content>\n</div>\n" }]
480
+ ], template: "<ul class=\"nav nav-tabs\" [ngClass]=\"{'nav-stacked': vertical, 'nav-justified': justified}\" role=\"tablist\">\n @for (pane of panes; track pane; let i = $index) {\n <li class=\"tab-header\" [attr.data-paneid]=\"pane.widgetId\" [ngClass]=\"{'active': pane.isActive, 'disabled': pane.disabled}\"\n [hidden]=\"!pane.show\" role=\"presentation\">\n <a [attr.aria-label]=\"pane.badgevalue ? pane.title + ' ' + pane.badgevalue : pane.title\"\n [attr.icon-position]=\"iconposition\"\n [attr.title]=\"pane.title\"\n [tabindex]=\"pane.isActive ? '0' : '-1'\"\n class=\"tab-heading\" href=\"javascript:void(0);\"\n [attr.aria-selected]=\"pane.isActive\" role=\"tab\" (click)=\"pane.select($event); pane.tabpaneHeaderClick($event, i);\" (keydown)=\"onkeydown($event)\">\n @if (pane.paneicon) {\n <i [ngClass]=\"['app-icon', pane.paneicon]\"></i>\n }\n <span [textContent]=\"pane.title\"></span>\n @if (pane.badgevalue) {\n <span class=\"label label-{{pane.badgetype}}\" [textContent]=\"pane.badgevalue\"></span>\n }\n </a>\n </li>\n }\n</ul>\n@if (type !== 'dynamic') {\n <div class=\"tab-content\" [ngClass]=\"{'tab-stacked': vertical, 'tab-justified': justified}\">\n <ng-content ngProjectAs=\"div[wmTabPane]\"></ng-content>\n </div>\n}\n@if (type === 'dynamic') {\n <div class=\"tab-content\" [ngClass]=\"{'tab-stacked': vertical, 'tab-justified': justified}\">\n @if (fieldDefs && !fieldDefs.length) {\n <div>{{nodatamessage}}</div>\n }\n <ng-content select=\"div[wmRepeatTemplate]\"></ng-content>\n </div>\n}\n" }]
458
481
  }], () => [{ type: i0.Injector }, { type: i1.DynamicComponentRefProvider }, { type: undefined, decorators: [{
459
482
  type: Attribute,
460
483
  args: ['transition']
@@ -473,5 +496,5 @@ export class TabsComponent extends StylableComponent {
473
496
  type: ContentChildren,
474
497
  args: [TabPaneComponent]
475
498
  }] }); })();
476
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TabsComponent, { className: "TabsComponent", filePath: "tabs.component.ts", lineNumber: 51 }); })();
477
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvY29udGFpbmVycy90YWJzL3NyYy90YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9jb250YWluZXJzL3RhYnMvc3JjL3RhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILFNBQVMsRUFDVCxTQUFTLEVBQ1QsZUFBZSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQ3BDLFFBQVEsRUFFUixRQUFRLEVBQ1IsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDSCxRQUFRLEVBQ1IsVUFBVSxFQUNWLDJCQUEyQixFQUMzQixJQUFJLEVBQ0osV0FBVyxFQUNYLGdCQUFnQixFQUNuQixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQ0gsaUJBQWlCLEVBRWpCLGtCQUFrQixFQUNsQixNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLGVBQWUsRUFDbEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFDLE1BQU0sV0FBVyxDQUFDOzs7Ozs7Ozs7Ozs7O0lDdkJuRSx1QkFBcUU7OztJQUFsRSxzRUFBdUM7OztJQUUxQywwQkFBNEc7OztJQUE5RSxnRUFBc0M7SUFBQyxnREFBK0I7Ozs7SUFSNUcsQUFGSiw2QkFDOEMsV0FNMEc7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UnpCLFNBQVM7MkJBQ0ksYUFBYSxZQUViLFFBQVEsYUFDUDtvQkFDUCxrQkFBa0IsZUFBZTtpQkFDcEM7O3NCQWlDSSxTQUFTO3VCQUFDLFlBQVk7O3NCQUN0QixTQUFTO3VCQUFDLGNBQWM7O3NCQUV4QixNQUFNO3VCQUFDLGtCQUFrQjs7c0JBQUcsUUFBUTtxQkFWTixZQUFZO2tCQUE5QyxXQUFXO21CQUFDLG9CQUFvQjtZQUVFLEtBQUs7a0JBQXZDLGVBQWU7bUJBQUMsZ0JBQWdCOztrRkExQnhCLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBBdHRyaWJ1dGUsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbiwgSG9zdEJpbmRpbmcsIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgUXVlcnlMaXN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICAgIGFkZENsYXNzLFxuICAgIGFwcGVuZE5vZGUsXG4gICAgRHluYW1pY0NvbXBvbmVudFJlZlByb3ZpZGVyLFxuICAgIG5vb3AsXG4gICAgcmVtb3ZlQ2xhc3MsXG4gICAgU3RhdGVQZXJzaXN0ZW5jZVxufSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQge1xuICAgIEFQUExZX1NUWUxFU19UWVBFLFxuICAgIElXaWRnZXRDb25maWcsXG4gICAgcHJvdmlkZUFzV2lkZ2V0UmVmLFxuICAgIHN0eWxlcixcbiAgICBTdHlsYWJsZUNvbXBvbmVudCxcbiAgICBjcmVhdGVBcnJheUZyb21cbn0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cbmltcG9ydCB7IFRhYnNBbmltYXRvciB9IGZyb20gJy4vdGFicy5hbmltYXRvcic7XG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi90YWJzLnByb3BzJztcbmltcG9ydCB7IFRhYlBhbmVDb21wb25lbnQgfSBmcm9tICcuL3RhYi1wYW5lL3RhYi1wYW5lLmNvbXBvbmVudCc7XG5pbXBvcnQge2ZpbmQsIGZpbmRJbmRleCwgZm9yRWFjaCwgZ2V0LCBpbmRleE9mLCBpc0FycmF5LCBpc0VtcHR5fSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmRlY2xhcmUgY29uc3QgJDtcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLXRhYnMgY2xlYXJmaXgnO1xuY29uc3QgV0lER0VUX0NPTkZJRzogSVdpZGdldENvbmZpZyA9IHtcbiAgICB3aWRnZXRUeXBlOiAnd20tdGFicycsXG4gICAgaG9zdENsYXNzOiBERUZBVUxUX0NMU1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkaXZbd21UYWJzXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhYnMuY29tcG9uZW50Lmh0bWwnLFxuICAgIGV4cG9ydEFzOiAnd21UYWJzJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKFRhYnNDb21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJzQ29tcG9uZW50IGV4dGVuZHMgU3R5bGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBwdWJsaWMgZGVmYXVsdHBhbmVpbmRleDogbnVtYmVyO1xuICAgIHB1YmxpYyB0cmFuc2l0aW9uOiBzdHJpbmc7XG4gICAgcHVibGljIHRhYnNwb3NpdGlvbjogc3RyaW5nO1xuICAgIHB1YmxpYyBzdGF0ZWhhbmRsZXI6IGFueTtcbiAgICBwcml2YXRlIHN0YXRlUGVyc2lzdGVuY2U6IFN0YXRlUGVyc2lzdGVuY2U7XG5cbiAgICBwdWJsaWMgdmVydGljYWw6IGJvb2xlYW47XG4gICAgcHVibGljIGp1c3RpZmllZDogYm9vbGVhbjtcbiAgICBwcml2YXRlIGFjdGl2ZVRhYjogVGFiUGFuZUNvbXBvbmVudDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb21pc2VSZXNvbHZlckZuOiBGdW5jdGlvbjtcbiAgICBwcml2YXRlIHRhYnNBbmltYXRvcjogVGFic0FuaW1hdG9yO1xuICAgIHByaXZhdGUgX29sZFBhbmVJbmRleDogbnVtYmVyO1xuICAgIHByaXZhdGUgaXNQYWdlTG9hZENhbGw6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBkeW5hbWljQ29tcG9uZW50UHJvdmlkZXI7XG4gICAgcHJpdmF0ZSBfZHluYW1pY0NvbnRleHQ7XG4gICAgcHJpdmF0ZSBkeW5hbWljUGFuZUluZGV4O1xuICAgIHB1YmxpYyBkeW5hbWljVGFicztcbiAgICBwdWJsaWMgZmllbGREZWZzO1xuICAgIHB1YmxpYyB0eXBlO1xuICAgIHB1YmxpYyBub2RhdGFtZXNzYWdlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmljb24tcG9zaXRpb24nKSBpY29ucG9zaXRpb246IHN0cmluZyA9ICcnO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihUYWJQYW5lQ29tcG9uZW50KSBwYW5lczogUXVlcnlMaXN0PFRhYlBhbmVDb21wb25lbnQ+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluajogSW5qZWN0b3IsXG4gICAgICAgIGR5bmFtaWNDb21wb25lbnRQcm92aWRlcjogRHluYW1pY0NvbXBvbmVudFJlZlByb3ZpZGVyLFxuICAgICAgICBAQXR0cmlidXRlKCd0cmFuc2l0aW9uJykgX3RyYW5zaXRpb246IHN0cmluZyxcbiAgICAgICAgQEF0dHJpYnV0ZSgndGFic3Bvc2l0aW9uJykgX3RhYnNQb3NpdGlvbjogc3RyaW5nLFxuICAgICAgICBzdGF0ZVBlcnNpc3RlbmNlOiBTdGF0ZVBlcnNpc3RlbmNlLFxuICAgICAgICBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnlcbiAgICApIHtcbiAgICAgICAgLy8gaGFuZGxlIHRvIHRoZSBwcm9taXNlIHJlc29sdmVyXG4gICAgICAgIGxldCByZXNvbHZlRm46IEZ1bmN0aW9uID0gbm9vcDtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQsIG5ldyBQcm9taXNlKHJlcyA9PiByZXNvbHZlRm4gPSByZXMpKTtcblxuICAgICAgICB0aGlzLnRyYW5zaXRpb24gPSBfdHJhbnNpdGlvbjtcbiAgICAgICAgdGhpcy50YWJzcG9zaXRpb24gPSBfdGFic1Bvc2l0aW9uO1xuICAgICAgICB0aGlzLnN0YXRlUGVyc2lzdGVuY2UgPSBzdGF0ZVBlcnNpc3RlbmNlO1xuICAgICAgICB0aGlzLmR5bmFtaWNDb21wb25lbnRQcm92aWRlciA9IGR5bmFtaWNDb21wb25lbnRQcm92aWRlcjtcbiAgICAgICAgdGhpcy5keW5hbWljVGFicyA9IFtdO1xuICAgICAgICB0aGlzLmR5bmFtaWNQYW5lSW5kZXggPSAwO1xuXG4gICAgICAgIHRoaXMucHJvbWlzZVJlc29sdmVyRm4gPSByZXNvbHZlRm47XG5cbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcywgQVBQTFlfU1RZTEVTX1RZUEUuQ09OVEFJTkVSKTtcblxuICAgIH1cblxuICAgIGFuaW1hdGVJbiAoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgdGFiSGVhZGVyID0gJChlbGVtZW50KTtcbiAgICAgICAgLy8gd2hlbiB0aGUgYW5pbWF0aW9uIGlzIG5vdCBwcmVzZW50IHRvZ2dsZSB0aGUgYWN0aXZlIGNsYXNzLlxuICAgICAgICB0YWJIZWFkZXIuc2libGluZ3MoJy5hY3RpdmUnKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgIHRhYkhlYWRlci5hZGRDbGFzcygnYWN0aXZlJyk7XG5cbiAgICAgICAgY29uc3QgdWwgPSB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigndWwubmF2Lm5hdi10YWJzJyk7XG5cbiAgICAgICAgLy8gbW92ZSB0aGUgdGFiaGVhZGVyIGludG8gdGhlIHZpZXdwb3J0XG4gICAgICAgIGNvbnN0ICRwcmV2SGVhZGVyRWxlID0gdGFiSGVhZGVyLnByZXYoKTtcbiAgICAgICAgaWYgKCRwcmV2SGVhZGVyRWxlLmxlbmd0aCkge1xuICAgICAgICAgICAgdWwuc2Nyb2xsTGVmdCA9ICRwcmV2SGVhZGVyRWxlWzBdLm9mZnNldExlZnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB1bC5zY3JvbGxMZWZ0ID0gMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gcmVnaXN0ZXIgdGhlIGR5bmFtaWMgcGFuZXMuXG4gICAgICogQWZ0ZXIgYWxsIHBhbmVzIGFyZSBpbml0aWFsemVkLCB1cGRhdGUgdGhlIHF1ZXJ5bGlzdCBtYW51YWxseSBiYXNlZCBvbiBpbmRleC5cbiAgICAgKiBAcGFyYW0gcGFuZVJlZiAtIHJlZnJlbmNlIG9mIHRoZSB0YWJwYW5lXG4gICAgICovXG4gICAgcHVibGljIHJlZ2lzdGVyRHluYW1pY1RhYihwYW5lUmVmKSB7XG4gICAgICAgIHRoaXMuZHluYW1pY1RhYnMucHVzaChwYW5lUmVmKTtcbiAgICAgICAgY29uc3QgaXNMYXN0UGFuZSA9ICB0aGlzLmR5bmFtaWNUYWJzLmxlbmd0aCA9PT0gdGhpcy5keW5hbWljUGFuZUluZGV4O1xuICAgICAgICBpZiAoaXNMYXN0UGFuZSkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmR5bmFtaWNUYWJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3UGFuZVJlZiA9IGZpbmQodGhpcy5keW5hbWljVGFicywgcGFuZSA9PiBwYW5lLmR5bmFtaWNQYW5lSW5kZXggPT09IGkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzUGFuZUFscmVhZHlFeGlzdCA9IGZpbmQodGhpcy5wYW5lcy50b0FycmF5KCksIG5ld1BhbmVSZWYpO1xuICAgICAgICAgICAgICAgIGlmICghaXNQYW5lQWxyZWFkeUV4aXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFuZXMucmVzZXQoWy4uLnRoaXMucGFuZXMudG9BcnJheSgpLCBuZXdQYW5lUmVmXSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXdQYW5lUmVmLmFjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFuZVJlZi5zZWxlY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDIwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIHRvIGFkZCB0aGUgdGFicGFuZSBkeW5hbWljYWxseVxuICAgICAqIEBwYXJhbSB0YWJwYW5lcyAtIGxpc3Qgb2YgdGFicGFuZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkUGFuZSh0YWJwYW5lcykge1xuICAgICAgICBpZiAoIWlzQXJyYXkodGFicGFuZXMpKSB7XG4gICAgICAgICAgICB0YWJwYW5lcyA9IFt0YWJwYW5lc107XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFuZU5hbWVzTGlzdCA9IFtdO1xuICAgICAgICBmb3JFYWNoKHRhYnBhbmVzLCAocGFuZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzUGFuZUFscmVhZHlDcmVhdGVkID0gZmluZCh0aGlzLnBhbmVzLnRvQXJyYXkoKSwge25hbWU6IHBhbmUubmFtZX0pO1xuICAgICAgICAgICAgY29uc3QgaXNQYW5lTmFtZUV4aXN0ID0gaW5kZXhPZihwYW5lTmFtZXNMaXN0LCBwYW5lLm5hbWUpO1xuICAgICAgICAgICAgLy8gSWYgdXNlciB0cmllcyB0byBhZGQgdGFicGFuZSB3aXRoIHRoZSBzYW1lIG5hbWUgd2hpY2ggaXMgYWxyZWFkeSBleGlzdHMgdGhlbiBkbyBub3QgY3JlYXRlIHRoZSBwYW5lXG4gICAgICAgICAgICBpZiAoaXNQYW5lQWxyZWFkeUNyZWF0ZWQgfHwgaXNQYW5lTmFtZUV4aXN0ID4gMCkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVGhlIHRhYiBwYW5lIHdpdGggbmFtZSAke3BhbmUubmFtZX0gYWxyZWFkeSBleGlzdHNgKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBwYXJhbU1hcmt1cCA9ICcnO1xuICAgICAgICAgICAgbGV0IHByb3BzVG1wbCA9ICcnO1xuICAgICAgICAgICAgdGhpcy5keW5hbWljUGFuZUluZGV4Kys7XG4gICAgICAgICAgICBjb25zdCBuYW1lID0gcGFuZS5uYW1lID8gcGFuZS5uYW1lIDogYHRhYnBhbmUke3RoaXMucGFuZXMudG9BcnJheSgpLmxlbmd0aCArIChpbmRleCArIDEpfWA7XG4gICAgICAgICAgICBwYW5lTmFtZXNMaXN0LnB1c2gobmFtZSk7XG4gICAgICAgICAgICBjb25zdCBwYXJ0aWFsUGFyYW1zID0gZ2V0KHBhbmUsICdwYXJhbXMnKTtcblxuICAgICAgICAgICAgZm9yRWFjaChwYW5lLCAodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChrZXkgIT09ICdwYXJhbXMnKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb3BzVG1wbCA9IGAke3Byb3BzVG1wbH0gJHtrZXl9PVwiJHt2YWx1ZX1cImA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGZvckVhY2gocGFydGlhbFBhcmFtcywgKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBwYXJhbU1hcmt1cCA9IGAke3BhcmFtTWFya3VwfSA8d20tcGFyYW0gbmFtZT1cIiR7a2V5fVwiIHZhbHVlPVwiJHt2YWx1ZX1cIj48L3dtLXBhcmFtPmA7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IG1hcmt1cCA9IGA8d20tdGFicGFuZSBkeW5hbWljUGFuZUluZGV4PVwiJHt0aGlzLmR5bmFtaWNQYW5lSW5kZXggLSAxfVwiIGlzZHluYW1pYz1cInRydWVcIiBuYW1lPVwiJHtuYW1lfVwiICR7cHJvcHNUbXBsfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3BhcmFtTWFya3VwfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC93bS10YWJwYW5lPmA7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5fZHluYW1pY0NvbnRleHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9keW5hbWljQ29udGV4dCA9IE9iamVjdC5jcmVhdGUodGhpcy52aWV3UGFyZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9keW5hbWljQ29udGV4dFt0aGlzLmdldEF0dHIoJ3dtVGFiJyldID0gdGhpcztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5keW5hbWljQ29tcG9uZW50UHJvdmlkZXIuYWRkQ29tcG9uZW50KHRoaXMuZ2V0TmF0aXZlRWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJy50YWItY29udGVudCcpLCBtYXJrdXAsIHRoaXMuX2R5bmFtaWNDb250ZXh0LCB7aW5qOiB0aGlzLmluan0pO1xuXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcGFuZU5hbWVzTGlzdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyB0byByZW1vdmUgdGhlIHRhYnBhbmVcbiAgICAgKiBAcGFyYW0gcGFuZUluZGV4IC0gaW5kZXggb2YgdGhlIHBhbmVcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVtb3ZlUGFuZShwYW5lTmFtZSkge1xuICAgICAgICBjb25zdCBwYW5lUmVmID0gdGhpcy5nZXRQYW5lUmVmQnlOYW1lKHBhbmVOYW1lKTtcbiAgICAgICAgaWYgKHBhbmVSZWYpIHtcbiAgICAgICAgICAgIHBhbmVSZWYucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUYWJQYW5lIGNoaWxkcmVuIGNvbXBvbmVudHMgaW52b2tlIHRoaXMgbWV0aG9kIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIHBhcmVudFxuICAgICAqIGlmIHRoZSBldnQgYXJndW1lbnQgaXMgZGVmaW5lZCBvbi1jaGFuZ2UgY2FsbGJhY2sgd2lsbCBiZSBpbnZva2VkLlxuICAgICAqL1xuICAgIHB1YmxpYyBub3RpZnlDaGFuZ2UocGFuZVJlZjogVGFiUGFuZUNvbXBvbmVudCwgZXZ0OiBFdmVudCwgaXNLZXlCb2FyZEV2ZW50OiBib29sZWFuKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1NlbGVjdGFibGVUYWIocGFuZVJlZikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJFbGVtZW50O1xuICAgICAgICAvLyBpbnZva2UgZGVzZWxlY3QgZXZlbnQgY2FsbGJhY2sgb24gdGhlIHByZXNldCBhY3RpdmUgdGFiXG4gICAgICAgIGlmICghaXNFbXB0eSh0aGlzLmFjdGl2ZVRhYikpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiLmRlc2VsZWN0KCk7XG4gICAgICAgIH1cblxuXG4gICAgICAgIHRoaXMuYWN0aXZlVGFiID0gcGFuZVJlZi5nZXRXaWRnZXQoKTtcbiAgICAgICAgY29uc3QgbmV3UGFuZUluZGV4ID0gdGhpcy5nZXRQYW5lSW5kZXhCeVJlZihwYW5lUmVmKTtcbiAgICAgICAgY29uc3QgbW9kZSA9IHRoaXMuc3RhdGVQZXJzaXN0ZW5jZS5jb21wdXRlTW9kZSh0aGlzLnN0YXRlaGFuZGxlcik7XG4gICAgICAgIGlmICghdGhpcy5pc1BhZ2VMb2FkQ2FsbCAmJiBtb2RlICYmIG1vZGUudG9Mb3dlckNhc2UoKSAhPT0gJ25vbmUnKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlUGVyc2lzdGVuY2Uuc2V0V2lkZ2V0U3RhdGUodGhpcywgdGhpcy5hY3RpdmVUYWIubmFtZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRwYW5laW5kZXggPSB0aGlzLmdldFBhbmVJbmRleEJ5UmVmKHBhbmVSZWYpO1xuICAgICAgICAgICAgdGhpcy5pc1BhZ2VMb2FkQ2FsbCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaW52b2tlIHNlbGVjdCBjYWxsYmFjayBvbiB0aGUgc2VsZWN0ZWQgdGFiXG4gICAgICAgIHBhbmVSZWYuaW52b2tlT25TZWxlY3RDYWxsYmFjayhldnQpO1xuXG4gICAgICAgIC8vIGludm9rZSBjaGFuZ2UgY2FsbGJhY2sgaWYgdGhlIGV2dCBpcyBwcmVzZW50LCBzZWxlY3QgYSB0YWIgcHJvZ3JhbW1hdGljYWxseSB3aWxsIG5vdCBoYXZlIHRoZSBldmVudFxuICAgICAgICBpZiAoZXZ0KSB7XG4gICAgICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2NoYW5nZScsIHtcbiAgICAgICAgICAgICAgICAkZXZlbnQ6IGV2dCxcbiAgICAgICAgICAgICAgICBuZXdQYW5lSW5kZXg6IG5ld1BhbmVJbmRleCxcbiAgICAgICAgICAgICAgICBvbGRQYW5lSW5kZXg6IHRoaXMuX29sZFBhbmVJbmRleCB8fCAwXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9vbGRQYW5lSW5kZXggPSBuZXdQYW5lSW5kZXg7XG5cbiAgICAgICAgaWYgKGV2dCkge1xuICAgICAgICAgICAgaGVhZGVyRWxlbWVudCA9ICQoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdCgnbGkudGFiLWhlYWRlcicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZXZ0IHx8ICFoZWFkZXJFbGVtZW50IHx8ICFoZWFkZXJFbGVtZW50Lmxlbmd0aCkge1xuICAgICAgICAgICAgaGVhZGVyRWxlbWVudCA9IHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGBsaVtkYXRhLXBhbmVpZD0ke3BhbmVSZWYud2lkZ2V0SWR9XWApO1xuICAgICAgICAgICAgY29uc3QgaW5zaWRlVGFicyA9ICEhJChoZWFkZXJFbGVtZW50KS5jbG9zZXN0KCcuYXBwLXRhYnMnKVxuICAgICAgICAgICAgICAgIC5wYXJlbnQoKS5jbG9zZXN0KCcuYXBwLXRhYnMnKS5sZW5ndGg7XG4gICAgICAgICAgICBpZiAoIWluc2lkZVRhYnMgJiYgaXNLZXlCb2FyZEV2ZW50KSB7XG4gICAgICAgICAgICAgICAgJChoZWFkZXJFbGVtZW50KS5jaGlsZHJlbigpLmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hbmltYXRlSW4oaGVhZGVyRWxlbWVudCk7XG5cbiAgICAgICAgLy8gdGhpcy5zZXRUYWJzTGVmdFBvc2l0aW9uKHRoaXMuZ2V0UGFuZUluZGV4QnlSZWYodGhpcy5hY3RpdmVUYWIpLCB0aGlzLnBhbmVzLmxlbmd0aCk7XG4gICAgICAgIGlmICh0aGlzLmNhblNsaWRlKCkpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy50YWJzQW5pbWF0b3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYnNBbmltYXRvciA9IG5ldyBUYWJzQW5pbWF0b3IodGhpcyk7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJzQW5pbWF0b3Iuc2V0R2VzdHVyZXNFbmFibGVkKHRoaXMuY2FuU2xpZGUoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnRhYnNBbmltYXRvci50cmFuc2l0aW9uVGFiSW50b1ZpZXcoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnb1RvVGFiKHRhYkluZGV4KSB7XG4gICAgICAgIGlmICh0aGlzLmlzVmFsaWRQYW5lSW5kZXgodGFiSW5kZXggLSAxKSkge1xuICAgICAgICAgICAgY29uc3QgdGFiID0gdGhpcy5nZXRQYW5lUmVmQnlJbmRleCh0YWJJbmRleCAtIDEpO1xuICAgICAgICAgICAgdGFiLnNlbGVjdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQYW5lSW5kZXhCeVJlZihwYW5lUmVmOiBUYWJQYW5lQ29tcG9uZW50KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFuZXMudG9BcnJheSgpLmluZGV4T2YocGFuZVJlZik7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJucyB0aGUgYWN0aXZlIHRhYiBpbmRleCBmcm9tIHRhYnMuXG4gICAgcHVibGljIGdldEFjdGl2ZVRhYkluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBmaW5kSW5kZXgodGhpcy5wYW5lcy50b0FycmF5KCksIHtpc0FjdGl2ZTogdHJ1ZX0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNWYWxpZFBhbmVJbmRleChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRoaXMucGFuZXMubGVuZ3RoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFBhbmVSZWZCeUluZGV4KGluZGV4OiBudW1iZXIpOiBUYWJQYW5lQ29tcG9uZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFuZXMudG9BcnJheSgpW2luZGV4XTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFBhbmVSZWZCeU5hbWUobmFtZTogc3RyaW5nKTogVGFiUGFuZUNvbXBvbmVudCB7XG4gICAgICAgIHJldHVybiBmaW5kKHRoaXMucGFuZXMudG9BcnJheSgpLCB7bmFtZTogbmFtZX0pO1xuICAgIH1cblxuICAgIC8vIHJldHVybnMgZmFsc2UgaWYgdGhlIHBhbmUgaXMgaGlkZGVuIG9yIGRpc2FibGVkXG4gICAgcHJpdmF0ZSBpc1NlbGVjdGFibGVUYWIocGFuZVJlZjogVGFiUGFuZUNvbXBvbmVudCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gcGFuZVJlZi5zaG93ICYmICFwYW5lUmVmLmRpc2FibGVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FuU2xpZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zaXRpb24gPT09ICdzbGlkZScgJiYgIXRoaXMudmVydGljYWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTZWxlY3RhYmxlVGFiQWZ0ZXJJbmRleChpbmRleDogbnVtYmVyKTogVGFiUGFuZUNvbXBvbmVudCB7XG4gICAgICAgIGZvciAobGV0IGkgPSBpbmRleCArIDE7IGkgPCB0aGlzLnBhbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBwYW5lID0gdGhpcy5nZXRQYW5lUmVmQnlJbmRleChpKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzU2VsZWN0YWJsZVRhYihwYW5lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwYW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRleCA9PT0gdGhpcy5wYW5lcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICBjb25zdCBwYW5lID0gdGhpcy5nZXRQYW5lUmVmQnlJbmRleCgwKTtcbiAgICAgICAgICAgICBpZiAodGhpcy5pc1NlbGVjdGFibGVUYWIocGFuZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFuZTtcbiAgICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNlbGVjdGFibGVUYWJCZWZvcmVJbmRleChpbmRleDogbnVtYmVyKTogVGFiUGFuZUNvbXBvbmVudCB7XG4gICAgICAgIGZvciAobGV0IGkgPSBpbmRleCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCBwYW5lID0gdGhpcy5nZXRQYW5lUmVmQnlJbmRleChpKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzU2VsZWN0YWJsZVRhYihwYW5lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwYW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgcGFuZSA9IHRoaXMuZ2V0UGFuZVJlZkJ5SW5kZXgodGhpcy5wYW5lcy5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzU2VsZWN0YWJsZVRhYihwYW5lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwYW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gc2VsZWN0IG5leHQgdGFiIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IGFjdGl2ZSB0YWJcbiAgICBwdWJsaWMgbmV4dCgkZXZlbnQ/OiBFdmVudCwgaXNLZXlCb2FyZEV2ZW50PzogYm9vbGVhbikge1xuICAgICAgICBjb25zdCBwYW5lID0gdGhpcy5nZXRTZWxlY3RhYmxlVGFiQWZ0ZXJJbmRleCh0aGlzLmdldEFjdGl2ZVRhYkluZGV4KCkpO1xuICAgICAgICBpZiAocGFuZSkge1xuICAgICAgICAgICAgcGFuZS5zZWxlY3QoJGV2ZW50LCBpc0tleUJvYXJkRXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gc2VsZWN0IHByZXYgdGFiIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IGFjdGl2ZSB0YWJcbiAgICBwdWJsaWMgcHJldigkZXZlbnQ/OiBFdmVudCwgaXNLZXlCb2FyZEV2ZW50PzogYm9vbGVhbikge1xuICAgICAgICBjb25zdCBwYW5lID0gdGhpcy5nZXRTZWxlY3RhYmxlVGFiQmVmb3JlSW5kZXgodGhpcy5nZXRBY3RpdmVUYWJJbmRleCgpKTtcbiAgICAgICAgaWYgKHBhbmUpIHtcbiAgICAgICAgICAgIHBhbmUuc2VsZWN0KCRldmVudCwgaXNLZXlCb2FyZEV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHRoaXMgbWV0aG9kIHdpbGwgYmUgaW52b2tlZCBkdXJpbmcgdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBjb21wb25lbnQgYW5kIG9uIGRlZmF1bHRwYW5laW5kZXggcHJvcGVydHkgY2hhbmdlLFxuICAgICAqIGlmIHRoZSBwcm92aWRlZCBkZWZhdWx0cGFuZWluZGV4IGlzIG5vdCB2YWxpZCwgZmluZCB0aGUgZmlyc3QgcGFuZSBpbmRleCB3aGljaCBjYW4gYmUgc2hvd24gYW5kIHNlbGVjdCBpdFxuICAgICAqL1xuICAgIHByaXZhdGUgc2VsZWN0RGVmYXVsdFBhbmVCeUluZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWRQYW5lSW5kZXgoaW5kZXgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcGFuZVJlZiA9IHRoaXMuZ2V0UGFuZVJlZkJ5SW5kZXgoaW5kZXgpO1xuICAgICAgICBpZiAoIXRoaXMuaXNTZWxlY3RhYmxlVGFiKHBhbmVSZWYpKSB7XG4gICAgICAgICAgICBwYW5lUmVmID0gdGhpcy5nZXRTZWxlY3RhYmxlVGFiQWZ0ZXJJbmRleCgwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFuZVJlZikge1xuICAgICAgICAgICAgcGFuZVJlZi5zZWxlY3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHVwZGF0ZSB0aGUgcG9zdGlvbiBvZiB0YWIgaGVhZGVyXG4gICAgcHJpdmF0ZSBzZXRUYWJzUG9zaXRpb24oKSB7XG4gICAgICAgIGNvbnN0IHVsID0gdGhpcy5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdO1xuXG4gICAgICAgIHRoaXMudmVydGljYWwgPSAodGhpcy50YWJzcG9zaXRpb24gPT09ICdsZWZ0JyB8fCB0aGlzLnRhYnNwb3NpdGlvbiA9PT0gJ3JpZ2h0Jyk7XG5cbiAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnaW52ZXJ0ZWQnKTtcbiAgICAgICAgaWYgKHRoaXMudGFic3Bvc2l0aW9uID09PSAnYm90dG9tJyB8fCB0aGlzLnRhYnNwb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgYXBwZW5kTm9kZSh1bCBhcyBIVE1MRWxlbWVudCwgdGhpcy5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgIGFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ2ludmVydGVkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uRGF0YUNoYW5nZShuZXdWYWwpIHtcbiAgICAgICAgdGhpcy5maWVsZERlZnMgPSBjcmVhdGVBcnJheUZyb20obmV3VmFsKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNlbGVjdERlZmF1bHRQYW5lQnlJbmRleCh0aGlzLmRlZmF1bHRwYW5laW5kZXggfHwgMCkpO1xuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92KSB7XG5cbiAgICAgICAgaWYgKGtleSA9PT0gJ2RlZmF1bHRwYW5laW5kZXgnKSB7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRwYW5laW5kZXggPSBudjtcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdkYXRhc2V0Jykge1xuICAgICAgICAgICAgdGhpcy5vbkRhdGFDaGFuZ2UobnYpO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3N0YXRlaGFuZGxlcicpIHtcbiAgICAgICAgICAgIHRoaXMuaXNQYWdlTG9hZENhbGwgPSB0cnVlO1xuICAgICAgICAgICAgY29uc3Qgd2lkZ2V0U3RhdGUgPSB0aGlzLnN0YXRlUGVyc2lzdGVuY2UuZ2V0V2lkZ2V0U3RhdGUodGhpcyk7XG4gICAgICAgICAgICBpZiAobnYgIT09ICdub25lJyAmJiB3aWRnZXRTdGF0ZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhbmVUb1NlbGVjdDogYW55ID0gdGhpcy5wYW5lcy5maWx0ZXIoZnVuY3Rpb24ocGFuZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2lkZ2V0U3RhdGUgPT09IHBhbmUubmFtZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXBhbmVUb1NlbGVjdC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdUYWIgcGFuZSBuYW1lICcgKyB3aWRnZXRTdGF0ZSArICcgaW4gU3RhdGUgaXMgaW5jb3JyZWN0LiBGYWxsaW5nIGJhY2sgdG8gdGhlIGRlZmF1bHQgcGFuZScpO1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2VsZWN0RGVmYXVsdFBhbmVCeUluZGV4KHRoaXMuZGVmYXVsdHBhbmVpbmRleCB8fCAwKSwgMjApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRQYW5lSW5kZXhCeVJlZihwYW5lVG9TZWxlY3RbMF0pO1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2VsZWN0RGVmYXVsdFBhbmVCeUluZGV4KGluZGV4KSwgMjApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNlbGVjdERlZmF1bHRQYW5lQnlJbmRleCh0aGlzLmRlZmF1bHRwYW5laW5kZXggfHwgMCksIDIwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJUYWJzU2Nyb2xsKCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0ICR1bCA9IHRoaXMuJGVsZW1lbnQuZmluZCgnPiB1bCcpO1xuICAgICAgICAgICAgbGV0ICRsaVBvc2l0aW9uO1xuXG4gICAgICAgICAgICBjb25zdCAgJGxpID0gJHVsLmNoaWxkcmVuKCk7XG4gICAgICAgICAgICAkbGlQb3NpdGlvbiA9ICRsaS5sYXN0KCkucG9zaXRpb24oKTtcbiAgICAgICAgICAgIGlmICgkbGlQb3NpdGlvbiAmJiAoJGxpUG9zaXRpb24ubGVmdCA+ICR1bC53aWR0aCgpKSkge1xuICAgICAgICAgICAgICAgICR1bC5vbignbW91c2V3aGVlbCcsIChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxlZnQgPSAkdWxbMF0uc2Nyb2xsTGVmdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIF9kZWx0YSA9IC0xICogZS5vcmlnaW5hbEV2ZW50LndoZWVsRGVsdGE7XG4gICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgJHVsLmFuaW1hdGUoe3Njcm9sbExlZnQ6IGxlZnQgKyBfZGVsdGF9LCB7J2R1cmF0aW9uJzogMTB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG9ua2V5ZG93bihldmVudCkge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICAgICAgICAgIHRoaXMucHJldihudWxsLCB0cnVlKTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgICAgICAgICAgdGhpcy5uZXh0KG51bGwsIHRydWUpO1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnByb21pc2VSZXNvbHZlckZuKCk7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJDb250ZW50SW5pdCgpO1xuICAgICAgICB0aGlzLnNldFRhYnNQb3NpdGlvbigpO1xuICAgICAgICB0aGlzLnBhbmVzLmNoYW5nZXMuc3Vic2NyaWJlKCBzbGlkZXMgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMucGFuZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3REZWZhdWx0UGFuZUJ5SW5kZXgodGhpcy5kZWZhdWx0cGFuZWluZGV4IHx8IDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyVGFic1Njcm9sbCgpO1xuICAgIH1cbn1cbiIsIjx1bCBjbGFzcz1cIm5hdiBuYXYtdGFic1wiIFtuZ0NsYXNzXT1cInsnbmF2LXN0YWNrZWQnOiB2ZXJ0aWNhbCwgJ25hdi1qdXN0aWZpZWQnOiBqdXN0aWZpZWR9XCIgcm9sZT1cInRhYmxpc3RcIj5cbiAgICA8bGkgY2xhc3M9XCJ0YWItaGVhZGVyXCIgKm5nRm9yPVwibGV0IHBhbmUgb2YgcGFuZXM7IGxldCBpPWluZGV4O1wiIFthdHRyLmRhdGEtcGFuZWlkXT1cInBhbmUud2lkZ2V0SWRcIiBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IHBhbmUuaXNBY3RpdmUsICdkaXNhYmxlZCc6IHBhbmUuZGlzYWJsZWR9XCJcbiAgICAgICAgW2hpZGRlbl09XCIhcGFuZS5zaG93XCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICA8YSBbYXR0ci5hcmlhLWxhYmVsXT1cInBhbmUuYmFkZ2V2YWx1ZSA/IHBhbmUudGl0bGUgKyAnICcgKyBwYW5lLmJhZGdldmFsdWUgOiBwYW5lLnRpdGxlXCJcbiAgICAgICAgICAgW2F0dHIuaWNvbi1wb3NpdGlvbl09XCJpY29ucG9zaXRpb25cIiBcbiAgICAgICAgICAgW2F0dHIudGl0bGVdPVwicGFuZS50aXRsZVwiXG4gICAgICAgICAgIFt0YWJpbmRleF09XCJwYW5lLmlzQWN0aXZlID8gJzAnIDogJy0xJ1wiXG4gICAgICAgICAgIGNsYXNzPVwidGFiLWhlYWRpbmdcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiXG4gICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwicGFuZS5pc0FjdGl2ZVwiIHJvbGU9XCJ0YWJcIiAoY2xpY2spPVwicGFuZS5zZWxlY3QoJGV2ZW50KTsgcGFuZS50YWJwYW5lSGVhZGVyQ2xpY2soJGV2ZW50LCBpKTtcIiAoa2V5ZG93bik9XCJvbmtleWRvd24oJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cIlsnYXBwLWljb24nLCBwYW5lLnBhbmVpY29uXVwiICpuZ0lmPVwicGFuZS5wYW5laWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwicGFuZS50aXRsZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInBhbmUuYmFkZ2V2YWx1ZVwiIGNsYXNzPVwibGFiZWwgbGFiZWwte3twYW5lLmJhZGdldHlwZX19XCIgW3RleHRDb250ZW50XT1cInBhbmUuYmFkZ2V2YWx1ZVwiPjwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbGk+XG48L3VsPlxuPGRpdiBjbGFzcz1cInRhYi1jb250ZW50XCIgKm5nSWY9XCJ0eXBlICE9PSAnZHluYW1pYydcIiBbbmdDbGFzc109XCJ7J3RhYi1zdGFja2VkJzogdmVydGljYWwsICd0YWItanVzdGlmaWVkJzoganVzdGlmaWVkfVwiPlxuICAgIDxuZy1jb250ZW50IG5nUHJvamVjdEFzPVwiZGl2W3dtVGFiUGFuZV1cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJ0YWItY29udGVudFwiICpuZ0lmPVwidHlwZSA9PT0gJ2R5bmFtaWMnXCIgW25nQ2xhc3NdPVwieyd0YWItc3RhY2tlZCc6IHZlcnRpY2FsLCAndGFiLWp1c3RpZmllZCc6IGp1c3RpZmllZH1cIj5cbiAgICA8ZGl2ICpuZ0lmPVwiZmllbGREZWZzICYmICFmaWVsZERlZnMubGVuZ3RoXCI+e3tub2RhdGFtZXNzYWdlfX08L2Rpdj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkaXZbd21SZXBlYXRUZW1wbGF0ZV1cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
499
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TabsComponent, { className: "TabsComponent", filePath: "tabs.component.ts", lineNumber: 55 }); })();
500
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvY29udGFpbmVycy90YWJzL3NyYy90YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9jb250YWluZXJzL3RhYnMvc3JjL3RhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFHSCxTQUFTLEVBQ1QsU0FBUyxFQUNULGVBQWUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUNwQyxRQUFRLEVBRVIsUUFBUSxFQUNSLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0gsUUFBUSxFQUNSLFVBQVUsRUFDViwyQkFBMkIsRUFDM0IsSUFBSSxFQUNKLFdBQVcsRUFDWCxnQkFBZ0IsRUFDbkIsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUNILGlCQUFpQixFQUVqQixrQkFBa0IsRUFDbEIsTUFBTSxFQUNOLGlCQUFpQixFQUNqQixlQUFlLEVBQ2xCLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7Ozs7OztJQ3ZCekUsdUJB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Q0FBQyxhQUFhLENBQUMsbUJBQW1CLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMxRyxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDekQsQ0FBQzs4R0FyYlEsYUFBYSxnSEFnQ1AsWUFBWSx3QkFDWixjQUFjLG1FQUVqQixrQkFBa0I7b0VBbkNyQixhQUFhO3dDQTJCTCxnQkFBZ0I7Ozs7OztzRkEvQnRCO2dCQUNQLGtCQUFrQixDQUFDLGFBQWEsQ0FBQzthQUNwQzs7WUNwREwsNkJBQTBHO1lBQ3hHLGtHQWtCQztZQUNILGlCQUFLO1lBTUwsQUFMQSxzRUFBMEIseURBS0E7O1lBMUJELGlGQUFpRTtZQUN4RixjQWtCQztZQWxCRCx3QkFrQkM7WUFFSCxlQUlDO1lBSkQsaURBSUM7WUFDRCxjQU9DO1lBUEQsaURBT0M7NEJEYVcsWUFBWSxjQUFFLGtCQUFrQjs7aUZBUS9CLGFBQWE7Y0FWekIsU0FBUzs2QkFDSSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLENBQUMsWUFDL0IsYUFBYSxZQUViLFFBQVEsYUFDUDtvQkFDUCxrQkFBa0IsZUFBZTtpQkFDcEM7O3NCQWtDSSxTQUFTO3VCQUFDLFlBQVk7O3NCQUN0QixTQUFTO3VCQUFDLGNBQWM7O3NCQUV4QixNQUFNO3VCQUFDLGtCQUFrQjs7c0JBQUcsUUFBUTtxQkFWTixZQUFZO2tCQUE5QyxXQUFXO21CQUFDLG9CQUFvQjtZQUVFLEtBQUs7a0JBQXZDLGVBQWU7bUJBQUMsZ0JBQWdCOztrRkEzQnhCLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgV21Db21wb25lbnRzTW9kdWxlIH0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2Jhc2VcIjtcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIEF0dHJpYnV0ZSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLCBIb3N0QmluZGluZywgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBRdWVyeUxpc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gICAgYWRkQ2xhc3MsXG4gICAgYXBwZW5kTm9kZSxcbiAgICBEeW5hbWljQ29tcG9uZW50UmVmUHJvdmlkZXIsXG4gICAgbm9vcCxcbiAgICByZW1vdmVDbGFzcyxcbiAgICBTdGF0ZVBlcnNpc3RlbmNlXG59IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7XG4gICAgQVBQTFlfU1RZTEVTX1RZUEUsXG4gICAgSVdpZGdldENvbmZpZyxcbiAgICBwcm92aWRlQXNXaWRnZXRSZWYsXG4gICAgc3R5bGVyLFxuICAgIFN0eWxhYmxlQ29tcG9uZW50LFxuICAgIGNyZWF0ZUFycmF5RnJvbVxufSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuaW1wb3J0IHsgVGFic0FuaW1hdG9yIH0gZnJvbSAnLi90YWJzLmFuaW1hdG9yJztcbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL3RhYnMucHJvcHMnO1xuaW1wb3J0IHsgVGFiUGFuZUNvbXBvbmVudCB9IGZyb20gJy4vdGFiLXBhbmUvdGFiLXBhbmUuY29tcG9uZW50JztcbmltcG9ydCB7ZmluZCwgZmluZEluZGV4LCBmb3JFYWNoLCBnZXQsIGluZGV4T2YsIGlzQXJyYXksIGlzRW1wdHl9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuZGVjbGFyZSBjb25zdCAkO1xuXG5jb25zdCBERUZBVUxUX0NMUyA9ICdhcHAtdGFicyBjbGVhcmZpeCc7XG5jb25zdCBXSURHRVRfQ09ORklHOiBJV2lkZ2V0Q29uZmlnID0ge1xuICAgIHdpZGdldFR5cGU6ICd3bS10YWJzJyxcbiAgICBob3N0Q2xhc3M6IERFRkFVTFRfQ0xTXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgV21Db21wb25lbnRzTW9kdWxlXSxcbiAgICBzZWxlY3RvcjogJ2Rpdlt3bVRhYnNdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFicy5jb21wb25lbnQuaHRtbCcsXG4gICAgZXhwb3J0QXM6ICd3bVRhYnMnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoVGFic0NvbXBvbmVudClcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRhYnNDb21wb25lbnQgZXh0ZW5kcyBTdHlsYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIHB1YmxpYyBkZWZhdWx0cGFuZWluZGV4OiBudW1iZXI7XG4gICAgcHVibGljIHRyYW5zaXRpb246IHN0cmluZztcbiAgICBwdWJsaWMgdGFic3Bvc2l0aW9uOiBzdHJpbmc7XG4gICAgcHVibGljIHN0YXRlaGFuZGxlcjogYW55O1xuICAgIHByaXZhdGUgc3RhdGVQZXJzaXN0ZW5jZTogU3RhdGVQZXJzaXN0ZW5jZTtcblxuICAgIHB1YmxpYyB2ZXJ0aWNhbDogYm9vbGVhbjtcbiAgICBwdWJsaWMganVzdGlmaWVkOiBib29sZWFuO1xuICAgIHByaXZhdGUgYWN0aXZlVGFiOiBUYWJQYW5lQ29tcG9uZW50O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvbWlzZVJlc29sdmVyRm46IEZ1bmN0aW9uO1xuICAgIHByaXZhdGUgdGFic0FuaW1hdG9yOiBUYWJzQW5pbWF0b3I7XG4gICAgcHJpdmF0ZSBfb2xkUGFuZUluZGV4OiBudW1iZXI7XG4gICAgcHJpdmF0ZSBpc1BhZ2VMb2FkQ2FsbDogYm9vbGVhbjtcbiAgICBwcml2YXRlIGR5bmFtaWNDb21wb25lbnRQcm92aWRlcjtcbiAgICBwcml2YXRlIF9keW5hbWljQ29udGV4dDtcbiAgICBwcml2YXRlIGR5bmFtaWNQYW5lSW5kZXg7XG4gICAgcHVibGljIGR5bmFtaWNUYWJzO1xuICAgIHB1YmxpYyBmaWVsZERlZnM7XG4gICAgcHVibGljIHR5cGU7XG4gICAgcHVibGljIG5vZGF0YW1lc3NhZ2U7XG4gICAgcHVibGljIGF1dG9BY3RpdmF0aW9uOmJvb2xlYW47XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWNvbi1wb3NpdGlvbicpIGljb25wb3NpdGlvbjogc3RyaW5nID0gJyc7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFRhYlBhbmVDb21wb25lbnQpIHBhbmVzOiBRdWVyeUxpc3Q8VGFiUGFuZUNvbXBvbmVudD47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qOiBJbmplY3RvcixcbiAgICAgICAgZHluYW1pY0NvbXBvbmVudFByb3ZpZGVyOiBEeW5hbWljQ29tcG9uZW50UmVmUHJvdmlkZXIsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ3RyYW5zaXRpb24nKSBfdHJhbnNpdGlvbjogc3RyaW5nLFxuICAgICAgICBAQXR0cmlidXRlKCd0YWJzcG9zaXRpb24nKSBfdGFic1Bvc2l0aW9uOiBzdHJpbmcsXG4gICAgICAgIHN0YXRlUGVyc2lzdGVuY2U6IFN0YXRlUGVyc2lzdGVuY2UsXG4gICAgICAgIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueVxuICAgICkge1xuICAgICAgICAvLyBoYW5kbGUgdG8gdGhlIHByb21pc2UgcmVzb2x2ZXJcbiAgICAgICAgbGV0IHJlc29sdmVGbjogRnVuY3Rpb24gPSBub29wO1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCwgbmV3IFByb21pc2UocmVzID0+IHJlc29sdmVGbiA9IHJlcykpO1xuXG4gICAgICAgIHRoaXMudHJhbnNpdGlvbiA9IF90cmFuc2l0aW9uO1xuICAgICAgICB0aGlzLnRhYnNwb3NpdGlvbiA9IF90YWJzUG9zaXRpb247XG4gICAgICAgIHRoaXMuc3RhdGVQZXJzaXN0ZW5jZSA9IHN0YXRlUGVyc2lzdGVuY2U7XG4gICAgICAgIHRoaXMuZHluYW1pY0NvbXBvbmVudFByb3ZpZGVyID0gZHluYW1pY0NvbXBvbmVudFByb3ZpZGVyO1xuICAgICAgICB0aGlzLmR5bmFtaWNUYWJzID0gW107XG4gICAgICAgIHRoaXMuZHluYW1pY1BhbmVJbmRleCA9IDA7XG5cbiAgICAgICAgdGhpcy5wcm9taXNlUmVzb2x2ZXJGbiA9IHJlc29sdmVGbjtcblxuICAgICAgICBzdHlsZXIodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzLCBBUFBMWV9TVFlMRVNfVFlQRS5DT05UQUlORVIpO1xuXG4gICAgfVxuXG4gICAgYW5pbWF0ZUluIChlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgICAgICBjb25zdCB0YWJIZWFkZXIgPSAkKGVsZW1lbnQpO1xuICAgICAgICAvLyB3aGVuIHRoZSBhbmltYXRpb24gaXMgbm90IHByZXNlbnQgdG9nZ2xlIHRoZSBhY3RpdmUgY2xhc3MuXG4gICAgICAgIHRhYkhlYWRlci5zaWJsaW5ncygnLmFjdGl2ZScpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgdGFiSGVhZGVyLmFkZENsYXNzKCdhY3RpdmUnKTtcblxuICAgICAgICBjb25zdCB1bCA9IHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd1bC5uYXYubmF2LXRhYnMnKTtcblxuICAgICAgICAvLyBtb3ZlIHRoZSB0YWJoZWFkZXIgaW50byB0aGUgdmlld3BvcnRcbiAgICAgICAgY29uc3QgJHByZXZIZWFkZXJFbGUgPSB0YWJIZWFkZXIucHJldigpO1xuICAgICAgICBpZiAoJHByZXZIZWFkZXJFbGUubGVuZ3RoKSB7XG4gICAgICAgICAgICB1bC5zY3JvbGxMZWZ0ID0gJHByZXZIZWFkZXJFbGVbMF0ub2Zmc2V0TGVmdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHVsLnNjcm9sbExlZnQgPSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCB0byByZWdpc3RlciB0aGUgZHluYW1pYyBwYW5lcy5cbiAgICAgKiBBZnRlciBhbGwgcGFuZXMgYXJlIGluaXRpYWx6ZWQsIHVwZGF0ZSB0aGUgcXVlcnlsaXN0IG1hbnVhbGx5IGJhc2VkIG9uIGluZGV4LlxuICAgICAqIEBwYXJhbSBwYW5lUmVmIC0gcmVmcmVuY2Ugb2YgdGhlIHRhYnBhbmVcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJEeW5hbWljVGFiKHBhbmVSZWYpIHtcbiAgICAgICAgdGhpcy5keW5hbWljVGFicy5wdXNoKHBhbmVSZWYpO1xuICAgICAgICBjb25zdCBpc0xhc3RQYW5lID0gIHRoaXMuZHluYW1pY1RhYnMubGVuZ3RoID09PSB0aGlzLmR5bmFtaWNQYW5lSW5kZXg7XG4gICAgICAgIGlmIChpc0xhc3RQYW5lKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZHluYW1pY1RhYnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdQYW5lUmVmID0gZmluZCh0aGlzLmR5bmFtaWNUYWJzLCBwYW5lID0+IHBhbmUuZHluYW1pY1BhbmVJbmRleCA9PT0gaSk7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNQYW5lQWxyZWFkeUV4aXN0ID0gZmluZCh0aGlzLnBhbmVzLnRvQXJyYXkoKSwgbmV3UGFuZVJlZik7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1BhbmVBbHJlYWR5RXhpc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lcy5yZXNldChbLi4udGhpcy5wYW5lcy50b0FycmF5KCksIG5ld1BhbmVSZWZdKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1BhbmVSZWYuYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYW5lUmVmLnNlbGVjdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSwgMjApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgdG8gYWRkIHRoZSB0YWJwYW5lIGR5bmFtaWNhbGx5XG4gICAgICogQHBhcmFtIHRhYnBhbmVzIC0gbGlzdCBvZiB0YWJwYW5lc1xuICAgICAqL1xuICAgIHB1YmxpYyBhZGRQYW5lKHRhYnBhbmVzKSB7XG4gICAgICAgIGlmICghaXNBcnJheSh0YWJwYW5lcykpIHtcbiAgICAgICAgICAgIHRhYnBhbmVzID0gW3RhYnBhbmVzXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYW5lTmFtZXNMaXN0ID0gW107XG4gICAgICAgIGZvckVhY2godGFicGFuZXMsIChwYW5lLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNQYW5lQWxyZWFkeUNyZWF0ZWQgPSBmaW5kKHRoaXMucGFuZXMudG9BcnJheSgpLCB7bmFtZTogcGFuZS5uYW1lfSk7XG4gICAgICAgICAgICBjb25zdCBpc1BhbmVOYW1lRXhpc3QgPSBpbmRleE9mKHBhbmVOYW1lc0xpc3QsIHBhbmUubmFtZSk7XG4gICAgICAgICAgICAvLyBJZiB1c2VyIHRyaWVzIHRvIGFkZCB0YWJwYW5lIHdpdGggdGhlIHNhbWUgbmFtZSB3aGljaCBpcyBhbHJlYWR5IGV4aXN0cyB0aGVuIGRvIG5vdCBjcmVhdGUgdGhlIHBhbmVcbiAgICAgICAgICAgIGlmIChpc1BhbmVBbHJlYWR5Q3JlYXRlZCB8fCBpc1BhbmVOYW1lRXhpc3QgPiAwKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBUaGUgdGFiIHBhbmUgd2l0aCBuYW1lICR7cGFuZS5uYW1lfSBhbHJlYWR5IGV4aXN0c2ApO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IHBhcmFtTWFya3VwID0gJyc7XG4gICAgICAgICAgICBsZXQgcHJvcHNUbXBsID0gJyc7XG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNQYW5lSW5kZXgrKztcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBwYW5lLm5hbWUgPyBwYW5lLm5hbWUgOiBgdGFicGFuZSR7dGhpcy5wYW5lcy50b0FycmF5KCkubGVuZ3RoICsgKGluZGV4ICsgMSl9YDtcbiAgICAgICAgICAgIHBhbmVOYW1lc0xpc3QucHVzaChuYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRpYWxQYXJhbXMgPSBnZXQocGFuZSwgJ3BhcmFtcycpO1xuXG4gICAgICAgICAgICBmb3JFYWNoKHBhbmUsICh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGtleSAhPT0gJ3BhcmFtcycpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvcHNUbXBsID0gYCR7cHJvcHNUbXBsfSAke2tleX09XCIke3ZhbHVlfVwiYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZm9yRWFjaChwYXJ0aWFsUGFyYW1zLCAodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIHBhcmFtTWFya3VwID0gYCR7cGFyYW1NYXJrdXB9IDx3bS1wYXJhbSBuYW1lPVwiJHtrZXl9XCIgdmFsdWU9XCIke3ZhbHVlfVwiPjwvd20tcGFyYW0+YDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgbWFya3VwID0gYDx3bS10YWJwYW5lIGR5bmFtaWNQYW5lSW5kZXg9XCIke3RoaXMuZHluYW1pY1BhbmVJbmRleCAtIDF9XCIgaXNkeW5hbWljPVwidHJ1ZVwiIG5hbWU9XCIke25hbWV9XCIgJHtwcm9wc1RtcGx9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7cGFyYW1NYXJrdXB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3dtLXRhYnBhbmU+YDtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLl9keW5hbWljQ29udGV4dCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2R5bmFtaWNDb250ZXh0ID0gT2JqZWN0LmNyZWF0ZSh0aGlzLnZpZXdQYXJlbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2R5bmFtaWNDb250ZXh0W3RoaXMuZ2V0QXR0cignd21UYWInKV0gPSB0aGlzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNDb21wb25lbnRQcm92aWRlci5hZGRDb21wb25lbnQodGhpcy5nZXROYXRpdmVFbGVtZW50KCkucXVlcnlTZWxlY3RvcignLnRhYi1jb250ZW50JyksIG1hcmt1cCwgdGhpcy5fZHluYW1pY0NvbnRleHQsIHtpbmo6IHRoaXMuaW5qfSk7XG5cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBwYW5lTmFtZXNMaXN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIHRvIHJlbW92ZSB0aGUgdGFicGFuZVxuICAgICAqIEBwYXJhbSBwYW5lSW5kZXggLSBpbmRleCBvZiB0aGUgcGFuZVxuICAgICAqL1xuICAgIHB1YmxpYyByZW1vdmVQYW5lKHBhbmVOYW1lKSB7XG4gICAgICAgIGNvbnN0IHBhbmVSZWYgPSB0aGlzLmdldFBhbmVSZWZCeU5hbWUocGFuZU5hbWUpO1xuICAgICAgICBpZiAocGFuZVJlZikge1xuICAgICAgICAgICAgcGFuZVJlZi5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRhYlBhbmUgY2hpbGRyZW4gY29tcG9uZW50cyBpbnZva2UgdGhpcyBtZXRob2QgdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUgcGFyZW50XG4gICAgICogaWYgdGhlIGV2dCBhcmd1bWVudCBpcyBkZWZpbmVkIG9uLWNoYW5nZSBjYWxsYmFjayB3aWxsIGJlIGludm9rZWQuXG4gICAgICovXG4gICAgcHVibGljIG5vdGlmeUNoYW5nZShwYW5lUmVmOiBUYWJQYW5lQ29tcG9uZW50LCBldnQ6IEV2ZW50LCBpc0tleUJvYXJkRXZlbnQ6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzU2VsZWN0YWJsZVRhYihwYW5lUmVmKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGhlYWRlckVsZW1lbnQ7XG4gICAgICAgIC8vIGludm9rZSBkZXNlbGVjdCBldmVudCBjYWxsYmFjayBvbiB0aGUgcHJlc2V0IGFjdGl2ZSB0YWJcbiAgICAgICAgaWYgKCFpc0VtcHR5KHRoaXMuYWN0aXZlVGFiKSkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVUYWIuZGVzZWxlY3QoKTtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgdGhpcy5hY3RpdmVUYWIgPSBwYW5lUmVmLmdldFdpZGdldCgpO1xuICAgICAgICBjb25zdCBuZXdQYW5lSW5kZXggPSB0aGlzLmdldFBhbmVJbmRleEJ5UmVmKHBhbmVSZWYpO1xuICAgICAgICBjb25zdCBtb2RlID0gdGhpcy5zdGF0ZVBlcnNpc3RlbmNlLmNvbXB1dGVNb2RlKHRoaXMuc3RhdGVoYW5kbGVyKTtcbiAgICAgICAgaWYgKCF0aGlzLmlzUGFnZUxvYWRDYWxsICYmIG1vZGUgJiYgbW9kZS50b0xvd2VyQ2FzZSgpICE9PSAnbm9uZScpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVQZXJzaXN0ZW5jZS5zZXRXaWRnZXRTdGF0ZSh0aGlzLCB0aGlzLmFjdGl2ZVRhYi5uYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdHBhbmVpbmRleCA9IHRoaXMuZ2V0UGFuZUluZGV4QnlSZWYocGFuZVJlZik7XG4gICAgICAgICAgICB0aGlzLmlzUGFnZUxvYWRDYWxsID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpbnZva2Ugc2VsZWN0IGNhbGxiYWNrIG9uIHRoZSBzZWxlY3RlZCB0YWJcbiAgICAgICAgcGFuZVJlZi5pbnZva2VPblNlbGVjdENhbGxiYWNrKGV2dCk7XG5cbiAgICAgICAgLy8gaW52b2tlIGNoYW5nZSBjYWxsYmFjayBpZiB0aGUgZXZ0IGlzIHByZXNlbnQsIHNlbGVjdCBhIHRhYiBwcm9ncmFtbWF0aWNhbGx5IHdpbGwgbm90IGhhdmUgdGhlIGV2ZW50XG4gICAgICAgIGlmIChldnQpIHtcbiAgICAgICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnY2hhbmdlJywge1xuICAgICAgICAgICAgICAgICRldmVudDogZXZ0LFxuICAgICAgICAgICAgICAgIG5ld1BhbmVJbmRleDogbmV3UGFuZUluZGV4LFxuICAgICAgICAgICAgICAgIG9sZFBhbmVJbmRleDogdGhpcy5fb2xkUGFuZUluZGV4IHx8IDBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX29sZFBhbmVJbmRleCA9IG5ld1BhbmVJbmRleDtcblxuICAgICAgICBpZiAoZXZ0KSB7XG4gICAgICAgICAgICBoZWFkZXJFbGVtZW50ID0gJChldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbG9zZXN0KCdsaS50YWItaGVhZGVyJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFldnQgfHwgIWhlYWRlckVsZW1lbnQgfHwgIWhlYWRlckVsZW1lbnQubGVuZ3RoKSB7XG4gICAgICAgICAgICBoZWFkZXJFbGVtZW50ID0gdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYGxpW2RhdGEtcGFuZWlkPSR7cGFuZVJlZi53aWRnZXRJZH1dYCk7XG4gICAgICAgICAgICBjb25zdCBpbnNpZGVUYWJzID0gISEkKGhlYWRlckVsZW1lbnQpLmNsb3Nlc3QoJy5hcHAtdGFicycpXG4gICAgICAgICAgICAgICAgLnBhcmVudCgpLmNsb3Nlc3QoJy5hcHAtdGFicycpLmxlbmd0aDtcbiAgICAgICAgICAgIGlmICghaW5zaWRlVGFicyAmJiBpc0tleUJvYXJkRXZlbnQpIHtcbiAgICAgICAgICAgICAgICAkKGhlYWRlckVsZW1lbnQpLmNoaWxkcmVuKCkuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFuaW1hdGVJbihoZWFkZXJFbGVtZW50KTtcblxuICAgICAgICAvLyB0aGlzLnNldFRhYnNMZWZ0UG9zaXRpb24odGhpcy5nZXRQYW5lSW5kZXhCeVJlZih0aGlzLmFjdGl2ZVRhYiksIHRoaXMucGFuZXMubGVuZ3RoKTtcbiAgICAgICAgaWYgKHRoaXMuY2FuU2xpZGUoKSkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnRhYnNBbmltYXRvcikge1xuICAgICAgICAgICAgICAgIHRoaXMudGFic0FuaW1hdG9yID0gbmV3IFRhYnNBbmltYXRvcih0aGlzKTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYnNBbmltYXRvci5zZXRHZXN0dXJlc0VuYWJsZWQodGhpcy5jYW5TbGlkZSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudGFic0FuaW1hdG9yLnRyYW5zaXRpb25UYWJJbnRvVmlldygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdvVG9UYWIodGFiSW5kZXgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNWYWxpZFBhbmVJbmRleCh0YWJJbmRleCAtIDEpKSB7XG4gICAgICAgICAgICBjb25zdCB0YWIgPSB0aGlzLmdldFBhbmVSZWZCeUluZGV4KHRhYkluZGV4IC0gMSk7XG4gICAgICAgICAgICB0YWIuc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFBhbmVJbmRleEJ5UmVmKHBhbmVSZWY6IFRhYlBhbmVDb21wb25lbnQpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5wYW5lcy50b0FycmF5KCkuaW5kZXhPZihwYW5lUmVmKTtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm5zIHRoZSBhY3RpdmUgdGFiIGluZGV4IGZyb20gdGFicy5cbiAgICBwdWJsaWMgZ2V0QWN0aXZlVGFiSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGZpbmRJbmRleCh0aGlzLnBhbmVzLnRvQXJyYXkoKSwge2lzQWN0aXZlOiB0cnVlfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1ZhbGlkUGFuZUluZGV4KGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChpbmRleCA+PSAwICYmIGluZGV4IDwgdGhpcy5wYW5lcy5sZW5ndGgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UGFuZVJlZkJ5SW5kZXgoaW5kZXg6IG51bWJlcik6IFRhYlBhbmVDb21wb25lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5wYW5lcy50b0FycmF5KClbaW5kZXhdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UGFuZVJlZkJ5TmFtZShuYW1lOiBzdHJpbmcpOiBUYWJQYW5lQ29tcG9uZW50IHtcbiAgICAgICAgcmV0dXJuIGZpbmQodGhpcy5wYW5lcy50b0FycmF5KCksIHtuYW1lOiBuYW1lfSk7XG4gICAgfVxuXG4gICAgLy8gcmV0dXJucyBmYWxzZSBpZiB0aGUgcGFuZSBpcyBoaWRkZW4gb3IgZGlzYWJsZWRcbiAgICBwcml2YXRlIGlzU2VsZWN0YWJsZVRhYihwYW5lUmVmOiBUYWJQYW5lQ29tcG9uZW50KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBwYW5lUmVmLnNob3cgJiYgIXBhbmVSZWYuZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYW5TbGlkZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNpdGlvbiA9PT0gJ3NsaWRlJyAmJiAhdGhpcy52ZXJ0aWNhbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNlbGVjdGFibGVUYWJBZnRlckluZGV4KGluZGV4OiBudW1iZXIpOiBUYWJQYW5lQ29tcG9uZW50IHtcbiAgICAgICAgZm9yIChsZXQgaSA9IGluZGV4ICsgMTsgaSA8IHRoaXMucGFuZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHBhbmUgPSB0aGlzLmdldFBhbmVSZWZCeUluZGV4KGkpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RhYmxlVGFiKHBhbmUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZGV4ID09PSB0aGlzLnBhbmVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhbmUgPSB0aGlzLmdldFBhbmVSZWZCeUluZGV4KDApO1xuICAgICAgICAgICAgIGlmICh0aGlzLmlzU2VsZWN0YWJsZVRhYihwYW5lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwYW5lO1xuICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VsZWN0YWJsZVRhYkJlZm9yZUluZGV4KGluZGV4OiBudW1iZXIpOiBUYWJQYW5lQ29tcG9uZW50IHtcbiAgICAgICAgZm9yIChsZXQgaSA9IGluZGV4IC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHBhbmUgPSB0aGlzLmdldFBhbmVSZWZCeUluZGV4KGkpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RhYmxlVGFiKHBhbmUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBwYW5lID0gdGhpcy5nZXRQYW5lUmVmQnlJbmRleCh0aGlzLnBhbmVzLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RhYmxlVGFiKHBhbmUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzZWxlY3QgbmV4dCB0YWIgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgYWN0aXZlIHRhYlxuICAgIHB1YmxpYyBuZXh0KCRldmVudD86IEV2ZW50LCBpc0tleUJvYXJkRXZlbnQ/OiBib29sZWFuKSB7XG4gICAgICAgIGNvbnN0IHBhbmUgPSB0aGlzLmdldFNlbGVjdGFibGVUYWJBZnRlckluZGV4KHRoaXMuZ2V0QWN0aXZlVGFiSW5kZXgoKSk7XG4gICAgICAgIGlmIChwYW5lKSB7XG4gICAgICAgICAgICBwYW5lLnNlbGVjdCgkZXZlbnQsIGlzS2V5Qm9hcmRFdmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzZWxlY3QgcHJldiB0YWIgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgYWN0aXZlIHRhYlxuICAgIHB1YmxpYyBwcmV2KCRldmVudD86IEV2ZW50LCBpc0tleUJvYXJkRXZlbnQ/OiBib29sZWFuKSB7XG4gICAgICAgIGNvbnN0IHBhbmUgPSB0aGlzLmdldFNlbGVjdGFibGVUYWJCZWZvcmVJbmRleCh0aGlzLmdldEFjdGl2ZVRhYkluZGV4KCkpO1xuICAgICAgICBpZiAocGFuZSkge1xuICAgICAgICAgICAgcGFuZS5zZWxlY3QoJGV2ZW50LCBpc0tleUJvYXJkRXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdGhpcyBtZXRob2Qgd2lsbCBiZSBpbnZva2VkIGR1cmluZyB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGNvbXBvbmVudCBhbmQgb24gZGVmYXVsdHBhbmVpbmRleCBwcm9wZXJ0eSBjaGFuZ2UsXG4gICAgICogaWYgdGhlIHByb3ZpZGVkIGRlZmF1bHRwYW5laW5kZXggaXMgbm90IHZhbGlkLCBmaW5kIHRoZSBmaXJzdCBwYW5lIGluZGV4IHdoaWNoIGNhbiBiZSBzaG93biBhbmQgc2VsZWN0IGl0XG4gICAgICovXG4gICAgcHJpdmF0ZSBzZWxlY3REZWZhdWx0UGFuZUJ5SW5kZXgoaW5kZXg6IG51bWJlcikge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZFBhbmVJbmRleChpbmRleCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwYW5lUmVmID0gdGhpcy5nZXRQYW5lUmVmQnlJbmRleChpbmRleCk7XG4gICAgICAgIGlmICghdGhpcy5pc1NlbGVjdGFibGVUYWIocGFuZVJlZikpIHtcbiAgICAgICAgICAgIHBhbmVSZWYgPSB0aGlzLmdldFNlbGVjdGFibGVUYWJBZnRlckluZGV4KDApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYW5lUmVmKSB7XG4gICAgICAgICAgICBwYW5lUmVmLnNlbGVjdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gdXBkYXRlIHRoZSBwb3N0aW9uIG9mIHRhYiBoZWFkZXJcbiAgICBwcml2YXRlIHNldFRhYnNQb3NpdGlvbigpIHtcbiAgICAgICAgY29uc3QgdWwgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF07XG5cbiAgICAgICAgdGhpcy52ZXJ0aWNhbCA9ICh0aGlzLnRhYnNwb3NpdGlvbiA9PT0gJ2xlZnQnIHx8IHRoaXMudGFic3Bvc2l0aW9uID09PSAncmlnaHQnKTtcblxuICAgICAgICByZW1vdmVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsICdpbnZlcnRlZCcpO1xuICAgICAgICBpZiAodGhpcy50YWJzcG9zaXRpb24gPT09ICdib3R0b20nIHx8IHRoaXMudGFic3Bvc2l0aW9uID09PSAncmlnaHQnKSB7XG4gICAgICAgICAgICBhcHBlbmROb2RlKHVsIGFzIEhUTUxFbGVtZW50LCB0aGlzLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnaW52ZXJ0ZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25EYXRhQ2hhbmdlKG5ld1ZhbCkge1xuICAgICAgICB0aGlzLmZpZWxkRGVmcyA9IGNyZWF0ZUFycmF5RnJvbShuZXdWYWwpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2VsZWN0RGVmYXVsdFBhbmVCeUluZGV4KHRoaXMuZGVmYXVsdHBhbmVpbmRleCB8fCAwKSk7XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXk6IHN0cmluZywgbnY6IGFueSwgb3YpIHtcblxuICAgICAgICBpZiAoa2V5ID09PSAnZGVmYXVsdHBhbmVpbmRleCcpIHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdHBhbmVpbmRleCA9IG52O1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2RhdGFzZXQnKSB7XG4gICAgICAgICAgICB0aGlzLm9uRGF0YUNoYW5nZShudik7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnc3RhdGVoYW5kbGVyJykge1xuICAgICAgICAgICAgdGhpcy5pc1BhZ2VMb2FkQ2FsbCA9IHRydWU7XG4gICAgICAgICAgICBjb25zdCB3aWRnZXRTdGF0ZSA9IHRoaXMuc3RhdGVQZXJzaXN0ZW5jZS5nZXRXaWRnZXRTdGF0ZSh0aGlzKTtcbiAgICAgICAgICAgIGlmIChudiAhPT0gJ25vbmUnICYmIHdpZGdldFN0YXRlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFuZVRvU2VsZWN0OiBhbnkgPSB0aGlzLnBhbmVzLmZpbHRlcihmdW5jdGlvbihwYW5lKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB3aWRnZXRTdGF0ZSA9PT0gcGFuZS5uYW1lO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghcGFuZVRvU2VsZWN0Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ1RhYiBwYW5lIG5hbWUgJyArIHdpZGdldFN0YXRlICsgJyBpbiBTdGF0ZSBpcyBpbmNvcnJlY3QuIEZhbGxpbmcgYmFjayB0byB0aGUgZGVmYXVsdCBwYW5lJyk7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZWxlY3REZWZhdWx0UGFuZUJ5SW5kZXgodGhpcy5kZWZhdWx0cGFuZWluZGV4IHx8IDApLCAyMCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmdldFBhbmVJbmRleEJ5UmVmKHBhbmVUb1NlbGVjdFswXSk7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZWxlY3REZWZhdWx0UGFuZUJ5SW5kZXgoaW5kZXgpLCAyMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2VsZWN0RGVmYXVsdFBhbmVCeUluZGV4KHRoaXMuZGVmYXVsdHBhbmVpbmRleCB8fCAwKSwgMjApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2F1dG90YWJhY3RpdmF0aW9uJyl7XG4gICAgICAgICAgICB0aGlzLmF1dG9BY3RpdmF0aW9uID0gbnY7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyVGFic1Njcm9sbCgpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCAkdWwgPSB0aGlzLiRlbGVtZW50LmZpbmQoJz4gdWwnKTtcbiAgICAgICAgICAgIGxldCAkbGlQb3NpdGlvbjtcblxuICAgICAgICAgICAgY29uc3QgICRsaSA9ICR1bC5jaGlsZHJlbigpO1xuICAgICAgICAgICAgJGxpUG9zaXRpb24gPSAkbGkubGFzdCgpLnBvc2l0aW9uKCk7XG4gICAgICAgICAgICBpZiAoJGxpUG9zaXRpb24gJiYgKCRsaVBvc2l0aW9uLmxlZnQgPiAkdWwud2lkdGgoKSkpIHtcbiAgICAgICAgICAgICAgICAkdWwub24oJ21vdXNld2hlZWwnLCAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBsZWZ0ID0gJHVsWzBdLnNjcm9sbExlZnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBfZGVsdGEgPSAtMSAqIGUub3JpZ2luYWxFdmVudC53aGVlbERlbHRhO1xuICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICR1bC5hbmltYXRlKHtzY3JvbGxMZWZ0OiBsZWZ0ICsgX2RlbHRhfSwgeydkdXJhdGlvbic6IDEwfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBvbmtleWRvd24oZXZlbnQpIHtcbiAgICAgICAgbGV0IG5ld1BhbmU7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICAgICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgICAgICAgICAgbmV3UGFuZSA9IHRoaXMuYXV0b0FjdGl2YXRpb24gPyAodGhpcy5wcmV2KG51bGwsIHRydWUpLCBudWxsKSA6IHRoaXMuZ2V0U2VsZWN0YWJsZVRhYkJlZm9yZUluZGV4KHRoaXMuZ2V0U2VsZWN0ZWRQYW5lSW5kZXgoKSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgICAgICAgICBuZXdQYW5lID0gdGhpcy5hdXRvQWN0aXZhdGlvbiA/ICh0aGlzLm5leHQobnVsbCwgdHJ1ZSksIG51bGwpIDogdGhpcy5nZXRTZWxlY3RhYmxlVGFiQWZ0ZXJJbmRleCh0aGlzLmdldFNlbGVjdGVkUGFuZUluZGV4KCkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdFbnRlcic6IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYW5lID0gdGhpcy5nZXRTZWxlY3RhYmxlVGFiQWZ0ZXJJbmRleCh0aGlzLmdldFNlbGVjdGVkUGFuZUluZGV4KCktMSk7XG4gICAgICAgICAgICAgICAgaWYgKHBhbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW50ZXJFdmVudCA9IG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3duJywge2tleTogJ0VudGVyJywgY29kZTogJ0VudGVyJywgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZX0pO1xuICAgICAgICAgICAgICAgICAgICBwYW5lLm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChlbnRlckV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgcGFuZS5zZWxlY3QoZW50ZXJFdmVudCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuZXdQYW5lKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignbGkuc2VsZWN0Jyk/LmNsYXNzTGlzdC5yZW1vdmUoJ3NlbGVjdCcpO1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYGxpW2RhdGEtcGFuZWlkPVwiJHtuZXdQYW5lLndpZGdldElkfVwiXWApPy5jbGFzc0xpc3QuYWRkKCdzZWxlY3QnKTtcbiAgICAgICAgfVxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy5wcm9taXNlUmVzb2x2ZXJGbigpO1xuICAgICAgICBzdXBlci5uZ0FmdGVyQ29udGVudEluaXQoKTtcbiAgICAgICAgdGhpcy5zZXRUYWJzUG9zaXRpb24oKTtcbiAgICAgICAgdGhpcy5wYW5lcy5jaGFuZ2VzLnN1YnNjcmliZSggc2xpZGVzID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnBhbmVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0RGVmYXVsdFBhbmVCeUluZGV4KHRoaXMuZGVmYXVsdHBhbmVpbmRleCB8fCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlclRhYnNTY3JvbGwoKTtcbiAgICB9XG5cbiAgICBnZXRTZWxlY3RlZFBhbmVJbmRleCgpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnBhbmVzLnRvQXJyYXkoKS5maW5kSW5kZXgocGFuZSA9PlxuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYGxpW2RhdGEtcGFuZWlkPVwiJHtwYW5lLndpZGdldElkfVwiXWApPy5jbGFzc0xpc3QuY29udGFpbnMoXCJzZWxlY3RcIikpO1xuICAgICAgICByZXR1cm4gaW5kZXggPj0gMCA/IGluZGV4IDogdGhpcy5nZXRBY3RpdmVUYWJJbmRleCgpO1xuICAgIH1cbn1cbiIsIjx1bCBjbGFzcz1cIm5hdiBuYXYtdGFic1wiIFtuZ0NsYXNzXT1cInsnbmF2LXN0YWNrZWQnOiB2ZXJ0aWNhbCwgJ25hdi1qdXN0aWZpZWQnOiBqdXN0aWZpZWR9XCIgcm9sZT1cInRhYmxpc3RcIj5cbiAgQGZvciAocGFuZSBvZiBwYW5lczsgdHJhY2sgcGFuZTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICA8bGkgY2xhc3M9XCJ0YWItaGVhZGVyXCIgW2F0dHIuZGF0YS1wYW5laWRdPVwicGFuZS53aWRnZXRJZFwiIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogcGFuZS5pc0FjdGl2ZSwgJ2Rpc2FibGVkJzogcGFuZS5kaXNhYmxlZH1cIlxuICAgICAgW2hpZGRlbl09XCIhcGFuZS5zaG93XCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgPGEgW2F0dHIuYXJpYS1sYWJlbF09XCJwYW5lLmJhZGdldmFsdWUgPyBwYW5lLnRpdGxlICsgJyAnICsgcGFuZS5iYWRnZXZhbHVlIDogcGFuZS50aXRsZVwiXG4gICAgICAgIFthdHRyLmljb24tcG9zaXRpb25dPVwiaWNvbnBvc2l0aW9uXCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwicGFuZS50aXRsZVwiXG4gICAgICAgIFt0YWJpbmRleF09XCJwYW5lLmlzQWN0aXZlID8gJzAnIDogJy0xJ1wiXG4gICAgICAgIGNsYXNzPVwidGFiLWhlYWRpbmdcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiXG4gICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwicGFuZS5pc0FjdGl2ZVwiIHJvbGU9XCJ0YWJcIiAoY2xpY2spPVwicGFuZS5zZWxlY3QoJGV2ZW50KTsgcGFuZS50YWJwYW5lSGVhZGVyQ2xpY2soJGV2ZW50LCBpKTtcIiAoa2V5ZG93bik9XCJvbmtleWRvd24oJGV2ZW50KVwiPlxuICAgICAgICBAaWYgKHBhbmUucGFuZWljb24pIHtcbiAgICAgICAgICA8aSBbbmdDbGFzc109XCJbJ2FwcC1pY29uJywgcGFuZS5wYW5laWNvbl1cIj48L2k+XG4gICAgICAgIH1cbiAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInBhbmUudGl0bGVcIj48L3NwYW4+XG4gICAgICAgIEBpZiAocGFuZS5iYWRnZXZhbHVlKSB7XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbCBsYWJlbC17e3BhbmUuYmFkZ2V0eXBlfX1cIiBbdGV4dENvbnRlbnRdPVwicGFuZS5iYWRnZXZhbHVlXCI+PC9zcGFuPlxuICAgICAgICB9XG4gICAgICA8L2E+XG4gICAgPC9saT5cbiAgfVxuPC91bD5cbkBpZiAodHlwZSAhPT0gJ2R5bmFtaWMnKSB7XG4gIDxkaXYgY2xhc3M9XCJ0YWItY29udGVudFwiIFtuZ0NsYXNzXT1cInsndGFiLXN0YWNrZWQnOiB2ZXJ0aWNhbCwgJ3RhYi1qdXN0aWZpZWQnOiBqdXN0aWZpZWR9XCI+XG4gICAgPG5nLWNvbnRlbnQgbmdQcm9qZWN0QXM9XCJkaXZbd21UYWJQYW5lXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG59XG5AaWYgKHR5cGUgPT09ICdkeW5hbWljJykge1xuICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIiBbbmdDbGFzc109XCJ7J3RhYi1zdGFja2VkJzogdmVydGljYWwsICd0YWItanVzdGlmaWVkJzoganVzdGlmaWVkfVwiPlxuICAgIEBpZiAoZmllbGREZWZzICYmICFmaWVsZERlZnMubGVuZ3RoKSB7XG4gICAgICA8ZGl2Pnt7bm9kYXRhbWVzc2FnZX19PC9kaXY+XG4gICAgfVxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRpdlt3bVJlcGVhdFRlbXBsYXRlXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG59XG4iXX0=
@@ -1,4 +1,3 @@
1
- import { isMobileApp } from '@wm/core';
2
1
  import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';
3
2
  export const registerProps = () => {
4
3
  const props = new Map([
@@ -14,10 +13,8 @@ export const registerProps = () => {
14
13
  ['transition', PROP_STRING],
15
14
  ['type', PROP_STRING],
16
15
  ['iconposition', PROP_STRING],
16
+ ['autotabactivation', { value: true, ...PROP_BOOLEAN }]
17
17
  ]);
18
- if (isMobileApp()) {
19
- props.set('transition', { value: 'slide', ...PROP_STRING });
20
- }
21
18
  register('wm-tabs', props);
22
19
  };
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5wcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9jb250YWluZXJzL3RhYnMvc3JjL3RhYnMucHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRWhHLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUU7SUFDOUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQ2pCO1FBQ0ksQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDO1FBQ3RCLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQztRQUNyQixDQUFDLGtCQUFrQixFQUFFLEVBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLFdBQVcsRUFBQyxDQUFDO1FBQ2hELENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQztRQUMzQixDQUFDLGNBQWMsRUFBRSxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxXQUFXLEVBQUMsQ0FBQztRQUNoRCxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUM7UUFDckIsQ0FBQyxlQUFlLEVBQUUsRUFBQyxLQUFLLEVBQUUsZUFBZSxFQUFFLEdBQUksV0FBVyxFQUFDLENBQUM7UUFDNUQsQ0FBQyxNQUFNLEVBQUUsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsWUFBWSxFQUFDLENBQUM7UUFDeEMsQ0FBQyxjQUFjLEVBQUUsRUFBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsV0FBVyxFQUFDLENBQUM7UUFDakQsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDO1FBQzNCLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQztRQUNyQixDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUM7S0FDaEMsQ0FDSixDQUFDO0lBQ0YsSUFBSSxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ2hCLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLFdBQVcsRUFBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUNELFFBQVEsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNNb2JpbGVBcHAgfSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7IFBST1BfQU5ZLCBQUk9QX0JPT0xFQU4sIFBST1BfTlVNQkVSLCBQUk9QX1NUUklORywgcmVnaXN0ZXJ9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJQcm9wcyA9ICgpID0+IHtcbiAgICBjb25zdCBwcm9wcyA9IG5ldyBNYXAoXG4gICAgICAgIFtcbiAgICAgICAgICAgIFsnY2xhc3MnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBbJ2RhdGFzZXQnLCBQUk9QX0FOWV0sXG4gICAgICAgICAgICBbJ2RlZmF1bHRwYW5laW5kZXgnLCB7dmFsdWU6IDAsIC4uLlBST1BfTlVNQkVSfV0sXG4gICAgICAgICAgICBbJ2p1c3RpZmllZCcsIFBST1BfQk9PTEVBTl0sXG4gICAgICAgICAgICBbJ3RhYnNwb3NpdGlvbicsIHt2YWx1ZTogJ3RvcCcsIC4uLlBST1BfU1RSSU5HfV0sXG4gICAgICAgICAgICBbJ25hbWUnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBbJ25vZGF0YW1lc3NhZ2UnLCB7dmFsdWU6ICdObyBEYXRhIEZvdW5kJywgLi4uIFBST1BfU1RSSU5HfV0sXG4gICAgICAgICAgICBbJ3Nob3cnLCB7dmFsdWU6IHRydWUsIC4uLlBST1BfQk9PTEVBTn1dLFxuICAgICAgICAgICAgWydzdGF0ZWhhbmRsZXInLCB7dmFsdWU6ICdub25lJywgLi4uUFJPUF9TVFJJTkd9XSxcbiAgICAgICAgICAgIFsndHJhbnNpdGlvbicsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgIFsndHlwZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgIFsnaWNvbnBvc2l0aW9uJywgUFJPUF9TVFJJTkddLFxuICAgICAgICBdXG4gICAgKTtcbiAgICBpZiAoaXNNb2JpbGVBcHAoKSkge1xuICAgICAgICBwcm9wcy5zZXQoJ3RyYW5zaXRpb24nLCB7dmFsdWU6ICdzbGlkZScsIC4uLlBST1BfU1RSSU5HfSk7XG4gICAgfVxuICAgIHJlZ2lzdGVyKCd3bS10YWJzJywgcHJvcHMpO1xufTtcbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5wcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9jb250YWluZXJzL3RhYnMvc3JjL3RhYnMucHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVoRyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFO0lBQzlCLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUNqQjtRQUNJLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQztRQUN0QixDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUM7UUFDckIsQ0FBQyxrQkFBa0IsRUFBRSxFQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxXQUFXLEVBQUMsQ0FBQztRQUNoRCxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUM7UUFDM0IsQ0FBQyxjQUFjLEVBQUUsRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsV0FBVyxFQUFDLENBQUM7UUFDaEQsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDO1FBQ3JCLENBQUMsZUFBZSxFQUFFLEVBQUMsS0FBSyxFQUFFLGVBQWUsRUFBRSxHQUFJLFdBQVcsRUFBQyxDQUFDO1FBQzVELENBQUMsTUFBTSxFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLFlBQVksRUFBQyxDQUFDO1FBQ3hDLENBQUMsY0FBYyxFQUFFLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLFdBQVcsRUFBQyxDQUFDO1FBQ2pELENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztRQUMzQixDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUM7UUFDckIsQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDO1FBQzdCLENBQUMsbUJBQW1CLEVBQUUsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsWUFBWSxFQUFDLENBQUM7S0FDeEQsQ0FDSixDQUFDO0lBQ0YsUUFBUSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQUk9QX0FOWSwgUFJPUF9CT09MRUFOLCBQUk9QX05VTUJFUiwgUFJPUF9TVFJJTkcsIHJlZ2lzdGVyfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyUHJvcHMgPSAoKSA9PiB7XG4gICAgY29uc3QgcHJvcHMgPSBuZXcgTWFwKFxuICAgICAgICBbXG4gICAgICAgICAgICBbJ2NsYXNzJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgWydkYXRhc2V0JywgUFJPUF9BTlldLFxuICAgICAgICAgICAgWydkZWZhdWx0cGFuZWluZGV4Jywge3ZhbHVlOiAwLCAuLi5QUk9QX05VTUJFUn1dLFxuICAgICAgICAgICAgWydqdXN0aWZpZWQnLCBQUk9QX0JPT0xFQU5dLFxuICAgICAgICAgICAgWyd0YWJzcG9zaXRpb24nLCB7dmFsdWU6ICd0b3AnLCAuLi5QUk9QX1NUUklOR31dLFxuICAgICAgICAgICAgWyduYW1lJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgWydub2RhdGFtZXNzYWdlJywge3ZhbHVlOiAnTm8gRGF0YSBGb3VuZCcsIC4uLiBQUk9QX1NUUklOR31dLFxuICAgICAgICAgICAgWydzaG93Jywge3ZhbHVlOiB0cnVlLCAuLi5QUk9QX0JPT0xFQU59XSxcbiAgICAgICAgICAgIFsnc3RhdGVoYW5kbGVyJywge3ZhbHVlOiAnbm9uZScsIC4uLlBST1BfU1RSSU5HfV0sXG4gICAgICAgICAgICBbJ3RyYW5zaXRpb24nLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBbJ3R5cGUnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBbJ2ljb25wb3NpdGlvbicsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgIFsnYXV0b3RhYmFjdGl2YXRpb24nLCB7dmFsdWU6IHRydWUsIC4uLlBST1BfQk9PTEVBTn1dXG4gICAgICAgIF1cbiAgICApO1xuICAgIHJlZ2lzdGVyKCd3bS10YWJzJywgcHJvcHMpO1xufTtcbiJdfQ==