@acorex/components 7.1.0 → 7.1.2

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 +13 -13
  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,268 +1,269 @@
1
- import IMask from 'imask';
2
- import { IMaskDirective } from 'angular-imask';
3
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, ViewChild, } from '@angular/core';
4
- import { toNumber } from 'lodash-es';
5
- import { AXBaseTextBoxMixin, } from '@acorex/components/mixin';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- import * as i2 from "@angular/forms";
9
- import * as i3 from "angular-imask";
10
- /**
11
- * The NumberBox is a component which detects user interaction and triggers a corresponding event
12
- *
13
- * @category Components
14
- */
15
- export class AXNumberBoxComponent extends AXBaseTextBoxMixin {
16
- cdr;
17
- input;
18
- _thousandsSeparator;
19
- /**
20
- * A character value that specifies the separator character.
21
- */
22
- get thousandsSeparator() {
23
- return this._thousandsSeparator;
24
- }
25
- set thousandsSeparator(v) {
26
- this._setOption({
27
- name: 'thousandsSeparator',
28
- value: v ?? '',
29
- });
30
- }
31
- _padDecimalZeros = false;
32
- /**
33
- * A character value that specifies the separator character.
34
- */
35
- get padDecimalZeros() {
36
- return this._padDecimalZeros;
37
- }
38
- set padDecimalZeros(v) {
39
- this._setOption({
40
- name: 'padDecimalZeros',
41
- value: v,
42
- });
43
- }
44
- /**
45
- * Specifies the value that is used to increment or decrement the **Integer** part of number
46
- */
47
- step = 1;
48
- _decimals = 0;
49
- /**
50
- * Specifies the number of decimals that the user can enter
51
- */
52
- get decimals() {
53
- return this._decimals;
54
- }
55
- set decimals(v) {
56
- this._setOption({
57
- name: 'decimals',
58
- value: v ?? 0,
59
- });
60
- }
61
- /**
62
- * Specifies the value that is used to increment or decrement the **Deciaml** part of number
63
- */
64
- decimalStep = 'auto';
65
- /**
66
- * Specifies whether the Up and Down spin buttons will be rendered or not
67
- */
68
- showSpinButtons = true;
69
- _minValue = Number.MIN_SAFE_INTEGER;
70
- /**
71
- * Specifies the smallest value that is valid
72
- */
73
- get minValue() {
74
- return this._minValue;
75
- }
76
- set minValue(v) {
77
- this._setOption({
78
- name: 'minValue',
79
- value: v != null ? Number(v) : Number.MIN_SAFE_INTEGER,
80
- });
81
- }
82
- _maxValue = Number.MAX_SAFE_INTEGER;
83
- /**
84
- * Specifies the greatest value that is valid
85
- */
86
- get maxValue() {
87
- return this._maxValue;
88
- }
89
- set maxValue(v) {
90
- this._setOption({
91
- name: 'maxValue',
92
- value: v != null ? Number(v) : Number.MAX_SAFE_INTEGER,
93
- });
94
- }
95
- /**
96
- * @ignore
97
- */
98
- _maskObj;
99
- _maskDirective;
100
- /**
101
- * @ignore
102
- */
103
- constructor(elementRef, cdr) {
104
- super(elementRef, cdr);
105
- this.cdr = cdr;
106
- }
107
- onViewInit() {
108
- super.onViewInit();
109
- this._updateMask();
110
- }
111
- _onOptionChanged(option) {
112
- super._onOptionChanged(option);
113
- this._updateMask();
114
- }
115
- focus() {
116
- this.input.nativeElement.focus();
117
- }
118
- _updateMask() {
119
- if (!this._maskObj) {
120
- this._maskObj = IMask.createMask({
121
- mask: Number,
122
- min: this.minValue,
123
- max: this.maxValue,
124
- thousandsSeparator: this.thousandsSeparator || '',
125
- scale: this.decimals,
126
- radix: '.',
127
- padFractionalZeros: this.decimals > 0 && this.padDecimalZeros,
128
- });
129
- }
130
- else {
131
- this._maskObj.updateOptions({
132
- min: this.minValue,
133
- max: this.maxValue,
134
- thousandsSeparator: this.thousandsSeparator || '',
135
- scale: this.decimals,
136
- radix: '.',
137
- padFractionalZeros: this.decimals > 0 && this.padDecimalZeros,
138
- });
139
- }
140
- this._maskDirective?.maskRef?.updateValue();
141
- this._maskDirective?.maskRef?.updateControl();
142
- }
143
- _handleOnKeydownEvent(e) {
144
- if (this.disabled || this.readonly)
145
- return;
146
- const ignore = () => {
147
- e.preventDefault();
148
- e.stopPropagation();
149
- };
150
- this._setUserInteraction();
151
- const input = e.target;
152
- const valStr = input.value;
153
- const decimalPointIndex = valStr.indexOf('.');
154
- const _cursorPos = input.selectionStart;
155
- if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
156
- if (decimalPointIndex > 0 &&
157
- _cursorPos > decimalPointIndex &&
158
- this.decimals > 0) {
159
- e.key === 'ArrowDown' ? this.decimalStepDown() : this.decimalStepUp();
160
- }
161
- else {
162
- e.key === 'ArrowDown' ? this.stepDown() : this.stepUp();
163
- }
164
- ignore();
165
- setTimeout(() => {
166
- input.setSelectionRange(_cursorPos, _cursorPos);
167
- }, 5);
168
- }
169
- super._emitOnKeydownEvent(e);
170
- }
171
- _handleUpDownClick(v) {
172
- if (this.disabled || this.readonly)
173
- return;
174
- this._setUserInteraction();
175
- v == 1 ? this.stepUp() : this.stepDown();
176
- }
177
- _setValue(value) {
178
- if ((value == null || (value == 0 && !this._maskObj.value)) && this.allowNull) {
179
- return null;
180
- }
181
- const v = toNumber(value);
182
- if (v < this.minValue)
183
- return this.minValue;
184
- if (v > this.maxValue)
185
- return this.maxValue;
186
- return v;
187
- }
188
- stepUp() {
189
- if (!this.value) {
190
- this.value = Math.max(this.minValue, 0);
191
- }
192
- this.value += toNumber(this.step);
193
- }
194
- stepDown() {
195
- if (!this.value) {
196
- this.value = Math.max(this.minValue, 0);
197
- }
198
- this.value -= toNumber(this.step);
199
- }
200
- decimalStepUp() {
201
- if (!this.value) {
202
- this.value = Math.max(this.minValue, 0);
203
- }
204
- this.value += toNumber(this.decimalStep == 'auto'
205
- ? 1 / Math.pow(10, this.decimals)
206
- : this.decimalStep);
207
- }
208
- decimalStepDown() {
209
- if (!this.value) {
210
- this.value = Math.max(this.minValue, 0);
211
- }
212
- this.value -= toNumber(this.decimalStep == 'auto'
213
- ? 1 / Math.pow(10, this.decimals)
214
- : this.decimalStep);
215
- }
216
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXNumberBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
217
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", size: "size", value: "value", state: "state", placeholder: "placeholder", maxLength: "maxLength", allowNull: "allowNull", type: "type", autoComplete: "autoComplete", name: "name", checked: "checked", thousandsSeparator: "thousandsSeparator", padDecimalZeros: "padDecimalZeros", step: "step", decimals: "decimals", decimalStep: "decimalStep", showSpinButtons: "showSpinButtons", minValue: "minValue", maxValue: "maxValue" }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus" }, host: { classAttribute: "ax-editor-container" }, 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\"> </ng-content>\r\n<input\r\n #input\r\n class=\"ax-input\"\r\n type=\"text\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.autocomplete]=\"autoComplete\"\r\n [imask]=\"_maskObj\"\r\n [unmask]=\"'typed'\"\r\n [attr.min]=\"minValue\"\r\n [attr.max]=\"maxValue\"\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)]=\"value\"\r\n (keydown)=\"_handleOnKeydownEvent($event)\"\r\n (keyup)=\"_emitOnKeyupEvent($event)\"\r\n (keypress)=\"_emitOnKeypressEvent($event)\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\" />\r\n\r\n<div class=\"ax-number-box-control\" *ngIf=\"showSpinButtons\">\r\n <button class=\"ax-general-button ax-button-icon\" (click)=\"_handleUpDownClick(1)\" tabindex=\"-1\">\r\n <span class=\"ax-icon ax-icon-arrow-up\"></span>\r\n </button>\r\n <button class=\"ax-general-button ax-button-icon\" (click)=\"_handleUpDownClick(-1)\">\r\n <span class=\"ax-icon ax-icon-arrow-down\" tabindex=\"-1\"></span>\r\n </button>\r\n</div>\r\n\r\n<!-- <div class=\"ax-number-box-arrows\" *ngIf=\"showSpinButtons && !(disabled || readonly)\">\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,1)\" [tabIndex]=\"-1\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-icon-arrow-fill ax-rotation-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,-1)\" [tabIndex]=\"-1\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-icon-arrow-fill -ax-rotation-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n</div> -->\r\n<ng-content select=\"ax-suffix\"> </ng-content>\r\n<ng-content select=\"ax-validation-rule\"> </ng-content>\r\n", styles: [".ax-number-box-control{display:flex;height:100%;align-items:center;justify-content:center;margin-inline-end:.25rem;flex-direction:column}.ax-number-box-control .ax-general-button{display:flex;width:1.25rem;height:1rem;border-radius:.2rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
218
- }
219
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXNumberBoxComponent, decorators: [{
220
- type: Component,
221
- args: [{ selector: 'ax-number-box', inputs: [
222
- 'disabled',
223
- 'readonly',
224
- 'tabIndex',
225
- 'size',
226
- 'value',
227
- 'state',
228
- 'placeholder',
229
- 'maxLength',
230
- 'allowNull',
231
- 'type',
232
- 'autoComplete',
233
- 'readonly',
234
- 'allowNull',
235
- 'value',
236
- 'name',
237
- 'checked',
238
- ], outputs: [
239
- 'valueChange',
240
- 'stateChange',
241
- 'onValueChanged',
242
- 'onBlur',
243
- 'onFocus'
244
- ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ax-editor-container' }, template: "<ng-content select=\"ax-prefix\"> </ng-content>\r\n<input\r\n #input\r\n class=\"ax-input\"\r\n type=\"text\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.autocomplete]=\"autoComplete\"\r\n [imask]=\"_maskObj\"\r\n [unmask]=\"'typed'\"\r\n [attr.min]=\"minValue\"\r\n [attr.max]=\"maxValue\"\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)]=\"value\"\r\n (keydown)=\"_handleOnKeydownEvent($event)\"\r\n (keyup)=\"_emitOnKeyupEvent($event)\"\r\n (keypress)=\"_emitOnKeypressEvent($event)\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\" />\r\n\r\n<div class=\"ax-number-box-control\" *ngIf=\"showSpinButtons\">\r\n <button class=\"ax-general-button ax-button-icon\" (click)=\"_handleUpDownClick(1)\" tabindex=\"-1\">\r\n <span class=\"ax-icon ax-icon-arrow-up\"></span>\r\n </button>\r\n <button class=\"ax-general-button ax-button-icon\" (click)=\"_handleUpDownClick(-1)\">\r\n <span class=\"ax-icon ax-icon-arrow-down\" tabindex=\"-1\"></span>\r\n </button>\r\n</div>\r\n\r\n<!-- <div class=\"ax-number-box-arrows\" *ngIf=\"showSpinButtons && !(disabled || readonly)\">\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,1)\" [tabIndex]=\"-1\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-icon-arrow-fill ax-rotation-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,-1)\" [tabIndex]=\"-1\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-icon-arrow-fill -ax-rotation-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n</div> -->\r\n<ng-content select=\"ax-suffix\"> </ng-content>\r\n<ng-content select=\"ax-validation-rule\"> </ng-content>\r\n", styles: [".ax-number-box-control{display:flex;height:100%;align-items:center;justify-content:center;margin-inline-end:.25rem;flex-direction:column}.ax-number-box-control .ax-general-button{display:flex;width:1.25rem;height:1rem;border-radius:.2rem}\n"] }]
245
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { input: [{
246
- type: ViewChild,
247
- args: ['input']
248
- }], thousandsSeparator: [{
249
- type: Input
250
- }], padDecimalZeros: [{
251
- type: Input
252
- }], step: [{
253
- type: Input
254
- }], decimals: [{
255
- type: Input
256
- }], decimalStep: [{
257
- type: Input
258
- }], showSpinButtons: [{
259
- type: Input
260
- }], minValue: [{
261
- type: Input
262
- }], maxValue: [{
263
- type: Input
264
- }], _maskDirective: [{
265
- type: ViewChild,
266
- args: [IMaskDirective]
267
- }] } });
268
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9udW1iZXItYm94L3NyYy9udW1iZXItYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL251bWJlci1ib3gvc3JjL251bWJlci1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBR3ZCLEtBQUssRUFDTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQ0wsa0JBQWtCLEdBRW5CLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBRWxDOzs7O0dBSUc7QUFrQ0gsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGtCQUFrQjtJQTJHZDtJQTFHeEIsS0FBSyxDQUErQjtJQUVoRCxtQkFBbUIsQ0FBUztJQUNwQzs7T0FFRztJQUNILElBQ1csa0JBQWtCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFXLGtCQUFrQixDQUFDLENBQVM7UUFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNkLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixHQUFZLEtBQUssQ0FBQztJQUMxQzs7T0FFRztJQUNILElBQ1csZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FB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O3NCQURILEtBQUs7Z0JBUUssUUFBUTtzQkFEbEIsS0FBSztnQkFlTixXQUFXO3NCQURWLEtBQUs7Z0JBT04sZUFBZTtzQkFEZCxLQUFLO2dCQVFLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBZ0JLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBaUJFLGNBQWM7c0JBRHJCLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBJTWFzayBmcm9tICdpbWFzayc7XHJcbmltcG9ydCB7IElNYXNrRGlyZWN0aXZlIH0gZnJvbSAnYW5ndWxhci1pbWFzayc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgSW5wdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuXHJcbmltcG9ydCB7IHRvTnVtYmVyIH0gZnJvbSAnbG9kYXNoLWVzJztcclxuaW1wb3J0IHtcclxuICBBWEJhc2VUZXh0Qm94TWl4aW4sXHJcbiAgQVhDb21wb25lbnRPcHRpb25DaGFuZ2VkLFxyXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9taXhpbic7XHJcblxyXG4vKipcclxuICogVGhlIE51bWJlckJveCBpcyBhIGNvbXBvbmVudCB3aGljaCBkZXRlY3RzIHVzZXIgaW50ZXJhY3Rpb24gYW5kIHRyaWdnZXJzIGEgY29ycmVzcG9uZGluZyBldmVudFxyXG4gKlxyXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC1udW1iZXItYm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbnVtYmVyLWJveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbnVtYmVyLWJveC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGlucHV0czogW1xyXG4gICAgJ2Rpc2FibGVkJyxcclxuICAgICdyZWFkb25seScsXHJcbiAgICAndGFiSW5kZXgnLFxyXG4gICAgJ3NpemUnLFxyXG4gICAgJ3ZhbHVlJyxcclxuICAgICdzdGF0ZScsXHJcbiAgICAncGxhY2Vob2xkZXInLFxyXG4gICAgJ21heExlbmd0aCcsXHJcbiAgICAnYWxsb3dOdWxsJyxcclxuICAgICd0eXBlJyxcclxuICAgICdhdXRvQ29tcGxldGUnLFxyXG4gICAgJ3JlYWRvbmx5JyxcclxuICAgICdhbGxvd051bGwnLFxyXG4gICAgJ3ZhbHVlJyxcclxuICAgICduYW1lJyxcclxuICAgICdjaGVja2VkJyxcclxuICBdLFxyXG4gIG91dHB1dHM6IFtcclxuICAgICd2YWx1ZUNoYW5nZScsXHJcbiAgICAnc3RhdGVDaGFuZ2UnLFxyXG4gICAgJ29uVmFsdWVDaGFuZ2VkJyxcclxuICAgICdvbkJsdXInLFxyXG4gICAgJ29uRm9jdXMnXHJcbiAgXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGhvc3Q6IHsgY2xhc3M6ICdheC1lZGl0b3ItY29udGFpbmVyJyB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhOdW1iZXJCb3hDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VUZXh0Qm94TWl4aW4ge1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcblxyXG4gIHByaXZhdGUgX3Rob3VzYW5kc1NlcGFyYXRvcjogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqICBBIGNoYXJhY3RlciB2YWx1ZSB0aGF0IHNwZWNpZmllcyB0aGUgc2VwYXJhdG9yIGNoYXJhY3Rlci5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgdGhvdXNhbmRzU2VwYXJhdG9yKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGhvdXNhbmRzU2VwYXJhdG9yO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHRob3VzYW5kc1NlcGFyYXRvcih2OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3NldE9wdGlvbih7XHJcbiAgICAgIG5hbWU6ICd0aG91c2FuZHNTZXBhcmF0b3InLFxyXG4gICAgICB2YWx1ZTogdiA/PyAnJyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcGFkRGVjaW1hbFplcm9zOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogIEEgY2hhcmFjdGVyIHZhbHVlIHRoYXQgc3BlY2lmaWVzIHRoZSBzZXBhcmF0b3IgY2hhcmFjdGVyLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBwYWREZWNpbWFsWmVyb3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGFkRGVjaW1hbFplcm9zO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHBhZERlY2ltYWxaZXJvcyh2OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9zZXRPcHRpb24oe1xyXG4gICAgICBuYW1lOiAncGFkRGVjaW1hbFplcm9zJyxcclxuICAgICAgdmFsdWU6IHYsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICBTcGVjaWZpZXMgdGhlIHZhbHVlIHRoYXQgaXMgdXNlZCB0byBpbmNyZW1lbnQgb3IgZGVjcmVtZW50IHRoZSAqKkludGVnZXIqKiBwYXJ0IG9mIG51bWJlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc3RlcDogbnVtYmVyID0gMTtcclxuXHJcbiAgcHJpdmF0ZSBfZGVjaW1hbHM6IG51bWJlciA9IDA7XHJcbiAgLyoqXHJcbiAgICogIFNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGRlY2ltYWxzIHRoYXQgdGhlIHVzZXIgY2FuIGVudGVyXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IGRlY2ltYWxzKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGVjaW1hbHM7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgZGVjaW1hbHModjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9zZXRPcHRpb24oe1xyXG4gICAgICBuYW1lOiAnZGVjaW1hbHMnLFxyXG4gICAgICB2YWx1ZTogdiA/PyAwLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAgU3BlY2lmaWVzIHRoZSB2YWx1ZSB0aGF0IGlzIHVzZWQgdG8gaW5jcmVtZW50IG9yIGRlY3JlbWVudCB0aGUgKipEZWNpYW1sKiogcGFydCBvZiBudW1iZXJcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIGRlY2ltYWxTdGVwOiBudW1iZXIgfCAnYXV0bycgPSAnYXV0byc7XHJcblxyXG4gIC8qKlxyXG4gICAqICBTcGVjaWZpZXMgd2hldGhlciB0aGUgVXAgYW5kIERvd24gc3BpbiBidXR0b25zIHdpbGwgYmUgcmVuZGVyZWQgb3Igbm90XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzaG93U3BpbkJ1dHRvbnM6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBwcml2YXRlIF9taW5WYWx1ZTogbnVtYmVyID0gTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVI7XHJcbiAgLyoqXHJcbiAgICogIFNwZWNpZmllcyB0aGUgc21hbGxlc3QgdmFsdWUgdGhhdCBpcyB2YWxpZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBtaW5WYWx1ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX21pblZhbHVlO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IG1pblZhbHVlKHY6IG51bWJlcikge1xyXG4gICAgdGhpcy5fc2V0T3B0aW9uKHtcclxuICAgICAgbmFtZTogJ21pblZhbHVlJyxcclxuICAgICAgdmFsdWU6IHYgIT0gbnVsbCA/IE51bWJlcih2KSA6IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9tYXhWYWx1ZTogbnVtYmVyID0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI7XHJcbiAgLyoqXHJcbiAgICogIFNwZWNpZmllcyB0aGUgZ3JlYXRlc3QgdmFsdWUgdGhhdCBpcyB2YWxpZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBtYXhWYWx1ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX21heFZhbHVlO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IG1heFZhbHVlKHY6IG51bWJlcikge1xyXG4gICAgdGhpcy5fc2V0T3B0aW9uKHtcclxuICAgICAgbmFtZTogJ21heFZhbHVlJyxcclxuICAgICAgdmFsdWU6IHYgIT0gbnVsbCA/IE51bWJlcih2KSA6IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAgQGlnbm9yZVxyXG4gICAqL1xyXG4gIF9tYXNrT2JqOiBJTWFzay5NYXNrZWROdW1iZXI7XHJcblxyXG4gIEBWaWV3Q2hpbGQoSU1hc2tEaXJlY3RpdmUpXHJcbiAgcHJpdmF0ZSBfbWFza0RpcmVjdGl2ZTogSU1hc2tEaXJlY3RpdmU8SU1hc2suTWFza2VkTnVtYmVyPjtcclxuXHJcbiAgLyoqXHJcbiAgICogIEBpZ25vcmVcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHN1cGVyKGVsZW1lbnRSZWYsIGNkcik7XHJcbiAgfVxyXG5cclxuICBvblZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIub25WaWV3SW5pdCgpO1xyXG4gICAgdGhpcy5fdXBkYXRlTWFzaygpO1xyXG4gIH1cclxuXHJcbiAgX29uT3B0aW9uQ2hhbmdlZChvcHRpb246IEFYQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCk6IHZvaWQge1xyXG4gICAgc3VwZXIuX29uT3B0aW9uQ2hhbmdlZChvcHRpb24pO1xyXG4gICAgdGhpcy5fdXBkYXRlTWFzaygpO1xyXG4gIH1cclxuXHJcbiAgZm9jdXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlTWFzaygpIHtcclxuICAgIGlmICghdGhpcy5fbWFza09iaikge1xyXG4gICAgICB0aGlzLl9tYXNrT2JqID0gSU1hc2suY3JlYXRlTWFzayh7XHJcbiAgICAgICAgbWFzazogTnVtYmVyLFxyXG4gICAgICAgIG1pbjogdGhpcy5taW5WYWx1ZSxcclxuICAgICAgICBtYXg6IHRoaXMubWF4VmFsdWUsXHJcbiAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiB0aGlzLnRob3VzYW5kc1NlcGFyYXRvciB8fCAnJyxcclxuICAgICAgICBzY2FsZTogdGhpcy5kZWNpbWFscyxcclxuICAgICAgICByYWRpeDogJy4nLFxyXG4gICAgICAgIHBhZEZyYWN0aW9uYWxaZXJvczogdGhpcy5kZWNpbWFscyA+IDAgJiYgdGhpcy5wYWREZWNpbWFsWmVyb3MsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbWFza09iai51cGRhdGVPcHRpb25zKHtcclxuICAgICAgICBtaW46IHRoaXMubWluVmFsdWUsXHJcbiAgICAgICAgbWF4OiB0aGlzLm1heFZhbHVlLFxyXG4gICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogdGhpcy50aG91c2FuZHNTZXBhcmF0b3IgfHwgJycsXHJcbiAgICAgICAgc2NhbGU6IHRoaXMuZGVjaW1hbHMsXHJcbiAgICAgICAgcmFkaXg6ICcuJyxcclxuICAgICAgICBwYWRGcmFjdGlvbmFsWmVyb3M6IHRoaXMuZGVjaW1hbHMgPiAwICYmIHRoaXMucGFkRGVjaW1hbFplcm9zLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuX21hc2tEaXJlY3RpdmU/Lm1hc2tSZWY/LnVwZGF0ZVZhbHVlKCk7XHJcbiAgICB0aGlzLl9tYXNrRGlyZWN0aXZlPy5tYXNrUmVmPy51cGRhdGVDb250cm9sKCk7XHJcbiAgfVxyXG5cclxuICBfaGFuZGxlT25LZXlkb3duRXZlbnQoZTogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkgcmV0dXJuO1xyXG4gICAgY29uc3QgaWdub3JlID0gKCkgPT4ge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5fc2V0VXNlckludGVyYWN0aW9uKCk7XHJcbiAgICBjb25zdCBpbnB1dCA9IGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBjb25zdCB2YWxTdHIgPSBpbnB1dC52YWx1ZTtcclxuICAgIGNvbnN0IGRlY2ltYWxQb2ludEluZGV4ID0gdmFsU3RyLmluZGV4T2YoJy4nKTtcclxuICAgIGNvbnN0IF9jdXJzb3JQb3MgPSBpbnB1dC5zZWxlY3Rpb25TdGFydCE7XHJcblxyXG4gICAgaWYgKGUua2V5ID09PSAnQXJyb3dVcCcgfHwgZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBkZWNpbWFsUG9pbnRJbmRleCA+IDAgJiZcclxuICAgICAgICBfY3Vyc29yUG9zID4gZGVjaW1hbFBvaW50SW5kZXggJiZcclxuICAgICAgICB0aGlzLmRlY2ltYWxzID4gMFxyXG4gICAgICApIHtcclxuICAgICAgICBlLmtleSA9PT0gJ0Fycm93RG93bicgPyB0aGlzLmRlY2ltYWxTdGVwRG93bigpIDogdGhpcy5kZWNpbWFsU3RlcFVwKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZS5rZXkgPT09ICdBcnJvd0Rvd24nID8gdGhpcy5zdGVwRG93bigpIDogdGhpcy5zdGVwVXAoKTtcclxuICAgICAgfVxyXG4gICAgICBpZ25vcmUoKTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UoX2N1cnNvclBvcywgX2N1cnNvclBvcyk7XHJcbiAgICAgIH0sIDUpO1xyXG4gICAgfVxyXG4gICAgc3VwZXIuX2VtaXRPbktleWRvd25FdmVudChlKTtcclxuICB9XHJcblxyXG4gIF9oYW5kbGVVcERvd25DbGljayh2OiAtMSB8IDEpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZG9ubHkpIHJldHVybjtcclxuICAgIHRoaXMuX3NldFVzZXJJbnRlcmFjdGlvbigpO1xyXG4gICAgdiA9PSAxID8gdGhpcy5zdGVwVXAoKSA6IHRoaXMuc3RlcERvd24oKTtcclxuICB9XHJcblxyXG4gIF9zZXRWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAoKHZhbHVlID09IG51bGwgfHwgKHZhbHVlID09IDAgJiYgIXRoaXMuX21hc2tPYmoudmFsdWUpKSAmJiB0aGlzLmFsbG93TnVsbCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGNvbnN0IHYgPSB0b051bWJlcih2YWx1ZSk7XHJcbiAgICBpZiAodiA8IHRoaXMubWluVmFsdWUpIHJldHVybiB0aGlzLm1pblZhbHVlO1xyXG4gICAgaWYgKHYgPiB0aGlzLm1heFZhbHVlKSByZXR1cm4gdGhpcy5tYXhWYWx1ZTtcclxuICAgIHJldHVybiB2O1xyXG4gIH1cclxuXHJcbiAgc3RlcFVwKCkge1xyXG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBNYXRoLm1heCh0aGlzLm1pblZhbHVlLCAwKTtcclxuICAgIH1cclxuICAgIHRoaXMudmFsdWUgKz0gdG9OdW1iZXIodGhpcy5zdGVwKTtcclxuICB9XHJcblxyXG4gIHN0ZXBEb3duKCkge1xyXG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBNYXRoLm1heCh0aGlzLm1pblZhbHVlLCAwKTtcclxuICAgIH1cclxuICAgIHRoaXMudmFsdWUgLT0gdG9OdW1iZXIodGhpcy5zdGVwKTtcclxuICB9XHJcblxyXG4gIGRlY2ltYWxTdGVwVXAoKSB7XHJcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IE1hdGgubWF4KHRoaXMubWluVmFsdWUsIDApO1xyXG4gICAgfVxyXG4gICAgdGhpcy52YWx1ZSArPSB0b051bWJlcihcclxuICAgICAgdGhpcy5kZWNpbWFsU3RlcCA9PSAnYXV0bydcclxuICAgICAgICA/IDEgLyBNYXRoLnBvdygxMCwgdGhpcy5kZWNpbWFscylcclxuICAgICAgICA6IHRoaXMuZGVjaW1hbFN0ZXBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWNpbWFsU3RlcERvd24oKSB7XHJcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IE1hdGgubWF4KHRoaXMubWluVmFsdWUsIDApO1xyXG4gICAgfVxyXG4gICAgdGhpcy52YWx1ZSAtPSB0b051bWJlcihcclxuICAgICAgdGhpcy5kZWNpbWFsU3RlcCA9PSAnYXV0bydcclxuICAgICAgICA/IDEgLyBNYXRoLnBvdygxMCwgdGhpcy5kZWNpbWFscylcclxuICAgICAgICA6IHRoaXMuZGVjaW1hbFN0ZXBcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cImF4LXByZWZpeFwiPiA8L25nLWNvbnRlbnQ+XHJcbjxpbnB1dFxyXG4gICNpbnB1dFxyXG4gIGNsYXNzPVwiYXgtaW5wdXRcIlxyXG4gIHR5cGU9XCJ0ZXh0XCJcclxuICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgW2F0dHIuYXV0b2NvbXBsZXRlXT1cImF1dG9Db21wbGV0ZVwiXHJcbiAgW2ltYXNrXT1cIl9tYXNrT2JqXCJcclxuICBbdW5tYXNrXT1cIid0eXBlZCdcIlxyXG4gIFthdHRyLm1pbl09XCJtaW5WYWx1ZVwiXHJcbiAgW2F0dHIubWF4XT1cIm1heFZhbHVlXCJcclxuICBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gIFtjbGFzcy5heC1zdGF0ZS1yZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiXHJcbiAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgKGtleWRvd24pPVwiX2hhbmRsZU9uS2V5ZG93bkV2ZW50KCRldmVudClcIlxyXG4gIChrZXl1cCk9XCJfZW1pdE9uS2V5dXBFdmVudCgkZXZlbnQpXCJcclxuICAoa2V5cHJlc3MpPVwiX2VtaXRPbktleXByZXNzRXZlbnQoJGV2ZW50KVwiXHJcbiAgKGZvY3VzKT1cIl9lbWl0T25Gb2N1c0V2ZW50KCRldmVudClcIlxyXG4gIChibHVyKT1cIl9lbWl0T25CbHVyRXZlbnQoJGV2ZW50KVwiIC8+XHJcblxyXG48ZGl2IGNsYXNzPVwiYXgtbnVtYmVyLWJveC1jb250cm9sXCIgKm5nSWY9XCJzaG93U3BpbkJ1dHRvbnNcIj5cclxuICA8YnV0dG9uIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLWljb25cIiAoY2xpY2spPVwiX2hhbmRsZVVwRG93bkNsaWNrKDEpXCIgdGFiaW5kZXg9XCItMVwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJheC1pY29uIGF4LWljb24tYXJyb3ctdXBcIj48L3NwYW4+XHJcbiAgPC9idXR0b24+XHJcbiAgPGJ1dHRvbiBjbGFzcz1cImF4LWdlbmVyYWwtYnV0dG9uIGF4LWJ1dHRvbi1pY29uXCIgKGNsaWNrKT1cIl9oYW5kbGVVcERvd25DbGljaygtMSlcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWFycm93LWRvd25cIiB0YWJpbmRleD1cIi0xXCI+PC9zcGFuPlxyXG4gIDwvYnV0dG9uPlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gPGRpdiBjbGFzcz1cImF4LW51bWJlci1ib3gtYXJyb3dzXCIgKm5nSWY9XCJzaG93U3BpbkJ1dHRvbnMgJiYgIShkaXNhYmxlZCB8fCByZWFkb25seSlcIj5cclxuICAgIDxheC1idXR0b24gY29sb3I9XCJsaWdodFwiIGxvb2s9XCJibGFua1wiIChvbkNsaWNrKT1cIl9oYW5kbGVVcERvd25DbGljaygkZXZlbnQsMSlcIiBbdGFiSW5kZXhdPVwiLTFcIj5cclxuICAgICAgICA8YXgtcHJlZml4PlxyXG4gICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24tYXJyb3ctZmlsbCBheC1yb3RhdGlvbi05MFwiPlxyXG4gICAgICAgICAgICA8L2F4LWljb24+XHJcbiAgICAgICAgPC9heC1wcmVmaXg+XHJcbiAgICA8L2F4LWJ1dHRvbj5cclxuICAgIDxheC1idXR0b24gY29sb3I9XCJsaWdodFwiIGxvb2s9XCJibGFua1wiIChvbkNsaWNrKT1cIl9oYW5kbGVVcERvd25DbGljaygkZXZlbnQsLTEpXCIgW3RhYkluZGV4XT1cIi0xXCI+XHJcbiAgICAgICAgPGF4LXByZWZpeD5cclxuICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJheC1pY29uLWFycm93LWZpbGwgLWF4LXJvdGF0aW9uLTkwXCI+XHJcbiAgICAgICAgICAgIDwvYXgtaWNvbj5cclxuICAgICAgICA8L2F4LXByZWZpeD5cclxuICAgIDwvYXgtYnV0dG9uPlxyXG48L2Rpdj4gLS0+XHJcbjxuZy1jb250ZW50IHNlbGVjdD1cImF4LXN1ZmZpeFwiPiA8L25nLWNvbnRlbnQ+XHJcbjxuZy1jb250ZW50IHNlbGVjdD1cImF4LXZhbGlkYXRpb24tcnVsZVwiPiA8L25nLWNvbnRlbnQ+XHJcbiJdfQ==
1
+ import IMask from 'imask';
2
+ import { IMaskDirective } from 'angular-imask';
3
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, ViewChild, } from '@angular/core';
4
+ import { toNumber } from 'lodash-es';
5
+ import { AXBaseTextBoxMixin, } from '@acorex/components/mixin';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "@angular/forms";
9
+ import * as i3 from "angular-imask";
10
+ /**
11
+ * The NumberBox is a component which detects user interaction and triggers a corresponding event
12
+ *
13
+ * @category Components
14
+ */
15
+ class AXNumberBoxComponent extends AXBaseTextBoxMixin {
16
+ cdr;
17
+ input;
18
+ _thousandsSeparator;
19
+ /**
20
+ * A character value that specifies the separator character.
21
+ */
22
+ get thousandsSeparator() {
23
+ return this._thousandsSeparator;
24
+ }
25
+ set thousandsSeparator(v) {
26
+ this._setOption({
27
+ name: 'thousandsSeparator',
28
+ value: v ?? '',
29
+ });
30
+ }
31
+ _padDecimalZeros = false;
32
+ /**
33
+ * A character value that specifies the separator character.
34
+ */
35
+ get padDecimalZeros() {
36
+ return this._padDecimalZeros;
37
+ }
38
+ set padDecimalZeros(v) {
39
+ this._setOption({
40
+ name: 'padDecimalZeros',
41
+ value: v,
42
+ });
43
+ }
44
+ /**
45
+ * Specifies the value that is used to increment or decrement the **Integer** part of number
46
+ */
47
+ step = 1;
48
+ _decimals = 0;
49
+ /**
50
+ * Specifies the number of decimals that the user can enter
51
+ */
52
+ get decimals() {
53
+ return this._decimals;
54
+ }
55
+ set decimals(v) {
56
+ this._setOption({
57
+ name: 'decimals',
58
+ value: v ?? 0,
59
+ });
60
+ }
61
+ /**
62
+ * Specifies the value that is used to increment or decrement the **Deciaml** part of number
63
+ */
64
+ decimalStep = 'auto';
65
+ /**
66
+ * Specifies whether the Up and Down spin buttons will be rendered or not
67
+ */
68
+ showSpinButtons = true;
69
+ _minValue = Number.MIN_SAFE_INTEGER;
70
+ /**
71
+ * Specifies the smallest value that is valid
72
+ */
73
+ get minValue() {
74
+ return this._minValue;
75
+ }
76
+ set minValue(v) {
77
+ this._setOption({
78
+ name: 'minValue',
79
+ value: v != null ? Number(v) : Number.MIN_SAFE_INTEGER,
80
+ });
81
+ }
82
+ _maxValue = Number.MAX_SAFE_INTEGER;
83
+ /**
84
+ * Specifies the greatest value that is valid
85
+ */
86
+ get maxValue() {
87
+ return this._maxValue;
88
+ }
89
+ set maxValue(v) {
90
+ this._setOption({
91
+ name: 'maxValue',
92
+ value: v != null ? Number(v) : Number.MAX_SAFE_INTEGER,
93
+ });
94
+ }
95
+ /**
96
+ * @ignore
97
+ */
98
+ _maskObj;
99
+ _maskDirective;
100
+ /**
101
+ * @ignore
102
+ */
103
+ constructor(elementRef, cdr) {
104
+ super(elementRef, cdr);
105
+ this.cdr = cdr;
106
+ }
107
+ onViewInit() {
108
+ super.onViewInit();
109
+ this._updateMask();
110
+ }
111
+ _onOptionChanged(option) {
112
+ super._onOptionChanged(option);
113
+ this._updateMask();
114
+ }
115
+ focus() {
116
+ this.input.nativeElement.focus();
117
+ }
118
+ _updateMask() {
119
+ if (!this._maskObj) {
120
+ this._maskObj = IMask.createMask({
121
+ mask: Number,
122
+ min: this.minValue,
123
+ max: this.maxValue,
124
+ thousandsSeparator: this.thousandsSeparator || '',
125
+ scale: this.decimals,
126
+ radix: '.',
127
+ padFractionalZeros: this.decimals > 0 && this.padDecimalZeros,
128
+ });
129
+ }
130
+ else {
131
+ this._maskObj.updateOptions({
132
+ min: this.minValue,
133
+ max: this.maxValue,
134
+ thousandsSeparator: this.thousandsSeparator || '',
135
+ scale: this.decimals,
136
+ radix: '.',
137
+ padFractionalZeros: this.decimals > 0 && this.padDecimalZeros,
138
+ });
139
+ }
140
+ this._maskDirective?.maskRef?.updateValue();
141
+ this._maskDirective?.maskRef?.updateControl();
142
+ }
143
+ _handleOnKeydownEvent(e) {
144
+ if (this.disabled || this.readonly)
145
+ return;
146
+ const ignore = () => {
147
+ e.preventDefault();
148
+ e.stopPropagation();
149
+ };
150
+ this._setUserInteraction();
151
+ const input = e.target;
152
+ const valStr = input.value;
153
+ const decimalPointIndex = valStr.indexOf('.');
154
+ const _cursorPos = input.selectionStart;
155
+ if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
156
+ if (decimalPointIndex > 0 &&
157
+ _cursorPos > decimalPointIndex &&
158
+ this.decimals > 0) {
159
+ e.key === 'ArrowDown' ? this.decimalStepDown() : this.decimalStepUp();
160
+ }
161
+ else {
162
+ e.key === 'ArrowDown' ? this.stepDown() : this.stepUp();
163
+ }
164
+ ignore();
165
+ setTimeout(() => {
166
+ input.setSelectionRange(_cursorPos, _cursorPos);
167
+ }, 5);
168
+ }
169
+ super._emitOnKeydownEvent(e);
170
+ }
171
+ _handleUpDownClick(v) {
172
+ if (this.disabled || this.readonly)
173
+ return;
174
+ this._setUserInteraction();
175
+ v == 1 ? this.stepUp() : this.stepDown();
176
+ }
177
+ _setValue(value) {
178
+ if ((value == null || (value == 0 && !this._maskObj.value)) && this.allowNull) {
179
+ return null;
180
+ }
181
+ const v = toNumber(value);
182
+ if (v < this.minValue)
183
+ return this.minValue;
184
+ if (v > this.maxValue)
185
+ return this.maxValue;
186
+ return v;
187
+ }
188
+ stepUp() {
189
+ if (!this.value) {
190
+ this.value = Math.max(this.minValue, 0);
191
+ }
192
+ this.value += toNumber(this.step);
193
+ }
194
+ stepDown() {
195
+ if (!this.value) {
196
+ this.value = Math.max(this.minValue, 0);
197
+ }
198
+ this.value -= toNumber(this.step);
199
+ }
200
+ decimalStepUp() {
201
+ if (!this.value) {
202
+ this.value = Math.max(this.minValue, 0);
203
+ }
204
+ this.value += toNumber(this.decimalStep == 'auto'
205
+ ? 1 / Math.pow(10, this.decimals)
206
+ : this.decimalStep);
207
+ }
208
+ decimalStepDown() {
209
+ if (!this.value) {
210
+ this.value = Math.max(this.minValue, 0);
211
+ }
212
+ this.value -= toNumber(this.decimalStep == 'auto'
213
+ ? 1 / Math.pow(10, this.decimals)
214
+ : this.decimalStep);
215
+ }
216
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXNumberBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
217
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", size: "size", value: "value", state: "state", placeholder: "placeholder", maxLength: "maxLength", allowNull: "allowNull", type: "type", autoComplete: "autoComplete", name: "name", checked: "checked", thousandsSeparator: "thousandsSeparator", padDecimalZeros: "padDecimalZeros", step: "step", decimals: "decimals", decimalStep: "decimalStep", showSpinButtons: "showSpinButtons", minValue: "minValue", maxValue: "maxValue" }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus" }, host: { classAttribute: "ax-editor-container" }, 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\"> </ng-content>\r\n<input\r\n #input\r\n class=\"ax-input\"\r\n type=\"text\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.autocomplete]=\"autoComplete\"\r\n [imask]=\"_maskObj\"\r\n [unmask]=\"'typed'\"\r\n [attr.min]=\"minValue\"\r\n [attr.max]=\"maxValue\"\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)]=\"value\"\r\n (keydown)=\"_handleOnKeydownEvent($event)\"\r\n (keyup)=\"_emitOnKeyupEvent($event)\"\r\n (keypress)=\"_emitOnKeypressEvent($event)\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\" />\r\n\r\n<div class=\"ax-number-box-control\" *ngIf=\"showSpinButtons\">\r\n <button class=\"ax-general-button ax-button-icon\" (click)=\"_handleUpDownClick(1)\" tabindex=\"-1\">\r\n <span class=\"ax-icon ax-icon-arrow-up\"></span>\r\n </button>\r\n <button class=\"ax-general-button ax-button-icon\" (click)=\"_handleUpDownClick(-1)\">\r\n <span class=\"ax-icon ax-icon-arrow-down\" tabindex=\"-1\"></span>\r\n </button>\r\n</div>\r\n\r\n<!-- <div class=\"ax-number-box-arrows\" *ngIf=\"showSpinButtons && !(disabled || readonly)\">\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,1)\" [tabIndex]=\"-1\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-icon-arrow-fill ax-rotation-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,-1)\" [tabIndex]=\"-1\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-icon-arrow-fill -ax-rotation-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n</div> -->\r\n<ng-content select=\"ax-suffix\"> </ng-content>\r\n<ng-content select=\"ax-validation-rule\"> </ng-content>\r\n", styles: [".ax-number-box-control{display:flex;height:100%;align-items:center;justify-content:center;margin-inline-end:.25rem;flex-direction:column}.ax-number-box-control .ax-general-button{display:flex;width:1.25rem;height:1rem;border-radius:.2rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
218
+ }
219
+ export { AXNumberBoxComponent };
220
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXNumberBoxComponent, decorators: [{
221
+ type: Component,
222
+ args: [{ selector: 'ax-number-box', inputs: [
223
+ 'disabled',
224
+ 'readonly',
225
+ 'tabIndex',
226
+ 'size',
227
+ 'value',
228
+ 'state',
229
+ 'placeholder',
230
+ 'maxLength',
231
+ 'allowNull',
232
+ 'type',
233
+ 'autoComplete',
234
+ 'readonly',
235
+ 'allowNull',
236
+ 'value',
237
+ 'name',
238
+ 'checked',
239
+ ], outputs: [
240
+ 'valueChange',
241
+ 'stateChange',
242
+ 'onValueChanged',
243
+ 'onBlur',
244
+ 'onFocus'
245
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ax-editor-container' }, template: "<ng-content select=\"ax-prefix\"> </ng-content>\r\n<input\r\n #input\r\n class=\"ax-input\"\r\n type=\"text\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.autocomplete]=\"autoComplete\"\r\n [imask]=\"_maskObj\"\r\n [unmask]=\"'typed'\"\r\n [attr.min]=\"minValue\"\r\n [attr.max]=\"maxValue\"\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)]=\"value\"\r\n (keydown)=\"_handleOnKeydownEvent($event)\"\r\n (keyup)=\"_emitOnKeyupEvent($event)\"\r\n (keypress)=\"_emitOnKeypressEvent($event)\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\" />\r\n\r\n<div class=\"ax-number-box-control\" *ngIf=\"showSpinButtons\">\r\n <button class=\"ax-general-button ax-button-icon\" (click)=\"_handleUpDownClick(1)\" tabindex=\"-1\">\r\n <span class=\"ax-icon ax-icon-arrow-up\"></span>\r\n </button>\r\n <button class=\"ax-general-button ax-button-icon\" (click)=\"_handleUpDownClick(-1)\">\r\n <span class=\"ax-icon ax-icon-arrow-down\" tabindex=\"-1\"></span>\r\n </button>\r\n</div>\r\n\r\n<!-- <div class=\"ax-number-box-arrows\" *ngIf=\"showSpinButtons && !(disabled || readonly)\">\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,1)\" [tabIndex]=\"-1\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-icon-arrow-fill ax-rotation-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,-1)\" [tabIndex]=\"-1\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-icon-arrow-fill -ax-rotation-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n</div> -->\r\n<ng-content select=\"ax-suffix\"> </ng-content>\r\n<ng-content select=\"ax-validation-rule\"> </ng-content>\r\n", styles: [".ax-number-box-control{display:flex;height:100%;align-items:center;justify-content:center;margin-inline-end:.25rem;flex-direction:column}.ax-number-box-control .ax-general-button{display:flex;width:1.25rem;height:1rem;border-radius:.2rem}\n"] }]
246
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { input: [{
247
+ type: ViewChild,
248
+ args: ['input']
249
+ }], thousandsSeparator: [{
250
+ type: Input
251
+ }], padDecimalZeros: [{
252
+ type: Input
253
+ }], step: [{
254
+ type: Input
255
+ }], decimals: [{
256
+ type: Input
257
+ }], decimalStep: [{
258
+ type: Input
259
+ }], showSpinButtons: [{
260
+ type: Input
261
+ }], minValue: [{
262
+ type: Input
263
+ }], maxValue: [{
264
+ type: Input
265
+ }], _maskDirective: [{
266
+ type: ViewChild,
267
+ args: [IMaskDirective]
268
+ }] } });
269
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9udW1iZXItYm94L3NyYy9udW1iZXItYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL251bWJlci1ib3gvc3JjL251bWJlci1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBR3ZCLEtBQUssRUFDTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQ0wsa0JBQWtCLEdBRW5CLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBRWxDOzs7O0dBSUc7QUFDSCxNQWlDYSxvQkFBcUIsU0FBUSxrQkFBa0I7SUEyR2Q7SUExR3hCLEtBQUssQ0FBK0I7SUFFaEQsbUJBQW1CLENBQVM7SUFDcEM7O09BRUc7SUFDSCxJQUNXLGtCQUFrQjtRQUMzQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBVyxrQkFBa0IsQ0FBQyxDQUFTO1FBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDZCxJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRTtTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxnQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFDMUM7O09BRUc7SUFDSCxJQUNXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFD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QWVOLElBQUk7c0JBREgsS0FBSztnQkFRSyxRQUFRO3NCQURsQixLQUFLO2dCQWVOLFdBQVc7c0JBRFYsS0FBSztnQkFPTixlQUFlO3NCQURkLEtBQUs7Z0JBUUssUUFBUTtzQkFEbEIsS0FBSztnQkFnQkssUUFBUTtzQkFEbEIsS0FBSztnQkFpQkUsY0FBYztzQkFEckIsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IElNYXNrIGZyb20gJ2ltYXNrJztcclxuaW1wb3J0IHsgSU1hc2tEaXJlY3RpdmUgfSBmcm9tICdhbmd1bGFyLWltYXNrJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBJbnB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5cclxuaW1wb3J0IHsgdG9OdW1iZXIgfSBmcm9tICdsb2Rhc2gtZXMnO1xyXG5pbXBvcnQge1xyXG4gIEFYQmFzZVRleHRCb3hNaXhpbixcclxuICBBWENvbXBvbmVudE9wdGlvbkNoYW5nZWQsXHJcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21peGluJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgTnVtYmVyQm94IGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XHJcbiAqXHJcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LW51bWJlci1ib3gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9udW1iZXItYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9udW1iZXItYm94LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgaW5wdXRzOiBbXHJcbiAgICAnZGlzYWJsZWQnLFxyXG4gICAgJ3JlYWRvbmx5JyxcclxuICAgICd0YWJJbmRleCcsXHJcbiAgICAnc2l6ZScsXHJcbiAgICAndmFsdWUnLFxyXG4gICAgJ3N0YXRlJyxcclxuICAgICdwbGFjZWhvbGRlcicsXHJcbiAgICAnbWF4TGVuZ3RoJyxcclxuICAgICdhbGxvd051bGwnLFxyXG4gICAgJ3R5cGUnLFxyXG4gICAgJ2F1dG9Db21wbGV0ZScsXHJcbiAgICAncmVhZG9ubHknLFxyXG4gICAgJ2FsbG93TnVsbCcsXHJcbiAgICAndmFsdWUnLFxyXG4gICAgJ25hbWUnLFxyXG4gICAgJ2NoZWNrZWQnLFxyXG4gIF0sXHJcbiAgb3V0cHV0czogW1xyXG4gICAgJ3ZhbHVlQ2hhbmdlJyxcclxuICAgICdzdGF0ZUNoYW5nZScsXHJcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxyXG4gICAgJ29uQmx1cicsXHJcbiAgICAnb25Gb2N1cydcclxuICBdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgaG9zdDogeyBjbGFzczogJ2F4LWVkaXRvci1jb250YWluZXInIH0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWE51bWJlckJveENvbXBvbmVudCBleHRlbmRzIEFYQmFzZVRleHRCb3hNaXhpbiB7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuXHJcbiAgcHJpdmF0ZSBfdGhvdXNhbmRzU2VwYXJhdG9yOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogIEEgY2hhcmFjdGVyIHZhbHVlIHRoYXQgc3BlY2lmaWVzIHRoZSBzZXBhcmF0b3IgY2hhcmFjdGVyLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCB0aG91c2FuZHNTZXBhcmF0b3IoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90aG91c2FuZHNTZXBhcmF0b3I7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgdGhvdXNhbmRzU2VwYXJhdG9yKHY6IHN0cmluZykge1xyXG4gICAgdGhpcy5fc2V0T3B0aW9uKHtcclxuICAgICAgbmFtZTogJ3Rob3VzYW5kc1NlcGFyYXRvcicsXHJcbiAgICAgIHZhbHVlOiB2ID8/ICcnLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wYWREZWNpbWFsWmVyb3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiAgQSBjaGFyYWN0ZXIgdmFsdWUgdGhhdCBzcGVjaWZpZXMgdGhlIHNlcGFyYXRvciBjaGFyYWN0ZXIuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IHBhZERlY2ltYWxaZXJvcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9wYWREZWNpbWFsWmVyb3M7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgcGFkRGVjaW1hbFplcm9zKHY6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3NldE9wdGlvbih7XHJcbiAgICAgIG5hbWU6ICdwYWREZWNpbWFsWmVyb3MnLFxyXG4gICAgICB2YWx1ZTogdixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogIFNwZWNpZmllcyB0aGUgdmFsdWUgdGhhdCBpcyB1c2VkIHRvIGluY3JlbWVudCBvciBkZWNyZW1lbnQgdGhlICoqSW50ZWdlcioqIHBhcnQgb2YgbnVtYmVyXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzdGVwOiBudW1iZXIgPSAxO1xyXG5cclxuICBwcml2YXRlIF9kZWNpbWFsczogbnVtYmVyID0gMDtcclxuICAvKipcclxuICAgKiAgU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgZGVjaW1hbHMgdGhhdCB0aGUgdXNlciBjYW4gZW50ZXJcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgZGVjaW1hbHMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9kZWNpbWFscztcclxuICB9XHJcbiAgcHVibGljIHNldCBkZWNpbWFscyh2OiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3NldE9wdGlvbih7XHJcbiAgICAgIG5hbWU6ICdkZWNpbWFscycsXHJcbiAgICAgIHZhbHVlOiB2ID8/IDAsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICBTcGVjaWZpZXMgdGhlIHZhbHVlIHRoYXQgaXMgdXNlZCB0byBpbmNyZW1lbnQgb3IgZGVjcmVtZW50IHRoZSAqKkRlY2lhbWwqKiBwYXJ0IG9mIG51bWJlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgZGVjaW1hbFN0ZXA6IG51bWJlciB8ICdhdXRvJyA9ICdhdXRvJztcclxuXHJcbiAgLyoqXHJcbiAgICogIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBVcCBhbmQgRG93biBzcGluIGJ1dHRvbnMgd2lsbCBiZSByZW5kZXJlZCBvciBub3RcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNob3dTcGluQnV0dG9uczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIHByaXZhdGUgX21pblZhbHVlOiBudW1iZXIgPSBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUjtcclxuICAvKipcclxuICAgKiAgU3BlY2lmaWVzIHRoZSBzbWFsbGVzdCB2YWx1ZSB0aGF0IGlzIHZhbGlkXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IG1pblZhbHVlKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWluVmFsdWU7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgbWluVmFsdWUodjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9zZXRPcHRpb24oe1xyXG4gICAgICBuYW1lOiAnbWluVmFsdWUnLFxyXG4gICAgICB2YWx1ZTogdiAhPSBudWxsID8gTnVtYmVyKHYpIDogTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX21heFZhbHVlOiBudW1iZXIgPSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUjtcclxuICAvKipcclxuICAgKiAgU3BlY2lmaWVzIHRoZSBncmVhdGVzdCB2YWx1ZSB0aGF0IGlzIHZhbGlkXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IG1heFZhbHVlKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWF4VmFsdWU7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgbWF4VmFsdWUodjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9zZXRPcHRpb24oe1xyXG4gICAgICBuYW1lOiAnbWF4VmFsdWUnLFxyXG4gICAgICB2YWx1ZTogdiAhPSBudWxsID8gTnVtYmVyKHYpIDogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICBAaWdub3JlXHJcbiAgICovXHJcbiAgX21hc2tPYmo6IElNYXNrLk1hc2tlZE51bWJlcjtcclxuXHJcbiAgQFZpZXdDaGlsZChJTWFza0RpcmVjdGl2ZSlcclxuICBwcml2YXRlIF9tYXNrRGlyZWN0aXZlOiBJTWFza0RpcmVjdGl2ZTxJTWFzay5NYXNrZWROdW1iZXI+O1xyXG5cclxuICAvKipcclxuICAgKiAgQGlnbm9yZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgc3VwZXIoZWxlbWVudFJlZiwgY2RyKTtcclxuICB9XHJcblxyXG4gIG9uVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5vblZpZXdJbml0KCk7XHJcbiAgICB0aGlzLl91cGRhdGVNYXNrKCk7XHJcbiAgfVxyXG5cclxuICBfb25PcHRpb25DaGFuZ2VkKG9wdGlvbjogQVhDb21wb25lbnRPcHRpb25DaGFuZ2VkKTogdm9pZCB7XHJcbiAgICBzdXBlci5fb25PcHRpb25DaGFuZ2VkKG9wdGlvbik7XHJcbiAgICB0aGlzLl91cGRhdGVNYXNrKCk7XHJcbiAgfVxyXG5cclxuICBmb2N1cygpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVNYXNrKCkge1xyXG4gICAgaWYgKCF0aGlzLl9tYXNrT2JqKSB7XHJcbiAgICAgIHRoaXMuX21hc2tPYmogPSBJTWFzay5jcmVhdGVNYXNrKHtcclxuICAgICAgICBtYXNrOiBOdW1iZXIsXHJcbiAgICAgICAgbWluOiB0aGlzLm1pblZhbHVlLFxyXG4gICAgICAgIG1heDogdGhpcy5tYXhWYWx1ZSxcclxuICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yIHx8ICcnLFxyXG4gICAgICAgIHNjYWxlOiB0aGlzLmRlY2ltYWxzLFxyXG4gICAgICAgIHJhZGl4OiAnLicsXHJcbiAgICAgICAgcGFkRnJhY3Rpb25hbFplcm9zOiB0aGlzLmRlY2ltYWxzID4gMCAmJiB0aGlzLnBhZERlY2ltYWxaZXJvcyxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9tYXNrT2JqLnVwZGF0ZU9wdGlvbnMoe1xyXG4gICAgICAgIG1pbjogdGhpcy5taW5WYWx1ZSxcclxuICAgICAgICBtYXg6IHRoaXMubWF4VmFsdWUsXHJcbiAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiB0aGlzLnRob3VzYW5kc1NlcGFyYXRvciB8fCAnJyxcclxuICAgICAgICBzY2FsZTogdGhpcy5kZWNpbWFscyxcclxuICAgICAgICByYWRpeDogJy4nLFxyXG4gICAgICAgIHBhZEZyYWN0aW9uYWxaZXJvczogdGhpcy5kZWNpbWFscyA+IDAgJiYgdGhpcy5wYWREZWNpbWFsWmVyb3MsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fbWFza0RpcmVjdGl2ZT8ubWFza1JlZj8udXBkYXRlVmFsdWUoKTtcclxuICAgIHRoaXMuX21hc2tEaXJlY3RpdmU/Lm1hc2tSZWY/LnVwZGF0ZUNvbnRyb2woKTtcclxuICB9XHJcblxyXG4gIF9oYW5kbGVPbktleWRvd25FdmVudChlOiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSByZXR1cm47XHJcbiAgICBjb25zdCBpZ25vcmUgPSAoKSA9PiB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH07XHJcbiAgICB0aGlzLl9zZXRVc2VySW50ZXJhY3Rpb24oKTtcclxuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGNvbnN0IHZhbFN0ciA9IGlucHV0LnZhbHVlO1xyXG4gICAgY29uc3QgZGVjaW1hbFBvaW50SW5kZXggPSB2YWxTdHIuaW5kZXhPZignLicpO1xyXG4gICAgY29uc3QgX2N1cnNvclBvcyA9IGlucHV0LnNlbGVjdGlvblN0YXJ0ITtcclxuXHJcbiAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJyB8fCBlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGRlY2ltYWxQb2ludEluZGV4ID4gMCAmJlxyXG4gICAgICAgIF9jdXJzb3JQb3MgPiBkZWNpbWFsUG9pbnRJbmRleCAmJlxyXG4gICAgICAgIHRoaXMuZGVjaW1hbHMgPiAwXHJcbiAgICAgICkge1xyXG4gICAgICAgIGUua2V5ID09PSAnQXJyb3dEb3duJyA/IHRoaXMuZGVjaW1hbFN0ZXBEb3duKCkgOiB0aGlzLmRlY2ltYWxTdGVwVXAoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBlLmtleSA9PT0gJ0Fycm93RG93bicgPyB0aGlzLnN0ZXBEb3duKCkgOiB0aGlzLnN0ZXBVcCgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlnbm9yZSgpO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShfY3Vyc29yUG9zLCBfY3Vyc29yUG9zKTtcclxuICAgICAgfSwgNSk7XHJcbiAgICB9XHJcbiAgICBzdXBlci5fZW1pdE9uS2V5ZG93bkV2ZW50KGUpO1xyXG4gIH1cclxuXHJcbiAgX2hhbmRsZVVwRG93bkNsaWNrKHY6IC0xIHwgMSkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkgcmV0dXJuO1xyXG4gICAgdGhpcy5fc2V0VXNlckludGVyYWN0aW9uKCk7XHJcbiAgICB2ID09IDEgPyB0aGlzLnN0ZXBVcCgpIDogdGhpcy5zdGVwRG93bigpO1xyXG4gIH1cclxuXHJcbiAgX3NldFZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICgodmFsdWUgPT0gbnVsbCB8fCAodmFsdWUgPT0gMCAmJiAhdGhpcy5fbWFza09iai52YWx1ZSkpICYmIHRoaXMuYWxsb3dOdWxsKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdiA9IHRvTnVtYmVyKHZhbHVlKTtcclxuICAgIGlmICh2IDwgdGhpcy5taW5WYWx1ZSkgcmV0dXJuIHRoaXMubWluVmFsdWU7XHJcbiAgICBpZiAodiA+IHRoaXMubWF4VmFsdWUpIHJldHVybiB0aGlzLm1heFZhbHVlO1xyXG4gICAgcmV0dXJuIHY7XHJcbiAgfVxyXG5cclxuICBzdGVwVXAoKSB7XHJcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IE1hdGgubWF4KHRoaXMubWluVmFsdWUsIDApO1xyXG4gICAgfVxyXG4gICAgdGhpcy52YWx1ZSArPSB0b051bWJlcih0aGlzLnN0ZXApO1xyXG4gIH1cclxuXHJcbiAgc3RlcERvd24oKSB7XHJcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IE1hdGgubWF4KHRoaXMubWluVmFsdWUsIDApO1xyXG4gICAgfVxyXG4gICAgdGhpcy52YWx1ZSAtPSB0b051bWJlcih0aGlzLnN0ZXApO1xyXG4gIH1cclxuXHJcbiAgZGVjaW1hbFN0ZXBVcCgpIHtcclxuICAgIGlmICghdGhpcy52YWx1ZSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gTWF0aC5tYXgodGhpcy5taW5WYWx1ZSwgMCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnZhbHVlICs9IHRvTnVtYmVyKFxyXG4gICAgICB0aGlzLmRlY2ltYWxTdGVwID09ICdhdXRvJ1xyXG4gICAgICAgID8gMSAvIE1hdGgucG93KDEwLCB0aGlzLmRlY2ltYWxzKVxyXG4gICAgICAgIDogdGhpcy5kZWNpbWFsU3RlcFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRlY2ltYWxTdGVwRG93bigpIHtcclxuICAgIGlmICghdGhpcy52YWx1ZSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gTWF0aC5tYXgodGhpcy5taW5WYWx1ZSwgMCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnZhbHVlIC09IHRvTnVtYmVyKFxyXG4gICAgICB0aGlzLmRlY2ltYWxTdGVwID09ICdhdXRvJ1xyXG4gICAgICAgID8gMSAvIE1hdGgucG93KDEwLCB0aGlzLmRlY2ltYWxzKVxyXG4gICAgICAgIDogdGhpcy5kZWNpbWFsU3RlcFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+IDwvbmctY29udGVudD5cclxuPGlucHV0XHJcbiAgI2lucHV0XHJcbiAgY2xhc3M9XCJheC1pbnB1dFwiXHJcbiAgdHlwZT1cInRleHRcIlxyXG4gIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICBbYXR0ci5hdXRvY29tcGxldGVdPVwiYXV0b0NvbXBsZXRlXCJcclxuICBbaW1hc2tdPVwiX21hc2tPYmpcIlxyXG4gIFt1bm1hc2tdPVwiJ3R5cGVkJ1wiXHJcbiAgW2F0dHIubWluXT1cIm1pblZhbHVlXCJcclxuICBbYXR0ci5tYXhdPVwibWF4VmFsdWVcIlxyXG4gIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgW2NsYXNzLmF4LXN0YXRlLXJlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgW3RhYmluZGV4XT1cInRhYkluZGV4XCJcclxuICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAoa2V5ZG93bik9XCJfaGFuZGxlT25LZXlkb3duRXZlbnQoJGV2ZW50KVwiXHJcbiAgKGtleXVwKT1cIl9lbWl0T25LZXl1cEV2ZW50KCRldmVudClcIlxyXG4gIChrZXlwcmVzcyk9XCJfZW1pdE9uS2V5cHJlc3NFdmVudCgkZXZlbnQpXCJcclxuICAoZm9jdXMpPVwiX2VtaXRPbkZvY3VzRXZlbnQoJGV2ZW50KVwiXHJcbiAgKGJsdXIpPVwiX2VtaXRPbkJsdXJFdmVudCgkZXZlbnQpXCIgLz5cclxuXHJcbjxkaXYgY2xhc3M9XCJheC1udW1iZXItYm94LWNvbnRyb2xcIiAqbmdJZj1cInNob3dTcGluQnV0dG9uc1wiPlxyXG4gIDxidXR0b24gY2xhc3M9XCJheC1nZW5lcmFsLWJ1dHRvbiBheC1idXR0b24taWNvblwiIChjbGljayk9XCJfaGFuZGxlVXBEb3duQ2xpY2soMSlcIiB0YWJpbmRleD1cIi0xXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1hcnJvdy11cFwiPjwvc3Bhbj5cclxuICA8L2J1dHRvbj5cclxuICA8YnV0dG9uIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLWljb25cIiAoY2xpY2spPVwiX2hhbmRsZVVwRG93bkNsaWNrKC0xKVwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJheC1pY29uIGF4LWljb24tYXJyb3ctZG93blwiIHRhYmluZGV4PVwiLTFcIj48L3NwYW4+XHJcbiAgPC9idXR0b24+XHJcbjwvZGl2PlxyXG5cclxuPCEtLSA8ZGl2IGNsYXNzPVwiYXgtbnVtYmVyLWJveC1hcnJvd3NcIiAqbmdJZj1cInNob3dTcGluQnV0dG9ucyAmJiAhKGRpc2FibGVkIHx8IHJlYWRvbmx5KVwiPlxyXG4gICAgPGF4LWJ1dHRvbiBjb2xvcj1cImxpZ2h0XCIgbG9vaz1cImJsYW5rXCIgKG9uQ2xpY2spPVwiX2hhbmRsZVVwRG93bkNsaWNrKCRldmVudCwxKVwiIFt0YWJJbmRleF09XCItMVwiPlxyXG4gICAgICAgIDxheC1wcmVmaXg+XHJcbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbi1hcnJvdy1maWxsIGF4LXJvdGF0aW9uLTkwXCI+XHJcbiAgICAgICAgICAgIDwvYXgtaWNvbj5cclxuICAgICAgICA8L2F4LXByZWZpeD5cclxuICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgPGF4LWJ1dHRvbiBjb2xvcj1cImxpZ2h0XCIgbG9vaz1cImJsYW5rXCIgKG9uQ2xpY2spPVwiX2hhbmRsZVVwRG93bkNsaWNrKCRldmVudCwtMSlcIiBbdGFiSW5kZXhdPVwiLTFcIj5cclxuICAgICAgICA8YXgtcHJlZml4PlxyXG4gICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24tYXJyb3ctZmlsbCAtYXgtcm90YXRpb24tOTBcIj5cclxuICAgICAgICAgICAgPC9heC1pY29uPlxyXG4gICAgICAgIDwvYXgtcHJlZml4PlxyXG4gICAgPC9heC1idXR0b24+XHJcbjwvZGl2PiAtLT5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+IDwvbmctY29udGVudD5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+IDwvbmctY29udGVudD5cclxuIl19