@acorex/components 7.1.0 → 7.1.1

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 (728) hide show
  1. package/action-sheet/index.d.ts +5 -5
  2. package/action-sheet/public-api.d.ts +3 -3
  3. package/action-sheet/src/action-sheet.component.d.ts +25 -25
  4. package/action-sheet/src/action-sheet.interface.d.ts +20 -20
  5. package/action-sheet/src/action-sheet.module.d.ts +14 -14
  6. package/action-sheet/src/action-sheet.service.d.ts +13 -13
  7. package/alert/index.d.ts +5 -5
  8. package/alert/public-api.d.ts +2 -2
  9. package/alert/src/alert.component.d.ts +88 -88
  10. package/alert/src/alert.module.d.ts +9 -9
  11. package/avatar/index.d.ts +5 -5
  12. package/avatar/public-api.d.ts +3 -3
  13. package/avatar/src/avatar-group.component.d.ts +8 -8
  14. package/avatar/src/avatar.component.d.ts +20 -20
  15. package/avatar/src/avatar.module.d.ts +9 -9
  16. package/badge/index.d.ts +5 -5
  17. package/badge/public-api.d.ts +2 -2
  18. package/badge/src/badge.component.d.ts +41 -41
  19. package/badge/src/badge.module.d.ts +8 -8
  20. package/breadcrumbs/index.d.ts +5 -5
  21. package/breadcrumbs/public-api.d.ts +4 -4
  22. package/breadcrumbs/src/breadcrumbs-item.class.d.ts +9 -9
  23. package/breadcrumbs/src/breadcrumbs-item.component.d.ts +77 -79
  24. package/breadcrumbs/src/breadcrumbs.component.d.ts +13 -13
  25. package/breadcrumbs/src/breadcrumbs.module.d.ts +9 -9
  26. package/button/index.d.ts +5 -5
  27. package/button/public-api.d.ts +5 -5
  28. package/button/src/button-group.component.d.ts +86 -86
  29. package/button/src/button-item.class.d.ts +24 -24
  30. package/button/src/button-item.component.d.ts +82 -80
  31. package/button/src/button.component.d.ts +23 -23
  32. package/button/src/button.module.d.ts +11 -11
  33. package/calendar/index.d.ts +5 -5
  34. package/calendar/public-api.d.ts +4 -4
  35. package/calendar/src/calendar-range.component.d.ts +29 -29
  36. package/calendar/src/calendar.class.d.ts +100 -100
  37. package/calendar/src/calendar.component.d.ts +44 -44
  38. package/calendar/src/calendar.module.d.ts +10 -10
  39. package/card/index.d.ts +5 -5
  40. package/card/public-api.d.ts +2 -2
  41. package/card/src/card.component.d.ts +10 -10
  42. package/card/src/card.module.d.ts +8 -8
  43. package/checkbox/index.d.ts +5 -5
  44. package/checkbox/public-api.d.ts +2 -2
  45. package/checkbox/src/checkbox.component.d.ts +12 -12
  46. package/checkbox/src/checkbox.module.d.ts +10 -10
  47. package/chips/index.d.ts +5 -5
  48. package/chips/public-api.d.ts +2 -2
  49. package/chips/src/chips.component.d.ts +72 -72
  50. package/chips/src/chips.module.d.ts +8 -8
  51. package/collapse/index.d.ts +5 -5
  52. package/collapse/public-api.d.ts +3 -3
  53. package/collapse/src/collapse-group.component.d.ts +15 -15
  54. package/collapse/src/collapse.component.d.ts +17 -17
  55. package/collapse/src/collapse.module.d.ts +9 -9
  56. package/color-palette/index.d.ts +5 -5
  57. package/color-palette/public-api.d.ts +7 -7
  58. package/color-palette/src/color-palette-input.component.d.ts +22 -22
  59. package/color-palette/src/color-palette-picker.component.d.ts +32 -32
  60. package/color-palette/src/color-palette-preview.component.d.ts +11 -11
  61. package/color-palette/src/color-palette-swatches.component.d.ts +18 -18
  62. package/color-palette/src/color-palette.class.d.ts +22 -22
  63. package/color-palette/src/color-palette.component.d.ts +16 -16
  64. package/color-palette/src/color-palette.module.d.ts +19 -19
  65. package/color-picker/index.d.ts +5 -5
  66. package/color-picker/public-api.d.ts +2 -2
  67. package/color-picker/src/color-picker.component.d.ts +190 -193
  68. package/color-picker/src/color-picker.module.d.ts +18 -18
  69. package/common/index.d.ts +5 -5
  70. package/common/public-api.d.ts +16 -16
  71. package/common/src/classes/components.class.d.ts +62 -62
  72. package/common/src/classes/data.class.d.ts +4 -4
  73. package/common/src/classes/drawing.class.d.ts +9 -9
  74. package/common/src/classes/events.class.d.ts +95 -95
  75. package/common/src/classes/styles.class.d.ts +17 -17
  76. package/common/src/common.module.d.ts +11 -11
  77. package/common/src/components/base-component.class.d.ts +28 -28
  78. package/common/src/components/button-base-component.class.d.ts +36 -36
  79. package/common/src/components/color-component.class.d.ts +15 -15
  80. package/common/src/components/colorlook-component.class.d.ts +9 -9
  81. package/common/src/components/index.d.ts +7 -7
  82. package/common/src/components/interactive-component.class.d.ts +37 -37
  83. package/common/src/components/look-component.class.d.ts +15 -15
  84. package/common/src/components/value-component.class.d.ts +45 -45
  85. package/common/src/constant/positions.d.ts +75 -75
  86. package/common/src/directives/auto-focus.directive.d.ts +13 -13
  87. package/common/src/directives/debounce-time.directive.d.ts +17 -17
  88. package/common/src/directives/hotkey.directive.d.ts +22 -22
  89. package/common/src/directives/infinite-scroll.directive.d.ts +25 -25
  90. package/common/src/directives/responsive.directive.d.ts +10 -10
  91. package/common/src/services/custom-cdk-overlay.service.d.ts +19 -19
  92. package/common/src/services/hotkey.service.d.ts +17 -17
  93. package/common/src/services/overlay.service.d.ts +34 -34
  94. package/context-menu/index.d.ts +5 -5
  95. package/context-menu/public-api.d.ts +2 -2
  96. package/context-menu/src/context-menu.component.d.ts +34 -34
  97. package/context-menu/src/context-menu.module.d.ts +13 -13
  98. package/data-pager/index.d.ts +5 -5
  99. package/data-pager/public-api.d.ts +9 -9
  100. package/data-pager/src/data-pager-base.component.d.ts +49 -49
  101. package/data-pager/src/data-pager-info.component.d.ts +15 -15
  102. package/data-pager/src/data-pager-input-selector.component.d.ts +15 -15
  103. package/data-pager/src/data-pager-next-buttons.components.d.ts +16 -16
  104. package/data-pager/src/data-pager-numeric-selector.component.d.ts +18 -18
  105. package/data-pager/src/data-pager-pagesize-dropdown.component.d.ts +18 -18
  106. package/data-pager/src/data-pager-prev-buttons.component.d.ts +15 -15
  107. package/data-pager/src/data-pager.component.d.ts +35 -35
  108. package/data-pager/src/data-pager.module.d.ts +18 -18
  109. package/data-table/index.d.ts +5 -5
  110. package/data-table/public-api.d.ts +4 -4
  111. package/data-table/src/data-column-cell-template.directive.d.ts +8 -8
  112. package/data-table/src/data-column.directive.d.ts +16 -16
  113. package/data-table/src/data-table.component.d.ts +37 -37
  114. package/data-table/src/data-table.module.d.ts +14 -14
  115. package/date-picker/index.d.ts +5 -5
  116. package/date-picker/public-api.d.ts +2 -2
  117. package/date-picker/src/datepicker.component.d.ts +154 -154
  118. package/date-picker/src/datepicker.module.d.ts +15 -15
  119. package/decorators/index.d.ts +5 -5
  120. package/decorators/public-api.d.ts +14 -14
  121. package/decorators/src/close-button.component.d.ts +14 -14
  122. package/decorators/src/content.component.d.ts +8 -8
  123. package/decorators/src/decorators.module.d.ts +20 -20
  124. package/decorators/src/footer.component.d.ts +8 -8
  125. package/decorators/src/form-hint.component.d.ts +8 -8
  126. package/decorators/src/header.component.d.ts +8 -8
  127. package/decorators/src/icon.component.d.ts +10 -10
  128. package/decorators/src/overlay.component.d.ts +6 -6
  129. package/decorators/src/placeholder.component.d.ts +5 -5
  130. package/decorators/src/prefix.component.d.ts +8 -8
  131. package/decorators/src/sub-title.component.d.ts +9 -9
  132. package/decorators/src/suffix.component.d.ts +8 -8
  133. package/decorators/src/text.component.d.ts +9 -9
  134. package/decorators/src/title.component.d.ts +8 -8
  135. package/dialog/index.d.ts +5 -5
  136. package/dialog/public-api.d.ts +4 -4
  137. package/dialog/src/dialog.class.d.ts +13 -13
  138. package/dialog/src/dialog.component.d.ts +16 -16
  139. package/dialog/src/dialog.module.d.ts +14 -14
  140. package/dialog/src/dialog.service.d.ts +38 -38
  141. package/drawer/index.d.ts +5 -5
  142. package/drawer/public-api.d.ts +3 -3
  143. package/drawer/src/drawer-container.component.d.ts +10 -10
  144. package/drawer/src/drawer.component.d.ts +36 -36
  145. package/drawer/src/drawer.module.d.ts +9 -9
  146. package/dropdown/index.d.ts +5 -5
  147. package/dropdown/public-api.d.ts +2 -2
  148. package/dropdown/src/dropdown-panel.component.d.ts +30 -30
  149. package/dropdown/src/dropdown.module.d.ts +14 -14
  150. package/esm2022/acorex-components.mjs +4 -4
  151. package/esm2022/action-sheet/acorex-components-action-sheet.mjs +4 -4
  152. package/esm2022/action-sheet/public-api.mjs +3 -3
  153. package/esm2022/action-sheet/src/action-sheet.component.mjs +81 -80
  154. package/esm2022/action-sheet/src/action-sheet.interface.mjs +2 -2
  155. package/esm2022/action-sheet/src/action-sheet.module.mjs +27 -26
  156. package/esm2022/action-sheet/src/action-sheet.service.mjs +94 -93
  157. package/esm2022/alert/acorex-components-alert.mjs +4 -4
  158. package/esm2022/alert/public-api.mjs +2 -2
  159. package/esm2022/alert/src/alert.component.mjs +189 -188
  160. package/esm2022/alert/src/alert.module.mjs +23 -22
  161. package/esm2022/avatar/acorex-components-avatar.mjs +4 -4
  162. package/esm2022/avatar/public-api.mjs +3 -3
  163. package/esm2022/avatar/src/avatar-group.component.mjs +17 -16
  164. package/esm2022/avatar/src/avatar.component.mjs +44 -43
  165. package/esm2022/avatar/src/avatar.module.mjs +23 -22
  166. package/esm2022/badge/acorex-components-badge.mjs +4 -4
  167. package/esm2022/badge/public-api.mjs +2 -2
  168. package/esm2022/badge/src/badge.component.mjs +29 -28
  169. package/esm2022/badge/src/badge.module.mjs +22 -21
  170. package/esm2022/breadcrumbs/acorex-components-breadcrumbs.mjs +4 -4
  171. package/esm2022/breadcrumbs/public-api.mjs +4 -4
  172. package/esm2022/breadcrumbs/src/breadcrumbs-item.class.mjs +1 -1
  173. package/esm2022/breadcrumbs/src/breadcrumbs-item.component.mjs +51 -50
  174. package/esm2022/breadcrumbs/src/breadcrumbs.component.mjs +28 -27
  175. package/esm2022/breadcrumbs/src/breadcrumbs.module.mjs +21 -20
  176. package/esm2022/button/acorex-components-button.mjs +4 -4
  177. package/esm2022/button/public-api.mjs +5 -5
  178. package/esm2022/button/src/button-group.component.mjs +92 -91
  179. package/esm2022/button/src/button-item.class.mjs +1 -1
  180. package/esm2022/button/src/button-item.component.mjs +70 -69
  181. package/esm2022/button/src/button.component.mjs +79 -78
  182. package/esm2022/button/src/button.module.mjs +33 -32
  183. package/esm2022/calendar/acorex-components-calendar.mjs +4 -4
  184. package/esm2022/calendar/public-api.mjs +4 -4
  185. package/esm2022/calendar/src/calendar-range.component.mjs +175 -174
  186. package/esm2022/calendar/src/calendar.class.mjs +282 -280
  187. package/esm2022/calendar/src/calendar.component.mjs +373 -372
  188. package/esm2022/calendar/src/calendar.module.mjs +24 -23
  189. package/esm2022/card/acorex-components-card.mjs +4 -4
  190. package/esm2022/card/public-api.mjs +2 -2
  191. package/esm2022/card/src/card.component.mjs +19 -18
  192. package/esm2022/card/src/card.module.mjs +20 -19
  193. package/esm2022/checkbox/acorex-components-checkbox.mjs +4 -4
  194. package/esm2022/checkbox/public-api.mjs +2 -2
  195. package/esm2022/checkbox/src/checkbox.component.mjs +43 -42
  196. package/esm2022/checkbox/src/checkbox.module.mjs +22 -21
  197. package/esm2022/chips/acorex-components-chips.mjs +4 -4
  198. package/esm2022/chips/public-api.mjs +2 -2
  199. package/esm2022/chips/src/chips.component.mjs +34 -33
  200. package/esm2022/chips/src/chips.module.mjs +20 -19
  201. package/esm2022/collapse/acorex-components-collapse.mjs +4 -4
  202. package/esm2022/collapse/public-api.mjs +3 -3
  203. package/esm2022/collapse/src/collapse-group.component.mjs +53 -52
  204. package/esm2022/collapse/src/collapse.component.mjs +48 -47
  205. package/esm2022/collapse/src/collapse.module.mjs +21 -20
  206. package/esm2022/color-palette/acorex-components-color-palette.mjs +4 -4
  207. package/esm2022/color-palette/public-api.mjs +7 -7
  208. package/esm2022/color-palette/src/color-palette-input.component.mjs +131 -130
  209. package/esm2022/color-palette/src/color-palette-picker.component.mjs +160 -159
  210. package/esm2022/color-palette/src/color-palette-preview.component.mjs +57 -56
  211. package/esm2022/color-palette/src/color-palette-swatches.component.mjs +295 -294
  212. package/esm2022/color-palette/src/color-palette.class.mjs +19 -17
  213. package/esm2022/color-palette/src/color-palette.component.mjs +76 -75
  214. package/esm2022/color-palette/src/color-palette.module.mjs +61 -60
  215. package/esm2022/color-picker/acorex-components-color-picker.mjs +4 -4
  216. package/esm2022/color-picker/public-api.mjs +2 -2
  217. package/esm2022/color-picker/src/color-picker.component.mjs +120 -119
  218. package/esm2022/color-picker/src/color-picker.module.mjs +62 -61
  219. package/esm2022/common/acorex-components-common.mjs +4 -4
  220. package/esm2022/common/public-api.mjs +16 -16
  221. package/esm2022/common/src/classes/components.class.mjs +78 -72
  222. package/esm2022/common/src/classes/data.class.mjs +1 -1
  223. package/esm2022/common/src/classes/drawing.class.mjs +1 -1
  224. package/esm2022/common/src/classes/events.class.mjs +95 -95
  225. package/esm2022/common/src/classes/styles.class.mjs +12 -12
  226. package/esm2022/common/src/common.module.mjs +43 -42
  227. package/esm2022/common/src/components/base-component.class.mjs +56 -56
  228. package/esm2022/common/src/components/button-base-component.class.mjs +68 -68
  229. package/esm2022/common/src/components/color-component.class.mjs +26 -26
  230. package/esm2022/common/src/components/colorlook-component.class.mjs +10 -10
  231. package/esm2022/common/src/components/index.mjs +7 -7
  232. package/esm2022/common/src/components/interactive-component.class.mjs +62 -62
  233. package/esm2022/common/src/components/look-component.class.mjs +26 -26
  234. package/esm2022/common/src/components/value-component.class.mjs +207 -206
  235. package/esm2022/common/src/constant/positions.mjs +74 -74
  236. package/esm2022/common/src/directives/auto-focus.directive.mjs +58 -57
  237. package/esm2022/common/src/directives/debounce-time.directive.mjs +50 -49
  238. package/esm2022/common/src/directives/hotkey.directive.mjs +83 -82
  239. package/esm2022/common/src/directives/infinite-scroll.directive.mjs +70 -69
  240. package/esm2022/common/src/directives/responsive.directive.mjs +36 -35
  241. package/esm2022/common/src/services/custom-cdk-overlay.service.mjs +52 -50
  242. package/esm2022/common/src/services/hotkey.service.mjs +41 -40
  243. package/esm2022/common/src/services/overlay.service.mjs +116 -115
  244. package/esm2022/context-menu/acorex-components-context-menu.mjs +4 -4
  245. package/esm2022/context-menu/public-api.mjs +2 -2
  246. package/esm2022/context-menu/src/context-menu.component.mjs +271 -270
  247. package/esm2022/context-menu/src/context-menu.module.mjs +37 -36
  248. package/esm2022/data-pager/acorex-components-data-pager.mjs +4 -4
  249. package/esm2022/data-pager/public-api.mjs +9 -9
  250. package/esm2022/data-pager/src/data-pager-base.component.mjs +37 -35
  251. package/esm2022/data-pager/src/data-pager-info.component.mjs +62 -61
  252. package/esm2022/data-pager/src/data-pager-input-selector.component.mjs +46 -45
  253. package/esm2022/data-pager/src/data-pager-next-buttons.components.mjs +51 -50
  254. package/esm2022/data-pager/src/data-pager-numeric-selector.component.mjs +75 -74
  255. package/esm2022/data-pager/src/data-pager-pagesize-dropdown.component.mjs +67 -66
  256. package/esm2022/data-pager/src/data-pager-prev-buttons.component.mjs +48 -47
  257. package/esm2022/data-pager/src/data-pager.component.mjs +147 -146
  258. package/esm2022/data-pager/src/data-pager.module.mjs +52 -51
  259. package/esm2022/data-table/acorex-components-data-table.mjs +4 -4
  260. package/esm2022/data-table/public-api.mjs +4 -4
  261. package/esm2022/data-table/src/data-column-cell-template.directive.mjs +19 -18
  262. package/esm2022/data-table/src/data-column.directive.mjs +51 -50
  263. package/esm2022/data-table/src/data-table.component.mjs +140 -139
  264. package/esm2022/data-table/src/data-table.module.mjs +28 -27
  265. package/esm2022/date-picker/acorex-components-date-picker.mjs +4 -4
  266. package/esm2022/date-picker/public-api.mjs +2 -2
  267. package/esm2022/date-picker/src/datepicker.component.mjs +241 -240
  268. package/esm2022/date-picker/src/datepicker.module.mjs +45 -44
  269. package/esm2022/decorators/acorex-components-decorators.mjs +4 -4
  270. package/esm2022/decorators/public-api.mjs +14 -14
  271. package/esm2022/decorators/src/close-button.component.mjs +44 -43
  272. package/esm2022/decorators/src/content.component.mjs +22 -21
  273. package/esm2022/decorators/src/decorators.module.mjs +72 -71
  274. package/esm2022/decorators/src/footer.component.mjs +22 -21
  275. package/esm2022/decorators/src/form-hint.component.mjs +21 -20
  276. package/esm2022/decorators/src/header.component.mjs +22 -21
  277. package/esm2022/decorators/src/icon.component.mjs +31 -30
  278. package/esm2022/decorators/src/overlay.component.mjs +21 -20
  279. package/esm2022/decorators/src/placeholder.component.mjs +15 -14
  280. package/esm2022/decorators/src/prefix.component.mjs +22 -21
  281. package/esm2022/decorators/src/sub-title.component.mjs +26 -25
  282. package/esm2022/decorators/src/suffix.component.mjs +22 -21
  283. package/esm2022/decorators/src/text.component.mjs +23 -22
  284. package/esm2022/decorators/src/title.component.mjs +21 -20
  285. package/esm2022/dialog/acorex-components-dialog.mjs +4 -4
  286. package/esm2022/dialog/public-api.mjs +4 -4
  287. package/esm2022/dialog/src/dialog.class.mjs +1 -1
  288. package/esm2022/dialog/src/dialog.component.mjs +56 -55
  289. package/esm2022/dialog/src/dialog.module.mjs +28 -27
  290. package/esm2022/dialog/src/dialog.service.mjs +155 -154
  291. package/esm2022/drawer/acorex-components-drawer.mjs +4 -4
  292. package/esm2022/drawer/public-api.mjs +3 -3
  293. package/esm2022/drawer/src/drawer-container.component.mjs +31 -30
  294. package/esm2022/drawer/src/drawer.component.mjs +139 -138
  295. package/esm2022/drawer/src/drawer.module.mjs +23 -22
  296. package/esm2022/dropdown/acorex-components-dropdown.mjs +4 -4
  297. package/esm2022/dropdown/public-api.mjs +2 -2
  298. package/esm2022/dropdown/src/dropdown-panel.component.mjs +106 -105
  299. package/esm2022/dropdown/src/dropdown.module.mjs +26 -25
  300. package/esm2022/form/acorex-components-form.mjs +4 -4
  301. package/esm2022/form/public-api.mjs +6 -6
  302. package/esm2022/form/src/form-field.component.mjs +16 -15
  303. package/esm2022/form/src/form.component.mjs +164 -163
  304. package/esm2022/form/src/form.module.mjs +64 -63
  305. package/esm2022/form/src/validation-rule.widget.mjs +114 -113
  306. package/esm2022/form/src/validation-summary.component.mjs +82 -81
  307. package/esm2022/form/src/validation.class.mjs +1 -1
  308. package/esm2022/image/acorex-components-image.mjs +4 -4
  309. package/esm2022/image/public-api.mjs +2 -2
  310. package/esm2022/image/src/image.component.mjs +80 -79
  311. package/esm2022/image/src/image.module.mjs +20 -19
  312. package/esm2022/label/acorex-components-label.mjs +4 -4
  313. package/esm2022/label/public-api.mjs +2 -2
  314. package/esm2022/label/src/label.component.mjs +49 -48
  315. package/esm2022/label/src/label.module.mjs +22 -21
  316. package/esm2022/loading/acorex-components-loading.mjs +4 -4
  317. package/esm2022/loading/public-api.mjs +5 -5
  318. package/esm2022/loading/src/loading-spinner.component.mjs +18 -17
  319. package/esm2022/loading/src/loading.component.mjs +58 -57
  320. package/esm2022/loading/src/loading.directive.mjs +77 -76
  321. package/esm2022/loading/src/loading.module.mjs +36 -35
  322. package/esm2022/loading/src/loading.service.mjs +159 -158
  323. package/esm2022/menu/acorex-components-menu.mjs +4 -4
  324. package/esm2022/menu/public-api.mjs +2 -2
  325. package/esm2022/menu/src/menu.component.mjs +347 -346
  326. package/esm2022/menu/src/menu.module.mjs +34 -33
  327. package/esm2022/mixin/acorex-components-mixin.mjs +4 -4
  328. package/esm2022/mixin/public-api.mjs +17 -17
  329. package/esm2022/mixin/src/base-components.class.mjs +111 -110
  330. package/esm2022/mixin/src/base-menu-mixin.class.mjs +133 -133
  331. package/esm2022/mixin/src/button-mixin.class.mjs +70 -70
  332. package/esm2022/mixin/src/clickable-mixin.class.mjs +23 -23
  333. package/esm2022/mixin/src/color-look-mixing.class.mjs +47 -47
  334. package/esm2022/mixin/src/constratctor.mjs +1 -1
  335. package/esm2022/mixin/src/datalist-component.class.mjs +150 -150
  336. package/esm2022/mixin/src/datalist.class.mjs +2 -2
  337. package/esm2022/mixin/src/dropdown-mixin.class.mjs +98 -98
  338. package/esm2022/mixin/src/interactive-mixin.class.mjs +80 -80
  339. package/esm2022/mixin/src/loading-mixin.class.mjs +25 -25
  340. package/esm2022/mixin/src/mixin.class.mjs +25 -25
  341. package/esm2022/mixin/src/page-component.class.mjs +10 -10
  342. package/esm2022/mixin/src/selection-component.class.mjs +182 -182
  343. package/esm2022/mixin/src/sizable-mixin.class.mjs +21 -21
  344. package/esm2022/mixin/src/textbox-mixin.class.mjs +65 -65
  345. package/esm2022/mixin/src/value-mixin.class.mjs +219 -219
  346. package/esm2022/notification/acorex-components-notification.mjs +4 -4
  347. package/esm2022/notification/public-api.mjs +4 -4
  348. package/esm2022/notification/src/notification.class.mjs +1 -1
  349. package/esm2022/notification/src/notification.component.mjs +93 -92
  350. package/esm2022/notification/src/notification.module.mjs +24 -23
  351. package/esm2022/notification/src/notification.service.mjs +110 -109
  352. package/esm2022/number-box/acorex-components-number-box.mjs +4 -4
  353. package/esm2022/number-box/public-api.mjs +2 -2
  354. package/esm2022/number-box/src/number-box.component.mjs +269 -268
  355. package/esm2022/number-box/src/number-box.module.mjs +36 -35
  356. package/esm2022/page/acorex-components-page.mjs +4 -4
  357. package/esm2022/page/public-api.mjs +3 -3
  358. package/esm2022/page/src/base-page.class.mjs +64 -63
  359. package/esm2022/page/src/page.component.mjs +47 -46
  360. package/esm2022/page/src/page.module.mjs +19 -18
  361. package/esm2022/password-box/acorex-components-password-box.mjs +4 -4
  362. package/esm2022/password-box/public-api.mjs +2 -2
  363. package/esm2022/password-box/src/password-box.component.mjs +64 -63
  364. package/esm2022/password-box/src/password-box.module.mjs +33 -32
  365. package/esm2022/picker/acorex-components-picker.mjs +4 -4
  366. package/esm2022/picker/public-api.mjs +3 -3
  367. package/esm2022/picker/src/picker-column.component.mjs +21 -20
  368. package/esm2022/picker/src/picker.component.mjs +17 -16
  369. package/esm2022/picker/src/picker.module.mjs +38 -37
  370. package/esm2022/popover/acorex-components-popover.mjs +4 -4
  371. package/esm2022/popover/public-api.mjs +2 -2
  372. package/esm2022/popover/src/popover.component.mjs +263 -262
  373. package/esm2022/popover/src/popover.module.mjs +20 -19
  374. package/esm2022/popup/acorex-components-popup.mjs +4 -4
  375. package/esm2022/popup/public-api.mjs +3 -3
  376. package/esm2022/popup/src/popup.component.mjs +146 -145
  377. package/esm2022/popup/src/popup.module.mjs +28 -27
  378. package/esm2022/popup/src/popup.service.mjs +117 -116
  379. package/esm2022/progress-bar/acorex-components-progress-bar.mjs +4 -4
  380. package/esm2022/progress-bar/public-api.mjs +2 -2
  381. package/esm2022/progress-bar/src/progress-bar.component.mjs +34 -33
  382. package/esm2022/progress-bar/src/progress-bar.module.mjs +20 -19
  383. package/esm2022/public-api.mjs +4 -4
  384. package/esm2022/radio/acorex-components-radio.mjs +4 -4
  385. package/esm2022/radio/public-api.mjs +2 -2
  386. package/esm2022/radio/src/radio.component.mjs +40 -39
  387. package/esm2022/radio/src/radio.module.mjs +23 -22
  388. package/esm2022/range-slider/acorex-components-range-slider.mjs +4 -4
  389. package/esm2022/range-slider/public-api.mjs +2 -2
  390. package/esm2022/range-slider/src/range-slider.component.mjs +118 -117
  391. package/esm2022/range-slider/src/range-slider.module.mjs +23 -22
  392. package/esm2022/rating/acorex-components-rating.mjs +4 -4
  393. package/esm2022/rating/public-api.mjs +2 -2
  394. package/esm2022/rating/src/rating.component.mjs +42 -41
  395. package/esm2022/rating/src/rating.component.module.mjs +20 -19
  396. package/esm2022/result/acorex-components-result.mjs +4 -4
  397. package/esm2022/result/public-api.mjs +2 -2
  398. package/esm2022/result/src/result.component.mjs +27 -26
  399. package/esm2022/result/src/result.module.mjs +20 -19
  400. package/esm2022/search-box/acorex-components-search-box.mjs +4 -4
  401. package/esm2022/search-box/public-api.mjs +2 -2
  402. package/esm2022/search-box/src/search-box.component.mjs +55 -54
  403. package/esm2022/search-box/src/search-box.module.mjs +26 -25
  404. package/esm2022/select-box/acorex-components-select-box.mjs +4 -4
  405. package/esm2022/select-box/public-api.mjs +2 -2
  406. package/esm2022/select-box/src/selectbox.component.mjs +392 -391
  407. package/esm2022/select-box/src/selectbox.module.mjs +65 -64
  408. package/esm2022/selection-list/acorex-components-selection-list.mjs +4 -4
  409. package/esm2022/selection-list/public-api.mjs +2 -2
  410. package/esm2022/selection-list/src/selection-list.component.mjs +60 -60
  411. package/esm2022/selection-list/src/selection-list.module.mjs +25 -24
  412. package/esm2022/switch/acorex-components-switch.mjs +4 -4
  413. package/esm2022/switch/public-api.mjs +3 -3
  414. package/esm2022/switch/src/switch-content.component.mjs +17 -16
  415. package/esm2022/switch/src/switch.component.mjs +55 -54
  416. package/esm2022/switch/src/switch.module.mjs +23 -22
  417. package/esm2022/tabs/acorex-components-tabs.mjs +4 -4
  418. package/esm2022/tabs/public-api.mjs +5 -5
  419. package/esm2022/tabs/src/tab-content.directive.mjs +32 -31
  420. package/esm2022/tabs/src/tab-item.component.mjs +91 -90
  421. package/esm2022/tabs/src/tabs.class.mjs +5 -5
  422. package/esm2022/tabs/src/tabs.component.mjs +103 -102
  423. package/esm2022/tabs/src/tabs.module.mjs +26 -25
  424. package/esm2022/tag/acorex-components-tag.mjs +4 -4
  425. package/esm2022/tag/public-api.mjs +2 -2
  426. package/esm2022/tag/src/tag.component.mjs +30 -29
  427. package/esm2022/tag/src/tag.module.mjs +20 -19
  428. package/esm2022/textarea/acorex-components-textarea.mjs +4 -4
  429. package/esm2022/textarea/public-api.mjs +2 -2
  430. package/esm2022/textarea/src/textarea.component.mjs +30 -29
  431. package/esm2022/textarea/src/textarea.module.mjs +20 -19
  432. package/esm2022/textbox/acorex-components-textbox.mjs +4 -4
  433. package/esm2022/textbox/public-api.mjs +3 -3
  434. package/esm2022/textbox/src/mask-options.directive.mjs +20 -19
  435. package/esm2022/textbox/src/textbox.component.mjs +96 -95
  436. package/esm2022/textbox/src/textbox.module.mjs +39 -38
  437. package/esm2022/time-box/acorex-components-time-box.mjs +4 -4
  438. package/esm2022/time-box/public-api.mjs +2 -2
  439. package/esm2022/time-box/src/time-box.component.mjs +306 -305
  440. package/esm2022/time-box/src/time-box.module.mjs +33 -32
  441. package/esm2022/toast/acorex-components-toast.mjs +4 -4
  442. package/esm2022/toast/public-api.mjs +4 -4
  443. package/esm2022/toast/src/toast.class.mjs +1 -1
  444. package/esm2022/toast/src/toast.component.mjs +68 -67
  445. package/esm2022/toast/src/toast.module.mjs +23 -22
  446. package/esm2022/toast/src/toast.service.mjs +137 -136
  447. package/esm2022/tooltip/acorex-components-tooltip.mjs +4 -4
  448. package/esm2022/tooltip/public-api.mjs +3 -3
  449. package/esm2022/tooltip/src/tooltip.component.mjs +22 -21
  450. package/esm2022/tooltip/src/tooltip.directive.mjs +164 -163
  451. package/esm2022/tooltip/src/tooltip.module.mjs +23 -22
  452. package/esm2022/tree-view/acorex-components-tree-view.mjs +4 -4
  453. package/esm2022/tree-view/public-api.mjs +2 -2
  454. package/esm2022/tree-view/src/tree-view.component.mjs +108 -107
  455. package/esm2022/tree-view/src/tree-view.module.mjs +21 -20
  456. package/esm2022/uploader/acorex-components-uploader.mjs +4 -4
  457. package/esm2022/uploader/public-api.mjs +2 -2
  458. package/esm2022/uploader/src/uploader.component.mjs +102 -101
  459. package/esm2022/uploader/src/uploader.module.mjs +21 -20
  460. package/fesm2022/acorex-components-action-sheet.mjs +170 -170
  461. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  462. package/fesm2022/acorex-components-alert.mjs +196 -196
  463. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  464. package/fesm2022/acorex-components-avatar.mjs +66 -66
  465. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  466. package/fesm2022/acorex-components-badge.mjs +39 -39
  467. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  468. package/fesm2022/acorex-components-breadcrumbs.mjs +78 -78
  469. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  470. package/fesm2022/acorex-components-button.mjs +245 -245
  471. package/fesm2022/acorex-components-button.mjs.map +1 -1
  472. package/fesm2022/acorex-components-calendar.mjs +815 -815
  473. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  474. package/fesm2022/acorex-components-card.mjs +28 -28
  475. package/fesm2022/acorex-components-card.mjs.map +1 -1
  476. package/fesm2022/acorex-components-checkbox.mjs +51 -51
  477. package/fesm2022/acorex-components-checkbox.mjs.map +1 -1
  478. package/fesm2022/acorex-components-chips.mjs +42 -42
  479. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  480. package/fesm2022/acorex-components-collapse.mjs +102 -102
  481. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  482. package/fesm2022/acorex-components-color-palette.mjs +717 -717
  483. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  484. package/fesm2022/acorex-components-color-picker.mjs +153 -153
  485. package/fesm2022/acorex-components-color-picker.mjs.map +1 -1
  486. package/fesm2022/acorex-components-common.mjs +1150 -1150
  487. package/fesm2022/acorex-components-common.mjs.map +1 -1
  488. package/fesm2022/acorex-components-context-menu.mjs +287 -287
  489. package/fesm2022/acorex-components-context-menu.mjs.map +1 -1
  490. package/fesm2022/acorex-components-data-pager.mjs +487 -487
  491. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  492. package/fesm2022/acorex-components-data-table.mjs +205 -205
  493. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  494. package/fesm2022/acorex-components-date-picker.mjs +256 -256
  495. package/fesm2022/acorex-components-date-picker.mjs.map +1 -1
  496. package/fesm2022/acorex-components-decorators.mjs +287 -287
  497. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  498. package/fesm2022/acorex-components-dialog.mjs +207 -207
  499. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  500. package/fesm2022/acorex-components-drawer.mjs +174 -174
  501. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  502. package/fesm2022/acorex-components-dropdown.mjs +111 -111
  503. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  504. package/fesm2022/acorex-components-form.mjs +392 -392
  505. package/fesm2022/acorex-components-form.mjs.map +1 -1
  506. package/fesm2022/acorex-components-image.mjs +88 -88
  507. package/fesm2022/acorex-components-image.mjs.map +1 -1
  508. package/fesm2022/acorex-components-label.mjs +59 -59
  509. package/fesm2022/acorex-components-label.mjs.map +1 -1
  510. package/fesm2022/acorex-components-loading.mjs +308 -308
  511. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  512. package/fesm2022/acorex-components-menu.mjs +359 -359
  513. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  514. package/fesm2022/acorex-components-mixin.mjs +1214 -1214
  515. package/fesm2022/acorex-components-mixin.mjs.map +1 -1
  516. package/fesm2022/acorex-components-notification.mjs +200 -200
  517. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  518. package/fesm2022/acorex-components-number-box.mjs +284 -284
  519. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  520. package/fesm2022/acorex-components-page.mjs +112 -112
  521. package/fesm2022/acorex-components-page.mjs.map +1 -1
  522. package/fesm2022/acorex-components-password-box.mjs +81 -81
  523. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  524. package/fesm2022/acorex-components-picker.mjs +54 -54
  525. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  526. package/fesm2022/acorex-components-popover.mjs +266 -266
  527. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  528. package/fesm2022/acorex-components-popup.mjs +258 -258
  529. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  530. package/fesm2022/acorex-components-progress-bar.mjs +43 -43
  531. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  532. package/fesm2022/acorex-components-radio.mjs +50 -50
  533. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  534. package/fesm2022/acorex-components-range-slider.mjs +127 -127
  535. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  536. package/fesm2022/acorex-components-rating.mjs +51 -51
  537. package/fesm2022/acorex-components-rating.mjs.map +1 -1
  538. package/fesm2022/acorex-components-result.mjs +35 -35
  539. package/fesm2022/acorex-components-result.mjs.map +1 -1
  540. package/fesm2022/acorex-components-search-box.mjs +59 -59
  541. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  542. package/fesm2022/acorex-components-select-box.mjs +422 -422
  543. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  544. package/fesm2022/acorex-components-selection-list.mjs +68 -69
  545. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  546. package/fesm2022/acorex-components-switch.mjs +74 -74
  547. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  548. package/fesm2022/acorex-components-tabs.mjs +227 -227
  549. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  550. package/fesm2022/acorex-components-tag.mjs +38 -38
  551. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  552. package/fesm2022/acorex-components-textarea.mjs +37 -37
  553. package/fesm2022/acorex-components-textarea.mjs.map +1 -1
  554. package/fesm2022/acorex-components-textbox.mjs +130 -130
  555. package/fesm2022/acorex-components-textbox.mjs.map +1 -1
  556. package/fesm2022/acorex-components-time-box.mjs +319 -319
  557. package/fesm2022/acorex-components-time-box.mjs.map +1 -1
  558. package/fesm2022/acorex-components-toast.mjs +204 -204
  559. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  560. package/fesm2022/acorex-components-tooltip.mjs +187 -187
  561. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  562. package/fesm2022/acorex-components-tree-view.mjs +116 -116
  563. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  564. package/fesm2022/acorex-components-uploader.mjs +109 -109
  565. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  566. package/fesm2022/acorex-components.mjs +5 -5
  567. package/form/index.d.ts +5 -5
  568. package/form/public-api.d.ts +6 -6
  569. package/form/src/form-field.component.d.ts +8 -8
  570. package/form/src/form.component.d.ts +51 -51
  571. package/form/src/form.module.d.ts +15 -15
  572. package/form/src/validation-rule.widget.d.ts +18 -18
  573. package/form/src/validation-summary.component.d.ts +23 -23
  574. package/form/src/validation.class.d.ts +18 -18
  575. package/image/index.d.ts +5 -5
  576. package/image/public-api.d.ts +2 -2
  577. package/image/src/image.component.d.ts +27 -27
  578. package/image/src/image.module.d.ts +8 -8
  579. package/index.d.ts +5 -5
  580. package/label/index.d.ts +5 -5
  581. package/label/public-api.d.ts +2 -2
  582. package/label/src/label.component.d.ts +17 -17
  583. package/label/src/label.module.d.ts +8 -8
  584. package/loading/index.d.ts +5 -5
  585. package/loading/public-api.d.ts +5 -5
  586. package/loading/src/loading-spinner.component.d.ts +6 -6
  587. package/loading/src/loading.component.d.ts +21 -21
  588. package/loading/src/loading.directive.d.ts +22 -22
  589. package/loading/src/loading.module.d.ts +13 -13
  590. package/loading/src/loading.service.d.ts +48 -48
  591. package/menu/index.d.ts +5 -5
  592. package/menu/public-api.d.ts +2 -2
  593. package/menu/src/menu.component.d.ts +39 -39
  594. package/menu/src/menu.module.d.ts +12 -12
  595. package/mixin/index.d.ts +5 -5
  596. package/mixin/public-api.d.ts +17 -17
  597. package/mixin/src/base-components.class.d.ts +84 -84
  598. package/mixin/src/base-menu-mixin.class.d.ts +53 -53
  599. package/mixin/src/button-mixin.class.d.ts +53 -53
  600. package/mixin/src/clickable-mixin.class.d.ts +36 -36
  601. package/mixin/src/color-look-mixing.class.d.ts +44 -44
  602. package/mixin/src/constratctor.d.ts +4 -4
  603. package/mixin/src/datalist-component.class.d.ts +59 -59
  604. package/mixin/src/datalist.class.d.ts +11 -11
  605. package/mixin/src/dropdown-mixin.class.d.ts +47 -47
  606. package/mixin/src/interactive-mixin.class.d.ts +63 -63
  607. package/mixin/src/loading-mixin.class.d.ts +40 -40
  608. package/mixin/src/mixin.class.d.ts +679 -679
  609. package/mixin/src/page-component.class.d.ts +28 -28
  610. package/mixin/src/selection-component.class.d.ts +61 -61
  611. package/mixin/src/sizable-mixin.class.d.ts +34 -34
  612. package/mixin/src/textbox-mixin.class.d.ts +72 -72
  613. package/mixin/src/value-mixin.class.d.ts +63 -63
  614. package/notification/index.d.ts +5 -5
  615. package/notification/public-api.d.ts +4 -4
  616. package/notification/src/notification.class.d.ts +18 -18
  617. package/notification/src/notification.component.d.ts +30 -30
  618. package/notification/src/notification.module.d.ts +10 -10
  619. package/notification/src/notification.service.d.ts +16 -16
  620. package/number-box/index.d.ts +5 -5
  621. package/number-box/public-api.d.ts +2 -2
  622. package/number-box/src/number-box.component.d.ts +77 -77
  623. package/number-box/src/number-box.module.d.ts +12 -12
  624. package/package.json +8 -8
  625. package/page/index.d.ts +5 -5
  626. package/page/public-api.d.ts +3 -3
  627. package/page/src/base-page.class.d.ts +25 -25
  628. package/page/src/page.component.d.ts +14 -14
  629. package/page/src/page.module.d.ts +6 -6
  630. package/password-box/index.d.ts +5 -5
  631. package/password-box/public-api.d.ts +2 -2
  632. package/password-box/src/password-box.component.d.ts +25 -25
  633. package/password-box/src/password-box.module.d.ts +11 -11
  634. package/picker/index.d.ts +5 -5
  635. package/picker/public-api.d.ts +3 -3
  636. package/picker/src/picker-column.component.d.ts +11 -11
  637. package/picker/src/picker.component.d.ts +10 -10
  638. package/picker/src/picker.module.d.ts +14 -14
  639. package/popover/index.d.ts +5 -5
  640. package/popover/public-api.d.ts +2 -2
  641. package/popover/src/popover.component.d.ts +51 -51
  642. package/popover/src/popover.module.d.ts +8 -8
  643. package/popup/index.d.ts +5 -5
  644. package/popup/public-api.d.ts +3 -3
  645. package/popup/src/popup.component.d.ts +45 -45
  646. package/popup/src/popup.module.d.ts +14 -14
  647. package/popup/src/popup.service.d.ts +42 -42
  648. package/progress-bar/index.d.ts +5 -5
  649. package/progress-bar/public-api.d.ts +2 -2
  650. package/progress-bar/src/progress-bar.component.d.ts +18 -18
  651. package/progress-bar/src/progress-bar.module.d.ts +8 -8
  652. package/public-api.d.ts +1 -1
  653. package/radio/index.d.ts +5 -5
  654. package/radio/public-api.d.ts +2 -2
  655. package/radio/src/radio.component.d.ts +18 -18
  656. package/radio/src/radio.module.d.ts +9 -9
  657. package/range-slider/index.d.ts +5 -5
  658. package/range-slider/public-api.d.ts +2 -2
  659. package/range-slider/src/range-slider.component.d.ts +41 -41
  660. package/range-slider/src/range-slider.module.d.ts +9 -9
  661. package/rating/index.d.ts +5 -5
  662. package/rating/public-api.d.ts +2 -2
  663. package/rating/src/rating.component.d.ts +21 -21
  664. package/rating/src/rating.component.module.d.ts +8 -8
  665. package/result/index.d.ts +5 -5
  666. package/result/public-api.d.ts +2 -2
  667. package/result/src/result.component.d.ts +12 -12
  668. package/result/src/result.module.d.ts +8 -8
  669. package/search-box/index.d.ts +5 -5
  670. package/search-box/public-api.d.ts +2 -2
  671. package/search-box/src/search-box.component.d.ts +18 -18
  672. package/search-box/src/search-box.module.d.ts +12 -12
  673. package/select-box/index.d.ts +5 -5
  674. package/select-box/public-api.d.ts +2 -2
  675. package/select-box/src/selectbox.component.d.ts +66 -66
  676. package/select-box/src/selectbox.module.d.ts +19 -19
  677. package/selection-list/index.d.ts +5 -5
  678. package/selection-list/public-api.d.ts +2 -2
  679. package/selection-list/src/selection-list.component.d.ts +23 -23
  680. package/selection-list/src/selection-list.module.d.ts +13 -13
  681. package/switch/index.d.ts +5 -5
  682. package/switch/public-api.d.ts +3 -3
  683. package/switch/src/switch-content.component.d.ts +8 -8
  684. package/switch/src/switch.component.d.ts +13 -13
  685. package/switch/src/switch.module.d.ts +11 -11
  686. package/tabs/index.d.ts +5 -5
  687. package/tabs/public-api.d.ts +5 -5
  688. package/tabs/src/tab-content.directive.d.ts +11 -11
  689. package/tabs/src/tab-item.component.d.ts +48 -48
  690. package/tabs/src/tabs.class.d.ts +7 -7
  691. package/tabs/src/tabs.component.d.ts +29 -29
  692. package/tabs/src/tabs.module.d.ts +12 -12
  693. package/tag/index.d.ts +5 -5
  694. package/tag/public-api.d.ts +2 -2
  695. package/tag/src/tag.component.d.ts +11 -11
  696. package/tag/src/tag.module.d.ts +8 -8
  697. package/textarea/index.d.ts +5 -5
  698. package/textarea/public-api.d.ts +2 -2
  699. package/textarea/src/textarea.component.d.ts +14 -14
  700. package/textarea/src/textarea.module.d.ts +9 -9
  701. package/textbox/index.d.ts +5 -5
  702. package/textbox/public-api.d.ts +3 -3
  703. package/textbox/src/mask-options.directive.d.ts +13 -13
  704. package/textbox/src/textbox.component.d.ts +27 -27
  705. package/textbox/src/textbox.module.d.ts +13 -13
  706. package/time-box/index.d.ts +5 -5
  707. package/time-box/public-api.d.ts +2 -2
  708. package/time-box/src/time-box.component.d.ts +50 -50
  709. package/time-box/src/time-box.module.d.ts +11 -11
  710. package/toast/index.d.ts +5 -5
  711. package/toast/public-api.d.ts +4 -4
  712. package/toast/src/toast.class.d.ts +15 -15
  713. package/toast/src/toast.component.d.ts +25 -25
  714. package/toast/src/toast.module.d.ts +9 -9
  715. package/toast/src/toast.service.d.ts +21 -21
  716. package/tooltip/index.d.ts +5 -5
  717. package/tooltip/public-api.d.ts +3 -3
  718. package/tooltip/src/tooltip.component.d.ts +11 -11
  719. package/tooltip/src/tooltip.directive.d.ts +22 -22
  720. package/tooltip/src/tooltip.module.d.ts +10 -10
  721. package/tree-view/index.d.ts +5 -5
  722. package/tree-view/public-api.d.ts +2 -2
  723. package/tree-view/src/tree-view.component.d.ts +33 -33
  724. package/tree-view/src/tree-view.module.d.ts +9 -9
  725. package/uploader/index.d.ts +5 -5
  726. package/uploader/public-api.d.ts +2 -2
  727. package/uploader/src/uploader.component.d.ts +28 -28
  728. package/uploader/src/uploader.module.d.ts +9 -9
@@ -1,305 +1,306 @@
1
- import { AXStringUtil } from '@acorex/core/utils';
2
- import { AXDateTime } from '@acorex/core/dateTime';
3
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, EventEmitter, Output, Input, ViewChild, } from '@angular/core';
4
- import IMask from 'imask';
5
- import { IMaskDirective } from 'angular-imask';
6
- import { AXBaseTextBoxMixin } from '@acorex/components/mixin';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/forms";
9
- import * as i2 from "angular-imask";
10
- /**
11
- * The Button is a component which detects user interaction and triggers a corresponding event
12
- *
13
- * @category Components
14
- */
15
- export class AXTimeBoxComponent extends AXBaseTextBoxMixin {
16
- cdr;
17
- input;
18
- _minValue;
19
- get minValue() {
20
- return this._minValue;
21
- }
22
- set minValue(v) {
23
- this._minValue = v;
24
- }
25
- _maxValue;
26
- get maxValue() {
27
- return this._maxValue;
28
- }
29
- set maxValue(v) {
30
- this._maxValue = v;
31
- }
32
- formatChange = new EventEmitter();
33
- _format = 'HH:mm';
34
- get format() {
35
- return this._format;
36
- }
37
- set format(v) {
38
- this._setOption({
39
- name: 'format',
40
- value: v,
41
- });
42
- }
43
- displayTextChange = new EventEmitter();
44
- _displayText = '';
45
- get displayText() {
46
- return this._displayText;
47
- }
48
- set displayText(v) {
49
- this._displayText = v;
50
- this.displayTextChange.emit(v);
51
- }
52
- /**
53
- * @ignore
54
- */
55
- _maskObj;
56
- _maskDirective;
57
- /**
58
- * @ignore
59
- */
60
- constructor(elementRef, cdr) {
61
- super(elementRef, cdr);
62
- this.cdr = cdr;
63
- }
64
- onViewInit() {
65
- super.onViewInit();
66
- this._updateMask();
67
- }
68
- _onValueChanged(oldValue, newValue) {
69
- this._updateText();
70
- this._maskDirective?.maskRef?.updateValue();
71
- this._maskDirective?.maskRef?.updateControl();
72
- }
73
- _updateText() {
74
- this.displayText = this.value
75
- ? AXDateTime.convert(this.value).format(this.format)
76
- : '';
77
- }
78
- _onOptionChanged(option) {
79
- super._onOptionChanged(option);
80
- this._updateMask();
81
- }
82
- focus() {
83
- this.input.nativeElement.focus();
84
- }
85
- _updateMask() {
86
- if (!this._maskObj) {
87
- this._maskObj = IMask.createMask({
88
- mask: this.format,
89
- lazy: false,
90
- autofix: true,
91
- overwrite: true,
92
- blocks: {
93
- HH: {
94
- mask: IMask.MaskedRange,
95
- from: 0,
96
- to: 23,
97
- maxLength: 2,
98
- placeholderChar: '0',
99
- autofix: 'pad',
100
- },
101
- mm: {
102
- mask: IMask.MaskedRange,
103
- from: 0,
104
- to: 59,
105
- maxLength: 2,
106
- placeholderChar: '0',
107
- autofix: 'pad',
108
- },
109
- ss: {
110
- mask: IMask.MaskedRange,
111
- from: 0,
112
- to: 59,
113
- maxLength: 2,
114
- placeholderChar: '0',
115
- autofix: 'pad',
116
- },
117
- },
118
- });
119
- }
120
- else {
121
- this._maskObj.updateOptions({
122
- mask: this.format,
123
- });
124
- }
125
- this._maskDirective?.maskRef?.updateValue();
126
- this._maskDirective?.maskRef?.updateControl();
127
- }
128
- _handleOnKeydownEvent(e) {
129
- debugger;
130
- const ignore = () => {
131
- e.preventDefault();
132
- e.stopPropagation();
133
- };
134
- const nums = Array(10)
135
- .fill(0)
136
- .map((v, i) => i.toString());
137
- const chars = [
138
- 'Backspace',
139
- 'ArrowDown',
140
- 'ArrowUp',
141
- 'ArrowRight',
142
- 'ArrowLeft',
143
- 'Tab',
144
- 'Enter',
145
- ];
146
- const input = e.target;
147
- const key = e.key;
148
- const valStr = input.value;
149
- const sStart = input.selectionStart || 0;
150
- const sEnd = input.selectionEnd || 0;
151
- const dateVal = new AXDateTime(this.value);
152
- //
153
- const re = /[a-zA-Z0-9]+/gi;
154
- const parts = Array.from(this.format.matchAll(re));
155
- const word = valStr.substring(sStart, sEnd);
156
- const part = parts.find((c) => c.index >= sStart);
157
- const next = Array.from(valStr.substr(sEnd).matchAll(re));
158
- const prev = Array.from(valStr.substring(0, sStart).matchAll(re));
159
- //const part = parts[Array.from(valStr.matchAll(re)).findIndex(c => c[0] == word)];
160
- //
161
- const goNext = () => {
162
- this._highlightPart(input, sEnd + (next[0]?.index || 0));
163
- };
164
- const goPrev = () => {
165
- this._highlightPart(input, prev[prev.length - 1]?.index);
166
- };
167
- //
168
- if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {
169
- ignore();
170
- e.key === 'ArrowRight' ? goNext() : goPrev();
171
- }
172
- else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
173
- if (e.ctrlKey && e.key === 'ArrowDown') {
174
- //this.open();
175
- }
176
- else {
177
- const sign = e.key === 'ArrowUp' ? +1 : -1;
178
- if (part) {
179
- switch (part[0]) {
180
- case 'hh':
181
- case 'h':
182
- case 'HH':
183
- case 'H':
184
- this.value = dateVal.add('hour', sign).date;
185
- break;
186
- case 'mm':
187
- this.value = dateVal.add('minute', sign).date;
188
- break;
189
- case 'ss':
190
- case 'SS':
191
- this.value = dateVal.add('second', sign).date;
192
- break;
193
- }
194
- setTimeout(() => {
195
- this._highlightPart(input, sStart);
196
- }, 10);
197
- }
198
- }
199
- ignore();
200
- }
201
- else if (e.key == 'Backspace') {
202
- // if (this.allowNull) {
203
- // this.value = null;
204
- // }
205
- // ignore();
206
- }
207
- else if (e.key == 'Tab') {
208
- if (sEnd < valStr.length && !e.shiftKey) {
209
- goNext();
210
- ignore();
211
- }
212
- else if (sStart != 0 && e.shiftKey) {
213
- goPrev();
214
- ignore();
215
- }
216
- }
217
- else {
218
- // const keys = {
219
- // h: {
220
- // v: /^[0-9]$|^[1][0-2]$/,
221
- // p: '0'
222
- // },
223
- // H: {
224
- // v: /^[0-9]$|^1[0-9]$|2[0-3]$/,
225
- // p: '0'
226
- // },
227
- // m: {
228
- // v: /^[0-9]$|^[1-5][0-9]$/,
229
- // p: '0'
230
- // }
231
- // }
232
- // // const re = new RegExp(_.orderBy(Object.keys(keys), c => c.length, ['desc']).join("|"), "gi");
233
- // // return format.replace(re, function (matched) {
234
- // // return keys[matched]();
235
- // // });
236
- // const t = keys[part[0]];
237
- // if (!t.v.test(key)) {
238
- // ignore();
239
- // }
240
- // else {
241
- // this._updateText()
242
- // }
243
- }
244
- // super._emitOnKeydownEvent(e);
245
- }
246
- _handleKeyUpEvent(e) {
247
- // const input = (e.target as HTMLInputElement);
248
- // setTimeout(() => {
249
- // this._highlightPart(input);
250
- // }, 700);
251
- }
252
- _emitOnFocusEvent(e) {
253
- const input = e.target;
254
- this._highlightPart(input);
255
- super._emitOnFocusEvent(e);
256
- }
257
- _handleOnInputClickEvent(e) {
258
- const input = e.target;
259
- this._highlightPart(input);
260
- e.preventDefault();
261
- e.stopPropagation();
262
- }
263
- _highlightPart(input, pos) {
264
- const { start, end } = AXStringUtil.getWordBoundsAtPosition(input.value, pos != null ? pos : input.selectionStart || 0);
265
- input.setSelectionRange(start, end);
266
- }
267
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXTimeBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
268
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: AXTimeBoxComponent, selector: "ax-time-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", size: "size", value: "value", placeholder: "placeholder", maxLength: "maxLength", allowNull: "allowNull", type: "type", autoComplete: "autoComplete", name: "name", checked: "checked", minValue: "minValue", maxValue: "maxValue", format: "format", displayText: "displayText" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", formatChange: "formatChange", displayTextChange: "displayTextChange" }, host: { classAttribute: "ax-editor-container ax-drop-down" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "_maskDirective", first: true, predicate: IMaskDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input #input class=\"ax-input\" \r\n [imask]=\"_maskObj\" \r\n [unmask]=\"false\" \r\n type=\"text\" \r\n [attr.placeholder]=\"placeholder\"\r\n [class.ax-state-disabled]=\"disabled\" \r\n [class.ax-state-readonly]=\"readonly\" \r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\" \r\n [tabindex]=\"tabIndex\" \r\n [ngModel]=\"displayText\" \r\n (mouseup)=\"_handleOnInputClickEvent($event)\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\"\r\n (keyup)=\"_handleKeyUpEvent($event)\" \r\n (keydown)=\"_handleOnKeydownEvent($event)\" \r\n autocomplete=\"off\">\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>", dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
269
- }
270
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXTimeBoxComponent, decorators: [{
271
- type: Component,
272
- args: [{ selector: 'ax-time-box', inputs: [
273
- 'disabled',
274
- 'readonly',
275
- 'tabIndex',
276
- 'size',
277
- 'value',
278
- 'placeholder', 'maxLength', 'allowNull', 'type', 'autoComplete', 'readonly', 'allowNull', 'value', 'name', 'checked',
279
- ], outputs: [
280
- 'valueChange',
281
- 'onValueChanged',
282
- 'onBlur',
283
- 'onFocus',
284
- 'valueChange', 'onValueChanged',
285
- ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ax-editor-container ax-drop-down' }, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input #input class=\"ax-input\" \r\n [imask]=\"_maskObj\" \r\n [unmask]=\"false\" \r\n type=\"text\" \r\n [attr.placeholder]=\"placeholder\"\r\n [class.ax-state-disabled]=\"disabled\" \r\n [class.ax-state-readonly]=\"readonly\" \r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\" \r\n [tabindex]=\"tabIndex\" \r\n [ngModel]=\"displayText\" \r\n (mouseup)=\"_handleOnInputClickEvent($event)\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\"\r\n (keyup)=\"_handleKeyUpEvent($event)\" \r\n (keydown)=\"_handleOnKeydownEvent($event)\" \r\n autocomplete=\"off\">\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>" }]
286
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { input: [{
287
- type: ViewChild,
288
- args: ['input']
289
- }], minValue: [{
290
- type: Input
291
- }], maxValue: [{
292
- type: Input
293
- }], formatChange: [{
294
- type: Output
295
- }], format: [{
296
- type: Input
297
- }], displayTextChange: [{
298
- type: Output
299
- }], displayText: [{
300
- type: Input
301
- }], _maskDirective: [{
302
- type: ViewChild,
303
- args: [IMaskDirective]
304
- }] } });
305
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvdGltZS1ib3gvc3JjL3RpbWUtYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3RpbWUtYm94L3NyYy90aW1lLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUd2QixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUE0QixNQUFNLDBCQUEwQixDQUFDOzs7O0FBSXhGOzs7O0dBSUc7QUF1QkgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGtCQUFrQjtJQStEWjtJQTVENUMsS0FBSyxDQUErQjtJQUU1QixTQUFTLENBQU87SUFDeEIsSUFDVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBVyxRQUFRLENBQUMsQ0FBTztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRU8sU0FBUyxDQUFPO0lBQ3hCLElBQ1csUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQVcsUUFBUSxDQUFDLENBQU87UUFDekIsSUFB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QUFNO3dCQUNOLE9BQU87d0JBQ1AsYUFBYSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUztxQkFDckgsV0FDUTt3QkFDUCxhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsUUFBUTt3QkFDUixTQUFTO3dCQUNULGFBQWEsRUFBRSxnQkFBZ0I7cUJBQ2hDLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLGtDQUFrQyxFQUFFO2lJQUtuRCxLQUFLO3NCQURKLFNBQVM7dUJBQUMsT0FBTztnQkFLUCxRQUFRO3NCQURsQixLQUFLO2dCQVVLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBU04sWUFBWTtzQkFEWCxNQUFNO2dCQUtJLE1BQU07c0JBRGhCLEtBQUs7Z0JBWUMsaUJBQWlCO3NCQUR2QixNQUFNO2dCQUtJLFdBQVc7c0JBRHJCLEtBQUs7Z0JBZ0JFLGNBQWM7c0JBRHJCLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYU3RyaW5nVXRpbCB9IGZyb20gJ0BhY29yZXgvY29yZS91dGlscyc7XHJcbmltcG9ydCB7IEFYRGF0ZVRpbWUgfSBmcm9tICdAYWNvcmV4L2NvcmUvZGF0ZVRpbWUnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPdXRwdXQsXHJcbiAgSW5wdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgSU1hc2sgZnJvbSAnaW1hc2snO1xyXG5pbXBvcnQgeyBJTWFza0RpcmVjdGl2ZSB9IGZyb20gJ2FuZ3VsYXItaW1hc2snO1xyXG5pbXBvcnQgeyBBWEJhc2VUZXh0Qm94TWl4aW4sIEFYQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9taXhpbic7XHJcblxyXG5cclxuZXhwb3J0IHR5cGUgQVhfVElNRV9GT1JNQVQgPSAnSEg6bW0nIHwgJ0hIOm1tOnNzJztcclxuLyoqXHJcbiAqIFRoZSBCdXR0b24gaXMgYSBjb21wb25lbnQgd2hpY2ggZGV0ZWN0cyB1c2VyIGludGVyYWN0aW9uIGFuZCB0cmlnZ2VycyBhIGNvcnJlc3BvbmRpbmcgZXZlbnRcclxuICpcclxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXgtdGltZS1ib3gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lLWJveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgaW5wdXRzOiBbXHJcbiAgICAnZGlzYWJsZWQnLFxyXG4gICAgJ3JlYWRvbmx5JyxcclxuICAgICd0YWJJbmRleCcsXHJcbiAgICAnc2l6ZScsXHJcbiAgICAndmFsdWUnLFxyXG4gICAgJ3BsYWNlaG9sZGVyJywgJ21heExlbmd0aCcsICdhbGxvd051bGwnLCAndHlwZScsICdhdXRvQ29tcGxldGUnLCAncmVhZG9ubHknLCAnYWxsb3dOdWxsJywgJ3ZhbHVlJywgJ25hbWUnLCAnY2hlY2tlZCcsXHJcbiAgXSxcclxuICBvdXRwdXRzOiBbXHJcbiAgICAndmFsdWVDaGFuZ2UnLFxyXG4gICAgJ29uVmFsdWVDaGFuZ2VkJyxcclxuICAgICdvbkJsdXInLFxyXG4gICAgJ29uRm9jdXMnLFxyXG4gICAgJ3ZhbHVlQ2hhbmdlJywgJ29uVmFsdWVDaGFuZ2VkJyxcclxuICBdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgaG9zdDogeyBjbGFzczogJ2F4LWVkaXRvci1jb250YWluZXIgYXgtZHJvcC1kb3duJyB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhUaW1lQm94Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlVGV4dEJveE1peGluIHtcclxuXHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKVxyXG4gIGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG5cclxuICBwcml2YXRlIF9taW5WYWx1ZTogRGF0ZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgbWluVmFsdWUoKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWluVmFsdWU7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgbWluVmFsdWUodjogRGF0ZSkge1xyXG4gICAgdGhpcy5fbWluVmFsdWUgPSB2O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbWF4VmFsdWU6IERhdGU7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IG1heFZhbHVlKCk6IERhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX21heFZhbHVlO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IG1heFZhbHVlKHY6IERhdGUpIHtcclxuICAgIHRoaXMuX21heFZhbHVlID0gdjtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGZvcm1hdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBwcml2YXRlIF9mb3JtYXQ6IEFYX1RJTUVfRk9STUFUID0gJ0hIOm1tJztcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgZm9ybWF0KCk6IEFYX1RJTUVfRk9STUFUIHtcclxuICAgIHJldHVybiB0aGlzLl9mb3JtYXQ7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgZm9ybWF0KHY6IEFYX1RJTUVfRk9STUFUKSB7XHJcbiAgICB0aGlzLl9zZXRPcHRpb24oe1xyXG4gICAgICBuYW1lOiAnZm9ybWF0JyxcclxuICAgICAgdmFsdWU6IHYsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBkaXNwbGF5VGV4dENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBwcml2YXRlIF9kaXNwbGF5VGV4dDogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBkaXNwbGF5VGV4dCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlUZXh0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBkaXNwbGF5VGV4dCh2OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2Rpc3BsYXlUZXh0ID0gdjtcclxuICAgIHRoaXMuZGlzcGxheVRleHRDaGFuZ2UuZW1pdCh2KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICBAaWdub3JlXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIF9tYXNrT2JqOiBJTWFzay5NYXNrZWRQYXR0ZXJuO1xyXG5cclxuICBAVmlld0NoaWxkKElNYXNrRGlyZWN0aXZlKVxyXG4gIHByaXZhdGUgX21hc2tEaXJlY3RpdmU6IElNYXNrRGlyZWN0aXZlPElNYXNrLk1hc2tlZE51bWJlcj47XHJcblxyXG4gIC8qKlxyXG4gICAqICBAaWdub3JlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIpO1xyXG4gIH1cclxuXHJcbiAgb25WaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm9uVmlld0luaXQoKTtcclxuICAgIHRoaXMuX3VwZGF0ZU1hc2soKTtcclxuICB9XHJcblxyXG4gIF9vblZhbHVlQ2hhbmdlZChvbGRWYWx1ZT86IGFueSwgbmV3VmFsdWU/OiBhbnkpIHtcclxuICAgIHRoaXMuX3VwZGF0ZVRleHQoKTtcclxuICAgIHRoaXMuX21hc2tEaXJlY3RpdmU/Lm1hc2tSZWY/LnVwZGF0ZVZhbHVlKCk7XHJcbiAgICB0aGlzLl9tYXNrRGlyZWN0aXZlPy5tYXNrUmVmPy51cGRhdGVDb250cm9sKCk7XHJcbiAgfVxyXG5cclxuICBfdXBkYXRlVGV4dCgpIHtcclxuICAgIHRoaXMuZGlzcGxheVRleHQgPSB0aGlzLnZhbHVlXHJcbiAgICAgID8gQVhEYXRlVGltZS5jb252ZXJ0KHRoaXMudmFsdWUpLmZvcm1hdCh0aGlzLmZvcm1hdClcclxuICAgICAgOiAnJztcclxuICB9XHJcblxyXG4gIF9vbk9wdGlvbkNoYW5nZWQob3B0aW9uOiBBWENvbXBvbmVudE9wdGlvbkNoYW5nZWQpOiB2b2lkIHtcclxuICAgIHN1cGVyLl9vbk9wdGlvbkNoYW5nZWQob3B0aW9uKTtcclxuICAgIHRoaXMuX3VwZGF0ZU1hc2soKTtcclxuICB9XHJcblxyXG4gIGZvY3VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKClcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIF91cGRhdGVNYXNrKCkge1xyXG4gICAgaWYgKCF0aGlzLl9tYXNrT2JqKSB7XHJcbiAgICAgIHRoaXMuX21hc2tPYmogPSBJTWFzay5jcmVhdGVNYXNrKHtcclxuICAgICAgICBtYXNrOiB0aGlzLmZvcm1hdCxcclxuICAgICAgICBsYXp5OiBmYWxzZSxcclxuICAgICAgICBhdXRvZml4OiB0cnVlLFxyXG4gICAgICAgIG92ZXJ3cml0ZTogdHJ1ZSxcclxuICAgICAgICBibG9ja3M6IHtcclxuICAgICAgICAgIEhIOiB7XHJcbiAgICAgICAgICAgIG1hc2s6IElNYXNrLk1hc2tlZFJhbmdlLFxyXG4gICAgICAgICAgICBmcm9tOiAwLFxyXG4gICAgICAgICAgICB0bzogMjMsXHJcbiAgICAgICAgICAgIG1heExlbmd0aDogMixcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnMCcsXHJcbiAgICAgICAgICAgIGF1dG9maXg6ICdwYWQnLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG1tOiB7XHJcbiAgICAgICAgICAgIG1hc2s6IElNYXNrLk1hc2tlZFJhbmdlLFxyXG4gICAgICAgICAgICBmcm9tOiAwLFxyXG4gICAgICAgICAgICB0bzogNTksXHJcbiAgICAgICAgICAgIG1heExlbmd0aDogMixcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnMCcsXHJcbiAgICAgICAgICAgIGF1dG9maXg6ICdwYWQnLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHNzOiB7XHJcbiAgICAgICAgICAgIG1hc2s6IElNYXNrLk1hc2tlZFJhbmdlLFxyXG4gICAgICAgICAgICBmcm9tOiAwLFxyXG4gICAgICAgICAgICB0bzogNTksXHJcbiAgICAgICAgICAgIG1heExlbmd0aDogMixcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnMCcsXHJcbiAgICAgICAgICAgIGF1dG9maXg6ICdwYWQnLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX21hc2tPYmoudXBkYXRlT3B0aW9ucyh7XHJcbiAgICAgICAgbWFzazogdGhpcy5mb3JtYXQsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fbWFza0RpcmVjdGl2ZT8ubWFza1JlZj8udXBkYXRlVmFsdWUoKTtcclxuICAgIHRoaXMuX21hc2tEaXJlY3RpdmU/Lm1hc2tSZWY/LnVwZGF0ZUNvbnRyb2woKTtcclxuICB9XHJcblxyXG4gIF9oYW5kbGVPbktleWRvd25FdmVudChlOiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBkZWJ1Z2dlclxyXG4gICAgY29uc3QgaWdub3JlID0gKCkgPT4ge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IG51bXM6IHN0cmluZ1tdID0gQXJyYXkoMTApXHJcbiAgICAgIC5maWxsKDApXHJcbiAgICAgIC5tYXAoKHYsIGkpID0+IGkudG9TdHJpbmcoKSk7XHJcbiAgICBjb25zdCBjaGFyczogc3RyaW5nW10gPSBbXHJcbiAgICAgICdCYWNrc3BhY2UnLFxyXG4gICAgICAnQXJyb3dEb3duJyxcclxuICAgICAgJ0Fycm93VXAnLFxyXG4gICAgICAnQXJyb3dSaWdodCcsXHJcbiAgICAgICdBcnJvd0xlZnQnLFxyXG4gICAgICAnVGFiJyxcclxuICAgICAgJ0VudGVyJyxcclxuICAgIF07XHJcbiAgICBjb25zdCBpbnB1dCA9IGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBjb25zdCBrZXkgPSBlLmtleTtcclxuICAgIGNvbnN0IHZhbFN0ciA9IGlucHV0LnZhbHVlO1xyXG4gICAgY29uc3Qgc1N0YXJ0ID0gaW5wdXQuc2VsZWN0aW9uU3RhcnQgfHwgMDtcclxuICAgIGNvbnN0IHNFbmQgPSBpbnB1dC5zZWxlY3Rpb25FbmQgfHwgMDtcclxuICAgIGNvbnN0IGRhdGVWYWwgPSBuZXcgQVhEYXRlVGltZSh0aGlzLnZhbHVlKTtcclxuICAgIC8vXHJcbiAgICBjb25zdCByZSA9IC9bYS16QS1aMC05XSsvZ2k7XHJcbiAgICBjb25zdCBwYXJ0cyA9IEFycmF5LmZyb20odGhpcy5mb3JtYXQubWF0Y2hBbGwocmUpKTtcclxuICAgIGNvbnN0IHdvcmQgPSB2YWxTdHIuc3Vic3RyaW5nKHNTdGFydCwgc0VuZCk7XHJcbiAgICBjb25zdCBwYXJ0ID0gcGFydHMuZmluZCgoYzogYW55KSA9PiBjLmluZGV4ID49IHNTdGFydCk7XHJcbiAgICBjb25zdCBuZXh0ID0gQXJyYXkuZnJvbSh2YWxTdHIuc3Vic3RyKHNFbmQpLm1hdGNoQWxsKHJlKSk7XHJcbiAgICBjb25zdCBwcmV2ID0gQXJyYXkuZnJvbSh2YWxTdHIuc3Vic3RyaW5nKDAsIHNTdGFydCkubWF0Y2hBbGwocmUpKTtcclxuICAgIC8vY29uc3QgcGFydCA9IHBhcnRzW0FycmF5LmZyb20odmFsU3RyLm1hdGNoQWxsKHJlKSkuZmluZEluZGV4KGMgPT4gY1swXSA9PSB3b3JkKV07XHJcbiAgICAvL1xyXG5cclxuICAgIGNvbnN0IGdvTmV4dCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5faGlnaGxpZ2h0UGFydChpbnB1dCwgc0VuZCArIChuZXh0WzBdPy5pbmRleCB8fCAwKSk7XHJcbiAgICB9O1xyXG4gICAgY29uc3QgZ29QcmV2ID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLl9oaWdobGlnaHRQYXJ0KGlucHV0LCBwcmV2W3ByZXYubGVuZ3RoIC0gMV0/LmluZGV4KTtcclxuICAgIH07XHJcblxyXG4gICAgLy9cclxuICAgIGlmIChlLmtleSA9PT0gJ0Fycm93UmlnaHQnIHx8IGUua2V5ID09PSAnQXJyb3dMZWZ0Jykge1xyXG4gICAgICBpZ25vcmUoKTtcclxuICAgICAgZS5rZXkgPT09ICdBcnJvd1JpZ2h0JyA/IGdvTmV4dCgpIDogZ29QcmV2KCk7XHJcbiAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnQXJyb3dVcCcgfHwgZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgIGlmIChlLmN0cmxLZXkgJiYgZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgICAgLy90aGlzLm9wZW4oKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBzaWduID0gZS5rZXkgPT09ICdBcnJvd1VwJyA/ICsxIDogLTE7XHJcbiAgICAgICAgaWYgKHBhcnQpIHtcclxuICAgICAgICAgIHN3aXRjaCAocGFydFswXSkge1xyXG4gICAgICAgICAgICBjYXNlICdoaCc6XHJcbiAgICAgICAgICAgIGNhc2UgJ2gnOlxyXG4gICAgICAgICAgICBjYXNlICdISCc6XHJcbiAgICAgICAgICAgIGNhc2UgJ0gnOlxyXG4gICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRlVmFsLmFkZCgnaG91cicsIHNpZ24pLmRhdGU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ21tJzpcclxuICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gZGF0ZVZhbC5hZGQoJ21pbnV0ZScsIHNpZ24pLmRhdGU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3NzJzpcclxuICAgICAgICAgICAgY2FzZSAnU1MnOlxyXG4gICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRlVmFsLmFkZCgnc2Vjb25kJywgc2lnbikuZGF0ZTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9oaWdobGlnaHRQYXJ0KGlucHV0LCBzU3RhcnQpO1xyXG4gICAgICAgICAgfSwgMTApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZ25vcmUoKTtcclxuICAgIH0gZWxzZSBpZiAoZS5rZXkgPT0gJ0JhY2tzcGFjZScpIHtcclxuICAgICAgLy8gaWYgKHRoaXMuYWxsb3dOdWxsKSB7XHJcbiAgICAgIC8vICAgICB0aGlzLnZhbHVlID0gbnVsbDtcclxuICAgICAgLy8gfVxyXG4gICAgICAvLyBpZ25vcmUoKTtcclxuICAgIH0gZWxzZSBpZiAoZS5rZXkgPT0gJ1RhYicpIHtcclxuICAgICAgaWYgKHNFbmQgPCB2YWxTdHIubGVuZ3RoICYmICFlLnNoaWZ0S2V5KSB7XHJcbiAgICAgICAgZ29OZXh0KCk7XHJcbiAgICAgICAgaWdub3JlKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoc1N0YXJ0ICE9IDAgJiYgZS5zaGlmdEtleSkge1xyXG4gICAgICAgIGdvUHJldigpO1xyXG4gICAgICAgIGlnbm9yZSgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBjb25zdCBrZXlzID0ge1xyXG4gICAgICAvLyAgICAgaDoge1xyXG4gICAgICAvLyAgICAgICAgIHY6IC9eWzAtOV0kfF5bMV1bMC0yXSQvLFxyXG4gICAgICAvLyAgICAgICAgIHA6ICcwJ1xyXG4gICAgICAvLyAgICAgfSxcclxuICAgICAgLy8gICAgIEg6IHtcclxuICAgICAgLy8gICAgICAgICB2OiAvXlswLTldJHxeMVswLTldJHwyWzAtM10kLyxcclxuICAgICAgLy8gICAgICAgICBwOiAnMCdcclxuICAgICAgLy8gICAgIH0sXHJcbiAgICAgIC8vICAgICBtOiB7XHJcbiAgICAgIC8vICAgICAgICAgdjogL15bMC05XSR8XlsxLTVdWzAtOV0kLyxcclxuICAgICAgLy8gICAgICAgICBwOiAnMCdcclxuICAgICAgLy8gICAgIH1cclxuICAgICAgLy8gfVxyXG4gICAgICAvLyAvLyBjb25zdCByZSA9IG5ldyBSZWdFeHAoXy5vcmRlckJ5KE9iamVjdC5rZXlzKGtleXMpLCBjID0+IGMubGVuZ3RoLCBbJ2Rlc2MnXSkuam9pbihcInxcIiksIFwiZ2lcIik7XHJcbiAgICAgIC8vIC8vIHJldHVybiBmb3JtYXQucmVwbGFjZShyZSwgZnVuY3Rpb24gKG1hdGNoZWQpIHtcclxuICAgICAgLy8gLy8gICByZXR1cm4ga2V5c1ttYXRjaGVkXSgpO1xyXG4gICAgICAvLyAvLyB9KTtcclxuICAgICAgLy8gY29uc3QgdCA9IGtleXNbcGFydFswXV07XHJcbiAgICAgIC8vIGlmICghdC52LnRlc3Qoa2V5KSkge1xyXG4gICAgICAvLyAgICAgaWdub3JlKCk7XHJcbiAgICAgIC8vIH1cclxuICAgICAgLy8gZWxzZSB7XHJcbiAgICAgIC8vICAgICB0aGlzLl91cGRhdGVUZXh0KClcclxuICAgICAgLy8gfVxyXG4gICAgfVxyXG4gICAgLy8gc3VwZXIuX2VtaXRPbktleWRvd25FdmVudChlKTtcclxuICB9XHJcblxyXG4gIF9oYW5kbGVLZXlVcEV2ZW50KGU6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIC8vIGNvbnN0IGlucHV0ID0gKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpO1xyXG4gICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAvLyAgICAgdGhpcy5faGlnaGxpZ2h0UGFydChpbnB1dCk7XHJcbiAgICAvLyB9LCA3MDApO1xyXG4gIH1cclxuXHJcbiAgX2VtaXRPbkZvY3VzRXZlbnQoZTogRm9jdXNFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgaW5wdXQgPSBlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgdGhpcy5faGlnaGxpZ2h0UGFydChpbnB1dCk7XHJcbiAgICBzdXBlci5fZW1pdE9uRm9jdXNFdmVudChlKTtcclxuICB9XHJcblxyXG4gIF9oYW5kbGVPbklucHV0Q2xpY2tFdmVudChlOiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBpbnB1dCA9IGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICB0aGlzLl9oaWdobGlnaHRQYXJ0KGlucHV0KTtcclxuICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oaWdobGlnaHRQYXJ0KGlucHV0OiBIVE1MSW5wdXRFbGVtZW50LCBwb3M/OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHsgc3RhcnQsIGVuZCB9ID0gQVhTdHJpbmdVdGlsLmdldFdvcmRCb3VuZHNBdFBvc2l0aW9uKFxyXG4gICAgICBpbnB1dC52YWx1ZSxcclxuICAgICAgcG9zICE9IG51bGwgPyBwb3MgOiBpbnB1dC5zZWxlY3Rpb25TdGFydCB8fCAwXHJcbiAgICApO1xyXG4gICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1wcmVmaXhcIj5cclxuPC9uZy1jb250ZW50PlxyXG48aW5wdXQgI2lucHV0IGNsYXNzPVwiYXgtaW5wdXRcIiBcclxuICAgIFtpbWFza109XCJfbWFza09ialwiIFxyXG4gICAgW3VubWFza109XCJmYWxzZVwiICBcclxuICAgIHR5cGU9XCJ0ZXh0XCIgXHJcbiAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBcclxuICAgIFtjbGFzcy5heC1zdGF0ZS1yZWFkb25seV09XCJyZWFkb25seVwiIFxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiIFxyXG4gICAgW3RhYmluZGV4XT1cInRhYkluZGV4XCIgXHJcbiAgICBbbmdNb2RlbF09XCJkaXNwbGF5VGV4dFwiIFxyXG4gICAgKG1vdXNldXApPVwiX2hhbmRsZU9uSW5wdXRDbGlja0V2ZW50KCRldmVudClcIlxyXG4gICAgKGZvY3VzKT1cIl9lbWl0T25Gb2N1c0V2ZW50KCRldmVudClcIlxyXG4gICAgKGJsdXIpPVwiX2VtaXRPbkJsdXJFdmVudCgkZXZlbnQpXCJcclxuICAgIChrZXl1cCk9XCJfaGFuZGxlS2V5VXBFdmVudCgkZXZlbnQpXCIgXHJcbiAgICAoa2V5ZG93bik9XCJfaGFuZGxlT25LZXlkb3duRXZlbnQoJGV2ZW50KVwiIFxyXG4gICAgYXV0b2NvbXBsZXRlPVwib2ZmXCI+XHJcbjxuZy1jb250ZW50IHNlbGVjdD1cImF4LXN1ZmZpeFwiPlxyXG48L25nLWNvbnRlbnQ+XHJcbjxuZy1jb250ZW50IHNlbGVjdD1cImF4LXZhbGlkYXRpb24tcnVsZVwiPlxyXG48L25nLWNvbnRlbnQ+Il19
1
+ import { AXStringUtil } from '@acorex/core/utils';
2
+ import { AXDateTime } from '@acorex/core/dateTime';
3
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, EventEmitter, Output, Input, ViewChild, } from '@angular/core';
4
+ import IMask from 'imask';
5
+ import { IMaskDirective } from 'angular-imask';
6
+ import { AXBaseTextBoxMixin } from '@acorex/components/mixin';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/forms";
9
+ import * as i2 from "angular-imask";
10
+ /**
11
+ * The Button is a component which detects user interaction and triggers a corresponding event
12
+ *
13
+ * @category Components
14
+ */
15
+ class AXTimeBoxComponent extends AXBaseTextBoxMixin {
16
+ cdr;
17
+ input;
18
+ _minValue;
19
+ get minValue() {
20
+ return this._minValue;
21
+ }
22
+ set minValue(v) {
23
+ this._minValue = v;
24
+ }
25
+ _maxValue;
26
+ get maxValue() {
27
+ return this._maxValue;
28
+ }
29
+ set maxValue(v) {
30
+ this._maxValue = v;
31
+ }
32
+ formatChange = new EventEmitter();
33
+ _format = 'HH:mm';
34
+ get format() {
35
+ return this._format;
36
+ }
37
+ set format(v) {
38
+ this._setOption({
39
+ name: 'format',
40
+ value: v,
41
+ });
42
+ }
43
+ displayTextChange = new EventEmitter();
44
+ _displayText = '';
45
+ get displayText() {
46
+ return this._displayText;
47
+ }
48
+ set displayText(v) {
49
+ this._displayText = v;
50
+ this.displayTextChange.emit(v);
51
+ }
52
+ /**
53
+ * @ignore
54
+ */
55
+ _maskObj;
56
+ _maskDirective;
57
+ /**
58
+ * @ignore
59
+ */
60
+ constructor(elementRef, cdr) {
61
+ super(elementRef, cdr);
62
+ this.cdr = cdr;
63
+ }
64
+ onViewInit() {
65
+ super.onViewInit();
66
+ this._updateMask();
67
+ }
68
+ _onValueChanged(oldValue, newValue) {
69
+ this._updateText();
70
+ this._maskDirective?.maskRef?.updateValue();
71
+ this._maskDirective?.maskRef?.updateControl();
72
+ }
73
+ _updateText() {
74
+ this.displayText = this.value
75
+ ? AXDateTime.convert(this.value).format(this.format)
76
+ : '';
77
+ }
78
+ _onOptionChanged(option) {
79
+ super._onOptionChanged(option);
80
+ this._updateMask();
81
+ }
82
+ focus() {
83
+ this.input.nativeElement.focus();
84
+ }
85
+ _updateMask() {
86
+ if (!this._maskObj) {
87
+ this._maskObj = IMask.createMask({
88
+ mask: this.format,
89
+ lazy: false,
90
+ autofix: true,
91
+ overwrite: true,
92
+ blocks: {
93
+ HH: {
94
+ mask: IMask.MaskedRange,
95
+ from: 0,
96
+ to: 23,
97
+ maxLength: 2,
98
+ placeholderChar: '0',
99
+ autofix: 'pad',
100
+ },
101
+ mm: {
102
+ mask: IMask.MaskedRange,
103
+ from: 0,
104
+ to: 59,
105
+ maxLength: 2,
106
+ placeholderChar: '0',
107
+ autofix: 'pad',
108
+ },
109
+ ss: {
110
+ mask: IMask.MaskedRange,
111
+ from: 0,
112
+ to: 59,
113
+ maxLength: 2,
114
+ placeholderChar: '0',
115
+ autofix: 'pad',
116
+ },
117
+ },
118
+ });
119
+ }
120
+ else {
121
+ this._maskObj.updateOptions({
122
+ mask: this.format,
123
+ });
124
+ }
125
+ this._maskDirective?.maskRef?.updateValue();
126
+ this._maskDirective?.maskRef?.updateControl();
127
+ }
128
+ _handleOnKeydownEvent(e) {
129
+ debugger;
130
+ const ignore = () => {
131
+ e.preventDefault();
132
+ e.stopPropagation();
133
+ };
134
+ const nums = Array(10)
135
+ .fill(0)
136
+ .map((v, i) => i.toString());
137
+ const chars = [
138
+ 'Backspace',
139
+ 'ArrowDown',
140
+ 'ArrowUp',
141
+ 'ArrowRight',
142
+ 'ArrowLeft',
143
+ 'Tab',
144
+ 'Enter',
145
+ ];
146
+ const input = e.target;
147
+ const key = e.key;
148
+ const valStr = input.value;
149
+ const sStart = input.selectionStart || 0;
150
+ const sEnd = input.selectionEnd || 0;
151
+ const dateVal = new AXDateTime(this.value);
152
+ //
153
+ const re = /[a-zA-Z0-9]+/gi;
154
+ const parts = Array.from(this.format.matchAll(re));
155
+ const word = valStr.substring(sStart, sEnd);
156
+ const part = parts.find((c) => c.index >= sStart);
157
+ const next = Array.from(valStr.substr(sEnd).matchAll(re));
158
+ const prev = Array.from(valStr.substring(0, sStart).matchAll(re));
159
+ //const part = parts[Array.from(valStr.matchAll(re)).findIndex(c => c[0] == word)];
160
+ //
161
+ const goNext = () => {
162
+ this._highlightPart(input, sEnd + (next[0]?.index || 0));
163
+ };
164
+ const goPrev = () => {
165
+ this._highlightPart(input, prev[prev.length - 1]?.index);
166
+ };
167
+ //
168
+ if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {
169
+ ignore();
170
+ e.key === 'ArrowRight' ? goNext() : goPrev();
171
+ }
172
+ else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
173
+ if (e.ctrlKey && e.key === 'ArrowDown') {
174
+ //this.open();
175
+ }
176
+ else {
177
+ const sign = e.key === 'ArrowUp' ? +1 : -1;
178
+ if (part) {
179
+ switch (part[0]) {
180
+ case 'hh':
181
+ case 'h':
182
+ case 'HH':
183
+ case 'H':
184
+ this.value = dateVal.add('hour', sign).date;
185
+ break;
186
+ case 'mm':
187
+ this.value = dateVal.add('minute', sign).date;
188
+ break;
189
+ case 'ss':
190
+ case 'SS':
191
+ this.value = dateVal.add('second', sign).date;
192
+ break;
193
+ }
194
+ setTimeout(() => {
195
+ this._highlightPart(input, sStart);
196
+ }, 10);
197
+ }
198
+ }
199
+ ignore();
200
+ }
201
+ else if (e.key == 'Backspace') {
202
+ // if (this.allowNull) {
203
+ // this.value = null;
204
+ // }
205
+ // ignore();
206
+ }
207
+ else if (e.key == 'Tab') {
208
+ if (sEnd < valStr.length && !e.shiftKey) {
209
+ goNext();
210
+ ignore();
211
+ }
212
+ else if (sStart != 0 && e.shiftKey) {
213
+ goPrev();
214
+ ignore();
215
+ }
216
+ }
217
+ else {
218
+ // const keys = {
219
+ // h: {
220
+ // v: /^[0-9]$|^[1][0-2]$/,
221
+ // p: '0'
222
+ // },
223
+ // H: {
224
+ // v: /^[0-9]$|^1[0-9]$|2[0-3]$/,
225
+ // p: '0'
226
+ // },
227
+ // m: {
228
+ // v: /^[0-9]$|^[1-5][0-9]$/,
229
+ // p: '0'
230
+ // }
231
+ // }
232
+ // // const re = new RegExp(_.orderBy(Object.keys(keys), c => c.length, ['desc']).join("|"), "gi");
233
+ // // return format.replace(re, function (matched) {
234
+ // // return keys[matched]();
235
+ // // });
236
+ // const t = keys[part[0]];
237
+ // if (!t.v.test(key)) {
238
+ // ignore();
239
+ // }
240
+ // else {
241
+ // this._updateText()
242
+ // }
243
+ }
244
+ // super._emitOnKeydownEvent(e);
245
+ }
246
+ _handleKeyUpEvent(e) {
247
+ // const input = (e.target as HTMLInputElement);
248
+ // setTimeout(() => {
249
+ // this._highlightPart(input);
250
+ // }, 700);
251
+ }
252
+ _emitOnFocusEvent(e) {
253
+ const input = e.target;
254
+ this._highlightPart(input);
255
+ super._emitOnFocusEvent(e);
256
+ }
257
+ _handleOnInputClickEvent(e) {
258
+ const input = e.target;
259
+ this._highlightPart(input);
260
+ e.preventDefault();
261
+ e.stopPropagation();
262
+ }
263
+ _highlightPart(input, pos) {
264
+ const { start, end } = AXStringUtil.getWordBoundsAtPosition(input.value, pos != null ? pos : input.selectionStart || 0);
265
+ input.setSelectionRange(start, end);
266
+ }
267
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXTimeBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
268
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: AXTimeBoxComponent, selector: "ax-time-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", size: "size", value: "value", placeholder: "placeholder", maxLength: "maxLength", allowNull: "allowNull", type: "type", autoComplete: "autoComplete", name: "name", checked: "checked", minValue: "minValue", maxValue: "maxValue", format: "format", displayText: "displayText" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", formatChange: "formatChange", displayTextChange: "displayTextChange" }, host: { classAttribute: "ax-editor-container ax-drop-down" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "_maskDirective", first: true, predicate: IMaskDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input #input class=\"ax-input\" \r\n [imask]=\"_maskObj\" \r\n [unmask]=\"false\" \r\n type=\"text\" \r\n [attr.placeholder]=\"placeholder\"\r\n [class.ax-state-disabled]=\"disabled\" \r\n [class.ax-state-readonly]=\"readonly\" \r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\" \r\n [tabindex]=\"tabIndex\" \r\n [ngModel]=\"displayText\" \r\n (mouseup)=\"_handleOnInputClickEvent($event)\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\"\r\n (keyup)=\"_handleKeyUpEvent($event)\" \r\n (keydown)=\"_handleOnKeydownEvent($event)\" \r\n autocomplete=\"off\">\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>", dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
269
+ }
270
+ export { AXTimeBoxComponent };
271
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXTimeBoxComponent, decorators: [{
272
+ type: Component,
273
+ args: [{ selector: 'ax-time-box', inputs: [
274
+ 'disabled',
275
+ 'readonly',
276
+ 'tabIndex',
277
+ 'size',
278
+ 'value',
279
+ 'placeholder', 'maxLength', 'allowNull', 'type', 'autoComplete', 'readonly', 'allowNull', 'value', 'name', 'checked',
280
+ ], outputs: [
281
+ 'valueChange',
282
+ 'onValueChanged',
283
+ 'onBlur',
284
+ 'onFocus',
285
+ 'valueChange', 'onValueChanged',
286
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ax-editor-container ax-drop-down' }, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input #input class=\"ax-input\" \r\n [imask]=\"_maskObj\" \r\n [unmask]=\"false\" \r\n type=\"text\" \r\n [attr.placeholder]=\"placeholder\"\r\n [class.ax-state-disabled]=\"disabled\" \r\n [class.ax-state-readonly]=\"readonly\" \r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\" \r\n [tabindex]=\"tabIndex\" \r\n [ngModel]=\"displayText\" \r\n (mouseup)=\"_handleOnInputClickEvent($event)\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\"\r\n (keyup)=\"_handleKeyUpEvent($event)\" \r\n (keydown)=\"_handleOnKeydownEvent($event)\" \r\n autocomplete=\"off\">\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>" }]
287
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { input: [{
288
+ type: ViewChild,
289
+ args: ['input']
290
+ }], minValue: [{
291
+ type: Input
292
+ }], maxValue: [{
293
+ type: Input
294
+ }], formatChange: [{
295
+ type: Output
296
+ }], format: [{
297
+ type: Input
298
+ }], displayTextChange: [{
299
+ type: Output
300
+ }], displayText: [{
301
+ type: Input
302
+ }], _maskDirective: [{
303
+ type: ViewChild,
304
+ args: [IMaskDirective]
305
+ }] } });
306
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvdGltZS1ib3gvc3JjL3RpbWUtYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3RpbWUtYm94L3NyYy90aW1lLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUd2QixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUE0QixNQUFNLDBCQUEwQixDQUFDOzs7O0FBSXhGOzs7O0dBSUc7QUFDSCxNQXNCYSxrQkFBbUIsU0FBUSxrQkFBa0I7SUErRFo7SUE1RDVDLEtBQUssQ0FBK0I7SUFFNUIsU0FBUyxDQUFPO0lBQ3hCLElBQ1csUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQVcsUUFBUSxDQUFDLENBQU87UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVPLFNBQVMsQ0FBTztJQUN4QixJQUNXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFXLFFBQVEsQ0FBQyxDQUFPO1FBQ3pCLElBQUksQ0FB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O3dCQUNWLE1BQU07d0JBQ04sT0FBTzt3QkFDUCxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTO3FCQUNySCxXQUNRO3dCQUNQLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixRQUFRO3dCQUNSLFNBQVM7d0JBQ1QsYUFBYSxFQUFFLGdCQUFnQjtxQkFDaEMsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0IsRUFBRSxLQUFLLEVBQUUsa0NBQWtDLEVBQUU7aUlBS25ELEtBQUs7c0JBREosU0FBUzt1QkFBQyxPQUFPO2dCQUtQLFFBQVE7c0JBRGxCLEtBQUs7Z0JBVUssUUFBUTtzQkFEbEIsS0FBSztnQkFTTixZQUFZO3NCQURYLE1BQU07Z0JBS0ksTUFBTTtzQkFEaEIsS0FBSztnQkFZQyxpQkFBaUI7c0JBRHZCLE1BQU07Z0JBS0ksV0FBVztzQkFEckIsS0FBSztnQkFnQkUsY0FBYztzQkFEckIsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhTdHJpbmdVdGlsIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcclxuaW1wb3J0IHsgQVhEYXRlVGltZSB9IGZyb20gJ0BhY29yZXgvY29yZS9kYXRlVGltZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE91dHB1dCxcclxuICBJbnB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBJTWFzayBmcm9tICdpbWFzayc7XHJcbmltcG9ydCB7IElNYXNrRGlyZWN0aXZlIH0gZnJvbSAnYW5ndWxhci1pbWFzayc7XHJcbmltcG9ydCB7IEFYQmFzZVRleHRCb3hNaXhpbiwgQVhDb21wb25lbnRPcHRpb25DaGFuZ2VkIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21peGluJztcclxuXHJcblxyXG5leHBvcnQgdHlwZSBBWF9USU1FX0ZPUk1BVCA9ICdISDptbScgfCAnSEg6bW06c3MnO1xyXG4vKipcclxuICogVGhlIEJ1dHRvbiBpcyBhIGNvbXBvbmVudCB3aGljaCBkZXRlY3RzIHVzZXIgaW50ZXJhY3Rpb24gYW5kIHRyaWdnZXJzIGEgY29ycmVzcG9uZGluZyBldmVudFxyXG4gKlxyXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC10aW1lLWJveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBpbnB1dHM6IFtcclxuICAgICdkaXNhYmxlZCcsXHJcbiAgICAncmVhZG9ubHknLFxyXG4gICAgJ3RhYkluZGV4JyxcclxuICAgICdzaXplJyxcclxuICAgICd2YWx1ZScsXHJcbiAgICAncGxhY2Vob2xkZXInLCAnbWF4TGVuZ3RoJywgJ2FsbG93TnVsbCcsICd0eXBlJywgJ2F1dG9Db21wbGV0ZScsICdyZWFkb25seScsICdhbGxvd051bGwnLCAndmFsdWUnLCAnbmFtZScsICdjaGVja2VkJyxcclxuICBdLFxyXG4gIG91dHB1dHM6IFtcclxuICAgICd2YWx1ZUNoYW5nZScsXHJcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxyXG4gICAgJ29uQmx1cicsXHJcbiAgICAnb25Gb2N1cycsXHJcbiAgICAndmFsdWVDaGFuZ2UnLCAnb25WYWx1ZUNoYW5nZWQnLFxyXG4gIF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBob3N0OiB7IGNsYXNzOiAnYXgtZWRpdG9yLWNvbnRhaW5lciBheC1kcm9wLWRvd24nIH0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFRpbWVCb3hDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VUZXh0Qm94TWl4aW4ge1xyXG5cclxuICBAVmlld0NoaWxkKCdpbnB1dCcpXHJcbiAgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcblxyXG4gIHByaXZhdGUgX21pblZhbHVlOiBEYXRlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBtaW5WYWx1ZSgpOiBEYXRlIHtcclxuICAgIHJldHVybiB0aGlzLl9taW5WYWx1ZTtcclxuICB9XHJcbiAgcHVibGljIHNldCBtaW5WYWx1ZSh2OiBEYXRlKSB7XHJcbiAgICB0aGlzLl9taW5WYWx1ZSA9IHY7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9tYXhWYWx1ZTogRGF0ZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgbWF4VmFsdWUoKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWF4VmFsdWU7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgbWF4VmFsdWUodjogRGF0ZSkge1xyXG4gICAgdGhpcy5fbWF4VmFsdWUgPSB2O1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZm9ybWF0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIHByaXZhdGUgX2Zvcm1hdDogQVhfVElNRV9GT1JNQVQgPSAnSEg6bW0nO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBmb3JtYXQoKTogQVhfVElNRV9GT1JNQVQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1hdDtcclxuICB9XHJcbiAgcHVibGljIHNldCBmb3JtYXQodjogQVhfVElNRV9GT1JNQVQpIHtcclxuICAgIHRoaXMuX3NldE9wdGlvbih7XHJcbiAgICAgIG5hbWU6ICdmb3JtYXQnLFxyXG4gICAgICB2YWx1ZTogdixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGRpc3BsYXlUZXh0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIHByaXZhdGUgX2Rpc3BsYXlUZXh0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IGRpc3BsYXlUZXh0KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzcGxheVRleHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IGRpc3BsYXlUZXh0KHY6IHN0cmluZykge1xyXG4gICAgdGhpcy5fZGlzcGxheVRleHQgPSB2O1xyXG4gICAgdGhpcy5kaXNwbGF5VGV4dENoYW5nZS5lbWl0KHYpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogIEBpZ25vcmVcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgX21hc2tPYmo6IElNYXNrLk1hc2tlZFBhdHRlcm47XHJcblxyXG4gIEBWaWV3Q2hpbGQoSU1hc2tEaXJlY3RpdmUpXHJcbiAgcHJpdmF0ZSBfbWFza0RpcmVjdGl2ZTogSU1hc2tEaXJlY3RpdmU8SU1hc2suTWFza2VkTnVtYmVyPjtcclxuXHJcbiAgLyoqXHJcbiAgICogIEBpZ25vcmVcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHN1cGVyKGVsZW1lbnRSZWYsIGNkcik7XHJcbiAgfVxyXG5cclxuICBvblZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIub25WaWV3SW5pdCgpO1xyXG4gICAgdGhpcy5fdXBkYXRlTWFzaygpO1xyXG4gIH1cclxuXHJcbiAgX29uVmFsdWVDaGFuZ2VkKG9sZFZhbHVlPzogYW55LCBuZXdWYWx1ZT86IGFueSkge1xyXG4gICAgdGhpcy5fdXBkYXRlVGV4dCgpO1xyXG4gICAgdGhpcy5fbWFza0RpcmVjdGl2ZT8ubWFza1JlZj8udXBkYXRlVmFsdWUoKTtcclxuICAgIHRoaXMuX21hc2tEaXJlY3RpdmU/Lm1hc2tSZWY/LnVwZGF0ZUNvbnRyb2woKTtcclxuICB9XHJcblxyXG4gIF91cGRhdGVUZXh0KCkge1xyXG4gICAgdGhpcy5kaXNwbGF5VGV4dCA9IHRoaXMudmFsdWVcclxuICAgICAgPyBBWERhdGVUaW1lLmNvbnZlcnQodGhpcy52YWx1ZSkuZm9ybWF0KHRoaXMuZm9ybWF0KVxyXG4gICAgICA6ICcnO1xyXG4gIH1cclxuXHJcbiAgX29uT3B0aW9uQ2hhbmdlZChvcHRpb246IEFYQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCk6IHZvaWQge1xyXG4gICAgc3VwZXIuX29uT3B0aW9uQ2hhbmdlZChvcHRpb24pO1xyXG4gICAgdGhpcy5fdXBkYXRlTWFzaygpO1xyXG4gIH1cclxuXHJcbiAgZm9jdXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKVxyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZU1hc2soKSB7XHJcbiAgICBpZiAoIXRoaXMuX21hc2tPYmopIHtcclxuICAgICAgdGhpcy5fbWFza09iaiA9IElNYXNrLmNyZWF0ZU1hc2soe1xyXG4gICAgICAgIG1hc2s6IHRoaXMuZm9ybWF0LFxyXG4gICAgICAgIGxhenk6IGZhbHNlLFxyXG4gICAgICAgIGF1dG9maXg6IHRydWUsXHJcbiAgICAgICAgb3ZlcndyaXRlOiB0cnVlLFxyXG4gICAgICAgIGJsb2Nrczoge1xyXG4gICAgICAgICAgSEg6IHtcclxuICAgICAgICAgICAgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsXHJcbiAgICAgICAgICAgIGZyb206IDAsXHJcbiAgICAgICAgICAgIHRvOiAyMyxcclxuICAgICAgICAgICAgbWF4TGVuZ3RoOiAyLFxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlckNoYXI6ICcwJyxcclxuICAgICAgICAgICAgYXV0b2ZpeDogJ3BhZCcsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbW06IHtcclxuICAgICAgICAgICAgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsXHJcbiAgICAgICAgICAgIGZyb206IDAsXHJcbiAgICAgICAgICAgIHRvOiA1OSxcclxuICAgICAgICAgICAgbWF4TGVuZ3RoOiAyLFxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlckNoYXI6ICcwJyxcclxuICAgICAgICAgICAgYXV0b2ZpeDogJ3BhZCcsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgc3M6IHtcclxuICAgICAgICAgICAgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsXHJcbiAgICAgICAgICAgIGZyb206IDAsXHJcbiAgICAgICAgICAgIHRvOiA1OSxcclxuICAgICAgICAgICAgbWF4TGVuZ3RoOiAyLFxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlckNoYXI6ICcwJyxcclxuICAgICAgICAgICAgYXV0b2ZpeDogJ3BhZCcsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbWFza09iai51cGRhdGVPcHRpb25zKHtcclxuICAgICAgICBtYXNrOiB0aGlzLmZvcm1hdCxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9tYXNrRGlyZWN0aXZlPy5tYXNrUmVmPy51cGRhdGVWYWx1ZSgpO1xyXG4gICAgdGhpcy5fbWFza0RpcmVjdGl2ZT8ubWFza1JlZj8udXBkYXRlQ29udHJvbCgpO1xyXG4gIH1cclxuXHJcbiAgX2hhbmRsZU9uS2V5ZG93bkV2ZW50KGU6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGRlYnVnZ2VyXHJcbiAgICBjb25zdCBpZ25vcmUgPSAoKSA9PiB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgbnVtczogc3RyaW5nW10gPSBBcnJheSgxMClcclxuICAgICAgLmZpbGwoMClcclxuICAgICAgLm1hcCgodiwgaSkgPT4gaS50b1N0cmluZygpKTtcclxuICAgIGNvbnN0IGNoYXJzOiBzdHJpbmdbXSA9IFtcclxuICAgICAgJ0JhY2tzcGFjZScsXHJcbiAgICAgICdBcnJvd0Rvd24nLFxyXG4gICAgICAnQXJyb3dVcCcsXHJcbiAgICAgICdBcnJvd1JpZ2h0JyxcclxuICAgICAgJ0Fycm93TGVmdCcsXHJcbiAgICAgICdUYWInLFxyXG4gICAgICAnRW50ZXInLFxyXG4gICAgXTtcclxuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGNvbnN0IGtleSA9IGUua2V5O1xyXG4gICAgY29uc3QgdmFsU3RyID0gaW5wdXQudmFsdWU7XHJcbiAgICBjb25zdCBzU3RhcnQgPSBpbnB1dC5zZWxlY3Rpb25TdGFydCB8fCAwO1xyXG4gICAgY29uc3Qgc0VuZCA9IGlucHV0LnNlbGVjdGlvbkVuZCB8fCAwO1xyXG4gICAgY29uc3QgZGF0ZVZhbCA9IG5ldyBBWERhdGVUaW1lKHRoaXMudmFsdWUpO1xyXG4gICAgLy9cclxuICAgIGNvbnN0IHJlID0gL1thLXpBLVowLTldKy9naTtcclxuICAgIGNvbnN0IHBhcnRzID0gQXJyYXkuZnJvbSh0aGlzLmZvcm1hdC5tYXRjaEFsbChyZSkpO1xyXG4gICAgY29uc3Qgd29yZCA9IHZhbFN0ci5zdWJzdHJpbmcoc1N0YXJ0LCBzRW5kKTtcclxuICAgIGNvbnN0IHBhcnQgPSBwYXJ0cy5maW5kKChjOiBhbnkpID0+IGMuaW5kZXggPj0gc1N0YXJ0KTtcclxuICAgIGNvbnN0IG5leHQgPSBBcnJheS5mcm9tKHZhbFN0ci5zdWJzdHIoc0VuZCkubWF0Y2hBbGwocmUpKTtcclxuICAgIGNvbnN0IHByZXYgPSBBcnJheS5mcm9tKHZhbFN0ci5zdWJzdHJpbmcoMCwgc1N0YXJ0KS5tYXRjaEFsbChyZSkpO1xyXG4gICAgLy9jb25zdCBwYXJ0ID0gcGFydHNbQXJyYXkuZnJvbSh2YWxTdHIubWF0Y2hBbGwocmUpKS5maW5kSW5kZXgoYyA9PiBjWzBdID09IHdvcmQpXTtcclxuICAgIC8vXHJcblxyXG4gICAgY29uc3QgZ29OZXh0ID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLl9oaWdobGlnaHRQYXJ0KGlucHV0LCBzRW5kICsgKG5leHRbMF0/LmluZGV4IHx8IDApKTtcclxuICAgIH07XHJcbiAgICBjb25zdCBnb1ByZXYgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2hpZ2hsaWdodFBhcnQoaW5wdXQsIHByZXZbcHJldi5sZW5ndGggLSAxXT8uaW5kZXgpO1xyXG4gICAgfTtcclxuXHJcbiAgICAvL1xyXG4gICAgaWYgKGUua2V5ID09PSAnQXJyb3dSaWdodCcgfHwgZS5rZXkgPT09ICdBcnJvd0xlZnQnKSB7XHJcbiAgICAgIGlnbm9yZSgpO1xyXG4gICAgICBlLmtleSA9PT0gJ0Fycm93UmlnaHQnID8gZ29OZXh0KCkgOiBnb1ByZXYoKTtcclxuICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJyB8fCBlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcclxuICAgICAgaWYgKGUuY3RybEtleSAmJiBlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcclxuICAgICAgICAvL3RoaXMub3BlbigpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHNpZ24gPSBlLmtleSA9PT0gJ0Fycm93VXAnID8gKzEgOiAtMTtcclxuICAgICAgICBpZiAocGFydCkge1xyXG4gICAgICAgICAgc3dpdGNoIChwYXJ0WzBdKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2hoJzpcclxuICAgICAgICAgICAgY2FzZSAnaCc6XHJcbiAgICAgICAgICAgIGNhc2UgJ0hIJzpcclxuICAgICAgICAgICAgY2FzZSAnSCc6XHJcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGVWYWwuYWRkKCdob3VyJywgc2lnbikuZGF0ZTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnbW0nOlxyXG4gICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRlVmFsLmFkZCgnbWludXRlJywgc2lnbikuZGF0ZTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnc3MnOlxyXG4gICAgICAgICAgICBjYXNlICdTUyc6XHJcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGVWYWwuYWRkKCdzZWNvbmQnLCBzaWduKS5kYXRlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2hpZ2hsaWdodFBhcnQoaW5wdXQsIHNTdGFydCk7XHJcbiAgICAgICAgICB9LCAxMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlnbm9yZSgpO1xyXG4gICAgfSBlbHNlIGlmIChlLmtleSA9PSAnQmFja3NwYWNlJykge1xyXG4gICAgICAvLyBpZiAodGhpcy5hbGxvd051bGwpIHtcclxuICAgICAgLy8gICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIC8vIGlnbm9yZSgpO1xyXG4gICAgfSBlbHNlIGlmIChlLmtleSA9PSAnVGFiJykge1xyXG4gICAgICBpZiAoc0VuZCA8IHZhbFN0ci5sZW5ndGggJiYgIWUuc2hpZnRLZXkpIHtcclxuICAgICAgICBnb05leHQoKTtcclxuICAgICAgICBpZ25vcmUoKTtcclxuICAgICAgfSBlbHNlIGlmIChzU3RhcnQgIT0gMCAmJiBlLnNoaWZ0S2V5KSB7XHJcbiAgICAgICAgZ29QcmV2KCk7XHJcbiAgICAgICAgaWdub3JlKCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIGNvbnN0IGtleXMgPSB7XHJcbiAgICAgIC8vICAgICBoOiB7XHJcbiAgICAgIC8vICAgICAgICAgdjogL15bMC05XSR8XlsxXVswLTJdJC8sXHJcbiAgICAgIC8vICAgICAgICAgcDogJzAnXHJcbiAgICAgIC8vICAgICB9LFxyXG4gICAgICAvLyAgICAgSDoge1xyXG4gICAgICAvLyAgICAgICAgIHY6IC9eWzAtOV0kfF4xWzAtOV0kfDJbMC0zXSQvLFxyXG4gICAgICAvLyAgICAgICAgIHA6ICcwJ1xyXG4gICAgICAvLyAgICAgfSxcclxuICAgICAgLy8gICAgIG06IHtcclxuICAgICAgLy8gICAgICAgICB2OiAvXlswLTldJHxeWzEtNV1bMC05XSQvLFxyXG4gICAgICAvLyAgICAgICAgIHA6ICcwJ1xyXG4gICAgICAvLyAgICAgfVxyXG4gICAgICAvLyB9XHJcbiAgICAgIC8vIC8vIGNvbnN0IHJlID0gbmV3IFJlZ0V4cChfLm9yZGVyQnkoT2JqZWN0LmtleXMoa2V5cyksIGMgPT4gYy5sZW5ndGgsIFsnZGVzYyddKS5qb2luKFwifFwiKSwgXCJnaVwiKTtcclxuICAgICAgLy8gLy8gcmV0dXJuIGZvcm1hdC5yZXBsYWNlKHJlLCBmdW5jdGlvbiAobWF0Y2hlZCkge1xyXG4gICAgICAvLyAvLyAgIHJldHVybiBrZXlzW21hdGNoZWRdKCk7XHJcbiAgICAgIC8vIC8vIH0pO1xyXG4gICAgICAvLyBjb25zdCB0ID0ga2V5c1twYXJ0WzBdXTtcclxuICAgICAgLy8gaWYgKCF0LnYudGVzdChrZXkpKSB7XHJcbiAgICAgIC8vICAgICBpZ25vcmUoKTtcclxuICAgICAgLy8gfVxyXG4gICAgICAvLyBlbHNlIHtcclxuICAgICAgLy8gICAgIHRoaXMuX3VwZGF0ZVRleHQoKVxyXG4gICAgICAvLyB9XHJcbiAgICB9XHJcbiAgICAvLyBzdXBlci5fZW1pdE9uS2V5ZG93bkV2ZW50KGUpO1xyXG4gIH1cclxuXHJcbiAgX2hhbmRsZUtleVVwRXZlbnQoZTogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgLy8gY29uc3QgaW5wdXQgPSAoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCk7XHJcbiAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgIC8vICAgICB0aGlzLl9oaWdobGlnaHRQYXJ0KGlucHV0KTtcclxuICAgIC8vIH0sIDcwMCk7XHJcbiAgfVxyXG5cclxuICBfZW1pdE9uRm9jdXNFdmVudChlOiBGb2N1c0V2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBpbnB1dCA9IGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICB0aGlzLl9oaWdobGlnaHRQYXJ0KGlucHV0KTtcclxuICAgIHN1cGVyLl9lbWl0T25Gb2N1c0V2ZW50KGUpO1xyXG4gIH1cclxuXHJcbiAgX2hhbmRsZU9uSW5wdXRDbGlja0V2ZW50KGU6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIHRoaXMuX2hpZ2hsaWdodFBhcnQoaW5wdXQpO1xyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hpZ2hsaWdodFBhcnQoaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQsIHBvcz86IG51bWJlcikge1xyXG4gICAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSBBWFN0cmluZ1V0aWwuZ2V0V29yZEJvdW5kc0F0UG9zaXRpb24oXHJcbiAgICAgIGlucHV0LnZhbHVlLFxyXG4gICAgICBwb3MgIT0gbnVsbCA/IHBvcyA6IGlucHV0LnNlbGVjdGlvblN0YXJ0IHx8IDBcclxuICAgICk7XHJcbiAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgZW5kKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cImF4LXByZWZpeFwiPlxyXG48L25nLWNvbnRlbnQ+XHJcbjxpbnB1dCAjaW5wdXQgY2xhc3M9XCJheC1pbnB1dFwiIFxyXG4gICAgW2ltYXNrXT1cIl9tYXNrT2JqXCIgXHJcbiAgICBbdW5tYXNrXT1cImZhbHNlXCIgIFxyXG4gICAgdHlwZT1cInRleHRcIiBcclxuICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiIFxyXG4gICAgW2NsYXNzLmF4LXN0YXRlLXJlYWRvbmx5XT1cInJlYWRvbmx5XCIgXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgXHJcbiAgICBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIiBcclxuICAgIFtuZ01vZGVsXT1cImRpc3BsYXlUZXh0XCIgXHJcbiAgICAobW91c2V1cCk9XCJfaGFuZGxlT25JbnB1dENsaWNrRXZlbnQoJGV2ZW50KVwiXHJcbiAgICAoZm9jdXMpPVwiX2VtaXRPbkZvY3VzRXZlbnQoJGV2ZW50KVwiXHJcbiAgICAoYmx1cik9XCJfZW1pdE9uQmx1ckV2ZW50KCRldmVudClcIlxyXG4gICAgKGtleXVwKT1cIl9oYW5kbGVLZXlVcEV2ZW50KCRldmVudClcIiBcclxuICAgIChrZXlkb3duKT1cIl9oYW5kbGVPbktleWRvd25FdmVudCgkZXZlbnQpXCIgXHJcbiAgICBhdXRvY29tcGxldGU9XCJvZmZcIj5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+XHJcbjwvbmctY29udGVudD5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+XHJcbjwvbmctY29udGVudD4iXX0=