@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,240 +1,241 @@
1
- import { AXStringUtil } from '@acorex/core/utils';
2
- import { AXTranslator } from '@acorex/core/translation';
3
- import { AXDateTime } from '@acorex/core/dateTime';
4
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, Input, EventEmitter, Output, } from '@angular/core';
5
- import { AXClosbaleComponent } from '@acorex/components/common';
6
- import { AXCalendarComponent, AXCalendarBaseComponent } from '@acorex/components/calendar';
7
- import { AXPopoverComponent } from '@acorex/components/popover';
8
- import { _DropdownComponenetMixin, _InteractiveComponenetMixin, _ValueComponenetMixin, } from '@acorex/components/mixin';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@acorex/core/platform";
11
- import * as i2 from "@angular/common";
12
- import * as i3 from "@acorex/components/calendar";
13
- import * as i4 from "@acorex/components/popover";
14
- import * as i5 from "@acorex/components/decorators";
15
- import * as i6 from "@angular/forms";
16
- export const AXBaseDatePickerMixin = _InteractiveComponenetMixin(_DropdownComponenetMixin(_ValueComponenetMixin(AXCalendarBaseComponent)));
17
- export class AXDatePickerComponent extends AXBaseDatePickerMixin {
18
- _platform;
19
- popover = null;
20
- _calendar;
21
- _target;
22
- displayText;
23
- _calendarValue;
24
- _cursorPos = 0;
25
- _isMobile = false;
26
- _popoverTitle;
27
- _popoverWidth;
28
- formatChange = new EventEmitter();
29
- _format = 'YYYY-MM-dd';
30
- get format() {
31
- return this._format;
32
- }
33
- set format(v) {
34
- this._setOption({
35
- name: 'format',
36
- value: v,
37
- });
38
- }
39
- placeholder;
40
- interface = 'calendar';
41
- constructor(_elementRef, _cdr, _platform) {
42
- super(_elementRef, _cdr);
43
- this._platform = _platform;
44
- this._target = this._getHostElement();
45
- this._isMobile = this._platform.is('Mobile') || this._platform.is('SM');
46
- this._platform.resize.subscribe(() => {
47
- this._isMobile = this._platform.is('Mobile') || this._platform.is('SM');
48
- this.popover.dispose();
49
- });
50
- }
51
- onInit() {
52
- this._popoverTitle = this.placeholder || AXTranslator.get('datepicker.popover.title');
53
- }
54
- _updateDisplayText() {
55
- this.displayText = this.value ? AXDateTime.convert(this.value, this.type).format(this._format) : '';
56
- }
57
- _handlePopoverOpened(e) {
58
- setTimeout(() => {
59
- this._calendar?.navTo(this.value || new AXDateTime(new Date(), this.type));
60
- }, 10);
61
- }
62
- _handleArrowClickEvent() {
63
- this.toggle();
64
- }
65
- _onValueChanged(oldValue, newValue) {
66
- this._updateDisplayText();
67
- this.close();
68
- }
69
- _onOptionChanged(option) {
70
- super._onOptionChanged(option);
71
- if (option.name == 'type') {
72
- this._updateDisplayText();
73
- }
74
- }
75
- _handleOnKeydownEvent(e) {
76
- const ignore = () => {
77
- e.preventDefault();
78
- e.stopPropagation();
79
- };
80
- const nums = Array(10)
81
- .fill(0)
82
- .map((v, i) => i.toString());
83
- const chars = ['Backspace', 'ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft', 'Tab', 'Enter'];
84
- const input = e.target;
85
- const key = e.key;
86
- const valStr = input.value;
87
- const sStart = input.selectionStart || 0;
88
- const sEnd = input.selectionEnd || 0;
89
- const dateVal = new AXDateTime(this.value);
90
- //
91
- const re = /[a-zA-Z0-9]+/gi;
92
- const parts = Array.from(this.format.matchAll(re));
93
- const word = valStr.substring(sStart, sEnd);
94
- const part = parts.find((c) => c.index >= sStart);
95
- //
96
- //
97
- if ([...nums].includes(key)) {
98
- if (part) {
99
- switch (part[0]) {
100
- case 'dd':
101
- case 'DD':
102
- const newVal = Math.max(1, Math.min(31, Number(word + e.key)));
103
- this.value = dateVal.set('day', newVal).date;
104
- break;
105
- case 'mm':
106
- break;
107
- case 'yy':
108
- case 'YYYY':
109
- break;
110
- }
111
- setTimeout(() => {
112
- this._highlightPart(input, sStart);
113
- }, 10);
114
- ignore();
115
- }
116
- }
117
- else if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {
118
- const next = Array.from(valStr.substr(sEnd).matchAll(re));
119
- const prev = Array.from(valStr.substring(0, sStart).matchAll(re));
120
- ignore();
121
- this._highlightPart(input, e.key === 'ArrowRight' ? sEnd + (next[0]?.index || 0) : prev[prev.length - 1]?.index);
122
- }
123
- else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
124
- if (e.ctrlKey && e.key === 'ArrowDown') {
125
- this.open();
126
- }
127
- else {
128
- const sign = e.key === 'ArrowUp' ? +1 : -1;
129
- if (part) {
130
- switch (part[0]) {
131
- case 'dd':
132
- case 'DD':
133
- this.value = dateVal.add('day', sign).date;
134
- break;
135
- case 'mm':
136
- case 'MMM':
137
- case 'MMMM':
138
- this.value = dateVal.add('month', sign).date;
139
- break;
140
- case 'yy':
141
- case 'YYYY':
142
- this.value = dateVal.add('year', sign).date;
143
- break;
144
- }
145
- setTimeout(() => {
146
- this._highlightPart(input, sStart);
147
- }, 10);
148
- }
149
- }
150
- ignore();
151
- }
152
- else if (e.key == 'Backspace') {
153
- if (this.allowNull) {
154
- this.value = null;
155
- }
156
- ignore();
157
- }
158
- // else if (nums.includes(key)) {
159
- // }
160
- // super._emitOnKeydownEvent(e);
161
- }
162
- _handleOnInputClickEvent(e) {
163
- const input = e.target;
164
- this._highlightPart(input);
165
- e.preventDefault();
166
- e.stopPropagation();
167
- }
168
- _handleOnNavigate(e) {
169
- this.onNavigate.emit(e);
170
- }
171
- _highlightPart(input, pos) {
172
- const { start, end } = AXStringUtil.getWordBoundsAtPosition(input.value, pos != null ? pos : input.selectionStart || 0);
173
- input.setSelectionRange(start, end);
174
- }
175
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXDatePickerComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.AXPlatform }], target: i0.ɵɵFactoryTarget.Component });
176
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: AXDatePickerComponent, selector: "ax-date-picker", inputs: { rtl: "rtl", isOpen: "isOpen", fitParent: "fitParent", dropdownWidth: "dropdownWidth", position: "position", disabled: "disabled", tabIndex: "tabIndex", readonly: "readonly", allowNull: "allowNull", value: "value", name: "name", checked: "checked", placeholder: "placeholder", maxLength: "maxLength", type: "type", autoComplete: "autoComplete", depth: "depth", activeView: "activeView", min: "min", max: "max", disabledDates: "disabledDates", holidayDates: "holidayDates", format: "format", interface: "interface" }, outputs: { onOpened: "onOpened", onClosed: "onClosed", onBlur: "onBlur", onFocus: "onFocus", valueChange: "valueChange", onValueChanged: "onValueChanged", depthChange: "depthChange", typeChange: "typeChange", disabledDatesChange: "disabledDatesChange", holidayDatesChange: "holidayDatesChange", onNavigate: "onNavigate", formatChange: "formatChange" }, host: { classAttribute: "ax-editor-container ax-drop-down" }, providers: [{ provide: AXClosbaleComponent, useExisting: AXDatePickerComponent }], viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, static: true }, { propertyName: "_calendar", first: true, predicate: AXCalendarComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\"> </ng-content>\r\n<div class=\"ax-dropdown-content ax-cursor-pointer\" (click)=\"toggle()\">\r\n <input\r\n class=\"ax-input\"\r\n type=\"text\"\r\n [attr.placeholder]=\"placeholder\"\r\n [class.ax-state-disabled]=\"disabled\"\r\n [class.ax-state-readonly]=\"readonly\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"true\"\r\n [attr.tabindex]=\"_isMobile ? -1 : tabIndex\"\r\n [ngModel]=\"displayText\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (mouseup)=\"_handleOnInputClickEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\"\r\n (keydown)=\"_handleOnKeydownEvent($event)\" />\r\n</div>\r\n<button\r\n [disabled]=\"disabled\"\r\n [tabIndex]=\"-1\"\r\n class=\"ax-editor-control\"\r\n (click)=\"_handleArrowClickEvent()\">\r\n <span class=\"ax-icon ax-icon-calendar\"></span>\r\n</button>\r\n<ng-content select=\"ax-suffix\"> </ng-content>\r\n<ng-content select=\"ax-validation-rule\"> </ng-content>\r\n<ax-popover\r\n [target]=\"_target\"\r\n [position]=\"position\"\r\n [openTrigger]=\"'manual'\"\r\n [closeTrigger]=\"'clickout'\"\r\n [adaptivityEnabled]=\"true\"\r\n (onOpened)=\"_handlePopoverOpened($event)\">\r\n <div class=\"ax-overlay-pane\" [class.ax-w-full]=\"_isMobile\">\r\n <ax-header *ngIf=\"_isMobile\">\r\n <ax-title>\r\n {{ placeholder || 'Choose a date' }}\r\n </ax-title>\r\n <ax-close-button></ax-close-button>\r\n </ax-header>\r\n <ng-container\r\n *ngIf=\"\r\n interface === 'calendar';\r\n then calendarTemplate;\r\n else pickerTemplate\r\n \"></ng-container>\r\n <ng-template #calendarTemplate>\r\n <ax-calendar\r\n #calendar\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [(value)]=\"value\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [rtl]=\"rtl\"\r\n [disabledDates]=\"disabledDates\"\r\n [holidayDates]=\"holidayDates\"\r\n [depth]=\"depth\"\r\n (onNavigate)=\"_handleOnNavigate($event)\"\r\n [type]=\"type\">\r\n </ax-calendar>\r\n </ng-template>\r\n <ng-template #pickerTemplate> </ng-template>\r\n </div>\r\n</ax-popover>\r\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.AXCalendarComponent, selector: "ax-calendar", inputs: ["rtl", "readonly", "value", "name", "disabled", "depth", "activeView", "min", "max", "disabledDates", "holidayDates", "type", "cellTemplate", "cellClass", "showNavigation"], outputs: ["onOptionChanged", "valueChange", "onValueChanged", "onBlur", "onFocus", "depthChange", "typeChange", "activeViewChange", "disabledDatesChange", "holidayDatesChange", "onNavigate", "onSlotClick"] }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["target", "position", "openTrigger", "closeTrigger", "hasBackdrop", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i5.AXDecoratorHeaderComponent, selector: "ax-header" }, { kind: "component", type: i5.AXDecoratorTitleComponent, selector: "ax-title" }, { kind: "component", type: i5.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
177
- }
178
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXDatePickerComponent, decorators: [{
179
- type: Component,
180
- args: [{ selector: 'ax-date-picker', inputs: [
181
- 'rtl',
182
- 'isOpen',
183
- 'fitParent',
184
- 'dropdownWidth',
185
- 'position',
186
- 'disabled',
187
- 'tabIndex',
188
- 'readonly',
189
- 'allowNull',
190
- 'value',
191
- 'name',
192
- 'checked',
193
- 'placeholder',
194
- 'maxLength',
195
- 'allowNull',
196
- 'type',
197
- 'autoComplete',
198
- 'readonly',
199
- 'allowNull',
200
- 'value',
201
- 'name',
202
- 'checked',
203
- 'depth',
204
- 'activeView',
205
- 'min',
206
- 'max',
207
- 'disabledDates',
208
- 'type',
209
- 'holidayDates',
210
- ], outputs: [
211
- 'onOpened',
212
- 'onClosed',
213
- 'onBlur',
214
- 'onFocus',
215
- 'valueChange',
216
- 'onValueChanged',
217
- 'valueChange',
218
- 'onValueChanged',
219
- 'depthChange',
220
- 'typeChange',
221
- 'disabledDatesChange',
222
- 'holidayDatesChange',
223
- 'onNavigate',
224
- ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: AXClosbaleComponent, useExisting: AXDatePickerComponent }], host: { class: 'ax-editor-container ax-drop-down' }, template: "<ng-content select=\"ax-prefix\"> </ng-content>\r\n<div class=\"ax-dropdown-content ax-cursor-pointer\" (click)=\"toggle()\">\r\n <input\r\n class=\"ax-input\"\r\n type=\"text\"\r\n [attr.placeholder]=\"placeholder\"\r\n [class.ax-state-disabled]=\"disabled\"\r\n [class.ax-state-readonly]=\"readonly\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"true\"\r\n [attr.tabindex]=\"_isMobile ? -1 : tabIndex\"\r\n [ngModel]=\"displayText\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (mouseup)=\"_handleOnInputClickEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\"\r\n (keydown)=\"_handleOnKeydownEvent($event)\" />\r\n</div>\r\n<button\r\n [disabled]=\"disabled\"\r\n [tabIndex]=\"-1\"\r\n class=\"ax-editor-control\"\r\n (click)=\"_handleArrowClickEvent()\">\r\n <span class=\"ax-icon ax-icon-calendar\"></span>\r\n</button>\r\n<ng-content select=\"ax-suffix\"> </ng-content>\r\n<ng-content select=\"ax-validation-rule\"> </ng-content>\r\n<ax-popover\r\n [target]=\"_target\"\r\n [position]=\"position\"\r\n [openTrigger]=\"'manual'\"\r\n [closeTrigger]=\"'clickout'\"\r\n [adaptivityEnabled]=\"true\"\r\n (onOpened)=\"_handlePopoverOpened($event)\">\r\n <div class=\"ax-overlay-pane\" [class.ax-w-full]=\"_isMobile\">\r\n <ax-header *ngIf=\"_isMobile\">\r\n <ax-title>\r\n {{ placeholder || 'Choose a date' }}\r\n </ax-title>\r\n <ax-close-button></ax-close-button>\r\n </ax-header>\r\n <ng-container\r\n *ngIf=\"\r\n interface === 'calendar';\r\n then calendarTemplate;\r\n else pickerTemplate\r\n \"></ng-container>\r\n <ng-template #calendarTemplate>\r\n <ax-calendar\r\n #calendar\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [(value)]=\"value\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [rtl]=\"rtl\"\r\n [disabledDates]=\"disabledDates\"\r\n [holidayDates]=\"holidayDates\"\r\n [depth]=\"depth\"\r\n (onNavigate)=\"_handleOnNavigate($event)\"\r\n [type]=\"type\">\r\n </ax-calendar>\r\n </ng-template>\r\n <ng-template #pickerTemplate> </ng-template>\r\n </div>\r\n</ax-popover>\r\n" }]
225
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.AXPlatform }]; }, propDecorators: { popover: [{
226
- type: ViewChild,
227
- args: [AXPopoverComponent, { static: true }]
228
- }], _calendar: [{
229
- type: ViewChild,
230
- args: [AXCalendarComponent, { static: true }]
231
- }], formatChange: [{
232
- type: Output
233
- }], format: [{
234
- type: Input
235
- }], placeholder: [{
236
- type: Input
237
- }], interface: [{
238
- type: Input
239
- }] } });
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9kYXRlLXBpY2tlci9zcmMvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9kYXRlLXBpY2tlci9zcmMvZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFHdkIsU0FBUyxFQUNULEtBQUssRUFDTCxZQUFZLEVBQ1osTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZ0IsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU5RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQTJCLE1BQU0sNkJBQTZCLENBQUM7QUFDcEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUVMLHdCQUF3QixFQUN4QiwyQkFBMkIsRUFDM0IscUJBQXFCLEdBQ3RCLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7O0FBRWxDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLDJCQUEyQixDQUFDLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBd0QzSSxNQUFNLE9BQU8scUJBQXNCLFNBQVEscUJBQXFCO0lBb0NRO0lBbEN0RSxPQUFPLEdBQXVCLElBQUksQ0FB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QUFFLGtDQUFrQyxFQUFFOzBKQUluRCxPQUFPO3NCQUROLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUl2QyxTQUFTO3NCQURoQixTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFZaEQsWUFBWTtzQkFEWCxNQUFNO2dCQUtJLE1BQU07c0JBRGhCLEtBQUs7Z0JBWU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYU3RyaW5nVXRpbCB9IGZyb20gJ0BhY29yZXgvY29yZS91dGlscyc7XHJcbmltcG9ydCB7IEFYUGxhdGZvcm0gfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xyXG5pbXBvcnQgeyBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xyXG5pbXBvcnQgeyBBWERhdGVUaW1lIH0gZnJvbSAnQGFjb3JleC9jb3JlL2RhdGVUaW1lJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgSW5wdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE91dHB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhDbGlja0V2ZW50LCBBWENsb3NiYWxlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgeyBBWENhbGVuZGFyQ29tcG9uZW50LCBBWENhbGVuZGFyQmFzZUNvbXBvbmVudCwgQVhDYWxlbmRhck5hdmlnYXRlRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY2FsZW5kYXInO1xyXG5pbXBvcnQgeyBBWFBvcG92ZXJDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wb3Zlcic7XHJcbmltcG9ydCB7XHJcbiAgQVhDb21wb25lbnRPcHRpb25DaGFuZ2VkLFxyXG4gIF9Ecm9wZG93bkNvbXBvbmVuZXRNaXhpbixcclxuICBfSW50ZXJhY3RpdmVDb21wb25lbmV0TWl4aW4sXHJcbiAgX1ZhbHVlQ29tcG9uZW5ldE1peGluLFxyXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9taXhpbic7XHJcblxyXG5leHBvcnQgY29uc3QgQVhCYXNlRGF0ZVBpY2tlck1peGluID0gX0ludGVyYWN0aXZlQ29tcG9uZW5ldE1peGluKF9Ecm9wZG93bkNvbXBvbmVuZXRNaXhpbihfVmFsdWVDb21wb25lbmV0TWl4aW4oQVhDYWxlbmRhckJhc2VDb21wb25lbnQpKSk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LWRhdGUtcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgaW5wdXRzOiBbXHJcbiAgICAncnRsJyxcclxuICAgICdpc09wZW4nLFxyXG4gICAgJ2ZpdFBhcmVudCcsXHJcbiAgICAnZHJvcGRvd25XaWR0aCcsXHJcbiAgICAncG9zaXRpb24nLFxyXG4gICAgJ2Rpc2FibGVkJyxcclxuICAgICd0YWJJbmRleCcsXHJcbiAgICAncmVhZG9ubHknLFxyXG4gICAgJ2FsbG93TnVsbCcsXHJcbiAgICAndmFsdWUnLFxyXG4gICAgJ25hbWUnLFxyXG4gICAgJ2NoZWNrZWQnLFxyXG4gICAgJ3BsYWNlaG9sZGVyJyxcclxuICAgICdtYXhMZW5ndGgnLFxyXG4gICAgJ2FsbG93TnVsbCcsXHJcbiAgICAndHlwZScsXHJcbiAgICAnYXV0b0NvbXBsZXRlJyxcclxuICAgICdyZWFkb25seScsXHJcbiAgICAnYWxsb3dOdWxsJyxcclxuICAgICd2YWx1ZScsXHJcbiAgICAnbmFtZScsXHJcbiAgICAnY2hlY2tlZCcsXHJcbiAgICAnZGVwdGgnLFxyXG4gICAgJ2FjdGl2ZVZpZXcnLFxyXG4gICAgJ21pbicsXHJcbiAgICAnbWF4JyxcclxuICAgICdkaXNhYmxlZERhdGVzJyxcclxuICAgICd0eXBlJyxcclxuICAgICdob2xpZGF5RGF0ZXMnLFxyXG4gIF0sXHJcbiAgb3V0cHV0czogW1xyXG4gICAgJ29uT3BlbmVkJyxcclxuICAgICdvbkNsb3NlZCcsXHJcbiAgICAnb25CbHVyJyxcclxuICAgICdvbkZvY3VzJyxcclxuICAgICd2YWx1ZUNoYW5nZScsXHJcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxyXG4gICAgJ3ZhbHVlQ2hhbmdlJyxcclxuICAgICdvblZhbHVlQ2hhbmdlZCcsXHJcbiAgICAnZGVwdGhDaGFuZ2UnLFxyXG4gICAgJ3R5cGVDaGFuZ2UnLFxyXG4gICAgJ2Rpc2FibGVkRGF0ZXNDaGFuZ2UnLFxyXG4gICAgJ2hvbGlkYXlEYXRlc0NoYW5nZScsXHJcbiAgICAnb25OYXZpZ2F0ZScsXHJcbiAgXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhDbG9zYmFsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYRGF0ZVBpY2tlckNvbXBvbmVudCB9XSxcclxuICBob3N0OiB7IGNsYXNzOiAnYXgtZWRpdG9yLWNvbnRhaW5lciBheC1kcm9wLWRvd24nIH0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWERhdGVQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VEYXRlUGlja2VyTWl4aW4ge1xyXG4gIEBWaWV3Q2hpbGQoQVhQb3BvdmVyQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHBvcG92ZXI6IEFYUG9wb3ZlckNvbXBvbmVudCA9IG51bGw7XHJcblxyXG4gIEBWaWV3Q2hpbGQoQVhDYWxlbmRhckNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcclxuICBwcml2YXRlIF9jYWxlbmRhcjogQVhDYWxlbmRhckNvbXBvbmVudDtcclxuXHJcbiAgcHJvdGVjdGVkIF90YXJnZXQ6IEhUTUxEaXZFbGVtZW50O1xyXG4gIGRpc3BsYXlUZXh0OiBzdHJpbmc7XHJcbiAgcHJvdGVjdGVkIF9jYWxlbmRhclZhbHVlOiBEYXRlO1xyXG4gIHByb3RlY3RlZCBfY3Vyc29yUG9zOiBudW1iZXIgPSAwO1xyXG4gIHByb3RlY3RlZCBfaXNNb2JpbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcm90ZWN0ZWQgX3BvcG92ZXJUaXRsZTogc3RyaW5nO1xyXG4gIHByb3RlY3RlZCBfcG9wb3ZlcldpZHRoOiBudW1iZXI7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGZvcm1hdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBwcml2YXRlIF9mb3JtYXQ6IHN0cmluZyA9ICdZWVlZLU1NLWRkJztcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgZm9ybWF0KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZm9ybWF0O1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IGZvcm1hdCh2OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3NldE9wdGlvbih7XHJcbiAgICAgIG5hbWU6ICdmb3JtYXQnLFxyXG4gICAgICB2YWx1ZTogdixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGludGVyZmFjZTogJ2NhbGVuZGFyJyB8ICdwaWNrZXInID0gJ2NhbGVuZGFyJztcclxuXHJcbiAgY29uc3RydWN0b3IoX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIF9wbGF0Zm9ybTogQVhQbGF0Zm9ybSkge1xyXG4gICAgc3VwZXIoX2VsZW1lbnRSZWYsIF9jZHIpO1xyXG4gICAgdGhpcy5fdGFyZ2V0ID0gdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKTtcclxuICAgIHRoaXMuX2lzTW9iaWxlID0gdGhpcy5fcGxhdGZvcm0uaXMoJ01vYmlsZScpIHx8IHRoaXMuX3BsYXRmb3JtLmlzKCdTTScpO1xyXG4gICAgdGhpcy5fcGxhdGZvcm0ucmVzaXplLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2lzTW9iaWxlID0gdGhpcy5fcGxhdGZvcm0uaXMoJ01vYmlsZScpIHx8IHRoaXMuX3BsYXRmb3JtLmlzKCdTTScpO1xyXG4gICAgICB0aGlzLnBvcG92ZXIuZGlzcG9zZSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9wb3BvdmVyVGl0bGUgPSB0aGlzLnBsYWNlaG9sZGVyIHx8IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVwaWNrZXIucG9wb3Zlci50aXRsZScpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlRGlzcGxheVRleHQoKSB7XHJcbiAgICB0aGlzLmRpc3BsYXlUZXh0ID0gdGhpcy52YWx1ZSA/IEFYRGF0ZVRpbWUuY29udmVydCh0aGlzLnZhbHVlLCB0aGlzLnR5cGUpLmZvcm1hdCh0aGlzLl9mb3JtYXQpIDogJyc7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2hhbmRsZVBvcG92ZXJPcGVuZWQoZSkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2NhbGVuZGFyPy5uYXZUbyh0aGlzLnZhbHVlIHx8IG5ldyBBWERhdGVUaW1lKG5ldyBEYXRlKCksIHRoaXMudHlwZSkpO1xyXG4gICAgfSwgMTApO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9oYW5kbGVBcnJvd0NsaWNrRXZlbnQoKSB7XHJcbiAgICB0aGlzLnRvZ2dsZSgpO1xyXG4gIH1cclxuXHJcbiAgX29uVmFsdWVDaGFuZ2VkKG9sZFZhbHVlPzogYW55LCBuZXdWYWx1ZT86IGFueSkge1xyXG4gICAgdGhpcy5fdXBkYXRlRGlzcGxheVRleHQoKTtcclxuICAgIHRoaXMuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIF9vbk9wdGlvbkNoYW5nZWQob3B0aW9uOiBBWENvbXBvbmVudE9wdGlvbkNoYW5nZWQpOiB2b2lkIHtcclxuICAgIHN1cGVyLl9vbk9wdGlvbkNoYW5nZWQob3B0aW9uKTtcclxuICAgIGlmIChvcHRpb24ubmFtZSA9PSAndHlwZScpIHtcclxuICAgICAgdGhpcy5fdXBkYXRlRGlzcGxheVRleHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfaGFuZGxlT25LZXlkb3duRXZlbnQoZTogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgY29uc3QgaWdub3JlID0gKCkgPT4ge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IG51bXM6IHN0cmluZ1tdID0gQXJyYXkoMTApXHJcbiAgICAgIC5maWxsKDApXHJcbiAgICAgIC5tYXAoKHYsIGkpID0+IGkudG9TdHJpbmcoKSk7XHJcbiAgICBjb25zdCBjaGFyczogc3RyaW5nW10gPSBbJ0JhY2tzcGFjZScsICdBcnJvd0Rvd24nLCAnQXJyb3dVcCcsICdBcnJvd1JpZ2h0JywgJ0Fycm93TGVmdCcsICdUYWInLCAnRW50ZXInXTtcclxuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGNvbnN0IGtleSA9IGUua2V5O1xyXG4gICAgY29uc3QgdmFsU3RyID0gaW5wdXQudmFsdWU7XHJcbiAgICBjb25zdCBzU3RhcnQgPSBpbnB1dC5zZWxlY3Rpb25TdGFydCB8fCAwO1xyXG4gICAgY29uc3Qgc0VuZCA9IGlucHV0LnNlbGVjdGlvbkVuZCB8fCAwO1xyXG4gICAgY29uc3QgZGF0ZVZhbCA9IG5ldyBBWERhdGVUaW1lKHRoaXMudmFsdWUpO1xyXG4gICAgLy9cclxuICAgIGNvbnN0IHJlID0gL1thLXpBLVowLTldKy9naTtcclxuICAgIGNvbnN0IHBhcnRzID0gQXJyYXkuZnJvbSh0aGlzLmZvcm1hdC5tYXRjaEFsbChyZSkpO1xyXG4gICAgY29uc3Qgd29yZCA9IHZhbFN0ci5zdWJzdHJpbmcoc1N0YXJ0LCBzRW5kKTtcclxuICAgIGNvbnN0IHBhcnQgPSBwYXJ0cy5maW5kKChjOiBhbnkpID0+IGMuaW5kZXggPj0gc1N0YXJ0KTtcclxuICAgIC8vXHJcbiAgICAvL1xyXG4gICAgaWYgKFsuLi5udW1zXS5pbmNsdWRlcyhrZXkpKSB7XHJcbiAgICAgIGlmIChwYXJ0KSB7XHJcbiAgICAgICAgc3dpdGNoIChwYXJ0WzBdKSB7XHJcbiAgICAgICAgICBjYXNlICdkZCc6XHJcbiAgICAgICAgICBjYXNlICdERCc6XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld1ZhbCA9IE1hdGgubWF4KDEsIE1hdGgubWluKDMxLCBOdW1iZXIod29yZCArIGUua2V5KSkpO1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gZGF0ZVZhbC5zZXQoJ2RheScsIG5ld1ZhbCkuZGF0ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdtbSc6XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAneXknOlxyXG4gICAgICAgICAgY2FzZSAnWVlZWSc6XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuX2hpZ2hsaWdodFBhcnQoaW5wdXQsIHNTdGFydCk7XHJcbiAgICAgICAgfSwgMTApO1xyXG4gICAgICAgIGlnbm9yZSgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnQXJyb3dSaWdodCcgfHwgZS5rZXkgPT09ICdBcnJvd0xlZnQnKSB7XHJcbiAgICAgIGNvbnN0IG5leHQgPSBBcnJheS5mcm9tKHZhbFN0ci5zdWJzdHIoc0VuZCkubWF0Y2hBbGwocmUpKTtcclxuICAgICAgY29uc3QgcHJldiA9IEFycmF5LmZyb20odmFsU3RyLnN1YnN0cmluZygwLCBzU3RhcnQpLm1hdGNoQWxsKHJlKSk7XHJcbiAgICAgIGlnbm9yZSgpO1xyXG4gICAgICB0aGlzLl9oaWdobGlnaHRQYXJ0KGlucHV0LCBlLmtleSA9PT0gJ0Fycm93UmlnaHQnID8gc0VuZCArIChuZXh0WzBdPy5pbmRleCB8fCAwKSA6IHByZXZbcHJldi5sZW5ndGggLSAxXT8uaW5kZXgpO1xyXG4gICAgfSBlbHNlIGlmIChlLmtleSA9PT0gJ0Fycm93VXAnIHx8IGUua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICBpZiAoZS5jdHJsS2V5ICYmIGUua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICAgIHRoaXMub3BlbigpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHNpZ24gPSBlLmtleSA9PT0gJ0Fycm93VXAnID8gKzEgOiAtMTtcclxuICAgICAgICBpZiAocGFydCkge1xyXG4gICAgICAgICAgc3dpdGNoIChwYXJ0WzBdKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2RkJzpcclxuICAgICAgICAgICAgY2FzZSAnREQnOlxyXG4gICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRlVmFsLmFkZCgnZGF5Jywgc2lnbikuZGF0ZTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnbW0nOlxyXG4gICAgICAgICAgICBjYXNlICdNTU0nOlxyXG4gICAgICAgICAgICBjYXNlICdNTU1NJzpcclxuICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gZGF0ZVZhbC5hZGQoJ21vbnRoJywgc2lnbikuZGF0ZTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAneXknOlxyXG4gICAgICAgICAgICBjYXNlICdZWVlZJzpcclxuICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gZGF0ZVZhbC5hZGQoJ3llYXInLCBzaWduKS5kYXRlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2hpZ2hsaWdodFBhcnQoaW5wdXQsIHNTdGFydCk7XHJcbiAgICAgICAgICB9LCAxMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlnbm9yZSgpO1xyXG4gICAgfSBlbHNlIGlmIChlLmtleSA9PSAnQmFja3NwYWNlJykge1xyXG4gICAgICBpZiAodGhpcy5hbGxvd051bGwpIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICBpZ25vcmUoKTtcclxuICAgIH1cclxuICAgIC8vIGVsc2UgaWYgKG51bXMuaW5jbHVkZXMoa2V5KSkge1xyXG5cclxuICAgIC8vIH1cclxuICAgIC8vIHN1cGVyLl9lbWl0T25LZXlkb3duRXZlbnQoZSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2hhbmRsZU9uSW5wdXRDbGlja0V2ZW50KGU6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIHRoaXMuX2hpZ2hsaWdodFBhcnQoaW5wdXQpO1xyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfaGFuZGxlT25OYXZpZ2F0ZShlOiBBWENhbGVuZGFyTmF2aWdhdGVFdmVudCkge1xyXG4gICAgdGhpcy5vbk5hdmlnYXRlLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oaWdobGlnaHRQYXJ0KGlucHV0OiBIVE1MSW5wdXRFbGVtZW50LCBwb3M/OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHsgc3RhcnQsIGVuZCB9ID0gQVhTdHJpbmdVdGlsLmdldFdvcmRCb3VuZHNBdFBvc2l0aW9uKGlucHV0LnZhbHVlLCBwb3MgIT0gbnVsbCA/IHBvcyA6IGlucHV0LnNlbGVjdGlvblN0YXJ0IHx8IDApO1xyXG4gICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCk7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cImF4LXByZWZpeFwiPiA8L25nLWNvbnRlbnQ+XHJcbjxkaXYgY2xhc3M9XCJheC1kcm9wZG93bi1jb250ZW50IGF4LWN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XHJcbiAgPGlucHV0XHJcbiAgICBjbGFzcz1cImF4LWlucHV0XCJcclxuICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICBbY2xhc3MuYXgtc3RhdGUtcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgIFtyZWFkb25seV09XCJ0cnVlXCJcclxuICAgIFthdHRyLnRhYmluZGV4XT1cIl9pc01vYmlsZSA/IC0xIDogdGFiSW5kZXhcIlxyXG4gICAgW25nTW9kZWxdPVwiZGlzcGxheVRleHRcIlxyXG4gICAgKGZvY3VzKT1cIl9lbWl0T25Gb2N1c0V2ZW50KCRldmVudClcIlxyXG4gICAgKG1vdXNldXApPVwiX2hhbmRsZU9uSW5wdXRDbGlja0V2ZW50KCRldmVudClcIlxyXG4gICAgKGJsdXIpPVwiX2VtaXRPbkJsdXJFdmVudCgkZXZlbnQpXCJcclxuICAgIChrZXlkb3duKT1cIl9oYW5kbGVPbktleWRvd25FdmVudCgkZXZlbnQpXCIgLz5cclxuPC9kaXY+XHJcbjxidXR0b25cclxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gIFt0YWJJbmRleF09XCItMVwiXHJcbiAgY2xhc3M9XCJheC1lZGl0b3ItY29udHJvbFwiXHJcbiAgKGNsaWNrKT1cIl9oYW5kbGVBcnJvd0NsaWNrRXZlbnQoKVwiPlxyXG4gIDxzcGFuIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNhbGVuZGFyXCI+PC9zcGFuPlxyXG48L2J1dHRvbj5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+IDwvbmctY29udGVudD5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+IDwvbmctY29udGVudD5cclxuPGF4LXBvcG92ZXJcclxuICBbdGFyZ2V0XT1cIl90YXJnZXRcIlxyXG4gIFtwb3NpdGlvbl09XCJwb3NpdGlvblwiXHJcbiAgW29wZW5UcmlnZ2VyXT1cIidtYW51YWwnXCJcclxuICBbY2xvc2VUcmlnZ2VyXT1cIidjbGlja291dCdcIlxyXG4gIFthZGFwdGl2aXR5RW5hYmxlZF09XCJ0cnVlXCJcclxuICAob25PcGVuZWQpPVwiX2hhbmRsZVBvcG92ZXJPcGVuZWQoJGV2ZW50KVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJheC1vdmVybGF5LXBhbmVcIiBbY2xhc3MuYXgtdy1mdWxsXT1cIl9pc01vYmlsZVwiPlxyXG4gICAgPGF4LWhlYWRlciAqbmdJZj1cIl9pc01vYmlsZVwiPlxyXG4gICAgICA8YXgtdGl0bGU+XHJcbiAgICAgICAge3sgcGxhY2Vob2xkZXIgfHwgJ0Nob29zZSBhIGRhdGUnIH19XHJcbiAgICAgIDwvYXgtdGl0bGU+XHJcbiAgICAgIDxheC1jbG9zZS1idXR0b24+PC9heC1jbG9zZS1idXR0b24+XHJcbiAgICA8L2F4LWhlYWRlcj5cclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgKm5nSWY9XCJcclxuICAgICAgICBpbnRlcmZhY2UgPT09ICdjYWxlbmRhcic7XHJcbiAgICAgICAgdGhlbiBjYWxlbmRhclRlbXBsYXRlO1xyXG4gICAgICAgIGVsc2UgcGlja2VyVGVtcGxhdGVcclxuICAgICAgXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctdGVtcGxhdGUgI2NhbGVuZGFyVGVtcGxhdGU+XHJcbiAgICAgIDxheC1jYWxlbmRhclxyXG4gICAgICAgICNjYWxlbmRhclxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICBbKHZhbHVlKV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgW21pbl09XCJtaW5cIlxyXG4gICAgICAgIFttYXhdPVwibWF4XCJcclxuICAgICAgICBbcnRsXT1cInJ0bFwiXHJcbiAgICAgICAgW2Rpc2FibGVkRGF0ZXNdPVwiZGlzYWJsZWREYXRlc1wiXHJcbiAgICAgICAgW2hvbGlkYXlEYXRlc109XCJob2xpZGF5RGF0ZXNcIlxyXG4gICAgICAgIFtkZXB0aF09XCJkZXB0aFwiXHJcbiAgICAgICAgKG9uTmF2aWdhdGUpPVwiX2hhbmRsZU9uTmF2aWdhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgW3R5cGVdPVwidHlwZVwiPlxyXG4gICAgICA8L2F4LWNhbGVuZGFyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjcGlja2VyVGVtcGxhdGU+IDwvbmctdGVtcGxhdGU+XHJcbiAgPC9kaXY+XHJcbjwvYXgtcG9wb3Zlcj5cclxuIl19
1
+ import { AXStringUtil } from '@acorex/core/utils';
2
+ import { AXTranslator } from '@acorex/core/translation';
3
+ import { AXDateTime } from '@acorex/core/dateTime';
4
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, Input, EventEmitter, Output, } from '@angular/core';
5
+ import { AXClosbaleComponent } from '@acorex/components/common';
6
+ import { AXCalendarComponent, AXCalendarBaseComponent } from '@acorex/components/calendar';
7
+ import { AXPopoverComponent } from '@acorex/components/popover';
8
+ import { _DropdownComponenetMixin, _InteractiveComponenetMixin, _ValueComponenetMixin, } from '@acorex/components/mixin';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@acorex/core/platform";
11
+ import * as i2 from "@angular/common";
12
+ import * as i3 from "@acorex/components/calendar";
13
+ import * as i4 from "@acorex/components/popover";
14
+ import * as i5 from "@acorex/components/decorators";
15
+ import * as i6 from "@angular/forms";
16
+ export const AXBaseDatePickerMixin = _InteractiveComponenetMixin(_DropdownComponenetMixin(_ValueComponenetMixin(AXCalendarBaseComponent)));
17
+ class AXDatePickerComponent extends AXBaseDatePickerMixin {
18
+ _platform;
19
+ popover = null;
20
+ _calendar;
21
+ _target;
22
+ displayText;
23
+ _calendarValue;
24
+ _cursorPos = 0;
25
+ _isMobile = false;
26
+ _popoverTitle;
27
+ _popoverWidth;
28
+ formatChange = new EventEmitter();
29
+ _format = 'YYYY-MM-dd';
30
+ get format() {
31
+ return this._format;
32
+ }
33
+ set format(v) {
34
+ this._setOption({
35
+ name: 'format',
36
+ value: v,
37
+ });
38
+ }
39
+ placeholder;
40
+ interface = 'calendar';
41
+ constructor(_elementRef, _cdr, _platform) {
42
+ super(_elementRef, _cdr);
43
+ this._platform = _platform;
44
+ this._target = this._getHostElement();
45
+ this._isMobile = this._platform.is('Mobile') || this._platform.is('SM');
46
+ this._platform.resize.subscribe(() => {
47
+ this._isMobile = this._platform.is('Mobile') || this._platform.is('SM');
48
+ this.popover.dispose();
49
+ });
50
+ }
51
+ onInit() {
52
+ this._popoverTitle = this.placeholder || AXTranslator.get('datepicker.popover.title');
53
+ }
54
+ _updateDisplayText() {
55
+ this.displayText = this.value ? AXDateTime.convert(this.value, this.type).format(this._format) : '';
56
+ }
57
+ _handlePopoverOpened(e) {
58
+ setTimeout(() => {
59
+ this._calendar?.navTo(this.value || new AXDateTime(new Date(), this.type));
60
+ }, 10);
61
+ }
62
+ _handleArrowClickEvent() {
63
+ this.toggle();
64
+ }
65
+ _onValueChanged(oldValue, newValue) {
66
+ this._updateDisplayText();
67
+ this.close();
68
+ }
69
+ _onOptionChanged(option) {
70
+ super._onOptionChanged(option);
71
+ if (option.name == 'type') {
72
+ this._updateDisplayText();
73
+ }
74
+ }
75
+ _handleOnKeydownEvent(e) {
76
+ const ignore = () => {
77
+ e.preventDefault();
78
+ e.stopPropagation();
79
+ };
80
+ const nums = Array(10)
81
+ .fill(0)
82
+ .map((v, i) => i.toString());
83
+ const chars = ['Backspace', 'ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft', 'Tab', 'Enter'];
84
+ const input = e.target;
85
+ const key = e.key;
86
+ const valStr = input.value;
87
+ const sStart = input.selectionStart || 0;
88
+ const sEnd = input.selectionEnd || 0;
89
+ const dateVal = new AXDateTime(this.value);
90
+ //
91
+ const re = /[a-zA-Z0-9]+/gi;
92
+ const parts = Array.from(this.format.matchAll(re));
93
+ const word = valStr.substring(sStart, sEnd);
94
+ const part = parts.find((c) => c.index >= sStart);
95
+ //
96
+ //
97
+ if ([...nums].includes(key)) {
98
+ if (part) {
99
+ switch (part[0]) {
100
+ case 'dd':
101
+ case 'DD':
102
+ const newVal = Math.max(1, Math.min(31, Number(word + e.key)));
103
+ this.value = dateVal.set('day', newVal).date;
104
+ break;
105
+ case 'mm':
106
+ break;
107
+ case 'yy':
108
+ case 'YYYY':
109
+ break;
110
+ }
111
+ setTimeout(() => {
112
+ this._highlightPart(input, sStart);
113
+ }, 10);
114
+ ignore();
115
+ }
116
+ }
117
+ else if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {
118
+ const next = Array.from(valStr.substr(sEnd).matchAll(re));
119
+ const prev = Array.from(valStr.substring(0, sStart).matchAll(re));
120
+ ignore();
121
+ this._highlightPart(input, e.key === 'ArrowRight' ? sEnd + (next[0]?.index || 0) : prev[prev.length - 1]?.index);
122
+ }
123
+ else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
124
+ if (e.ctrlKey && e.key === 'ArrowDown') {
125
+ this.open();
126
+ }
127
+ else {
128
+ const sign = e.key === 'ArrowUp' ? +1 : -1;
129
+ if (part) {
130
+ switch (part[0]) {
131
+ case 'dd':
132
+ case 'DD':
133
+ this.value = dateVal.add('day', sign).date;
134
+ break;
135
+ case 'mm':
136
+ case 'MMM':
137
+ case 'MMMM':
138
+ this.value = dateVal.add('month', sign).date;
139
+ break;
140
+ case 'yy':
141
+ case 'YYYY':
142
+ this.value = dateVal.add('year', sign).date;
143
+ break;
144
+ }
145
+ setTimeout(() => {
146
+ this._highlightPart(input, sStart);
147
+ }, 10);
148
+ }
149
+ }
150
+ ignore();
151
+ }
152
+ else if (e.key == 'Backspace') {
153
+ if (this.allowNull) {
154
+ this.value = null;
155
+ }
156
+ ignore();
157
+ }
158
+ // else if (nums.includes(key)) {
159
+ // }
160
+ // super._emitOnKeydownEvent(e);
161
+ }
162
+ _handleOnInputClickEvent(e) {
163
+ const input = e.target;
164
+ this._highlightPart(input);
165
+ e.preventDefault();
166
+ e.stopPropagation();
167
+ }
168
+ _handleOnNavigate(e) {
169
+ this.onNavigate.emit(e);
170
+ }
171
+ _highlightPart(input, pos) {
172
+ const { start, end } = AXStringUtil.getWordBoundsAtPosition(input.value, pos != null ? pos : input.selectionStart || 0);
173
+ input.setSelectionRange(start, end);
174
+ }
175
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXDatePickerComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.AXPlatform }], target: i0.ɵɵFactoryTarget.Component });
176
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: AXDatePickerComponent, selector: "ax-date-picker", inputs: { rtl: "rtl", isOpen: "isOpen", fitParent: "fitParent", dropdownWidth: "dropdownWidth", position: "position", disabled: "disabled", tabIndex: "tabIndex", readonly: "readonly", allowNull: "allowNull", value: "value", name: "name", checked: "checked", placeholder: "placeholder", maxLength: "maxLength", type: "type", autoComplete: "autoComplete", depth: "depth", activeView: "activeView", min: "min", max: "max", disabledDates: "disabledDates", holidayDates: "holidayDates", format: "format", interface: "interface" }, outputs: { onOpened: "onOpened", onClosed: "onClosed", onBlur: "onBlur", onFocus: "onFocus", valueChange: "valueChange", onValueChanged: "onValueChanged", depthChange: "depthChange", typeChange: "typeChange", disabledDatesChange: "disabledDatesChange", holidayDatesChange: "holidayDatesChange", onNavigate: "onNavigate", formatChange: "formatChange" }, host: { classAttribute: "ax-editor-container ax-drop-down" }, providers: [{ provide: AXClosbaleComponent, useExisting: AXDatePickerComponent }], viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, static: true }, { propertyName: "_calendar", first: true, predicate: AXCalendarComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\"> </ng-content>\r\n<div class=\"ax-dropdown-content ax-cursor-pointer\" (click)=\"toggle()\">\r\n <input\r\n class=\"ax-input\"\r\n type=\"text\"\r\n [attr.placeholder]=\"placeholder\"\r\n [class.ax-state-disabled]=\"disabled\"\r\n [class.ax-state-readonly]=\"readonly\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"true\"\r\n [attr.tabindex]=\"_isMobile ? -1 : tabIndex\"\r\n [ngModel]=\"displayText\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (mouseup)=\"_handleOnInputClickEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\"\r\n (keydown)=\"_handleOnKeydownEvent($event)\" />\r\n</div>\r\n<button\r\n [disabled]=\"disabled\"\r\n [tabIndex]=\"-1\"\r\n class=\"ax-editor-control\"\r\n (click)=\"_handleArrowClickEvent()\">\r\n <span class=\"ax-icon ax-icon-calendar\"></span>\r\n</button>\r\n<ng-content select=\"ax-suffix\"> </ng-content>\r\n<ng-content select=\"ax-validation-rule\"> </ng-content>\r\n<ax-popover\r\n [target]=\"_target\"\r\n [position]=\"position\"\r\n [openTrigger]=\"'manual'\"\r\n [closeTrigger]=\"'clickout'\"\r\n [adaptivityEnabled]=\"true\"\r\n (onOpened)=\"_handlePopoverOpened($event)\">\r\n <div class=\"ax-overlay-pane\" [class.ax-w-full]=\"_isMobile\">\r\n <ax-header *ngIf=\"_isMobile\">\r\n <ax-title>\r\n {{ placeholder || 'Choose a date' }}\r\n </ax-title>\r\n <ax-close-button></ax-close-button>\r\n </ax-header>\r\n <ng-container\r\n *ngIf=\"\r\n interface === 'calendar';\r\n then calendarTemplate;\r\n else pickerTemplate\r\n \"></ng-container>\r\n <ng-template #calendarTemplate>\r\n <ax-calendar\r\n #calendar\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [(value)]=\"value\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [rtl]=\"rtl\"\r\n [disabledDates]=\"disabledDates\"\r\n [holidayDates]=\"holidayDates\"\r\n [depth]=\"depth\"\r\n (onNavigate)=\"_handleOnNavigate($event)\"\r\n [type]=\"type\">\r\n </ax-calendar>\r\n </ng-template>\r\n <ng-template #pickerTemplate> </ng-template>\r\n </div>\r\n</ax-popover>\r\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.AXCalendarComponent, selector: "ax-calendar", inputs: ["rtl", "readonly", "value", "name", "disabled", "depth", "activeView", "min", "max", "disabledDates", "holidayDates", "type", "cellTemplate", "cellClass", "showNavigation"], outputs: ["onOptionChanged", "valueChange", "onValueChanged", "onBlur", "onFocus", "depthChange", "typeChange", "activeViewChange", "disabledDatesChange", "holidayDatesChange", "onNavigate", "onSlotClick"] }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["target", "position", "openTrigger", "closeTrigger", "hasBackdrop", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i5.AXDecoratorHeaderComponent, selector: "ax-header" }, { kind: "component", type: i5.AXDecoratorTitleComponent, selector: "ax-title" }, { kind: "component", type: i5.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
177
+ }
178
+ export { AXDatePickerComponent };
179
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXDatePickerComponent, decorators: [{
180
+ type: Component,
181
+ args: [{ selector: 'ax-date-picker', inputs: [
182
+ 'rtl',
183
+ 'isOpen',
184
+ 'fitParent',
185
+ 'dropdownWidth',
186
+ 'position',
187
+ 'disabled',
188
+ 'tabIndex',
189
+ 'readonly',
190
+ 'allowNull',
191
+ 'value',
192
+ 'name',
193
+ 'checked',
194
+ 'placeholder',
195
+ 'maxLength',
196
+ 'allowNull',
197
+ 'type',
198
+ 'autoComplete',
199
+ 'readonly',
200
+ 'allowNull',
201
+ 'value',
202
+ 'name',
203
+ 'checked',
204
+ 'depth',
205
+ 'activeView',
206
+ 'min',
207
+ 'max',
208
+ 'disabledDates',
209
+ 'type',
210
+ 'holidayDates',
211
+ ], outputs: [
212
+ 'onOpened',
213
+ 'onClosed',
214
+ 'onBlur',
215
+ 'onFocus',
216
+ 'valueChange',
217
+ 'onValueChanged',
218
+ 'valueChange',
219
+ 'onValueChanged',
220
+ 'depthChange',
221
+ 'typeChange',
222
+ 'disabledDatesChange',
223
+ 'holidayDatesChange',
224
+ 'onNavigate',
225
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: AXClosbaleComponent, useExisting: AXDatePickerComponent }], host: { class: 'ax-editor-container ax-drop-down' }, template: "<ng-content select=\"ax-prefix\"> </ng-content>\r\n<div class=\"ax-dropdown-content ax-cursor-pointer\" (click)=\"toggle()\">\r\n <input\r\n class=\"ax-input\"\r\n type=\"text\"\r\n [attr.placeholder]=\"placeholder\"\r\n [class.ax-state-disabled]=\"disabled\"\r\n [class.ax-state-readonly]=\"readonly\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"true\"\r\n [attr.tabindex]=\"_isMobile ? -1 : tabIndex\"\r\n [ngModel]=\"displayText\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (mouseup)=\"_handleOnInputClickEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\"\r\n (keydown)=\"_handleOnKeydownEvent($event)\" />\r\n</div>\r\n<button\r\n [disabled]=\"disabled\"\r\n [tabIndex]=\"-1\"\r\n class=\"ax-editor-control\"\r\n (click)=\"_handleArrowClickEvent()\">\r\n <span class=\"ax-icon ax-icon-calendar\"></span>\r\n</button>\r\n<ng-content select=\"ax-suffix\"> </ng-content>\r\n<ng-content select=\"ax-validation-rule\"> </ng-content>\r\n<ax-popover\r\n [target]=\"_target\"\r\n [position]=\"position\"\r\n [openTrigger]=\"'manual'\"\r\n [closeTrigger]=\"'clickout'\"\r\n [adaptivityEnabled]=\"true\"\r\n (onOpened)=\"_handlePopoverOpened($event)\">\r\n <div class=\"ax-overlay-pane\" [class.ax-w-full]=\"_isMobile\">\r\n <ax-header *ngIf=\"_isMobile\">\r\n <ax-title>\r\n {{ placeholder || 'Choose a date' }}\r\n </ax-title>\r\n <ax-close-button></ax-close-button>\r\n </ax-header>\r\n <ng-container\r\n *ngIf=\"\r\n interface === 'calendar';\r\n then calendarTemplate;\r\n else pickerTemplate\r\n \"></ng-container>\r\n <ng-template #calendarTemplate>\r\n <ax-calendar\r\n #calendar\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [(value)]=\"value\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [rtl]=\"rtl\"\r\n [disabledDates]=\"disabledDates\"\r\n [holidayDates]=\"holidayDates\"\r\n [depth]=\"depth\"\r\n (onNavigate)=\"_handleOnNavigate($event)\"\r\n [type]=\"type\">\r\n </ax-calendar>\r\n </ng-template>\r\n <ng-template #pickerTemplate> </ng-template>\r\n </div>\r\n</ax-popover>\r\n" }]
226
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.AXPlatform }]; }, propDecorators: { popover: [{
227
+ type: ViewChild,
228
+ args: [AXPopoverComponent, { static: true }]
229
+ }], _calendar: [{
230
+ type: ViewChild,
231
+ args: [AXCalendarComponent, { static: true }]
232
+ }], formatChange: [{
233
+ type: Output
234
+ }], format: [{
235
+ type: Input
236
+ }], placeholder: [{
237
+ type: Input
238
+ }], interface: [{
239
+ type: Input
240
+ }] } });
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9kYXRlLXBpY2tlci9zcmMvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9kYXRlLXBpY2tlci9zcmMvZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFHdkIsU0FBUyxFQUNULEtBQUssRUFDTCxZQUFZLEVBQ1osTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZ0IsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU5RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQTJCLE1BQU0sNkJBQTZCLENBQUM7QUFDcEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUVMLHdCQUF3QixFQUN4QiwyQkFBMkIsRUFDM0IscUJBQXFCLEdBQ3RCLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7O0FBRWxDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLDJCQUEyQixDQUFDLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRTNJLE1Bc0RhLHFCQUFzQixTQUFRLHFCQUFxQjtJQW9DUTtJQWxDdEUsT0FBTyxHQUF1QixJQUFJLENBQUM7SUFHM0IsU0FBUyxDQUFzQjtJQUU3QixPQUFPLENBQWlCO0lBQ2xDLFdBQVcsQ0FBUztJQUNWLGNBQWMsQ0FBTztJQUNyQixVQUFVLEdBQVcsQ0FBQyxDQUFDO0lBQ3ZCLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDM0IsYUFBYSxDQUFTO0lBQ3RCLGFBQWEsQ0FBUztJQUdoQyxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUVsQyxPQUFPLEdBQVcsWUFBWSxDQUFDO0lBQ3ZDLElBQ1csTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBVyxNQUFNLENBQUMsQ0FBUztRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2QsSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsQ0FBQztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxXQUFXLENBQVM7SUFHcEIsU0FBUyxHQUEwQixVQUFVLENBQUM7SUFFOUMsWUFBWSxXQUF1QixFQUFFLElBQXVCLEVBQVUsU0FBcUI7UUFDekYsS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUQyQyxjQUFTLEdBQVQsU0FBUyxDQUFZO1FBRXpGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3RHLENBQUM7SUFFUyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzlCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksVUFBVSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0UsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVTLHNCQUFzQjtRQUM5QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELGVBQWUsQ0FBQyxRQUFjLEVBQUUsUUFBYztRQUM1QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBZ0M7UUFDL0MsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxNQUFNLEVBQUU7WUFDekIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRVMscUJBQXFCLENBQUMsQ0FBZ0I7UUFDOUMsTUFBTSxNQUFNLEdBQUcsR0FBRyxFQUFFO1lBQ2xCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDO1FBRUYsTUFBTSxJQUFJLEdBQWEsS0FBSyxDQUFDLEVBQUUsQ0FBQzthQUM3QixJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ1AsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDL0IsTUFBTSxLQUFLLEdBQWEsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN6RyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsTUFBMEIsQ0FBQztRQUMzQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ2xCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDM0IsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUM7UUFDekMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUM7UUFDckMsTUFBTSxPQUFPLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLEVBQUU7UUFDRixNQUFNLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQztRQUM1QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsQ0FBQztRQUN2RCxFQUFFO1FBQ0YsRUFBRTtRQUNGLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMzQixJQUFJLElBQUksRUFBRTtnQkFDUixRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDZixLQUFLLElBQUksQ0FBQztvQkFDVixLQUFLLElBQUk7d0JBQ1AsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUMvRCxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQzt3QkFDN0MsTUFBTTtvQkFDUixLQUFLLElBQUk7d0JBQ1AsTUFBTTtvQkFDUixLQUFLLElBQUksQ0FBQztvQkFDVixLQUFLLE1BQU07d0JBQ1QsTUFBTTtpQkFDVDtnQkFDRCxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUNyQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ1AsTUFBTSxFQUFFLENBQUM7YUFDVjtTQUNGO2FBQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLFlBQVksSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRTtZQUMxRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsRSxNQUFNLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNsSDthQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxXQUFXLEVBQUU7WUFDdkQsSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssV0FBVyxFQUFFO2dCQUN0QyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDYjtpQkFBTTtnQkFDTCxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLElBQUksRUFBRTtvQkFDUixRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTt3QkFDZixLQUFLLElBQUksQ0FBQzt3QkFDVixLQUFLLElBQUk7NEJBQ1AsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7NEJBQzNDLE1BQU07d0JBQ1IsS0FBSyxJQUFJLENBQUM7d0JBQ1YsS0FBSyxLQUFLLENBQUM7d0JBQ1gsS0FBSyxNQUFNOzRCQUNULElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDOzRCQUM3QyxNQUFNO3dCQUNSLEtBQUssSUFBSSxDQUFDO3dCQUNWLEtBQUssTUFBTTs0QkFDVCxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQzs0QkFDNUMsTUFBTTtxQkFDVDtvQkFDRCxVQUFVLENBQUMsR0FBRyxFQUFFO3dCQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUNyQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7aUJBQ1I7YUFDRjtZQUNELE1BQU0sRUFBRSxDQUFDO1NBQ1Y7YUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksV0FBVyxFQUFFO1lBQy9CLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7YUFDbkI7WUFDRCxNQUFNLEVBQUUsQ0FBQztTQUNWO1FBQ0QsaUNBQWlDO1FBRWpDLElBQUk7UUFDSixnQ0FBZ0M7SUFDbEMsQ0FBQztJQUVTLHdCQUF3QixDQUFDLENBQWE7UUFDOUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQTBCLENBQUM7UUFDM0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxDQUEwQjtRQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQXVCLEVBQUUsR0FBWTtRQUMxRCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN4SCxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7dUdBaExVLHFCQUFxQjsyRkFBckIscUJBQXFCLHM5QkFIckIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxtRUFJdEUsa0JBQWtCLDBGQUdsQixtQkFBbUIscUZDdEZoQyxtckVBaUVBOztTRGlCYSxxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkF0RGpDLFNBQVM7K0JBQ0UsZ0JBQWdCLFVBRWxCO3dCQUNOLEtBQUs7d0JBQ0wsUUFBUTt3QkFDUixXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsVUFBVTt3QkFDVixVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixXQUFXO3dCQUNYLE9BQU87d0JBQ1AsTUFBTTt3QkFDTixTQUFTO3dCQUNULGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxXQUFXO3dCQUNYLE1BQU07d0JBQ04sY0FBYzt3QkFDZCxVQUFVO3dCQUNWLFdBQVc7d0JBQ1gsT0FBTzt3QkFDUCxNQUFNO3dCQUNOLFNBQVM7d0JBQ1QsT0FBTzt3QkFDUCxZQUFZO3dCQUNaLEtBQUs7d0JBQ0wsS0FBSzt3QkFDTCxlQUFlO3dCQUNmLE1BQU07d0JBQ04sY0FBYztxQkFDZixXQUNRO3dCQUNQLFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixRQUFRO3dCQUNSLFNBQVM7d0JBQ1QsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQixvQkFBb0I7d0JBQ3BCLFlBQVk7cUJBQ2IsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLHVCQUF1QixFQUFFLENBQUMsUUFDM0UsRUFBRSxLQUFLLEVBQUUsa0NBQWtDLEVBQUU7MEpBSW5ELE9BQU87c0JBRE4sU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSXZDLFNBQVM7c0JBRGhCLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQVloRCxZQUFZO3NCQURYLE1BQU07Z0JBS0ksTUFBTTtzQkFEaEIsS0FBSztnQkFZTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhTdHJpbmdVdGlsIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcclxuaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XHJcbmltcG9ydCB7IEFYVHJhbnNsYXRvciB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XHJcbmltcG9ydCB7IEFYRGF0ZVRpbWUgfSBmcm9tICdAYWNvcmV4L2NvcmUvZGF0ZVRpbWUnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBJbnB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWENsaWNrRXZlbnQsIEFYQ2xvc2JhbGVDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcclxuXHJcbmltcG9ydCB7IEFYQ2FsZW5kYXJDb21wb25lbnQsIEFYQ2FsZW5kYXJCYXNlQ29tcG9uZW50LCBBWENhbGVuZGFyTmF2aWdhdGVFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jYWxlbmRhcic7XHJcbmltcG9ydCB7IEFYUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3BvdmVyJztcclxuaW1wb3J0IHtcclxuICBBWENvbXBvbmVudE9wdGlvbkNoYW5nZWQsXHJcbiAgX0Ryb3Bkb3duQ29tcG9uZW5ldE1peGluLFxyXG4gIF9JbnRlcmFjdGl2ZUNvbXBvbmVuZXRNaXhpbixcclxuICBfVmFsdWVDb21wb25lbmV0TWl4aW4sXHJcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21peGluJztcclxuXHJcbmV4cG9ydCBjb25zdCBBWEJhc2VEYXRlUGlja2VyTWl4aW4gPSBfSW50ZXJhY3RpdmVDb21wb25lbmV0TWl4aW4oX0Ryb3Bkb3duQ29tcG9uZW5ldE1peGluKF9WYWx1ZUNvbXBvbmVuZXRNaXhpbihBWENhbGVuZGFyQmFzZUNvbXBvbmVudCkpKTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXgtZGF0ZS1waWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBpbnB1dHM6IFtcclxuICAgICdydGwnLFxyXG4gICAgJ2lzT3BlbicsXHJcbiAgICAnZml0UGFyZW50JyxcclxuICAgICdkcm9wZG93bldpZHRoJyxcclxuICAgICdwb3NpdGlvbicsXHJcbiAgICAnZGlzYWJsZWQnLFxyXG4gICAgJ3RhYkluZGV4JyxcclxuICAgICdyZWFkb25seScsXHJcbiAgICAnYWxsb3dOdWxsJyxcclxuICAgICd2YWx1ZScsXHJcbiAgICAnbmFtZScsXHJcbiAgICAnY2hlY2tlZCcsXHJcbiAgICAncGxhY2Vob2xkZXInLFxyXG4gICAgJ21heExlbmd0aCcsXHJcbiAgICAnYWxsb3dOdWxsJyxcclxuICAgICd0eXBlJyxcclxuICAgICdhdXRvQ29tcGxldGUnLFxyXG4gICAgJ3JlYWRvbmx5JyxcclxuICAgICdhbGxvd051bGwnLFxyXG4gICAgJ3ZhbHVlJyxcclxuICAgICduYW1lJyxcclxuICAgICdjaGVja2VkJyxcclxuICAgICdkZXB0aCcsXHJcbiAgICAnYWN0aXZlVmlldycsXHJcbiAgICAnbWluJyxcclxuICAgICdtYXgnLFxyXG4gICAgJ2Rpc2FibGVkRGF0ZXMnLFxyXG4gICAgJ3R5cGUnLFxyXG4gICAgJ2hvbGlkYXlEYXRlcycsXHJcbiAgXSxcclxuICBvdXRwdXRzOiBbXHJcbiAgICAnb25PcGVuZWQnLFxyXG4gICAgJ29uQ2xvc2VkJyxcclxuICAgICdvbkJsdXInLFxyXG4gICAgJ29uRm9jdXMnLFxyXG4gICAgJ3ZhbHVlQ2hhbmdlJyxcclxuICAgICdvblZhbHVlQ2hhbmdlZCcsXHJcbiAgICAndmFsdWVDaGFuZ2UnLFxyXG4gICAgJ29uVmFsdWVDaGFuZ2VkJyxcclxuICAgICdkZXB0aENoYW5nZScsXHJcbiAgICAndHlwZUNoYW5nZScsXHJcbiAgICAnZGlzYWJsZWREYXRlc0NoYW5nZScsXHJcbiAgICAnaG9saWRheURhdGVzQ2hhbmdlJyxcclxuICAgICdvbk5hdmlnYXRlJyxcclxuICBdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWENsb3NiYWxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhEYXRlUGlja2VyQ29tcG9uZW50IH1dLFxyXG4gIGhvc3Q6IHsgY2xhc3M6ICdheC1lZGl0b3ItY29udGFpbmVyIGF4LWRyb3AtZG93bicgfSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYRGF0ZVBpY2tlckNvbXBvbmVudCBleHRlbmRzIEFYQmFzZURhdGVQaWNrZXJNaXhpbiB7XHJcbiAgQFZpZXdDaGlsZChBWFBvcG92ZXJDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgcG9wb3ZlcjogQVhQb3BvdmVyQ29tcG9uZW50ID0gbnVsbDtcclxuXHJcbiAgQFZpZXdDaGlsZChBWENhbGVuZGFyQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHByaXZhdGUgX2NhbGVuZGFyOiBBWENhbGVuZGFyQ29tcG9uZW50O1xyXG5cclxuICBwcm90ZWN0ZWQgX3RhcmdldDogSFRNTERpdkVsZW1lbnQ7XHJcbiAgZGlzcGxheVRleHQ6IHN0cmluZztcclxuICBwcm90ZWN0ZWQgX2NhbGVuZGFyVmFsdWU6IERhdGU7XHJcbiAgcHJvdGVjdGVkIF9jdXJzb3JQb3M6IG51bWJlciA9IDA7XHJcbiAgcHJvdGVjdGVkIF9pc01vYmlsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByb3RlY3RlZCBfcG9wb3ZlclRpdGxlOiBzdHJpbmc7XHJcbiAgcHJvdGVjdGVkIF9wb3BvdmVyV2lkdGg6IG51bWJlcjtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZm9ybWF0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIHByaXZhdGUgX2Zvcm1hdDogc3RyaW5nID0gJ1lZWVktTU0tZGQnO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBmb3JtYXQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9mb3JtYXQ7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgZm9ybWF0KHY6IHN0cmluZykge1xyXG4gICAgdGhpcy5fc2V0T3B0aW9uKHtcclxuICAgICAgbmFtZTogJ2Zvcm1hdCcsXHJcbiAgICAgIHZhbHVlOiB2LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaW50ZXJmYWNlOiAnY2FsZW5kYXInIHwgJ3BpY2tlcicgPSAnY2FsZW5kYXInO1xyXG5cclxuICBjb25zdHJ1Y3RvcihfZWxlbWVudFJlZjogRWxlbWVudFJlZiwgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgX3BsYXRmb3JtOiBBWFBsYXRmb3JtKSB7XHJcbiAgICBzdXBlcihfZWxlbWVudFJlZiwgX2Nkcik7XHJcbiAgICB0aGlzLl90YXJnZXQgPSB0aGlzLl9nZXRIb3N0RWxlbWVudCgpO1xyXG4gICAgdGhpcy5faXNNb2JpbGUgPSB0aGlzLl9wbGF0Zm9ybS5pcygnTW9iaWxlJykgfHwgdGhpcy5fcGxhdGZvcm0uaXMoJ1NNJyk7XHJcbiAgICB0aGlzLl9wbGF0Zm9ybS5yZXNpemUuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5faXNNb2JpbGUgPSB0aGlzLl9wbGF0Zm9ybS5pcygnTW9iaWxlJykgfHwgdGhpcy5fcGxhdGZvcm0uaXMoJ1NNJyk7XHJcbiAgICAgIHRoaXMucG9wb3Zlci5kaXNwb3NlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3BvcG92ZXJUaXRsZSA9IHRoaXMucGxhY2Vob2xkZXIgfHwgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZXBpY2tlci5wb3BvdmVyLnRpdGxlJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVEaXNwbGF5VGV4dCgpIHtcclxuICAgIHRoaXMuZGlzcGxheVRleHQgPSB0aGlzLnZhbHVlID8gQVhEYXRlVGltZS5jb252ZXJ0KHRoaXMudmFsdWUsIHRoaXMudHlwZSkuZm9ybWF0KHRoaXMuX2Zvcm1hdCkgOiAnJztcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfaGFuZGxlUG9wb3Zlck9wZW5lZChlKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5fY2FsZW5kYXI/Lm5hdlRvKHRoaXMudmFsdWUgfHwgbmV3IEFYRGF0ZVRpbWUobmV3IERhdGUoKSwgdGhpcy50eXBlKSk7XHJcbiAgICB9LCAxMCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2hhbmRsZUFycm93Q2xpY2tFdmVudCgpIHtcclxuICAgIHRoaXMudG9nZ2xlKCk7XHJcbiAgfVxyXG5cclxuICBfb25WYWx1ZUNoYW5nZWQob2xkVmFsdWU/OiBhbnksIG5ld1ZhbHVlPzogYW55KSB7XHJcbiAgICB0aGlzLl91cGRhdGVEaXNwbGF5VGV4dCgpO1xyXG4gICAgdGhpcy5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgX29uT3B0aW9uQ2hhbmdlZChvcHRpb246IEFYQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCk6IHZvaWQge1xyXG4gICAgc3VwZXIuX29uT3B0aW9uQ2hhbmdlZChvcHRpb24pO1xyXG4gICAgaWYgKG9wdGlvbi5uYW1lID09ICd0eXBlJykge1xyXG4gICAgICB0aGlzLl91cGRhdGVEaXNwbGF5VGV4dCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9oYW5kbGVPbktleWRvd25FdmVudChlOiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBjb25zdCBpZ25vcmUgPSAoKSA9PiB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgbnVtczogc3RyaW5nW10gPSBBcnJheSgxMClcclxuICAgICAgLmZpbGwoMClcclxuICAgICAgLm1hcCgodiwgaSkgPT4gaS50b1N0cmluZygpKTtcclxuICAgIGNvbnN0IGNoYXJzOiBzdHJpbmdbXSA9IFsnQmFja3NwYWNlJywgJ0Fycm93RG93bicsICdBcnJvd1VwJywgJ0Fycm93UmlnaHQnLCAnQXJyb3dMZWZ0JywgJ1RhYicsICdFbnRlciddO1xyXG4gICAgY29uc3QgaW5wdXQgPSBlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgY29uc3Qga2V5ID0gZS5rZXk7XHJcbiAgICBjb25zdCB2YWxTdHIgPSBpbnB1dC52YWx1ZTtcclxuICAgIGNvbnN0IHNTdGFydCA9IGlucHV0LnNlbGVjdGlvblN0YXJ0IHx8IDA7XHJcbiAgICBjb25zdCBzRW5kID0gaW5wdXQuc2VsZWN0aW9uRW5kIHx8IDA7XHJcbiAgICBjb25zdCBkYXRlVmFsID0gbmV3IEFYRGF0ZVRpbWUodGhpcy52YWx1ZSk7XHJcbiAgICAvL1xyXG4gICAgY29uc3QgcmUgPSAvW2EtekEtWjAtOV0rL2dpO1xyXG4gICAgY29uc3QgcGFydHMgPSBBcnJheS5mcm9tKHRoaXMuZm9ybWF0Lm1hdGNoQWxsKHJlKSk7XHJcbiAgICBjb25zdCB3b3JkID0gdmFsU3RyLnN1YnN0cmluZyhzU3RhcnQsIHNFbmQpO1xyXG4gICAgY29uc3QgcGFydCA9IHBhcnRzLmZpbmQoKGM6IGFueSkgPT4gYy5pbmRleCA+PSBzU3RhcnQpO1xyXG4gICAgLy9cclxuICAgIC8vXHJcbiAgICBpZiAoWy4uLm51bXNdLmluY2x1ZGVzKGtleSkpIHtcclxuICAgICAgaWYgKHBhcnQpIHtcclxuICAgICAgICBzd2l0Y2ggKHBhcnRbMF0pIHtcclxuICAgICAgICAgIGNhc2UgJ2RkJzpcclxuICAgICAgICAgIGNhc2UgJ0REJzpcclxuICAgICAgICAgICAgY29uc3QgbmV3VmFsID0gTWF0aC5tYXgoMSwgTWF0aC5taW4oMzEsIE51bWJlcih3b3JkICsgZS5rZXkpKSk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRlVmFsLnNldCgnZGF5JywgbmV3VmFsKS5kYXRlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgJ21tJzpcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICd5eSc6XHJcbiAgICAgICAgICBjYXNlICdZWVlZJzpcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5faGlnaGxpZ2h0UGFydChpbnB1dCwgc1N0YXJ0KTtcclxuICAgICAgICB9LCAxMCk7XHJcbiAgICAgICAgaWdub3JlKCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09ICdBcnJvd1JpZ2h0JyB8fCBlLmtleSA9PT0gJ0Fycm93TGVmdCcpIHtcclxuICAgICAgY29uc3QgbmV4dCA9IEFycmF5LmZyb20odmFsU3RyLnN1YnN0cihzRW5kKS5tYXRjaEFsbChyZSkpO1xyXG4gICAgICBjb25zdCBwcmV2ID0gQXJyYXkuZnJvbSh2YWxTdHIuc3Vic3RyaW5nKDAsIHNTdGFydCkubWF0Y2hBbGwocmUpKTtcclxuICAgICAgaWdub3JlKCk7XHJcbiAgICAgIHRoaXMuX2hpZ2hsaWdodFBhcnQoaW5wdXQsIGUua2V5ID09PSAnQXJyb3dSaWdodCcgPyBzRW5kICsgKG5leHRbMF0/LmluZGV4IHx8IDApIDogcHJldltwcmV2Lmxlbmd0aCAtIDFdPy5pbmRleCk7XHJcbiAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnQXJyb3dVcCcgfHwgZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgIGlmIChlLmN0cmxLZXkgJiYgZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgICAgdGhpcy5vcGVuKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3Qgc2lnbiA9IGUua2V5ID09PSAnQXJyb3dVcCcgPyArMSA6IC0xO1xyXG4gICAgICAgIGlmIChwYXJ0KSB7XHJcbiAgICAgICAgICBzd2l0Y2ggKHBhcnRbMF0pIHtcclxuICAgICAgICAgICAgY2FzZSAnZGQnOlxyXG4gICAgICAgICAgICBjYXNlICdERCc6XHJcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGVWYWwuYWRkKCdkYXknLCBzaWduKS5kYXRlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdtbSc6XHJcbiAgICAgICAgICAgIGNhc2UgJ01NTSc6XHJcbiAgICAgICAgICAgIGNhc2UgJ01NTU0nOlxyXG4gICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRlVmFsLmFkZCgnbW9udGgnLCBzaWduKS5kYXRlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICd5eSc6XHJcbiAgICAgICAgICAgIGNhc2UgJ1lZWVknOlxyXG4gICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRlVmFsLmFkZCgneWVhcicsIHNpZ24pLmRhdGU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5faGlnaGxpZ2h0UGFydChpbnB1dCwgc1N0YXJ0KTtcclxuICAgICAgICAgIH0sIDEwKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWdub3JlKCk7XHJcbiAgICB9IGVsc2UgaWYgKGUua2V5ID09ICdCYWNrc3BhY2UnKSB7XHJcbiAgICAgIGlmICh0aGlzLmFsbG93TnVsbCkge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIGlnbm9yZSgpO1xyXG4gICAgfVxyXG4gICAgLy8gZWxzZSBpZiAobnVtcy5pbmNsdWRlcyhrZXkpKSB7XHJcblxyXG4gICAgLy8gfVxyXG4gICAgLy8gc3VwZXIuX2VtaXRPbktleWRvd25FdmVudChlKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfaGFuZGxlT25JbnB1dENsaWNrRXZlbnQoZTogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgaW5wdXQgPSBlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgdGhpcy5faGlnaGxpZ2h0UGFydChpbnB1dCk7XHJcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9oYW5kbGVPbk5hdmlnYXRlKGU6IEFYQ2FsZW5kYXJOYXZpZ2F0ZUV2ZW50KSB7XHJcbiAgICB0aGlzLm9uTmF2aWdhdGUuZW1pdChlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hpZ2hsaWdodFBhcnQoaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQsIHBvcz86IG51bWJlcikge1xyXG4gICAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSBBWFN0cmluZ1V0aWwuZ2V0V29yZEJvdW5kc0F0UG9zaXRpb24oaW5wdXQudmFsdWUsIHBvcyAhPSBudWxsID8gcG9zIDogaW5wdXQuc2VsZWN0aW9uU3RhcnQgfHwgMCk7XHJcbiAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgZW5kKTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+IDwvbmctY29udGVudD5cclxuPGRpdiBjbGFzcz1cImF4LWRyb3Bkb3duLWNvbnRlbnQgYXgtY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwidG9nZ2xlKClcIj5cclxuICA8aW5wdXRcclxuICAgIGNsYXNzPVwiYXgtaW5wdXRcIlxyXG4gICAgdHlwZT1cInRleHRcIlxyXG4gICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgIFtjbGFzcy5heC1zdGF0ZS1yZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgW3JlYWRvbmx5XT1cInRydWVcIlxyXG4gICAgW2F0dHIudGFiaW5kZXhdPVwiX2lzTW9iaWxlID8gLTEgOiB0YWJJbmRleFwiXHJcbiAgICBbbmdNb2RlbF09XCJkaXNwbGF5VGV4dFwiXHJcbiAgICAoZm9jdXMpPVwiX2VtaXRPbkZvY3VzRXZlbnQoJGV2ZW50KVwiXHJcbiAgICAobW91c2V1cCk9XCJfaGFuZGxlT25JbnB1dENsaWNrRXZlbnQoJGV2ZW50KVwiXHJcbiAgICAoYmx1cik9XCJfZW1pdE9uQmx1ckV2ZW50KCRldmVudClcIlxyXG4gICAgKGtleWRvd24pPVwiX2hhbmRsZU9uS2V5ZG93bkV2ZW50KCRldmVudClcIiAvPlxyXG48L2Rpdj5cclxuPGJ1dHRvblxyXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgW3RhYkluZGV4XT1cIi0xXCJcclxuICBjbGFzcz1cImF4LWVkaXRvci1jb250cm9sXCJcclxuICAoY2xpY2spPVwiX2hhbmRsZUFycm93Q2xpY2tFdmVudCgpXCI+XHJcbiAgPHNwYW4gY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2FsZW5kYXJcIj48L3NwYW4+XHJcbjwvYnV0dG9uPlxyXG48bmctY29udGVudCBzZWxlY3Q9XCJheC1zdWZmaXhcIj4gPC9uZy1jb250ZW50PlxyXG48bmctY29udGVudCBzZWxlY3Q9XCJheC12YWxpZGF0aW9uLXJ1bGVcIj4gPC9uZy1jb250ZW50PlxyXG48YXgtcG9wb3ZlclxyXG4gIFt0YXJnZXRdPVwiX3RhcmdldFwiXHJcbiAgW3Bvc2l0aW9uXT1cInBvc2l0aW9uXCJcclxuICBbb3BlblRyaWdnZXJdPVwiJ21hbnVhbCdcIlxyXG4gIFtjbG9zZVRyaWdnZXJdPVwiJ2NsaWNrb3V0J1wiXHJcbiAgW2FkYXB0aXZpdHlFbmFibGVkXT1cInRydWVcIlxyXG4gIChvbk9wZW5lZCk9XCJfaGFuZGxlUG9wb3Zlck9wZW5lZCgkZXZlbnQpXCI+XHJcbiAgPGRpdiBjbGFzcz1cImF4LW92ZXJsYXktcGFuZVwiIFtjbGFzcy5heC13LWZ1bGxdPVwiX2lzTW9iaWxlXCI+XHJcbiAgICA8YXgtaGVhZGVyICpuZ0lmPVwiX2lzTW9iaWxlXCI+XHJcbiAgICAgIDxheC10aXRsZT5cclxuICAgICAgICB7eyBwbGFjZWhvbGRlciB8fCAnQ2hvb3NlIGEgZGF0ZScgfX1cclxuICAgICAgPC9heC10aXRsZT5cclxuICAgICAgPGF4LWNsb3NlLWJ1dHRvbj48L2F4LWNsb3NlLWJ1dHRvbj5cclxuICAgIDwvYXgtaGVhZGVyPlxyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAqbmdJZj1cIlxyXG4gICAgICAgIGludGVyZmFjZSA9PT0gJ2NhbGVuZGFyJztcclxuICAgICAgICB0aGVuIGNhbGVuZGFyVGVtcGxhdGU7XHJcbiAgICAgICAgZWxzZSBwaWNrZXJUZW1wbGF0ZVxyXG4gICAgICBcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY2FsZW5kYXJUZW1wbGF0ZT5cclxuICAgICAgPGF4LWNhbGVuZGFyXHJcbiAgICAgICAgI2NhbGVuZGFyXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgIFsodmFsdWUpXT1cInZhbHVlXCJcclxuICAgICAgICBbbWluXT1cIm1pblwiXHJcbiAgICAgICAgW21heF09XCJtYXhcIlxyXG4gICAgICAgIFtydGxdPVwicnRsXCJcclxuICAgICAgICBbZGlzYWJsZWREYXRlc109XCJkaXNhYmxlZERhdGVzXCJcclxuICAgICAgICBbaG9saWRheURhdGVzXT1cImhvbGlkYXlEYXRlc1wiXHJcbiAgICAgICAgW2RlcHRoXT1cImRlcHRoXCJcclxuICAgICAgICAob25OYXZpZ2F0ZSk9XCJfaGFuZGxlT25OYXZpZ2F0ZSgkZXZlbnQpXCJcclxuICAgICAgICBbdHlwZV09XCJ0eXBlXCI+XHJcbiAgICAgIDwvYXgtY2FsZW5kYXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNwaWNrZXJUZW1wbGF0ZT4gPC9uZy10ZW1wbGF0ZT5cclxuICA8L2Rpdj5cclxuPC9heC1wb3BvdmVyPlxyXG4iXX0=