@wavemaker/app-ng-runtime 11.8.0-next.141670 → 11.8.0-next.141673

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 (1449) hide show
  1. package/build-task/bundles/index.umd.js +33 -9
  2. package/build-task/esm2022/advanced/carousel/carousel-template/carousel-template.build.mjs +4 -2
  3. package/build-task/esm2022/advanced/carousel/carousel.build.mjs +1 -1
  4. package/build-task/esm2022/basic/default/label/label.build.mjs +1 -1
  5. package/build-task/esm2022/basic/progress/progress-bar/progress-bar.build.mjs +1 -1
  6. package/build-task/esm2022/containers/accordion/accordion.build.mjs +1 -1
  7. package/build-task/esm2022/containers/repeat-template.build.mjs +4 -2
  8. package/build-task/esm2022/containers/tabs/tabs.build.mjs +1 -1
  9. package/build-task/esm2022/data/form/form-field/form-field.build.mjs +1 -1
  10. package/build-task/esm2022/data/form/form.build.mjs +5 -2
  11. package/build-task/esm2022/data/list/list.build.mjs +1 -1
  12. package/build-task/esm2022/data/media-list/media-list.build.mjs +1 -1
  13. package/build-task/esm2022/data/table/table-column/table-column.build.mjs +1 -1
  14. package/build-task/esm2022/data/table/table.build.mjs +1 -1
  15. package/build-task/esm2022/dialogs/partial-dialog/partial-dialog.build.mjs +1 -1
  16. package/build-task/esm2022/input/file-upload/file-upload.build.mjs +1 -1
  17. package/build-task/esm2022/navigation/menu/menu.build.mjs +19 -2
  18. package/build-task/esm2022/navigation/popover/popover.build.mjs +1 -1
  19. package/build-task/esm2022/page/page-content/page-content.build.mjs +1 -1
  20. package/build-task/esm2022/page/page.build.mjs +3 -2
  21. package/build-task/esm2022/utils/utils.mjs +1 -1
  22. package/build-task/fesm2022/index.mjs +31 -6
  23. package/build-task/fesm2022/index.mjs.map +1 -1
  24. package/components/advanced/carousel/bundles/index.umd.js +26 -16
  25. package/components/advanced/carousel/carousel-template/carousel-template.directive.d.ts +2 -2
  26. package/components/advanced/carousel/carousel.directive.d.ts +2 -2
  27. package/components/advanced/carousel/esm2022/carousel-template/carousel-template.directive.mjs +12 -7
  28. package/components/advanced/carousel/esm2022/carousel.animator.mjs +3 -2
  29. package/components/advanced/carousel/esm2022/carousel.directive.mjs +12 -7
  30. package/components/advanced/carousel/esm2022/carousel.module.mjs +2 -2
  31. package/components/advanced/carousel/fesm2022/index.mjs +25 -14
  32. package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  33. package/components/advanced/login/bundles/index.umd.js +19 -13
  34. package/components/advanced/login/esm2022/login.component.mjs +17 -10
  35. package/components/advanced/login/esm2022/login.module.mjs +2 -2
  36. package/components/advanced/login/fesm2022/index.mjs +18 -11
  37. package/components/advanced/login/fesm2022/index.mjs.map +1 -1
  38. package/components/advanced/login/login.component.d.ts +2 -2
  39. package/components/advanced/marquee/bundles/index.umd.js +11 -6
  40. package/components/advanced/marquee/esm2022/marquee.directive.mjs +12 -7
  41. package/components/advanced/marquee/esm2022/marquee.module.mjs +2 -2
  42. package/components/advanced/marquee/fesm2022/index.mjs +13 -8
  43. package/components/advanced/marquee/fesm2022/index.mjs.map +1 -1
  44. package/components/advanced/marquee/marquee.directive.d.ts +2 -2
  45. package/components/base/bundles/index.umd.js +357 -270
  46. package/components/base/esm2022/components.module.mjs +2 -2
  47. package/components/base/esm2022/directives/show-in-device.directive.mjs +4 -4
  48. package/components/base/esm2022/pipes/custom-pipes.mjs +35 -34
  49. package/components/base/esm2022/pipes/image.pipe.mjs +2 -2
  50. package/components/base/esm2022/pipes/sanitize.pipe.mjs +3 -3
  51. package/components/base/esm2022/pipes/trust-as.pipe.mjs +3 -3
  52. package/components/base/esm2022/pipes/wm-pipe.mjs +3 -2
  53. package/components/base/esm2022/utils/data-utils.mjs +30 -29
  54. package/components/base/esm2022/utils/form-utils.mjs +48 -42
  55. package/components/base/esm2022/utils/live-utils.mjs +8 -7
  56. package/components/base/esm2022/utils/widget-utils.mjs +28 -27
  57. package/components/base/esm2022/widgets/common/base/base-container.component.mjs +8 -7
  58. package/components/base/esm2022/widgets/common/base/base-field-validations.mjs +24 -21
  59. package/components/base/esm2022/widgets/common/base/base.component.mjs +42 -16
  60. package/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +52 -18
  61. package/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +6 -5
  62. package/components/base/esm2022/widgets/common/base/stylable.component.mjs +3 -3
  63. package/components/base/esm2022/widgets/common/base/text-content.directive.mjs +3 -3
  64. package/components/base/esm2022/widgets/common/container/container.directive.mjs +12 -7
  65. package/components/base/esm2022/widgets/common/dialog/dialog.service.mjs +5 -4
  66. package/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +12 -7
  67. package/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +3 -3
  68. package/components/base/esm2022/widgets/common/message/message.component.mjs +16 -10
  69. package/components/base/esm2022/widgets/common/partial/partial.directive.mjs +14 -8
  70. package/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +9 -8
  71. package/components/base/esm2022/widgets/common/pull-to-refresh/pull-to-refresh.mjs +1 -1
  72. package/components/base/esm2022/widgets/common/redraw/redrawable.directive.mjs +4 -4
  73. package/components/base/esm2022/widgets/common/repeat-template/repeat-template.directive.mjs +12 -7
  74. package/components/base/esm2022/widgets/common/smooth-scroll/smooth-scroll.directive.mjs +11 -10
  75. package/components/base/esm2022/widgets/framework/deviceview.mjs +1 -1
  76. package/components/base/esm2022/widgets/framework/property-change-handler.mjs +3 -2
  77. package/components/base/esm2022/widgets/framework/styler.mjs +1 -1
  78. package/components/base/esm2022/widgets/framework/widget-props.mjs +1 -1
  79. package/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +4 -3
  80. package/components/base/esm2022/widgets/framework/widget-registry.mjs +1 -1
  81. package/components/base/fesm2022/index.mjs +362 -272
  82. package/components/base/fesm2022/index.mjs.map +1 -1
  83. package/components/base/pipes/custom-pipes.d.ts +1 -1
  84. package/components/base/utils/data-utils.d.ts +1 -0
  85. package/components/base/utils/widget-utils.d.ts +2 -2
  86. package/components/base/widgets/common/base/base-container.component.d.ts +1 -1
  87. package/components/base/widgets/common/base/base-field-validations.d.ts +1 -1
  88. package/components/base/widgets/common/base/base.component.d.ts +4 -2
  89. package/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +1 -1
  90. package/components/base/widgets/common/base/partial-container.directive.d.ts +1 -1
  91. package/components/base/widgets/common/container/container.directive.d.ts +2 -2
  92. package/components/base/widgets/common/item-template/item-template.directive.d.ts +2 -2
  93. package/components/base/widgets/common/message/message.component.d.ts +2 -2
  94. package/components/base/widgets/common/partial/partial.directive.d.ts +2 -2
  95. package/components/base/widgets/common/repeat-template/repeat-template.directive.d.ts +2 -2
  96. package/components/basic/default/anchor/anchor.component.d.ts +2 -2
  97. package/components/basic/default/audio/audio.component.d.ts +3 -2
  98. package/components/basic/default/bundles/index.umd.js +163 -119
  99. package/components/basic/default/esm2022/anchor/anchor.component.mjs +31 -27
  100. package/components/basic/default/esm2022/audio/audio.component.mjs +18 -11
  101. package/components/basic/default/esm2022/basic.module.mjs +2 -2
  102. package/components/basic/default/esm2022/html/html.directive.mjs +13 -8
  103. package/components/basic/default/esm2022/icon/icon.component.mjs +19 -14
  104. package/components/basic/default/esm2022/iframe/iframe.component.mjs +15 -9
  105. package/components/basic/default/esm2022/label/label.directive.mjs +15 -9
  106. package/components/basic/default/esm2022/picture/picture.directive.mjs +12 -7
  107. package/components/basic/default/esm2022/picture/picture.props.mjs +1 -1
  108. package/components/basic/default/esm2022/spinner/spinner.component.mjs +34 -30
  109. package/components/basic/default/esm2022/video/video.component.mjs +21 -17
  110. package/components/basic/default/fesm2022/index.mjs +162 -117
  111. package/components/basic/default/fesm2022/index.mjs.map +1 -1
  112. package/components/basic/default/html/html.directive.d.ts +2 -2
  113. package/components/basic/default/icon/icon.component.d.ts +2 -2
  114. package/components/basic/default/iframe/iframe.component.d.ts +2 -2
  115. package/components/basic/default/label/label.directive.d.ts +2 -2
  116. package/components/basic/default/picture/picture.directive.d.ts +2 -2
  117. package/components/basic/default/spinner/spinner.component.d.ts +2 -2
  118. package/components/basic/default/video/video.component.d.ts +2 -2
  119. package/components/basic/progress/bundles/index.umd.js +45 -32
  120. package/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +24 -17
  121. package/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +20 -12
  122. package/components/basic/progress/esm2022/progress.module.mjs +2 -2
  123. package/components/basic/progress/esm2022/utils.mjs +3 -3
  124. package/components/basic/progress/fesm2022/index.mjs +44 -30
  125. package/components/basic/progress/fesm2022/index.mjs.map +1 -1
  126. package/components/basic/progress/progress-bar/progress-bar.component.d.ts +2 -2
  127. package/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -2
  128. package/components/basic/rich-text-editor/bundles/index.umd.js +19 -13
  129. package/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +17 -10
  130. package/components/basic/rich-text-editor/esm2022/rich-text-editor.module.mjs +2 -2
  131. package/components/basic/rich-text-editor/fesm2022/index.mjs +18 -11
  132. package/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  133. package/components/basic/rich-text-editor/rich-text-editor.component.d.ts +2 -2
  134. package/components/basic/search/bundles/index.umd.js +185 -175
  135. package/components/basic/search/esm2022/data-provider/data-provider.mjs +1 -1
  136. package/components/basic/search/esm2022/data-provider/local-data-provider.mjs +26 -23
  137. package/components/basic/search/esm2022/data-provider/remote-data-provider.mjs +12 -11
  138. package/components/basic/search/esm2022/scrollable.directive.mjs +3 -3
  139. package/components/basic/search/esm2022/search.component.mjs +147 -138
  140. package/components/basic/search/esm2022/search.module.mjs +2 -2
  141. package/components/basic/search/fesm2022/index.mjs +185 -174
  142. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  143. package/components/basic/search/search.component.d.ts +2 -2
  144. package/components/basic/tree/bundles/index.umd.js +23 -17
  145. package/components/basic/tree/esm2022/tree.component.mjs +21 -14
  146. package/components/basic/tree/esm2022/tree.module.mjs +2 -2
  147. package/components/basic/tree/fesm2022/index.mjs +22 -15
  148. package/components/basic/tree/fesm2022/index.mjs.map +1 -1
  149. package/components/basic/tree/tree.component.d.ts +2 -2
  150. package/components/chart/bundles/index.umd.js +97 -84
  151. package/components/chart/chart.component.d.ts +3 -3
  152. package/components/chart/chart.utils.d.ts +3 -3
  153. package/components/chart/esm2022/chart.component.mjs +82 -68
  154. package/components/chart/esm2022/chart.module.mjs +2 -2
  155. package/components/chart/esm2022/chart.utils.mjs +14 -13
  156. package/components/chart/fesm2022/index.mjs +95 -81
  157. package/components/chart/fesm2022/index.mjs.map +1 -1
  158. package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +2 -2
  159. package/components/containers/accordion/accordion.directive.d.ts +2 -2
  160. package/components/containers/accordion/bundles/index.umd.js +51 -40
  161. package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +23 -17
  162. package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.props.mjs +4 -4
  163. package/components/containers/accordion/esm2022/accordion.directive.mjs +25 -19
  164. package/components/containers/accordion/esm2022/accordion.module.mjs +2 -2
  165. package/components/containers/accordion/fesm2022/index.mjs +50 -38
  166. package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  167. package/components/containers/layout-grid/bundles/index.umd.js +32 -17
  168. package/components/containers/layout-grid/esm2022/layout-grid-column/layout-grid-column.directive.mjs +13 -8
  169. package/components/containers/layout-grid/esm2022/layout-grid-row/layout-grid-row.directive.mjs +12 -7
  170. package/components/containers/layout-grid/esm2022/layout-grid.directive.mjs +12 -7
  171. package/components/containers/layout-grid/esm2022/layout-grid.module.mjs +2 -2
  172. package/components/containers/layout-grid/fesm2022/index.mjs +34 -19
  173. package/components/containers/layout-grid/fesm2022/index.mjs.map +1 -1
  174. package/components/containers/layout-grid/layout-grid-column/layout-grid-column.directive.d.ts +2 -2
  175. package/components/containers/layout-grid/layout-grid-row/layout-grid-row.directive.d.ts +2 -2
  176. package/components/containers/layout-grid/layout-grid.directive.d.ts +2 -2
  177. package/components/containers/linear-layout/bundles/index.umd.js +21 -11
  178. package/components/containers/linear-layout/esm2022/linear-layout-item/linear-layout-item.directive.mjs +12 -7
  179. package/components/containers/linear-layout/esm2022/linear-layout.directive.mjs +12 -7
  180. package/components/containers/linear-layout/esm2022/linear-layout.module.mjs +2 -2
  181. package/components/containers/linear-layout/fesm2022/index.mjs +23 -13
  182. package/components/containers/linear-layout/fesm2022/index.mjs.map +1 -1
  183. package/components/containers/linear-layout/linear-layout-item/linear-layout-item.directive.d.ts +2 -2
  184. package/components/containers/linear-layout/linear-layout.directive.d.ts +2 -2
  185. package/components/containers/panel/bundles/index.umd.js +85 -85
  186. package/components/containers/panel/esm2022/panel.component.mjs +83 -82
  187. package/components/containers/panel/esm2022/panel.module.mjs +2 -2
  188. package/components/containers/panel/fesm2022/index.mjs +84 -83
  189. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  190. package/components/containers/panel/panel.component.d.ts +3 -3
  191. package/components/containers/tabs/bundles/index.umd.js +74 -63
  192. package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +14 -8
  193. package/components/containers/tabs/esm2022/tab-pane/tab-pane.props.mjs +4 -4
  194. package/components/containers/tabs/esm2022/tabs.animator.mjs +1 -1
  195. package/components/containers/tabs/esm2022/tabs.component.mjs +57 -51
  196. package/components/containers/tabs/esm2022/tabs.module.mjs +2 -2
  197. package/components/containers/tabs/esm2022/tabs.props.mjs +1 -1
  198. package/components/containers/tabs/fesm2022/index.mjs +73 -61
  199. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  200. package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +2 -2
  201. package/components/containers/tabs/tabs.component.d.ts +2 -2
  202. package/components/containers/tile/bundles/index.umd.js +11 -6
  203. package/components/containers/tile/esm2022/tile.directive.mjs +12 -7
  204. package/components/containers/tile/esm2022/tile.module.mjs +2 -2
  205. package/components/containers/tile/fesm2022/index.mjs +13 -8
  206. package/components/containers/tile/fesm2022/index.mjs.map +1 -1
  207. package/components/containers/tile/tile.directive.d.ts +2 -2
  208. package/components/containers/wizard/bundles/index.umd.js +102 -98
  209. package/components/containers/wizard/esm2022/wizard-step/wizard-step.directive.mjs +13 -8
  210. package/components/containers/wizard/esm2022/wizard.component.mjs +92 -93
  211. package/components/containers/wizard/esm2022/wizard.module.mjs +2 -2
  212. package/components/containers/wizard/fesm2022/index.mjs +104 -100
  213. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  214. package/components/containers/wizard/wizard-step/wizard-step.directive.d.ts +2 -2
  215. package/components/containers/wizard/wizard.component.d.ts +2 -2
  216. package/components/data/card/bundles/index.umd.js +70 -50
  217. package/components/data/card/card-actions/card-actions.directive.d.ts +2 -2
  218. package/components/data/card/card-content/card-content.component.d.ts +2 -2
  219. package/components/data/card/card-footer/card-footer.directive.d.ts +2 -2
  220. package/components/data/card/card.component.d.ts +2 -2
  221. package/components/data/card/esm2022/card-actions/card-actions.directive.mjs +12 -7
  222. package/components/data/card/esm2022/card-content/card-content.component.mjs +15 -9
  223. package/components/data/card/esm2022/card-footer/card-footer.directive.mjs +12 -7
  224. package/components/data/card/esm2022/card.component.mjs +38 -34
  225. package/components/data/card/esm2022/card.module.mjs +2 -2
  226. package/components/data/card/fesm2022/index.mjs +72 -52
  227. package/components/data/card/fesm2022/index.mjs.map +1 -1
  228. package/components/data/form/bundles/index.umd.js +202 -188
  229. package/components/data/form/esm2022/form-action/form-action.directive.mjs +15 -9
  230. package/components/data/form/esm2022/form-field/form-field.directive.mjs +21 -16
  231. package/components/data/form/esm2022/form-field/form-field.props.mjs +1 -1
  232. package/components/data/form/esm2022/form-widget.directive.mjs +4 -4
  233. package/components/data/form/esm2022/form.component.mjs +139 -135
  234. package/components/data/form/esm2022/form.module.mjs +2 -2
  235. package/components/data/form/esm2022/form.props.mjs +1 -1
  236. package/components/data/form/esm2022/live-actions/dependson.directive.mjs +4 -4
  237. package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +4 -4
  238. package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +7 -6
  239. package/components/data/form/esm2022/live-form/live-form.directive.mjs +18 -15
  240. package/components/data/form/fesm2022/index.mjs +206 -191
  241. package/components/data/form/fesm2022/index.mjs.map +1 -1
  242. package/components/data/form/form-action/form-action.directive.d.ts +2 -2
  243. package/components/data/form/form-field/form-field.directive.d.ts +2 -2
  244. package/components/data/form/form.component.d.ts +4 -4
  245. package/components/data/form/live-form/live-form.directive.d.ts +1 -1
  246. package/components/data/list/bundles/index.umd.js +826 -818
  247. package/components/data/list/esm2022/list-item.directive.mjs +4 -4
  248. package/components/data/list/esm2022/list.animator.mjs +5 -3
  249. package/components/data/list/esm2022/list.component.mjs +818 -810
  250. package/components/data/list/esm2022/list.module.mjs +2 -2
  251. package/components/data/list/fesm2022/index.mjs +825 -816
  252. package/components/data/list/fesm2022/index.mjs.map +1 -1
  253. package/components/data/list/list.component.d.ts +55 -54
  254. package/components/data/live-table/bundles/index.umd.js +13 -7
  255. package/components/data/live-table/esm2022/live-table.component.mjs +14 -8
  256. package/components/data/live-table/esm2022/live-table.module.mjs +2 -2
  257. package/components/data/live-table/fesm2022/index.mjs +15 -9
  258. package/components/data/live-table/fesm2022/index.mjs.map +1 -1
  259. package/components/data/live-table/live-table.component.d.ts +2 -2
  260. package/components/data/pagination/bundles/index.umd.js +111 -109
  261. package/components/data/pagination/esm2022/pagination.component.mjs +109 -106
  262. package/components/data/pagination/esm2022/pagination.module.mjs +2 -2
  263. package/components/data/pagination/fesm2022/index.mjs +110 -107
  264. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  265. package/components/data/pagination/pagination.component.d.ts +2 -2
  266. package/components/data/table/bundles/index.umd.js +311 -268
  267. package/components/data/table/esm2022/table-action/table-action.directive.mjs +15 -9
  268. package/components/data/table/esm2022/table-column/table-column.directive.mjs +40 -25
  269. package/components/data/table/esm2022/table-column/table-column.props.mjs +2 -2
  270. package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +13 -8
  271. package/components/data/table/esm2022/table-cud.directive.mjs +10 -9
  272. package/components/data/table/esm2022/table-filter.directive.mjs +56 -58
  273. package/components/data/table/esm2022/table-row/table-row.directive.mjs +13 -8
  274. package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +14 -8
  275. package/components/data/table/esm2022/table.component.mjs +162 -149
  276. package/components/data/table/esm2022/table.module.mjs +2 -2
  277. package/components/data/table/esm2022/table.props.mjs +2 -2
  278. package/components/data/table/fesm2022/index.mjs +310 -266
  279. package/components/data/table/fesm2022/index.mjs.map +1 -1
  280. package/components/data/table/table-action/table-action.directive.d.ts +2 -2
  281. package/components/data/table/table-column/table-column.directive.d.ts +8 -8
  282. package/components/data/table/table-column-group/table-column-group.directive.d.ts +2 -2
  283. package/components/data/table/table-row/table-row.directive.d.ts +2 -2
  284. package/components/data/table/table-row-action/table-row-action.directive.d.ts +2 -2
  285. package/components/data/table/table.component.d.ts +4 -4
  286. package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +2 -2
  287. package/components/dialogs/alert-dialog/bundles/index.umd.js +15 -9
  288. package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +16 -10
  289. package/components/dialogs/alert-dialog/esm2022/alert-dialog.module.mjs +2 -2
  290. package/components/dialogs/alert-dialog/fesm2022/index.mjs +17 -11
  291. package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  292. package/components/dialogs/confirm-dialog/bundles/index.umd.js +17 -11
  293. package/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +2 -2
  294. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +18 -12
  295. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.module.mjs +2 -2
  296. package/components/dialogs/confirm-dialog/fesm2022/index.mjs +19 -13
  297. package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  298. package/components/dialogs/default/base-dialog.d.ts +2 -2
  299. package/components/dialogs/default/bundles/index.umd.js +75 -71
  300. package/components/dialogs/default/dialog-footer/dialog-footer.directive.d.ts +2 -2
  301. package/components/dialogs/default/esm2022/base-dialog.mjs +14 -9
  302. package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +4 -4
  303. package/components/dialogs/default/esm2022/dialog-footer/dialog-footer.directive.mjs +12 -7
  304. package/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +49 -55
  305. package/components/dialogs/default/esm2022/dialog.module.mjs +2 -2
  306. package/components/dialogs/default/fesm2022/index.mjs +76 -72
  307. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  308. package/components/dialogs/design-dialog/bundles/index.umd.js +20 -14
  309. package/components/dialogs/design-dialog/dialog.component.d.ts +2 -2
  310. package/components/dialogs/design-dialog/esm2022/design-dialog.module.mjs +2 -2
  311. package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +21 -15
  312. package/components/dialogs/design-dialog/fesm2022/index.mjs +22 -16
  313. package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  314. package/components/dialogs/iframe-dialog/bundles/index.umd.js +20 -14
  315. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +21 -15
  316. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.module.mjs +2 -2
  317. package/components/dialogs/iframe-dialog/fesm2022/index.mjs +22 -16
  318. package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  319. package/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +2 -2
  320. package/components/dialogs/login-dialog/bundles/index.umd.js +4 -4
  321. package/components/dialogs/login-dialog/esm2022/login-dialog.directive.mjs +4 -4
  322. package/components/dialogs/login-dialog/esm2022/login-dialog.module.mjs +2 -2
  323. package/components/dialogs/login-dialog/fesm2022/index.mjs +4 -4
  324. package/components/dialogs/login-dialog/fesm2022/index.mjs.map +1 -1
  325. package/components/dialogs/partial-dialog/bundles/index.umd.js +16 -10
  326. package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +17 -11
  327. package/components/dialogs/partial-dialog/esm2022/partial-dialog.module.mjs +2 -2
  328. package/components/dialogs/partial-dialog/fesm2022/index.mjs +18 -12
  329. package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  330. package/components/dialogs/partial-dialog/partial-dialog.component.d.ts +2 -2
  331. package/components/input/calendar/bundles/index.umd.js +46 -38
  332. package/components/input/calendar/calendar.component.d.ts +2 -2
  333. package/components/input/calendar/esm2022/calendar.component.mjs +44 -35
  334. package/components/input/calendar/esm2022/calendar.module.mjs +2 -2
  335. package/components/input/calendar/fesm2022/index.mjs +45 -36
  336. package/components/input/calendar/fesm2022/index.mjs.map +1 -1
  337. package/components/input/chips/bundles/index.umd.js +69 -61
  338. package/components/input/chips/chips.component.d.ts +3 -3
  339. package/components/input/chips/esm2022/chips.component.mjs +67 -58
  340. package/components/input/chips/esm2022/chips.module.mjs +2 -2
  341. package/components/input/chips/fesm2022/index.mjs +67 -58
  342. package/components/input/chips/fesm2022/index.mjs.map +1 -1
  343. package/components/input/color-picker/bundles/index.umd.js +24 -11
  344. package/components/input/color-picker/color-picker.component.d.ts +2 -2
  345. package/components/input/color-picker/esm2022/color-picker.component.mjs +25 -12
  346. package/components/input/color-picker/esm2022/color-picker.module.mjs +2 -2
  347. package/components/input/color-picker/fesm2022/index.mjs +25 -12
  348. package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  349. package/components/input/currency/bundles/index.umd.js +18 -11
  350. package/components/input/currency/currency.component.d.ts +2 -2
  351. package/components/input/currency/esm2022/currency.component.mjs +19 -12
  352. package/components/input/currency/esm2022/currency.module.mjs +2 -2
  353. package/components/input/currency/fesm2022/index.mjs +19 -12
  354. package/components/input/currency/fesm2022/index.mjs.map +1 -1
  355. package/components/input/default/base-form.component.d.ts +3 -3
  356. package/components/input/default/bundles/index.umd.js +600 -482
  357. package/components/input/default/button/button.component.d.ts +2 -2
  358. package/components/input/default/button-group/button-group.directive.d.ts +2 -2
  359. package/components/input/default/checkbox/checkbox.component.d.ts +3 -2
  360. package/components/input/default/checkboxset/checkboxset.component.d.ts +2 -2
  361. package/components/input/default/composite/composite.directive.d.ts +2 -2
  362. package/components/input/default/dataset-aware-form.component.d.ts +4 -4
  363. package/components/input/default/esm2022/base-form-custom.component.mjs +3 -3
  364. package/components/input/default/esm2022/base-form.component.mjs +17 -11
  365. package/components/input/default/esm2022/button/button.component.mjs +32 -28
  366. package/components/input/default/esm2022/button-group/button-group.directive.mjs +12 -7
  367. package/components/input/default/esm2022/caption-position.directive.mjs +6 -6
  368. package/components/input/default/esm2022/checkbox/checkbox.component.mjs +24 -15
  369. package/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +107 -103
  370. package/components/input/default/esm2022/composite/composite.directive.mjs +12 -7
  371. package/components/input/default/esm2022/dataset-aware-form.component.mjs +32 -26
  372. package/components/input/default/esm2022/input.module.mjs +2 -2
  373. package/components/input/default/esm2022/number/number.component.mjs +17 -10
  374. package/components/input/default/esm2022/radioset/radioset.component.mjs +105 -102
  375. package/components/input/default/esm2022/select/select.component.mjs +69 -68
  376. package/components/input/default/esm2022/switch/switch.component.mjs +38 -31
  377. package/components/input/default/esm2022/text/base/base-input.mjs +16 -10
  378. package/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +21 -11
  379. package/components/input/default/esm2022/text/color/input-color.component.mjs +21 -11
  380. package/components/input/default/esm2022/text/email/input-email.component.mjs +20 -11
  381. package/components/input/default/esm2022/text/locale/number-locale.mjs +35 -24
  382. package/components/input/default/esm2022/text/number/input-number.component.mjs +21 -12
  383. package/components/input/default/esm2022/text/text/input-text.component.mjs +20 -11
  384. package/components/input/default/esm2022/textarea/textarea.component.mjs +21 -12
  385. package/components/input/default/fesm2022/index.mjs +603 -483
  386. package/components/input/default/fesm2022/index.mjs.map +1 -1
  387. package/components/input/default/number/number.component.d.ts +2 -2
  388. package/components/input/default/radioset/radioset.component.d.ts +2 -2
  389. package/components/input/default/select/select.component.d.ts +3 -4
  390. package/components/input/default/switch/switch.component.d.ts +2 -2
  391. package/components/input/default/text/base/base-input.d.ts +2 -2
  392. package/components/input/default/text/calendar/input-calendar.component.d.ts +2 -2
  393. package/components/input/default/text/color/input-color.component.d.ts +2 -2
  394. package/components/input/default/text/email/input-email.component.d.ts +2 -2
  395. package/components/input/default/text/locale/number-locale.d.ts +1 -1
  396. package/components/input/default/text/number/input-number.component.d.ts +2 -2
  397. package/components/input/default/text/text/input-text.component.d.ts +2 -2
  398. package/components/input/default/textarea/textarea.component.d.ts +2 -2
  399. package/components/input/epoch/base-date-time.component.d.ts +2 -2
  400. package/components/input/epoch/bundles/index.umd.js +221 -162
  401. package/components/input/epoch/date/date.component.d.ts +3 -2
  402. package/components/input/epoch/date-time/date-time.component.d.ts +2 -2
  403. package/components/input/epoch/esm2022/base-date-time.component.mjs +45 -36
  404. package/components/input/epoch/esm2022/date/date.component.mjs +48 -23
  405. package/components/input/epoch/esm2022/date/date.props.mjs +2 -2
  406. package/components/input/epoch/esm2022/date/imaskUtil.mjs +8 -2
  407. package/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +42 -41
  408. package/components/input/epoch/esm2022/date-time/date-time.component.mjs +47 -36
  409. package/components/input/epoch/esm2022/epoch.module.mjs +2 -2
  410. package/components/input/epoch/esm2022/picker/picker.component.mjs +7 -5
  411. package/components/input/epoch/esm2022/time/time.component.mjs +33 -23
  412. package/components/input/epoch/fesm2022/index.mjs +219 -159
  413. package/components/input/epoch/fesm2022/index.mjs.map +1 -1
  414. package/components/input/epoch/time/time.component.d.ts +2 -2
  415. package/components/input/file-upload/bundles/index.umd.js +133 -135
  416. package/components/input/file-upload/esm2022/file-upload.component.mjs +131 -132
  417. package/components/input/file-upload/esm2022/file-upload.module.mjs +2 -2
  418. package/components/input/file-upload/fesm2022/index.mjs +132 -133
  419. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  420. package/components/input/file-upload/file-upload.component.d.ts +2 -2
  421. package/components/input/rating/bundles/index.umd.js +57 -50
  422. package/components/input/rating/esm2022/rating.component.mjs +55 -47
  423. package/components/input/rating/esm2022/rating.module.mjs +2 -2
  424. package/components/input/rating/fesm2022/index.mjs +55 -47
  425. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  426. package/components/input/rating/rating.component.d.ts +2 -2
  427. package/components/input/slider/bundles/index.umd.js +21 -12
  428. package/components/input/slider/esm2022/slider.component.mjs +22 -13
  429. package/components/input/slider/esm2022/slider.module.mjs +2 -2
  430. package/components/input/slider/fesm2022/index.mjs +22 -13
  431. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  432. package/components/input/slider/slider.component.d.ts +2 -2
  433. package/components/navigation/breadcrumb/breadcrumb.component.d.ts +2 -2
  434. package/components/navigation/breadcrumb/bundles/index.umd.js +33 -28
  435. package/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +34 -29
  436. package/components/navigation/breadcrumb/esm2022/breadcrumb.module.mjs +2 -2
  437. package/components/navigation/breadcrumb/fesm2022/index.mjs +35 -30
  438. package/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  439. package/components/navigation/menu/bundles/index.umd.js +154 -137
  440. package/components/navigation/menu/esm2022/menu-adapator.component.mjs +13 -7
  441. package/components/navigation/menu/esm2022/menu-dropdown/menu-dropdown.component.mjs +5 -4
  442. package/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +27 -26
  443. package/components/navigation/menu/esm2022/menu.component.mjs +44 -40
  444. package/components/navigation/menu/esm2022/menu.module.mjs +2 -2
  445. package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +12 -7
  446. package/components/navigation/menu/esm2022/nav/nav.component.mjs +60 -56
  447. package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +3 -3
  448. package/components/navigation/menu/fesm2022/index.mjs +153 -135
  449. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  450. package/components/navigation/menu/menu-adapator.component.d.ts +1 -1
  451. package/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +12 -1
  452. package/components/navigation/menu/menu.component.d.ts +2 -2
  453. package/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +2 -2
  454. package/components/navigation/menu/nav/nav.component.d.ts +2 -2
  455. package/components/navigation/navbar/bundles/index.umd.js +29 -22
  456. package/components/navigation/navbar/esm2022/navbar.component.mjs +30 -23
  457. package/components/navigation/navbar/esm2022/navbar.module.mjs +2 -2
  458. package/components/navigation/navbar/fesm2022/index.mjs +31 -24
  459. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  460. package/components/navigation/navbar/navbar.component.d.ts +2 -2
  461. package/components/navigation/popover/bundles/index.umd.js +18 -11
  462. package/components/navigation/popover/esm2022/popover.component.mjs +19 -12
  463. package/components/navigation/popover/esm2022/popover.module.mjs +2 -2
  464. package/components/navigation/popover/fesm2022/index.mjs +20 -13
  465. package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  466. package/components/navigation/popover/popover.component.d.ts +2 -2
  467. package/components/page/default/bundles/index.umd.js +63 -31
  468. package/components/page/default/content/content.component.d.ts +2 -2
  469. package/components/page/default/esm2022/content/content.component.mjs +13 -7
  470. package/components/page/default/esm2022/layout.directive.mjs +12 -7
  471. package/components/page/default/esm2022/page-content/page-content.component.mjs +13 -7
  472. package/components/page/default/esm2022/page.directive.mjs +12 -7
  473. package/components/page/default/esm2022/page.module.mjs +2 -2
  474. package/components/page/default/esm2022/router-outlet.directive.mjs +12 -7
  475. package/components/page/default/esm2022/spa-page.directive.mjs +12 -7
  476. package/components/page/default/fesm2022/index.mjs +65 -33
  477. package/components/page/default/fesm2022/index.mjs.map +1 -1
  478. package/components/page/default/layout.directive.d.ts +2 -2
  479. package/components/page/default/page-content/page-content.component.d.ts +2 -2
  480. package/components/page/default/page.directive.d.ts +2 -2
  481. package/components/page/default/router-outlet.directive.d.ts +2 -2
  482. package/components/page/default/spa-page.directive.d.ts +2 -2
  483. package/components/page/footer/bundles/index.umd.js +11 -6
  484. package/components/page/footer/esm2022/footer.directive.mjs +12 -7
  485. package/components/page/footer/esm2022/footer.module.mjs +2 -2
  486. package/components/page/footer/fesm2022/index.mjs +13 -8
  487. package/components/page/footer/fesm2022/index.mjs.map +1 -1
  488. package/components/page/footer/footer.directive.d.ts +2 -2
  489. package/components/page/header/bundles/index.umd.js +12 -6
  490. package/components/page/header/esm2022/header.component.mjs +13 -7
  491. package/components/page/header/esm2022/header.module.mjs +2 -2
  492. package/components/page/header/fesm2022/index.mjs +14 -8
  493. package/components/page/header/fesm2022/index.mjs.map +1 -1
  494. package/components/page/header/header.component.d.ts +2 -2
  495. package/components/page/left-panel/bundles/index.umd.js +12 -7
  496. package/components/page/left-panel/esm2022/left-panel.animator.mjs +1 -1
  497. package/components/page/left-panel/esm2022/left-panel.directive.mjs +13 -8
  498. package/components/page/left-panel/esm2022/left-panel.module.mjs +2 -2
  499. package/components/page/left-panel/fesm2022/index.mjs +14 -9
  500. package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  501. package/components/page/left-panel/left-panel.directive.d.ts +2 -2
  502. package/components/page/right-panel/bundles/index.umd.js +11 -6
  503. package/components/page/right-panel/esm2022/right-panel.directive.mjs +12 -7
  504. package/components/page/right-panel/esm2022/right-panel.module.mjs +2 -2
  505. package/components/page/right-panel/fesm2022/index.mjs +13 -8
  506. package/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  507. package/components/page/right-panel/right-panel.directive.d.ts +2 -2
  508. package/components/page/top-nav/bundles/index.umd.js +11 -6
  509. package/components/page/top-nav/esm2022/top-nav.directive.mjs +12 -7
  510. package/components/page/top-nav/esm2022/top-nav.module.mjs +2 -2
  511. package/components/page/top-nav/fesm2022/index.mjs +13 -8
  512. package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  513. package/components/page/top-nav/top-nav.directive.d.ts +2 -2
  514. package/components/prefab/bundles/index.umd.js +28 -18
  515. package/components/prefab/esm2022/prefab-container/prefab-container.directive.mjs +14 -8
  516. package/components/prefab/esm2022/prefab.directive.mjs +15 -9
  517. package/components/prefab/esm2022/prefab.module.mjs +2 -2
  518. package/components/prefab/fesm2022/index.mjs +26 -15
  519. package/components/prefab/fesm2022/index.mjs.map +1 -1
  520. package/components/prefab/prefab-container/prefab-container.directive.d.ts +2 -2
  521. package/components/prefab/prefab.directive.d.ts +2 -2
  522. package/core/bundles/index.umd.js +135 -146
  523. package/core/esm2022/core.module.mjs +2 -2
  524. package/core/esm2022/public_api.mjs +2 -2
  525. package/core/esm2022/services/constant.service.mjs +2 -2
  526. package/core/esm2022/services/field-type.service.mjs +5 -4
  527. package/core/esm2022/services/field-widget.service.mjs +5 -4
  528. package/core/esm2022/services/pagination.service.mjs +8 -7
  529. package/core/esm2022/services/script-loader.service.mjs +3 -3
  530. package/core/esm2022/services/state-persistence.service.mjs +18 -17
  531. package/core/esm2022/services/user-custom-pipe-manager.service.mjs +2 -2
  532. package/core/esm2022/services/utils.service.mjs +5 -4
  533. package/core/esm2022/services/viewport.service.mjs +5 -4
  534. package/core/esm2022/utils/build-utils.mjs +5 -4
  535. package/core/esm2022/utils/dom.mjs +1 -1
  536. package/core/esm2022/utils/event-notifier.mjs +1 -1
  537. package/core/esm2022/utils/expression-parser.mjs +6 -5
  538. package/core/esm2022/utils/id-generator.mjs +1 -1
  539. package/core/esm2022/utils/lru-cache.mjs +3 -2
  540. package/core/esm2022/utils/utils.mjs +79 -82
  541. package/core/esm2022/utils/watcher.mjs +9 -7
  542. package/core/esm2022/utils/wm-project-properties.mjs +1 -1
  543. package/core/fesm2022/index.mjs +134 -140
  544. package/core/fesm2022/index.mjs.map +1 -1
  545. package/core/public_api.d.ts +1 -1
  546. package/core/services/pagination.service.d.ts +1 -1
  547. package/core/utils/utils.d.ts +5 -9
  548. package/http/bundles/index.umd.js +10 -10
  549. package/http/esm2022/http-service.module.mjs +2 -2
  550. package/http/esm2022/http.service.mjs +7 -6
  551. package/http/esm2022/wm-http-request.mjs +1 -1
  552. package/http/esm2022/wm-http-response.mjs +1 -1
  553. package/http/fesm2022/index.mjs +7 -6
  554. package/http/fesm2022/index.mjs.map +1 -1
  555. package/locales/angular/global/af-na.js +4 -4
  556. package/locales/angular/global/af.js +4 -4
  557. package/locales/angular/global/agq.js +4 -4
  558. package/locales/angular/global/ak.js +4 -4
  559. package/locales/angular/global/am.js +4 -4
  560. package/locales/angular/global/ar-ae.js +4 -4
  561. package/locales/angular/global/ar-bh.js +4 -4
  562. package/locales/angular/global/ar-dj.js +4 -4
  563. package/locales/angular/global/ar-dz.js +4 -4
  564. package/locales/angular/global/ar-eg.js +4 -4
  565. package/locales/angular/global/ar-eh.js +4 -4
  566. package/locales/angular/global/ar-er.js +4 -4
  567. package/locales/angular/global/ar-il.js +4 -4
  568. package/locales/angular/global/ar-iq.js +4 -4
  569. package/locales/angular/global/ar-jo.js +4 -4
  570. package/locales/angular/global/ar-km.js +4 -4
  571. package/locales/angular/global/ar-kw.js +4 -4
  572. package/locales/angular/global/ar-lb.js +4 -4
  573. package/locales/angular/global/ar-ly.js +4 -4
  574. package/locales/angular/global/ar-ma.js +4 -4
  575. package/locales/angular/global/ar-mr.js +4 -4
  576. package/locales/angular/global/ar-om.js +4 -4
  577. package/locales/angular/global/ar-ps.js +4 -4
  578. package/locales/angular/global/ar-qa.js +4 -4
  579. package/locales/angular/global/ar-sa.js +4 -4
  580. package/locales/angular/global/ar-sd.js +4 -4
  581. package/locales/angular/global/ar-so.js +4 -4
  582. package/locales/angular/global/ar-ss.js +4 -4
  583. package/locales/angular/global/ar-sy.js +4 -4
  584. package/locales/angular/global/ar-td.js +4 -4
  585. package/locales/angular/global/ar-tn.js +4 -4
  586. package/locales/angular/global/ar-ye.js +4 -4
  587. package/locales/angular/global/ar.js +4 -4
  588. package/locales/angular/global/as.js +4 -4
  589. package/locales/angular/global/asa.js +4 -4
  590. package/locales/angular/global/ast.js +4 -4
  591. package/locales/angular/global/az-cyrl.js +4 -4
  592. package/locales/angular/global/az-latn.js +4 -4
  593. package/locales/angular/global/az.js +4 -4
  594. package/locales/angular/global/bas.js +4 -4
  595. package/locales/angular/global/be-tarask.js +4 -4
  596. package/locales/angular/global/be.js +4 -4
  597. package/locales/angular/global/bem.js +4 -4
  598. package/locales/angular/global/bez.js +4 -4
  599. package/locales/angular/global/bg.js +4 -4
  600. package/locales/angular/global/bm.js +4 -4
  601. package/locales/angular/global/bn-in.js +4 -4
  602. package/locales/angular/global/bn.js +4 -4
  603. package/locales/angular/global/bo-in.js +4 -4
  604. package/locales/angular/global/bo.js +4 -4
  605. package/locales/angular/global/br.js +4 -4
  606. package/locales/angular/global/brx.js +4 -4
  607. package/locales/angular/global/bs-cyrl.js +4 -4
  608. package/locales/angular/global/bs-latn.js +4 -4
  609. package/locales/angular/global/bs.js +4 -4
  610. package/locales/angular/global/ca-ad.js +4 -4
  611. package/locales/angular/global/ca-es-valencia.js +4 -4
  612. package/locales/angular/global/ca-fr.js +4 -4
  613. package/locales/angular/global/ca-it.js +4 -4
  614. package/locales/angular/global/ca.js +4 -4
  615. package/locales/angular/global/ccp-in.js +4 -4
  616. package/locales/angular/global/ccp.js +4 -4
  617. package/locales/angular/global/ce.js +4 -4
  618. package/locales/angular/global/ceb.js +4 -4
  619. package/locales/angular/global/cgg.js +4 -4
  620. package/locales/angular/global/chr.js +4 -4
  621. package/locales/angular/global/ckb-ir.js +4 -4
  622. package/locales/angular/global/ckb.js +4 -4
  623. package/locales/angular/global/cs.js +4 -4
  624. package/locales/angular/global/cy.js +4 -4
  625. package/locales/angular/global/da-gl.js +4 -4
  626. package/locales/angular/global/da.js +4 -4
  627. package/locales/angular/global/dav.js +4 -4
  628. package/locales/angular/global/de-at.js +4 -4
  629. package/locales/angular/global/de-be.js +4 -4
  630. package/locales/angular/global/de-ch.js +4 -4
  631. package/locales/angular/global/de-it.js +4 -4
  632. package/locales/angular/global/de-li.js +4 -4
  633. package/locales/angular/global/de-lu.js +4 -4
  634. package/locales/angular/global/de.js +4 -4
  635. package/locales/angular/global/dje.js +4 -4
  636. package/locales/angular/global/doi.js +4 -4
  637. package/locales/angular/global/dsb.js +4 -4
  638. package/locales/angular/global/dua.js +4 -4
  639. package/locales/angular/global/dyo.js +4 -4
  640. package/locales/angular/global/dz.js +4 -4
  641. package/locales/angular/global/ebu.js +4 -4
  642. package/locales/angular/global/ee-tg.js +4 -4
  643. package/locales/angular/global/ee.js +4 -4
  644. package/locales/angular/global/el-cy.js +4 -4
  645. package/locales/angular/global/el.js +4 -4
  646. package/locales/angular/global/en-001.js +4 -4
  647. package/locales/angular/global/en-150.js +4 -4
  648. package/locales/angular/global/en-ae.js +4 -4
  649. package/locales/angular/global/en-ag.js +4 -4
  650. package/locales/angular/global/en-ai.js +4 -4
  651. package/locales/angular/global/en-as.js +4 -4
  652. package/locales/angular/global/en-at.js +4 -4
  653. package/locales/angular/global/en-au.js +4 -4
  654. package/locales/angular/global/en-bb.js +4 -4
  655. package/locales/angular/global/en-be.js +4 -4
  656. package/locales/angular/global/en-bi.js +4 -4
  657. package/locales/angular/global/en-bm.js +4 -4
  658. package/locales/angular/global/en-bs.js +4 -4
  659. package/locales/angular/global/en-bw.js +4 -4
  660. package/locales/angular/global/en-bz.js +4 -4
  661. package/locales/angular/global/en-ca.js +4 -4
  662. package/locales/angular/global/en-cc.js +4 -4
  663. package/locales/angular/global/en-ch.js +4 -4
  664. package/locales/angular/global/en-ck.js +4 -4
  665. package/locales/angular/global/en-cm.js +4 -4
  666. package/locales/angular/global/en-cx.js +4 -4
  667. package/locales/angular/global/en-cy.js +4 -4
  668. package/locales/angular/global/en-de.js +4 -4
  669. package/locales/angular/global/en-dg.js +4 -4
  670. package/locales/angular/global/en-dk.js +4 -4
  671. package/locales/angular/global/en-dm.js +4 -4
  672. package/locales/angular/global/en-er.js +4 -4
  673. package/locales/angular/global/en-fi.js +4 -4
  674. package/locales/angular/global/en-fj.js +4 -4
  675. package/locales/angular/global/en-fk.js +4 -4
  676. package/locales/angular/global/en-fm.js +4 -4
  677. package/locales/angular/global/en-gb.js +4 -4
  678. package/locales/angular/global/en-gd.js +4 -4
  679. package/locales/angular/global/en-gg.js +4 -4
  680. package/locales/angular/global/en-gh.js +4 -4
  681. package/locales/angular/global/en-gi.js +4 -4
  682. package/locales/angular/global/en-gm.js +4 -4
  683. package/locales/angular/global/en-gu.js +4 -4
  684. package/locales/angular/global/en-gy.js +4 -4
  685. package/locales/angular/global/en-hk.js +4 -4
  686. package/locales/angular/global/en-ie.js +4 -4
  687. package/locales/angular/global/en-il.js +4 -4
  688. package/locales/angular/global/en-im.js +4 -4
  689. package/locales/angular/global/en-in.js +4 -4
  690. package/locales/angular/global/en-io.js +4 -4
  691. package/locales/angular/global/en-je.js +4 -4
  692. package/locales/angular/global/en-jm.js +4 -4
  693. package/locales/angular/global/en-ke.js +4 -4
  694. package/locales/angular/global/en-ki.js +4 -4
  695. package/locales/angular/global/en-kn.js +4 -4
  696. package/locales/angular/global/en-ky.js +4 -4
  697. package/locales/angular/global/en-lc.js +4 -4
  698. package/locales/angular/global/en-lr.js +4 -4
  699. package/locales/angular/global/en-ls.js +4 -4
  700. package/locales/angular/global/en-mg.js +4 -4
  701. package/locales/angular/global/en-mh.js +4 -4
  702. package/locales/angular/global/en-mo.js +4 -4
  703. package/locales/angular/global/en-mp.js +4 -4
  704. package/locales/angular/global/en-ms.js +4 -4
  705. package/locales/angular/global/en-mt.js +4 -4
  706. package/locales/angular/global/en-mu.js +4 -4
  707. package/locales/angular/global/en-mv.js +4 -4
  708. package/locales/angular/global/en-mw.js +4 -4
  709. package/locales/angular/global/en-my.js +4 -4
  710. package/locales/angular/global/en-na.js +4 -4
  711. package/locales/angular/global/en-nf.js +4 -4
  712. package/locales/angular/global/en-ng.js +4 -4
  713. package/locales/angular/global/en-nl.js +4 -4
  714. package/locales/angular/global/en-nr.js +4 -4
  715. package/locales/angular/global/en-nu.js +4 -4
  716. package/locales/angular/global/en-nz.js +4 -4
  717. package/locales/angular/global/en-pg.js +4 -4
  718. package/locales/angular/global/en-ph.js +4 -4
  719. package/locales/angular/global/en-pk.js +4 -4
  720. package/locales/angular/global/en-pn.js +4 -4
  721. package/locales/angular/global/en-pr.js +4 -4
  722. package/locales/angular/global/en-pw.js +4 -4
  723. package/locales/angular/global/en-rw.js +4 -4
  724. package/locales/angular/global/en-sb.js +4 -4
  725. package/locales/angular/global/en-sc.js +4 -4
  726. package/locales/angular/global/en-sd.js +4 -4
  727. package/locales/angular/global/en-se.js +4 -4
  728. package/locales/angular/global/en-sg.js +4 -4
  729. package/locales/angular/global/en-sh.js +4 -4
  730. package/locales/angular/global/en-si.js +4 -4
  731. package/locales/angular/global/en-sl.js +4 -4
  732. package/locales/angular/global/en-ss.js +4 -4
  733. package/locales/angular/global/en-sx.js +4 -4
  734. package/locales/angular/global/en-sz.js +4 -4
  735. package/locales/angular/global/en-tc.js +4 -4
  736. package/locales/angular/global/en-tk.js +4 -4
  737. package/locales/angular/global/en-to.js +4 -4
  738. package/locales/angular/global/en-tt.js +4 -4
  739. package/locales/angular/global/en-tv.js +4 -4
  740. package/locales/angular/global/en-tz.js +4 -4
  741. package/locales/angular/global/en-ug.js +4 -4
  742. package/locales/angular/global/en-um.js +4 -4
  743. package/locales/angular/global/en-vc.js +4 -4
  744. package/locales/angular/global/en-vg.js +4 -4
  745. package/locales/angular/global/en-vi.js +4 -4
  746. package/locales/angular/global/en-vu.js +4 -4
  747. package/locales/angular/global/en-ws.js +4 -4
  748. package/locales/angular/global/en-za.js +4 -4
  749. package/locales/angular/global/en-zm.js +4 -4
  750. package/locales/angular/global/en-zw.js +4 -4
  751. package/locales/angular/global/en.js +4 -4
  752. package/locales/angular/global/eo.js +4 -4
  753. package/locales/angular/global/es-419.js +4 -4
  754. package/locales/angular/global/es-ar.js +4 -4
  755. package/locales/angular/global/es-bo.js +4 -4
  756. package/locales/angular/global/es-br.js +4 -4
  757. package/locales/angular/global/es-bz.js +4 -4
  758. package/locales/angular/global/es-cl.js +4 -4
  759. package/locales/angular/global/es-co.js +4 -4
  760. package/locales/angular/global/es-cr.js +4 -4
  761. package/locales/angular/global/es-cu.js +4 -4
  762. package/locales/angular/global/es-do.js +4 -4
  763. package/locales/angular/global/es-ea.js +4 -4
  764. package/locales/angular/global/es-ec.js +4 -4
  765. package/locales/angular/global/es-gq.js +4 -4
  766. package/locales/angular/global/es-gt.js +4 -4
  767. package/locales/angular/global/es-hn.js +4 -4
  768. package/locales/angular/global/es-ic.js +4 -4
  769. package/locales/angular/global/es-mx.js +4 -4
  770. package/locales/angular/global/es-ni.js +4 -4
  771. package/locales/angular/global/es-pa.js +4 -4
  772. package/locales/angular/global/es-pe.js +4 -4
  773. package/locales/angular/global/es-ph.js +4 -4
  774. package/locales/angular/global/es-pr.js +4 -4
  775. package/locales/angular/global/es-py.js +4 -4
  776. package/locales/angular/global/es-sv.js +4 -4
  777. package/locales/angular/global/es-us.js +4 -4
  778. package/locales/angular/global/es-uy.js +4 -4
  779. package/locales/angular/global/es-ve.js +4 -4
  780. package/locales/angular/global/es.js +4 -4
  781. package/locales/angular/global/et.js +4 -4
  782. package/locales/angular/global/eu.js +4 -4
  783. package/locales/angular/global/ewo.js +4 -4
  784. package/locales/angular/global/fa-af.js +4 -4
  785. package/locales/angular/global/fa.js +4 -4
  786. package/locales/angular/global/ff-adlm-bf.js +4 -4
  787. package/locales/angular/global/ff-adlm-cm.js +4 -4
  788. package/locales/angular/global/ff-adlm-gh.js +4 -4
  789. package/locales/angular/global/ff-adlm-gm.js +4 -4
  790. package/locales/angular/global/ff-adlm-gw.js +4 -4
  791. package/locales/angular/global/ff-adlm-lr.js +4 -4
  792. package/locales/angular/global/ff-adlm-mr.js +4 -4
  793. package/locales/angular/global/ff-adlm-ne.js +4 -4
  794. package/locales/angular/global/ff-adlm-ng.js +4 -4
  795. package/locales/angular/global/ff-adlm-sl.js +4 -4
  796. package/locales/angular/global/ff-adlm-sn.js +4 -4
  797. package/locales/angular/global/ff-adlm.js +4 -4
  798. package/locales/angular/global/ff-cm.js +58 -44
  799. package/locales/angular/global/ff-gn.js +58 -44
  800. package/locales/angular/global/ff-latn-bf.js +4 -4
  801. package/locales/angular/global/ff-latn-cm.js +4 -4
  802. package/locales/angular/global/ff-latn-gh.js +4 -4
  803. package/locales/angular/global/ff-latn-gm.js +4 -4
  804. package/locales/angular/global/ff-latn-gn.js +4 -4
  805. package/locales/angular/global/ff-latn-gw.js +4 -4
  806. package/locales/angular/global/ff-latn-lr.js +4 -4
  807. package/locales/angular/global/ff-latn-mr.js +4 -4
  808. package/locales/angular/global/ff-latn-ne.js +4 -4
  809. package/locales/angular/global/ff-latn-ng.js +4 -4
  810. package/locales/angular/global/ff-latn-sl.js +4 -4
  811. package/locales/angular/global/ff-latn.js +4 -4
  812. package/locales/angular/global/ff-mr.js +58 -44
  813. package/locales/angular/global/ff.js +4 -4
  814. package/locales/angular/global/fi.js +4 -4
  815. package/locales/angular/global/fil.js +4 -4
  816. package/locales/angular/global/fo-dk.js +4 -4
  817. package/locales/angular/global/fo.js +4 -4
  818. package/locales/angular/global/fr-be.js +4 -4
  819. package/locales/angular/global/fr-bf.js +4 -4
  820. package/locales/angular/global/fr-bi.js +4 -4
  821. package/locales/angular/global/fr-bj.js +4 -4
  822. package/locales/angular/global/fr-bl.js +4 -4
  823. package/locales/angular/global/fr-ca.js +4 -4
  824. package/locales/angular/global/fr-cd.js +4 -4
  825. package/locales/angular/global/fr-cf.js +4 -4
  826. package/locales/angular/global/fr-cg.js +4 -4
  827. package/locales/angular/global/fr-ch.js +4 -4
  828. package/locales/angular/global/fr-ci.js +4 -4
  829. package/locales/angular/global/fr-cm.js +4 -4
  830. package/locales/angular/global/fr-dj.js +4 -4
  831. package/locales/angular/global/fr-dz.js +4 -4
  832. package/locales/angular/global/fr-ga.js +4 -4
  833. package/locales/angular/global/fr-gf.js +4 -4
  834. package/locales/angular/global/fr-gn.js +4 -4
  835. package/locales/angular/global/fr-gp.js +4 -4
  836. package/locales/angular/global/fr-gq.js +4 -4
  837. package/locales/angular/global/fr-ht.js +4 -4
  838. package/locales/angular/global/fr-km.js +4 -4
  839. package/locales/angular/global/fr-lu.js +4 -4
  840. package/locales/angular/global/fr-ma.js +4 -4
  841. package/locales/angular/global/fr-mc.js +4 -4
  842. package/locales/angular/global/fr-mf.js +4 -4
  843. package/locales/angular/global/fr-mg.js +4 -4
  844. package/locales/angular/global/fr-ml.js +4 -4
  845. package/locales/angular/global/fr-mq.js +4 -4
  846. package/locales/angular/global/fr-mr.js +4 -4
  847. package/locales/angular/global/fr-mu.js +4 -4
  848. package/locales/angular/global/fr-nc.js +4 -4
  849. package/locales/angular/global/fr-ne.js +4 -4
  850. package/locales/angular/global/fr-pf.js +4 -4
  851. package/locales/angular/global/fr-pm.js +4 -4
  852. package/locales/angular/global/fr-re.js +4 -4
  853. package/locales/angular/global/fr-rw.js +4 -4
  854. package/locales/angular/global/fr-sc.js +4 -4
  855. package/locales/angular/global/fr-sn.js +4 -4
  856. package/locales/angular/global/fr-sy.js +4 -4
  857. package/locales/angular/global/fr-td.js +4 -4
  858. package/locales/angular/global/fr-tg.js +4 -4
  859. package/locales/angular/global/fr-tn.js +4 -4
  860. package/locales/angular/global/fr-vu.js +4 -4
  861. package/locales/angular/global/fr-wf.js +4 -4
  862. package/locales/angular/global/fr-yt.js +4 -4
  863. package/locales/angular/global/fr.js +4 -4
  864. package/locales/angular/global/fur.js +4 -4
  865. package/locales/angular/global/fy.js +4 -4
  866. package/locales/angular/global/ga-gb.js +4 -4
  867. package/locales/angular/global/ga.js +4 -4
  868. package/locales/angular/global/gd.js +4 -4
  869. package/locales/angular/global/gl.js +4 -4
  870. package/locales/angular/global/gsw-fr.js +4 -4
  871. package/locales/angular/global/gsw-li.js +4 -4
  872. package/locales/angular/global/gsw.js +4 -4
  873. package/locales/angular/global/gu.js +4 -4
  874. package/locales/angular/global/guz.js +4 -4
  875. package/locales/angular/global/gv.js +4 -4
  876. package/locales/angular/global/ha-gh.js +4 -4
  877. package/locales/angular/global/ha-ne.js +4 -4
  878. package/locales/angular/global/ha.js +4 -4
  879. package/locales/angular/global/haw.js +4 -4
  880. package/locales/angular/global/he.js +4 -4
  881. package/locales/angular/global/hi-latn.js +4 -4
  882. package/locales/angular/global/hi.js +4 -4
  883. package/locales/angular/global/hr-ba.js +4 -4
  884. package/locales/angular/global/hr.js +4 -4
  885. package/locales/angular/global/hsb.js +4 -4
  886. package/locales/angular/global/hu.js +4 -4
  887. package/locales/angular/global/hy.js +4 -4
  888. package/locales/angular/global/ia.js +4 -4
  889. package/locales/angular/global/id.js +4 -4
  890. package/locales/angular/global/ig.js +4 -4
  891. package/locales/angular/global/ii.js +4 -4
  892. package/locales/angular/global/is.js +4 -4
  893. package/locales/angular/global/it-ch.js +4 -4
  894. package/locales/angular/global/it-sm.js +4 -4
  895. package/locales/angular/global/it-va.js +4 -4
  896. package/locales/angular/global/it.js +4 -4
  897. package/locales/angular/global/ja.js +4 -4
  898. package/locales/angular/global/jgo.js +4 -4
  899. package/locales/angular/global/jmc.js +4 -4
  900. package/locales/angular/global/jv.js +4 -4
  901. package/locales/angular/global/ka.js +4 -4
  902. package/locales/angular/global/kab.js +4 -4
  903. package/locales/angular/global/kam.js +4 -4
  904. package/locales/angular/global/kde.js +4 -4
  905. package/locales/angular/global/kea.js +4 -4
  906. package/locales/angular/global/kgp.js +4 -4
  907. package/locales/angular/global/khq.js +4 -4
  908. package/locales/angular/global/ki.js +4 -4
  909. package/locales/angular/global/kk.js +4 -4
  910. package/locales/angular/global/kkj.js +4 -4
  911. package/locales/angular/global/kl.js +4 -4
  912. package/locales/angular/global/kln.js +4 -4
  913. package/locales/angular/global/km.js +4 -4
  914. package/locales/angular/global/kn.js +4 -4
  915. package/locales/angular/global/ko-kp.js +4 -4
  916. package/locales/angular/global/ko.js +4 -4
  917. package/locales/angular/global/kok.js +4 -4
  918. package/locales/angular/global/ks-arab.js +4 -4
  919. package/locales/angular/global/ks-deva.js +4 -4
  920. package/locales/angular/global/ks.js +4 -4
  921. package/locales/angular/global/ksb.js +4 -4
  922. package/locales/angular/global/ksf.js +4 -4
  923. package/locales/angular/global/ksh.js +4 -4
  924. package/locales/angular/global/ku.js +4 -4
  925. package/locales/angular/global/kw.js +4 -4
  926. package/locales/angular/global/ky.js +4 -4
  927. package/locales/angular/global/lag.js +4 -4
  928. package/locales/angular/global/lb.js +4 -4
  929. package/locales/angular/global/lg.js +4 -4
  930. package/locales/angular/global/lkt.js +4 -4
  931. package/locales/angular/global/ln-ao.js +4 -4
  932. package/locales/angular/global/ln-cf.js +4 -4
  933. package/locales/angular/global/ln-cg.js +4 -4
  934. package/locales/angular/global/ln.js +4 -4
  935. package/locales/angular/global/lo.js +4 -4
  936. package/locales/angular/global/lrc-iq.js +4 -4
  937. package/locales/angular/global/lrc.js +4 -4
  938. package/locales/angular/global/lt.js +4 -4
  939. package/locales/angular/global/lu.js +4 -4
  940. package/locales/angular/global/luo.js +4 -4
  941. package/locales/angular/global/luy.js +4 -4
  942. package/locales/angular/global/lv.js +4 -4
  943. package/locales/angular/global/mai.js +4 -4
  944. package/locales/angular/global/mas-tz.js +4 -4
  945. package/locales/angular/global/mas.js +4 -4
  946. package/locales/angular/global/mer.js +4 -4
  947. package/locales/angular/global/mfe.js +4 -4
  948. package/locales/angular/global/mg.js +4 -4
  949. package/locales/angular/global/mgh.js +4 -4
  950. package/locales/angular/global/mgo.js +4 -4
  951. package/locales/angular/global/mi.js +4 -4
  952. package/locales/angular/global/mk.js +4 -4
  953. package/locales/angular/global/ml.js +4 -4
  954. package/locales/angular/global/mn.js +4 -4
  955. package/locales/angular/global/mni-beng.js +4 -4
  956. package/locales/angular/global/mni.js +4 -4
  957. package/locales/angular/global/mr.js +4 -4
  958. package/locales/angular/global/ms-bn.js +4 -4
  959. package/locales/angular/global/ms-id.js +4 -4
  960. package/locales/angular/global/ms-sg.js +4 -4
  961. package/locales/angular/global/ms.js +4 -4
  962. package/locales/angular/global/mt.js +4 -4
  963. package/locales/angular/global/mua.js +4 -4
  964. package/locales/angular/global/my.js +4 -4
  965. package/locales/angular/global/mzn.js +4 -4
  966. package/locales/angular/global/naq.js +4 -4
  967. package/locales/angular/global/nb-sj.js +4 -4
  968. package/locales/angular/global/nb.js +4 -4
  969. package/locales/angular/global/nd.js +4 -4
  970. package/locales/angular/global/nds-nl.js +4 -4
  971. package/locales/angular/global/nds.js +4 -4
  972. package/locales/angular/global/ne-in.js +4 -4
  973. package/locales/angular/global/ne.js +4 -4
  974. package/locales/angular/global/nl-aw.js +4 -4
  975. package/locales/angular/global/nl-be.js +4 -4
  976. package/locales/angular/global/nl-bq.js +4 -4
  977. package/locales/angular/global/nl-cw.js +4 -4
  978. package/locales/angular/global/nl-sr.js +4 -4
  979. package/locales/angular/global/nl-sx.js +4 -4
  980. package/locales/angular/global/nl.js +4 -4
  981. package/locales/angular/global/nmg.js +4 -4
  982. package/locales/angular/global/nn.js +4 -4
  983. package/locales/angular/global/nnh.js +4 -4
  984. package/locales/angular/global/no.js +4 -4
  985. package/locales/angular/global/nus.js +4 -4
  986. package/locales/angular/global/nyn.js +4 -4
  987. package/locales/angular/global/om-ke.js +4 -4
  988. package/locales/angular/global/om.js +4 -4
  989. package/locales/angular/global/or.js +4 -4
  990. package/locales/angular/global/os-ru.js +4 -4
  991. package/locales/angular/global/os.js +4 -4
  992. package/locales/angular/global/pa-arab.js +4 -4
  993. package/locales/angular/global/pa-guru.js +4 -4
  994. package/locales/angular/global/pa.js +4 -4
  995. package/locales/angular/global/pcm.js +4 -4
  996. package/locales/angular/global/pl.js +4 -4
  997. package/locales/angular/global/ps-pk.js +4 -4
  998. package/locales/angular/global/ps.js +4 -4
  999. package/locales/angular/global/pt-ao.js +4 -4
  1000. package/locales/angular/global/pt-ch.js +4 -4
  1001. package/locales/angular/global/pt-cv.js +4 -4
  1002. package/locales/angular/global/pt-gq.js +4 -4
  1003. package/locales/angular/global/pt-gw.js +4 -4
  1004. package/locales/angular/global/pt-lu.js +4 -4
  1005. package/locales/angular/global/pt-mo.js +4 -4
  1006. package/locales/angular/global/pt-mz.js +4 -4
  1007. package/locales/angular/global/pt-pt.js +4 -4
  1008. package/locales/angular/global/pt-st.js +4 -4
  1009. package/locales/angular/global/pt-tl.js +4 -4
  1010. package/locales/angular/global/pt.js +4 -4
  1011. package/locales/angular/global/qu-bo.js +4 -4
  1012. package/locales/angular/global/qu-ec.js +4 -4
  1013. package/locales/angular/global/qu.js +4 -4
  1014. package/locales/angular/global/rm.js +4 -4
  1015. package/locales/angular/global/rn.js +4 -4
  1016. package/locales/angular/global/ro-md.js +4 -4
  1017. package/locales/angular/global/ro.js +4 -4
  1018. package/locales/angular/global/rof.js +4 -4
  1019. package/locales/angular/global/ru-by.js +4 -4
  1020. package/locales/angular/global/ru-kg.js +4 -4
  1021. package/locales/angular/global/ru-kz.js +4 -4
  1022. package/locales/angular/global/ru-md.js +4 -4
  1023. package/locales/angular/global/ru-ua.js +4 -4
  1024. package/locales/angular/global/ru.js +4 -4
  1025. package/locales/angular/global/rw.js +4 -4
  1026. package/locales/angular/global/rwk.js +4 -4
  1027. package/locales/angular/global/sa.js +4 -4
  1028. package/locales/angular/global/sah.js +4 -4
  1029. package/locales/angular/global/saq.js +4 -4
  1030. package/locales/angular/global/sat-olck.js +4 -4
  1031. package/locales/angular/global/sat.js +4 -4
  1032. package/locales/angular/global/sbp.js +4 -4
  1033. package/locales/angular/global/sc.js +4 -4
  1034. package/locales/angular/global/sd-arab.js +4 -4
  1035. package/locales/angular/global/sd-deva.js +4 -4
  1036. package/locales/angular/global/sd.js +4 -4
  1037. package/locales/angular/global/se-fi.js +4 -4
  1038. package/locales/angular/global/se-se.js +4 -4
  1039. package/locales/angular/global/se.js +4 -4
  1040. package/locales/angular/global/seh.js +4 -4
  1041. package/locales/angular/global/ses.js +4 -4
  1042. package/locales/angular/global/sg.js +4 -4
  1043. package/locales/angular/global/shi-latn.js +4 -4
  1044. package/locales/angular/global/shi-tfng.js +4 -4
  1045. package/locales/angular/global/shi.js +4 -4
  1046. package/locales/angular/global/si.js +4 -4
  1047. package/locales/angular/global/sk.js +4 -4
  1048. package/locales/angular/global/sl.js +4 -4
  1049. package/locales/angular/global/smn.js +4 -4
  1050. package/locales/angular/global/sn.js +4 -4
  1051. package/locales/angular/global/so-dj.js +4 -4
  1052. package/locales/angular/global/so-et.js +4 -4
  1053. package/locales/angular/global/so-ke.js +4 -4
  1054. package/locales/angular/global/so.js +4 -4
  1055. package/locales/angular/global/sq-mk.js +4 -4
  1056. package/locales/angular/global/sq-xk.js +4 -4
  1057. package/locales/angular/global/sq.js +4 -4
  1058. package/locales/angular/global/sr-cyrl-ba.js +4 -4
  1059. package/locales/angular/global/sr-cyrl-me.js +4 -4
  1060. package/locales/angular/global/sr-cyrl-xk.js +4 -4
  1061. package/locales/angular/global/sr-cyrl.js +4 -4
  1062. package/locales/angular/global/sr-latn-ba.js +4 -4
  1063. package/locales/angular/global/sr-latn-me.js +4 -4
  1064. package/locales/angular/global/sr-latn-xk.js +4 -4
  1065. package/locales/angular/global/sr-latn.js +4 -4
  1066. package/locales/angular/global/sr.js +4 -4
  1067. package/locales/angular/global/su-latn.js +4 -4
  1068. package/locales/angular/global/su.js +4 -4
  1069. package/locales/angular/global/sv-ax.js +4 -4
  1070. package/locales/angular/global/sv-fi.js +4 -4
  1071. package/locales/angular/global/sv.js +4 -4
  1072. package/locales/angular/global/sw-cd.js +4 -4
  1073. package/locales/angular/global/sw-ke.js +4 -4
  1074. package/locales/angular/global/sw-ug.js +4 -4
  1075. package/locales/angular/global/sw.js +4 -4
  1076. package/locales/angular/global/ta-lk.js +4 -4
  1077. package/locales/angular/global/ta-my.js +4 -4
  1078. package/locales/angular/global/ta-sg.js +4 -4
  1079. package/locales/angular/global/ta.js +4 -4
  1080. package/locales/angular/global/te.js +4 -4
  1081. package/locales/angular/global/teo-ke.js +4 -4
  1082. package/locales/angular/global/teo.js +4 -4
  1083. package/locales/angular/global/tg.js +4 -4
  1084. package/locales/angular/global/th.js +4 -4
  1085. package/locales/angular/global/ti-er.js +4 -4
  1086. package/locales/angular/global/ti.js +4 -4
  1087. package/locales/angular/global/tk.js +4 -4
  1088. package/locales/angular/global/to.js +4 -4
  1089. package/locales/angular/global/tr-cy.js +4 -4
  1090. package/locales/angular/global/tr.js +4 -4
  1091. package/locales/angular/global/tt.js +4 -4
  1092. package/locales/angular/global/twq.js +4 -4
  1093. package/locales/angular/global/tzm.js +4 -4
  1094. package/locales/angular/global/ug.js +4 -4
  1095. package/locales/angular/global/uk.js +4 -4
  1096. package/locales/angular/global/und.js +4 -4
  1097. package/locales/angular/global/ur-in.js +4 -4
  1098. package/locales/angular/global/ur.js +4 -4
  1099. package/locales/angular/global/uz-arab.js +4 -4
  1100. package/locales/angular/global/uz-cyrl.js +4 -4
  1101. package/locales/angular/global/uz-latn.js +4 -4
  1102. package/locales/angular/global/uz.js +4 -4
  1103. package/locales/angular/global/vai-latn.js +4 -4
  1104. package/locales/angular/global/vai-vaii.js +4 -4
  1105. package/locales/angular/global/vai.js +4 -4
  1106. package/locales/angular/global/vi.js +4 -4
  1107. package/locales/angular/global/vun.js +4 -4
  1108. package/locales/angular/global/wae.js +4 -4
  1109. package/locales/angular/global/wo.js +4 -4
  1110. package/locales/angular/global/xh.js +4 -4
  1111. package/locales/angular/global/xog.js +4 -4
  1112. package/locales/angular/global/yav.js +4 -4
  1113. package/locales/angular/global/yi.js +4 -4
  1114. package/locales/angular/global/yo-bj.js +4 -4
  1115. package/locales/angular/global/yo.js +4 -4
  1116. package/locales/angular/global/yrl-co.js +4 -4
  1117. package/locales/angular/global/yrl-ve.js +4 -4
  1118. package/locales/angular/global/yrl.js +4 -4
  1119. package/locales/angular/global/yue-hans.js +4 -4
  1120. package/locales/angular/global/yue-hant.js +4 -4
  1121. package/locales/angular/global/yue.js +4 -4
  1122. package/locales/angular/global/zgh.js +4 -4
  1123. package/locales/angular/global/zh-hans-hk.js +4 -4
  1124. package/locales/angular/global/zh-hans-mo.js +4 -4
  1125. package/locales/angular/global/zh-hans-sg.js +4 -4
  1126. package/locales/angular/global/zh-hans.js +4 -4
  1127. package/locales/angular/global/zh-hant-hk.js +4 -4
  1128. package/locales/angular/global/zh-hant-mo.js +4 -4
  1129. package/locales/angular/global/zh-hant.js +4 -4
  1130. package/locales/angular/global/zh.js +4 -4
  1131. package/locales/angular/global/zu.js +4 -4
  1132. package/mobile/components/basic/default/bundles/index.umd.js +148 -143
  1133. package/mobile/components/basic/default/esm2022/anchor/anchor.directive.mjs +8 -7
  1134. package/mobile/components/basic/default/esm2022/app-update/app-update.component.mjs +7 -6
  1135. package/mobile/components/basic/default/esm2022/basic.module.mjs +2 -2
  1136. package/mobile/components/basic/default/esm2022/file-browser/file-browser.component.mjs +47 -43
  1137. package/mobile/components/basic/default/esm2022/file-browser/file-selector.service.mjs +7 -5
  1138. package/mobile/components/basic/default/esm2022/image-cache/image-cache.directive.mjs +6 -5
  1139. package/mobile/components/basic/default/esm2022/network-info-toaster/network-info-toaster.component.mjs +49 -47
  1140. package/mobile/components/basic/default/esm2022/process-manager/process-management.service.mjs +2 -2
  1141. package/mobile/components/basic/default/esm2022/process-manager/process-manager.component.mjs +31 -32
  1142. package/mobile/components/basic/default/fesm2022/index.mjs +146 -140
  1143. package/mobile/components/basic/default/fesm2022/index.mjs.map +1 -1
  1144. package/mobile/components/basic/default/network-info-toaster/network-info-toaster.component.d.ts +2 -2
  1145. package/mobile/components/basic/search/bundles/index.umd.js +3 -3
  1146. package/mobile/components/basic/search/esm2022/search.directive.mjs +3 -3
  1147. package/mobile/components/basic/search/esm2022/search.module.mjs +2 -2
  1148. package/mobile/components/basic/search/fesm2022/index.mjs +3 -3
  1149. package/mobile/components/basic/search/fesm2022/index.mjs.map +1 -1
  1150. package/mobile/components/containers/segmented-control/bundles/index.umd.js +42 -30
  1151. package/mobile/components/containers/segmented-control/esm2022/segment-content/segment-content.component.mjs +14 -8
  1152. package/mobile/components/containers/segmented-control/esm2022/segmented-control.component.mjs +28 -21
  1153. package/mobile/components/containers/segmented-control/esm2022/segmented-control.module.mjs +2 -2
  1154. package/mobile/components/containers/segmented-control/fesm2022/index.mjs +41 -28
  1155. package/mobile/components/containers/segmented-control/fesm2022/index.mjs.map +1 -1
  1156. package/mobile/components/containers/segmented-control/segment-content/segment-content.component.d.ts +2 -2
  1157. package/mobile/components/containers/segmented-control/segmented-control.component.d.ts +2 -2
  1158. package/mobile/components/data/media-list/bundles/index.umd.js +53 -48
  1159. package/mobile/components/data/media-list/esm2022/media-list-item/media-list-item.directive.mjs +2 -2
  1160. package/mobile/components/data/media-list/esm2022/media-list.component.mjs +48 -42
  1161. package/mobile/components/data/media-list/esm2022/media-list.module.mjs +2 -2
  1162. package/mobile/components/data/media-list/fesm2022/index.mjs +50 -44
  1163. package/mobile/components/data/media-list/fesm2022/index.mjs.map +1 -1
  1164. package/mobile/components/data/media-list/media-list.component.d.ts +2 -2
  1165. package/mobile/components/device/barcode-scanner/barcode-scanner.component.d.ts +2 -2
  1166. package/mobile/components/device/barcode-scanner/bundles/index.umd.js +14 -8
  1167. package/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.component.mjs +15 -9
  1168. package/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.module.mjs +2 -2
  1169. package/mobile/components/device/barcode-scanner/fesm2022/index.mjs +16 -10
  1170. package/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
  1171. package/mobile/components/device/camera/bundles/index.umd.js +15 -9
  1172. package/mobile/components/device/camera/camera.component.d.ts +2 -2
  1173. package/mobile/components/device/camera/esm2022/camera.component.mjs +16 -10
  1174. package/mobile/components/device/camera/esm2022/camera.module.mjs +2 -2
  1175. package/mobile/components/device/camera/fesm2022/index.mjs +17 -11
  1176. package/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
  1177. package/mobile/components/input/file-upload/bundles/index.umd.js +3 -3
  1178. package/mobile/components/input/file-upload/esm2022/file-upload.directive.mjs +3 -3
  1179. package/mobile/components/input/file-upload/esm2022/file-upload.module.mjs +2 -2
  1180. package/mobile/components/input/file-upload/fesm2022/index.mjs +3 -3
  1181. package/mobile/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  1182. package/mobile/components/page/default/bundles/index.umd.js +11 -10
  1183. package/mobile/components/page/default/esm2022/page-content-loader/page-content-loader.component.mjs +4 -3
  1184. package/mobile/components/page/default/esm2022/page.directive.mjs +5 -4
  1185. package/mobile/components/page/default/esm2022/page.module.mjs +2 -2
  1186. package/mobile/components/page/default/fesm2022/index.mjs +8 -6
  1187. package/mobile/components/page/default/fesm2022/index.mjs.map +1 -1
  1188. package/mobile/components/page/left-panel/bundles/index.umd.js +3 -3
  1189. package/mobile/components/page/left-panel/esm2022/left-panel.directive.mjs +3 -3
  1190. package/mobile/components/page/left-panel/esm2022/left-panel.module.mjs +2 -2
  1191. package/mobile/components/page/left-panel/fesm2022/index.mjs +3 -3
  1192. package/mobile/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  1193. package/mobile/components/page/mobile-navbar/bundles/index.umd.js +40 -35
  1194. package/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.component.mjs +41 -36
  1195. package/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.module.mjs +2 -2
  1196. package/mobile/components/page/mobile-navbar/fesm2022/index.mjs +41 -36
  1197. package/mobile/components/page/mobile-navbar/fesm2022/index.mjs.map +1 -1
  1198. package/mobile/components/page/mobile-navbar/mobile-navbar.component.d.ts +2 -2
  1199. package/mobile/components/page/tab-bar/bundles/index.umd.js +52 -46
  1200. package/mobile/components/page/tab-bar/esm2022/tab-bar.module.mjs +2 -2
  1201. package/mobile/components/page/tab-bar/esm2022/tabbar.component.mjs +50 -43
  1202. package/mobile/components/page/tab-bar/fesm2022/index.mjs +51 -44
  1203. package/mobile/components/page/tab-bar/fesm2022/index.mjs.map +1 -1
  1204. package/mobile/components/page/tab-bar/tabbar.component.d.ts +2 -2
  1205. package/mobile/core/bundles/index.umd.js +43 -43
  1206. package/mobile/core/esm2022/core.module.mjs +3 -3
  1207. package/mobile/core/esm2022/native.xhr.mjs +1 -1
  1208. package/mobile/core/esm2022/services/device-file-cache.service.mjs +3 -3
  1209. package/mobile/core/esm2022/services/device-file-download.service.mjs +7 -6
  1210. package/mobile/core/esm2022/services/device-file-opener.service.mjs +5 -4
  1211. package/mobile/core/esm2022/services/device-file-upload.service.mjs +6 -5
  1212. package/mobile/core/esm2022/services/device-file.service.mjs +8 -7
  1213. package/mobile/core/esm2022/services/device.service.mjs +5 -4
  1214. package/mobile/core/esm2022/services/ext-app-message.service.mjs +7 -6
  1215. package/mobile/core/esm2022/services/network.service.mjs +11 -10
  1216. package/mobile/core/fesm2022/index.mjs +40 -39
  1217. package/mobile/core/fesm2022/index.mjs.map +1 -1
  1218. package/mobile/core/services/ext-app-message.service.d.ts +1 -1
  1219. package/mobile/core/services/network.service.d.ts +7 -1
  1220. package/mobile/offline/bundles/index.umd.js +176 -159
  1221. package/mobile/offline/esm2022/models/local-db-store.mjs +23 -21
  1222. package/mobile/offline/esm2022/offline.module.mjs +3 -3
  1223. package/mobile/offline/esm2022/services/change-log.service.mjs +9 -8
  1224. package/mobile/offline/esm2022/services/local-db-data-pull.service.mjs +39 -37
  1225. package/mobile/offline/esm2022/services/local-db-management.service.mjs +56 -47
  1226. package/mobile/offline/esm2022/services/local-db.service.mjs +7 -6
  1227. package/mobile/offline/esm2022/services/local-key-value.service.mjs +2 -2
  1228. package/mobile/offline/esm2022/services/push.service.mjs +3 -3
  1229. package/mobile/offline/esm2022/services/workers/error-blocker.mjs +4 -3
  1230. package/mobile/offline/esm2022/services/workers/file-handler.mjs +18 -13
  1231. package/mobile/offline/esm2022/services/workers/id-resolver.mjs +3 -3
  1232. package/mobile/offline/esm2022/services/workers/multi-part-param-transformer.mjs +9 -5
  1233. package/mobile/offline/esm2022/utils/file-upload.utils.mjs +1 -1
  1234. package/mobile/offline/esm2022/utils/live-variable.utils.mjs +12 -11
  1235. package/mobile/offline/esm2022/utils/query-executor.utils.mjs +5 -4
  1236. package/mobile/offline/esm2022/utils/security.utils.mjs +3 -2
  1237. package/mobile/offline/esm2022/utils/utils.mjs +1 -1
  1238. package/mobile/offline/fesm2022/index.mjs +171 -153
  1239. package/mobile/offline/fesm2022/index.mjs.map +1 -1
  1240. package/mobile/placeholder/runtime/bundles/index.umd.js +3 -2
  1241. package/mobile/placeholder/runtime/esm2022/components/app-ext.component.mjs +3 -2
  1242. package/mobile/placeholder/runtime/esm2022/mobile-runtime.module.mjs +2 -2
  1243. package/mobile/placeholder/runtime/fesm2022/index.mjs +3 -2
  1244. package/mobile/placeholder/runtime/fesm2022/index.mjs.map +1 -1
  1245. package/mobile/placeholder/runtime-dynamic/bundles/index.umd.js +1 -1
  1246. package/mobile/placeholder/runtime-dynamic/esm2022/mobile-runtime-dynamic.module.mjs +2 -2
  1247. package/mobile/placeholder/runtime-dynamic/fesm2022/index.mjs +1 -1
  1248. package/mobile/placeholder/runtime-dynamic/fesm2022/index.mjs.map +1 -1
  1249. package/mobile/runtime/bundles/index.umd.js +21 -17
  1250. package/mobile/runtime/esm2022/components/app-ext.component.mjs +4 -3
  1251. package/mobile/runtime/esm2022/mobile-runtime.module.mjs +5 -4
  1252. package/mobile/runtime/esm2022/services/cookie.service.mjs +7 -3
  1253. package/mobile/runtime/esm2022/services/http-interceptor.service.mjs +6 -5
  1254. package/mobile/runtime/esm2022/services/webprocess.service.mjs +3 -3
  1255. package/mobile/runtime/fesm2022/index.mjs +18 -13
  1256. package/mobile/runtime/fesm2022/index.mjs.map +1 -1
  1257. package/mobile/runtime-dynamic/bundles/index.umd.js +5 -5
  1258. package/mobile/runtime-dynamic/esm2022/mobile-runtime-dynamic.module.mjs +2 -2
  1259. package/mobile/runtime-dynamic/esm2022/services/live-sync.service.mjs +5 -5
  1260. package/mobile/runtime-dynamic/fesm2022/index.mjs +5 -5
  1261. package/mobile/runtime-dynamic/fesm2022/index.mjs.map +1 -1
  1262. package/mobile/variables/bundles/index.umd.js +28 -21
  1263. package/mobile/variables/esm2022/services/camera-service.mjs +5 -5
  1264. package/mobile/variables/esm2022/services/contacts-service.mjs +1 -1
  1265. package/mobile/variables/esm2022/services/datasync-service.mjs +10 -9
  1266. package/mobile/variables/esm2022/services/device-service/device-service.mjs +1 -1
  1267. package/mobile/variables/esm2022/services/device-service/location-service.mjs +1 -1
  1268. package/mobile/variables/esm2022/services/file-service.mjs +11 -3
  1269. package/mobile/variables/esm2022/services/scan-service.mjs +1 -1
  1270. package/mobile/variables/esm2022/variables.module.mjs +3 -3
  1271. package/mobile/variables/fesm2022/index.mjs +24 -16
  1272. package/mobile/variables/fesm2022/index.mjs.map +1 -1
  1273. package/oAuth/bundles/index.umd.js +15 -15
  1274. package/oAuth/esm2022/oAuth.module.mjs +2 -2
  1275. package/oAuth/esm2022/oAuth.service.mjs +6 -5
  1276. package/oAuth/esm2022/oAuth.utils.mjs +8 -7
  1277. package/oAuth/fesm2022/index.mjs +12 -11
  1278. package/oAuth/fesm2022/index.mjs.map +1 -1
  1279. package/package.json +1 -1
  1280. package/runtime/base/bundles/index.umd.js +243 -237
  1281. package/runtime/base/esm2022/components/app-component/app.component.mjs +27 -27
  1282. package/runtime/base/esm2022/components/app-spinner.component.mjs +9 -8
  1283. package/runtime/base/esm2022/components/base-layout.component.mjs +5 -4
  1284. package/runtime/base/esm2022/components/base-page.component.mjs +16 -15
  1285. package/runtime/base/esm2022/components/base-partial.component.mjs +15 -14
  1286. package/runtime/base/esm2022/components/base-prefab.component.mjs +17 -16
  1287. package/runtime/base/esm2022/components/base-spa-page.component.mjs +16 -15
  1288. package/runtime/base/esm2022/components/custom-toaster.component.mjs +17 -15
  1289. package/runtime/base/esm2022/components/empty-component/empty-page.component.mjs +4 -3
  1290. package/runtime/base/esm2022/components/prefab-preview.component.mjs +4 -3
  1291. package/runtime/base/esm2022/directives/accessroles.directive.mjs +13 -12
  1292. package/runtime/base/esm2022/directives/prefab.directive.mjs +4 -4
  1293. package/runtime/base/esm2022/guards/auth.guard.mjs +3 -3
  1294. package/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +3 -3
  1295. package/runtime/base/esm2022/guards/page-not-found.guard.mjs +3 -3
  1296. package/runtime/base/esm2022/guards/role.guard.mjs +5 -4
  1297. package/runtime/base/esm2022/overrides/wm_dom_renderer.mjs +4 -4
  1298. package/runtime/base/esm2022/overrides/wm_shared_styles_host.mjs +5 -5
  1299. package/runtime/base/esm2022/resolves/app-extension.resolve.mjs +3 -3
  1300. package/runtime/base/esm2022/resolves/app-js.resolve.mjs +3 -3
  1301. package/runtime/base/esm2022/resolves/app-variables.resolve.mjs +3 -3
  1302. package/runtime/base/esm2022/resolves/i18n.resolve.mjs +3 -3
  1303. package/runtime/base/esm2022/resolves/metadata.resolve.mjs +3 -3
  1304. package/runtime/base/esm2022/resolves/security-config.resolve.mjs +3 -3
  1305. package/runtime/base/esm2022/runtime-base.module.mjs +3 -3
  1306. package/runtime/base/esm2022/services/app-defaults.service.mjs +3 -3
  1307. package/runtime/base/esm2022/services/app.manager.service.mjs +19 -16
  1308. package/runtime/base/esm2022/services/app.service.mjs +9 -8
  1309. package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +5 -4
  1310. package/runtime/base/esm2022/services/http-interceptor.services.mjs +6 -5
  1311. package/runtime/base/esm2022/services/i18n.service.mjs +15 -13
  1312. package/runtime/base/esm2022/services/navigation.service.mjs +10 -9
  1313. package/runtime/base/esm2022/services/pipe-provider.service.mjs +3 -3
  1314. package/runtime/base/esm2022/services/pipe.service.mjs +3 -3
  1315. package/runtime/base/esm2022/services/prefab-manager.service.mjs +5 -4
  1316. package/runtime/base/esm2022/services/spinner.service.mjs +9 -8
  1317. package/runtime/base/esm2022/services/toaster.service.mjs +8 -7
  1318. package/runtime/base/esm2022/util/fragment-monitor.mjs +3 -3
  1319. package/runtime/base/esm2022/util/wm-route-reuse-strategy.mjs +7 -8
  1320. package/runtime/base/fesm2022/index.mjs +253 -247
  1321. package/runtime/base/fesm2022/index.mjs.map +1 -1
  1322. package/runtime/base/overrides/wm_dom_renderer.d.ts +2 -2
  1323. package/runtime/base/services/i18n.service.d.ts +1 -1
  1324. package/runtime/dynamic/bundles/index.umd.js +22 -21
  1325. package/runtime/dynamic/esm2022/app/app.module.mjs +1 -1
  1326. package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +4 -3
  1327. package/runtime/dynamic/esm2022/app/services/app-extension.service.mjs +3 -3
  1328. package/runtime/dynamic/esm2022/app/services/app-js-provider.service.mjs +3 -3
  1329. package/runtime/dynamic/esm2022/app/services/app-resource-manager.service.mjs +3 -3
  1330. package/runtime/dynamic/esm2022/app/services/app-variables-provider.service.mjs +3 -3
  1331. package/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +6 -5
  1332. package/runtime/dynamic/esm2022/app/services/prefab-config-provider.service.mjs +3 -3
  1333. package/runtime/dynamic/esm2022/main.mjs +3 -2
  1334. package/runtime/dynamic/fesm2022/index.mjs +21 -19
  1335. package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  1336. package/scripts/datatable/datatable.js +2 -1
  1337. package/scripts/jquery-ui/ui/widgets/droppable.js +7 -7
  1338. package/scripts/jquery-ui/ui/widgets/resizable.js +13 -10
  1339. package/scripts/jquery-ui/ui/widgets/sortable.js +7 -7
  1340. package/security/bundles/index.umd.js +17 -17
  1341. package/security/esm2022/security.module.mjs +2 -2
  1342. package/security/esm2022/security.service.mjs +14 -13
  1343. package/security/fesm2022/index.mjs +14 -13
  1344. package/security/fesm2022/index.mjs.map +1 -1
  1345. package/security/security.service.d.ts +1 -1
  1346. package/swipey/esm2022/swipe.animation.mjs +1 -1
  1347. package/swipey/fesm2022/index.mjs.map +1 -1
  1348. package/transpiler/bundles/index.umd.js +10 -9
  1349. package/transpiler/esm2022/build.mjs +8 -6
  1350. package/transpiler/fesm2022/index.mjs +7 -5
  1351. package/transpiler/fesm2022/index.mjs.map +1 -1
  1352. package/variables/bundles/index.umd.js +160 -150
  1353. package/variables/esm2022/factory/variable.factory.mjs +1 -1
  1354. package/variables/esm2022/manager/action/login-action.manager.mjs +15 -14
  1355. package/variables/esm2022/manager/action/logout-action.manager.mjs +1 -1
  1356. package/variables/esm2022/manager/action/notification-action.manager.mjs +9 -8
  1357. package/variables/esm2022/manager/variable/base-variable.manager.mjs +3 -2
  1358. package/variables/esm2022/manager/variable/device-variable-manager.mjs +1 -1
  1359. package/variables/esm2022/manager/variable/device-variable-service.mjs +1 -1
  1360. package/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +11 -10
  1361. package/variables/esm2022/model/action/notification-action.mjs +1 -1
  1362. package/variables/esm2022/service/metadata-service/metadata.service.mjs +3 -3
  1363. package/variables/esm2022/service/variables.service.mjs +9 -8
  1364. package/variables/esm2022/util/action/navigation-action.utils.mjs +4 -4
  1365. package/variables/esm2022/util/variable/pagination.utils.mjs +30 -23
  1366. package/variables/esm2022/util/variable/service-variable.utils.mjs +29 -28
  1367. package/variables/esm2022/util/variable/variables.utils.mjs +75 -70
  1368. package/variables/esm2022/variables.module.mjs +2 -2
  1369. package/variables/fesm2022/index.mjs +174 -163
  1370. package/variables/fesm2022/index.mjs.map +1 -1
  1371. package/variables/util/variable/service-variable.utils.d.ts +1 -1
  1372. package/build-task/package.json +0 -28
  1373. package/components/advanced/carousel/package.json +0 -23
  1374. package/components/advanced/login/package.json +0 -23
  1375. package/components/advanced/marquee/package.json +0 -23
  1376. package/components/base/package.json +0 -28
  1377. package/components/basic/default/package.json +0 -23
  1378. package/components/basic/progress/package.json +0 -23
  1379. package/components/basic/rich-text-editor/package.json +0 -23
  1380. package/components/basic/search/package.json +0 -23
  1381. package/components/basic/tree/package.json +0 -23
  1382. package/components/chart/package.json +0 -23
  1383. package/components/containers/accordion/package.json +0 -23
  1384. package/components/containers/layout-grid/package.json +0 -23
  1385. package/components/containers/linear-layout/package.json +0 -23
  1386. package/components/containers/panel/package.json +0 -23
  1387. package/components/containers/tabs/package.json +0 -23
  1388. package/components/containers/tile/package.json +0 -23
  1389. package/components/containers/wizard/package.json +0 -23
  1390. package/components/data/card/package.json +0 -23
  1391. package/components/data/form/package.json +0 -23
  1392. package/components/data/list/package.json +0 -23
  1393. package/components/data/live-table/package.json +0 -23
  1394. package/components/data/pagination/package.json +0 -23
  1395. package/components/data/table/package.json +0 -23
  1396. package/components/dialogs/alert-dialog/package.json +0 -23
  1397. package/components/dialogs/confirm-dialog/package.json +0 -23
  1398. package/components/dialogs/default/package.json +0 -23
  1399. package/components/dialogs/design-dialog/package.json +0 -23
  1400. package/components/dialogs/iframe-dialog/package.json +0 -23
  1401. package/components/dialogs/login-dialog/package.json +0 -23
  1402. package/components/dialogs/partial-dialog/package.json +0 -23
  1403. package/components/input/calendar/package.json +0 -23
  1404. package/components/input/chips/package.json +0 -23
  1405. package/components/input/color-picker/package.json +0 -23
  1406. package/components/input/currency/package.json +0 -23
  1407. package/components/input/default/package.json +0 -23
  1408. package/components/input/epoch/package.json +0 -23
  1409. package/components/input/file-upload/package.json +0 -23
  1410. package/components/input/rating/package.json +0 -23
  1411. package/components/input/slider/package.json +0 -23
  1412. package/components/navigation/breadcrumb/package.json +0 -23
  1413. package/components/navigation/menu/package.json +0 -23
  1414. package/components/navigation/navbar/package.json +0 -23
  1415. package/components/navigation/popover/package.json +0 -23
  1416. package/components/page/default/package.json +0 -23
  1417. package/components/page/footer/package.json +0 -23
  1418. package/components/page/header/package.json +0 -23
  1419. package/components/page/left-panel/package.json +0 -23
  1420. package/components/page/right-panel/package.json +0 -23
  1421. package/components/page/top-nav/package.json +0 -23
  1422. package/components/prefab/package.json +0 -23
  1423. package/core/package.json +0 -29
  1424. package/http/package.json +0 -28
  1425. package/mobile/components/basic/default/package.json +0 -23
  1426. package/mobile/components/basic/search/package.json +0 -23
  1427. package/mobile/components/containers/segmented-control/package.json +0 -23
  1428. package/mobile/components/data/media-list/package.json +0 -23
  1429. package/mobile/components/device/barcode-scanner/package.json +0 -23
  1430. package/mobile/components/device/camera/package.json +0 -23
  1431. package/mobile/components/input/file-upload/package.json +0 -23
  1432. package/mobile/components/page/default/package.json +0 -23
  1433. package/mobile/components/page/left-panel/package.json +0 -23
  1434. package/mobile/components/page/mobile-navbar/package.json +0 -23
  1435. package/mobile/components/page/tab-bar/package.json +0 -23
  1436. package/mobile/core/package.json +0 -28
  1437. package/mobile/offline/package.json +0 -28
  1438. package/mobile/placeholder/runtime/package.json +0 -27
  1439. package/mobile/placeholder/runtime-dynamic/package.json +0 -23
  1440. package/mobile/runtime/package.json +0 -28
  1441. package/mobile/runtime-dynamic/package.json +0 -23
  1442. package/mobile/variables/package.json +0 -28
  1443. package/oAuth/package.json +0 -28
  1444. package/runtime/base/package.json +0 -28
  1445. package/runtime/dynamic/package.json +0 -28
  1446. package/security/package.json +0 -28
  1447. package/swipey/package.json +0 -28
  1448. package/transpiler/package.json +0 -29
  1449. package/variables/package.json +0 -28
@@ -1,10 +1,13 @@
1
+ import { __decorate, __metadata, __param } from "tslib";
2
+ import { Inject, Injector, Optional } from '@angular/core';
1
3
  import { getLocaleNumberSymbol, NumberSymbol } from '@angular/common';
2
- import { isDefined } from '@wm/core';
3
- import { INPUTMODE } from '@wm/components/base';
4
+ import { AbstractI18nService, isDefined } from '@wm/core';
5
+ import { TrailingZeroDecimalPipe, INPUTMODE } from '@wm/components/base';
4
6
  import { BaseInput } from '../base/base-input';
5
- export class NumberLocale extends BaseInput {
6
- constructor(inj, config, i18nService, trailingZeroDecimalPipe) {
7
- super(inj, config);
7
+ import { includes, intersection, isNull, isString, isUndefined, round, toArray } from "lodash-es";
8
+ let NumberLocale = class NumberLocale extends BaseInput {
9
+ constructor(inj, config, i18nService, trailingZeroDecimalPipe, explicitContext) {
10
+ super(inj, config, explicitContext);
8
11
  this.i18nService = i18nService;
9
12
  this.trailingZeroDecimalPipe = trailingZeroDecimalPipe;
10
13
  this.isDefaultQuery = true;
@@ -20,7 +23,8 @@ export class NumberLocale extends BaseInput {
20
23
  set datavalue(value) {
21
24
  this.lastValIsDecimal = false;
22
25
  // set text value to null if data value is empty.
23
- if (_.includes([null, undefined, ''], value)) {
26
+ // @ts-ignore
27
+ if (includes([null, undefined, ''], value)) {
24
28
  const input = this.inputEl.nativeElement;
25
29
  const prevDataValue = this.prevDatavalue;
26
30
  this.displayValue = input.value = this.proxyModel = null;
@@ -33,8 +37,8 @@ export class NumberLocale extends BaseInput {
33
37
  }
34
38
  // if the widget has default value and if we change the locale, the value should be in selected locale format.
35
39
  if (this.isDefaultQuery) {
36
- const isLocalizedNumber = _.isString(value) && _.includes(value, this.DECIMAL);
37
- const parts = isLocalizedNumber ? value.split(this.DECIMAL) : _.isString(value) && value.split('.');
40
+ const isLocalizedNumber = isString(value) && includes(value, this.DECIMAL);
41
+ const parts = isLocalizedNumber ? value.split(this.DECIMAL) : isString(value) && value.split('.');
38
42
  this.decimalValue = parts[1] || '';
39
43
  value = isLocalizedNumber ? value : this.transformNumber(value);
40
44
  }
@@ -49,7 +53,7 @@ export class NumberLocale extends BaseInput {
49
53
  model = NaN;
50
54
  }
51
55
  // On keypress, if the user types a decimal and is still active on the input do not throw error.
52
- if (_.isNaN(model) && strVal[strVal.length - 1] === this.DECIMAL && this.ngModelOptions.updateOn === 'change' && this.$element.find('input:focus').length) {
56
+ if (isNaN(model) && strVal[strVal.length - 1] === this.DECIMAL && this.ngModelOptions.updateOn === 'change' && this.$element.find('input:focus').length) {
53
57
  this.lastValIsDecimal = true;
54
58
  }
55
59
  // get a valid number form the text.
@@ -85,7 +89,7 @@ export class NumberLocale extends BaseInput {
85
89
  */
86
90
  isValid(val) {
87
91
  // id number is infinite then consider it as invalid value
88
- if (_.isNaN(val) || !_.isFinite(val) || (!Number.isInteger(this.step) &&
92
+ if (isNaN(val) || !isFinite(val) || (!Number.isInteger(this.step) &&
89
93
  this.countDecimals(val) > this.countDecimals(this.step))) {
90
94
  this.isInvalidNumber = true;
91
95
  return false;
@@ -103,11 +107,11 @@ export class NumberLocale extends BaseInput {
103
107
  * @returns {number}
104
108
  */
105
109
  getValueInRange(value) {
106
- if (!_.isNaN(this.minvalue) && value < this.minvalue) {
110
+ if (!isNaN(this.minvalue) && value < this.minvalue) {
107
111
  this.validateType = 'minvalue';
108
112
  return this.minvalue;
109
113
  }
110
- if (!_.isNaN(this.maxvalue) && value > this.maxvalue) {
114
+ if (!isNaN(this.maxvalue) && value > this.maxvalue) {
111
115
  this.validateType = 'maxvalue';
112
116
  return this.maxvalue;
113
117
  }
@@ -236,7 +240,7 @@ export class NumberLocale extends BaseInput {
236
240
  const valInWholeNum = parseInt(value.toString().replace(/\D/g, ''));
237
241
  financialVal = valInWholeNum * this.step;
238
242
  }
239
- if (!_.isNaN(financialVal)) {
243
+ if (!isNaN(financialVal)) {
240
244
  // When update on key is set keypress, update the datavalue else update only the display value
241
245
  if (this.ngModelOptions.updateOn === 'change') {
242
246
  this.datavalue = parseFloat(financialVal.toFixed(stepVal));
@@ -296,7 +300,7 @@ export class NumberLocale extends BaseInput {
296
300
  const targetVal = $event.target.value.replace(/,/g, '');
297
301
  // proxyModel to be updated from $event.target.value if present to support arrow keys when input changes else pick up from this.proxymodel
298
302
  let proxyModel;
299
- if (targetVal && !_.isNaN(parseFloat(targetVal))) {
303
+ if (targetVal && !isNaN(parseFloat(targetVal))) {
300
304
  proxyModel = parseFloat(targetVal);
301
305
  }
302
306
  else {
@@ -307,14 +311,14 @@ export class NumberLocale extends BaseInput {
307
311
  if (this.numberNotInRange) {
308
312
  const inputValue = this.parseNumber(this.inputEl.nativeElement.value);
309
313
  // take the textbox value as current model if the value is valid.
310
- if (!_.isNaN(inputValue)) {
314
+ if (!isNaN(inputValue)) {
311
315
  value = this.getValueInRange(inputValue);
312
316
  proxyModel = inputValue;
313
317
  this.resetValidations();
314
318
  }
315
319
  }
316
320
  else {
317
- if (_.isUndefined(proxyModel) || _.isNull(proxyModel)) {
321
+ if (isUndefined(proxyModel) || isNull(proxyModel)) {
318
322
  proxyModel = value = this.getValueInRange((this.minvalue || 0));
319
323
  this.resetValidations();
320
324
  }
@@ -325,7 +329,7 @@ export class NumberLocale extends BaseInput {
325
329
  if ((key === 'UP' && proxyModel <= value) || (key === 'DOWN' && proxyModel >= value)) {
326
330
  const decimalRoundValue = Math.max(this.countDecimals(proxyModel), this.countDecimals(this.step));
327
331
  // update the modelProxy.
328
- this.proxyModel = _.round(value, decimalRoundValue);
332
+ this.proxyModel = round(value, decimalRoundValue);
329
333
  this.updateDisplayText();
330
334
  this.handleChange(this.proxyModel);
331
335
  }
@@ -360,7 +364,7 @@ export class NumberLocale extends BaseInput {
360
364
  validateInputEntry($event) {
361
365
  this.isDefaultQuery = false;
362
366
  // allow actions if control key is pressed or if backspace is pressed. (for Mozilla).
363
- if ($event.ctrlKey || _.includes(['Backspace', 'ArrowRight', 'ArrowLeft', 'Tab', 'Enter', 'Delete'], $event.key)) {
367
+ if ($event.ctrlKey || includes(['Backspace', 'ArrowRight', 'ArrowLeft', 'Tab', 'Enter', 'Delete'], $event.key)) {
364
368
  return;
365
369
  }
366
370
  const validity = new RegExp(`^[\\d\\s-,.e+${this.GROUP}${this.DECIMAL}]$`, 'i');
@@ -391,18 +395,18 @@ export class NumberLocale extends BaseInput {
391
395
  return false;
392
396
  }
393
397
  // comma cannot be entered consecutively
394
- if (_.includes(inputValue, ',') && inputValue[inputValue.length - 1] === ',' && $event.key === ',') {
398
+ if (includes(inputValue, ',') && inputValue[inputValue.length - 1] === ',' && $event.key === ',') {
395
399
  return false;
396
400
  }
397
401
  // a decimal value can be entered only once in the input.
398
- if (_.includes(inputValue, this.DECIMAL) && $event.key === this.DECIMAL) {
402
+ if (includes(inputValue, this.DECIMAL) && $event.key === this.DECIMAL) {
399
403
  return false;
400
404
  }
401
405
  // 'e' can be entered only once in the input.
402
- if (_.intersection(_.toArray(inputValue), ['e', 'E']).length && _.includes('eE', $event.key)) {
406
+ if (intersection(toArray(inputValue), ['e', 'E']).length && includes('eE', $event.key)) {
403
407
  return false;
404
408
  }
405
- if ((_.includes(inputValue, '+') || _.includes(inputValue, '-')) && ($event.key === '+' || $event.key === '-')) {
409
+ if ((includes(inputValue, '+') || includes(inputValue, '-')) && ($event.key === '+' || $event.key === '-')) {
406
410
  return false;
407
411
  }
408
412
  // Do not allow user to enter only space without any input value
@@ -437,5 +441,12 @@ export class NumberLocale extends BaseInput {
437
441
  super.onPropertyChange(key, nv, ov);
438
442
  }
439
443
  }
440
- }
441
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWxvY2FsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy90ZXh0L2xvY2FsZS9udW1iZXItbG9jYWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RSxPQUFPLEVBQXNCLFNBQVMsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUN4RCxPQUFPLEVBQTBDLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUkvQyxNQUFNLE9BQWdCLFlBQWEsU0FBUSxTQUFTO0lBd0JoRCxZQUNJLEdBQWEsRUFDYixNQUFxQixFQUNiLFdBQWdDLEVBQ2hDLHVCQUFnRDtRQUV4RCxLQUFLLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBSFgsZ0JBQVcsR0FBWCxXQUFXLENBQXFCO1FBQ2hDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFyQnBELG1CQUFjLEdBQVksSUFBSSxDQUFDO1FBQy9CLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBdUI5QixJQUFJLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3RELElBQUksQ0FBQyxPQUFPLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRyxJQUFJLENBQUMsS0FBSyxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFR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O1FBQ2QsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFNO1FBQ1YsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUN6QyxDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQU07UUFDaEIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLEVBQUU7WUFDN0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFHO1FBQ3pCLElBQUksR0FBRyxLQUFLLFVBQVUsSUFBSSxHQUFHLEtBQUssVUFBVSxFQUFFO1lBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDcEI7YUFBTSxJQUFJLEdBQUcsS0FBSyxXQUFXLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDbkMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUM7YUFDOUM7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUMxQjtTQUNKO2FBQU07WUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUN2QztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGdldExvY2FsZU51bWJlclN5bWJvbCwgTnVtYmVyU3ltYm9sIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHtBYnN0cmFjdEkxOG5TZXJ2aWNlLCBpc0RlZmluZWR9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IElXaWRnZXRDb25maWcsIFRyYWlsaW5nWmVyb0RlY2ltYWxQaXBlLCBJTlBVVE1PREUgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuaW1wb3J0IHsgQmFzZUlucHV0IH0gZnJvbSAnLi4vYmFzZS9iYXNlLWlucHV0JztcblxuZGVjbGFyZSBjb25zdCBfO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTnVtYmVyTG9jYWxlIGV4dGVuZHMgQmFzZUlucHV0IGltcGxlbWVudHMgVmFsaWRhdG9yIHtcbiAgICBwcml2YXRlIERFQ0lNQUw6IHN0cmluZztcbiAgICBwcml2YXRlIEdST1VQOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBzZWxlY3RlZExvY2FsZTogc3RyaW5nO1xuICAgIHByaXZhdGUgcHJveHlNb2RlbDogbnVtYmVyO1xuICAgIHByaXZhdGUgbnVtYmVyTm90SW5SYW5nZTogYm9vbGVhbjtcbiAgICBwcml2YXRlIGlzSW52YWxpZE51bWJlcjogYm9vbGVhbjtcbiAgICBwcml2YXRlIGlzRGVmYXVsdFF1ZXJ5OiBib29sZWFuID0gdHJ1ZTtcbiAgICBwcml2YXRlIGRlY2ltYWxWYWx1ZTogc3RyaW5nID0gJyc7XG4gICAgcHVibGljIGRpc3BsYXlWYWx1ZTogc3RyaW5nO1xuICAgIHByaXZhdGUgbnVtYmVyZmlsdGVyOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBsb2NhbGVmaWx0ZXI6IHN0cmluZztcbiAgICBwdWJsaWMgcmVhZG9ubHk6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgICBwdWJsaWMgbWludmFsdWU6IG51bWJlcjtcbiAgICBwdWJsaWMgbWF4dmFsdWU6IG51bWJlcjtcbiAgICBwdWJsaWMgdXBkYXRlb246IHN0cmluZztcbiAgICBwdWJsaWMgc3RlcDogbnVtYmVyO1xuICAgIHB1YmxpYyB0cmFpbGluZ3plcm86IGJvb2xlYW47XG4gICAgcHJpdmF0ZSB2YWxpZGF0ZVR5cGU6IHN0cmluZztcbiAgICBwdWJsaWMgaW5wdXRtb2RlOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBsYXN0VmFsSXNEZWNpbWFsOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluajogSW5qZWN0b3IsXG4gICAgICAgIGNvbmZpZzogSVdpZGdldENvbmZpZyxcbiAgICAgICAgcHJpdmF0ZSBpMThuU2VydmljZTogQWJzdHJhY3RJMThuU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFpbGluZ1plcm9EZWNpbWFsUGlwZTogVHJhaWxpbmdaZXJvRGVjaW1hbFBpcGVcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qLCBjb25maWcpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTG9jYWxlID0gaTE4blNlcnZpY2UuZ2V0U2VsZWN0ZWRMb2NhbGUoKTtcbiAgICAgICAgdGhpcy5ERUNJTUFMID0gZ2V0TG9jYWxlTnVtYmVyU3ltYm9sKHRoaXMubG9jYWxlZmlsdGVyIHx8IHRoaXMuc2VsZWN0ZWRMb2NhbGUsIE51bWJlclN5bWJvbC5EZWNpbWFsKTtcbiAgICAgICAgdGhpcy5HUk9VUCA9IGdldExvY2FsZU51bWJlclN5bWJvbCh0aGlzLmxvY2FsZWZpbHRlciB8fCB0aGlzLnNlbGVjdGVkTG9jYWxlLCBOdW1iZXJTeW1ib2wuR3JvdXApO1xuICAgICAgICB0aGlzLm51bWJlcmZpbHRlciA9ICcxLjAtMTYnO1xuICAgICAgICB0aGlzLnJlc2V0VmFsaWRhdGlvbnMoKTtcbiAgICB9XG5cbiAgICAvLyBTZXR0ZXIgZm9yIHRoZSBkYXRhdmFsdWUuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHNldCBkYXRhdmFsdWUodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLmxhc3RWYWxJc0RlY2ltYWwgPSBmYWxzZTtcblxuICAgICAgICAvLyBzZXQgdGV4dCB2YWx1ZSB0byBudWxsIGlmIGRhdGEgdmFsdWUgaXMgZW1wdHkuXG4gICAgICAgIGlmIChfLmluY2x1ZGVzKFtudWxsLCB1bmRlZmluZWQsICcnXSwgdmFsdWUpKSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgY29uc3QgcHJldkRhdGFWYWx1ZSA9ICAodGhpcyBhcyBhbnkpLnByZXZEYXRhdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IGlucHV0LnZhbHVlID0gdGhpcy5wcm94eU1vZGVsID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMucmVzZXRWYWxpZGF0aW9ucygpO1xuICAgICAgICAgICAgaWYgKHByZXZEYXRhVmFsdWUgJiYgIXRoaXMuaXNEZWZhdWx0UXVlcnkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBpZiB0aGUgd2lkZ2V0IGhhcyBkZWZhdWx0IHZhbHVlIGFuZCBpZiB3ZSBjaGFuZ2UgdGhlIGxvY2FsZSwgdGhlIHZhbHVlIHNob3VsZCBiZSBpbiBzZWxlY3RlZCBsb2NhbGUgZm9ybWF0LlxuICAgICAgICBpZiAodGhpcy5pc0RlZmF1bHRRdWVyeSkge1xuICAgICAgICAgICAgY29uc3QgaXNMb2NhbGl6ZWROdW1iZXIgPSBfLmlzU3RyaW5nKHZhbHVlKSAmJiBfLmluY2x1ZGVzKHZhbHVlLCB0aGlzLkRFQ0lNQUwpO1xuICAgICAgICAgICAgY29uc3QgcGFydHMgPSBpc0xvY2FsaXplZE51bWJlciA/ICAodmFsdWUgYXMgYW55KS5zcGxpdCh0aGlzLkRFQ0lNQUwpIDogXy5pc1N0cmluZyh2YWx1ZSkgJiYgKHZhbHVlIGFzIGFueSkuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgIHRoaXMuZGVjaW1hbFZhbHVlID0gcGFydHNbMV0gfHwgJyc7XG4gICAgICAgICAgICAodmFsdWUgYXMgYW55KSA9IGlzTG9jYWxpemVkTnVtYmVyID8gdmFsdWUgOiB0aGlzLnRyYW5zZm9ybU51bWJlcih2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBudW1iZXJSZWcgPSAvXFxkLztcbiAgICAgICAgY29uc3Qgc3RyVmFsID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgbGV0IG1vZGVsO1xuICAgICAgICAvLyBXaGVuIHRoZSBpbnB1dCB2YWx1ZSBvbmx5IGNvbnRhaW5zIHNlcGVyYXRvciwgZG8gbm90IGNvbnZlcnQgdGhlIHNlcGVydGFvciBpbnRvIDBcbiAgICAgICAgaWYgKG51bWJlclJlZy50ZXN0KHN0clZhbCkpIHtcbiAgICAgICAgICAgIG1vZGVsID0gdGhpcy5wYXJzZU51bWJlcihzdHJWYWwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbW9kZWwgPSBOYU47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPbiBrZXlwcmVzcywgaWYgdGhlIHVzZXIgdHlwZXMgYSBkZWNpbWFsIGFuZCBpcyBzdGlsbCBhY3RpdmUgb24gdGhlIGlucHV0IGRvIG5vdCB0aHJvdyBlcnJvci5cbiAgICAgICAgaWYgKF8uaXNOYU4obW9kZWwpICYmIHN0clZhbFtzdHJWYWwubGVuZ3RoIC0gMV0gPT09IHRoaXMuREVDSU1BTCAmJiB0aGlzLm5nTW9kZWxPcHRpb25zLnVwZGF0ZU9uID09PSAnY2hhbmdlJyAmJiB0aGlzLiRlbGVtZW50LmZpbmQoJ2lucHV0OmZvY3VzJykubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RWYWxJc0RlY2ltYWwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIC8vIGdldCBhIHZhbGlkIG51bWJlciBmb3JtIHRoZSB0ZXh0LlxuICAgICAgICAvLyBpZiB0aGUgbnVtYmVyIGlzIHZhbGlkIG9yIGlmIG51bWJlciBpcyBub3QgaW4gcmFuZ2UgdXBkYXRlIHRoZSBtb2RlbCB2YWx1ZS5cbiAgICAgICAgaWYgKCF0aGlzLmxhc3RWYWxJc0RlY2ltYWwgJiYgdGhpcy5pc1ZhbGlkKG1vZGVsKSkge1xuICAgICAgICAgICAgdGhpcy5wcm94eU1vZGVsID0gbW9kZWw7XG4gICAgICAgICAgICAvLyB1cGRhdGUgdGhlIGRpc3BsYXkgdmFsdWUgaW4gdGhlIHRleHQgYm94LlxuICAgICAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5VGV4dCgpO1xuICAgICAgICAgICAgLy8gRG8gbm90IHRyaWdnZXIgb25jaGFuZ2UgZXZlbnQgZm9yIGRlZmF1bHQgdmFsdWVcbiAgICAgICAgICAgIGlmICghdGhpcy5pc0RlZmF1bHRRdWVyeSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlKG1vZGVsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIHRoaXMucHJveHlNb2RlbCA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZShudWxsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHJldHVybnMgdGhlIGFjdHVhbCBtb2RlbCB2YWx1ZSBvZiB0aGUgd2lkZ2V0LlxuICAgIGdldCBkYXRhdmFsdWUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJveHlNb2RlbDtcbiAgICB9XG5cbiAgICAvLyByZXNldHMgYWxsIHRoZSBmbGFncyByZWxhdGVkIHRvIHRoZSB3aWRnZXQncyB2YWxpZGF0aW9uLlxuICAgIHByb3RlY3RlZCByZXNldFZhbGlkYXRpb25zKCkge1xuICAgICAgICB0aGlzLmlzSW52YWxpZE51bWJlciA9IGZhbHNlO1xuICAgICAgICB0aGlzLm51bWJlck5vdEluUmFuZ2UgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIHZhbGlkYXRpb25zIGZvciB0aGUgbnVtYmVyIGJlZm9yZSB1cGRhdGluZyB0aGUgd2lkZ2V0IG1vZGVsLiBsaWtlIHZhbGlkYXRpbmcgbWluIGFuZCBtYXggdmFsdWUgZm9yIHRoZSB3aWRnZXQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHZhbCBudW1iZXIgdG8gYmUgdmFsaWRhdGVkXG4gICAgICogQHJldHVybnMge251bWJlcn1cbiAgICAgKi9cbiAgICBwcml2YXRlIGlzVmFsaWQodmFsOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgLy8gaWQgbnVtYmVyIGlzIGluZmluaXRlIHRoZW4gY29uc2lkZXIgaXQgYXMgaW52YWxpZCB2YWx1ZVxuICAgICAgICBpZiAoXy5pc05hTih2YWwpIHx8ICFfLmlzRmluaXRlKHZhbCkgfHwgKCFOdW1iZXIuaXNJbnRlZ2VyKHRoaXMuc3RlcCkgJiZcbiAgICAgICAgICAgIHRoaXMuY291bnREZWNpbWFscyh2YWwpID4gdGhpcy5jb3VudERlY2ltYWxzKHRoaXMuc3RlcCkpKSB7XG4gICAgICAgICAgICB0aGlzLmlzSW52YWxpZE51bWJlciA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbCAhPT0gdGhpcy5nZXRWYWx1ZUluUmFuZ2UodmFsKSkge1xuICAgICAgICAgICAgdGhpcy5udW1iZXJOb3RJblJhbmdlID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzZXRWYWxpZGF0aW9ucygpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIGEgdmFsaWQgbnVtYmVyIGJ5IHZhbGlkYXRpbmcgdGhlIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZVxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9XG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRWYWx1ZUluUmFuZ2UodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGlmICghXy5pc05hTih0aGlzLm1pbnZhbHVlKSAmJiB2YWx1ZSA8IHRoaXMubWludmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVUeXBlID0gJ21pbnZhbHVlJztcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1pbnZhbHVlO1xuXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFfLmlzTmFOKHRoaXMubWF4dmFsdWUpICYmIHZhbHVlID4gdGhpcy5tYXh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZVR5cGUgPSAnbWF4dmFsdWUnO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubWF4dmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNvbnZlcnQgbnVtYmVyIHRvIGxvY2FsaXplZCBudW1iZXIgdXNpbmcgYW5ndWxhciBkZWNpbWFsIHBpcGUuIGVnIDEwLDAwLDAwMCBvciAxLDAwMCwwMDBcbiAgICAgKiBAcGFyYW0gbnVtYmVyXG4gICAgICogQHJldHVybnMge3N0cmluZ31cbiAgICAgKi9cbiAgICBwcml2YXRlIHRyYW5zZm9ybU51bWJlcihudW1iZXIsIG51bWJlcmZpbHRlcj8pOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBmaWx0ZXJWYWwgPSBudW1iZXJmaWx0ZXIgPyBudW1iZXJmaWx0ZXIgOiB0aGlzLm51bWJlcmZpbHRlcjtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhaWxpbmdaZXJvRGVjaW1hbFBpcGUudHJhbnNmb3JtKG51bWJlciwgdGhpcy5zZWxlY3RlZExvY2FsZSwgZmlsdGVyVmFsLCB0aGlzLmxvY2FsZWZpbHRlciwgdGhpcy50cmFpbGluZ3plcm8sIHRoaXMuZGVjaW1hbFZhbHVlLCAhIW51bWJlcmZpbHRlciwgdGhpcy5pMThuU2VydmljZT8uZ2V0d2lkZ2V0TG9jYWxlKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJlc2V0cyB0aGUgY3Vyc29yIHBvc2l0aW9uIGluIHRoZSB0ZXh0IGJveC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgY3Vyc29yIHBvc2l0aW9uIGluZGV4IGZvcm0gbGVmdCB0byByaWdodC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlc2V0Q3Vyc29yUG9zaXRpb24odmFsdWU6IG51bWJlcikge1xuICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICAvLyBwb3NpdGlvbiBvZiB0aGUgY3Vyc29yIHNob3VsZCBiZSBnaXZlbiBmb3JtIHJpZ2h0IHRvIGxlZnQuXG4gICAgICAgIGxldCBwb3NpdGlvbiA9IGlucHV0LnZhbHVlLmxlbmd0aCAtIHZhbHVlO1xuICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uIDwgMCA/IDAgOiBwb3NpdGlvbjtcbiAgICAgICAgLy8gc2V0IHRoZSBjdXJzb3IgcG9zaXRpb24gaW4gdGhlIHRleHQgYm94LlxuICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShwb3NpdGlvbiwgcG9zaXRpb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCBwYXJzZXMgdGhlIExvY2FsaXplZCBudW1iZXIoc3RyaW5nKSB0byBhIHZhbGlkIG51bWJlci5cbiAgICAgKiBpZiB0aGUgc3RyaW5nIGRvc2Ugbm90IHJlc3VsdCB0byBhIHZhbGlkIG51bWJlciB0aGVuIHJldHVybnMgTmFOLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB2YWwgTG9jYWxpemVkIG51bWJlci5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfVxuICAgICAqL1xuICAgIHByaXZhdGUgcGFyc2VOdW1iZXIodmFsOiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICAvLyBXTVMtMjIxNzk6IHNwbGl0IG51bWJlciBiYXNlZCBvbiB0aGUgZGVjaW1hbCBzZXBhcmF0b3IgaW4gdGhlIHZhbFxuICAgICAgICAvLyBzcGxpdHMgc3RyaW5nIGludG8gdHdvIHBhcnRzLiBkZWNpbWFsIGFuZCBudW1iZXIuXG4gICAgICAgIGNvbnN0IHBhcnRzID0gdmFsLnNwbGl0KHRoaXMuaW5wdXRtb2RlID09PSBJTlBVVE1PREUuRklOQU5DSUFMID8gKHZhbC5pbmRleE9mKHRoaXMuREVDSU1BTCkgPiAtMSA/IHRoaXMuREVDSU1BTCA6ICcuJykgOiB0aGlzLkRFQ0lNQUwpO1xuICAgICAgICBpZiAoIXBhcnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCA+IDIpIHtcbiAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgbnVtYmVyIGhhdmUgZGVjaW1hbCBwb2ludCBhbmQgbm90IGhhdmUgYSBkZWNpbWFsIHZhbHVlIHRoZW4gcmV0dXJuLlxuICAgICAgICBpZiAocGFydHNbMV0gPT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gTmFOO1xuICAgICAgICB9XG4gICAgICAgIC8vIHJlcGxhY2VzIGFsbCBncm91cCBzZXBhcmF0b3JzIGZvcm0gdGhlIG51bWJlci5cbiAgICAgICAgY29uc3QgbnVtYmVyID0gTnVtYmVyKHBhcnRzWzBdLnNwbGl0KHRoaXMuR1JPVVApLmpvaW4oJycpKTtcbiAgICAgICAgY29uc3QgZGVjaW1hbCA9IE51bWJlcihgMC4ke3BhcnRzWzFdIHx8IDB9YCk7XG4gICAgICAgIGlmIChOdW1iZXIuaXNOYU4obnVtYmVyKSB8fCBOdW1iZXIuaXNOYU4oZGVjaW1hbCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3VtID0gcGFydHMubGVuZ3RoID4gMSA/IHBhcnNlRmxvYXQoKG51bWJlciArIGRlY2ltYWwpLnRvRml4ZWQocGFydHNbMV0ubGVuZ3RoKSkgOiBudW1iZXIgKyBkZWNpbWFsO1xuICAgICAgICAvLyBpZiB0aGUgbnVtYmVyIGlzIG5lZ2F0aXZlIHRoZW4gY2FsY3VsYXRlIHRoZSBudW1iZXIgYXMgbnVtYmVyIC0gZGVjaW1hbFxuICAgICAgICAvLyBFeDogbnVtYmVyID0gLTEyMyBhbmQgZGVjaW1hbCA9IDAuNDUgdGhlbiBudW1iZXIgLSBkZWNpbWFsID0gLTEyMy0wNDUgPSAtMTIzLjQ1XG4gICAgICAgIC8vIElmIGVudGVyZWQgbnVtYmVyIGlzIC0wLjEgdG8gLTAuOSB0aGVuIHRoZSBudW1iZXIgaXMgLTAgYW5kIGRlY2ltYWwgaXMgMC4xIHRvIDAuOS4gTm93IGNhbGFjdWxhdGUgdGhlIG51bWJlciBhcyBudW1iZXItZGVjaW1hbFxuICAgICAgICAvLyBFeDogbnVtYmVyID0gLTAgYW5kIGRlY2ltYWwgPSAwLjEgdGhlbiBudW1iZXItZGVjaW1hbCA9IC0wLTAuMSA9IC0wLjFcbiAgICAgICAgaWYgKG51bWJlciA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5pcygwLCBudW1iZXIpID8gc3VtIDogbnVtYmVyIC0gZGVjaW1hbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVtYmVyID4gMCA/IHN1bSA6IG51bWJlciAtIGRlY2ltYWw7XG4gICAgfVxuXG4gICAgLy8gdXBkYXRlcyB0aGUgd2lkZ2V0cyB0ZXh0IHZhbHVlLlxuICAgIHByaXZhdGUgdXBkYXRlRGlzcGxheVRleHQoKSB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uOiBudW1iZXIgPSBpbnB1dC5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgY29uc3QgcHJlVmFsdWU6IHN0cmluZyA9IGlucHV0LnZhbHVlO1xuICAgICAgICBpZiAoIXRoaXMuaXNEZWZhdWx0UXVlcnkpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRzID0gcHJlVmFsdWUuc3BsaXQodGhpcy5ERUNJTUFMKTtcbiAgICAgICAgICAgIHRoaXMuZGVjaW1hbFZhbHVlID0gcGFydHNbMV0gfHwgJyc7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RlcFZhbCA9IHRoaXMuc3RlcExlbmd0aCgpO1xuICAgICAgICBpZiAodGhpcy5pbnB1dG1vZGUgPT09IElOUFVUTU9ERS5GSU5BTkNJQUwgJiYgc3RlcFZhbCkge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSBpbnB1dC52YWx1ZSA9IHRoaXMudHJhbnNmb3JtTnVtYmVyKHRoaXMucHJveHlNb2RlbCwgYDEuJHtzdGVwVmFsfS0ke3N0ZXBWYWx9YCk7XG4gICAgICAgICAgICB0aGlzLmRlY2ltYWxWYWx1ZSA9IHRoaXMuZGVjaW1hbFZhbHVlLnJlcGxhY2UoL1xcRC9nLCcnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gaW5wdXQudmFsdWUgPSB0aGlzLnRyYW5zZm9ybU51bWJlcih0aGlzLnByb3h5TW9kZWwpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGluIHNhZmFyaSBicm93c2VyLCBzZXRTZWxlY3Rpb25SYW5nZSB3aWxsIGZvY3VzIHRoZSBpbnB1dCBieSBkZWZhdWx0LCB3aGljaCBtYXkgaW52b2tlIHRoZSBmb2N1cyBldmVudCBvbiB3aWRnZXQuXG4gICAgICAgIC8vIEhlbmNlIHByZXZlbnRpbmcgdGhlIHNldFNlbGVjdGlvblJhbmdlIHdoZW4gZGVmYXVsdCB2YWx1ZSBpcyBzZXQgaS5lLiB3aWRnZXQgaXMgbm90IGZvY3VzZWQuXG4gICAgICAgIGlmICh0aGlzLnVwZGF0ZW9uID09PSAnZGVmYXVsdCcgJiYgIXRoaXMuaXNEZWZhdWx0UXVlcnkpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRDdXJzb3JQb3NpdGlvbihwcmVWYWx1ZS5sZW5ndGggLSBwb3NpdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHN0ZXAgbGVuZ3RoIHNldCBpbiB0aGUgc3R1ZGlvXG4gICAgcHJpdmF0ZSBzdGVwTGVuZ3RoKCkge1xuICAgICAgICBjb25zdCBzdGVwTGVuID0gdGhpcy5zdGVwLnRvU3RyaW5nKCkuc3BsaXQoJy4nKTtcbiAgICAgICAgaWYgKHN0ZXBMZW4ubGVuZ3RoID09PSAxICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHN0ZXBMZW5bMV0ubGVuZ3RoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgdGhlIGN1cnJlbmN5IHdpZGdldCBoYXMgaW5wdXQgbW9kZSBhcyBuYXR1cmFsIGFuZCB0cmFpbGluZyB6ZXJvIGlzIGRlZmluZWQgb3Igbm90XG4gICAgcHVibGljIGlzTmF0dXJhbEN1cnJlbmN5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dG1vZGUgPT09IElOUFVUTU9ERS5OQVRVUkFMICYmIHRoaXMud2lkZ2V0VHlwZSA9PT0gJ3dtLWN1cnJlbmN5JyAmJiAhIXRoaXMudHJhaWxpbmd6ZXJvO1xuICAgIH1cblxuICAgICAgIC8qKlxuICAgICAqIEBwYXJhbSB2YWx1ZSBjb250YWlucyB0aGUgdmFsdWUgZW50ZXJlZCBpbiB0aGUgaW5wdXQgYm94XG4gICAgICogVGhpcyBmdW5jdGlvbiBtb2RpZmllcyB0aGUgdXNlciBpbnB1dCB2YWx1ZSwgaW50byBmaW5hbmNpYWwgbW9kZS5cbiAgICAgKiBOdW1iZXIgc3RhcnRzIGZyb20gaGlnaGVzdCBwcmVjZXNpb24gZGVjaW1hbCwgb24gdHlwaW5nIG51bWJlciBzaGlmdHMgdG8gdGhlIGxlZnRcbiAgICAgKi9cbiAgICBwdWJsaWMgb25JbnB1dENoYW5nZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIGNvbnN0IHN0ZXBWYWwgPSB0aGlzLnN0ZXBMZW5ndGgoKTtcbiAgICAgICAgLy8gV01TLTIyMzU1LCBUcmlnZ2VyIGNoYW5nZSBjYiBpZiB2YWx1ZSBleGlzdHMgb3IgdmFsdWUgaXMgZW1wdHkgYnV0IGRhdGF2YWx1ZSBleGlzdHMgKHdoZW4gdmFsdWUgaXMgc2VsZWN0ZWQgYW5kIGRlbGV0ZWQpLlxuICAgICAgICBpZiAoaXNEZWZpbmVkKHZhbHVlKSAmJiAodmFsdWUgIT09ICcnIHx8IHRoaXMuZGF0YXZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFzdGVwVmFsIHx8IHRoaXMuaW5wdXRtb2RlICE9PSBJTlBVVE1PREUuRklOQU5DSUFMKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZmluYW5jaWFsVmFsO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGUgdmFsdWUgaXMgZW50ZXJlZCBieSB0aGUgdXNlciwgZm9ybWF0IHRoZSBpbnB1dFxuICAgICAgICAgKiBJZiB0aGUgdmFsdWUgaXMgcHJvdmlkZWQgYXMgZGVmYXVsdCB2YWx1ZSwgc2tpcCBmb3JtYXR0aW5nXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5pc0RlZmF1bHRRdWVyeSkge1xuICAgICAgICAgICAgZmluYW5jaWFsVmFsID0gcGFyc2VGbG9hdCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB2YWxJbldob2xlTnVtID0gcGFyc2VJbnQodmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKC9cXEQvZywnJykpO1xuICAgICAgICAgICAgZmluYW5jaWFsVmFsID0gdmFsSW5XaG9sZU51bSAqICB0aGlzLnN0ZXA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIV8uaXNOYU4oZmluYW5jaWFsVmFsKSkge1xuICAgICAgICAgICAgLy8gV2hlbiB1cGRhdGUgb24ga2V5IGlzIHNldCBrZXlwcmVzcywgdXBkYXRlIHRoZSBkYXRhdmFsdWUgZWxzZSB1cGRhdGUgb25seSB0aGUgZGlzcGxheSB2YWx1ZVxuICAgICAgICAgICAgaWYgKHRoaXMubmdNb2RlbE9wdGlvbnMudXBkYXRlT24gPT09ICdjaGFuZ2UnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhdmFsdWUgPSBwYXJzZUZsb2F0KGZpbmFuY2lhbFZhbC50b0ZpeGVkKHN0ZXBWYWwpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZSh0aGlzLmRhdGF2YWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gZmluYW5jaWFsVmFsLnRvRml4ZWQoc3RlcFZhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5uZ01vZGVsT3B0aW9ucy51cGRhdGVPbiAhPT0gJ2JsdXInKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGF2YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlKG51bGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gSW5wdXQgbW9kZSBpcyBmaW5hbmNpYWwgYW5kIHRyYWlsaW5nIHplcm8gaXMgc2V0IHRvIGZhbHNlLCBPbiBmb2N1cyBzZXQgZGlzcGxheSB2YWwgdG8gZml4ZWQgcG9pbnQgbm90YXRpb24gYW5kIE9uIGJsdXIgc3RyaXAgdHJhaWxpbmcgemVyb3NcbiAgICAvLyBJbiBjdXJyZW5jeSwgaW5wdXRtb2RlIGlzIG5hdHVyYWwgYW5kIHRyYWlsaW5nIHplcm8gYW5kIHN0ZXAgYXJlIGRlZmluZWQsIG9uIGJsdXIgZGlzcGxheSB2YWwgdG8gZml4ZWQgcG9pbnQgbm90YXRpb24gYW5kIG9uIGZvY3VzIHN0cmlwIHRoZSB6ZXJvc1xuICAgIHB1YmxpYyBjaGVja0ZvclRyYWlsaW5nWmVyb3MoJGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHN0ZXBWYWwgPSB0aGlzLnN0ZXBMZW5ndGgoKTtcbiAgICAgICAgY29uc3QgZmluYW5jaWFsTW9kZSA9ICF0aGlzLnRyYWlsaW5nemVybyAmJiB0aGlzLmlucHV0bW9kZSA9PT0gSU5QVVRNT0RFLkZJTkFOQ0lBTDtcblxuICAgICAgICAvLyBJZiB0aGUgdXNlcidzIGxhc3QgaW5wdXQgaXMgYSBkZWNpbWFsIGFuZCBub3QgYWN0aXZlIG9uIGlucHV0IGZpZWxkLCB0aHJvdyBlcnJvclxuICAgICAgICBpZiAodGhpcy5sYXN0VmFsSXNEZWNpbWFsKSB7XG4gICAgICAgICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodGhpcy5kaXNwbGF5VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZmluYW5jaWFsTW9kZSAmJiAhdGhpcy5pc05hdHVyYWxDdXJyZW5jeSgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0ZXBWYWwgJiYgdGhpcy5kYXRhdmFsdWUpIHtcbiAgICAgICAgICAgIGxldCBudW1iZXJmaWx0ZXI7XG4gICAgICAgICAgICBpZiAoKGZpbmFuY2lhbE1vZGUgJiYgJGV2ZW50LnR5cGUgPT09ICdmb2N1cycpIHx8ICh0aGlzLmlzTmF0dXJhbEN1cnJlbmN5KCkgJiYgJGV2ZW50LnR5cGUgPT09ICdibHVyJykpIHtcbiAgICAgICAgICAgICAgICBudW1iZXJmaWx0ZXIgPSBgMS4ke3N0ZXBWYWx9LSR7c3RlcFZhbH1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnRyYW5zZm9ybU51bWJlcih0aGlzLmRhdGF2YWx1ZSwgbnVtYmVyZmlsdGVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgdGhlIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyBhIG51bWJlciBoYXZlLlxuICAgICAqIEBwYXJhbSB2YWx1ZTogbnVtYmVyXG4gICAgICogQHJldHVybnMge251bWJlcn1cbiAgICAgKi9cbiAgICBwcml2YXRlIGNvdW50RGVjaW1hbHModmFsdWUpIHtcbiAgICAgICAgaWYgKCh2YWx1ZSAlIDEpICE9PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBkZWNpbWFsVmFsdWUgPSB2YWx1ZS50b1N0cmluZygpLnNwbGl0KCcuJylbMV07XG4gICAgICAgICAgICByZXR1cm4gZGVjaW1hbFZhbHVlICYmIGRlY2ltYWxWYWx1ZS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaGFuZGxlcyB0aGUgYXJyb3cgcHJlc3MgZXZlbnQuIEluY3JlYXNlcyBvciBkZWNyZWFzZXMgdGhlIG51bWJlci4gdHJpZ2dlcmVkIGZvbSB0aGUgdGVtcGxhdGVcbiAgICAgKiBAcGFyYW0gJGV2ZW50IGtleWJvYXJkIGV2ZW50LlxuICAgICAqIEBwYXJhbSBrZXkgaWRlbnRpZmllciB0byBpbmNyZWFzZSBvciBkZWNyZWFzZSB0aGUgbnVtYmVyLlxuICAgICAqL1xuICAgIHB1YmxpYyBvbkFycm93UHJlc3MoJGV2ZW50LCBrZXkpIHtcbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5IHx8IHRoaXMuc3RlcCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRhcmdldFZhbCA9ICRldmVudC50YXJnZXQudmFsdWUucmVwbGFjZSgvLC9nLCAnJyk7XG5cbiAgICAgICAgLy8gcHJveHlNb2RlbCB0byBiZSB1cGRhdGVkIGZyb20gJGV2ZW50LnRhcmdldC52YWx1ZSBpZiBwcmVzZW50IHRvIHN1cHBvcnQgYXJyb3cga2V5cyB3aGVuIGlucHV0IGNoYW5nZXMgZWxzZSBwaWNrIHVwIGZyb20gdGhpcy5wcm94eW1vZGVsXG4gICAgICAgIGxldCBwcm94eU1vZGVsO1xuICAgICAgICBpZiAodGFyZ2V0VmFsICYmICFfLmlzTmFOKHBhcnNlRmxvYXQodGFyZ2V0VmFsKSkpIHtcbiAgICAgICAgICAgIHByb3h5TW9kZWwgPSBwYXJzZUZsb2F0KHRhcmdldFZhbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm94eU1vZGVsID0gdGhpcy5wcm94eU1vZGVsO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHZhbHVlO1xuXG4gICAgICAgIC8vIGlmIHRoZSBudW1iZXIgaXMgbm90IGluIHJhbmdlIGFuZCB3aGVuIGFycm93IGJ1dHRvbnMgYXJlIHByZXNzZWQgbmVlZCB0byBnZXQgYXBwcm9wcmlhdGUgbnVtYmVyIHZhbHVlLlxuICAgICAgICBpZiAodGhpcy5udW1iZXJOb3RJblJhbmdlKSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gdGhpcy5wYXJzZU51bWJlcih0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZSk7XG4gICAgICAgICAgICAvLyB0YWtlIHRoZSB0ZXh0Ym94IHZhbHVlIGFzIGN1cnJlbnQgbW9kZWwgaWYgdGhlIHZhbHVlIGlzIHZhbGlkLlxuICAgICAgICAgICAgaWYgKCFfLmlzTmFOKGlucHV0VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB0aGlzLmdldFZhbHVlSW5SYW5nZShpbnB1dFZhbHVlKTtcbiAgICAgICAgICAgICAgICBwcm94eU1vZGVsID0gaW5wdXRWYWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0VmFsaWRhdGlvbnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKHByb3h5TW9kZWwpIHx8IF8uaXNOdWxsKHByb3h5TW9kZWwpKSB7XG4gICAgICAgICAgICAgICAgcHJveHlNb2RlbCA9IHZhbHVlID0gdGhpcy5nZXRWYWx1ZUluUmFuZ2UoKHRoaXMubWludmFsdWUgfHwgMCkpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRWYWxpZGF0aW9ucygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWVJblJhbmdlKHByb3h5TW9kZWwgKyAoa2V5ID09PSAnVVAnID8gdGhpcy5zdGVwIDogLXRoaXMuc3RlcCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICgoa2V5ID09PSAnVVAnICYmIHByb3h5TW9kZWwgPD0gdmFsdWUpIHx8IChrZXkgPT09ICdET1dOJyAmJiBwcm94eU1vZGVsID49IHZhbHVlKSkge1xuICAgICAgICAgICAgY29uc3QgZGVjaW1hbFJvdW5kVmFsdWUgPSBNYXRoLm1heCh0aGlzLmNvdW50RGVjaW1hbHMocHJveHlNb2RlbCksIHRoaXMuY291bnREZWNpbWFscyh0aGlzLnN0ZXApKTtcblxuICAgICAgICAgICAgLy8gdXBkYXRlIHRoZSBtb2RlbFByb3h5LlxuICAgICAgICAgICAgdGhpcy5wcm94eU1vZGVsID0gXy5yb3VuZCh2YWx1ZSwgZGVjaW1hbFJvdW5kVmFsdWUpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5VGV4dCgpO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UodGhpcy5wcm94eU1vZGVsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIG1ldGhvZCBpcyBjYWxsZWQgZnJvbSB0aGUgZnJvbSB3aWRnZXQuIHRvIGNoZWNrIHdoZXRoZXIgdGhlIHZhbHVlIGVudGVyZWQgaXMgdmFsaWQgb3Igbm90LlxuICAgICAqIEByZXR1cm5zIHtvYmplY3R9XG4gICAgICovXG4gICAgcHVibGljIHZhbGlkYXRlKGM6IEFic3RyYWN0Q29udHJvbCkge1xuICAgICAgICBpZiAodGhpcy5pc0ludmFsaWROdW1iZXIpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVUeXBlID0gJyc7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGludmFsaWROdW1iZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubnVtYmVyTm90SW5SYW5nZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBudW1iZXJOb3RJblJhbmdlOiB7XG4gICAgICAgICAgICAgICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmFsaWRhdGVUeXBlID0gJyc7XG4gICAgICAgIC8qIFdNUy0xODI2OSB8IEV4dGVuZGluZyB0aGUgZXhpc3RpbmcgdmFsaWRhdGlvbiBmb3IgJ3JlcXVpcmVkJyAqL1xuICAgICAgICBpZiAodGhpc1snc2hvdyddICYmIHRoaXNbJ3JlcXVpcmVkJ10pIHtcbiAgICAgICAgICAgIHJldHVybiAoISFjLnZhbHVlIHx8IGMudmFsdWUgPT09IDApID8gbnVsbCA6IHsgcmVxdWlyZWQ6IHRydWUgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsaWRhdGVJbnB1dEVudHJ5KCRldmVudCkge1xuXG4gICAgICAgIHRoaXMuaXNEZWZhdWx0UXVlcnkgPSBmYWxzZTtcblxuICAgICAgICAvLyBhbGxvdyBhY3Rpb25zIGlmIGNvbnRyb2wga2V5IGlzIHByZXNzZWQgb3IgaWYgYmFja3NwYWNlIGlzIHByZXNzZWQuIChmb3IgTW96aWxsYSkuXG4gICAgICAgIGlmICgkZXZlbnQuY3RybEtleSB8fCBfLmluY2x1ZGVzKFsnQmFja3NwYWNlJywgJ0Fycm93UmlnaHQnLCAnQXJyb3dMZWZ0JywgJ1RhYicsICdFbnRlcicsICdEZWxldGUnXSwgJGV2ZW50LmtleSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbGlkaXR5ID0gbmV3IFJlZ0V4cChgXltcXFxcZFxcXFxzLSwuZSske3RoaXMuR1JPVVB9JHt0aGlzLkRFQ0lNQUx9XSRgLCAnaScpO1xuICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gJGV2ZW50LnRhcmdldC52YWx1ZTtcblxuICAgICAgICAvLyB3aGVuIGlucHV0IG1vZGUgaXMgZmluYW5jaWFsLCBkbyBub3QgcmVzdHJpY3QgdXNlciBvbiBlbnRlcmluZyB0aGUgdmFsdWUgd2hlbiBzdGVwIHZhbHVlIGxpbWl0IGlzIHJlYWNoZWQuXG4gICAgICAgIGNvbnN0IHNraXBTdGVwVmFsaWRhdGlvbiA9IHRoaXMuaW5wdXRtb2RlID09PSBJTlBVVE1PREUuRklOQU5DSUFMO1xuXG4gICAgICAgIC8vIFZhbGlkYXRlcyBpZiB1c2VyIGVuZXRlcnMgbW9yZSB0aGFuIDE2IGRpZ2l0c1xuICAgICAgICBpZiAoaW5wdXRWYWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkVmFsID0gIHBhcnNlSW50KGlucHV0VmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKC9cXEQvZywnJykpO1xuICAgICAgICAgICAgaWYgKHBhcnNlZFZhbC50b1N0cmluZygpLmxlbmd0aCA+IDE1KSB7XG4gICAgICAgICAgICAgICAgLy8gV01TLTIyMzIxOiBJZiB0aGUgbnVtYmVyIGlzIGdyZWF0ZXIgdGhhbiBNQVhfU0FGRV9JTlRFR0VSIChtb3JlIHRoYW4gMTUgbnVtYmVycykuXG4gICAgICAgICAgICAgICAgLy8gdXNlciBzZWxlY3RzIGEgcmFuZ2Ugb2YgZGlnaXRzIGFuZCBwcmVzc2VzIGEga2V5LlxuICAgICAgICAgICAgICAgIC8vIERvIG5vdCB0aHJvdyB2YWxpZGF0aW9uIG9mIGV4Y2VlZGVkIG51bWJlciBhcyBzZWxlY3RlZCByYW5nZSB2YWx1ZSB3aWxsIGJlIGRlbGV0ZWQuXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRWYWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkVmFsICYmIHNlbGVjdGVkVmFsLnRvU3RyaW5nKCkgJiYgc2VsZWN0ZWRWYWwuZm9jdXNOb2RlID09PSB0aGlzLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHZhbGlkYXRlcyBlbnRlcmluZyBvZiBkZWNpbWFsIHZhbHVlcyBvbmx5IHdoZW4gdXNlciBwcm92aWRlcyBkZWNpbWFsIGxpbWl0KGkuZSBzdGVwIGNvbnRhaW5zIGRlY2ltYWwgdmFsdWVzKS5cbiAgICAgICAgLy8gUmVzdHJpY3QgdXNlciBmcm9tIGVudGVyaW5nIG9ubHkgaWYgdGhlIGRlY2ltYWwgbGltaXQgaXMgcmVhY2hlZCBhbmQgdGhlIG5ldyBkaWdpdCBpcyBlbnRlcmVkIGluIGRlY2ltYWwgcGxhY2VcbiAgICAgICAgaWYgKCFza2lwU3RlcFZhbGlkYXRpb24gJiYgaW5wdXRWYWx1ZSAmJiB0aGlzLmNvdW50RGVjaW1hbHModGhpcy5zdGVwKSAmJiAodGhpcy5jb3VudERlY2ltYWxzKGlucHV0VmFsdWUpID49IHRoaXMuY291bnREZWNpbWFscyh0aGlzLnN0ZXApKSAmJiAkZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0ID49IGlucHV0VmFsdWUubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIHZhbGlkYXRlcyBpZiB1c2VyIGVudGVyZWQgYW4gaW52YWxpZCBjaGFyYWN0ZXIuXG4gICAgICAgIGlmICghdmFsaWRpdHkudGVzdCgkZXZlbnQua2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbW1hIGNhbm5vdCBiZSBlbnRlcmVkIGNvbnNlY3V0aXZlbHlcbiAgICAgICAgaWYgKF8uaW5jbHVkZXMoaW5wdXRWYWx1ZSwgJywnKSAmJiBpbnB1dFZhbHVlW2lucHV0VmFsdWUubGVuZ3RoIC0gMV0gPT09ICcsJyAmJiAkZXZlbnQua2V5ID09PSAnLCcpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGEgZGVjaW1hbCB2YWx1ZSBjYW4gYmUgZW50ZXJlZCBvbmx5IG9uY2UgaW4gdGhlIGlucHV0LlxuICAgICAgICBpZiAoXy5pbmNsdWRlcyhpbnB1dFZhbHVlLCB0aGlzLkRFQ0lNQUwpICYmICRldmVudC5rZXkgPT09IHRoaXMuREVDSU1BTCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vICdlJyBjYW4gYmUgZW50ZXJlZCBvbmx5IG9uY2UgaW4gdGhlIGlucHV0LlxuICAgICAgICBpZiAoXy5pbnRlcnNlY3Rpb24oXy50b0FycmF5KGlucHV0VmFsdWUpLCBbJ2UnLCAnRSddKS5sZW5ndGggJiYgXy5pbmNsdWRlcygnZUUnLCAkZXZlbnQua2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICgoXy5pbmNsdWRlcyhpbnB1dFZhbHVlLCAnKycpIHx8IF8uaW5jbHVkZXMoaW5wdXRWYWx1ZSwgJy0nKSkgJiYgKCRldmVudC5rZXkgPT09ICcrJyB8fCAkZXZlbnQua2V5ID09PSAnLScpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRG8gbm90IGFsbG93IHVzZXIgdG8gZW50ZXIgb25seSBzcGFjZSB3aXRob3V0IGFueSBpbnB1dCB2YWx1ZVxuICAgICAgICBpZiAoIWlucHV0VmFsdWUgJiYgJGV2ZW50LmNvZGUgPT09ICdTcGFjZScpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQmFja3NwYWNlKCRldmVudCkge1xuICAgICAgICB0aGlzLmlzRGVmYXVsdFF1ZXJ5ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25FbnRlcigkZXZlbnQpIHtcbiAgICAgICAgdGhpcy5kYXRhdmFsdWUgPSAkZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIH1cblxuICAgIG9uTW9kZWxDaGFuZ2UoJGV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0bW9kZSA9PT0gSU5QVVRNT0RFLk5BVFVSQUwgfHwgKHRoaXMuaW5wdXRtb2RlID09PSBJTlBVVE1PREUuRklOQU5DSUFMICYmIHRoaXMubmdNb2RlbE9wdGlvbnMudXBkYXRlT24gPT09ICdibHVyJykpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YXZhbHVlID0gJGV2ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdj8pIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ21pbnZhbHVlJyB8fCBrZXkgPT09ICdtYXh2YWx1ZScpIHtcbiAgICAgICAgICAgIHRoaXMuaXNWYWxpZChudik7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnZGF0YXZhbHVlJyAmJiAhb3YpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzTmF0dXJhbEN1cnJlbmN5KCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrRm9yVHJhaWxpbmdaZXJvcyh7dHlwZTogJ2JsdXInfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMub25JbnB1dENoYW5nZShudik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
444
+ };
445
+ NumberLocale = __decorate([
446
+ __param(4, Inject('EXPLICIT_CONTEXT')),
447
+ __param(4, Optional()),
448
+ __metadata("design:paramtypes", [Injector, Object, AbstractI18nService,
449
+ TrailingZeroDecimalPipe, Object])
450
+ ], NumberLocale);
451
+ export { NumberLocale };
452
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWxvY2FsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy90ZXh0L2xvY2FsZS9udW1iZXItbG9jYWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXRFLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxTQUFTLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDeEQsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0MsT0FBTyxFQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUVoRyxJQUFzQixZQUFZLEdBQWxDLE1BQXNCLFlBQWEsU0FBUSxTQUFTO0lBd0JoRCxZQUNJLEdBQWEsRUFDYixNQUFxQixFQUNiLFdBQWdDLEVBQ2hDLHVCQUFnRCxFQUNoQixlQUFvQjtRQUU1RCxLQUFLLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxlQUFlLENBQUMsQ0FBQztRQUo1QixnQkFBVyxHQUFYLFdBQVcsQ0FBcUI7UUFDaEMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQXJCcEQsbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFDL0IsaUJBQVksR0FBVyxFQUFFLENBQUM7UUF3QjlCLElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFD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Q0FBQyxFQUFFLENBQUM7WUFDOUgsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUc7UUFDekIsSUFBSSxHQUFHLEtBQUssVUFBVSxJQUFJLEdBQUcsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JCLENBQUM7YUFBTSxJQUFJLEdBQUcsS0FBSyxXQUFXLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNwQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxFQUFDLElBQUksRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDO1lBQy9DLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNCLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDTCxDQUFDO0NBQ0osQ0FBQTtBQXhlcUIsWUFBWTtJQTZCekIsV0FBQSxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtJQUFFLFdBQUEsUUFBUSxFQUFFLENBQUE7cUNBSmxDLFFBQVEsVUFFUSxtQkFBbUI7UUFDUCx1QkFBdUI7R0E1QjFDLFlBQVksQ0F3ZWpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdG9yLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGdldExvY2FsZU51bWJlclN5bWJvbCwgTnVtYmVyU3ltYm9sIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHtBYnN0cmFjdEkxOG5TZXJ2aWNlLCBpc0RlZmluZWR9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IElXaWRnZXRDb25maWcsIFRyYWlsaW5nWmVyb0RlY2ltYWxQaXBlLCBJTlBVVE1PREUgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuaW1wb3J0IHsgQmFzZUlucHV0IH0gZnJvbSAnLi4vYmFzZS9iYXNlLWlucHV0JztcbmltcG9ydCB7aW5jbHVkZXMsIGludGVyc2VjdGlvbiwgaXNOdWxsLCBpc1N0cmluZywgaXNVbmRlZmluZWQsIHJvdW5kLCB0b0FycmF5fSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOdW1iZXJMb2NhbGUgZXh0ZW5kcyBCYXNlSW5wdXQgaW1wbGVtZW50cyBWYWxpZGF0b3Ige1xuICAgIHByaXZhdGUgREVDSU1BTDogc3RyaW5nO1xuICAgIHByaXZhdGUgR1JPVVA6IHN0cmluZztcbiAgICBwcml2YXRlIHNlbGVjdGVkTG9jYWxlOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBwcm94eU1vZGVsOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBudW1iZXJOb3RJblJhbmdlOiBib29sZWFuO1xuICAgIHByaXZhdGUgaXNJbnZhbGlkTnVtYmVyOiBib29sZWFuO1xuICAgIHByaXZhdGUgaXNEZWZhdWx0UXVlcnk6IGJvb2xlYW4gPSB0cnVlO1xuICAgIHByaXZhdGUgZGVjaW1hbFZhbHVlOiBzdHJpbmcgPSAnJztcbiAgICBwdWJsaWMgZGlzcGxheVZhbHVlOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBudW1iZXJmaWx0ZXI6IHN0cmluZztcbiAgICBwcml2YXRlIGxvY2FsZWZpbHRlcjogc3RyaW5nO1xuICAgIHB1YmxpYyByZWFkb25seTogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICAgIHB1YmxpYyBtaW52YWx1ZTogbnVtYmVyO1xuICAgIHB1YmxpYyBtYXh2YWx1ZTogbnVtYmVyO1xuICAgIHB1YmxpYyB1cGRhdGVvbjogc3RyaW5nO1xuICAgIHB1YmxpYyBzdGVwOiBudW1iZXI7XG4gICAgcHVibGljIHRyYWlsaW5nemVybzogYm9vbGVhbjtcbiAgICBwcml2YXRlIHZhbGlkYXRlVHlwZTogc3RyaW5nO1xuICAgIHB1YmxpYyBpbnB1dG1vZGU6IHN0cmluZztcbiAgICBwcml2YXRlIGxhc3RWYWxJc0RlY2ltYWw6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qOiBJbmplY3RvcixcbiAgICAgICAgY29uZmlnOiBJV2lkZ2V0Q29uZmlnLFxuICAgICAgICBwcml2YXRlIGkxOG5TZXJ2aWNlOiBBYnN0cmFjdEkxOG5TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHRyYWlsaW5nWmVyb0RlY2ltYWxQaXBlOiBUcmFpbGluZ1plcm9EZWNpbWFsUGlwZSxcbiAgICAgICAgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluaiwgY29uZmlnLCBleHBsaWNpdENvbnRleHQpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTG9jYWxlID0gaTE4blNlcnZpY2UuZ2V0U2VsZWN0ZWRMb2NhbGUoKTtcbiAgICAgICAgdGhpcy5ERUNJTUFMID0gZ2V0TG9jYWxlTnVtYmVyU3ltYm9sKHRoaXMubG9jYWxlZmlsdGVyIHx8IHRoaXMuc2VsZWN0ZWRMb2NhbGUsIE51bWJlclN5bWJvbC5EZWNpbWFsKTtcbiAgICAgICAgdGhpcy5HUk9VUCA9IGdldExvY2FsZU51bWJlclN5bWJvbCh0aGlzLmxvY2FsZWZpbHRlciB8fCB0aGlzLnNlbGVjdGVkTG9jYWxlLCBOdW1iZXJTeW1ib2wuR3JvdXApO1xuICAgICAgICB0aGlzLm51bWJlcmZpbHRlciA9ICcxLjAtMTYnO1xuICAgICAgICB0aGlzLnJlc2V0VmFsaWRhdGlvbnMoKTtcbiAgICB9XG5cbiAgICAvLyBTZXR0ZXIgZm9yIHRoZSBkYXRhdmFsdWUuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHNldCBkYXRhdmFsdWUodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLmxhc3RWYWxJc0RlY2ltYWwgPSBmYWxzZTtcblxuICAgICAgICAvLyBzZXQgdGV4dCB2YWx1ZSB0byBudWxsIGlmIGRhdGEgdmFsdWUgaXMgZW1wdHkuXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKGluY2x1ZGVzKFtudWxsLCB1bmRlZmluZWQsICcnXSwgdmFsdWUpKSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgY29uc3QgcHJldkRhdGFWYWx1ZSA9ICAodGhpcyBhcyBhbnkpLnByZXZEYXRhdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IGlucHV0LnZhbHVlID0gdGhpcy5wcm94eU1vZGVsID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMucmVzZXRWYWxpZGF0aW9ucygpO1xuICAgICAgICAgICAgaWYgKHByZXZEYXRhVmFsdWUgJiYgIXRoaXMuaXNEZWZhdWx0UXVlcnkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBpZiB0aGUgd2lkZ2V0IGhhcyBkZWZhdWx0IHZhbHVlIGFuZCBpZiB3ZSBjaGFuZ2UgdGhlIGxvY2FsZSwgdGhlIHZhbHVlIHNob3VsZCBiZSBpbiBzZWxlY3RlZCBsb2NhbGUgZm9ybWF0LlxuICAgICAgICBpZiAodGhpcy5pc0RlZmF1bHRRdWVyeSkge1xuICAgICAgICAgICAgY29uc3QgaXNMb2NhbGl6ZWROdW1iZXIgPSBpc1N0cmluZyh2YWx1ZSkgJiYgaW5jbHVkZXModmFsdWUsIHRoaXMuREVDSU1BTCk7XG4gICAgICAgICAgICBjb25zdCBwYXJ0cyA9IGlzTG9jYWxpemVkTnVtYmVyID8gKHZhbHVlIGFzIGFueSkuc3BsaXQodGhpcy5ERUNJTUFMKSA6IGlzU3RyaW5nKHZhbHVlKSAmJiAodmFsdWUgYXMgYW55KS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgdGhpcy5kZWNpbWFsVmFsdWUgPSBwYXJ0c1sxXSB8fCAnJztcbiAgICAgICAgICAgICh2YWx1ZSBhcyBhbnkpID0gaXNMb2NhbGl6ZWROdW1iZXIgPyB2YWx1ZSA6IHRoaXMudHJhbnNmb3JtTnVtYmVyKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG51bWJlclJlZyA9IC9cXGQvO1xuICAgICAgICBjb25zdCBzdHJWYWwgPSB2YWx1ZS50b1N0cmluZygpO1xuICAgICAgICBsZXQgbW9kZWw7XG4gICAgICAgIC8vIFdoZW4gdGhlIGlucHV0IHZhbHVlIG9ubHkgY29udGFpbnMgc2VwZXJhdG9yLCBkbyBub3QgY29udmVydCB0aGUgc2VwZXJ0YW9yIGludG8gMFxuICAgICAgICBpZiAobnVtYmVyUmVnLnRlc3Qoc3RyVmFsKSkge1xuICAgICAgICAgICAgbW9kZWwgPSB0aGlzLnBhcnNlTnVtYmVyKHN0clZhbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtb2RlbCA9IE5hTjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9uIGtleXByZXNzLCBpZiB0aGUgdXNlciB0eXBlcyBhIGRlY2ltYWwgYW5kIGlzIHN0aWxsIGFjdGl2ZSBvbiB0aGUgaW5wdXQgZG8gbm90IHRocm93IGVycm9yLlxuICAgICAgICBpZiAoaXNOYU4obW9kZWwpICYmIHN0clZhbFtzdHJWYWwubGVuZ3RoIC0gMV0gPT09IHRoaXMuREVDSU1BTCAmJiB0aGlzLm5nTW9kZWxPcHRpb25zLnVwZGF0ZU9uID09PSAnY2hhbmdlJyAmJiB0aGlzLiRlbGVtZW50LmZpbmQoJ2lucHV0OmZvY3VzJykubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RWYWxJc0RlY2ltYWwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIC8vIGdldCBhIHZhbGlkIG51bWJlciBmb3JtIHRoZSB0ZXh0LlxuICAgICAgICAvLyBpZiB0aGUgbnVtYmVyIGlzIHZhbGlkIG9yIGlmIG51bWJlciBpcyBub3QgaW4gcmFuZ2UgdXBkYXRlIHRoZSBtb2RlbCB2YWx1ZS5cbiAgICAgICAgaWYgKCF0aGlzLmxhc3RWYWxJc0RlY2ltYWwgJiYgdGhpcy5pc1ZhbGlkKG1vZGVsKSkge1xuICAgICAgICAgICAgdGhpcy5wcm94eU1vZGVsID0gbW9kZWw7XG4gICAgICAgICAgICAvLyB1cGRhdGUgdGhlIGRpc3BsYXkgdmFsdWUgaW4gdGhlIHRleHQgYm94LlxuICAgICAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5VGV4dCgpO1xuICAgICAgICAgICAgLy8gRG8gbm90IHRyaWdnZXIgb25jaGFuZ2UgZXZlbnQgZm9yIGRlZmF1bHQgdmFsdWVcbiAgICAgICAgICAgIGlmICghdGhpcy5pc0RlZmF1bHRRdWVyeSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlKG1vZGVsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIHRoaXMucHJveHlNb2RlbCA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZShudWxsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHJldHVybnMgdGhlIGFjdHVhbCBtb2RlbCB2YWx1ZSBvZiB0aGUgd2lkZ2V0LlxuICAgIGdldCBkYXRhdmFsdWUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJveHlNb2RlbDtcbiAgICB9XG5cbiAgICAvLyByZXNldHMgYWxsIHRoZSBmbGFncyByZWxhdGVkIHRvIHRoZSB3aWRnZXQncyB2YWxpZGF0aW9uLlxuICAgIHByb3RlY3RlZCByZXNldFZhbGlkYXRpb25zKCkge1xuICAgICAgICB0aGlzLmlzSW52YWxpZE51bWJlciA9IGZhbHNlO1xuICAgICAgICB0aGlzLm51bWJlck5vdEluUmFuZ2UgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIHZhbGlkYXRpb25zIGZvciB0aGUgbnVtYmVyIGJlZm9yZSB1cGRhdGluZyB0aGUgd2lkZ2V0IG1vZGVsLiBsaWtlIHZhbGlkYXRpbmcgbWluIGFuZCBtYXggdmFsdWUgZm9yIHRoZSB3aWRnZXQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHZhbCBudW1iZXIgdG8gYmUgdmFsaWRhdGVkXG4gICAgICogQHJldHVybnMge251bWJlcn1cbiAgICAgKi9cbiAgICBwcml2YXRlIGlzVmFsaWQodmFsOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgLy8gaWQgbnVtYmVyIGlzIGluZmluaXRlIHRoZW4gY29uc2lkZXIgaXQgYXMgaW52YWxpZCB2YWx1ZVxuICAgICAgICBpZiAoaXNOYU4odmFsKSB8fCAhaXNGaW5pdGUodmFsKSB8fCAoIU51bWJlci5pc0ludGVnZXIodGhpcy5zdGVwKSAmJlxuICAgICAgICAgICAgdGhpcy5jb3VudERlY2ltYWxzKHZhbCkgPiB0aGlzLmNvdW50RGVjaW1hbHModGhpcy5zdGVwKSkpIHtcbiAgICAgICAgICAgIHRoaXMuaXNJbnZhbGlkTnVtYmVyID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsICE9PSB0aGlzLmdldFZhbHVlSW5SYW5nZSh2YWwpKSB7XG4gICAgICAgICAgICB0aGlzLm51bWJlck5vdEluUmFuZ2UgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXNldFZhbGlkYXRpb25zKCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgYSB2YWxpZCBudW1iZXIgYnkgdmFsaWRhdGluZyB0aGUgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlXG4gICAgICogQHJldHVybnMge251bWJlcn1cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFZhbHVlSW5SYW5nZSh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCFpc05hTih0aGlzLm1pbnZhbHVlKSAmJiB2YWx1ZSA8IHRoaXMubWludmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVUeXBlID0gJ21pbnZhbHVlJztcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1pbnZhbHVlO1xuXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc05hTih0aGlzLm1heHZhbHVlKSAmJiB2YWx1ZSA+IHRoaXMubWF4dmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVUeXBlID0gJ21heHZhbHVlJztcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1heHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjb252ZXJ0IG51bWJlciB0byBsb2NhbGl6ZWQgbnVtYmVyIHVzaW5nIGFuZ3VsYXIgZGVjaW1hbCBwaXBlLiBlZyAxMCwwMCwwMDAgb3IgMSwwMDAsMDAwXG4gICAgICogQHBhcmFtIG51bWJlclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAgICovXG4gICAgcHJpdmF0ZSB0cmFuc2Zvcm1OdW1iZXIobnVtYmVyLCBudW1iZXJmaWx0ZXI/KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZmlsdGVyVmFsID0gbnVtYmVyZmlsdGVyID8gbnVtYmVyZmlsdGVyIDogdGhpcy5udW1iZXJmaWx0ZXI7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYWlsaW5nWmVyb0RlY2ltYWxQaXBlLnRyYW5zZm9ybShudW1iZXIsIHRoaXMuc2VsZWN0ZWRMb2NhbGUsIGZpbHRlclZhbCwgdGhpcy5sb2NhbGVmaWx0ZXIsIHRoaXMudHJhaWxpbmd6ZXJvLCB0aGlzLmRlY2ltYWxWYWx1ZSwgISFudW1iZXJmaWx0ZXIsIHRoaXMuaTE4blNlcnZpY2U/LmdldHdpZGdldExvY2FsZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXNldHMgdGhlIGN1cnNvciBwb3NpdGlvbiBpbiB0aGUgdGV4dCBib3guXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIGN1cnNvciBwb3NpdGlvbiBpbmRleCBmb3JtIGxlZnQgdG8gcmlnaHQuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZXNldEN1cnNvclBvc2l0aW9uKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudDtcbiAgICAgICAgLy8gcG9zaXRpb24gb2YgdGhlIGN1cnNvciBzaG91bGQgYmUgZ2l2ZW4gZm9ybSByaWdodCB0byBsZWZ0LlxuICAgICAgICBsZXQgcG9zaXRpb24gPSBpbnB1dC52YWx1ZS5sZW5ndGggLSB2YWx1ZTtcbiAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbiA8IDAgPyAwIDogcG9zaXRpb247XG4gICAgICAgIC8vIHNldCB0aGUgY3Vyc29yIHBvc2l0aW9uIGluIHRoZSB0ZXh0IGJveC5cbiAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UocG9zaXRpb24sIHBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgcGFyc2VzIHRoZSBMb2NhbGl6ZWQgbnVtYmVyKHN0cmluZykgdG8gYSB2YWxpZCBudW1iZXIuXG4gICAgICogaWYgdGhlIHN0cmluZyBkb3NlIG5vdCByZXN1bHQgdG8gYSB2YWxpZCBudW1iZXIgdGhlbiByZXR1cm5zIE5hTi5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsIExvY2FsaXplZCBudW1iZXIuXG4gICAgICogQHJldHVybnMge251bWJlcn1cbiAgICAgKi9cbiAgICBwcml2YXRlIHBhcnNlTnVtYmVyKHZhbDogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgLy8gV01TLTIyMTc5OiBzcGxpdCBudW1iZXIgYmFzZWQgb24gdGhlIGRlY2ltYWwgc2VwYXJhdG9yIGluIHRoZSB2YWxcbiAgICAgICAgLy8gc3BsaXRzIHN0cmluZyBpbnRvIHR3byBwYXJ0cy4gZGVjaW1hbCBhbmQgbnVtYmVyLlxuICAgICAgICBjb25zdCBwYXJ0cyA9IHZhbC5zcGxpdCh0aGlzLmlucHV0bW9kZSA9PT0gSU5QVVRNT0RFLkZJTkFOQ0lBTCA/ICh2YWwuaW5kZXhPZih0aGlzLkRFQ0lNQUwpID4gLTEgPyB0aGlzLkRFQ0lNQUwgOiAnLicpIDogdGhpcy5ERUNJTUFMKTtcbiAgICAgICAgaWYgKCFwYXJ0cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJ0cy5sZW5ndGggPiAyKSB7XG4gICAgICAgICAgICByZXR1cm4gTmFOO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIG51bWJlciBoYXZlIGRlY2ltYWwgcG9pbnQgYW5kIG5vdCBoYXZlIGEgZGVjaW1hbCB2YWx1ZSB0aGVuIHJldHVybi5cbiAgICAgICAgaWYgKHBhcnRzWzFdID09PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgfVxuICAgICAgICAvLyByZXBsYWNlcyBhbGwgZ3JvdXAgc2VwYXJhdG9ycyBmb3JtIHRoZSBudW1iZXIuXG4gICAgICAgIGNvbnN0IG51bWJlciA9IE51bWJlcihwYXJ0c1swXS5zcGxpdCh0aGlzLkdST1VQKS5qb2luKCcnKSk7XG4gICAgICAgIGNvbnN0IGRlY2ltYWwgPSBOdW1iZXIoYDAuJHtwYXJ0c1sxXSB8fCAwfWApO1xuICAgICAgICBpZiAoTnVtYmVyLmlzTmFOKG51bWJlcikgfHwgTnVtYmVyLmlzTmFOKGRlY2ltYWwpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmFOO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN1bSA9IHBhcnRzLmxlbmd0aCA+IDEgPyBwYXJzZUZsb2F0KChudW1iZXIgKyBkZWNpbWFsKS50b0ZpeGVkKHBhcnRzWzFdLmxlbmd0aCkpIDogbnVtYmVyICsgZGVjaW1hbDtcbiAgICAgICAgLy8gaWYgdGhlIG51bWJlciBpcyBuZWdhdGl2ZSB0aGVuIGNhbGN1bGF0ZSB0aGUgbnVtYmVyIGFzIG51bWJlciAtIGRlY2ltYWxcbiAgICAgICAgLy8gRXg6IG51bWJlciA9IC0xMjMgYW5kIGRlY2ltYWwgPSAwLjQ1IHRoZW4gbnVtYmVyIC0gZGVjaW1hbCA9IC0xMjMtMDQ1ID0gLTEyMy40NVxuICAgICAgICAvLyBJZiBlbnRlcmVkIG51bWJlciBpcyAtMC4xIHRvIC0wLjkgdGhlbiB0aGUgbnVtYmVyIGlzIC0wIGFuZCBkZWNpbWFsIGlzIDAuMSB0byAwLjkuIE5vdyBjYWxhY3VsYXRlIHRoZSBudW1iZXIgYXMgbnVtYmVyLWRlY2ltYWxcbiAgICAgICAgLy8gRXg6IG51bWJlciA9IC0wIGFuZCBkZWNpbWFsID0gMC4xIHRoZW4gbnVtYmVyLWRlY2ltYWwgPSAtMC0wLjEgPSAtMC4xXG4gICAgICAgIGlmIChudW1iZXIgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuaXMoMCwgbnVtYmVyKSA/IHN1bSA6IG51bWJlciAtIGRlY2ltYWw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bWJlciA+IDAgPyBzdW0gOiBudW1iZXIgLSBkZWNpbWFsO1xuICAgIH1cblxuICAgIC8vIHVwZGF0ZXMgdGhlIHdpZGdldHMgdGV4dCB2YWx1ZS5cbiAgICBwcml2YXRlIHVwZGF0ZURpc3BsYXlUZXh0KCkge1xuICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBwb3NpdGlvbjogbnVtYmVyID0gaW5wdXQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgIGNvbnN0IHByZVZhbHVlOiBzdHJpbmcgPSBpbnB1dC52YWx1ZTtcbiAgICAgICAgaWYgKCF0aGlzLmlzRGVmYXVsdFF1ZXJ5KSB7XG4gICAgICAgICAgICBjb25zdCBwYXJ0cyA9IHByZVZhbHVlLnNwbGl0KHRoaXMuREVDSU1BTCk7XG4gICAgICAgICAgICB0aGlzLmRlY2ltYWxWYWx1ZSA9IHBhcnRzWzFdIHx8ICcnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0ZXBWYWwgPSB0aGlzLnN0ZXBMZW5ndGgoKTtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRtb2RlID09PSBJTlBVVE1PREUuRklOQU5DSUFMICYmIHN0ZXBWYWwpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gaW5wdXQudmFsdWUgPSB0aGlzLnRyYW5zZm9ybU51bWJlcih0aGlzLnByb3h5TW9kZWwsIGAxLiR7c3RlcFZhbH0tJHtzdGVwVmFsfWApO1xuICAgICAgICAgICAgdGhpcy5kZWNpbWFsVmFsdWUgPSB0aGlzLmRlY2ltYWxWYWx1ZS5yZXBsYWNlKC9cXEQvZywnJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IGlucHV0LnZhbHVlID0gdGhpcy50cmFuc2Zvcm1OdW1iZXIodGhpcy5wcm94eU1vZGVsKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBpbiBzYWZhcmkgYnJvd3Nlciwgc2V0U2VsZWN0aW9uUmFuZ2Ugd2lsbCBmb2N1cyB0aGUgaW5wdXQgYnkgZGVmYXVsdCwgd2hpY2ggbWF5IGludm9rZSB0aGUgZm9jdXMgZXZlbnQgb24gd2lkZ2V0LlxuICAgICAgICAvLyBIZW5jZSBwcmV2ZW50aW5nIHRoZSBzZXRTZWxlY3Rpb25SYW5nZSB3aGVuIGRlZmF1bHQgdmFsdWUgaXMgc2V0IGkuZS4gd2lkZ2V0IGlzIG5vdCBmb2N1c2VkLlxuICAgICAgICBpZiAodGhpcy51cGRhdGVvbiA9PT0gJ2RlZmF1bHQnICYmICF0aGlzLmlzRGVmYXVsdFF1ZXJ5KSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0Q3Vyc29yUG9zaXRpb24ocHJlVmFsdWUubGVuZ3RoIC0gcG9zaXRpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBzdGVwIGxlbmd0aCBzZXQgaW4gdGhlIHN0dWRpb1xuICAgIHByaXZhdGUgc3RlcExlbmd0aCgpIHtcbiAgICAgICAgY29uc3Qgc3RlcExlbiA9IHRoaXMuc3RlcC50b1N0cmluZygpLnNwbGl0KCcuJyk7XG4gICAgICAgIGlmIChzdGVwTGVuLmxlbmd0aCA9PT0gMSApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBzdGVwTGVuWzFdLmxlbmd0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIHRoZSBjdXJyZW5jeSB3aWRnZXQgaGFzIGlucHV0IG1vZGUgYXMgbmF0dXJhbCBhbmQgdHJhaWxpbmcgemVybyBpcyBkZWZpbmVkIG9yIG5vdFxuICAgIHB1YmxpYyBpc05hdHVyYWxDdXJyZW5jeSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRtb2RlID09PSBJTlBVVE1PREUuTkFUVVJBTCAmJiB0aGlzLndpZGdldFR5cGUgPT09ICd3bS1jdXJyZW5jeScgJiYgISF0aGlzLnRyYWlsaW5nemVybztcbiAgICB9XG5cbiAgICAgICAvKipcbiAgICAgKiBAcGFyYW0gdmFsdWUgY29udGFpbnMgdGhlIHZhbHVlIGVudGVyZWQgaW4gdGhlIGlucHV0IGJveFxuICAgICAqIFRoaXMgZnVuY3Rpb24gbW9kaWZpZXMgdGhlIHVzZXIgaW5wdXQgdmFsdWUsIGludG8gZmluYW5jaWFsIG1vZGUuXG4gICAgICogTnVtYmVyIHN0YXJ0cyBmcm9tIGhpZ2hlc3QgcHJlY2VzaW9uIGRlY2ltYWwsIG9uIHR5cGluZyBudW1iZXIgc2hpZnRzIHRvIHRoZSBsZWZ0XG4gICAgICovXG4gICAgcHVibGljIG9uSW5wdXRDaGFuZ2UodmFsdWU6IGFueSkge1xuICAgICAgICBjb25zdCBzdGVwVmFsID0gdGhpcy5zdGVwTGVuZ3RoKCk7XG4gICAgICAgIC8vIFdNUy0yMjM1NSwgVHJpZ2dlciBjaGFuZ2UgY2IgaWYgdmFsdWUgZXhpc3RzIG9yIHZhbHVlIGlzIGVtcHR5IGJ1dCBkYXRhdmFsdWUgZXhpc3RzICh3aGVuIHZhbHVlIGlzIHNlbGVjdGVkIGFuZCBkZWxldGVkKS5cbiAgICAgICAgaWYgKGlzRGVmaW5lZCh2YWx1ZSkgJiYgKHZhbHVlICE9PSAnJyB8fCB0aGlzLmRhdGF2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghc3RlcFZhbCB8fCB0aGlzLmlucHV0bW9kZSAhPT0gSU5QVVRNT0RFLkZJTkFOQ0lBTCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGZpbmFuY2lhbFZhbDtcblxuICAgICAgICAvKipcbiAgICAgICAgICogSWYgdGhlIHZhbHVlIGlzIGVudGVyZWQgYnkgdGhlIHVzZXIsIGZvcm1hdCB0aGUgaW5wdXRcbiAgICAgICAgICogSWYgdGhlIHZhbHVlIGlzIHByb3ZpZGVkIGFzIGRlZmF1bHQgdmFsdWUsIHNraXAgZm9ybWF0dGluZ1xuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMuaXNEZWZhdWx0UXVlcnkpIHtcbiAgICAgICAgICAgIGZpbmFuY2lhbFZhbCA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgdmFsSW5XaG9sZU51bSA9IHBhcnNlSW50KHZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSgvXFxEL2csJycpKTtcbiAgICAgICAgICAgIGZpbmFuY2lhbFZhbCA9IHZhbEluV2hvbGVOdW0gKiAgdGhpcy5zdGVwO1xuICAgICAgICB9XG5cbiAgICAgICAgICAgaWYgKCFpc05hTihmaW5hbmNpYWxWYWwpKSB7XG4gICAgICAgICAgICAvLyBXaGVuIHVwZGF0ZSBvbiBrZXkgaXMgc2V0IGtleXByZXNzLCB1cGRhdGUgdGhlIGRhdGF2YWx1ZSBlbHNlIHVwZGF0ZSBvbmx5IHRoZSBkaXNwbGF5IHZhbHVlXG4gICAgICAgICAgICBpZiAodGhpcy5uZ01vZGVsT3B0aW9ucy51cGRhdGVPbiA9PT0gJ2NoYW5nZScpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGF2YWx1ZSA9IHBhcnNlRmxvYXQoZmluYW5jaWFsVmFsLnRvRml4ZWQoc3RlcFZhbCkpO1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlKHRoaXMuZGF0YXZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSBmaW5hbmNpYWxWYWwudG9GaXhlZChzdGVwVmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm5nTW9kZWxPcHRpb25zLnVwZGF0ZU9uICE9PSAnYmx1cicpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YXZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UobnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJbnB1dCBtb2RlIGlzIGZpbmFuY2lhbCBhbmQgdHJhaWxpbmcgemVybyBpcyBzZXQgdG8gZmFsc2UsIE9uIGZvY3VzIHNldCBkaXNwbGF5IHZhbCB0byBmaXhlZCBwb2ludCBub3RhdGlvbiBhbmQgT24gYmx1ciBzdHJpcCB0cmFpbGluZyB6ZXJvc1xuICAgIC8vIEluIGN1cnJlbmN5LCBpbnB1dG1vZGUgaXMgbmF0dXJhbCBhbmQgdHJhaWxpbmcgemVybyBhbmQgc3RlcCBhcmUgZGVmaW5lZCwgb24gYmx1ciBkaXNwbGF5IHZhbCB0byBmaXhlZCBwb2ludCBub3RhdGlvbiBhbmQgb24gZm9jdXMgc3RyaXAgdGhlIHplcm9zXG4gICAgcHVibGljIGNoZWNrRm9yVHJhaWxpbmdaZXJvcygkZXZlbnQpIHtcbiAgICAgICAgY29uc3Qgc3RlcFZhbCA9IHRoaXMuc3RlcExlbmd0aCgpO1xuICAgICAgICBjb25zdCBmaW5hbmNpYWxNb2RlID0gIXRoaXMudHJhaWxpbmd6ZXJvICYmIHRoaXMuaW5wdXRtb2RlID09PSBJTlBVVE1PREUuRklOQU5DSUFMO1xuXG4gICAgICAgIC8vIElmIHRoZSB1c2VyJ3MgbGFzdCBpbnB1dCBpcyBhIGRlY2ltYWwgYW5kIG5vdCBhY3RpdmUgb24gaW5wdXQgZmllbGQsIHRocm93IGVycm9yXG4gICAgICAgIGlmICh0aGlzLmxhc3RWYWxJc0RlY2ltYWwpIHtcbiAgICAgICAgICAgIHRoaXMub25Nb2RlbENoYW5nZSh0aGlzLmRpc3BsYXlWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFmaW5hbmNpYWxNb2RlICYmICF0aGlzLmlzTmF0dXJhbEN1cnJlbmN5KCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RlcFZhbCAmJiB0aGlzLmRhdGF2YWx1ZSkge1xuICAgICAgICAgICAgbGV0IG51bWJlcmZpbHRlcjtcbiAgICAgICAgICAgIGlmICgoZmluYW5jaWFsTW9kZSAmJiAkZXZlbnQudHlwZSA9PT0gJ2ZvY3VzJykgfHwgKHRoaXMuaXNOYXR1cmFsQ3VycmVuY3koKSAmJiAkZXZlbnQudHlwZSA9PT0gJ2JsdXInKSkge1xuICAgICAgICAgICAgICAgIG51bWJlcmZpbHRlciA9IGAxLiR7c3RlcFZhbH0tJHtzdGVwVmFsfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMudHJhbnNmb3JtTnVtYmVyKHRoaXMuZGF0YXZhbHVlLCBudW1iZXJmaWx0ZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyB0aGUgbnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzIGEgbnVtYmVyIGhhdmUuXG4gICAgICogQHBhcmFtIHZhbHVlOiBudW1iZXJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfVxuICAgICAqL1xuICAgIHByaXZhdGUgY291bnREZWNpbWFscyh2YWx1ZSkge1xuICAgICAgICBpZiAoKHZhbHVlICUgMSkgIT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGRlY2ltYWxWYWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCkuc3BsaXQoJy4nKVsxXTtcbiAgICAgICAgICAgIHJldHVybiBkZWNpbWFsVmFsdWUgJiYgZGVjaW1hbFZhbHVlLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBoYW5kbGVzIHRoZSBhcnJvdyBwcmVzcyBldmVudC4gSW5jcmVhc2VzIG9yIGRlY3JlYXNlcyB0aGUgbnVtYmVyLiB0cmlnZ2VyZWQgZm9tIHRoZSB0ZW1wbGF0ZVxuICAgICAqIEBwYXJhbSAkZXZlbnQga2V5Ym9hcmQgZXZlbnQuXG4gICAgICogQHBhcmFtIGtleSBpZGVudGlmaWVyIHRvIGluY3JlYXNlIG9yIGRlY3JlYXNlIHRoZSBudW1iZXIuXG4gICAgICovXG4gICAgcHVibGljIG9uQXJyb3dQcmVzcygkZXZlbnQsIGtleSkge1xuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5zdGVwID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGFyZ2V0VmFsID0gJGV2ZW50LnRhcmdldC52YWx1ZS5yZXBsYWNlKC8sL2csICcnKTtcblxuICAgICAgICAvLyBwcm94eU1vZGVsIHRvIGJlIHVwZGF0ZWQgZnJvbSAkZXZlbnQudGFyZ2V0LnZhbHVlIGlmIHByZXNlbnQgdG8gc3VwcG9ydCBhcnJvdyBrZXlzIHdoZW4gaW5wdXQgY2hhbmdlcyBlbHNlIHBpY2sgdXAgZnJvbSB0aGlzLnByb3h5bW9kZWxcbiAgICAgICAgbGV0IHByb3h5TW9kZWw7XG4gICAgICAgIGlmICh0YXJnZXRWYWwgJiYgIWlzTmFOKHBhcnNlRmxvYXQodGFyZ2V0VmFsKSkpIHtcbiAgICAgICAgICAgIHByb3h5TW9kZWwgPSBwYXJzZUZsb2F0KHRhcmdldFZhbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm94eU1vZGVsID0gdGhpcy5wcm94eU1vZGVsO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHZhbHVlO1xuXG4gICAgICAgIC8vIGlmIHRoZSBudW1iZXIgaXMgbm90IGluIHJhbmdlIGFuZCB3aGVuIGFycm93IGJ1dHRvbnMgYXJlIHByZXNzZWQgbmVlZCB0byBnZXQgYXBwcm9wcmlhdGUgbnVtYmVyIHZhbHVlLlxuICAgICAgICBpZiAodGhpcy5udW1iZXJOb3RJblJhbmdlKSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gdGhpcy5wYXJzZU51bWJlcih0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZSk7XG4gICAgICAgICAgICAvLyB0YWtlIHRoZSB0ZXh0Ym94IHZhbHVlIGFzIGN1cnJlbnQgbW9kZWwgaWYgdGhlIHZhbHVlIGlzIHZhbGlkLlxuICAgICAgICAgICAgaWYgKCFpc05hTihpbnB1dFZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5nZXRWYWx1ZUluUmFuZ2UoaW5wdXRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgcHJveHlNb2RlbCA9IGlucHV0VmFsdWU7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldFZhbGlkYXRpb25zKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoaXNVbmRlZmluZWQocHJveHlNb2RlbCkgfHwgaXNOdWxsKHByb3h5TW9kZWwpKSB7XG4gICAgICAgICAgICAgICAgcHJveHlNb2RlbCA9IHZhbHVlID0gdGhpcy5nZXRWYWx1ZUluUmFuZ2UoKHRoaXMubWludmFsdWUgfHwgMCkpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRWYWxpZGF0aW9ucygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWVJblJhbmdlKHByb3h5TW9kZWwgKyAoa2V5ID09PSAnVVAnID8gdGhpcy5zdGVwIDogLXRoaXMuc3RlcCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICgoa2V5ID09PSAnVVAnICYmIHByb3h5TW9kZWwgPD0gdmFsdWUpIHx8IChrZXkgPT09ICdET1dOJyAmJiBwcm94eU1vZGVsID49IHZhbHVlKSkge1xuICAgICAgICAgICAgY29uc3QgZGVjaW1hbFJvdW5kVmFsdWUgPSBNYXRoLm1heCh0aGlzLmNvdW50RGVjaW1hbHMocHJveHlNb2RlbCksIHRoaXMuY291bnREZWNpbWFscyh0aGlzLnN0ZXApKTtcblxuICAgICAgICAgICAgLy8gdXBkYXRlIHRoZSBtb2RlbFByb3h5LlxuICAgICAgICAgICAgdGhpcy5wcm94eU1vZGVsID0gcm91bmQodmFsdWUsIGRlY2ltYWxSb3VuZFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRGlzcGxheVRleHQoKTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlKHRoaXMucHJveHlNb2RlbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBtZXRob2QgaXMgY2FsbGVkIGZyb20gdGhlIGZyb20gd2lkZ2V0LiB0byBjaGVjayB3aGV0aGVyIHRoZSB2YWx1ZSBlbnRlcmVkIGlzIHZhbGlkIG9yIG5vdC5cbiAgICAgKiBAcmV0dXJucyB7b2JqZWN0fVxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0ZShjOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNJbnZhbGlkTnVtYmVyKSB7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlVHlwZSA9ICcnO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBpbnZhbGlkTnVtYmVyOiB7XG4gICAgICAgICAgICAgICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm51bWJlck5vdEluUmFuZ2UpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbnVtYmVyTm90SW5SYW5nZToge1xuICAgICAgICAgICAgICAgICAgICB2YWxpZDogZmFsc2VcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbGlkYXRlVHlwZSA9ICcnO1xuICAgICAgICAvKiBXTVMtMTgyNjkgfCBFeHRlbmRpbmcgdGhlIGV4aXN0aW5nIHZhbGlkYXRpb24gZm9yICdyZXF1aXJlZCcgKi9cbiAgICAgICAgaWYgKHRoaXNbJ3Nob3cnXSAmJiB0aGlzWydyZXF1aXJlZCddKSB7XG4gICAgICAgICAgICByZXR1cm4gKCEhYy52YWx1ZSB8fCBjLnZhbHVlID09PSAwKSA/IG51bGwgOiB7IHJlcXVpcmVkOiB0cnVlIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIHZhbGlkYXRlSW5wdXRFbnRyeSgkZXZlbnQpIHtcblxuICAgICAgICB0aGlzLmlzRGVmYXVsdFF1ZXJ5ID0gZmFsc2U7XG5cbiAgICAgICAgLy8gYWxsb3cgYWN0aW9ucyBpZiBjb250cm9sIGtleSBpcyBwcmVzc2VkIG9yIGlmIGJhY2tzcGFjZSBpcyBwcmVzc2VkLiAoZm9yIE1vemlsbGEpLlxuICAgICAgICBpZiAoJGV2ZW50LmN0cmxLZXkgfHwgaW5jbHVkZXMoWydCYWNrc3BhY2UnLCAnQXJyb3dSaWdodCcsICdBcnJvd0xlZnQnLCAnVGFiJywgJ0VudGVyJywgJ0RlbGV0ZSddLCAkZXZlbnQua2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsaWRpdHkgPSBuZXcgUmVnRXhwKGBeW1xcXFxkXFxcXHMtLC5lKyR7dGhpcy5HUk9VUH0ke3RoaXMuREVDSU1BTH1dJGAsICdpJyk7XG4gICAgICAgIGNvbnN0IGlucHV0VmFsdWUgPSAkZXZlbnQudGFyZ2V0LnZhbHVlO1xuXG4gICAgICAgIC8vIHdoZW4gaW5wdXQgbW9kZSBpcyBmaW5hbmNpYWwsIGRvIG5vdCByZXN0cmljdCB1c2VyIG9uIGVudGVyaW5nIHRoZSB2YWx1ZSB3aGVuIHN0ZXAgdmFsdWUgbGltaXQgaXMgcmVhY2hlZC5cbiAgICAgICAgY29uc3Qgc2tpcFN0ZXBWYWxpZGF0aW9uID0gdGhpcy5pbnB1dG1vZGUgPT09IElOUFVUTU9ERS5GSU5BTkNJQUw7XG5cbiAgICAgICAgLy8gVmFsaWRhdGVzIGlmIHVzZXIgZW5ldGVycyBtb3JlIHRoYW4gMTYgZGlnaXRzXG4gICAgICAgIGlmIChpbnB1dFZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJzZWRWYWwgPSAgcGFyc2VJbnQoaW5wdXRWYWx1ZS50b1N0cmluZygpLnJlcGxhY2UoL1xcRC9nLCcnKSk7XG4gICAgICAgICAgICBpZiAocGFyc2VkVmFsLnRvU3RyaW5nKCkubGVuZ3RoID4gMTUpIHtcbiAgICAgICAgICAgICAgICAvLyBXTVMtMjIzMjE6IElmIHRoZSBudW1iZXIgaXMgZ3JlYXRlciB0aGFuIE1BWF9TQUZFX0lOVEVHRVIgKG1vcmUgdGhhbiAxNSBudW1iZXJzKS5cbiAgICAgICAgICAgICAgICAvLyB1c2VyIHNlbGVjdHMgYSByYW5nZSBvZiBkaWdpdHMgYW5kIHByZXNzZXMgYSBrZXkuXG4gICAgICAgICAgICAgICAgLy8gRG8gbm90IHRocm93IHZhbGlkYXRpb24gb2YgZXhjZWVkZWQgbnVtYmVyIGFzIHNlbGVjdGVkIHJhbmdlIHZhbHVlIHdpbGwgYmUgZGVsZXRlZC5cbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZFZhbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRWYWwgJiYgc2VsZWN0ZWRWYWwudG9TdHJpbmcoKSAmJiBzZWxlY3RlZFZhbC5mb2N1c05vZGUgPT09IHRoaXMubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gdmFsaWRhdGVzIGVudGVyaW5nIG9mIGRlY2ltYWwgdmFsdWVzIG9ubHkgd2hlbiB1c2VyIHByb3ZpZGVzIGRlY2ltYWwgbGltaXQoaS5lIHN0ZXAgY29udGFpbnMgZGVjaW1hbCB2YWx1ZXMpLlxuICAgICAgICAvLyBSZXN0cmljdCB1c2VyIGZyb20gZW50ZXJpbmcgb25seSBpZiB0aGUgZGVjaW1hbCBsaW1pdCBpcyByZWFjaGVkIGFuZCB0aGUgbmV3IGRpZ2l0IGlzIGVudGVyZWQgaW4gZGVjaW1hbCBwbGFjZVxuICAgICAgICBpZiAoIXNraXBTdGVwVmFsaWRhdGlvbiAmJiBpbnB1dFZhbHVlICYmIHRoaXMuY291bnREZWNpbWFscyh0aGlzLnN0ZXApICYmICh0aGlzLmNvdW50RGVjaW1hbHMoaW5wdXRWYWx1ZSkgPj0gdGhpcy5jb3VudERlY2ltYWxzKHRoaXMuc3RlcCkpICYmICRldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgPj0gaW5wdXRWYWx1ZS5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdmFsaWRhdGVzIGlmIHVzZXIgZW50ZXJlZCBhbiBpbnZhbGlkIGNoYXJhY3Rlci5cbiAgICAgICAgaWYgKCF2YWxpZGl0eS50ZXN0KCRldmVudC5rZXkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29tbWEgY2Fubm90IGJlIGVudGVyZWQgY29uc2VjdXRpdmVseVxuICAgICAgICBpZiAoaW5jbHVkZXMoaW5wdXRWYWx1ZSwgJywnKSAmJiBpbnB1dFZhbHVlW2lucHV0VmFsdWUubGVuZ3RoIC0gMV0gPT09ICcsJyAmJiAkZXZlbnQua2V5ID09PSAnLCcpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGEgZGVjaW1hbCB2YWx1ZSBjYW4gYmUgZW50ZXJlZCBvbmx5IG9uY2UgaW4gdGhlIGlucHV0LlxuICAgICAgICBpZiAoaW5jbHVkZXMoaW5wdXRWYWx1ZSwgdGhpcy5ERUNJTUFMKSAmJiAkZXZlbnQua2V5ID09PSB0aGlzLkRFQ0lNQUwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyAnZScgY2FuIGJlIGVudGVyZWQgb25seSBvbmNlIGluIHRoZSBpbnB1dC5cbiAgICAgICAgaWYgKGludGVyc2VjdGlvbih0b0FycmF5KGlucHV0VmFsdWUpLCBbJ2UnLCAnRSddKS5sZW5ndGggJiYgaW5jbHVkZXMoJ2VFJywgJGV2ZW50LmtleSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKGluY2x1ZGVzKGlucHV0VmFsdWUsICcrJykgfHwgaW5jbHVkZXMoaW5wdXRWYWx1ZSwgJy0nKSkgJiYgKCRldmVudC5rZXkgPT09ICcrJyB8fCAkZXZlbnQua2V5ID09PSAnLScpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRG8gbm90IGFsbG93IHVzZXIgdG8gZW50ZXIgb25seSBzcGFjZSB3aXRob3V0IGFueSBpbnB1dCB2YWx1ZVxuICAgICAgICBpZiAoIWlucHV0VmFsdWUgJiYgJGV2ZW50LmNvZGUgPT09ICdTcGFjZScpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQmFja3NwYWNlKCRldmVudCkge1xuICAgICAgICB0aGlzLmlzRGVmYXVsdFF1ZXJ5ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25FbnRlcigkZXZlbnQpIHtcbiAgICAgICAgdGhpcy5kYXRhdmFsdWUgPSAkZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIH1cblxuICAgIG9uTW9kZWxDaGFuZ2UoJGV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0bW9kZSA9PT0gSU5QVVRNT0RFLk5BVFVSQUwgfHwgKHRoaXMuaW5wdXRtb2RlID09PSBJTlBVVE1PREUuRklOQU5DSUFMICYmIHRoaXMubmdNb2RlbE9wdGlvbnMudXBkYXRlT24gPT09ICdibHVyJykpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YXZhbHVlID0gJGV2ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdj8pIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ21pbnZhbHVlJyB8fCBrZXkgPT09ICdtYXh2YWx1ZScpIHtcbiAgICAgICAgICAgIHRoaXMuaXNWYWxpZChudik7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnZGF0YXZhbHVlJyAmJiAhb3YpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzTmF0dXJhbEN1cnJlbmN5KCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrRm9yVHJhaWxpbmdaZXJvcyh7dHlwZTogJ2JsdXInfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMub25JbnB1dENoYW5nZShudik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Component, ElementRef, Injector, ViewChild } from '@angular/core';
1
+ import { Component, ElementRef, Inject, Injector, Optional, ViewChild } from '@angular/core';
2
2
  import { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
3
3
  import { provideAs, provideAsWidgetRef } from '@wm/components/base';
4
4
  import { registerProps } from './input-number.props';
@@ -8,15 +8,15 @@ import * as i1 from "@angular/common";
8
8
  import * as i2 from "@angular/forms";
9
9
  const _c0 = ["input"];
10
10
  const _c1 = ["type", "number"];
11
- const _c2 = function (a0) { return { "step-hidden": a0 }; };
11
+ const _c2 = a0 => ({ "step-hidden": a0 });
12
12
  const WIDGET_CONFIG = {
13
13
  widgetType: 'wm-input-number',
14
14
  hostClass: 'app-input-wrapper'
15
15
  };
16
16
  export class InputNumberComponent extends BaseInput {
17
17
  static { this.initializeProps = registerProps(); }
18
- constructor(inj) {
19
- super(inj, WIDGET_CONFIG);
18
+ constructor(inj, explicitContext) {
19
+ super(inj, WIDGET_CONFIG, explicitContext);
20
20
  }
21
21
  onArrowPress($event) {
22
22
  if (this.step === 0) {
@@ -28,7 +28,7 @@ export class InputNumberComponent extends BaseInput {
28
28
  return false;
29
29
  }
30
30
  }
31
- static { this.ɵfac = function InputNumberComponent_Factory(t) { return new (t || InputNumberComponent)(i0.ɵɵdirectiveInject(i0.Injector)); }; }
31
+ static { this.ɵfac = function InputNumberComponent_Factory(t) { return new (t || InputNumberComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
32
32
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: InputNumberComponent, selectors: [["wm-input", "type", "number"]], viewQuery: function InputNumberComponent_Query(rf, ctx) { if (rf & 1) {
33
33
  i0.ɵɵviewQuery(_c0, 7);
34
34
  i0.ɵɵviewQuery(NgModel, 5);
@@ -40,28 +40,37 @@ export class InputNumberComponent extends BaseInput {
40
40
  provideAs(InputNumberComponent, NG_VALUE_ACCESSOR, true),
41
41
  provideAs(InputNumberComponent, NG_VALIDATORS, true),
42
42
  provideAsWidgetRef(InputNumberComponent)
43
- ]), i0.ɵɵInheritDefinitionFeature], attrs: _c1, decls: 2, vars: 22, consts: [["focus-target", "", "role", "textbox", 1, "form-control", "app-textbox", 3, "ngClass", "type", "ngModel", "ngModelOptions", "readonly", "required", "disabled", "maxlength", "min", "max", "step", "autofocus", "ngStyle", "autocomplete", "ngModelChange", "blur", "keyup.enter", "keydown.ArrowUp", "keydown.ArrowDown", "keypress"], ["input", ""]], template: function InputNumberComponent_Template(rf, ctx) { if (rf & 1) {
43
+ ]), i0.ɵɵInheritDefinitionFeature], attrs: _c1, decls: 2, vars: 22, consts: [["input", ""], ["focus-target", "", "role", "textbox", 1, "form-control", "app-textbox", 3, "ngModelChange", "blur", "keyup.enter", "keydown.ArrowUp", "keydown.ArrowDown", "keypress", "ngClass", "type", "ngModel", "ngModelOptions", "readonly", "required", "disabled", "maxlength", "min", "max", "step", "autofocus", "ngStyle", "autocomplete"]], template: function InputNumberComponent_Template(rf, ctx) { if (rf & 1) {
44
44
  const _r1 = i0.ɵɵgetCurrentView();
45
- i0.ɵɵelementStart(0, "input", 0, 1);
46
- i0.ɵɵlistener("ngModelChange", function InputNumberComponent_Template_input_ngModelChange_0_listener($event) { return ctx.datavalue = $event; })("blur", function InputNumberComponent_Template_input_blur_0_listener($event) { return ctx.handleBlur($event); })("ngModelChange", function InputNumberComponent_Template_input_ngModelChange_0_listener($event) { return ctx.handleChange($event); })("keyup.enter", function InputNumberComponent_Template_input_keyup_enter_0_listener() { i0.ɵɵrestoreView(_r1); const _r0 = i0.ɵɵreference(1); return i0.ɵɵresetView(ctx.flushViewChanges(_r0.value)); })("keydown.ArrowUp", function InputNumberComponent_Template_input_keydown_ArrowUp_0_listener($event) { return ctx.onArrowPress($event); })("keydown.ArrowDown", function InputNumberComponent_Template_input_keydown_ArrowDown_0_listener($event) { return ctx.onArrowPress($event); })("keypress", function InputNumberComponent_Template_input_keypress_0_listener($event) { return ctx.validateInputEntry($event); });
45
+ i0.ɵɵelementStart(0, "input", 1, 0);
46
+ i0.ɵɵtwoWayListener("ngModelChange", function InputNumberComponent_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.datavalue, $event) || (ctx.datavalue = $event); return i0.ɵɵresetView($event); });
47
+ i0.ɵɵlistener("blur", function InputNumberComponent_Template_input_blur_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleBlur($event)); })("ngModelChange", function InputNumberComponent_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleChange($event)); })("keyup.enter", function InputNumberComponent_Template_input_keyup_enter_0_listener() { i0.ɵɵrestoreView(_r1); const input_r2 = i0.ɵɵreference(1); return i0.ɵɵresetView(ctx.flushViewChanges(input_r2.value)); })("keydown.ArrowUp", function InputNumberComponent_Template_input_keydown_ArrowUp_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onArrowPress($event)); })("keydown.ArrowDown", function InputNumberComponent_Template_input_keydown_ArrowDown_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onArrowPress($event)); })("keypress", function InputNumberComponent_Template_input_keypress_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.validateInputEntry($event)); });
47
48
  i0.ɵɵelementEnd();
48
49
  } if (rf & 2) {
49
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(20, _c2, ctx.step === 0))("type", ctx.type)("ngModel", ctx.datavalue)("ngModelOptions", ctx.ngModelOptions)("readonly", ctx.readonly)("required", ctx.required)("disabled", ctx.disabled)("maxlength", ctx.maxchars)("min", ctx.minvalue)("max", ctx.maxvalue)("step", ctx.step)("autofocus", ctx.autofocus)("ngClass", ctx.conditionalclass)("ngStyle", ctx.conditionalstyle)("autocomplete", ctx.autocomplete ? "on" : "off");
50
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(20, _c2, ctx.step === 0))("type", ctx.type);
51
+ i0.ɵɵtwoWayProperty("ngModel", ctx.datavalue);
52
+ i0.ɵɵproperty("ngModelOptions", ctx.ngModelOptions)("readonly", ctx.readonly)("required", ctx.required)("disabled", ctx.disabled)("maxlength", ctx.maxchars)("min", ctx.minvalue)("max", ctx.maxvalue)("step", ctx.step)("autofocus", ctx.autofocus)("ngClass", ctx.conditionalclass)("ngStyle", ctx.conditionalstyle)("autocomplete", ctx.autocomplete ? "on" : "off");
50
53
  i0.ɵɵattribute("name", ctx.name)("tabindex", ctx.tabindex)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-label", ctx.hint);
51
54
  } }, dependencies: [i1.NgClass, i1.NgStyle, i2.DefaultValueAccessor, i2.NgControlStatus, i2.RequiredValidator, i2.MaxLengthValidator, i2.NgModel], encapsulation: 2 }); }
52
55
  }
53
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InputNumberComponent, [{
56
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InputNumberComponent, [{
54
57
  type: Component,
55
58
  args: [{ selector: 'wm-input[type="number"]', providers: [
56
59
  provideAs(InputNumberComponent, NG_VALUE_ACCESSOR, true),
57
60
  provideAs(InputNumberComponent, NG_VALIDATORS, true),
58
61
  provideAsWidgetRef(InputNumberComponent)
59
62
  ], template: "<input class=\"form-control app-textbox\"\n [ngClass]=\"{'step-hidden': step === 0}\"\n focus-target\n role=\"textbox\"\n [type]=\"type\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [min]=\"minvalue\"\n [max]=\"maxvalue\"\n [step]=\"step\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n (keydown.ArrowUp)=\"onArrowPress($event)\"\n (keydown.ArrowDown)=\"onArrowPress($event)\"\n (keypress)=\"validateInputEntry($event)\"\n #input>\n" }]
60
- }], function () { return [{ type: i0.Injector }]; }, { inputEl: [{
63
+ }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
64
+ type: Inject,
65
+ args: ['EXPLICIT_CONTEXT']
66
+ }, {
67
+ type: Optional
68
+ }] }], { inputEl: [{
61
69
  type: ViewChild,
62
70
  args: ['input', { static: true }]
63
71
  }], ngModel: [{
64
72
  type: ViewChild,
65
73
  args: [NgModel]
66
74
  }] }); })();
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy90ZXh0L251bWJlci9pbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2RlZmF1bHQvc3JjL3RleHQvbnVtYmVyL2lucHV0LW51bWJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQVksU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0UsT0FBTyxFQUFpQixTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7O0FBRS9DLE1BQU0sYUFBYSxHQUFrQjtJQUNqQyxVQUFVLEVBQUUsaUJBQWlCO0lBQzdCLFNBQVMsRUFBRSxtQkFBbUI7Q0FDakMsQ0FBQztBQVdGLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxTQUFTO2FBQ3hDLG9CQUFlLEdBQUcsYUFBYSxFQUFFLENBQUM7SUF3QnpDLFlBQVksR0FBYTtRQUNyQixLQUFLLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBTTtRQUNmLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7WUFDbEIsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQzFCO0lBQ0wsQ0FBQztJQUVNLGtCQUFrQixDQUFDLE1BQU07UUFDNUIsSUFBSSxNQUFNLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3ZFLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO0lBQ0wsQ0FBQztxRkF2Q1Esb0JBQW9CO29FQUFwQixvQkFBb0I7OzJCQXFCbEIsT0FBTzs7Ozs7OENBM0JQO2dCQUNQLFNBQVMsQ0FBQyxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUM7Z0JBQ3hELFNBQVMsQ0FBQyxvQkFBb0IsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDO2dCQUNwRCxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQzthQUMzQzs7WUNuQkwsbUNBNkJjO1lBdkJQLGdKQUF1Qix1RkFnQmYsc0JBQWtCLElBaEJILHlHQWlCTix3QkFBb0IsSUFqQmQscUpBbUJSLGVBQUEsK0JBQTZCLENBQUEsSUFuQnJCLDZHQW9CSix3QkFBb0IsSUFwQmhCLGlIQXFCRix3QkFBb0IsSUFyQmxCLCtGQXNCWCw4QkFBMEIsSUF0QmY7WUFOOUIsaUJBNkJjOztZQTVCUCxxRUFBdUMsa0JBQUEsMEJBQUEsc0NBQUEsMEJBQUEsMEJBQUEsMEJBQUEsMkJBQUEscUJBQUEscUJBQUEsa0JBQUEsNEJBQUEsaUNBQUEsaUNBQUEsaURBQUE7WUFJdkMsZ0NBQWtCLDBCQUFBLGdDQUFBLDhCQUFBLHdCQUFBOzs7dUZEZ0JaLG9CQUFvQjtjQVRoQyxTQUFTOzJCQUNJLHlCQUF5QixhQUV4QjtvQkFDUCxTQUFTLHVCQUF1QixpQkFBaUIsRUFBRSxJQUFJLENBQUM7b0JBQ3hELFNBQVMsdUJBQXVCLGFBQWEsRUFBRSxJQUFJLENBQUM7b0JBQ3BELGtCQUFrQixzQkFBc0I7aUJBQzNDOzJEQXNCbUMsT0FBTztrQkFBMUMsU0FBUzttQkFBQyxPQUFPLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO1lBQ2QsT0FBTztrQkFBMUIsU0FBUzttQkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdG9yLCBPcHRpb25hbCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nTW9kZWwsIE5HX1ZBTFVFX0FDQ0VTU09SLCBOR19WQUxJREFUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBJV2lkZ2V0Q29uZmlnLCBwcm92aWRlQXMsIHByb3ZpZGVBc1dpZGdldFJlZiB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4vaW5wdXQtbnVtYmVyLnByb3BzJztcbmltcG9ydCB7IEJhc2VJbnB1dCB9IGZyb20gJy4uL2Jhc2UvYmFzZS1pbnB1dCc7XG5cbmNvbnN0IFdJREdFVF9DT05GSUc6IElXaWRnZXRDb25maWcgPSB7XG4gICAgd2lkZ2V0VHlwZTogJ3dtLWlucHV0LW51bWJlcicsXG4gICAgaG9zdENsYXNzOiAnYXBwLWlucHV0LXdyYXBwZXInXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3dtLWlucHV0W3R5cGU9XCJudW1iZXJcIl0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1udW1iZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXMoSW5wdXROdW1iZXJDb21wb25lbnQsIE5HX1ZBTFVFX0FDQ0VTU09SLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzKElucHV0TnVtYmVyQ29tcG9uZW50LCBOR19WQUxJREFUT1JTLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKElucHV0TnVtYmVyQ29tcG9uZW50KVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgSW5wdXROdW1iZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlSW5wdXQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIG1heGNoYXJzOiBudW1iZXI7XG4gICAgcHVibGljIGRpc2FibGVkOiBib29sZWFuO1xuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmc7XG4gICAgcHVibGljIHJlYWRvbmx5OiBib29sZWFuO1xuICAgIHB1YmxpYyBjb25kaXRpb25hbGNsYXNzOiBhbnk7XG4gICAgcHVibGljIGNvbmRpdGlvbmFsc3R5bGU6IGFueTtcbiAgICBwdWJsaWMgbWludmFsdWU6IG51bWJlcjtcbiAgICBwdWJsaWMgbWF4dmFsdWU6IG51bWJlcjtcbiAgICBwdWJsaWMgdGFiaW5kZXg6IGFueTtcbiAgICBwdWJsaWMgcGxhY2Vob2xkZXI6IGFueTtcbiAgICBwdWJsaWMgc2hvcnRjdXRrZXk6IHN0cmluZztcbiAgICBwdWJsaWMgYXV0b2ZvY3VzOiBib29sZWFuO1xuICAgIHB1YmxpYyBhdXRvY29tcGxldGU6IGFueTtcbiAgICBwdWJsaWMgdHlwZTogc3RyaW5nO1xuICAgIHB1YmxpYyBoaW50OiBzdHJpbmc7XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dCcsIHtzdGF0aWM6IHRydWV9KSBpbnB1dEVsOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoTmdNb2RlbCkgbmdNb2RlbDogTmdNb2RlbDtcblxuICAgIHB1YmxpYyBzdGVwO1xuXG4gICAgY29uc3RydWN0b3IoaW5qOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcpO1xuICAgIH1cblxuICAgIG9uQXJyb3dQcmVzcygkZXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RlcCA9PT0gMCkge1xuICAgICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB2YWxpZGF0ZUlucHV0RW50cnkoJGV2ZW50KSB7XG4gICAgICAgIGlmICgkZXZlbnQua2V5ID09PSAnZScgJiYgICRldmVudC50YXJnZXQudmFsdWUuaW5kZXhPZigkZXZlbnQua2V5KSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBhcHAtdGV4dGJveFwiXG4gICAgICAgW25nQ2xhc3NdPVwieydzdGVwLWhpZGRlbic6IHN0ZXAgPT09IDB9XCJcbiAgICAgICBmb2N1cy10YXJnZXRcbiAgICAgICByb2xlPVwidGV4dGJveFwiXG4gICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgICBbKG5nTW9kZWwpXT1cImRhdGF2YWx1ZVwiXG4gICAgICAgW25nTW9kZWxPcHRpb25zXT1cIm5nTW9kZWxPcHRpb25zXCJcbiAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICBbbWF4bGVuZ3RoXT1cIm1heGNoYXJzXCJcbiAgICAgICBbbWluXT1cIm1pbnZhbHVlXCJcbiAgICAgICBbbWF4XT1cIm1heHZhbHVlXCJcbiAgICAgICBbc3RlcF09XCJzdGVwXCJcbiAgICAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgIFthdHRyLmFjY2Vzc2tleV09XCJzaG9ydGN1dGtleVwiXG4gICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJoaW50XCJcbiAgICAgICBbYXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiXG4gICAgICAgW25nQ2xhc3NdPVwiY29uZGl0aW9uYWxjbGFzc1wiXG4gICAgICAgW25nU3R5bGVdPVwiY29uZGl0aW9uYWxzdHlsZVwiXG4gICAgICAgKGJsdXIpPVwiaGFuZGxlQmx1cigkZXZlbnQpXCJcbiAgICAgICAobmdNb2RlbENoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGUgPyAnb24nIDogJ29mZidcIlxuICAgICAgIChrZXl1cC5lbnRlcik9XCJmbHVzaFZpZXdDaGFuZ2VzKGlucHV0LnZhbHVlKVwiXG4gICAgICAgKGtleWRvd24uQXJyb3dVcCk9XCJvbkFycm93UHJlc3MoJGV2ZW50KVwiXG4gICAgICAgKGtleWRvd24uQXJyb3dEb3duKT1cIm9uQXJyb3dQcmVzcygkZXZlbnQpXCJcbiAgICAgICAoa2V5cHJlc3MpPVwidmFsaWRhdGVJbnB1dEVudHJ5KCRldmVudClcIlxuICAgICAgICNpbnB1dD5cbiJdfQ==
75
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(InputNumberComponent, { className: "InputNumberComponent", filePath: "text/number/input-number.component.ts", lineNumber: 22 }); })();
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy90ZXh0L251bWJlci9pbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2RlZmF1bHQvc3JjL3RleHQvbnVtYmVyL2lucHV0LW51bWJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7QUFFL0MsTUFBTSxhQUFhLEdBQWtCO0lBQ2pDLFVBQVUsRUFBRSxpQkFBaUI7SUFDN0IsU0FBUyxFQUFFLG1CQUFtQjtDQUNqQyxDQUFDO0FBV0YsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFNBQVM7YUFDeEMsb0JBQWUsR0FBRyxhQUFhLEVBQUUsQUFBbEIsQ0FBbUI7SUF3QnpDLFlBQVksR0FBYSxFQUEwQyxlQUFvQjtRQUNuRixLQUFLLENBQUMsR0FBRyxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQU07UUFDZixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbkIsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDO0lBRU0sa0JBQWtCLENBQUMsTUFBTTtRQUM1QixJQUFJLE1BQU0sQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFLLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN4RSxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO0lBQ0wsQ0FBQztxRkF2Q1Esb0JBQW9CLDBEQXlCTSxrQkFBa0I7b0VBekI1QyxvQkFBb0I7OzJCQXFCbEIsT0FBTzs7Ozs7OENBM0JQO2dCQUNQLFNBQVMsQ0FBQyxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUM7Z0JBQ3hELFNBQVMsQ0FBQyxvQkFBb0IsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDO2dCQUNwRCxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQzthQUMzQzs7WUNuQkwsbUNBNkJjO1lBdkJQLHVQQUF1QjtZQXNCdkIsQUFEQSxBQURBLEFBREEsQUFGQSxBQURBLDBJQUFRLHNCQUFrQixLQUFDLCtJQUNWLHdCQUFvQixLQUFDLHlLQUV2QixvQ0FBNkIsS0FBQyxtSkFDMUIsd0JBQW9CLEtBQUMsdUpBQ25CLHdCQUFvQixLQUFDLHFJQUM5Qiw4QkFBMEIsS0FBQztZQTVCOUMsaUJBNkJjOztZQXpCUCxBQUhBLHFFQUF1QyxrQkFHMUI7WUFFYiw2Q0FBdUI7WUFrQnZCLEFBSEEsQUFEQSxBQURBLEFBTEEsQUFEQSxBQURBLEFBREEsQUFEQSxBQURBLEFBREEsQUFEQSxtREFBaUMsMEJBQ1osMEJBQ0EsMEJBQ0EsMkJBQ0MscUJBQ04scUJBQ0Esa0JBQ0gsNEJBS1UsaUNBQ0ssaUNBQ0EsaURBR2dCOzs7O2lGREh0QyxvQkFBb0I7Y0FUaEMsU0FBUzsyQkFDSSx5QkFBeUIsYUFFeEI7b0JBQ1AsU0FBUyx1QkFBdUIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO29CQUN4RCxTQUFTLHVCQUF1QixhQUFhLEVBQUUsSUFBSSxDQUFDO29CQUNwRCxrQkFBa0Isc0JBQXNCO2lCQUMzQzs7c0JBMkIyQixNQUFNO3VCQUFDLGtCQUFrQjs7c0JBQUcsUUFBUTtxQkFMNUIsT0FBTztrQkFBMUMsU0FBUzttQkFBQyxPQUFPLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO1lBQ2QsT0FBTztrQkFBMUIsU0FBUzttQkFBQyxPQUFPOztrRkFyQlQsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5qZWN0b3IsIE9wdGlvbmFsLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdNb2RlbCwgTkdfVkFMVUVfQUNDRVNTT1IsIE5HX1ZBTElEQVRPUlMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IElXaWRnZXRDb25maWcsIHByb3ZpZGVBcywgcHJvdmlkZUFzV2lkZ2V0UmVmIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi9pbnB1dC1udW1iZXIucHJvcHMnO1xuaW1wb3J0IHsgQmFzZUlucHV0IH0gZnJvbSAnLi4vYmFzZS9iYXNlLWlucHV0JztcblxuY29uc3QgV0lER0VUX0NPTkZJRzogSVdpZGdldENvbmZpZyA9IHtcbiAgICB3aWRnZXRUeXBlOiAnd20taW5wdXQtbnVtYmVyJyxcbiAgICBob3N0Q2xhc3M6ICdhcHAtaW5wdXQtd3JhcHBlcidcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnd20taW5wdXRbdHlwZT1cIm51bWJlclwiXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LW51bWJlci5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBcyhJbnB1dE51bWJlckNvbXBvbmVudCwgTkdfVkFMVUVfQUNDRVNTT1IsIHRydWUpLFxuICAgICAgICBwcm92aWRlQXMoSW5wdXROdW1iZXJDb21wb25lbnQsIE5HX1ZBTElEQVRPUlMsIHRydWUpLFxuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoSW5wdXROdW1iZXJDb21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dE51bWJlckNvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIHB1YmxpYyByZXF1aXJlZDogYm9vbGVhbjtcbiAgICBwdWJsaWMgbWF4Y2hhcnM6IG51bWJlcjtcbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIG5hbWU6IHN0cmluZztcbiAgICBwdWJsaWMgcmVhZG9ubHk6IGJvb2xlYW47XG4gICAgcHVibGljIGNvbmRpdGlvbmFsY2xhc3M6IGFueTtcbiAgICBwdWJsaWMgY29uZGl0aW9uYWxzdHlsZTogYW55O1xuICAgIHB1YmxpYyBtaW52YWx1ZTogbnVtYmVyO1xuICAgIHB1YmxpYyBtYXh2YWx1ZTogbnVtYmVyO1xuICAgIHB1YmxpYyB0YWJpbmRleDogYW55O1xuICAgIHB1YmxpYyBwbGFjZWhvbGRlcjogYW55O1xuICAgIHB1YmxpYyBzaG9ydGN1dGtleTogc3RyaW5nO1xuICAgIHB1YmxpYyBhdXRvZm9jdXM6IGJvb2xlYW47XG4gICAgcHVibGljIGF1dG9jb21wbGV0ZTogYW55O1xuICAgIHB1YmxpYyB0eXBlOiBzdHJpbmc7XG4gICAgcHVibGljIGhpbnQ6IHN0cmluZztcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0Jywge3N0YXRpYzogdHJ1ZX0pIGlucHV0RWw6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZChOZ01vZGVsKSBuZ01vZGVsOiBOZ01vZGVsO1xuXG4gICAgcHVibGljIHN0ZXA7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnkpIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQpO1xuICAgIH1cblxuICAgIG9uQXJyb3dQcmVzcygkZXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RlcCA9PT0gMCkge1xuICAgICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB2YWxpZGF0ZUlucHV0RW50cnkoJGV2ZW50KSB7XG4gICAgICAgIGlmICgkZXZlbnQua2V5ID09PSAnZScgJiYgICRldmVudC50YXJnZXQudmFsdWUuaW5kZXhPZigkZXZlbnQua2V5KSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBhcHAtdGV4dGJveFwiXG4gICAgICAgW25nQ2xhc3NdPVwieydzdGVwLWhpZGRlbic6IHN0ZXAgPT09IDB9XCJcbiAgICAgICBmb2N1cy10YXJnZXRcbiAgICAgICByb2xlPVwidGV4dGJveFwiXG4gICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgICBbKG5nTW9kZWwpXT1cImRhdGF2YWx1ZVwiXG4gICAgICAgW25nTW9kZWxPcHRpb25zXT1cIm5nTW9kZWxPcHRpb25zXCJcbiAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICBbbWF4bGVuZ3RoXT1cIm1heGNoYXJzXCJcbiAgICAgICBbbWluXT1cIm1pbnZhbHVlXCJcbiAgICAgICBbbWF4XT1cIm1heHZhbHVlXCJcbiAgICAgICBbc3RlcF09XCJzdGVwXCJcbiAgICAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgIFthdHRyLmFjY2Vzc2tleV09XCJzaG9ydGN1dGtleVwiXG4gICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJoaW50XCJcbiAgICAgICBbYXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiXG4gICAgICAgW25nQ2xhc3NdPVwiY29uZGl0aW9uYWxjbGFzc1wiXG4gICAgICAgW25nU3R5bGVdPVwiY29uZGl0aW9uYWxzdHlsZVwiXG4gICAgICAgKGJsdXIpPVwiaGFuZGxlQmx1cigkZXZlbnQpXCJcbiAgICAgICAobmdNb2RlbENoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGUgPyAnb24nIDogJ29mZidcIlxuICAgICAgIChrZXl1cC5lbnRlcik9XCJmbHVzaFZpZXdDaGFuZ2VzKGlucHV0LnZhbHVlKVwiXG4gICAgICAgKGtleWRvd24uQXJyb3dVcCk9XCJvbkFycm93UHJlc3MoJGV2ZW50KVwiXG4gICAgICAgKGtleWRvd24uQXJyb3dEb3duKT1cIm9uQXJyb3dQcmVzcygkZXZlbnQpXCJcbiAgICAgICAoa2V5cHJlc3MpPVwidmFsaWRhdGVJbnB1dEVudHJ5KCRldmVudClcIlxuICAgICAgICNpbnB1dD5cbiJdfQ==