@wavemaker/app-ng-runtime 11.13.0-rc.6255 → 11.14.0-rc.226

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 (1024) hide show
  1. package/build-task/bundles/index.umd.js +34 -5
  2. package/build-task/esm2022/basic/anchor/anchor.build.mjs +15 -0
  3. package/build-task/esm2022/basic/audio/audio.build.mjs +10 -0
  4. package/build-task/esm2022/basic/html/html.build.mjs +15 -0
  5. package/build-task/esm2022/basic/icon/icon.build.mjs +10 -0
  6. package/build-task/esm2022/basic/iframe/iframe.build.mjs +10 -0
  7. package/build-task/esm2022/basic/label/label.build.mjs +25 -0
  8. package/build-task/esm2022/basic/picture/picture.build.mjs +14 -0
  9. package/build-task/esm2022/basic/spinner/spinner.build.mjs +15 -0
  10. package/build-task/esm2022/basic/video/video.build.mjs +10 -0
  11. package/build-task/esm2022/data/form/form-field/form-field.build.mjs +8 -3
  12. package/build-task/esm2022/data/form/form.build.mjs +8 -1
  13. package/build-task/esm2022/data/table/table-column/table-column.build.mjs +14 -3
  14. package/build-task/esm2022/input/default/checkbox/checkbox.build.mjs +2 -2
  15. package/build-task/esm2022/page/page-content/page-content.build.mjs +8 -2
  16. package/build-task/esm2022/public_api.mjs +10 -10
  17. package/build-task/fesm2022/index.mjs +36 -7
  18. package/build-task/fesm2022/index.mjs.map +1 -1
  19. package/build-task/package.json +3 -6
  20. package/build-task/public_api.d.ts +9 -9
  21. package/components/advanced/carousel/bundles/index.umd.js +33 -38
  22. package/components/advanced/carousel/esm2022/carousel-template/carousel-template.directive.mjs +16 -16
  23. package/components/advanced/carousel/esm2022/carousel.directive.mjs +19 -24
  24. package/components/advanced/carousel/fesm2022/index.mjs +34 -39
  25. package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  26. package/components/advanced/carousel/package.json +0 -3
  27. package/components/advanced/custom/bundles/index.umd.js +48 -48
  28. package/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +1 -1
  29. package/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +31 -31
  30. package/components/advanced/custom/esm2022/custom-widget.directive.mjs +15 -15
  31. package/components/advanced/custom/fesm2022/index.mjs +45 -45
  32. package/components/advanced/custom/fesm2022/index.mjs.map +1 -1
  33. package/components/advanced/custom/package.json +0 -3
  34. package/components/advanced/login/bundles/index.umd.js +33 -53
  35. package/components/advanced/login/esm2022/login.component.mjs +26 -47
  36. package/components/advanced/login/fesm2022/index.mjs +27 -47
  37. package/components/advanced/login/fesm2022/index.mjs.map +1 -1
  38. package/components/advanced/login/login.component.d.ts +1 -1
  39. package/components/advanced/login/package.json +0 -3
  40. package/components/advanced/marquee/bundles/index.umd.js +19 -19
  41. package/components/advanced/marquee/esm2022/marquee.directive.mjs +20 -20
  42. package/components/advanced/marquee/fesm2022/index.mjs +20 -20
  43. package/components/advanced/marquee/fesm2022/index.mjs.map +1 -1
  44. package/components/advanced/marquee/package.json +0 -3
  45. package/components/base/bundles/index.umd.js +4272 -4243
  46. package/components/base/esm2022/pipes/custom-pipes.mjs +14 -12
  47. package/components/base/esm2022/pipes/wm-pipe.mjs +3 -3
  48. package/components/base/esm2022/public_api.mjs +1 -2
  49. package/components/base/esm2022/widgets/common/container/container.directive.mjs +154 -1
  50. package/components/base/esm2022/widgets/common/container/container.props.mjs +7 -2
  51. package/components/base/esm2022/widgets/common/redraw/redrawable.directive.mjs +1 -1
  52. package/components/base/fesm2022/index.mjs +4280 -4251
  53. package/components/base/fesm2022/index.mjs.map +1 -1
  54. package/components/base/package.json +2 -2
  55. package/components/base/pipes/custom-pipes.d.ts +4 -2
  56. package/components/base/pipes/wm-pipe.d.ts +1 -1
  57. package/components/base/public_api.d.ts +0 -1
  58. package/components/base/widgets/common/container/container.directive.d.ts +9 -0
  59. package/components/base/widgets/common/pull-to-refresh/pull-to-refresh.d.ts +0 -2
  60. package/components/basic/anchor/bundles/index.umd.js +192 -0
  61. package/components/basic/anchor/esm2022/anchor.component.mjs +143 -0
  62. package/components/basic/anchor/esm2022/anchor.props.mjs +27 -0
  63. package/components/basic/anchor/esm2022/index.mjs +5 -0
  64. package/components/basic/anchor/esm2022/public_api.mjs +2 -0
  65. package/components/basic/anchor/fesm2022/index.mjs +175 -0
  66. package/components/basic/anchor/fesm2022/index.mjs.map +1 -0
  67. package/components/basic/{progress → anchor}/index.d.ts +1 -1
  68. package/components/basic/{default → anchor}/package.json +1 -4
  69. package/components/basic/anchor/public_api.d.ts +1 -0
  70. package/components/basic/audio/bundles/index.umd.js +83 -0
  71. package/components/basic/audio/esm2022/audio.component.mjs +41 -0
  72. package/components/basic/audio/esm2022/audio.props.mjs +19 -0
  73. package/components/{input/epoch → basic/audio}/esm2022/index.mjs +1 -1
  74. package/components/basic/audio/esm2022/public_api.mjs +2 -0
  75. package/components/basic/audio/fesm2022/index.mjs +65 -0
  76. package/components/basic/audio/fesm2022/index.mjs.map +1 -0
  77. package/components/{input/epoch → basic/audio}/index.d.ts +1 -1
  78. package/components/{input/default → basic/audio}/package.json +2 -5
  79. package/components/basic/audio/public_api.d.ts +1 -0
  80. package/components/basic/html/bundles/index.umd.js +110 -0
  81. package/components/basic/html/esm2022/html.directive.mjs +76 -0
  82. package/components/basic/html/esm2022/html.props.mjs +12 -0
  83. package/components/basic/html/esm2022/index.mjs +5 -0
  84. package/components/basic/html/esm2022/public_api.mjs +2 -0
  85. package/components/basic/html/fesm2022/index.mjs +93 -0
  86. package/components/basic/html/fesm2022/index.mjs.map +1 -0
  87. package/components/basic/{default → html}/index.d.ts +1 -1
  88. package/components/{input/epoch → basic/html}/package.json +1 -4
  89. package/components/basic/html/public_api.d.ts +1 -0
  90. package/components/basic/icon/bundles/index.umd.js +80 -0
  91. package/components/basic/icon/esm2022/icon.component.mjs +38 -0
  92. package/components/basic/icon/esm2022/icon.props.mjs +19 -0
  93. package/components/basic/icon/esm2022/index.mjs +5 -0
  94. package/components/basic/icon/esm2022/public_api.mjs +2 -0
  95. package/components/basic/icon/fesm2022/index.mjs +62 -0
  96. package/components/basic/icon/fesm2022/index.mjs.map +1 -0
  97. package/components/{input/default → basic/icon}/index.d.ts +1 -1
  98. package/components/basic/{progress → icon}/package.json +1 -4
  99. package/components/basic/icon/public_api.d.ts +1 -0
  100. package/components/basic/iframe/.npmignore +2 -0
  101. package/components/basic/iframe/bundles/index.umd.js +101 -0
  102. package/components/basic/iframe/esm2022/iframe.component.mjs +65 -0
  103. package/components/basic/iframe/esm2022/iframe.props.mjs +15 -0
  104. package/components/basic/iframe/esm2022/index.mjs +5 -0
  105. package/components/basic/iframe/esm2022/public_api.mjs +2 -0
  106. package/components/basic/iframe/fesm2022/index.mjs +84 -0
  107. package/components/basic/iframe/fesm2022/index.mjs.map +1 -0
  108. package/components/basic/iframe/index.d.ts +5 -0
  109. package/components/basic/iframe/package.json +20 -0
  110. package/components/basic/iframe/public_api.d.ts +1 -0
  111. package/components/basic/label/.npmignore +2 -0
  112. package/components/basic/label/bundles/index.umd.js +109 -0
  113. package/components/basic/label/esm2022/index.mjs +5 -0
  114. package/components/basic/label/esm2022/label.directive.mjs +71 -0
  115. package/components/basic/label/esm2022/label.props.mjs +17 -0
  116. package/components/basic/label/esm2022/public_api.mjs +2 -0
  117. package/components/basic/label/fesm2022/index.mjs +93 -0
  118. package/components/basic/label/fesm2022/index.mjs.map +1 -0
  119. package/components/basic/label/index.d.ts +5 -0
  120. package/components/basic/{default/label → label}/label.directive.d.ts +1 -1
  121. package/components/basic/label/package.json +20 -0
  122. package/components/basic/label/public_api.d.ts +1 -0
  123. package/components/basic/picture/.npmignore +2 -0
  124. package/components/basic/picture/bundles/index.umd.js +138 -0
  125. package/components/basic/{default → picture}/esm2022/index.mjs +1 -1
  126. package/components/basic/picture/esm2022/picture.directive.mjs +93 -0
  127. package/components/basic/picture/esm2022/picture.props.mjs +23 -0
  128. package/components/basic/picture/esm2022/public_api.mjs +2 -0
  129. package/components/basic/picture/fesm2022/index.mjs +121 -0
  130. package/components/basic/picture/fesm2022/index.mjs.map +1 -0
  131. package/components/basic/picture/index.d.ts +5 -0
  132. package/components/basic/picture/package.json +20 -0
  133. package/components/basic/picture/public_api.d.ts +1 -0
  134. package/components/basic/progress/progress-bar/.npmignore +2 -0
  135. package/components/basic/progress/progress-bar/bundles/index.umd.js +170 -0
  136. package/components/basic/progress/progress-bar/esm2022/index.mjs +5 -0
  137. package/components/basic/progress/progress-bar/esm2022/progress-bar.component.mjs +130 -0
  138. package/components/basic/progress/{esm2022/progress-bar → progress-bar/esm2022}/progress-bar.props.mjs +1 -1
  139. package/components/basic/progress/progress-bar/esm2022/public_api.mjs +2 -0
  140. package/components/basic/progress/progress-bar/fesm2022/index.mjs +154 -0
  141. package/components/basic/progress/progress-bar/fesm2022/index.mjs.map +1 -0
  142. package/components/basic/progress/progress-bar/index.d.ts +5 -0
  143. package/components/basic/progress/progress-bar/package.json +20 -0
  144. package/components/basic/progress/progress-bar/public_api.d.ts +1 -0
  145. package/components/basic/progress/progress-circle/.npmignore +2 -0
  146. package/components/basic/progress/progress-circle/bundles/index.umd.js +161 -0
  147. package/components/basic/progress/progress-circle/esm2022/index.mjs +5 -0
  148. package/components/basic/progress/progress-circle/esm2022/progress-circle.component.mjs +120 -0
  149. package/components/basic/progress/{esm2022/progress-circle → progress-circle/esm2022}/progress-circle.props.mjs +1 -1
  150. package/components/basic/progress/progress-circle/esm2022/public_api.mjs +2 -0
  151. package/components/basic/progress/progress-circle/fesm2022/index.mjs +145 -0
  152. package/components/basic/progress/progress-circle/fesm2022/index.mjs.map +1 -0
  153. package/components/basic/progress/progress-circle/index.d.ts +5 -0
  154. package/components/basic/progress/progress-circle/package.json +20 -0
  155. package/components/basic/progress/progress-circle/public_api.d.ts +1 -0
  156. package/components/basic/progress/progress-utils/.npmignore +2 -0
  157. package/components/basic/progress/progress-utils/bundles/index.umd.js +35 -0
  158. package/components/basic/progress/progress-utils/esm2022/index.mjs +5 -0
  159. package/components/basic/progress/progress-utils/esm2022/progress-utils.mjs +25 -0
  160. package/components/basic/progress/progress-utils/esm2022/public_api.mjs +2 -0
  161. package/components/basic/progress/progress-utils/fesm2022/index.mjs +32 -0
  162. package/components/basic/progress/progress-utils/fesm2022/index.mjs.map +1 -0
  163. package/components/basic/progress/progress-utils/index.d.ts +5 -0
  164. package/components/basic/progress/progress-utils/package.json +20 -0
  165. package/components/basic/progress/progress-utils/public_api.d.ts +1 -0
  166. package/components/basic/rich-text-editor/bundles/index.umd.js +23 -40
  167. package/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +19 -38
  168. package/components/basic/rich-text-editor/fesm2022/index.mjs +21 -39
  169. package/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  170. package/components/basic/rich-text-editor/package.json +0 -3
  171. package/components/basic/rich-text-editor/rich-text-editor.component.d.ts +1 -1
  172. package/components/basic/search/bundles/index.umd.js +109 -313
  173. package/components/basic/search/esm2022/scrollable.directive.mjs +13 -14
  174. package/components/basic/search/esm2022/search.component.mjs +40 -246
  175. package/components/basic/search/fesm2022/index.mjs +52 -256
  176. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  177. package/components/basic/search/package.json +0 -3
  178. package/components/basic/search/scrollable.directive.d.ts +2 -3
  179. package/components/basic/search/search.component.d.ts +1 -1
  180. package/components/basic/spinner/.npmignore +2 -0
  181. package/components/basic/spinner/bundles/index.umd.js +118 -0
  182. package/components/{input/default → basic/spinner}/esm2022/index.mjs +1 -1
  183. package/components/basic/spinner/esm2022/public_api.mjs +2 -0
  184. package/components/basic/spinner/esm2022/spinner.component.mjs +79 -0
  185. package/components/basic/spinner/esm2022/spinner.props.mjs +20 -0
  186. package/components/basic/spinner/fesm2022/index.mjs +103 -0
  187. package/components/basic/spinner/fesm2022/index.mjs.map +1 -0
  188. package/components/basic/spinner/index.d.ts +5 -0
  189. package/components/basic/spinner/package.json +20 -0
  190. package/components/basic/spinner/public_api.d.ts +1 -0
  191. package/components/basic/tree/bundles/index.umd.js +34 -38
  192. package/components/basic/tree/esm2022/tree.component.mjs +31 -36
  193. package/components/basic/tree/fesm2022/index.mjs +32 -36
  194. package/components/basic/tree/fesm2022/index.mjs.map +1 -1
  195. package/components/basic/tree/package.json +0 -3
  196. package/components/basic/video/.npmignore +2 -0
  197. package/components/basic/video/bundles/index.umd.js +116 -0
  198. package/components/basic/video/esm2022/index.mjs +5 -0
  199. package/components/basic/video/esm2022/public_api.mjs +2 -0
  200. package/components/basic/video/esm2022/video.component.mjs +70 -0
  201. package/components/basic/video/esm2022/video.props.mjs +24 -0
  202. package/components/basic/video/fesm2022/index.mjs +99 -0
  203. package/components/basic/video/fesm2022/index.mjs.map +1 -0
  204. package/components/basic/video/index.d.ts +5 -0
  205. package/components/basic/video/package.json +20 -0
  206. package/components/basic/video/public_api.d.ts +1 -0
  207. package/components/chart/bundles/index.umd.js +22 -75
  208. package/components/chart/esm2022/chart.component.mjs +20 -74
  209. package/components/chart/fesm2022/index.mjs +21 -74
  210. package/components/chart/fesm2022/index.mjs.map +1 -1
  211. package/components/chart/package.json +0 -3
  212. package/components/containers/accordion/bundles/index.umd.js +45 -100
  213. package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +19 -70
  214. package/components/containers/accordion/esm2022/accordion.directive.mjs +24 -29
  215. package/components/containers/accordion/fesm2022/index.mjs +43 -98
  216. package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  217. package/components/containers/accordion/package.json +0 -3
  218. package/components/containers/layout-grid/bundles/index.umd.js +60 -60
  219. package/components/containers/layout-grid/esm2022/layout-grid-column/layout-grid-column.directive.mjs +23 -23
  220. package/components/containers/layout-grid/esm2022/layout-grid-row/layout-grid-row.directive.mjs +20 -20
  221. package/components/containers/layout-grid/esm2022/layout-grid.directive.mjs +20 -20
  222. package/components/containers/layout-grid/fesm2022/index.mjs +61 -61
  223. package/components/containers/layout-grid/fesm2022/index.mjs.map +1 -1
  224. package/components/containers/layout-grid/package.json +0 -3
  225. package/components/containers/linear-layout/bundles/index.umd.js +38 -38
  226. package/components/containers/linear-layout/esm2022/linear-layout-item/linear-layout-item.directive.mjs +20 -20
  227. package/components/containers/linear-layout/esm2022/linear-layout.directive.mjs +20 -20
  228. package/components/containers/linear-layout/fesm2022/index.mjs +39 -39
  229. package/components/containers/linear-layout/fesm2022/index.mjs.map +1 -1
  230. package/components/containers/linear-layout/package.json +0 -3
  231. package/components/containers/panel/bundles/index.umd.js +62 -223
  232. package/components/containers/panel/esm2022/panel.component.mjs +29 -190
  233. package/components/containers/panel/fesm2022/index.mjs +29 -190
  234. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  235. package/components/containers/panel/package.json +0 -3
  236. package/components/containers/tabs/bundles/index.umd.js +95 -204
  237. package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +34 -51
  238. package/components/containers/tabs/esm2022/tabs.component.mjs +29 -123
  239. package/components/containers/tabs/fesm2022/index.mjs +61 -170
  240. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  241. package/components/containers/tabs/package.json +0 -3
  242. package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +3 -4
  243. package/components/containers/tile/bundles/index.umd.js +19 -19
  244. package/components/containers/tile/esm2022/tile.directive.mjs +20 -20
  245. package/components/containers/tile/fesm2022/index.mjs +20 -20
  246. package/components/containers/tile/fesm2022/index.mjs.map +1 -1
  247. package/components/containers/tile/package.json +0 -3
  248. package/components/containers/wizard/bundles/index.umd.js +119 -302
  249. package/components/containers/wizard/esm2022/wizard-action/wizard-action.directive.mjs +21 -21
  250. package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +32 -45
  251. package/components/containers/wizard/esm2022/wizard.component.mjs +30 -201
  252. package/components/containers/wizard/fesm2022/index.mjs +81 -264
  253. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  254. package/components/containers/wizard/package.json +0 -3
  255. package/components/containers/wizard/wizard.component.d.ts +1 -1
  256. package/components/data/card/bundles/index.umd.js +108 -208
  257. package/components/data/card/esm2022/card-actions/card-actions.directive.mjs +15 -15
  258. package/components/data/card/esm2022/card-content/card-content.component.mjs +19 -34
  259. package/components/data/card/esm2022/card-footer/card-footer.directive.mjs +15 -15
  260. package/components/data/card/esm2022/card.component.mjs +21 -107
  261. package/components/data/card/fesm2022/index.mjs +67 -167
  262. package/components/data/card/fesm2022/index.mjs.map +1 -1
  263. package/components/data/card/package.json +0 -3
  264. package/components/data/form/bundles/index.umd.js +287 -467
  265. package/components/data/form/esm2022/form-action/form-action.directive.mjs +22 -22
  266. package/components/data/form/esm2022/form-field/form-field.directive.mjs +80 -91
  267. package/components/data/form/esm2022/form-widget.directive.mjs +31 -31
  268. package/components/data/form/esm2022/form.component.mjs +88 -251
  269. package/components/data/form/esm2022/form.props.mjs +1 -1
  270. package/components/data/form/esm2022/live-actions/dependson.directive.mjs +19 -24
  271. package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +15 -15
  272. package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +15 -15
  273. package/components/data/form/esm2022/live-form/live-form.directive.mjs +23 -25
  274. package/components/data/form/fesm2022/index.mjs +288 -468
  275. package/components/data/form/fesm2022/index.mjs.map +1 -1
  276. package/components/data/form/package.json +0 -3
  277. package/components/data/list/bundles/index.umd.js +80 -360
  278. package/components/data/list/esm2022/list-item.directive.mjs +27 -34
  279. package/components/data/list/esm2022/list.animator.mjs +1 -1
  280. package/components/data/list/esm2022/list.component.mjs +55 -330
  281. package/components/data/list/esm2022/list.props.mjs +1 -1
  282. package/components/data/list/fesm2022/index.mjs +79 -358
  283. package/components/data/list/fesm2022/index.mjs.map +1 -1
  284. package/components/data/list/list-item.directive.d.ts +3 -3
  285. package/components/data/list/list.component.d.ts +2 -4
  286. package/components/data/list/package.json +0 -3
  287. package/components/data/live-table/bundles/index.umd.js +28 -39
  288. package/components/data/live-table/esm2022/live-table.component.mjs +25 -37
  289. package/components/data/live-table/fesm2022/index.mjs +26 -37
  290. package/components/data/live-table/fesm2022/index.mjs.map +1 -1
  291. package/components/data/live-table/package.json +0 -3
  292. package/components/data/pagination/bundles/index.umd.js +33 -505
  293. package/components/data/pagination/esm2022/pagination.component.mjs +33 -507
  294. package/components/data/pagination/esm2022/pagination.props.mjs +1 -1
  295. package/components/data/pagination/fesm2022/index.mjs +32 -505
  296. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  297. package/components/data/pagination/package.json +0 -3
  298. package/components/data/pagination/pagination.component.d.ts +1 -1
  299. package/components/data/table/bundles/index.umd.js +310 -457
  300. package/components/data/table/esm2022/table-action/table-action.directive.mjs +22 -22
  301. package/components/data/table/esm2022/table-column/table-column.directive.mjs +50 -71
  302. package/components/data/table/esm2022/table-column/table-column.props.mjs +1 -1
  303. package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +26 -26
  304. package/components/data/table/esm2022/table-cud.directive.mjs +15 -15
  305. package/components/data/table/esm2022/table-filter.directive.mjs +16 -16
  306. package/components/data/table/esm2022/table-row/table-row.directive.mjs +24 -24
  307. package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +29 -29
  308. package/components/data/table/esm2022/table.component.mjs +135 -263
  309. package/components/data/table/esm2022/table.props.mjs +2 -1
  310. package/components/data/table/fesm2022/index.mjs +312 -459
  311. package/components/data/table/fesm2022/index.mjs.map +1 -1
  312. package/components/data/table/package.json +0 -3
  313. package/components/data/table/table-column/table-column.directive.d.ts +1 -1
  314. package/components/data/table/table.component.d.ts +3 -0
  315. package/components/dialogs/alert-dialog/bundles/index.umd.js +50 -79
  316. package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +32 -62
  317. package/components/dialogs/alert-dialog/fesm2022/index.mjs +32 -61
  318. package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  319. package/components/dialogs/alert-dialog/package.json +0 -3
  320. package/components/dialogs/confirm-dialog/bundles/index.umd.js +36 -72
  321. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +34 -71
  322. package/components/dialogs/confirm-dialog/fesm2022/index.mjs +35 -71
  323. package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  324. package/components/dialogs/confirm-dialog/package.json +0 -3
  325. package/components/dialogs/default/bundles/index.umd.js +85 -232
  326. package/components/dialogs/default/esm2022/base-dialog.mjs +14 -14
  327. package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +16 -18
  328. package/components/dialogs/default/esm2022/dialog-footer/dialog-footer.directive.mjs +20 -20
  329. package/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +34 -179
  330. package/components/dialogs/default/fesm2022/index.mjs +80 -227
  331. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  332. package/components/dialogs/default/package.json +0 -3
  333. package/components/dialogs/design-dialog/bundles/index.umd.js +52 -108
  334. package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +50 -107
  335. package/components/dialogs/design-dialog/fesm2022/index.mjs +51 -107
  336. package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  337. package/components/dialogs/design-dialog/package.json +0 -3
  338. package/components/dialogs/iframe-dialog/bundles/index.umd.js +33 -81
  339. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +32 -82
  340. package/components/dialogs/iframe-dialog/fesm2022/index.mjs +33 -82
  341. package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  342. package/components/dialogs/iframe-dialog/package.json +0 -3
  343. package/components/dialogs/login-dialog/bundles/index.umd.js +22 -29
  344. package/components/dialogs/login-dialog/esm2022/login-dialog.directive.mjs +23 -30
  345. package/components/dialogs/login-dialog/fesm2022/index.mjs +23 -30
  346. package/components/dialogs/login-dialog/fesm2022/index.mjs.map +1 -1
  347. package/components/dialogs/login-dialog/package.json +0 -3
  348. package/components/dialogs/partial-dialog/bundles/index.umd.js +39 -85
  349. package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +38 -85
  350. package/components/dialogs/partial-dialog/fesm2022/index.mjs +39 -85
  351. package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  352. package/components/dialogs/partial-dialog/package.json +0 -3
  353. package/components/input/base-form/.npmignore +2 -0
  354. package/components/input/base-form/bundles/index.umd.js +133 -0
  355. package/components/input/base-form/esm2022/base-form.component.mjs +110 -0
  356. package/components/input/base-form/esm2022/index.mjs +5 -0
  357. package/components/input/base-form/esm2022/public_api.mjs +2 -0
  358. package/components/input/base-form/fesm2022/index.mjs +117 -0
  359. package/components/input/base-form/fesm2022/index.mjs.map +1 -0
  360. package/components/input/base-form/index.d.ts +5 -0
  361. package/components/input/base-form/package.json +20 -0
  362. package/components/input/base-form/public_api.d.ts +1 -0
  363. package/components/input/base-form-custom/.npmignore +2 -0
  364. package/components/input/{default → base-form-custom}/base-form-custom.component.d.ts +1 -1
  365. package/components/input/base-form-custom/bundles/index.umd.js +118 -0
  366. package/components/input/base-form-custom/esm2022/base-form-custom.component.mjs +94 -0
  367. package/components/input/base-form-custom/esm2022/index.mjs +5 -0
  368. package/components/input/base-form-custom/esm2022/public_api.mjs +2 -0
  369. package/components/input/base-form-custom/fesm2022/index.mjs +101 -0
  370. package/components/input/base-form-custom/fesm2022/index.mjs.map +1 -0
  371. package/components/input/base-form-custom/index.d.ts +5 -0
  372. package/components/input/base-form-custom/package.json +20 -0
  373. package/components/input/base-form-custom/public_api.d.ts +1 -0
  374. package/components/input/button/.npmignore +2 -0
  375. package/components/input/button/bundles/index.umd.js +98 -0
  376. package/components/input/button/esm2022/button.component.mjs +50 -0
  377. package/components/input/button/esm2022/button.props.mjs +26 -0
  378. package/components/input/button/esm2022/index.mjs +5 -0
  379. package/components/input/button/esm2022/public_api.mjs +2 -0
  380. package/components/input/button/fesm2022/index.mjs +81 -0
  381. package/components/input/button/fesm2022/index.mjs.map +1 -0
  382. package/components/input/button/index.d.ts +5 -0
  383. package/components/input/button/package.json +20 -0
  384. package/components/input/button/public_api.d.ts +1 -0
  385. package/components/input/button-group/.npmignore +2 -0
  386. package/components/input/button-group/bundles/index.umd.js +80 -0
  387. package/components/input/button-group/esm2022/button-group.directive.mjs +47 -0
  388. package/components/input/button-group/esm2022/button-group.props.mjs +10 -0
  389. package/components/input/button-group/esm2022/index.mjs +5 -0
  390. package/components/input/button-group/esm2022/public_api.mjs +2 -0
  391. package/components/input/button-group/fesm2022/index.mjs +62 -0
  392. package/components/input/button-group/fesm2022/index.mjs.map +1 -0
  393. package/components/input/button-group/index.d.ts +5 -0
  394. package/components/input/button-group/package.json +20 -0
  395. package/components/input/button-group/public_api.d.ts +1 -0
  396. package/components/input/calendar/bundles/index.umd.js +25 -38
  397. package/components/input/calendar/esm2022/calendar.component.mjs +22 -36
  398. package/components/input/calendar/fesm2022/index.mjs +23 -36
  399. package/components/input/calendar/fesm2022/index.mjs.map +1 -1
  400. package/components/input/calendar/package.json +0 -3
  401. package/components/input/caption-position/.npmignore +2 -0
  402. package/components/input/caption-position/bundles/index.umd.js +196 -0
  403. package/components/input/caption-position/esm2022/caption-position.directive.mjs +172 -0
  404. package/components/input/caption-position/esm2022/index.mjs +5 -0
  405. package/components/input/caption-position/esm2022/public_api.mjs +2 -0
  406. package/components/input/caption-position/fesm2022/index.mjs +178 -0
  407. package/components/input/caption-position/fesm2022/index.mjs.map +1 -0
  408. package/components/input/caption-position/index.d.ts +5 -0
  409. package/components/input/caption-position/package.json +20 -0
  410. package/components/input/caption-position/public_api.d.ts +1 -0
  411. package/components/input/checkbox/.npmignore +2 -0
  412. package/components/input/checkbox/bundles/index.umd.js +190 -0
  413. package/components/input/{default/checkbox → checkbox}/checkbox.component.d.ts +1 -1
  414. package/components/input/checkbox/esm2022/checkbox.component.mjs +145 -0
  415. package/components/input/checkbox/esm2022/checkbox.props.mjs +27 -0
  416. package/components/{basic/progress → input/checkbox}/esm2022/index.mjs +1 -1
  417. package/components/input/checkbox/esm2022/public_api.mjs +2 -0
  418. package/components/input/checkbox/fesm2022/index.mjs +175 -0
  419. package/components/input/checkbox/fesm2022/index.mjs.map +1 -0
  420. package/components/input/checkbox/index.d.ts +5 -0
  421. package/components/input/checkbox/package.json +20 -0
  422. package/components/input/checkbox/public_api.d.ts +1 -0
  423. package/components/input/checkboxset/.npmignore +2 -0
  424. package/components/input/checkboxset/bundles/index.umd.js +151 -0
  425. package/components/input/{default/checkboxset → checkboxset}/checkboxset.component.d.ts +1 -1
  426. package/components/input/checkboxset/esm2022/checkboxset.component.mjs +99 -0
  427. package/components/input/checkboxset/esm2022/checkboxset.props.mjs +35 -0
  428. package/components/input/checkboxset/esm2022/index.mjs +5 -0
  429. package/components/input/checkboxset/esm2022/public_api.mjs +2 -0
  430. package/components/input/checkboxset/fesm2022/index.mjs +138 -0
  431. package/components/input/checkboxset/fesm2022/index.mjs.map +1 -0
  432. package/components/input/checkboxset/index.d.ts +5 -0
  433. package/components/input/checkboxset/package.json +20 -0
  434. package/components/input/checkboxset/public_api.d.ts +1 -0
  435. package/components/input/chips/bundles/index.umd.js +94 -153
  436. package/components/input/chips/chips.component.d.ts +1 -1
  437. package/components/input/chips/esm2022/chips.component.mjs +41 -101
  438. package/components/input/chips/fesm2022/index.mjs +42 -101
  439. package/components/input/chips/fesm2022/index.mjs.map +1 -1
  440. package/components/input/chips/package.json +0 -3
  441. package/components/input/color-picker/bundles/index.umd.js +35 -74
  442. package/components/input/color-picker/color-picker.component.d.ts +2 -2
  443. package/components/input/color-picker/esm2022/color-picker.component.mjs +34 -75
  444. package/components/input/color-picker/fesm2022/index.mjs +36 -75
  445. package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  446. package/components/input/color-picker/package.json +0 -3
  447. package/components/input/composite/.npmignore +2 -0
  448. package/components/input/composite/bundles/index.umd.js +111 -0
  449. package/components/input/composite/esm2022/composite.directive.mjs +79 -0
  450. package/components/input/composite/esm2022/composite.props.mjs +10 -0
  451. package/components/input/composite/esm2022/index.mjs +5 -0
  452. package/components/input/composite/esm2022/public_api.mjs +2 -0
  453. package/components/input/composite/fesm2022/index.mjs +94 -0
  454. package/components/input/composite/fesm2022/index.mjs.map +1 -0
  455. package/components/input/composite/index.d.ts +5 -0
  456. package/components/input/composite/package.json +20 -0
  457. package/components/input/composite/public_api.d.ts +1 -0
  458. package/components/input/currency/bundles/index.umd.js +31 -52
  459. package/components/input/currency/currency.component.d.ts +1 -1
  460. package/components/input/currency/esm2022/currency.component.mjs +28 -50
  461. package/components/input/currency/fesm2022/index.mjs +30 -51
  462. package/components/input/currency/fesm2022/index.mjs.map +1 -1
  463. package/components/input/currency/package.json +0 -3
  464. package/components/input/dataset-aware-form/.npmignore +2 -0
  465. package/components/input/dataset-aware-form/bundles/index.umd.js +328 -0
  466. package/components/input/{default → dataset-aware-form}/dataset-aware-form.component.d.ts +1 -1
  467. package/components/input/dataset-aware-form/esm2022/dataset-aware-form.component.mjs +307 -0
  468. package/components/input/dataset-aware-form/esm2022/index.mjs +5 -0
  469. package/components/input/dataset-aware-form/esm2022/public_api.mjs +2 -0
  470. package/components/input/dataset-aware-form/fesm2022/index.mjs +314 -0
  471. package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -0
  472. package/components/input/dataset-aware-form/index.d.ts +5 -0
  473. package/components/input/dataset-aware-form/package.json +20 -0
  474. package/components/input/dataset-aware-form/public_api.d.ts +1 -0
  475. package/components/input/epoch/base-date-time/.npmignore +2 -0
  476. package/components/input/epoch/{base-date-time.component.d.ts → base-date-time/base-date-time.component.d.ts} +1 -1
  477. package/components/input/epoch/base-date-time/bundles/index.umd.js +1086 -0
  478. package/components/input/epoch/{esm2022 → base-date-time/esm2022}/base-date-time.component.mjs +22 -31
  479. package/components/input/epoch/base-date-time/esm2022/index.mjs +5 -0
  480. package/components/input/epoch/base-date-time/esm2022/public_api.mjs +2 -0
  481. package/components/input/epoch/base-date-time/fesm2022/index.mjs +1077 -0
  482. package/components/input/epoch/base-date-time/fesm2022/index.mjs.map +1 -0
  483. package/components/input/epoch/base-date-time/index.d.ts +5 -0
  484. package/components/input/epoch/base-date-time/package.json +20 -0
  485. package/components/input/epoch/base-date-time/public_api.d.ts +1 -0
  486. package/components/input/epoch/date/.npmignore +2 -0
  487. package/components/input/epoch/date/bundles/index.umd.js +492 -0
  488. package/components/input/epoch/date/date.component.d.ts +2 -2
  489. package/components/input/epoch/date/esm2022/date.component.mjs +322 -0
  490. package/components/input/epoch/{esm2022/date → date/esm2022}/date.props.mjs +1 -1
  491. package/components/input/epoch/{esm2022/date → date/esm2022}/imaskUtil.mjs +1 -1
  492. package/components/input/epoch/date/esm2022/index.mjs +5 -0
  493. package/components/input/epoch/date/esm2022/public_api.mjs +2 -0
  494. package/components/input/epoch/date/fesm2022/index.mjs +482 -0
  495. package/components/input/epoch/date/fesm2022/index.mjs.map +1 -0
  496. package/components/input/epoch/date/index.d.ts +5 -0
  497. package/components/input/epoch/date/package.json +20 -0
  498. package/components/input/epoch/date/public_api.d.ts +1 -0
  499. package/components/input/epoch/date-time/.npmignore +2 -0
  500. package/components/input/epoch/date-time/bundles/index.umd.js +518 -0
  501. package/components/input/epoch/date-time/date-time.component.d.ts +1 -1
  502. package/components/input/epoch/date-time/esm2022/date-time.component.mjs +458 -0
  503. package/components/input/epoch/{esm2022/date-time → date-time/esm2022}/date-time.props.mjs +1 -1
  504. package/components/input/epoch/date-time/esm2022/index.mjs +5 -0
  505. package/components/input/epoch/date-time/esm2022/public_api.mjs +2 -0
  506. package/components/input/epoch/date-time/fesm2022/index.mjs +509 -0
  507. package/components/input/epoch/date-time/fesm2022/index.mjs.map +1 -0
  508. package/components/input/epoch/date-time/index.d.ts +5 -0
  509. package/components/input/epoch/date-time/package.json +20 -0
  510. package/components/input/epoch/date-time/public_api.d.ts +1 -0
  511. package/components/input/epoch/date-time-picker/.npmignore +2 -0
  512. package/components/input/epoch/date-time-picker/bundles/index.umd.js +453 -0
  513. package/components/input/epoch/date-time-picker/esm2022/date-time-picker.component.mjs +433 -0
  514. package/components/input/epoch/date-time-picker/esm2022/index.mjs +5 -0
  515. package/components/input/epoch/date-time-picker/esm2022/public_api.mjs +2 -0
  516. package/components/input/epoch/date-time-picker/fesm2022/index.mjs +439 -0
  517. package/components/input/epoch/date-time-picker/fesm2022/index.mjs.map +1 -0
  518. package/components/input/epoch/date-time-picker/index.d.ts +5 -0
  519. package/components/input/epoch/date-time-picker/package.json +20 -0
  520. package/components/input/epoch/date-time-picker/public_api.d.ts +1 -0
  521. package/components/input/epoch/picker/.npmignore +2 -0
  522. package/components/input/epoch/picker/bundles/index.umd.js +192 -0
  523. package/components/input/epoch/picker/esm2022/index.mjs +5 -0
  524. package/components/input/epoch/picker/esm2022/picker.component.mjs +165 -0
  525. package/components/input/epoch/picker/esm2022/public_api.mjs +3 -0
  526. package/components/input/epoch/picker/fesm2022/index.mjs +172 -0
  527. package/components/input/epoch/picker/fesm2022/index.mjs.map +1 -0
  528. package/components/input/epoch/picker/index.d.ts +5 -0
  529. package/components/input/epoch/picker/package.json +20 -0
  530. package/components/input/epoch/picker/public_api.d.ts +2 -0
  531. package/components/input/epoch/time/.npmignore +2 -0
  532. package/components/input/epoch/time/bundles/index.umd.js +397 -0
  533. package/components/input/epoch/time/esm2022/index.mjs +5 -0
  534. package/components/input/epoch/time/esm2022/public_api.mjs +2 -0
  535. package/components/input/epoch/time/esm2022/time.component.mjs +348 -0
  536. package/components/input/epoch/{esm2022/time → time/esm2022}/time.props.mjs +1 -1
  537. package/components/input/epoch/time/fesm2022/index.mjs +387 -0
  538. package/components/input/epoch/time/fesm2022/index.mjs.map +1 -0
  539. package/components/input/epoch/time/index.d.ts +5 -0
  540. package/components/input/epoch/time/package.json +20 -0
  541. package/components/input/epoch/time/public_api.d.ts +1 -0
  542. package/components/input/epoch/time/time.component.d.ts +1 -1
  543. package/components/input/file-upload/bundles/index.umd.js +56 -348
  544. package/components/input/file-upload/esm2022/file-upload.component.mjs +20 -313
  545. package/components/input/file-upload/fesm2022/index.mjs +20 -312
  546. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  547. package/components/input/file-upload/package.json +0 -3
  548. package/components/input/number/.npmignore +2 -0
  549. package/components/input/number/bundles/index.umd.js +101 -0
  550. package/components/input/number/esm2022/index.mjs +5 -0
  551. package/components/input/number/esm2022/number.component.mjs +49 -0
  552. package/components/input/number/esm2022/number.props.mjs +35 -0
  553. package/components/input/number/esm2022/public_api.mjs +2 -0
  554. package/components/input/number/fesm2022/index.mjs +87 -0
  555. package/components/input/number/fesm2022/index.mjs.map +1 -0
  556. package/components/input/number/index.d.ts +5 -0
  557. package/components/input/{default/number → number}/number.component.d.ts +1 -1
  558. package/components/input/number/package.json +20 -0
  559. package/components/input/number/public_api.d.ts +1 -0
  560. package/components/input/radioset/.npmignore +2 -0
  561. package/components/input/radioset/bundles/index.umd.js +136 -0
  562. package/components/input/radioset/esm2022/index.mjs +5 -0
  563. package/components/input/radioset/esm2022/public_api.mjs +2 -0
  564. package/components/input/radioset/esm2022/radioset.component.mjs +84 -0
  565. package/components/input/radioset/esm2022/radioset.props.mjs +35 -0
  566. package/components/input/radioset/fesm2022/index.mjs +123 -0
  567. package/components/input/radioset/fesm2022/index.mjs.map +1 -0
  568. package/components/input/radioset/index.d.ts +5 -0
  569. package/components/input/radioset/package.json +20 -0
  570. package/components/input/radioset/public_api.d.ts +1 -0
  571. package/components/input/{default/radioset → radioset}/radioset.component.d.ts +1 -1
  572. package/components/input/rating/bundles/index.umd.js +49 -103
  573. package/components/input/rating/esm2022/rating.component.mjs +24 -79
  574. package/components/input/rating/fesm2022/index.mjs +25 -79
  575. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  576. package/components/input/rating/package.json +0 -3
  577. package/components/input/rating/rating.component.d.ts +1 -1
  578. package/components/input/select/.npmignore +2 -0
  579. package/components/input/select/bundles/index.umd.js +219 -0
  580. package/components/input/select/esm2022/index.mjs +5 -0
  581. package/components/input/select/esm2022/public_api.mjs +2 -0
  582. package/components/input/select/esm2022/select.component.mjs +166 -0
  583. package/components/input/select/esm2022/select.props.mjs +36 -0
  584. package/components/input/select/fesm2022/index.mjs +205 -0
  585. package/components/input/select/fesm2022/index.mjs.map +1 -0
  586. package/components/input/select/index.d.ts +5 -0
  587. package/components/input/select/package.json +20 -0
  588. package/components/input/select/public_api.d.ts +1 -0
  589. package/components/input/{default/select → select}/select.component.d.ts +1 -1
  590. package/components/input/slider/bundles/index.umd.js +44 -111
  591. package/components/input/slider/esm2022/slider.component.mjs +25 -95
  592. package/components/input/slider/esm2022/slider.props.mjs +1 -1
  593. package/components/input/slider/fesm2022/index.mjs +25 -93
  594. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  595. package/components/input/slider/package.json +0 -3
  596. package/components/input/slider/slider.component.d.ts +2 -2
  597. package/components/input/switch/.npmignore +2 -0
  598. package/components/input/switch/bundles/index.umd.js +204 -0
  599. package/components/input/switch/esm2022/index.mjs +5 -0
  600. package/components/input/switch/esm2022/public_api.mjs +2 -0
  601. package/components/input/switch/esm2022/switch.component.mjs +159 -0
  602. package/components/input/switch/esm2022/switch.props.mjs +28 -0
  603. package/components/input/switch/fesm2022/index.mjs +191 -0
  604. package/components/input/switch/fesm2022/index.mjs.map +1 -0
  605. package/components/input/switch/index.d.ts +5 -0
  606. package/components/input/switch/package.json +20 -0
  607. package/components/input/switch/public_api.d.ts +1 -0
  608. package/components/input/{default/switch → switch}/switch.component.d.ts +1 -1
  609. package/components/input/text/.npmignore +2 -0
  610. package/components/input/{default/text/base → text/base-input}/base-input.d.ts +1 -1
  611. package/components/input/text/bundles/index.umd.js +1070 -0
  612. package/components/input/text/esm2022/base-input/base-input.mjs +93 -0
  613. package/components/input/text/esm2022/index.mjs +5 -0
  614. package/components/input/text/esm2022/input-calendar/input-calendar.component.mjs +46 -0
  615. package/components/input/text/esm2022/input-calendar/input-calendar.props.mjs +30 -0
  616. package/components/input/text/esm2022/input-color/input-color.component.mjs +46 -0
  617. package/components/input/text/esm2022/input-color/input-color.props.mjs +27 -0
  618. package/components/input/text/esm2022/input-email/input-email.component.mjs +46 -0
  619. package/components/input/text/esm2022/input-email/input-email.props.mjs +29 -0
  620. package/components/input/text/esm2022/input-number/input-number.component.mjs +56 -0
  621. package/components/input/text/esm2022/input-number/input-number.props.mjs +32 -0
  622. package/components/input/text/esm2022/input-text/input-text.component.mjs +121 -0
  623. package/components/input/text/esm2022/input-text/input-text.props.mjs +46 -0
  624. package/components/input/text/esm2022/number-locale/number-locale.mjs +539 -0
  625. package/components/input/text/esm2022/public_api.mjs +8 -0
  626. package/components/input/text/fesm2022/index.mjs +1054 -0
  627. package/components/input/text/fesm2022/index.mjs.map +1 -0
  628. package/components/input/text/index.d.ts +5 -0
  629. package/components/input/{default/text/calendar → text/input-calendar}/input-calendar.component.d.ts +1 -1
  630. package/components/input/{default/text/color → text/input-color}/input-color.component.d.ts +1 -1
  631. package/components/input/{default/text/email → text/input-email}/input-email.component.d.ts +1 -1
  632. package/components/input/{default/text/number → text/input-number}/input-number.component.d.ts +1 -1
  633. package/components/input/{default/text/text → text/input-text}/input-text.component.d.ts +1 -1
  634. package/components/input/{default/text/locale → text/number-locale}/number-locale.d.ts +1 -1
  635. package/components/input/text/package.json +20 -0
  636. package/components/input/text/public_api.d.ts +7 -0
  637. package/components/input/textarea/.npmignore +2 -0
  638. package/components/input/textarea/bundles/index.umd.js +101 -0
  639. package/components/input/textarea/esm2022/index.mjs +5 -0
  640. package/components/input/textarea/esm2022/public_api.mjs +2 -0
  641. package/components/input/textarea/esm2022/textarea.component.mjs +53 -0
  642. package/components/input/textarea/esm2022/textarea.props.mjs +30 -0
  643. package/components/input/textarea/fesm2022/index.mjs +87 -0
  644. package/components/input/textarea/fesm2022/index.mjs.map +1 -0
  645. package/components/input/textarea/index.d.ts +5 -0
  646. package/components/input/textarea/package.json +20 -0
  647. package/components/input/textarea/public_api.d.ts +1 -0
  648. package/components/input/{default/textarea → textarea}/textarea.component.d.ts +1 -1
  649. package/components/navigation/breadcrumb/bundles/index.umd.js +37 -79
  650. package/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +20 -64
  651. package/components/navigation/breadcrumb/fesm2022/index.mjs +21 -64
  652. package/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  653. package/components/navigation/breadcrumb/package.json +0 -3
  654. package/components/navigation/menu/bundles/index.umd.js +247 -442
  655. package/components/navigation/menu/esm2022/menu-adapator.component.mjs +14 -19
  656. package/components/navigation/menu/esm2022/menu-dropdown/menu-dropdown.component.mjs +13 -29
  657. package/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +43 -100
  658. package/components/navigation/menu/esm2022/menu.component.mjs +53 -104
  659. package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +30 -37
  660. package/components/navigation/menu/esm2022/nav/nav.component.mjs +20 -88
  661. package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +14 -14
  662. package/components/navigation/menu/fesm2022/index.mjs +174 -369
  663. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  664. package/components/navigation/menu/menu-dropdown/menu-dropdown.component.d.ts +2 -3
  665. package/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +3 -3
  666. package/components/navigation/menu/package.json +0 -3
  667. package/components/navigation/navbar/bundles/index.umd.js +32 -83
  668. package/components/navigation/navbar/esm2022/navbar.component.mjs +20 -72
  669. package/components/navigation/navbar/fesm2022/index.mjs +20 -71
  670. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  671. package/components/navigation/navbar/package.json +0 -3
  672. package/components/navigation/popover/bundles/index.umd.js +31 -59
  673. package/components/navigation/popover/esm2022/popover.component.mjs +29 -58
  674. package/components/navigation/popover/fesm2022/index.mjs +31 -59
  675. package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  676. package/components/navigation/popover/package.json +0 -3
  677. package/components/page/default/bundles/index.umd.js +109 -123
  678. package/components/page/default/esm2022/content/content.component.mjs +16 -25
  679. package/components/page/default/esm2022/layout.directive.mjs +21 -21
  680. package/components/page/default/esm2022/page-content/page-content.component.mjs +16 -23
  681. package/components/page/default/esm2022/page.directive.mjs +21 -21
  682. package/components/page/default/esm2022/router-outlet.directive.mjs +20 -20
  683. package/components/page/default/esm2022/spa-page.directive.mjs +21 -21
  684. package/components/page/default/fesm2022/index.mjs +111 -125
  685. package/components/page/default/fesm2022/index.mjs.map +1 -1
  686. package/components/page/default/package.json +0 -3
  687. package/components/page/footer/bundles/index.umd.js +20 -20
  688. package/components/page/footer/esm2022/footer.directive.mjs +21 -21
  689. package/components/page/footer/fesm2022/index.mjs +21 -21
  690. package/components/page/footer/fesm2022/index.mjs.map +1 -1
  691. package/components/page/footer/package.json +0 -3
  692. package/components/page/header/bundles/index.umd.js +19 -26
  693. package/components/page/header/esm2022/header.component.mjs +16 -24
  694. package/components/page/header/fesm2022/index.mjs +17 -24
  695. package/components/page/header/fesm2022/index.mjs.map +1 -1
  696. package/components/page/header/package.json +0 -3
  697. package/components/page/left-panel/bundles/index.umd.js +30 -30
  698. package/components/page/left-panel/esm2022/left-panel.directive.mjs +31 -31
  699. package/components/page/left-panel/fesm2022/index.mjs +31 -31
  700. package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  701. package/components/page/left-panel/package.json +0 -3
  702. package/components/page/right-panel/bundles/index.umd.js +23 -23
  703. package/components/page/right-panel/esm2022/right-panel.directive.mjs +24 -24
  704. package/components/page/right-panel/fesm2022/index.mjs +24 -24
  705. package/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  706. package/components/page/right-panel/package.json +0 -3
  707. package/components/page/top-nav/bundles/index.umd.js +20 -20
  708. package/components/page/top-nav/esm2022/top-nav.directive.mjs +21 -21
  709. package/components/page/top-nav/fesm2022/index.mjs +21 -21
  710. package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  711. package/components/page/top-nav/package.json +0 -3
  712. package/components/prefab/bundles/index.umd.js +41 -41
  713. package/components/prefab/esm2022/prefab-container/prefab-container.directive.mjs +20 -20
  714. package/components/prefab/esm2022/prefab.directive.mjs +23 -23
  715. package/components/prefab/fesm2022/index.mjs +42 -42
  716. package/components/prefab/fesm2022/index.mjs.map +1 -1
  717. package/components/prefab/package.json +0 -3
  718. package/core/bundles/index.umd.js +80 -61
  719. package/core/esm2022/services/constant.service.mjs +7 -7
  720. package/core/esm2022/services/custom-icons-loader.service.mjs +7 -7
  721. package/core/esm2022/services/field-type.service.mjs +7 -7
  722. package/core/esm2022/services/field-widget.service.mjs +7 -7
  723. package/core/esm2022/services/pagination.service.mjs +7 -7
  724. package/core/esm2022/services/script-loader.service.mjs +7 -7
  725. package/core/esm2022/services/state-persistence.service.mjs +7 -7
  726. package/core/esm2022/services/user-custom-pipe-manager.service.mjs +7 -7
  727. package/core/esm2022/services/utils.service.mjs +7 -7
  728. package/core/esm2022/services/viewport.service.mjs +7 -7
  729. package/core/esm2022/types/types.mjs +1 -1
  730. package/core/esm2022/utils/build-utils.mjs +21 -2
  731. package/core/fesm2022/index.mjs +80 -61
  732. package/core/fesm2022/index.mjs.map +1 -1
  733. package/core/package.json +3 -6
  734. package/core/types/types.d.ts +2 -1
  735. package/http/bundles/index.umd.js +8 -8
  736. package/http/esm2022/http.service.mjs +9 -9
  737. package/http/fesm2022/index.mjs +8 -8
  738. package/http/fesm2022/index.mjs.map +1 -1
  739. package/http/package.json +2 -5
  740. package/locales/moment/ar-dz.js +8 -8
  741. package/locales/moment/ar-ly.js +8 -8
  742. package/locales/moment/ar-ps.js +123 -0
  743. package/locales/moment/ar.js +8 -8
  744. package/locales/moment/be.js +2 -2
  745. package/locales/moment/bs.js +14 -4
  746. package/locales/moment/ca.js +6 -6
  747. package/locales/moment/cs.js +5 -4
  748. package/locales/moment/cv.js +2 -2
  749. package/locales/moment/en-au.js +6 -6
  750. package/locales/moment/en-ca.js +6 -6
  751. package/locales/moment/en-gb.js +6 -6
  752. package/locales/moment/en-ie.js +6 -6
  753. package/locales/moment/en-il.js +6 -6
  754. package/locales/moment/en-in.js +6 -6
  755. package/locales/moment/en-nz.js +6 -6
  756. package/locales/moment/en-sg.js +6 -6
  757. package/locales/moment/it.js +4 -4
  758. package/locales/moment/ku-kmr.js +125 -0
  759. package/locales/moment/lt.js +2 -2
  760. package/locales/moment/me.js +2 -2
  761. package/locales/moment/nb.js +4 -4
  762. package/locales/moment/nl-be.js +1 -1
  763. package/locales/moment/nl.js +1 -1
  764. package/locales/moment/oc-lnc.js +6 -6
  765. package/locales/moment/ru.js +2 -2
  766. package/locales/moment/sv.js +6 -6
  767. package/locales/moment/tet.js +6 -6
  768. package/locales/moment/tlh.js +8 -8
  769. package/locales/moment/tzl.js +2 -2
  770. package/locales/moment/uk.js +4 -4
  771. package/locales/moment/x-pseudo.js +6 -6
  772. package/locales/moment-timezone/moment-timezone-with-data.js +2 -2
  773. package/npm-shrinkwrap.json +2 -2
  774. package/oAuth/bundles/index.umd.js +5 -5
  775. package/oAuth/esm2022/oAuth.service.mjs +6 -6
  776. package/oAuth/fesm2022/index.mjs +5 -5
  777. package/oAuth/fesm2022/index.mjs.map +1 -1
  778. package/oAuth/package.json +2 -5
  779. package/package-lock.json +2 -2
  780. package/package.json +1 -1
  781. package/runtime/base/bundles/index.umd.js +3162 -3100
  782. package/runtime/base/components/empty-component/empty-page.component.d.ts +1 -0
  783. package/runtime/base/esm2022/components/app-component/app.component.mjs +14 -95
  784. package/runtime/base/esm2022/components/app-spinner.component.mjs +34 -45
  785. package/runtime/base/esm2022/components/base-custom-widget.component.mjs +8 -7
  786. package/runtime/base/esm2022/components/base-layout.component.mjs +14 -21
  787. package/runtime/base/esm2022/components/base-page.component.mjs +12 -19
  788. package/runtime/base/esm2022/components/base-partial.component.mjs +9 -14
  789. package/runtime/base/esm2022/components/base-prefab.component.mjs +9 -14
  790. package/runtime/base/esm2022/components/base-spa-page.component.mjs +12 -19
  791. package/runtime/base/esm2022/components/custom-toaster.component.mjs +30 -52
  792. package/runtime/base/esm2022/components/empty-component/empty-page.component.mjs +33 -15
  793. package/runtime/base/esm2022/components/prefab-preview.component.mjs +19 -26
  794. package/runtime/base/esm2022/directives/accessroles.directive.mjs +17 -17
  795. package/runtime/base/esm2022/directives/prefab.directive.mjs +15 -15
  796. package/runtime/base/esm2022/guards/auth.guard.mjs +6 -6
  797. package/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +11 -11
  798. package/runtime/base/esm2022/guards/page-not-found.guard.mjs +6 -6
  799. package/runtime/base/esm2022/guards/role.guard.mjs +6 -6
  800. package/runtime/base/esm2022/overrides/wm_dom_renderer.mjs +12 -12
  801. package/runtime/base/esm2022/overrides/wm_shared_styles_host.mjs +14 -14
  802. package/runtime/base/esm2022/public_api.mjs +5 -2
  803. package/runtime/base/esm2022/resolves/app-before-load.resolve.mjs +22 -0
  804. package/runtime/base/esm2022/resolves/app-extension.resolve.mjs +6 -6
  805. package/runtime/base/esm2022/resolves/app-js.resolve.mjs +6 -6
  806. package/runtime/base/esm2022/resolves/app-variables.resolve.mjs +9 -9
  807. package/runtime/base/esm2022/resolves/i18n.resolve.mjs +6 -6
  808. package/runtime/base/esm2022/resolves/metadata.resolve.mjs +9 -9
  809. package/runtime/base/esm2022/resolves/security-config.resolve.mjs +9 -9
  810. package/runtime/base/esm2022/runtime-base.module.mjs +457 -316
  811. package/runtime/base/esm2022/services/app-defaults.service.mjs +6 -6
  812. package/runtime/base/esm2022/services/app.manager.service.mjs +25 -9
  813. package/runtime/base/esm2022/services/app.service.mjs +39 -18
  814. package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +6 -6
  815. package/runtime/base/esm2022/services/http-interceptor.services.mjs +6 -6
  816. package/runtime/base/esm2022/services/i18n.service.mjs +37 -34
  817. package/runtime/base/esm2022/services/navigation.service.mjs +6 -6
  818. package/runtime/base/esm2022/services/pipe-provider.service.mjs +13 -13
  819. package/runtime/base/esm2022/services/pipe.service.mjs +10 -8
  820. package/runtime/base/esm2022/services/prefab-manager.service.mjs +6 -6
  821. package/runtime/base/esm2022/services/spinner.service.mjs +6 -6
  822. package/runtime/base/esm2022/services/toaster.service.mjs +6 -6
  823. package/runtime/base/esm2022/util/fragment-monitor.mjs +6 -6
  824. package/runtime/base/esm2022/util/utils.mjs +15 -1
  825. package/runtime/base/esm2022/util/wm-route-reuse-strategy.mjs +1 -1
  826. package/runtime/base/fesm2022/index.mjs +3145 -3071
  827. package/runtime/base/fesm2022/index.mjs.map +1 -1
  828. package/runtime/base/package.json +2 -5
  829. package/runtime/base/public_api.d.ts +4 -1
  830. package/runtime/base/resolves/app-before-load.resolve.d.ts +11 -0
  831. package/runtime/base/runtime-base.module.d.ts +96 -59
  832. package/runtime/base/services/app.manager.service.d.ts +2 -1
  833. package/runtime/base/services/app.service.d.ts +3 -2
  834. package/runtime/base/services/i18n.service.d.ts +2 -1
  835. package/runtime/base/util/utils.d.ts +2 -1
  836. package/runtime/dynamic/app/app.config.d.ts +1 -1
  837. package/runtime/dynamic/app/services/app-variables-provider.service.d.ts +3 -1
  838. package/runtime/dynamic/bundles/index.umd.js +145 -114
  839. package/runtime/dynamic/esm2022/app/app.config.mjs +11 -10
  840. package/runtime/dynamic/esm2022/app/app.module.mjs +35 -5
  841. package/runtime/dynamic/esm2022/app/app.routes.mjs +2 -11
  842. package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +11 -16
  843. package/runtime/dynamic/esm2022/app/services/app-extension.service.mjs +9 -9
  844. package/runtime/dynamic/esm2022/app/services/app-js-provider.service.mjs +9 -9
  845. package/runtime/dynamic/esm2022/app/services/app-resource-manager.service.mjs +6 -6
  846. package/runtime/dynamic/esm2022/app/services/app-variables-provider.service.mjs +15 -11
  847. package/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +57 -8
  848. package/runtime/dynamic/esm2022/app/services/customwidget-config-provider.service.mjs +6 -6
  849. package/runtime/dynamic/esm2022/app/services/prefab-config-provider.service.mjs +6 -6
  850. package/runtime/dynamic/fesm2022/index.mjs +143 -88
  851. package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  852. package/runtime/dynamic/package.json +2 -5
  853. package/scripts/datatable/datatable.js +26 -5
  854. package/scripts/jquery-ui/ui/widgets/droppable.js +3 -3
  855. package/scripts/jquery-ui/ui/widgets/resizable.js +72 -19
  856. package/scripts/jquery-ui/ui/widgets/sortable.js +9 -16
  857. package/security/bundles/index.umd.js +5 -5
  858. package/security/esm2022/security.service.mjs +6 -6
  859. package/security/fesm2022/index.mjs +5 -5
  860. package/security/fesm2022/index.mjs.map +1 -1
  861. package/security/package.json +2 -5
  862. package/swipey/fesm2022/index.mjs.map +1 -1
  863. package/swipey/package.json +2 -5
  864. package/transpiler/build.d.ts +1 -1
  865. package/transpiler/bundles/index.umd.js +94 -56
  866. package/transpiler/esm2022/build.mjs +5 -2
  867. package/transpiler/esm2022/imports.mjs +92 -57
  868. package/transpiler/fesm2022/index.mjs +94 -56
  869. package/transpiler/fesm2022/index.mjs.map +1 -1
  870. package/transpiler/package.json +3 -6
  871. package/variables/bundles/index.umd.js +20 -10
  872. package/variables/constants/variables.constants.d.ts +9 -0
  873. package/variables/esm2022/constants/variables.constants.mjs +10 -1
  874. package/variables/esm2022/service/metadata-service/metadata.service.mjs +6 -6
  875. package/variables/esm2022/service/variables.service.mjs +6 -6
  876. package/variables/fesm2022/index.mjs +20 -11
  877. package/variables/fesm2022/index.mjs.map +1 -1
  878. package/variables/package.json +2 -5
  879. package/variables/service/variables.service.d.ts +1 -1
  880. package/build-task/esm2022/basic/default/anchor/anchor.build.mjs +0 -15
  881. package/build-task/esm2022/basic/default/audio/audio.build.mjs +0 -10
  882. package/build-task/esm2022/basic/default/html/html.build.mjs +0 -15
  883. package/build-task/esm2022/basic/default/icon/icon.build.mjs +0 -10
  884. package/build-task/esm2022/basic/default/iframe/iframe.build.mjs +0 -10
  885. package/build-task/esm2022/basic/default/label/label.build.mjs +0 -25
  886. package/build-task/esm2022/basic/default/picture/picture.build.mjs +0 -14
  887. package/build-task/esm2022/basic/default/spinner/spinner.build.mjs +0 -15
  888. package/build-task/esm2022/basic/default/video/video.build.mjs +0 -10
  889. package/components/base/components.module.d.ts +0 -25
  890. package/components/base/esm2022/components.module.mjs +0 -152
  891. package/components/basic/default/bundles/index.umd.js +0 -1036
  892. package/components/basic/default/esm2022/anchor/anchor.component.mjs +0 -198
  893. package/components/basic/default/esm2022/anchor/anchor.props.mjs +0 -27
  894. package/components/basic/default/esm2022/audio/audio.component.mjs +0 -59
  895. package/components/basic/default/esm2022/audio/audio.props.mjs +0 -19
  896. package/components/basic/default/esm2022/html/html.directive.mjs +0 -76
  897. package/components/basic/default/esm2022/html/html.props.mjs +0 -12
  898. package/components/basic/default/esm2022/icon/icon.component.mjs +0 -70
  899. package/components/basic/default/esm2022/icon/icon.props.mjs +0 -19
  900. package/components/basic/default/esm2022/iframe/iframe.component.mjs +0 -85
  901. package/components/basic/default/esm2022/iframe/iframe.props.mjs +0 -15
  902. package/components/basic/default/esm2022/label/label.directive.mjs +0 -71
  903. package/components/basic/default/esm2022/label/label.props.mjs +0 -17
  904. package/components/basic/default/esm2022/picture/picture.directive.mjs +0 -95
  905. package/components/basic/default/esm2022/picture/picture.props.mjs +0 -23
  906. package/components/basic/default/esm2022/public_api.mjs +0 -10
  907. package/components/basic/default/esm2022/spinner/spinner.component.mjs +0 -130
  908. package/components/basic/default/esm2022/spinner/spinner.props.mjs +0 -20
  909. package/components/basic/default/esm2022/video/video.component.mjs +0 -113
  910. package/components/basic/default/esm2022/video/video.props.mjs +0 -24
  911. package/components/basic/default/fesm2022/index.mjs +0 -1012
  912. package/components/basic/default/fesm2022/index.mjs.map +0 -1
  913. package/components/basic/default/public_api.d.ts +0 -9
  914. package/components/basic/progress/bundles/index.umd.js +0 -361
  915. package/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +0 -154
  916. package/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +0 -132
  917. package/components/basic/progress/esm2022/public_api.mjs +0 -3
  918. package/components/basic/progress/esm2022/utils.mjs +0 -25
  919. package/components/basic/progress/fesm2022/index.mjs +0 -344
  920. package/components/basic/progress/fesm2022/index.mjs.map +0 -1
  921. package/components/basic/progress/public_api.d.ts +0 -2
  922. package/components/input/default/bundles/index.umd.js +0 -3559
  923. package/components/input/default/esm2022/base-form-custom.component.mjs +0 -94
  924. package/components/input/default/esm2022/base-form.component.mjs +0 -110
  925. package/components/input/default/esm2022/button/button.component.mjs +0 -106
  926. package/components/input/default/esm2022/button/button.props.mjs +0 -26
  927. package/components/input/default/esm2022/button-group/button-group.directive.mjs +0 -51
  928. package/components/input/default/esm2022/button-group/button-group.props.mjs +0 -10
  929. package/components/input/default/esm2022/caption-position.directive.mjs +0 -172
  930. package/components/input/default/esm2022/checkbox/checkbox.component.mjs +0 -179
  931. package/components/input/default/esm2022/checkbox/checkbox.props.mjs +0 -27
  932. package/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +0 -268
  933. package/components/input/default/esm2022/checkboxset/checkboxset.props.mjs +0 -35
  934. package/components/input/default/esm2022/composite/composite.directive.mjs +0 -84
  935. package/components/input/default/esm2022/composite/composite.props.mjs +0 -10
  936. package/components/input/default/esm2022/dataset-aware-form.component.mjs +0 -307
  937. package/components/input/default/esm2022/number/number.component.mjs +0 -68
  938. package/components/input/default/esm2022/number/number.props.mjs +0 -35
  939. package/components/input/default/esm2022/public_api.mjs +0 -21
  940. package/components/input/default/esm2022/radioset/radioset.component.mjs +0 -251
  941. package/components/input/default/esm2022/radioset/radioset.props.mjs +0 -35
  942. package/components/input/default/esm2022/select/select.component.mjs +0 -230
  943. package/components/input/default/esm2022/select/select.props.mjs +0 -36
  944. package/components/input/default/esm2022/switch/switch.component.mjs +0 -227
  945. package/components/input/default/esm2022/switch/switch.props.mjs +0 -28
  946. package/components/input/default/esm2022/text/base/base-input.mjs +0 -93
  947. package/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +0 -69
  948. package/components/input/default/esm2022/text/calendar/input-calendar.props.mjs +0 -30
  949. package/components/input/default/esm2022/text/color/input-color.component.mjs +0 -69
  950. package/components/input/default/esm2022/text/color/input-color.props.mjs +0 -27
  951. package/components/input/default/esm2022/text/email/input-email.component.mjs +0 -68
  952. package/components/input/default/esm2022/text/email/input-email.props.mjs +0 -29
  953. package/components/input/default/esm2022/text/locale/number-locale.mjs +0 -539
  954. package/components/input/default/esm2022/text/number/input-number.component.mjs +0 -79
  955. package/components/input/default/esm2022/text/number/input-number.props.mjs +0 -32
  956. package/components/input/default/esm2022/text/text/input-text.component.mjs +0 -145
  957. package/components/input/default/esm2022/text/text/input-text.props.mjs +0 -46
  958. package/components/input/default/esm2022/textarea/textarea.component.mjs +0 -85
  959. package/components/input/default/esm2022/textarea/textarea.props.mjs +0 -30
  960. package/components/input/default/fesm2022/index.mjs +0 -3529
  961. package/components/input/default/fesm2022/index.mjs.map +0 -1
  962. package/components/input/default/public_api.d.ts +0 -20
  963. package/components/input/epoch/bundles/index.umd.js +0 -3292
  964. package/components/input/epoch/esm2022/date/date.component.mjs +0 -376
  965. package/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +0 -473
  966. package/components/input/epoch/esm2022/date-time/date-time.component.mjs +0 -563
  967. package/components/input/epoch/esm2022/picker/picker.component.mjs +0 -184
  968. package/components/input/epoch/esm2022/public_api.mjs +0 -6
  969. package/components/input/epoch/esm2022/time/time.component.mjs +0 -432
  970. package/components/input/epoch/fesm2022/index.mjs +0 -3280
  971. package/components/input/epoch/fesm2022/index.mjs.map +0 -1
  972. package/components/input/epoch/public_api.d.ts +0 -5
  973. /package/build-task/basic/{default/anchor → anchor}/anchor.build.d.ts +0 -0
  974. /package/build-task/basic/{default/audio → audio}/audio.build.d.ts +0 -0
  975. /package/build-task/basic/{default/html → html}/html.build.d.ts +0 -0
  976. /package/build-task/basic/{default/icon → icon}/icon.build.d.ts +0 -0
  977. /package/build-task/basic/{default/iframe → iframe}/iframe.build.d.ts +0 -0
  978. /package/build-task/basic/{default/label → label}/label.build.d.ts +0 -0
  979. /package/build-task/basic/{default/picture → picture}/picture.build.d.ts +0 -0
  980. /package/build-task/basic/{default/spinner → spinner}/spinner.build.d.ts +0 -0
  981. /package/build-task/basic/{default/video → video}/video.build.d.ts +0 -0
  982. /package/components/basic/{default → anchor}/.npmignore +0 -0
  983. /package/components/basic/{default/anchor → anchor}/anchor.component.d.ts +0 -0
  984. /package/components/basic/{default/anchor → anchor}/anchor.props.d.ts +0 -0
  985. /package/components/basic/{progress → audio}/.npmignore +0 -0
  986. /package/components/basic/{default/audio → audio}/audio.component.d.ts +0 -0
  987. /package/components/basic/{default/audio → audio}/audio.props.d.ts +0 -0
  988. /package/components/{input/default → basic/html}/.npmignore +0 -0
  989. /package/components/basic/{default/html → html}/html.directive.d.ts +0 -0
  990. /package/components/basic/{default/html → html}/html.props.d.ts +0 -0
  991. /package/components/{input/epoch → basic/icon}/.npmignore +0 -0
  992. /package/components/basic/{default/icon → icon}/icon.component.d.ts +0 -0
  993. /package/components/basic/{default/icon → icon}/icon.props.d.ts +0 -0
  994. /package/components/basic/{default/iframe → iframe}/iframe.component.d.ts +0 -0
  995. /package/components/basic/{default/iframe → iframe}/iframe.props.d.ts +0 -0
  996. /package/components/basic/{default/label → label}/label.props.d.ts +0 -0
  997. /package/components/basic/{default/picture → picture}/picture.directive.d.ts +0 -0
  998. /package/components/basic/{default/picture → picture}/picture.props.d.ts +0 -0
  999. /package/components/basic/progress/{utils.d.ts → progress-utils/progress-utils.d.ts} +0 -0
  1000. /package/components/basic/{default/spinner → spinner}/spinner.component.d.ts +0 -0
  1001. /package/components/basic/{default/spinner → spinner}/spinner.props.d.ts +0 -0
  1002. /package/components/basic/{default/video → video}/video.component.d.ts +0 -0
  1003. /package/components/basic/{default/video → video}/video.props.d.ts +0 -0
  1004. /package/components/input/{default → base-form}/base-form.component.d.ts +0 -0
  1005. /package/components/input/{default/button → button}/button.component.d.ts +0 -0
  1006. /package/components/input/{default/button → button}/button.props.d.ts +0 -0
  1007. /package/components/input/{default/button-group → button-group}/button-group.directive.d.ts +0 -0
  1008. /package/components/input/{default/button-group → button-group}/button-group.props.d.ts +0 -0
  1009. /package/components/input/{default → caption-position}/caption-position.directive.d.ts +0 -0
  1010. /package/components/input/{default/checkbox → checkbox}/checkbox.props.d.ts +0 -0
  1011. /package/components/input/{default/checkboxset → checkboxset}/checkboxset.props.d.ts +0 -0
  1012. /package/components/input/{default/composite → composite}/composite.directive.d.ts +0 -0
  1013. /package/components/input/{default/composite → composite}/composite.props.d.ts +0 -0
  1014. /package/components/input/epoch/{date-time → date-time-picker}/date-time-picker.component.d.ts +0 -0
  1015. /package/components/input/{default/number → number}/number.props.d.ts +0 -0
  1016. /package/components/input/{default/radioset → radioset}/radioset.props.d.ts +0 -0
  1017. /package/components/input/{default/select → select}/select.props.d.ts +0 -0
  1018. /package/components/input/{default/switch → switch}/switch.props.d.ts +0 -0
  1019. /package/components/input/{default/text/calendar → text/input-calendar}/input-calendar.props.d.ts +0 -0
  1020. /package/components/input/{default/text/color → text/input-color}/input-color.props.d.ts +0 -0
  1021. /package/components/input/{default/text/email → text/input-email}/input-email.props.d.ts +0 -0
  1022. /package/components/input/{default/text/number → text/input-number}/input-number.props.d.ts +0 -0
  1023. /package/components/input/{default/text/text → text/input-text}/input-text.props.d.ts +0 -0
  1024. /package/components/input/{default/textarea → textarea}/textarea.props.d.ts +0 -0
@@ -1,432 +0,0 @@
1
- import { WmComponentsModule } from "@wm/components/base";
2
- import { FormsModule } from '@angular/forms';
3
- import { DateTimePickerComponent } from '../date-time/date-time-picker.component';
4
- import { CommonModule } from '@angular/common';
5
- import { Component, Inject, Injector, NgZone, Optional } from '@angular/core';
6
- import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
7
- import { TimepickerConfig, TimepickerModule } from 'ngx-bootstrap/timepicker';
8
- import { $appDigest, AbstractI18nService, addClass, addEventListenerOnElement, adjustContainerPosition, App, AppDefaults, FormWidgetType, getDisplayDateTimeFormat, getFormattedDate, getMomentLocaleObject, getNativeDateObject } from '@wm/core';
9
- import { provideAs, provideAsWidgetRef, styler } from '@wm/components/base';
10
- import { BaseDateTimeComponent, getTimepickerConfig } from './../base-date-time.component';
11
- import { registerProps } from './time.props';
12
- import { forEach, get, includes } from "lodash-es";
13
- import { BsDropdownModule } from "ngx-bootstrap/dropdown";
14
- import * as momentLib from 'moment';
15
- import * as i0 from "@angular/core";
16
- import * as i1 from "@wm/core";
17
- import * as i2 from "@angular/forms";
18
- import * as i3 from "ngx-bootstrap/dropdown";
19
- import * as i4 from "ngx-bootstrap/timepicker";
20
- import * as i5 from "@angular/common";
21
- const _c0 = ["wmTime", ""];
22
- const _c1 = () => ({ standalone: true });
23
- const _c2 = a0 => ({ "showbuttons": a0 });
24
- const _c3 = a0 => ({ "active btn-secondary": a0 });
25
- function TimeComponent_div_5_Conditional_2_Template(rf, ctx) { if (rf & 1) {
26
- const _r3 = i0.ɵɵgetCurrentView();
27
- i0.ɵɵelementStart(0, "div", 8)(1, "button", 9);
28
- i0.ɵɵlistener("click", function TimeComponent_div_5_Conditional_2_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setPeriod("AM")); });
29
- i0.ɵɵtext(2);
30
- i0.ɵɵelementEnd();
31
- i0.ɵɵelement(3, "br");
32
- i0.ɵɵelementStart(4, "button", 10);
33
- i0.ɵɵlistener("click", function TimeComponent_div_5_Conditional_2_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setPeriod("PM")); });
34
- i0.ɵɵtext(5);
35
- i0.ɵɵelementEnd()();
36
- } if (rf & 2) {
37
- const ctx_r1 = i0.ɵɵnextContext(2);
38
- i0.ɵɵadvance();
39
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c3, ctx_r1.getPeriod() === "AM"));
40
- i0.ɵɵadvance();
41
- i0.ɵɵtextInterpolate(ctx_r1.appLocale.LABEL_AM || "AM");
42
- i0.ɵɵadvance(2);
43
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(6, _c3, ctx_r1.getPeriod() === "PM"));
44
- i0.ɵɵadvance();
45
- i0.ɵɵtextInterpolate(ctx_r1.appLocale.LABEL_PM || "PM");
46
- } }
47
- function TimeComponent_div_5_Template(rf, ctx) { if (rf & 1) {
48
- const _r1 = i0.ɵɵgetCurrentView();
49
- i0.ɵɵelementStart(0, "div", 6);
50
- i0.ɵɵlistener("click", function TimeComponent_div_5_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.preventTpClose($event)); });
51
- i0.ɵɵelementStart(1, "timepicker", 7);
52
- i0.ɵɵtwoWayListener("ngModelChange", function TimeComponent_div_5_Template_timepicker_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.bsTimeValue, $event) || (ctx_r1.bsTimeValue = $event); return i0.ɵɵresetView($event); });
53
- i0.ɵɵlistener("isValid", function TimeComponent_div_5_Template_timepicker_isValid_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.isValid($event)); })("ngModelChange", function TimeComponent_div_5_Template_timepicker_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onTimeChange($event)); });
54
- i0.ɵɵelementEnd();
55
- i0.ɵɵtemplate(2, TimeComponent_div_5_Conditional_2_Template, 6, 8, "div", 8);
56
- i0.ɵɵelementEnd();
57
- } if (rf & 2) {
58
- const ctx_r1 = i0.ɵɵnextContext();
59
- i0.ɵɵadvance();
60
- i0.ɵɵproperty("showMeridian", ctx_r1.ismeridian)("readonlyInput", ctx_r1.isDisabled);
61
- i0.ɵɵtwoWayProperty("ngModel", ctx_r1.bsTimeValue);
62
- i0.ɵɵproperty("ngModelOptions", i0.ɵɵpureFunction0(15, _c1))("disabled", ctx_r1.disabled || ctx_r1.readonly || ctx_r1.isCurrentTime)("min", ctx_r1.minTime)("max", ctx_r1.maxTime)("hourStep", ctx_r1.hourstep)("minuteStep", ctx_r1.minutestep)("secondsStep", ctx_r1.secondsstep)("mousewheel", true)("arrowkeys", true)("showSeconds", ctx_r1.showseconds)("ngClass", i0.ɵɵpureFunction1(16, _c2, ctx_r1.showampmbuttons));
63
- i0.ɵɵadvance();
64
- i0.ɵɵconditional(ctx_r1.ismeridian && ctx_r1.showampmbuttons ? 2 : -1);
65
- } }
66
- function TimeComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
67
- const _r4 = i0.ɵɵgetCurrentView();
68
- i0.ɵɵelementStart(0, "wm-datetimepicker", 11);
69
- i0.ɵɵlistener("change", function TimeComponent_Conditional_6_Template_wm_datetimepicker_change_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onTimeChange($event)); });
70
- i0.ɵɵelementEnd();
71
- i0.ɵɵelementStart(1, "div", 12);
72
- i0.ɵɵlistener("click", function TimeComponent_Conditional_6_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(!(ctx_r1.disabled || ctx_r1.readonly) && ctx_r1.showDatePickerModal(ctx_r1.bsTimeValue)); })("focus", function TimeComponent_Conditional_6_Template_div_focus_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); ctx_r1.onDateTimeInputFocus(true); ctx_r1.invokeOnFocus($event); return i0.ɵɵresetView(ctx_r1.assignModel()); })("blur", function TimeComponent_Conditional_6_Template_div_blur_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); ctx_r1.onDateTimeInputBlur(); return i0.ɵɵresetView(ctx_r1.invokeOnTouched($event)); });
73
- i0.ɵɵelementEnd();
74
- } if (rf & 2) {
75
- const ctx_r1 = i0.ɵɵnextContext();
76
- i0.ɵɵproperty("minTime", ctx_r1.minTime)("maxTime", ctx_r1.maxTime)("placement", ctx_r1.modal)("displayFormat", ctx_r1.timepattern)("value", ctx_r1.bsTimeValue);
77
- i0.ɵɵadvance();
78
- i0.ɵɵattribute("aria-label", ctx_r1.displayValue ? "Change time " + ctx_r1.displayValue : ctx_r1.arialabel || "Select time");
79
- } }
80
- const moment = momentLib.default || window['moment'];
81
- const CURRENT_TIME = 'CURRENT_TIME';
82
- const DEFAULT_CLS = 'input-group app-timeinput';
83
- const WIDGET_CONFIG = { widgetType: 'wm-time', hostClass: DEFAULT_CLS };
84
- export class TimeComponent extends BaseDateTimeComponent {
85
- static { this.initializeProps = registerProps(); }
86
- get timestamp() {
87
- return this.bsTimeValue ? this.bsTimeValue.valueOf() : undefined;
88
- }
89
- // @ts-ignore
90
- get datavalue() {
91
- if (this.isCurrentTime && !this.bsTimeValue) {
92
- return CURRENT_TIME;
93
- }
94
- return getFormattedDate(this.datePipe, this.bsTimeValue, this.outputformat, this.timeZone, null, null, this) || '';
95
- }
96
- /**Todo[Shubham]: needs to be redefined
97
- * This property sets the default value for the time selection
98
- */
99
- // @ts-ignore
100
- set datavalue(newVal) {
101
- if (newVal) {
102
- if (newVal === CURRENT_TIME) {
103
- this.isCurrentTime = true;
104
- this.setTimeInterval();
105
- }
106
- else {
107
- this.clearTimeInterval();
108
- this.bsTimeValue = getNativeDateObject(newVal, { pattern: this.loadNativeDateInput ? this.outputformat : undefined, isNativePicker: this.loadNativeDateInput });
109
- this.isCurrentTime = false;
110
- this.mintimeMaxtimeValidation();
111
- }
112
- }
113
- else {
114
- this.bsTimeValue = undefined;
115
- this.clearTimeInterval();
116
- this.isCurrentTime = false;
117
- }
118
- this.invokeOnChange(this.datavalue);
119
- $appDigest();
120
- }
121
- get displayValue() {
122
- const display = getFormattedDate(this.datePipe, this.bsTimeValue, this.timepattern, this.timeZone, null, null, this) || '';
123
- return this.safeReplaceMeridians(display);
124
- }
125
- get nativeDisplayValue() {
126
- return getFormattedDate(this.datePipe, this.bsTimeValue, 'HH:mm:ss', this.timeZone, null, null, this) || '';
127
- }
128
- constructor(inj, ngZone, appDefaults, app, explicitContext) {
129
- super(inj, WIDGET_CONFIG, explicitContext);
130
- this.ngZone = ngZone;
131
- this.appDefaults = appDefaults;
132
- /**
133
- * This is an internal property used to toggle the timepicker dropdown
134
- */
135
- this.status = { isopen: false };
136
- styler(this.nativeElement, this);
137
- /**
138
- * Destroy the timer once the date widget is gone
139
- */
140
- this.registerDestroyListener(() => this.clearTimeInterval());
141
- this.timepattern = this.appDefaults.timeFormat || getDisplayDateTimeFormat(FormWidgetType.TIME);
142
- this.updateFormat('timepattern');
143
- this.app = app;
144
- }
145
- onPropertyChange(key, nv, ov) {
146
- if (key === 'tabindex') {
147
- return;
148
- }
149
- if (key === 'timepattern') {
150
- this.updateFormat('timepattern');
151
- }
152
- if (key === 'mintime') {
153
- this.minTime = getNativeDateObject(nv, { pattern: this.loadNativeDateInput ? this.outputformat : undefined, isNativePicker: this.loadNativeDateInput }); // TODO it is supposed to be time conversion, not to the day
154
- this.mintimeMaxtimeValidation();
155
- }
156
- else if (key === 'maxtime') {
157
- this.maxTime = getNativeDateObject(nv, { pattern: this.loadNativeDateInput ? this.outputformat : undefined, isNativePicker: this.loadNativeDateInput });
158
- this.mintimeMaxtimeValidation();
159
- }
160
- else {
161
- super.onPropertyChange(key, nv, ov);
162
- }
163
- }
164
- setValidateType(min, max, val) {
165
- if (this.timeNotInRange) {
166
- if (val < min) {
167
- this.validateType = 'mintime';
168
- }
169
- else if (val > max) {
170
- this.validateType = 'maxtime';
171
- }
172
- }
173
- }
174
- /**
175
- * This is an internal method used to validate mintime and maxtime
176
- */
177
- mintimeMaxtimeValidation() {
178
- this.timeNotInRange = this.minTime && this.maxTime && (this.bsTimeValue < this.minTime || this.bsTimeValue > this.maxTime);
179
- this.setValidateType(this.minTime, this.maxTime, this.bsTimeValue);
180
- this.invokeOnChange(this.datavalue, undefined, false);
181
- }
182
- /**
183
- * This is an internal method used to toggle the dropdown of the time widget
184
- */
185
- toggleDropdown($event, skipFocus = false) {
186
- if (this.loadNativeDateInput) {
187
- //Fixes click event getting triggred twice in Mobile devices.
188
- if (!skipFocus) {
189
- this.onDateTimeInputFocus();
190
- }
191
- return;
192
- }
193
- if ($event.type === 'click') {
194
- this.invokeEventCallback('click', { $event: $event });
195
- //this.focusOnInputEl();
196
- }
197
- if ($event.target && $($event.target).is('input') && !(this.isDropDownDisplayEnabledOnInput(this.showdropdownon))) {
198
- return;
199
- }
200
- this.ngZone.run(() => {
201
- this.status.isopen = !this.status.isopen;
202
- });
203
- this.addBodyClickListener(this.status.isopen);
204
- }
205
- /**
206
- * This is an internal method used to Prevent time picker close while changing time value
207
- */
208
- preventTpClose($event) {
209
- $event.stopImmediatePropagation();
210
- const parentEl = $(this.nativeElement).closest('.app-composite-widget.caption-floating');
211
- if (parentEl.length > 0) {
212
- this.app.notify('captionPositionAnimate', { displayVal: this.displayValue, nativeEl: parentEl });
213
- }
214
- }
215
- addBodyClickListener(skipListener) {
216
- if (!skipListener) {
217
- return;
218
- }
219
- const bodyElement = document.querySelector('body');
220
- setTimeout(() => {
221
- const dropdownElement = $(bodyElement).find('>bs-dropdown-container .dropdown-menu').get(0);
222
- this.deregisterEventListener = addEventListenerOnElement(bodyElement, dropdownElement, this.nativeElement, 'click', this.isDropDownDisplayEnabledOnInput(this.showdropdownon), () => {
223
- this.status.isopen = false;
224
- }, 0 /* EVENT_LIFE.ONCE */, true);
225
- }, 350);
226
- }
227
- /**
228
- * This is an internal method triggered when pressing key on the time input
229
- */
230
- onDisplayKeydown(event) {
231
- if (this.isDropDownDisplayEnabledOnInput(this.showdropdownon)) {
232
- event.stopPropagation();
233
- if (event.key === 'Enter' || event.key === 'ArrowDown') {
234
- event.preventDefault();
235
- this.toggleDropdown(event);
236
- }
237
- else {
238
- this.hideTimepickerDropdown();
239
- }
240
- }
241
- else {
242
- this.hideTimepickerDropdown();
243
- }
244
- }
245
- /**
246
- * This is an internal method triggered when the time input changes
247
- */
248
- onDisplayTimeChange($event) {
249
- const newVal = getNativeDateObject($event.target.value?.replace(this.am, this.meridians[0])?.replace(this.pm, this.meridians[1]), { meridians: this.meridians, pattern: this.loadNativeDateInput ? this.outputformat : undefined, isNativePicker: this.loadNativeDateInput });
250
- // time pattern validation
251
- // if invalid pattern is entered, device is showing an error.
252
- if (!this.formatValidation(newVal, $event.target.value)) {
253
- return;
254
- }
255
- this.invalidDateTimeFormat = false;
256
- this.onTimeChange(newVal);
257
- }
258
- onInputBlur($event) {
259
- if (!$($event.relatedTarget).hasClass('bs-timepicker-field')) {
260
- this.invokeOnTouched();
261
- this.invokeEventCallback('blur', { $event });
262
- }
263
- }
264
- /**
265
- * This is an internal method used to execute the on time change functionality
266
- */
267
- onTimeChange(newVal, isNativePicker) {
268
- let timeValue, timeInputValue, minTimeMeridian, maxTimeMeridian;
269
- // For nativePicker, newVal is event, get the dateobject from the event.
270
- if (isNativePicker) {
271
- newVal = getNativeDateObject(newVal.target.value, { pattern: this.loadNativeDateInput ? this.outputformat : undefined, isNativePicker: this.loadNativeDateInput });
272
- }
273
- if (newVal) {
274
- // if the newVal is valid but not in the given range then highlight the input field
275
- this.timeNotInRange = this.minTime && this.maxTime && (newVal < this.minTime || newVal > this.maxTime);
276
- this.setValidateType(this.minTime, this.maxTime, newVal);
277
- if (!this.timeNotInRange) {
278
- this.bsTimeValue = newVal;
279
- }
280
- } // sometimes library is not returning the correct value when the min and max time are given, displaying the datavalue based on the value given by the user
281
- else if (this.bsTimePicker && this.bsTimePicker.min && this.bsTimePicker.max) {
282
- minTimeMeridian = moment(new Date(this.bsTimePicker.min)).format('A');
283
- maxTimeMeridian = moment(new Date(this.bsTimePicker.max)).format('A');
284
- timeValue = this.bsTimePicker.hours + ':' + (this.bsTimePicker.minutes || 0) + ':' + (this.bsTimePicker.seconds || 0) + (this.bsTimePicker.showMeridian ? (' ' + minTimeMeridian) : '');
285
- timeInputValue = getNativeDateObject(timeValue, { pattern: this.loadNativeDateInput ? this.outputformat : undefined, isNativePicker: this.loadNativeDateInput });
286
- this.bsTimePicker.meridian = minTimeMeridian?.replace(this.meridians[0], this.am)?.replace(this.meridians[1], this.pm);
287
- this.timeNotInRange = this.bsTimePicker.min > timeInputValue || this.bsTimePicker.max < timeInputValue;
288
- if (this.timeNotInRange || this.invalidDateTimeFormat) {
289
- this.bsTimeValue = this.getPrevDataValue();
290
- setTimeout(() => {
291
- const timeStr = getFormattedDate(this.datePipe, timeValue, this.timepattern, this.timeZone, null, null, this) || '';
292
- $(this.nativeElement).find('.display-input').val(this.safeReplaceMeridians(timeStr));
293
- });
294
- }
295
- this.setValidateType(this.bsTimePicker.min, this.bsTimePicker.max, timeInputValue);
296
- if (!this.timeNotInRange) {
297
- this.bsTimeValue = timeInputValue;
298
- }
299
- }
300
- // Update UI display if value hasn't changed
301
- if (!this.timeNotInRange && this.datavalue === this.getPrevDataValue()) {
302
- const displayTime = getFormattedDate(this.datePipe, this.datavalue, this.timepattern, this.timeZone, null, null, this) || '';
303
- $(this.nativeElement).find('.display-input').val(this.safeReplaceMeridians(displayTime));
304
- }
305
- this.invokeOnTouched();
306
- this.invokeOnChange(this.datavalue, {}, true);
307
- }
308
- /**
309
- * This is an internal method used to maintain a time interval to update the time model when the data value is set to CURRENT_TIME
310
- */
311
- setTimeInterval() {
312
- if (this.timeinterval) {
313
- return;
314
- }
315
- this.timeinterval = setInterval(() => {
316
- const now = this.timeZone ? getMomentLocaleObject(this.timeZone) : new Date();
317
- now.setSeconds(now.getSeconds() + 1);
318
- this.datavalue = CURRENT_TIME;
319
- this.onTimeChange(now);
320
- }, 1000);
321
- }
322
- /**
323
- * This is an internal method used to clear the time interval created
324
- */
325
- clearTimeInterval() {
326
- if (this.timeinterval) {
327
- clearInterval(this.timeinterval);
328
- this.timeinterval = null;
329
- }
330
- }
331
- /**
332
- * This function sets the value isOpen/isTimeOpen (i.e when datepicker popup is closed) based on widget type(i.e DateTime, Time)
333
- * @param val - isOpen/isTimeOpen is set based on the timepicker popup is open/closed
334
- */
335
- setIsTimeOpen(val) {
336
- this.status.isopen = val;
337
- }
338
- // Change event is registered from the template, Prevent the framework from registering one more event
339
- handleEvent(node, eventName, eventCallback, locals) {
340
- if (!includes(['blur', 'focus', 'change', 'click'], eventName)) {
341
- super.handleEvent(node, eventName, eventCallback, locals);
342
- }
343
- }
344
- hideTimepickerDropdown() {
345
- this.invokeOnTouched();
346
- this.status.isopen = false;
347
- if (this.deregisterEventListener) {
348
- this.deregisterEventListener();
349
- }
350
- this.removeKeyupListener();
351
- const parentEl = $(this.nativeElement).closest('.app-composite-widget.caption-floating');
352
- if (parentEl.length > 0) {
353
- this.app.notify('captionPositionAnimate', { displayVal: this.displayValue, nativeEl: parentEl });
354
- }
355
- this.blurDateInput(true);
356
- }
357
- isValid(event) {
358
- if (!event) {
359
- const enteredDate = $(this.nativeElement).find('input').val()?.replace(this.am, this.meridians[0])?.replace(this.pm, this.meridians[1]);
360
- const newVal = getNativeDateObject(enteredDate, { meridians: this.meridians, pattern: this.loadNativeDateInput ? this.outputformat : undefined, isNativePicker: this.loadNativeDateInput });
361
- if (!this.formatValidation(newVal, enteredDate)) {
362
- return;
363
- }
364
- }
365
- }
366
- /**
367
- * This is an internal method to add css class for dropdown while opening the time dropdown
368
- */
369
- onShown() {
370
- const tpElements = document.querySelectorAll('timepicker');
371
- forEach(tpElements, element => {
372
- addClass(element.parentElement, 'app-datetime', true);
373
- });
374
- if (this.bsDropdown && (this.timeNotInRange || this.invalidDateTimeFormat)) {
375
- this.bsTimeValue = null;
376
- }
377
- this.focusTimePickerPopover(this);
378
- this.bindTimePickerKeyboardEvents();
379
- adjustContainerPosition($('bs-dropdown-container'), this.nativeElement, this.bsDropdown._dropdown, $('bs-dropdown-container .dropdown-menu'));
380
- }
381
- assignModel() {
382
- if (!this.displayInputElem) {
383
- this.displayInputElem = this.getMobileInput();
384
- }
385
- this.displayInputElem.value = get(this, 'nativeDisplayValue');
386
- }
387
- static { this.ɵfac = function TimeComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TimeComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.AppDefaults), i0.ɵɵdirectiveInject(i1.App), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
388
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TimeComponent, selectors: [["", "wmTime", ""]], standalone: true, features: [i0.ɵɵProvidersFeature([
389
- provideAs(TimeComponent, NG_VALUE_ACCESSOR, true),
390
- provideAs(TimeComponent, NG_VALIDATORS, true),
391
- provideAsWidgetRef(TimeComponent),
392
- { provide: TimepickerConfig, deps: [AbstractI18nService], useFactory: getTimepickerConfig }
393
- ]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], attrs: _c0, decls: 7, vars: 16, consts: [["dropdown", "", 2, "display", "inherit", 3, "onShown", "onHidden", "isOpen", "container"], ["focus-target", "", "type", "text", "role", "timer", 1, "form-control", "app-textbox", "display-input", 3, "click", "focus", "blur", "change", "keydown", "tabindex", "name", "value", "disabled", "autofocus", "required", "readOnly"], [1, "input-group-btn", "dropdown-toggle"], ["type", "button", "aria-label", "Select time", "aria-haspopup", "true", "aria-expanded", "false", 1, "btn", "btn-default", "btn-date", 3, "click", "tabindex", "disabled"], ["aria-hidden", "true", 1, "app-icon", "wm-sl-l", "sl-time"], ["class", "dropdown-menu", 3, "click", 4, "dropdownMenu"], [1, "dropdown-menu", 3, "click"], [1, "model-holder", 3, "ngModelChange", "isValid", "showMeridian", "readonlyInput", "ngModel", "ngModelOptions", "disabled", "min", "max", "hourStep", "minuteStep", "secondsStep", "mousewheel", "arrowkeys", "showSeconds", "ngClass"], [1, "ampm-toggle", "text-center"], [1, "meridian-btn", "mb-1", 3, "click", "ngClass"], [1, "meridian-btn", 3, "click", "ngClass"], ["dateTimePicker", "", "mode", "TIME", 3, "change", "minTime", "maxTime", "placement", "displayFormat", "value"], ["tabindex", "1000000", "role", "button", 1, "mobile-input", "mobile-datepicker-container", 3, "click", "focus", "blur"]], template: function TimeComponent_Template(rf, ctx) { if (rf & 1) {
394
- i0.ɵɵelementStart(0, "div", 0);
395
- i0.ɵɵlistener("onShown", function TimeComponent_Template_div_onShown_0_listener() { return ctx.onShown(); })("onHidden", function TimeComponent_Template_div_onHidden_0_listener() { return ctx.hideTimepickerDropdown(); });
396
- i0.ɵɵelementStart(1, "input", 1);
397
- i0.ɵɵlistener("click", function TimeComponent_Template_input_click_1_listener($event) { return ctx.toggleDropdown($event, true); })("focus", function TimeComponent_Template_input_focus_1_listener($event) { ctx.onDateTimeInputFocus(); return ctx.invokeOnFocus($event); })("blur", function TimeComponent_Template_input_blur_1_listener($event) { return ctx.onInputBlur($event); })("change", function TimeComponent_Template_input_change_1_listener($event) { return ctx.onDisplayTimeChange($event); })("keydown", function TimeComponent_Template_input_keydown_1_listener($event) { ctx._triggeredByUser = true; return ctx.onDisplayKeydown($event); });
398
- i0.ɵɵelementEnd();
399
- i0.ɵɵelementStart(2, "span", 2)(3, "button", 3);
400
- i0.ɵɵlistener("click", function TimeComponent_Template_button_click_3_listener($event) { return ctx.toggleDropdown($event, false); });
401
- i0.ɵɵelement(4, "i", 4);
402
- i0.ɵɵelementEnd()();
403
- i0.ɵɵtemplate(5, TimeComponent_div_5_Template, 3, 18, "div", 5);
404
- i0.ɵɵelementEnd();
405
- i0.ɵɵtemplate(6, TimeComponent_Conditional_6_Template, 2, 6);
406
- } if (rf & 2) {
407
- i0.ɵɵproperty("isOpen", ctx.status.isopen)("container", "body");
408
- i0.ɵɵadvance();
409
- i0.ɵɵproperty("tabindex", ctx.tabindex)("name", ctx.name)("value", ctx.displayValue)("disabled", ctx.disabled || ctx.readonly || ctx.isCurrentTime)("autofocus", ctx.autofocus)("required", ctx.required)("readOnly", ctx.isReadOnly);
410
- i0.ɵɵattribute("aria-label", ctx.arialabel)("placeholder", ctx.placeholder)("accesskey", ctx.shortcutkey)("aria-atomic", ctx.isCurrentTime ? "true" : "false");
411
- i0.ɵɵadvance(2);
412
- i0.ɵɵproperty("tabindex", ctx.tabindex)("disabled", ctx.disabled || ctx.readonly || ctx.isCurrentTime);
413
- i0.ɵɵadvance(3);
414
- i0.ɵɵconditional(ctx.loadNativeDateInput ? 6 : -1);
415
- } }, dependencies: [WmComponentsModule, FormsModule, i2.NgControlStatus, i2.NgModel, DateTimePickerComponent, BsDropdownModule, i3.BsDropdownMenuDirective, i3.BsDropdownDirective, TimepickerModule, i4.TimepickerComponent, CommonModule, i5.NgClass], encapsulation: 2 }); }
416
- }
417
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimeComponent, [{
418
- type: Component,
419
- args: [{ standalone: true, imports: [WmComponentsModule, FormsModule, DateTimePickerComponent, BsDropdownModule, TimepickerModule, CommonModule], selector: '[wmTime]', providers: [
420
- provideAs(TimeComponent, NG_VALUE_ACCESSOR, true),
421
- provideAs(TimeComponent, NG_VALIDATORS, true),
422
- provideAsWidgetRef(TimeComponent),
423
- { provide: TimepickerConfig, deps: [AbstractI18nService], useFactory: getTimepickerConfig }
424
- ], template: "<div dropdown [isOpen]=\"status.isopen\" (onShown)=\"onShown()\" (onHidden)=\"hideTimepickerDropdown()\" [container]=\"'body'\" style=\"display: inherit\">\n <input [attr.aria-label]=\"arialabel\" class=\"form-control app-textbox display-input\"\n focus-target\n [tabindex]=\"tabindex\"\n [name]=\"name\"\n type=\"text\"\n role=\"timer\"\n [value]=\"displayValue\"\n [disabled]=\"disabled || readonly || isCurrentTime\"\n [autofocus]=\"autofocus\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-atomic]=\"isCurrentTime ? 'true' : 'false'\"\n [required]=\"required\"\n [readOnly]=\"isReadOnly\"\n (click)=\"toggleDropdown($event, true)\"\n (focus)=\"onDateTimeInputFocus(); invokeOnFocus($event);\"\n (blur)=\"onInputBlur($event)\"\n (change)=\"onDisplayTimeChange($event)\"\n (keydown)=\"this._triggeredByUser = true; onDisplayKeydown($event)\">\n <span class=\"input-group-btn dropdown-toggle\">\n <button type=\"button\" class=\"btn btn-default btn-date\" [tabindex]=\"tabindex\" [disabled]=\"disabled || readonly || isCurrentTime\" aria-label=\"Select time\" aria-haspopup=\"true\" aria-expanded=\"false\" (click)=\"toggleDropdown($event, false)\"><i aria-hidden=\"true\" class=\"app-icon wm-sl-l sl-time\"></i></button>\n </span>\n <div *dropdownMenu class=\"dropdown-menu\" (click)=\"preventTpClose($event)\">\n <timepicker class=\"model-holder\"\n [showMeridian]=\"ismeridian\"\n [readonlyInput]=\"isDisabled\"\n [(ngModel)]=\"bsTimeValue\"\n [ngModelOptions]=\"{standalone: true}\"\n [disabled]=\"disabled || readonly || isCurrentTime\"\n [min]=\"minTime\"\n [max]=\"maxTime\"\n [hourStep]=\"hourstep\"\n [minuteStep]=\"minutestep\"\n [secondsStep]=\"secondsstep\"\n [mousewheel]=\"true\"\n [arrowkeys]=\"true\"\n (isValid)=\"isValid($event)\"\n [showSeconds]=\"showseconds\" (ngModelChange)=\"onTimeChange($event)\"\n [ngClass]=\"{ 'showbuttons': showampmbuttons }\"></timepicker>\n @if (ismeridian && showampmbuttons) {\n <div class=\"ampm-toggle text-center\">\n <button class=\"meridian-btn mb-1\" [ngClass]=\"{ 'active btn-secondary': getPeriod() === 'AM' }\" (click)=\"setPeriod('AM')\">{{appLocale.LABEL_AM ||\"AM\"}}</button><br>\n <button class=\"meridian-btn\" [ngClass]=\"{ 'active btn-secondary': getPeriod() === 'PM' }\" (click)=\"setPeriod('PM')\">{{appLocale.LABEL_PM ||\"PM\"}}</button>\n </div>\n }\n </div>\n</div>\n@if (loadNativeDateInput) {\n <wm-datetimepicker\n dateTimePicker\n mode=\"TIME\"\n [minTime]=\"minTime\"\n [maxTime]=\"maxTime\"\n [placement]=\"modal\"\n [displayFormat]=\"timepattern\"\n [value]=\"bsTimeValue\"\n (change)=\"onTimeChange($event)\">\n </wm-datetimepicker>\n <div class=\"mobile-input mobile-datepicker-container\"\n tabindex=\"1000000\"\n (click)=\"!(disabled || readonly) && showDatePickerModal(bsTimeValue)\"\n [attr.aria-label]=\"displayValue ? 'Change time ' + displayValue : arialabel || 'Select time'\"\n (focus)=\"onDateTimeInputFocus(true); invokeOnFocus($event); assignModel()\"\n (blur)=\"onDateTimeInputBlur(); invokeOnTouched($event)\"\n role=\"button\">\n </div>\n}\n" }]
425
- }], () => [{ type: i0.Injector }, { type: i0.NgZone }, { type: i1.AppDefaults }, { type: i1.App }, { type: undefined, decorators: [{
426
- type: Inject,
427
- args: ['EXPLICIT_CONTEXT']
428
- }, {
429
- type: Optional
430
- }] }], null); })();
431
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TimeComponent, { className: "TimeComponent", filePath: "time/time.component.ts", lineNumber: 50 }); })();
432
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvZXBvY2gvc3JjL3RpbWUvdGltZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvZXBvY2gvc3JjL3RpbWUvdGltZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQWEsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RSxPQUFPLEVBQ0gsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixRQUFRLEVBQ1IseUJBQXlCLEVBQ3pCLHVCQUF1QixFQUN2QixHQUFHLEVBQ0gsV0FBVyxFQUVYLGNBQWMsRUFDZCx3QkFBd0IsRUFDeEIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDdEIsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUs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QUFhLEVBQUUsSUFBSSxDQUFDO29CQUM3QyxrQkFBa0IsZUFBZTtvQkFDakMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLENBQUMsbUJBQW1CLENBQUMsRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUU7aUJBQzlGOztzQkFtR0ksTUFBTTt1QkFBQyxrQkFBa0I7O3NCQUFHLFFBQVE7O2tGQWpHaEMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdtQ29tcG9uZW50c01vZHVsZSB9IGZyb20gXCJAd20vY29tcG9uZW50cy9iYXNlXCI7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERhdGVUaW1lUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZS10aW1lL2RhdGUtdGltZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5qZWN0b3IsIE5nWm9uZSwgT25EZXN0cm95LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUaW1lcGlja2VyQ29uZmlnLCBUaW1lcGlja2VyTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC90aW1lcGlja2VyJztcbmltcG9ydCB7XG4gICAgJGFwcERpZ2VzdCxcbiAgICBBYnN0cmFjdEkxOG5TZXJ2aWNlLFxuICAgIGFkZENsYXNzLFxuICAgIGFkZEV2ZW50TGlzdGVuZXJPbkVsZW1lbnQsXG4gICAgYWRqdXN0Q29udGFpbmVyUG9zaXRpb24sXG4gICAgQXBwLFxuICAgIEFwcERlZmF1bHRzLFxuICAgIEVWRU5UX0xJRkUsXG4gICAgRm9ybVdpZGdldFR5cGUsXG4gICAgZ2V0RGlzcGxheURhdGVUaW1lRm9ybWF0LFxuICAgIGdldEZvcm1hdHRlZERhdGUsXG4gICAgZ2V0TW9tZW50TG9jYWxlT2JqZWN0LFxuICAgIGdldE5hdGl2ZURhdGVPYmplY3Rcbn0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgcHJvdmlkZUFzLCBwcm92aWRlQXNXaWRnZXRSZWYsIHN0eWxlciB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuXG5pbXBvcnQgeyBCYXNlRGF0ZVRpbWVDb21wb25lbnQsIGdldFRpbWVwaWNrZXJDb25maWcgfSBmcm9tICcuLy4uL2Jhc2UtZGF0ZS10aW1lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi90aW1lLnByb3BzJztcbmltcG9ydCB7IGZvckVhY2gsIGdldCwgaW5jbHVkZXMgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBCc0Ryb3Bkb3duTW9kdWxlIH0gZnJvbSBcIm5neC1ib290c3RyYXAvZHJvcGRvd25cIjtcblxuZGVjbGFyZSBjb25zdCAkO1xuaW1wb3J0ICogYXMgbW9tZW50TGliICBmcm9tICdtb21lbnQnO1xuY29uc3QgbW9tZW50ID0gbW9tZW50TGliLmRlZmF1bHQgfHwgd2luZG93Wydtb21lbnQnXTtcblxuY29uc3QgQ1VSUkVOVF9USU1FID0gJ0NVUlJFTlRfVElNRSc7XG5jb25zdCBERUZBVUxUX0NMUyA9ICdpbnB1dC1ncm91cCBhcHAtdGltZWlucHV0JztcbmNvbnN0IFdJREdFVF9DT05GSUcgPSB7IHdpZGdldFR5cGU6ICd3bS10aW1lJywgaG9zdENsYXNzOiBERUZBVUxUX0NMUyB9O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtXbUNvbXBvbmVudHNNb2R1bGUsIEZvcm1zTW9kdWxlLCBEYXRlVGltZVBpY2tlckNvbXBvbmVudCwgQnNEcm9wZG93bk1vZHVsZSwgVGltZXBpY2tlck1vZHVsZSxDb21tb25Nb2R1bGVdLFxuICAgIHNlbGVjdG9yOiAnW3dtVGltZV0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90aW1lLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzKFRpbWVDb21wb25lbnQsIE5HX1ZBTFVFX0FDQ0VTU09SLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzKFRpbWVDb21wb25lbnQsIE5HX1ZBTElEQVRPUlMsIHRydWUpLFxuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoVGltZUNvbXBvbmVudCksXG4gICAgICAgIHsgcHJvdmlkZTogVGltZXBpY2tlckNvbmZpZywgZGVwczogW0Fic3RyYWN0STE4blNlcnZpY2VdLCB1c2VGYWN0b3J5OiBnZXRUaW1lcGlja2VyQ29uZmlnIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRpbWVDb21wb25lbnQgZXh0ZW5kcyBCYXNlRGF0ZVRpbWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG4gICAgLyoqXG4gICAgICogVGhpcyBwcm9wZXJ0eSBzZXRzIHRoZSBkaXNwbGF5IHBhdHRlcm4gb2YgdGhlIHRpbWUgc2VsZWN0ZWRcbiAgICAgKi9cbiAgICB0aW1lcGF0dGVybjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBwcm9wZXJ0eSBzZXRzIHRoZSBvdXRwdXQgZm9ybWF0IGZvciB0aGUgc2VsZWN0ZWQgdGltZSBkYXRhdmFsdWVcbiAgICAgKi9cbiAgICBvdXRwdXRmb3JtYXQ6IHN0cmluZztcblxuICAgIHB1YmxpYyBzaG93ZHJvcGRvd25vbjogc3RyaW5nO1xuICAgIHB1YmxpYyBtaW50aW1lO1xuICAgIHB1YmxpYyBtYXh0aW1lO1xuICAgIHB1YmxpYyBoaW50OiBzdHJpbmc7XG4gICAgcHVibGljIGFyaWFsYWJlbDogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBkZXJlZ2lzdGVyRXZlbnRMaXN0ZW5lcjtcbiAgICBwcml2YXRlIGFwcDogQXBwO1xuICAgIHByaXZhdGUgZGlzcGxheUlucHV0RWxlbTogSFRNTEVsZW1lbnQ7XG5cbiAgICBnZXQgdGltZXN0YW1wKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ic1RpbWVWYWx1ZSA/IHRoaXMuYnNUaW1lVmFsdWUudmFsdWVPZigpIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBnZXQgZGF0YXZhbHVlKCk6IGFueSB7XG4gICAgICAgIGlmICh0aGlzLmlzQ3VycmVudFRpbWUgJiYgIXRoaXMuYnNUaW1lVmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBDVVJSRU5UX1RJTUU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldEZvcm1hdHRlZERhdGUodGhpcy5kYXRlUGlwZSwgdGhpcy5ic1RpbWVWYWx1ZSwgdGhpcy5vdXRwdXRmb3JtYXQsIHRoaXMudGltZVpvbmUsIG51bGwsIG51bGwsIHRoaXMpIHx8ICcnO1xuICAgIH1cblxuICAgIC8qKlRvZG9bU2h1YmhhbV06IG5lZWRzIHRvIGJlIHJlZGVmaW5lZFxuICAgICAqIFRoaXMgcHJvcGVydHkgc2V0cyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIHRpbWUgc2VsZWN0aW9uXG4gICAgICovXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHNldCBkYXRhdmFsdWUobmV3VmFsOiBhbnkpIHtcbiAgICAgICAgaWYgKG5ld1ZhbCkge1xuICAgICAgICAgICAgaWYgKG5ld1ZhbCA9PT0gQ1VSUkVOVF9USU1FKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0N1cnJlbnRUaW1lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFRpbWVJbnRlcnZhbCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyVGltZUludGVydmFsKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ic1RpbWVWYWx1ZSA9IGdldE5hdGl2ZURhdGVPYmplY3QobmV3VmFsLCB7IHBhdHRlcm46IHRoaXMubG9hZE5hdGl2ZURhdGVJbnB1dCA/IHRoaXMub3V0cHV0Zm9ybWF0IDogdW5kZWZpbmVkLCBpc05hdGl2ZVBpY2tlcjogdGhpcy5sb2FkTmF0aXZlRGF0ZUlucHV0IH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNDdXJyZW50VGltZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMubWludGltZU1heHRpbWVWYWxpZGF0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmJzVGltZVZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5jbGVhclRpbWVJbnRlcnZhbCgpO1xuICAgICAgICAgICAgdGhpcy5pc0N1cnJlbnRUaW1lID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnZva2VPbkNoYW5nZSh0aGlzLmRhdGF2YWx1ZSk7XG4gICAgICAgICRhcHBEaWdlc3QoKTtcbiAgICB9XG5cbiAgICBnZXQgZGlzcGxheVZhbHVlKCkge1xuICAgICAgICBjb25zdCBkaXNwbGF5ID0gZ2V0Rm9ybWF0dGVkRGF0ZSh0aGlzLmRhdGVQaXBlLCB0aGlzLmJzVGltZVZhbHVlLCB0aGlzLnRpbWVwYXR0ZXJuLCB0aGlzLnRpbWVab25lLCBudWxsLCBudWxsLCB0aGlzKSB8fCAnJztcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FmZVJlcGxhY2VNZXJpZGlhbnMoZGlzcGxheSk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZURpc3BsYXlWYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIGdldEZvcm1hdHRlZERhdGUodGhpcy5kYXRlUGlwZSwgdGhpcy5ic1RpbWVWYWx1ZSwgJ0hIOm1tOnNzJywgdGhpcy50aW1lWm9uZSwgbnVsbCwgbnVsbCwgdGhpcykgfHwgJyc7XG4gICAgfVxuXG4gICAgLyogSW50ZXJuYWwgcHJvcGVydHkgdG8gaGF2ZSBhIGZsYWcgdG8gY2hlY2sgdGhlIGdpdmVuIGRhdGF2YWx1ZSBpcyBvZiBDdXJyZW50IHRpbWUqL1xuICAgIHB1YmxpYyBpc0N1cnJlbnRUaW1lOiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSB0aW1laW50ZXJ2YWw6IGFueTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgaXMgYW4gaW50ZXJuYWwgcHJvcGVydHkgdXNlZCB0byBtYXAgaXQgdG8gdGhlIHdpZGdldFxuICAgICAqL1xuICAgIHByaXZhdGUgbWluVGltZTogRGF0ZTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgaXMgYW4gaW50ZXJuYWwgcHJvcGVydHkgdXNlZCB0byBtYXAgaXQgdG8gdGhlIHdpZGdldFxuICAgICAqL1xuICAgIHByaXZhdGUgbWF4VGltZTogRGF0ZTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgaXMgYW4gaW50ZXJuYWwgcHJvcGVydHkgdXNlZCB0byB0b2dnbGUgdGhlIHRpbWVwaWNrZXIgZHJvcGRvd25cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdHVzID0geyBpc29wZW46IGZhbHNlIH07XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGlzIGFuIGludGVybmFsIHByb3BlcnR5IHVzZWQgdG8gbWFwIHRoZSBtYWluIG1vZGVsIHRvIHRoZSB0aW1lIHdpZGdldFxuICAgICAqL1xuICAgIHByaXZhdGUgYnNUaW1lVmFsdWU6IERhdGU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSBhcHBEZWZhdWx0czogQXBwRGVmYXVsdHMsXG4gICAgICAgIGFwcDogQXBwLFxuICAgICAgICBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnlcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQpO1xuXG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMpO1xuICAgICAgICAvKipcbiAgICAgICAgICogRGVzdHJveSB0aGUgdGltZXIgb25jZSB0aGUgZGF0ZSB3aWRnZXQgaXMgZ29uZVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiB0aGlzLmNsZWFyVGltZUludGVydmFsKCkpO1xuXG4gICAgICAgIHRoaXMudGltZXBhdHRlcm4gPSB0aGlzLmFwcERlZmF1bHRzLnRpbWVGb3JtYXQgfHwgZ2V0RGlzcGxheURhdGVUaW1lRm9ybWF0KEZvcm1XaWRnZXRUeXBlLlRJTUUpO1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1hdCgndGltZXBhdHRlcm4nKTtcbiAgICAgICAgdGhpcy5hcHAgPSBhcHA7XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXk6IHN0cmluZywgbnY6IGFueSwgb3Y/OiBhbnkpIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ3RhYmluZGV4Jykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT09ICd0aW1lcGF0dGVybicpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRm9ybWF0KCd0aW1lcGF0dGVybicpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT09ICdtaW50aW1lJykge1xuICAgICAgICAgICAgdGhpcy5taW5UaW1lID0gZ2V0TmF0aXZlRGF0ZU9iamVjdChudiwgeyBwYXR0ZXJuOiB0aGlzLmxvYWROYXRpdmVEYXRlSW5wdXQgPyB0aGlzLm91dHB1dGZvcm1hdCA6IHVuZGVmaW5lZCwgaXNOYXRpdmVQaWNrZXI6IHRoaXMubG9hZE5hdGl2ZURhdGVJbnB1dCB9KTsgLy8gVE9ETyBpdCBpcyBzdXBwb3NlZCB0byBiZSB0aW1lIGNvbnZlcnNpb24sIG5vdCB0byB0aGUgZGF5XG4gICAgICAgICAgICB0aGlzLm1pbnRpbWVNYXh0aW1lVmFsaWRhdGlvbigpO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ21heHRpbWUnKSB7XG4gICAgICAgICAgICB0aGlzLm1heFRpbWUgPSBnZXROYXRpdmVEYXRlT2JqZWN0KG52LCB7IHBhdHRlcm46IHRoaXMubG9hZE5hdGl2ZURhdGVJbnB1dCA/IHRoaXMub3V0cHV0Zm9ybWF0IDogdW5kZWZpbmVkLCBpc05hdGl2ZVBpY2tlcjogdGhpcy5sb2FkTmF0aXZlRGF0ZUlucHV0IH0pO1xuICAgICAgICAgICAgdGhpcy5taW50aW1lTWF4dGltZVZhbGlkYXRpb24oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0VmFsaWRhdGVUeXBlKG1pbiwgbWF4LCB2YWwpIHtcbiAgICAgICAgaWYgKHRoaXMudGltZU5vdEluUmFuZ2UpIHtcbiAgICAgICAgICAgIGlmICh2YWwgPCBtaW4pIHtcbiAgICAgICAgICAgICAgICAodGhpcyBhcyBhbnkpLnZhbGlkYXRlVHlwZSA9ICdtaW50aW1lJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsID4gbWF4KSB7XG4gICAgICAgICAgICAgICAgKHRoaXMgYXMgYW55KS52YWxpZGF0ZVR5cGUgPSAnbWF4dGltZSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGlzIGFuIGludGVybmFsIG1ldGhvZCB1c2VkIHRvIHZhbGlkYXRlIG1pbnRpbWUgYW5kIG1heHRpbWVcbiAgICAgKi9cbiAgICBwcml2YXRlIG1pbnRpbWVNYXh0aW1lVmFsaWRhdGlvbigpIHtcbiAgICAgICAgdGhpcy50aW1lTm90SW5SYW5nZSA9IHRoaXMubWluVGltZSAmJiB0aGlzLm1heFRpbWUgJiYgKHRoaXMuYnNUaW1lVmFsdWUgPCB0aGlzLm1pblRpbWUgfHwgdGhpcy5ic1RpbWVWYWx1ZSA+IHRoaXMubWF4VGltZSk7XG4gICAgICAgIHRoaXMuc2V0VmFsaWRhdGVUeXBlKHRoaXMubWluVGltZSwgdGhpcy5tYXhUaW1lLCB0aGlzLmJzVGltZVZhbHVlKTtcbiAgICAgICAgdGhpcy5pbnZva2VPbkNoYW5nZSh0aGlzLmRhdGF2YWx1ZSwgdW5kZWZpbmVkLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBpcyBhbiBpbnRlcm5hbCBtZXRob2QgdXNlZCB0byB0b2dnbGUgdGhlIGRyb3Bkb3duIG9mIHRoZSB0aW1lIHdpZGdldFxuICAgICAqL1xuICAgIHB1YmxpYyB0b2dnbGVEcm9wZG93bigkZXZlbnQsIHNraXBGb2N1czogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmxvYWROYXRpdmVEYXRlSW5wdXQpIHtcbiAgICAgICAgICAgIC8vRml4ZXMgY2xpY2sgZXZlbnQgZ2V0dGluZyB0cmlnZ3JlZCB0d2ljZSBpbiBNb2JpbGUgZGV2aWNlcy5cbiAgICAgICAgICAgIGlmICghc2tpcEZvY3VzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkRhdGVUaW1lSW5wdXRGb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICgkZXZlbnQudHlwZSA9PT0gJ2NsaWNrJykge1xuICAgICAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdjbGljaycsIHsgJGV2ZW50OiAkZXZlbnQgfSk7XG4gICAgICAgICAgICAvL3RoaXMuZm9jdXNPbklucHV0RWwoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJGV2ZW50LnRhcmdldCAmJiAkKCRldmVudC50YXJnZXQpLmlzKCdpbnB1dCcpICYmICEodGhpcy5pc0Ryb3BEb3duRGlzcGxheUVuYWJsZWRPbklucHV0KHRoaXMuc2hvd2Ryb3Bkb3dub24pKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0YXR1cy5pc29wZW4gPSAhdGhpcy5zdGF0dXMuaXNvcGVuO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hZGRCb2R5Q2xpY2tMaXN0ZW5lcih0aGlzLnN0YXR1cy5pc29wZW4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgaXMgYW4gaW50ZXJuYWwgbWV0aG9kIHVzZWQgdG8gUHJldmVudCB0aW1lIHBpY2tlciBjbG9zZSB3aGlsZSBjaGFuZ2luZyB0aW1lIHZhbHVlXG4gICAgICovXG4gICAgcHJpdmF0ZSBwcmV2ZW50VHBDbG9zZSgkZXZlbnQpIHtcbiAgICAgICAgJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICBjb25zdCBwYXJlbnRFbCA9ICQodGhpcy5uYXRpdmVFbGVtZW50KS5jbG9zZXN0KCcuYXBwLWNvbXBvc2l0ZS13aWRnZXQuY2FwdGlvbi1mbG9hdGluZycpO1xuICAgICAgICBpZiAocGFyZW50RWwubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5hcHAubm90aWZ5KCdjYXB0aW9uUG9zaXRpb25BbmltYXRlJywgeyBkaXNwbGF5VmFsOiB0aGlzLmRpc3BsYXlWYWx1ZSwgbmF0aXZlRWw6IHBhcmVudEVsIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRCb2R5Q2xpY2tMaXN0ZW5lcihza2lwTGlzdGVuZXIpIHtcbiAgICAgICAgaWYgKCFza2lwTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBib2R5RWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkcm9wZG93bkVsZW1lbnQgPSAkKGJvZHlFbGVtZW50KS5maW5kKCc+YnMtZHJvcGRvd24tY29udGFpbmVyIC5kcm9wZG93bi1tZW51JykuZ2V0KDApO1xuICAgICAgICAgICAgdGhpcy5kZXJlZ2lzdGVyRXZlbnRMaXN0ZW5lciA9IGFkZEV2ZW50TGlzdGVuZXJPbkVsZW1lbnQoYm9keUVsZW1lbnQsIGRyb3Bkb3duRWxlbWVudCwgdGhpcy5uYXRpdmVFbGVtZW50LCAnY2xpY2snLCB0aGlzLmlzRHJvcERvd25EaXNwbGF5RW5hYmxlZE9uSW5wdXQodGhpcy5zaG93ZHJvcGRvd25vbiksICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXR1cy5pc29wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIH0sIEVWRU5UX0xJRkUuT05DRSwgdHJ1ZSk7XG4gICAgICAgIH0sIDM1MCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBpcyBhbiBpbnRlcm5hbCBtZXRob2QgdHJpZ2dlcmVkIHdoZW4gcHJlc3Npbmcga2V5IG9uIHRoZSB0aW1lIGlucHV0XG4gICAgICovXG4gICAgcHVibGljIG9uRGlzcGxheUtleWRvd24oZXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEcm9wRG93bkRpc3BsYXlFbmFibGVkT25JbnB1dCh0aGlzLnNob3dkcm9wZG93bm9uKSkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlRHJvcGRvd24oZXZlbnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGVUaW1lcGlja2VyRHJvcGRvd24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZVRpbWVwaWNrZXJEcm9wZG93bigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBpcyBhbiBpbnRlcm5hbCBtZXRob2QgdHJpZ2dlcmVkIHdoZW4gdGhlIHRpbWUgaW5wdXQgY2hhbmdlc1xuICAgICAqL1xuICAgIG9uRGlzcGxheVRpbWVDaGFuZ2UoJGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbCA9IGdldE5hdGl2ZURhdGVPYmplY3QoJGV2ZW50LnRhcmdldC52YWx1ZT8ucmVwbGFjZSh0aGlzLmFtLCB0aGlzLm1lcmlkaWFuc1swXSk/LnJlcGxhY2UodGhpcy5wbSwgdGhpcy5tZXJpZGlhbnNbMV0pLCB7IG1lcmlkaWFuczogdGhpcy5tZXJpZGlhbnMsIHBhdHRlcm46IHRoaXMubG9hZE5hdGl2ZURhdGVJbnB1dCA/IHRoaXMub3V0cHV0Zm9ybWF0IDogdW5kZWZpbmVkLCBpc05hdGl2ZVBpY2tlcjogdGhpcy5sb2FkTmF0aXZlRGF0ZUlucHV0IH0pO1xuICAgICAgICAvLyB0aW1lIHBhdHRlcm4gdmFsaWRhdGlvblxuICAgICAgICAvLyBpZiBpbnZhbGlkIHBhdHRlcm4gaXMgZW50ZXJlZCwgZGV2aWNlIGlzIHNob3dpbmcgYW4gZXJyb3IuXG4gICAgICAgIGlmICghdGhpcy5mb3JtYXRWYWxpZGF0aW9uKG5ld1ZhbCwgJGV2ZW50LnRhcmdldC52YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmludmFsaWREYXRlVGltZUZvcm1hdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9uVGltZUNoYW5nZShuZXdWYWwpO1xuICAgIH1cblxuICAgIG9uSW5wdXRCbHVyKCRldmVudCkge1xuICAgICAgICBpZiAoISQoJGV2ZW50LnJlbGF0ZWRUYXJnZXQpLmhhc0NsYXNzKCdicy10aW1lcGlja2VyLWZpZWxkJykpIHtcbiAgICAgICAgICAgIHRoaXMuaW52b2tlT25Ub3VjaGVkKCk7XG4gICAgICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2JsdXInLCB7ICRldmVudCB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgaXMgYW4gaW50ZXJuYWwgbWV0aG9kIHVzZWQgdG8gZXhlY3V0ZSB0aGUgb24gdGltZSBjaGFuZ2UgZnVuY3Rpb25hbGl0eVxuICAgICAqL1xuICAgIHByaXZhdGUgb25UaW1lQ2hhbmdlKG5ld1ZhbCwgaXNOYXRpdmVQaWNrZXI/OiBib29sZWFuKSB7XG4gICAgICAgIGxldCB0aW1lVmFsdWUsXG4gICAgICAgICAgICB0aW1lSW5wdXRWYWx1ZSxcbiAgICAgICAgICAgIG1pblRpbWVNZXJpZGlhbixcbiAgICAgICAgICAgIG1heFRpbWVNZXJpZGlhbjtcbiAgICAgICAgLy8gRm9yIG5hdGl2ZVBpY2tlciwgbmV3VmFsIGlzIGV2ZW50LCBnZXQgdGhlIGRhdGVvYmplY3QgZnJvbSB0aGUgZXZlbnQuXG4gICAgICAgIGlmIChpc05hdGl2ZVBpY2tlcikge1xuICAgICAgICAgICAgbmV3VmFsID0gZ2V0TmF0aXZlRGF0ZU9iamVjdChuZXdWYWwudGFyZ2V0LnZhbHVlLCB7IHBhdHRlcm46IHRoaXMubG9hZE5hdGl2ZURhdGVJbnB1dCA/IHRoaXMub3V0cHV0Zm9ybWF0IDogdW5kZWZpbmVkLCBpc05hdGl2ZVBpY2tlcjogdGhpcy5sb2FkTmF0aXZlRGF0ZUlucHV0IH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuZXdWYWwpIHtcbiAgICAgICAgICAgIC8vIGlmIHRoZSBuZXdWYWwgaXMgdmFsaWQgYnV0IG5vdCBpbiB0aGUgZ2l2ZW4gcmFuZ2UgdGhlbiBoaWdobGlnaHQgdGhlIGlucHV0IGZpZWxkXG4gICAgICAgICAgICB0aGlzLnRpbWVOb3RJblJhbmdlID0gdGhpcy5taW5UaW1lICYmIHRoaXMubWF4VGltZSAmJiAobmV3VmFsIDwgdGhpcy5taW5UaW1lIHx8IG5ld1ZhbCA+IHRoaXMubWF4VGltZSk7XG4gICAgICAgICAgICB0aGlzLnNldFZhbGlkYXRlVHlwZSh0aGlzLm1pblRpbWUsIHRoaXMubWF4VGltZSwgbmV3VmFsKTtcbiAgICAgICAgICAgIGlmKCF0aGlzLnRpbWVOb3RJblJhbmdlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ic1RpbWVWYWx1ZSA9IG5ld1ZhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSAvLyBzb21ldGltZXMgbGlicmFyeSBpcyBub3QgcmV0dXJuaW5nIHRoZSBjb3JyZWN0IHZhbHVlIHdoZW4gdGhlIG1pbiBhbmQgbWF4IHRpbWUgYXJlIGdpdmVuLCBkaXNwbGF5aW5nIHRoZSBkYXRhdmFsdWUgYmFzZWQgb24gdGhlIHZhbHVlIGdpdmVuIGJ5IHRoZSB1c2VyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuYnNUaW1lUGlja2VyICYmIHRoaXMuYnNUaW1lUGlja2VyLm1pbiAmJiB0aGlzLmJzVGltZVBpY2tlci5tYXgpIHtcbiAgICAgICAgICAgIG1pblRpbWVNZXJpZGlhbiA9IG1vbWVudChuZXcgRGF0ZSh0aGlzLmJzVGltZVBpY2tlci5taW4pKS5mb3JtYXQoJ0EnKTtcbiAgICAgICAgICAgIG1heFRpbWVNZXJpZGlhbiA9IG1vbWVudChuZXcgRGF0ZSh0aGlzLmJzVGltZVBpY2tlci5tYXgpKS5mb3JtYXQoJ0EnKTtcbiAgICAgICAgICAgIHRpbWVWYWx1ZSA9IHRoaXMuYnNUaW1lUGlja2VyLmhvdXJzICsgJzonICsgKHRoaXMuYnNUaW1lUGlja2VyLm1pbnV0ZXMgfHwgMCkgKyAnOicgKyAodGhpcy5ic1RpbWVQaWNrZXIuc2Vjb25kcyB8fCAwKSArICh0aGlzLmJzVGltZVBpY2tlci5zaG93TWVyaWRpYW4gPyAoJyAnICsgbWluVGltZU1lcmlkaWFuKSA6ICcnKTtcbiAgICAgICAgICAgIHRpbWVJbnB1dFZhbHVlID0gZ2V0TmF0aXZlRGF0ZU9iamVjdCh0aW1lVmFsdWUsIHsgcGF0dGVybjogdGhpcy5sb2FkTmF0aXZlRGF0ZUlucHV0ID8gdGhpcy5vdXRwdXRmb3JtYXQgOiB1bmRlZmluZWQsIGlzTmF0aXZlUGlja2VyOiB0aGlzLmxvYWROYXRpdmVEYXRlSW5wdXQgfSk7XG4gICAgICAgICAgICB0aGlzLmJzVGltZVBpY2tlci5tZXJpZGlhbiA9IG1pblRpbWVNZXJpZGlhbj8ucmVwbGFjZSh0aGlzLm1lcmlkaWFuc1swXSwgdGhpcy5hbSk/LnJlcGxhY2UodGhpcy5tZXJpZGlhbnNbMV0sIHRoaXMucG0pO1xuICAgICAgICAgICAgdGhpcy50aW1lTm90SW5SYW5nZSA9ICB0aGlzLmJzVGltZVBpY2tlci5taW4gPiB0aW1lSW5wdXRWYWx1ZSB8fCB0aGlzLmJzVGltZVBpY2tlci5tYXggPCB0aW1lSW5wdXRWYWx1ZTtcblxuICAgICAgICAgICAgaWYgKHRoaXMudGltZU5vdEluUmFuZ2UgfHwgdGhpcy5pbnZhbGlkRGF0ZVRpbWVGb3JtYXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJzVGltZVZhbHVlID0gdGhpcy5nZXRQcmV2RGF0YVZhbHVlKCk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVTdHIgPSBnZXRGb3JtYXR0ZWREYXRlKHRoaXMuZGF0ZVBpcGUsIHRpbWVWYWx1ZSwgdGhpcy50aW1lcGF0dGVybiwgdGhpcy50aW1lWm9uZSwgbnVsbCwgbnVsbCwgdGhpcykgfHwgJyc7XG4gICAgICAgICAgICAgICAgICAgICQodGhpcy5uYXRpdmVFbGVtZW50KS5maW5kKCcuZGlzcGxheS1pbnB1dCcpLnZhbCh0aGlzLnNhZmVSZXBsYWNlTWVyaWRpYW5zKHRpbWVTdHIpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2V0VmFsaWRhdGVUeXBlKHRoaXMuYnNUaW1lUGlja2VyLm1pbiwgdGhpcy5ic1RpbWVQaWNrZXIubWF4LCB0aW1lSW5wdXRWYWx1ZSk7XG4gICAgICAgICAgICBpZiAoIXRoaXMudGltZU5vdEluUmFuZ2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJzVGltZVZhbHVlID0gdGltZUlucHV0VmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gVXBkYXRlIFVJIGRpc3BsYXkgaWYgdmFsdWUgaGFzbid0IGNoYW5nZWRcbiAgICAgICAgaWYgKCF0aGlzLnRpbWVOb3RJblJhbmdlICYmIHRoaXMuZGF0YXZhbHVlID09PSB0aGlzLmdldFByZXZEYXRhVmFsdWUoKSkge1xuICAgICAgICAgICAgY29uc3QgZGlzcGxheVRpbWUgPSBnZXRGb3JtYXR0ZWREYXRlKHRoaXMuZGF0ZVBpcGUsIHRoaXMuZGF0YXZhbHVlLCB0aGlzLnRpbWVwYXR0ZXJuLCB0aGlzLnRpbWVab25lLCBudWxsLCBudWxsLCB0aGlzKSB8fCAnJztcbiAgICAgICAgICAgICQodGhpcy5uYXRpdmVFbGVtZW50KS5maW5kKCcuZGlzcGxheS1pbnB1dCcpLnZhbCh0aGlzLnNhZmVSZXBsYWNlTWVyaWRpYW5zKGRpc3BsYXlUaW1lKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnZva2VPblRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5pbnZva2VPbkNoYW5nZSh0aGlzLmRhdGF2YWx1ZSwge30sIHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgaXMgYW4gaW50ZXJuYWwgbWV0aG9kIHVzZWQgdG8gbWFpbnRhaW4gYSB0aW1lIGludGVydmFsIHRvIHVwZGF0ZSB0aGUgdGltZSBtb2RlbCB3aGVuIHRoZSBkYXRhIHZhbHVlIGlzIHNldCB0byBDVVJSRU5UX1RJTUVcbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFRpbWVJbnRlcnZhbCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGltZWludGVydmFsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50aW1laW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBub3cgPSB0aGlzLnRpbWVab25lID8gZ2V0TW9tZW50TG9jYWxlT2JqZWN0KHRoaXMudGltZVpvbmUpIDogbmV3IERhdGUoKTtcbiAgICAgICAgICAgIG5vdy5zZXRTZWNvbmRzKG5vdy5nZXRTZWNvbmRzKCkgKyAxKTtcbiAgICAgICAgICAgIHRoaXMuZGF0YXZhbHVlID0gQ1VSUkVOVF9USU1FO1xuICAgICAgICAgICAgdGhpcy5vblRpbWVDaGFuZ2Uobm93KTtcbiAgICAgICAgfSwgMTAwMCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBpcyBhbiBpbnRlcm5hbCBtZXRob2QgdXNlZCB0byBjbGVhciB0aGUgdGltZSBpbnRlcnZhbCBjcmVhdGVkXG4gICAgICovXG4gICAgcHJpdmF0ZSBjbGVhclRpbWVJbnRlcnZhbCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGltZWludGVydmFsKSB7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMudGltZWludGVydmFsKTtcbiAgICAgICAgICAgIHRoaXMudGltZWludGVydmFsID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gc2V0cyB0aGUgdmFsdWUgaXNPcGVuL2lzVGltZU9wZW4gKGkuZSB3aGVuIGRhdGVwaWNrZXIgcG9wdXAgaXMgY2xvc2VkKSBiYXNlZCBvbiB3aWRnZXQgdHlwZShpLmUgIERhdGVUaW1lLCBUaW1lKVxuICAgICAqIEBwYXJhbSB2YWwgLSBpc09wZW4vaXNUaW1lT3BlbiBpcyBzZXQgYmFzZWQgb24gdGhlIHRpbWVwaWNrZXIgcG9wdXAgaXMgb3Blbi9jbG9zZWRcbiAgICAgKi9cbiAgICBwcml2YXRlIHNldElzVGltZU9wZW4odmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc3RhdHVzLmlzb3BlbiA9IHZhbDtcbiAgICB9XG5cbiAgICAvLyBDaGFuZ2UgZXZlbnQgaXMgcmVnaXN0ZXJlZCBmcm9tIHRoZSB0ZW1wbGF0ZSwgUHJldmVudCB0aGUgZnJhbWV3b3JrIGZyb20gcmVnaXN0ZXJpbmcgb25lIG1vcmUgZXZlbnRcbiAgICBwcm90ZWN0ZWQgaGFuZGxlRXZlbnQobm9kZTogSFRNTEVsZW1lbnQsIGV2ZW50TmFtZTogc3RyaW5nLCBldmVudENhbGxiYWNrOiBGdW5jdGlvbiwgbG9jYWxzOiBhbnkpIHtcbiAgICAgICAgaWYgKCFpbmNsdWRlcyhbJ2JsdXInLCAnZm9jdXMnLCAnY2hhbmdlJywgJ2NsaWNrJ10sIGV2ZW50TmFtZSkpIHtcbiAgICAgICAgICAgIHN1cGVyLmhhbmRsZUV2ZW50KG5vZGUsIGV2ZW50TmFtZSwgZXZlbnRDYWxsYmFjaywgbG9jYWxzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBoaWRlVGltZXBpY2tlckRyb3Bkb3duKCkge1xuICAgICAgICB0aGlzLmludm9rZU9uVG91Y2hlZCgpO1xuICAgICAgICB0aGlzLnN0YXR1cy5pc29wZW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuZGVyZWdpc3RlckV2ZW50TGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZGVyZWdpc3RlckV2ZW50TGlzdGVuZXIoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbW92ZUtleXVwTGlzdGVuZXIoKTtcbiAgICAgICAgY29uc3QgcGFyZW50RWwgPSAkKHRoaXMubmF0aXZlRWxlbWVudCkuY2xvc2VzdCgnLmFwcC1jb21wb3NpdGUtd2lkZ2V0LmNhcHRpb24tZmxvYXRpbmcnKTtcbiAgICAgICAgaWYgKHBhcmVudEVsLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuYXBwLm5vdGlmeSgnY2FwdGlvblBvc2l0aW9uQW5pbWF0ZScsIHsgZGlzcGxheVZhbDogdGhpcy5kaXNwbGF5VmFsdWUsIG5hdGl2ZUVsOiBwYXJlbnRFbCB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJsdXJEYXRlSW5wdXQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1ZhbGlkKGV2ZW50KSB7XG4gICAgICAgIGlmICghZXZlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGVudGVyZWREYXRlID0gJCh0aGlzLm5hdGl2ZUVsZW1lbnQpLmZpbmQoJ2lucHV0JykudmFsKCk/LnJlcGxhY2UodGhpcy5hbSwgdGhpcy5tZXJpZGlhbnNbMF0pPy5yZXBsYWNlKHRoaXMucG0sIHRoaXMubWVyaWRpYW5zWzFdKTtcbiAgICAgICAgICAgIGNvbnN0IG5ld1ZhbCA9IGdldE5hdGl2ZURhdGVPYmplY3QoZW50ZXJlZERhdGUsIHsgbWVyaWRpYW5zOiB0aGlzLm1lcmlkaWFucywgcGF0dGVybjogdGhpcy5sb2FkTmF0aXZlRGF0ZUlucHV0ID8gdGhpcy5vdXRwdXRmb3JtYXQgOiB1bmRlZmluZWQsIGlzTmF0aXZlUGlja2VyOiB0aGlzLmxvYWROYXRpdmVEYXRlSW5wdXQgfSk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZm9ybWF0VmFsaWRhdGlvbihuZXdWYWwsIGVudGVyZWREYXRlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBUaGlzIGlzIGFuIGludGVybmFsIG1ldGhvZCB0byBhZGQgY3NzIGNsYXNzIGZvciBkcm9wZG93biB3aGlsZSBvcGVuaW5nIHRoZSB0aW1lIGRyb3Bkb3duXG4gICAgICovXG4gICAgcHVibGljIG9uU2hvd24oKSB7XG4gICAgICAgIGNvbnN0IHRwRWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCd0aW1lcGlja2VyJyk7XG4gICAgICAgIGZvckVhY2godHBFbGVtZW50cywgZWxlbWVudCA9PiB7XG4gICAgICAgICAgICBhZGRDbGFzcyhlbGVtZW50LnBhcmVudEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQsICdhcHAtZGF0ZXRpbWUnLCB0cnVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0aGlzLmJzRHJvcGRvd24gJiYgKHRoaXMudGltZU5vdEluUmFuZ2UgfHwgdGhpcy5pbnZhbGlkRGF0ZVRpbWVGb3JtYXQpKSB7XG4gICAgICAgICAgICB0aGlzLmJzVGltZVZhbHVlID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvY3VzVGltZVBpY2tlclBvcG92ZXIodGhpcyk7XG4gICAgICAgIHRoaXMuYmluZFRpbWVQaWNrZXJLZXlib2FyZEV2ZW50cygpO1xuICAgICAgICBhZGp1c3RDb250YWluZXJQb3NpdGlvbigkKCdicy1kcm9wZG93bi1jb250YWluZXInKSwgdGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzLmJzRHJvcGRvd24uX2Ryb3Bkb3duLCAkKCdicy1kcm9wZG93bi1jb250YWluZXIgLmRyb3Bkb3duLW1lbnUnKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzc2lnbk1vZGVsKCkge1xuICAgICAgICBpZiAoIXRoaXMuZGlzcGxheUlucHV0RWxlbSkge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5SW5wdXRFbGVtID0gdGhpcy5nZXRNb2JpbGVJbnB1dCgpO1xuICAgICAgICB9XG4gICAgICAgICh0aGlzLmRpc3BsYXlJbnB1dEVsZW0gYXMgYW55KS52YWx1ZSA9IGdldCh0aGlzLCAnbmF0aXZlRGlzcGxheVZhbHVlJyk7XG4gICAgfVxufVxuIiwiPGRpdiBkcm9wZG93biBbaXNPcGVuXT1cInN0YXR1cy5pc29wZW5cIiAob25TaG93bik9XCJvblNob3duKClcIiAob25IaWRkZW4pPVwiaGlkZVRpbWVwaWNrZXJEcm9wZG93bigpXCIgW2NvbnRhaW5lcl09XCInYm9keSdcIiBzdHlsZT1cImRpc3BsYXk6IGluaGVyaXRcIj5cbiAgPGlucHV0IFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYWxhYmVsXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgYXBwLXRleHRib3ggZGlzcGxheS1pbnB1dFwiXG4gICAgZm9jdXMtdGFyZ2V0XG4gICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICB0eXBlPVwidGV4dFwiXG4gICAgcm9sZT1cInRpbWVyXCJcbiAgICBbdmFsdWVdPVwiZGlzcGxheVZhbHVlXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHkgfHwgaXNDdXJyZW50VGltZVwiXG4gICAgW2F1dG9mb2N1c109XCJhdXRvZm9jdXNcIlxuICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbYXR0ci5hY2Nlc3NrZXldPVwic2hvcnRjdXRrZXlcIlxuICAgIFthdHRyLmFyaWEtYXRvbWljXT1cImlzQ3VycmVudFRpbWUgPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFtyZWFkT25seV09XCJpc1JlYWRPbmx5XCJcbiAgICAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oJGV2ZW50LCB0cnVlKVwiXG4gICAgKGZvY3VzKT1cIm9uRGF0ZVRpbWVJbnB1dEZvY3VzKCk7IGludm9rZU9uRm9jdXMoJGV2ZW50KTtcIlxuICAgIChibHVyKT1cIm9uSW5wdXRCbHVyKCRldmVudClcIlxuICAgIChjaGFuZ2UpPVwib25EaXNwbGF5VGltZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAoa2V5ZG93bik9XCJ0aGlzLl90cmlnZ2VyZWRCeVVzZXIgPSB0cnVlOyBvbkRpc3BsYXlLZXlkb3duKCRldmVudClcIj5cbiAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC1idG4gZHJvcGRvd24tdG9nZ2xlXCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLWRhdGVcIiBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHkgfHwgaXNDdXJyZW50VGltZVwiIGFyaWEtbGFiZWw9XCJTZWxlY3QgdGltZVwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCIgYXJpYS1leHBhbmRlZD1cImZhbHNlXCIgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKCRldmVudCwgZmFsc2UpXCI+PGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJhcHAtaWNvbiB3bS1zbC1sIHNsLXRpbWVcIj48L2k+PC9idXR0b24+XG4gIDwvc3Bhbj5cbiAgPGRpdiAqZHJvcGRvd25NZW51IGNsYXNzPVwiZHJvcGRvd24tbWVudVwiIChjbGljayk9XCJwcmV2ZW50VHBDbG9zZSgkZXZlbnQpXCI+XG4gICAgPHRpbWVwaWNrZXIgY2xhc3M9XCJtb2RlbC1ob2xkZXJcIlxuICAgICAgW3Nob3dNZXJpZGlhbl09XCJpc21lcmlkaWFuXCJcbiAgICAgIFtyZWFkb25seUlucHV0XT1cImlzRGlzYWJsZWRcIlxuICAgICAgWyhuZ01vZGVsKV09XCJic1RpbWVWYWx1ZVwiXG4gICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seSB8fCBpc0N1cnJlbnRUaW1lXCJcbiAgICAgIFttaW5dPVwibWluVGltZVwiXG4gICAgICBbbWF4XT1cIm1heFRpbWVcIlxuICAgICAgW2hvdXJTdGVwXT1cImhvdXJzdGVwXCJcbiAgICAgIFttaW51dGVTdGVwXT1cIm1pbnV0ZXN0ZXBcIlxuICAgICAgW3NlY29uZHNTdGVwXT1cInNlY29uZHNzdGVwXCJcbiAgICAgIFttb3VzZXdoZWVsXT1cInRydWVcIlxuICAgICAgW2Fycm93a2V5c109XCJ0cnVlXCJcbiAgICAgIChpc1ZhbGlkKT1cImlzVmFsaWQoJGV2ZW50KVwiXG4gICAgICBbc2hvd1NlY29uZHNdPVwic2hvd3NlY29uZHNcIiAobmdNb2RlbENoYW5nZSk9XCJvblRpbWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdzaG93YnV0dG9ucyc6IHNob3dhbXBtYnV0dG9ucyB9XCI+PC90aW1lcGlja2VyPlxuICAgICAgQGlmIChpc21lcmlkaWFuICYmIHNob3dhbXBtYnV0dG9ucykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbXBtLXRvZ2dsZSB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWVyaWRpYW4tYnRuIG1iLTFcIiBbbmdDbGFzc109XCJ7ICdhY3RpdmUgYnRuLXNlY29uZGFyeSc6IGdldFBlcmlvZCgpID09PSAnQU0nIH1cIiAoY2xpY2spPVwic2V0UGVyaW9kKCdBTScpXCI+e3thcHBMb2NhbGUuTEFCRUxfQU0gfHxcIkFNXCJ9fTwvYnV0dG9uPjxicj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1lcmlkaWFuLWJ0blwiIFtuZ0NsYXNzXT1cInsgJ2FjdGl2ZSBidG4tc2Vjb25kYXJ5JzogZ2V0UGVyaW9kKCkgPT09ICdQTScgfVwiIChjbGljayk9XCJzZXRQZXJpb2QoJ1BNJylcIj57e2FwcExvY2FsZS5MQUJFTF9QTSB8fFwiUE1cIn19PC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG5AaWYgKGxvYWROYXRpdmVEYXRlSW5wdXQpIHtcbiAgPHdtLWRhdGV0aW1lcGlja2VyXG4gICAgZGF0ZVRpbWVQaWNrZXJcbiAgICBtb2RlPVwiVElNRVwiXG4gICAgW21pblRpbWVdPVwibWluVGltZVwiXG4gICAgW21heFRpbWVdPVwibWF4VGltZVwiXG4gICAgW3BsYWNlbWVudF09XCJtb2RhbFwiXG4gICAgW2Rpc3BsYXlGb3JtYXRdPVwidGltZXBhdHRlcm5cIlxuICAgIFt2YWx1ZV09XCJic1RpbWVWYWx1ZVwiXG4gICAgKGNoYW5nZSk9XCJvblRpbWVDaGFuZ2UoJGV2ZW50KVwiPlxuICA8L3dtLWRhdGV0aW1lcGlja2VyPlxuICA8ZGl2IGNsYXNzPVwibW9iaWxlLWlucHV0IG1vYmlsZS1kYXRlcGlja2VyLWNvbnRhaW5lclwiXG4gICAgdGFiaW5kZXg9XCIxMDAwMDAwXCJcbiAgICAoY2xpY2spPVwiIShkaXNhYmxlZCB8fCByZWFkb25seSkgJiYgc2hvd0RhdGVQaWNrZXJNb2RhbChic1RpbWVWYWx1ZSlcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGlzcGxheVZhbHVlID8gJ0NoYW5nZSB0aW1lICAnICsgZGlzcGxheVZhbHVlIDogYXJpYWxhYmVsIHx8ICdTZWxlY3QgdGltZSdcIlxuICAgIChmb2N1cyk9XCJvbkRhdGVUaW1lSW5wdXRGb2N1cyh0cnVlKTsgaW52b2tlT25Gb2N1cygkZXZlbnQpOyBhc3NpZ25Nb2RlbCgpXCJcbiAgICAoYmx1cik9XCJvbkRhdGVUaW1lSW5wdXRCbHVyKCk7IGludm9rZU9uVG91Y2hlZCgkZXZlbnQpXCJcbiAgICByb2xlPVwiYnV0dG9uXCI+XG4gIDwvZGl2PlxufVxuIl19