@ultraviolet/ui 2.0.0-beta.8 → 2.0.0

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 (330) hide show
  1. package/dist/components/Alert/index.cjs +5 -5
  2. package/dist/components/Avatar/index.cjs +117 -37
  3. package/dist/components/Avatar/index.d.ts +3 -43
  4. package/dist/components/Avatar/index.js +119 -39
  5. package/dist/components/{AvatarV2 → Avatar}/types.d.ts +1 -1
  6. package/dist/components/Badge/index.cjs +3 -3
  7. package/dist/components/Banner/index.cjs +3 -3
  8. package/dist/components/BarChart/index.cjs +2 -2
  9. package/dist/components/BarStack/index.cjs +2 -2
  10. package/dist/components/Bullet/index.cjs +2 -6
  11. package/dist/components/Bullet/index.d.ts +1 -3
  12. package/dist/components/Bullet/index.js +3 -7
  13. package/dist/components/Button/index.cjs +16 -10
  14. package/dist/components/Button/index.d.ts +6 -0
  15. package/dist/components/Button/index.js +11 -5
  16. package/dist/components/Card/index.cjs +6 -7
  17. package/dist/components/Card/index.d.ts +0 -4
  18. package/dist/components/Card/index.js +4 -5
  19. package/dist/components/Carousel/index.cjs +5 -5
  20. package/dist/components/Checkbox/index.cjs +41 -59
  21. package/dist/components/Checkbox/index.d.ts +0 -8
  22. package/dist/components/Checkbox/index.js +27 -45
  23. package/dist/components/CheckboxGroup/index.cjs +9 -8
  24. package/dist/components/CheckboxGroup/index.d.ts +3 -3
  25. package/dist/components/CheckboxGroup/index.js +5 -4
  26. package/dist/components/Chip/ChipContext.cjs +2 -2
  27. package/dist/components/Chip/ChipIcon.cjs +2 -2
  28. package/dist/components/Chip/index.cjs +10 -10
  29. package/dist/components/Chip/index.d.ts +2 -2
  30. package/dist/components/Chip/index.js +1 -1
  31. package/dist/components/CopyButton/index.cjs +1 -2
  32. package/dist/components/CopyButton/index.d.ts +1 -5
  33. package/dist/components/CopyButton/index.js +1 -2
  34. package/dist/components/DateInput/Context.cjs +2 -2
  35. package/dist/components/DateInput/components/CalendarContent.cjs +2 -2
  36. package/dist/components/DateInput/components/CalendarDaily.cjs +5 -5
  37. package/dist/components/DateInput/components/CalendarDaily.js +2 -2
  38. package/dist/components/DateInput/components/CalendarMonthly.cjs +3 -3
  39. package/dist/components/DateInput/components/Popup.cjs +3 -3
  40. package/dist/components/DateInput/helpers.cjs +20 -0
  41. package/dist/components/DateInput/helpers.d.ts +2 -0
  42. package/dist/components/DateInput/helpers.js +20 -0
  43. package/dist/components/DateInput/index.cjs +42 -31
  44. package/dist/components/DateInput/index.js +30 -19
  45. package/dist/components/Dialog/Context.cjs +3 -3
  46. package/dist/components/Dialog/index.cjs +4 -4
  47. package/dist/components/Dialog/index.d.ts +9 -4
  48. package/dist/components/Dialog/index.js +2 -2
  49. package/dist/components/Drawer/index.cjs +44 -22
  50. package/dist/components/Drawer/index.d.ts +14 -2
  51. package/dist/components/Drawer/index.js +44 -22
  52. package/dist/components/Expandable/index.cjs +18 -9
  53. package/dist/components/Expandable/index.js +12 -3
  54. package/dist/components/ExpandableCard/index.cjs +14 -14
  55. package/dist/components/GlobalAlert/index.cjs +2 -2
  56. package/dist/components/InfiniteScroll/index.cjs +7 -7
  57. package/dist/components/LineChart/CustomLegend.cjs +9 -9
  58. package/dist/components/LineChart/CustomLegend.js +9 -9
  59. package/dist/components/LineChart/index.cjs +3 -3
  60. package/dist/components/Link/index.cjs +20 -36
  61. package/dist/components/Link/index.d.ts +2 -11
  62. package/dist/components/Link/index.js +14 -30
  63. package/dist/components/List/Cell.cjs +4 -17
  64. package/dist/components/List/Cell.d.ts +0 -6
  65. package/dist/components/List/Cell.js +2 -15
  66. package/dist/components/List/HeaderCell.cjs +3 -3
  67. package/dist/components/List/HeaderCell.js +4 -4
  68. package/dist/components/List/HeaderRow.cjs +2 -4
  69. package/dist/components/List/HeaderRow.js +2 -4
  70. package/dist/components/List/ListContext.cjs +23 -23
  71. package/dist/components/List/Row.cjs +55 -34
  72. package/dist/components/List/Row.d.ts +8 -1
  73. package/dist/components/List/Row.js +43 -22
  74. package/dist/components/List/SelectBar.cjs +2 -2
  75. package/dist/components/List/index.cjs +12 -11
  76. package/dist/components/List/index.d.ts +3 -1
  77. package/dist/components/List/index.js +6 -5
  78. package/dist/components/Menu/MenuContent.cjs +222 -0
  79. package/dist/components/{MenuV2 → Menu}/MenuContent.d.ts +3 -4
  80. package/dist/components/Menu/MenuContent.js +220 -0
  81. package/dist/components/Menu/MenuProvider.cjs +42 -0
  82. package/dist/components/Menu/MenuProvider.d.ts +24 -0
  83. package/dist/components/Menu/MenuProvider.js +42 -0
  84. package/dist/components/Menu/components/Group.cjs +34 -0
  85. package/dist/components/{MenuV2 → Menu}/components/Group.d.ts +1 -1
  86. package/dist/components/Menu/components/Group.js +32 -0
  87. package/dist/components/Menu/components/Item.cjs +172 -0
  88. package/dist/components/{MenuV2 → Menu}/components/Item.d.ts +4 -0
  89. package/dist/components/Menu/components/Item.js +171 -0
  90. package/dist/components/{MenuV2 → Menu}/constants.cjs +0 -1
  91. package/dist/components/{MenuV2 → Menu}/constants.js +0 -1
  92. package/dist/components/Menu/helpers.cjs +48 -0
  93. package/dist/components/{MenuV2 → Menu}/helpers.d.ts +2 -1
  94. package/dist/components/Menu/helpers.js +48 -0
  95. package/dist/components/Menu/index.cjs +13 -109
  96. package/dist/components/Menu/index.d.ts +62 -35
  97. package/dist/components/Menu/index.js +14 -108
  98. package/dist/components/{MenuV2 → Menu}/types.d.ts +3 -11
  99. package/dist/components/Modal/ModalContent.cjs +2 -8
  100. package/dist/components/Modal/ModalContent.d.ts +1 -2
  101. package/dist/components/Modal/ModalContent.js +2 -8
  102. package/dist/components/Modal/ModalProvider.cjs +8 -8
  103. package/dist/components/Modal/components/Dialog.cjs +21 -23
  104. package/dist/components/Modal/components/Dialog.d.ts +1 -1
  105. package/dist/components/Modal/components/Dialog.js +6 -8
  106. package/dist/components/Modal/components/Disclosure.cjs +10 -13
  107. package/dist/components/Modal/components/Disclosure.d.ts +1 -1
  108. package/dist/components/Modal/components/Disclosure.js +6 -9
  109. package/dist/components/Modal/index.cjs +13 -15
  110. package/dist/components/Modal/index.d.ts +1 -18
  111. package/dist/components/Modal/index.js +7 -9
  112. package/dist/components/Modal/types.d.ts +2 -16
  113. package/dist/components/NumberInput/index.cjs +194 -194
  114. package/dist/components/NumberInput/index.d.ts +30 -33
  115. package/dist/components/NumberInput/index.js +190 -190
  116. package/dist/components/Pagination/PaginationButtons.cjs +5 -5
  117. package/dist/components/Pagination/PerPage.cjs +3 -3
  118. package/dist/components/Pagination/PerPage.js +3 -3
  119. package/dist/components/Pagination/index.cjs +4 -4
  120. package/dist/components/PieChart/index.cjs +5 -5
  121. package/dist/components/Popover/index.cjs +10 -10
  122. package/dist/components/Popover/index.d.ts +4 -2
  123. package/dist/components/Popover/index.js +2 -2
  124. package/dist/components/Popup/helpers.cjs +41 -1
  125. package/dist/components/Popup/helpers.d.ts +1 -1
  126. package/dist/components/Popup/helpers.js +41 -1
  127. package/dist/components/Popup/index.cjs +34 -38
  128. package/dist/components/Popup/index.js +8 -12
  129. package/dist/components/Radio/index.cjs +3 -3
  130. package/dist/components/Radio/index.d.ts +9 -9
  131. package/dist/components/RadioGroup/index.cjs +6 -7
  132. package/dist/components/RadioGroup/index.d.ts +3 -8
  133. package/dist/components/RadioGroup/index.js +2 -3
  134. package/dist/components/Row/index.cjs +18 -6
  135. package/dist/components/Row/index.d.ts +5 -5
  136. package/dist/components/Row/index.js +18 -6
  137. package/dist/components/SearchInput/Key.cjs +2 -2
  138. package/dist/components/SearchInput/index.cjs +26 -26
  139. package/dist/components/SearchInput/index.d.ts +1 -1
  140. package/dist/components/SearchInput/index.js +7 -7
  141. package/dist/components/SearchInput/types.d.ts +3 -3
  142. package/dist/components/SelectInput/Dropdown.cjs +477 -0
  143. package/dist/components/SelectInput/Dropdown.js +475 -0
  144. package/dist/components/SelectInput/DropdownOption.cjs +91 -0
  145. package/dist/components/SelectInput/DropdownOption.js +89 -0
  146. package/dist/components/SelectInput/SearchBarDropdown.cjs +129 -0
  147. package/dist/components/SelectInput/SearchBarDropdown.js +127 -0
  148. package/dist/components/SelectInput/SelectBar.cjs +364 -0
  149. package/dist/components/SelectInput/SelectBar.js +362 -0
  150. package/dist/components/{SelectInputV2 → SelectInput}/SelectInputProvider.cjs +22 -22
  151. package/dist/components/{SelectInputV2 → SelectInput}/SelectInputProvider.d.ts +2 -1
  152. package/dist/components/{SelectInputV2 → SelectInput}/SelectInputProvider.js +8 -8
  153. package/dist/components/SelectInput/index.cjs +68 -496
  154. package/dist/components/SelectInput/index.d.ts +119 -63
  155. package/dist/components/SelectInput/index.js +68 -494
  156. package/dist/components/SelectableCard/index.cjs +13 -13
  157. package/dist/components/SelectableCardGroup/index.cjs +5 -5
  158. package/dist/components/SelectableCardGroup/index.d.ts +1 -1
  159. package/dist/components/SelectableCardGroup/index.js +1 -1
  160. package/dist/components/SelectableCardOptionGroup/Provider.cjs +3 -3
  161. package/dist/components/SelectableCardOptionGroup/Provider.d.ts +2 -2
  162. package/dist/components/SelectableCardOptionGroup/components/Option.cjs +11 -11
  163. package/dist/components/SelectableCardOptionGroup/components/Option.d.ts +5 -5
  164. package/dist/components/SelectableCardOptionGroup/components/Option.js +9 -9
  165. package/dist/components/SelectableCardOptionGroup/index.cjs +2 -2
  166. package/dist/components/SelectableCardOptionGroup/index.d.ts +3 -3
  167. package/dist/components/Separator/index.cjs +8 -9
  168. package/dist/components/Separator/index.d.ts +1 -5
  169. package/dist/components/Separator/index.js +8 -9
  170. package/dist/components/Skeleton/Block.cjs +2 -2
  171. package/dist/components/Skeleton/Slider.cjs +3 -3
  172. package/dist/components/Skeleton/Slider.js +3 -3
  173. package/dist/components/Slider/components/DoubleSlider.cjs +20 -20
  174. package/dist/components/Slider/components/DoubleSlider.js +7 -7
  175. package/dist/components/Slider/components/SingleSlider.cjs +24 -24
  176. package/dist/components/Slider/components/SingleSlider.js +7 -7
  177. package/dist/components/Slider/index.cjs +2 -2
  178. package/dist/components/Slider/styles.d.ts +35 -24
  179. package/dist/components/Snippet/index.cjs +3 -3
  180. package/dist/components/Stack/index.cjs +31 -11
  181. package/dist/components/Stack/index.d.ts +9 -9
  182. package/dist/components/Stack/index.js +31 -11
  183. package/dist/components/StepList/index.cjs +3 -3
  184. package/dist/components/StepList/index.js +3 -3
  185. package/dist/components/Stepper/Step.cjs +10 -14
  186. package/dist/components/Stepper/Step.js +6 -10
  187. package/dist/components/Stepper/StepperProvider.cjs +7 -7
  188. package/dist/components/Stepper/index.cjs +11 -14
  189. package/dist/components/Stepper/index.js +4 -7
  190. package/dist/components/SwitchButton/FocusOverlay.cjs +12 -20
  191. package/dist/components/SwitchButton/FocusOverlay.d.ts +5 -5
  192. package/dist/components/SwitchButton/FocusOverlay.js +12 -20
  193. package/dist/components/SwitchButton/Option.cjs +82 -0
  194. package/dist/components/SwitchButton/Option.d.ts +10 -0
  195. package/dist/components/SwitchButton/Option.js +80 -0
  196. package/dist/components/SwitchButton/SwitchButtonContext.cjs +13 -0
  197. package/dist/components/SwitchButton/SwitchButtonContext.d.ts +19 -0
  198. package/dist/components/SwitchButton/SwitchButtonContext.js +13 -0
  199. package/dist/components/SwitchButton/constant.cjs +4 -0
  200. package/dist/components/SwitchButton/constant.d.ts +1 -0
  201. package/dist/components/SwitchButton/constant.js +4 -0
  202. package/dist/components/SwitchButton/index.cjs +82 -48
  203. package/dist/components/SwitchButton/index.d.ts +14 -13
  204. package/dist/components/SwitchButton/index.js +81 -47
  205. package/dist/components/Table/HeaderCell.cjs +5 -5
  206. package/dist/components/Table/HeaderCell.js +6 -6
  207. package/dist/components/Table/Row.cjs +10 -10
  208. package/dist/components/Table/SelectBar.cjs +2 -2
  209. package/dist/components/Table/TableContext.cjs +5 -5
  210. package/dist/components/Table/index.cjs +10 -10
  211. package/dist/components/Table/index.js +2 -2
  212. package/dist/components/Tabs/Tab.cjs +3 -3
  213. package/dist/components/Tabs/TabMenu.cjs +7 -7
  214. package/dist/components/Tabs/TabMenu.d.ts +3 -3
  215. package/dist/components/Tabs/TabMenu.js +5 -5
  216. package/dist/components/Tabs/TabMenuItem.cjs +5 -5
  217. package/dist/components/Tabs/TabMenuItem.d.ts +1 -0
  218. package/dist/components/Tabs/TabMenuItem.js +3 -3
  219. package/dist/components/Tabs/TabsContext.cjs +3 -3
  220. package/dist/components/Tabs/index.cjs +14 -14
  221. package/dist/components/Tabs/index.d.ts +4 -3
  222. package/dist/components/Tabs/index.js +3 -3
  223. package/dist/components/Tag/index.cjs +2 -2
  224. package/dist/components/TagInput/index.cjs +14 -16
  225. package/dist/components/TagInput/index.d.ts +1 -17
  226. package/dist/components/TagInput/index.js +7 -9
  227. package/dist/components/TagList/index.cjs +13 -13
  228. package/dist/components/Text/index.cjs +4 -6
  229. package/dist/components/Text/index.d.ts +2 -6
  230. package/dist/components/Text/index.js +2 -4
  231. package/dist/components/TextArea/index.cjs +13 -13
  232. package/dist/components/TextArea/index.js +4 -4
  233. package/dist/components/TextInput/index.cjs +179 -343
  234. package/dist/components/TextInput/index.d.ts +74 -68
  235. package/dist/components/TextInput/index.js +177 -340
  236. package/dist/components/TimeInput/index.cjs +320 -23
  237. package/dist/components/TimeInput/index.d.ts +44 -20
  238. package/dist/components/TimeInput/index.js +320 -25
  239. package/dist/components/Toaster/index.cjs +2 -10
  240. package/dist/components/Toaster/index.d.ts +0 -4
  241. package/dist/components/Toaster/index.js +2 -10
  242. package/dist/components/Toggle/index.cjs +6 -6
  243. package/dist/components/ToggleGroup/index.cjs +5 -5
  244. package/dist/components/ToggleGroup/index.d.ts +1 -1
  245. package/dist/components/ToggleGroup/index.js +1 -1
  246. package/dist/components/Tooltip/index.cjs +3 -3
  247. package/dist/components/Tooltip/index.d.ts +36 -4
  248. package/dist/components/Tooltip/index.js +1 -1
  249. package/dist/components/UnitInput/index.cjs +33 -50
  250. package/dist/components/UnitInput/index.d.ts +8 -7
  251. package/dist/components/UnitInput/index.js +28 -45
  252. package/dist/components/VerificationCode/index.cjs +5 -5
  253. package/dist/components/index.d.ts +2 -9
  254. package/dist/hooks/useIsOverflowing.cjs +3 -3
  255. package/dist/index.cjs +143 -159
  256. package/dist/index.d.ts +2 -2
  257. package/dist/index.js +4 -20
  258. package/dist/theme/index.d.ts +2 -7
  259. package/package.json +9 -13
  260. package/dist/components/AvatarV2/index.cjs +0 -139
  261. package/dist/components/AvatarV2/index.d.ts +0 -5
  262. package/dist/components/AvatarV2/index.js +0 -137
  263. package/dist/components/Menu/Item.cjs +0 -93
  264. package/dist/components/Menu/Item.d.ts +0 -15
  265. package/dist/components/Menu/Item.js +0 -92
  266. package/dist/components/MenuV2/MenuContent.cjs +0 -163
  267. package/dist/components/MenuV2/MenuContent.js +0 -161
  268. package/dist/components/MenuV2/MenuProvider.cjs +0 -31
  269. package/dist/components/MenuV2/MenuProvider.d.ts +0 -14
  270. package/dist/components/MenuV2/MenuProvider.js +0 -31
  271. package/dist/components/MenuV2/components/Group.cjs +0 -34
  272. package/dist/components/MenuV2/components/Group.js +0 -32
  273. package/dist/components/MenuV2/components/Item.cjs +0 -134
  274. package/dist/components/MenuV2/components/Item.js +0 -133
  275. package/dist/components/MenuV2/helpers.cjs +0 -26
  276. package/dist/components/MenuV2/helpers.js +0 -26
  277. package/dist/components/MenuV2/index.cjs +0 -20
  278. package/dist/components/MenuV2/index.d.ts +0 -76
  279. package/dist/components/MenuV2/index.js +0 -20
  280. package/dist/components/NumberInput/helpers.cjs +0 -10
  281. package/dist/components/NumberInput/helpers.d.ts +0 -4
  282. package/dist/components/NumberInput/helpers.js +0 -10
  283. package/dist/components/NumberInputV2/index.cjs +0 -262
  284. package/dist/components/NumberInputV2/index.d.ts +0 -38
  285. package/dist/components/NumberInputV2/index.js +0 -260
  286. package/dist/components/PasswordStrengthMeter/index.cjs +0 -98
  287. package/dist/components/PasswordStrengthMeter/index.d.ts +0 -39
  288. package/dist/components/PasswordStrengthMeter/index.js +0 -96
  289. package/dist/components/SelectInputV2/Dropdown.cjs +0 -477
  290. package/dist/components/SelectInputV2/Dropdown.js +0 -475
  291. package/dist/components/SelectInputV2/DropdownOption.cjs +0 -91
  292. package/dist/components/SelectInputV2/DropdownOption.js +0 -89
  293. package/dist/components/SelectInputV2/SearchBarDropdown.cjs +0 -129
  294. package/dist/components/SelectInputV2/SearchBarDropdown.js +0 -127
  295. package/dist/components/SelectInputV2/SelectBar.cjs +0 -364
  296. package/dist/components/SelectInputV2/SelectBar.js +0 -362
  297. package/dist/components/SelectInputV2/index.cjs +0 -91
  298. package/dist/components/SelectInputV2/index.d.ts +0 -126
  299. package/dist/components/SelectInputV2/index.js +0 -89
  300. package/dist/components/TextInputV2/index.cjs +0 -223
  301. package/dist/components/TextInputV2/index.d.ts +0 -81
  302. package/dist/components/TextInputV2/index.js +0 -221
  303. package/dist/components/TimeInputV2/index.cjs +0 -326
  304. package/dist/components/TimeInputV2/index.d.ts +0 -49
  305. package/dist/components/TimeInputV2/index.js +0 -324
  306. package/dist/helpers/isJSON.cjs +0 -10
  307. package/dist/helpers/isJSON.js +0 -11
  308. package/dist/theme/ThemeRegistry.cjs +0 -56
  309. package/dist/theme/ThemeRegistry.d.ts +0 -12
  310. package/dist/theme/ThemeRegistry.js +0 -55
  311. /package/dist/components/{AvatarV2 → Avatar}/constants.cjs +0 -0
  312. /package/dist/components/{AvatarV2 → Avatar}/constants.d.ts +0 -0
  313. /package/dist/components/{AvatarV2 → Avatar}/constants.js +0 -0
  314. /package/dist/components/{MenuV2 → Menu}/constants.d.ts +0 -0
  315. /package/dist/components/{SelectInputV2 → SelectInput}/Dropdown.d.ts +0 -0
  316. /package/dist/components/{SelectInputV2 → SelectInput}/DropdownOption.d.ts +0 -0
  317. /package/dist/components/{SelectInputV2 → SelectInput}/SearchBarDropdown.d.ts +0 -0
  318. /package/dist/components/{SelectInputV2 → SelectInput}/SelectBar.d.ts +0 -0
  319. /package/dist/components/{SelectInputV2 → SelectInput}/findOptionInOptions.cjs +0 -0
  320. /package/dist/components/{SelectInputV2 → SelectInput}/findOptionInOptions.d.ts +0 -0
  321. /package/dist/components/{SelectInputV2 → SelectInput}/findOptionInOptions.js +0 -0
  322. /package/dist/components/{SelectInputV2 → SelectInput}/types.cjs +0 -0
  323. /package/dist/components/{SelectInputV2 → SelectInput}/types.d.ts +0 -0
  324. /package/dist/components/{SelectInputV2 → SelectInput}/types.js +0 -0
  325. /package/dist/components/{TimeInputV2 → TimeInput}/constants.cjs +0 -0
  326. /package/dist/components/{TimeInputV2 → TimeInput}/constants.d.ts +0 -0
  327. /package/dist/components/{TimeInputV2 → TimeInput}/constants.js +0 -0
  328. /package/dist/components/{TimeInputV2 → TimeInput}/helpers.cjs +0 -0
  329. /package/dist/components/{TimeInputV2 → TimeInput}/helpers.d.ts +0 -0
  330. /package/dist/components/{TimeInputV2 → TimeInput}/helpers.js +0 -0
@@ -2,28 +2,325 @@
2
2
  "use strict";
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
4
  const jsxRuntime = require("@emotion/react/jsx-runtime");
5
- const index = require("../SelectInput/index.cjs");
6
- const hours = ["00:00", "01:00", "02:00", "03:00", "04:00", "05:00", "06:00", "07:00", "08:00", "09:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00", "17:00", "18:00", "19:00", "20:00", "21:00", "22:00", "23:00"];
7
- const half = ["00:00", "00:30", "01:00", "01:30", "02:00", "02:30", "03:00", "03:30", "04:00", "04:30", "05:00", "05:30", "06:00", "06:30", "07:00", "07:30", "08:00", "08:30", "09:00", "09:30", "10:00", "10:30", "11:00", "11:30", "12:00", "12:30", "13:00", "13:30", "14:00", "14:30", "15:00", "15:30", "16:00", "16:30", "17:00", "17:30", "18:00", "18:30", "19:00", "19:30", "20:00", "20:30", "21:00", "21:30", "22:00", "22:30", "23:00", "23:30"];
8
- const quarter = ["00:00", "00:15", "00:30", "00:45", "01:00", "01:15", "01:30", "01:45", "02:00", "02:15", "02:30", "02:45", "03:00", "03:15", "03:30", "03:45", "04:00", "04:15", "04:30", "04:45", "05:00", "05:15", "05:30", "05:45", "06:00", "06:15", "06:30", "06:45", "07:00", "07:15", "07:30", "07:45", "08:00", "08:15", "08:30", "08:45", "09:00", "09:15", "09:30", "09:45", "10:00", "10:15", "10:30", "10:45", "11:00", "11:15", "11:30", "11:45", "12:00", "12:15", "12:30", "12:45", "13:00", "13:15", "13:30", "13:45", "14:00", "14:15", "14:30", "14:45", "15:00", "15:15", "15:30", "15:45", "16:00", "16:15", "16:30", "16:45", "17:00", "17:15", "17:30", "17:45", "18:00", "18:15", "18:30", "18:45", "19:00", "19:15", "19:30", "19:45", "20:00", "20:15", "20:30", "20:45", "21:00", "21:15", "21:30", "21:45", "22:00", "22:15", "22:30", "22:45", "23:00", "23:15", "23:30", "23:45"];
9
- const schedules = {
10
- half,
11
- hours,
12
- quarter
13
- };
14
- const options = (schedule) => schedules[schedule].map((hour) => ({
15
- label: hour,
16
- value: hour
17
- }));
18
- const defaultValue = {
19
- label: "00:00",
20
- value: "00:00"
21
- };
5
+ const _styled = require("@emotion/styled/base");
6
+ const Icon = require("@ultraviolet/icons");
7
+ const react = require("react");
8
+ const index$2 = require("../Button/index.cjs");
9
+ const index$1 = require("../Label/index.cjs");
10
+ const index = require("../Stack/index.cjs");
11
+ const index$3 = require("../Text/index.cjs");
12
+ const constants = require("./constants.cjs");
13
+ const helpers = require("./helpers.cjs");
14
+ const _interopDefaultCompat = (e) => e && typeof e === "object" && "default" in e ? e : { default: e };
15
+ const _styled__default = /* @__PURE__ */ _interopDefaultCompat(_styled);
16
+ const TimeInputWrapper = /* @__PURE__ */ _styled__default.default(index.Stack, process.env.NODE_ENV === "production" ? {
17
+ target: "e1ewpo8m2"
18
+ } : {
19
+ target: "e1ewpo8m2",
20
+ label: "TimeInputWrapper"
21
+ })("display:flex;cursor:text;padding:", ({
22
+ theme
23
+ }) => theme.space[1], ";box-shadow:none;background:", ({
24
+ theme
25
+ }) => theme.colors.neutral.background, ";border-radius:", ({
26
+ theme
27
+ }) => theme.radii.default, ";border:1px solid ", ({
28
+ theme
29
+ }) => theme.colors.neutral.border, ';&:not([data-disabled="true"]):not([data-readonly="true"]):active{border-color:', ({
30
+ theme
31
+ }) => theme.colors.primary.borderHover, ";box-shadow:", ({
32
+ theme
33
+ }) => theme.shadows.focusPrimary, ';}&[data-disabled="false"]:hover,[data-disabled="false"]:focus{border-color:', ({
34
+ theme
35
+ }) => theme.colors.primary.borderHover, ";outline:none;}&:focus-within{border-color:", ({
36
+ theme
37
+ }) => theme.colors.primary.borderHover, ";}&[data-size='small']{height:", ({
38
+ theme
39
+ }) => theme.sizing[constants.INPUT_SIZE_HEIGHT.small], ";padding-left:", ({
40
+ theme
41
+ }) => theme.space[1], ";}&[data-size='medium']{height:", ({
42
+ theme
43
+ }) => theme.sizing[constants.INPUT_SIZE_HEIGHT.medium], ";}&[data-size='large']{height:", ({
44
+ theme
45
+ }) => theme.sizing[constants.INPUT_SIZE_HEIGHT.large], ";}&[data-readonly='true']{background:", ({
46
+ theme
47
+ }) => theme.colors.neutral.backgroundWeak, ";border-color:", ({
48
+ theme
49
+ }) => theme.colors.neutral.border, ";cursor:default;}&[data-disabled='true']{background:", ({
50
+ theme
51
+ }) => theme.colors.neutral.backgroundDisabled, ";border-color:", ({
52
+ theme
53
+ }) => theme.colors.neutral.borderDisabled, ";cursor:not-allowed;user-select:none;}&[data-error='true']{border:1px solid ", ({
54
+ theme
55
+ }) => theme.colors.danger.border, ';&:not([data-disabled="true"]):not([data-readonly="true"]):active{border-color:', ({
56
+ theme
57
+ }) => theme.colors.danger.borderHover, ";box-shadow:", ({
58
+ theme
59
+ }) => theme.shadows.focusDanger, ';}&:not([data-disabled="true"]):not([data-readonly="true"]):hover{border-color:', ({
60
+ theme
61
+ }) => theme.colors.danger.borderHover, ";}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1RpbWVJbnB1dC9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUNFIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1RpbWVJbnB1dC9pbmRleC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgeyBBbGVydENpcmNsZUljb24sIENsb3NlSWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucydcbmltcG9ydCB0eXBlIHsgRm9jdXNFdmVudCwgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZUlkLCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nXG5pbXBvcnQgeyBMYWJlbCB9IGZyb20gJy4uL0xhYmVsJ1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tICcuLi9TdGFjaydcbmltcG9ydCB7IFRleHQgfSBmcm9tICcuLi9UZXh0J1xuaW1wb3J0IHtcbiAgREVGQVVMVF9EQVRFLFxuICBERUZBVUxUX1BMQUNFSE9MREVSLFxuICBJTlBVVF9TSVpFX0hFSUdIVCxcbiAgVElNRV9LRVlTLFxufSBmcm9tICcuL2NvbnN0YW50cydcbmltcG9ydCB7XG4gIGNhbkNvbmNhdCxcbiAgZm9ybWF0LFxuICBnZXRMYXN0VHlwZWRDaGFyLFxuICBnZXRWYWx1ZUJ5VHlwZSxcbiAgaXNBT3JQLFxuICBpc0NvbXBsZXRlSG91cixcbiAgaXNOdW1iZXIsXG4gIHNldFZhbHVlQnlUeXBlLFxufSBmcm9tICcuL2hlbHBlcnMnXG5cbmV4cG9ydCB0eXBlIFRpbWUgPSB7XG4gIGg6IHN0cmluZ1xuICBtOiBzdHJpbmdcbiAgczogc3RyaW5nXG4gIHBlcmlvZD86IHN0cmluZ1xufVxuXG5jb25zdCBUaW1lSW5wdXRXcmFwcGVyID0gc3R5bGVkKFN0YWNrKTx7XG4gICdkYXRhLXJlYWRvbmx5JzogYm9vbGVhblxuICAnZGF0YS1kaXNhYmxlZCc6IGJvb2xlYW5cbiAgJ2RhdGEtc2l6ZSc6ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZSdcbiAgJ2RhdGEtZXJyb3InOiBib29sZWFuXG59PmBcbiAgZGlzcGxheTogZmxleDtcbiAgY3Vyc29yOiB0ZXh0O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWzFdfTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgYm9yZGVyOiAxcHggc29saWQgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5ib3JkZXJ9O1xuXG4gICY6bm90KFtkYXRhLWRpc2FibGVkPVwidHJ1ZVwiXSk6bm90KFtkYXRhLXJlYWRvbmx5PVwidHJ1ZVwiXSk6YWN0aXZlIHtcbiAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYm9yZGVySG92ZXJ9O1xuICAgIGJveC1zaGFkb3c6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc2hhZG93cy5mb2N1c1ByaW1hcnl9O1xuICB9XG5cbiAgJltkYXRhLWRpc2FibGVkPVwiZmFsc2VcIl06aG92ZXIsXG4gIFtkYXRhLWRpc2FibGVkPVwiZmFsc2VcIl06Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeS5ib3JkZXJIb3Zlcn07XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYm9yZGVySG92ZXJ9O1xuICB9XG5cbiAgJltkYXRhLXNpemU9J3NtYWxsJ10ge1xuICAgIGhlaWdodDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zaXppbmdbSU5QVVRfU0laRV9IRUlHSFQuc21hbGxdfTtcbiAgICBwYWRkaW5nLWxlZnQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbMV19O1xuICB9XG5cbiAgJltkYXRhLXNpemU9J21lZGl1bSddIHtcbiAgICBoZWlnaHQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc2l6aW5nW0lOUFVUX1NJWkVfSEVJR0hULm1lZGl1bV19O1xuICB9XG5cbiAgJltkYXRhLXNpemU9J2xhcmdlJ10ge1xuICAgIGhlaWdodDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zaXppbmdbSU5QVVRfU0laRV9IRUlHSFQubGFyZ2VdfTtcbiAgfVxuXG4gICZbZGF0YS1yZWFkb25seT0ndHJ1ZSddIHtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyfTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIH1cblxuICAmW2RhdGEtZGlzYWJsZWQ9J3RydWUnXSB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWR9O1xuICAgIGJvcmRlci1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5ib3JkZXJEaXNhYmxlZH07XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxuXG4gICZbZGF0YS1lcnJvcj0ndHJ1ZSddIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVyfTtcblxuICAgICY6bm90KFtkYXRhLWRpc2FibGVkPVwidHJ1ZVwiXSk6bm90KFtkYXRhLXJlYWRvbmx5PVwidHJ1ZVwiXSk6YWN0aXZlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlckhvdmVyfTtcbiAgICAgIGJveC1zaGFkb3c6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc2hhZG93cy5mb2N1c0Rhbmdlcn07XG4gICAgfVxuXG4gICAgJjpub3QoW2RhdGEtZGlzYWJsZWQ9XCJ0cnVlXCJdKTpub3QoW2RhdGEtcmVhZG9ubHk9XCJ0cnVlXCJdKTpob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJIb3Zlcn07XG4gICAgfVxuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBJbnB1dCA9IHN0eWxlZC5pbnB1dDx7XG4gICdkYXRhLXNpemUnOiAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnXG4gICdkYXRhLXBlcmlvZCc/OiBib29sZWFuXG59PmBcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnR5cG9ncmFwaHkuYm9keVNtYWxsLmZvbnRTaXplfTtcbiAgd2lkdGg6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc2l6aW5nWzMxMl19O1xuICBoZWlnaHQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc2l6aW5nWzMwMF19O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHR9O1xuICBjYXJldC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgJltkYXRhLXNpemU9J2xhcmdlJ10ge1xuICAgIGZvbnQtc2l6ZTogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS50eXBvZ3JhcGh5LmJvZHkuZm9udFNpemV9O1xuICB9XG5cbiAgJjpub3QoOmRpc2FibGVkKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrfTtcbiAgfVxuXG4gICY6bm90KDpkaXNhYmxlZCk6YWN0aXZlLFxuICA6bm90KDpkaXNhYmxlZCk6Zm9jdXN7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kU3Ryb25nfTtcbiAgICBjb2xvcjogICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dH07XG4gIH1cblxuICAmOnJlYWQtb25seSB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxuXG4gICZbZGF0YS1wZXJpb2Q9XCJ0cnVlXCJdIHtcbiAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha307XG5cbiAgICAmW2RhdGEtc2l6ZT1cImxhcmdlXCJdIHtcbiAgICAgIHdpZHRoOiBjYWxjKCR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc2l6aW5nWyczMTInXX0gKyAke3RoZW1lLnNpemluZ1snMDI1J119YH0pXG4gICAgfVxuXG4gIH1cblxuICA6Oi1tb3otc2VsZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG5cbiAgOjpzZWxlY3Rpb24ge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbmBcblxuY29uc3QgQ3VzdG9tVGV4dCA9IHN0eWxlZChUZXh0KWBcbnBhZGRpbmctaW5saW5lOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG50eXBlIFRpbWVJbnB1dFByb3BzID0ge1xuICBwbGFjZWhvbGRlcj86IFRpbWVcbiAgdmFsdWU/OiBEYXRlIHwgbnVsbFxuICBjbGVhcmFibGU/OiBib29sZWFuXG4gIHJlcXVpcmVkPzogYm9vbGVhblxuICBsYWJlbERlc2NyaXB0aW9uPzogUmVhY3ROb2RlXG4gIGhlbHBlcj86IFJlYWN0Tm9kZVxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgcmVhZE9ubHk/OiBib29sZWFuXG4gIGVycm9yPzogYm9vbGVhbiB8IHN0cmluZ1xuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBEYXRlIHwgdW5kZWZpbmVkLCB2YWx1ZVBlcmlvZD86IHN0cmluZykgPT4gdm9pZFxuICBvbkJsdXI/OiAoZXZlbnQ6IEZvY3VzRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHZvaWRcbiAgb25Gb2N1cz86IChldmVudDogRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZFxuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgaWQ/OiBzdHJpbmdcbiAgc2l6ZT86ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZSdcbiAgdGltZUZvcm1hdD86IDEyIHwgMjRcbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgZm9jdXMgb24gdGhlIGVsZW1lbnQgb24gcmVuZGVyLiBBdXRvZm9jdXMgaXMgYXBwbGllZCB0byB0aGUgaG91ciBpbnB1dFxuICAgKi9cbiAgYXV0b0ZvY3VzPzogYm9vbGVhblxufSAmIChcbiAgfCB7XG4gICAgICBsYWJlbD86IHN0cmluZ1xuICAgICAgJ2FyaWEtbGFiZWwnPzogbmV2ZXJcbiAgICB9XG4gIHwge1xuICAgICAgbGFiZWw/OiBuZXZlclxuICAgICAgJ2FyaWEtbGFiZWwnOiBzdHJpbmdcbiAgICB9XG4pXG5cbi8qKlxuICogQSB0aW1lIGlucHV0IGNvbXBvbmVudCB0aGF0IGFsbG93cyB1c2VycyB0byB0eXBlIGEgdGltZSBpbiBhIDI0IG9yIDEyLWhvdXIgZm9ybWF0LlxuICogQGV4cGVyaW1lbnRhbCBUaGlzIGNvbXBvbmVudCBpcyBleHBlcmltZW50YWwgYW5kIG1heSBiZSBzdWJqZWN0IHRvIGJyZWFraW5nIGNoYW5nZXMgaW4gdGhlIGZ1dHVyZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFRpbWVJbnB1dCA9ICh7XG4gIGxhYmVsLFxuICB0aW1lRm9ybWF0ID0gMjQsXG4gIHZhbHVlLFxuICBjbGVhcmFibGUsXG4gIHJlcXVpcmVkLFxuICBsYWJlbERlc2NyaXB0aW9uLFxuICBoZWxwZXIsXG4gIHNpemUgPSAnbGFyZ2UnLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICByZWFkT25seSA9IGZhbHNlLFxuICBlcnJvciA9IGZhbHNlLFxuICBvbkNoYW5nZSxcbiAgb25CbHVyLFxuICBvbkZvY3VzLFxuICBjbGFzc05hbWUsXG4gIGlkLFxuICBhdXRvRm9jdXMsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIHBsYWNlaG9sZGVyID0gREVGQVVMVF9QTEFDRUhPTERFUixcbiAgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsXG59OiBUaW1lSW5wdXRQcm9wcykgPT4ge1xuICBjb25zdCBsb2NhbElkID0gdXNlSWQoKVxuICBjb25zdCBkZWZhdWx0UGVyaW9kID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHZhbHVlKSByZXR1cm4gdmFsdWUuZ2V0SG91cnMoKSA+PSAxMiA/ICdwbScgOiAnYW0nXG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH0sIFt2YWx1ZV0pXG5cbiAgY29uc3QgW3RpbWUsIHNldFRpbWVdID0gdXNlU3RhdGUodmFsdWUpXG4gIGNvbnN0IFtwZXJpb2QsIHNldFBlcmlvZF0gPSB1c2VTdGF0ZTwncG0nIHwgJ2FtJyB8IHVuZGVmaW5lZD4oZGVmYXVsdFBlcmlvZClcbiAgY29uc3QgW2ZpbGxlZCwgc2V0RmlsbGVkXSA9IHVzZVN0YXRlKFxuICAgIHZhbHVlID8geyBoOiB0cnVlLCBtOiB0cnVlLCBzOiB0cnVlIH0gOiB7IGg6IGZhbHNlLCBtOiBmYWxzZSwgczogZmFsc2UgfSxcbiAgKSAvLyB0byBub3Qgc2hvdyAwMCB3aGVuIHRoZXJlIHNob3VsZCBiZSBhIHBsYWNlaG9sZGVyXG5cbiAgY29uc3QgcmVmSG91cnMgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbClcbiAgY29uc3QgcmVmU2Vjb25kcyA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKVxuICBjb25zdCByZWZNaW51dGVzID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHJlZlBlcmlvZCA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBzZXRUaW1lKHZhbHVlKVxuXG4gICAgICAvLyB3aXRob3V0IHRoaXMgY29uZGl0aW9uLCBldmVyeSB0aW1lIGFuIGlucHV0IHZhbHVlIGNoYW5nZXMsIHRoZSBvdGhlciBvbmVzIHdpbGwgYmUgc2V0IHRvIDAgaWYgdGhleSB1c2VkIHRvIGJlIHVuZGVmaW5lZFxuICAgICAgLy8gaW5zdGVhZCBvZiBsZWF2aW5nIHRoZW0gZW1wdHkgKGFuZCBzaG93aW5nIHRoZSBwbGFjZWhvbGRlcilcbiAgICAgIGlmICh2YWx1ZS5nZXRUaW1lKCkgIT09IHRpbWU/LmdldFRpbWUoKSkge1xuICAgICAgICBzZXRGaWxsZWQoeyBoOiB0cnVlLCBtOiB0cnVlLCBzOiB0cnVlIH0pXG4gICAgICB9XG4gICAgfVxuICAgIC8vIG94bGludC1kaXNhYmxlIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbdmFsdWVdKVxuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZVBlcmlvZCA9IChrZXk6ICdhJyB8ICdwJykgPT4ge1xuICAgIGlmICghdGltZSkge1xuICAgICAgc2V0UGVyaW9kKGAke2tleX1tYClcbiAgICB9IGVsc2UgaWYgKGtleS50b0xvd2VyQ2FzZSgpID09PSAnYScpIHtcbiAgICAgIGlmICh0aW1lLmdldEhvdXJzKCkgPj0gMTIpIHtcbiAgICAgICAgY29uc3QgbmV3VGltZSA9IG5ldyBEYXRlKHRpbWUpXG4gICAgICAgIG5ld1RpbWUuc2V0SG91cnMobmV3VGltZS5nZXRIb3VycygpIC0gMTIpXG4gICAgICAgIHNldFRpbWUobmV3VGltZSlcbiAgICAgICAgb25DaGFuZ2U/LihuZXdUaW1lKVxuICAgICAgfVxuICAgICAgc2V0UGVyaW9kKCdhbScpXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aW1lLmdldEhvdXJzKCkgPCAxMikge1xuICAgICAgICBjb25zdCBuZXdUaW1lID0gbmV3IERhdGUodGltZSlcbiAgICAgICAgbmV3VGltZS5zZXRIb3VycyhuZXdUaW1lLmdldEhvdXJzKCkgKyAxMilcbiAgICAgICAgc2V0VGltZShuZXdUaW1lKVxuICAgICAgICBvbkNoYW5nZT8uKG5ld1RpbWUpXG4gICAgICB9XG4gICAgICBzZXRQZXJpb2QoJ3BtJylcbiAgICB9XG4gIH1cbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gKHR5cGU6ICdoJyB8ICdtJyB8ICdzJywga2V5OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBuZXdUaW1lID0gdGltZSA/IG5ldyBEYXRlKHRpbWUpIDogREVGQVVMVF9EQVRFXG4gICAgY29uc3QgdmFsdWVUb0NoYW5nZSA9IGdldFZhbHVlQnlUeXBlKHR5cGUsIHRpbWUpXG5cbiAgICBpZiAoY2FuQ29uY2F0KHZhbHVlVG9DaGFuZ2UsIHR5cGUsIGtleSwgdGltZUZvcm1hdCkpIHtcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gKHZhbHVlVG9DaGFuZ2UgJSAxMCkgKiAxMCArIGtleVxuXG4gICAgICBzZXRWYWx1ZUJ5VHlwZSh0eXBlLCBuZXdUaW1lLCBuZXdWYWx1ZSlcbiAgICB9IGVsc2Ugc2V0VmFsdWVCeVR5cGUodHlwZSwgbmV3VGltZSwga2V5KVxuXG4gICAgY29uc3QgbmV3VmFsdWUgPSBnZXRWYWx1ZUJ5VHlwZSh0eXBlLCBuZXdUaW1lKVxuICAgIC8vIEZvY3VzIHRvIG5leHQgaW5wdXQgaWYgdGhlIGN1cnJlbnQgaW5wdXQgaGFzIGEgdmFsaWQgdGltZVxuICAgIGlmICh0eXBlID09PSAncycgJiYgbmV3VGltZSAmJiBuZXdWYWx1ZSA+PSA3ICYmIHRpbWVGb3JtYXQgPT09IDEyKSB7XG4gICAgICByZWZQZXJpb2QuY3VycmVudD8uZm9jdXMoKVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ20nICYmIG5ld1RpbWUgJiYgbmV3VmFsdWUgPj0gNikge1xuICAgICAgcmVmU2Vjb25kcy5jdXJyZW50Py5mb2N1cygpXG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09ICdoJykge1xuICAgICAgaWYgKGlzQ29tcGxldGVIb3VyKHRpbWVGb3JtYXQsIG5ld1ZhbHVlKSkge1xuICAgICAgICByZWZNaW51dGVzLmN1cnJlbnQ/LmZvY3VzKClcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgbmV3RmlsbGVkID0geyAuLi5maWxsZWQgfVxuICAgIG5ld0ZpbGxlZFt0eXBlXSA9IHRydWVcblxuICAgIHNldFRpbWUobmV3VGltZSlcbiAgICBvbkNoYW5nZT8uKG5ld1RpbWUpXG5cbiAgICBzZXRGaWxsZWQobmV3RmlsbGVkKVxuICB9XG5cbiAgLy8gSW5jcmVhc2UgdGltZSB3aXRoIGFycm93IHVwXG4gIGNvbnN0IGhhbmRsZUluY3JlYXNlID0gKHR5cGU6ICdoJyB8ICdtJyB8ICdzJykgPT4ge1xuICAgIGNvbnN0IG5ld1RpbWUgPSB0aW1lID8gbmV3IERhdGUodGltZSkgOiBERUZBVUxUX0RBVEVcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBnZXRWYWx1ZUJ5VHlwZSh0eXBlLCBuZXdUaW1lKVxuICAgIGlmICh0eXBlID09PSAnaCcgJiYgdGltZUZvcm1hdCA9PT0gMjQpIHtcbiAgICAgIHNldFZhbHVlQnlUeXBlKHR5cGUsIG5ld1RpbWUsIGN1cnJlbnRWYWx1ZSA9PT0gMjMgPyAwIDogY3VycmVudFZhbHVlICsgMSlcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdoJyAmJiB0aW1lRm9ybWF0ID09PSAxMikge1xuICAgICAgc2V0VmFsdWVCeVR5cGUodHlwZSwgbmV3VGltZSwgY3VycmVudFZhbHVlID09PSAxMiA/IDEgOiBjdXJyZW50VmFsdWUgKyAxKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRWYWx1ZUJ5VHlwZSh0eXBlLCBuZXdUaW1lLCBjdXJyZW50VmFsdWUgPT09IDU5ID8gMCA6IGN1cnJlbnRWYWx1ZSArIDEpXG4gICAgfVxuICAgIGNvbnN0IG5ld0ZpbGxlZCA9IHsgLi4uZmlsbGVkIH1cbiAgICBuZXdGaWxsZWRbdHlwZV0gPSB0cnVlXG5cbiAgICBzZXRUaW1lKG5ld1RpbWUpXG4gICAgb25DaGFuZ2U/LihuZXdUaW1lKVxuICAgIHNldEZpbGxlZChuZXdGaWxsZWQpXG4gIH1cblxuICAvLyBEZWNyZWFzZSB0aW1lIHdpdGggYXJyb3cgZG93blxuICBjb25zdCBoYW5kbGVEZWNyZWFzZSA9ICh0eXBlOiAnaCcgfCAnbScgfCAncycpID0+IHtcbiAgICBjb25zdCBuZXdUaW1lID0gdGltZSA/IG5ldyBEYXRlKHRpbWUpIDogREVGQVVMVF9EQVRFXG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gZ2V0VmFsdWVCeVR5cGUodHlwZSwgbmV3VGltZSlcblxuICAgIGlmICh0eXBlID09PSAnaCcgJiYgdGltZUZvcm1hdCA9PT0gMjQpIHtcbiAgICAgIHNldFZhbHVlQnlUeXBlKHR5cGUsIG5ld1RpbWUsIGN1cnJlbnRWYWx1ZSA9PT0gMCA/IDIzIDogY3VycmVudFZhbHVlIC0gMSlcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdoJyAmJiB0aW1lRm9ybWF0ID09PSAxMikge1xuICAgICAgc2V0VmFsdWVCeVR5cGUodHlwZSwgbmV3VGltZSwgY3VycmVudFZhbHVlID09PSAxID8gMTIgOiBjdXJyZW50VmFsdWUgLSAxKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRWYWx1ZUJ5VHlwZSh0eXBlLCBuZXdUaW1lLCBjdXJyZW50VmFsdWUgPT09IDAgPyA1OSA6IGN1cnJlbnRWYWx1ZSAtIDEpXG4gICAgfVxuICAgIGNvbnN0IG5ld0ZpbGxlZCA9IHsgLi4uZmlsbGVkIH1cbiAgICBuZXdGaWxsZWRbdHlwZV0gPSB0cnVlXG5cbiAgICBzZXRUaW1lKG5ld1RpbWUpXG4gICAgb25DaGFuZ2U/LihuZXdUaW1lKVxuICAgIHNldEZpbGxlZChuZXdGaWxsZWQpXG4gIH1cblxuICAvLyBHbyB0byBuZXh0IGlucHV0XG4gIGNvbnN0IGhhbmRsZU5leHQgPSAodHlwZTogJ2gnIHwgJ20nIHwgJ3MnKSA9PiB7XG4gICAgaWYgKHR5cGUgPT09ICdoJykgcmVmTWludXRlcy5jdXJyZW50Py5mb2N1cygpXG4gICAgaWYgKHR5cGUgPT09ICdtJykgcmVmU2Vjb25kcy5jdXJyZW50Py5mb2N1cygpXG4gICAgaWYgKHR5cGUgPT09ICdzJyAmJiB0aW1lRm9ybWF0ID09PSAxMikgcmVmUGVyaW9kLmN1cnJlbnQ/LmZvY3VzKClcbiAgfVxuXG4gIC8vIEdvIHRvIHByZXZpb3VzIGlucHV0XG4gIGNvbnN0IGhhbmRsZVByZXZpb3VzID0gKHR5cGU6ICdoJyB8ICdtJyB8ICdzJykgPT4ge1xuICAgIGlmICh0eXBlID09PSAnbScpIHJlZkhvdXJzLmN1cnJlbnQ/LmZvY3VzKClcbiAgICBpZiAodHlwZSA9PT0gJ3MnKSByZWZNaW51dGVzLmN1cnJlbnQ/LmZvY3VzKClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFN0YWNrIGdhcD17MC41fSBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICB7bGFiZWwgfHwgbGFiZWxEZXNjcmlwdGlvbiA/IChcbiAgICAgICAgPExhYmVsXG4gICAgICAgICAgbGFiZWxEZXNjcmlwdGlvbj17bGFiZWxEZXNjcmlwdGlvbn1cbiAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICBodG1sRm9yPXtpZCA/PyBsb2NhbElkfVxuICAgICAgICA+XG4gICAgICAgICAge2xhYmVsfVxuICAgICAgICA8L0xhYmVsPlxuICAgICAgKSA6IG51bGx9XG4gICAgICA8VGltZUlucHV0V3JhcHBlclxuICAgICAgICBkYXRhLXJlYWRvbmx5PXtyZWFkT25seX1cbiAgICAgICAgZGF0YS1kaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIGRhdGEtc2l6ZT17c2l6ZX1cbiAgICAgICAgZGF0YS1lcnJvcj17ISFlcnJvcn1cbiAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgICBvbkZvY3VzPXtvbkZvY3VzfVxuICAgICAgICBhcmlhLXJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgICAgb25DbGljaz17KCkgPT4gcmVmSG91cnMuY3VycmVudD8uZm9jdXMoKX1cbiAgICAgICAgaWQ9e2lkfVxuICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgYXJpYS1sYWJlbD17YXJpYUxhYmVsfVxuICAgICAgPlxuICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAge1RJTUVfS0VZUy5tYXAodHlwZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb21wdXRlZFJlZiA9ICgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdoJykgcmV0dXJuIHJlZkhvdXJzXG4gICAgICAgICAgICAgIGlmICh0eXBlID09PSAnbScpIHJldHVybiByZWZNaW51dGVzXG5cbiAgICAgICAgICAgICAgcmV0dXJuIHJlZlNlY29uZHNcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGZ1bGxOYW1lID0gKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2gnKSByZXR1cm4gJ2hvdXJzJ1xuICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ20nKSByZXR1cm4gJ21pbnV0ZXMnXG5cbiAgICAgICAgICAgICAgcmV0dXJuICdzZWNvbmRzJ1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjb21wdXRlTWF4VmFsdWUgPSAoKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0eXBlID09PSAnaCcgJiYgdGltZUZvcm1hdCA9PT0gMTIpIHJldHVybiAxMlxuICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2gnICYmIHRpbWVGb3JtYXQgPT09IDI0KSByZXR1cm4gMjNcblxuICAgICAgICAgICAgICByZXR1cm4gNTlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPFN0YWNrIGtleT17dHlwZX0gZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17XG4gICAgICAgICAgICAgICAgICAgIGZpbGxlZFt0eXBlXVxuICAgICAgICAgICAgICAgICAgICAgID8gZm9ybWF0KGdldFZhbHVlQnlUeXBlKHR5cGUsIHRpbWUpLCB0eXBlLCB0aW1lRm9ybWF0KVxuICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlclt0eXBlXX1cbiAgICAgICAgICAgICAgICAgIGRhdGEtc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2FyaWFMYWJlbH1cbiAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtgJHtmdWxsTmFtZSgpfS1pbnB1dGB9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgcmVmPXtjb21wdXRlZFJlZigpfVxuICAgICAgICAgICAgICAgICAgcm9sZT1cInNwaW5idXR0b25cIlxuICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgYXJpYS12YWx1ZW1heD17Y29tcHV0ZU1heFZhbHVlKCl9XG4gICAgICAgICAgICAgICAgICBhcmlhLXZhbHVlbWluPXt0eXBlID09PSAnaCcgJiYgdGltZUZvcm1hdCA9PT0gMTIgPyAxIDogMH1cbiAgICAgICAgICAgICAgICAgIGFyaWEtdmFsdWVub3c9e1xuICAgICAgICAgICAgICAgICAgICBmaWxsZWRbdHlwZV1cbiAgICAgICAgICAgICAgICAgICAgICA/IE51bWJlci5wYXJzZUludChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KGdldFZhbHVlQnlUeXBlKHR5cGUsIHRpbWUpLCB0eXBlLCB0aW1lRm9ybWF0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVhZE9ubHkgJiYgIWRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gZ2V0TGFzdFR5cGVkQ2hhcihcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldFZhbHVlQnlUeXBlKHR5cGUsIHRpbWUpLFxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNOdW1iZXIoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlKHR5cGUsIE51bWJlci5wYXJzZUludChrZXksIDEwKSlcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbktleURvd249e2V2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZWFkT25seSAmJiAhZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUluY3JlYXNlKHR5cGUpXG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVEZWNyZWFzZSh0eXBlKVxuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dMZWZ0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlUHJldmlvdXModHlwZSlcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93UmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVOZXh0KHR5cGUpXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzPXthdXRvRm9jdXMgJiYgdHlwZSA9PT0gJ2gnfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAge3R5cGUgPT09ICdzJyA/IG51bGwgOiAoXG4gICAgICAgICAgICAgICAgICA8Q3VzdG9tVGV4dFxuICAgICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgIDwvQ3VzdG9tVGV4dD5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0pfVxuICAgICAgICAgIHt0aW1lRm9ybWF0ID09PSAxMiA/IChcbiAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICB2YWx1ZT17cGVyaW9kPy50b1VwcGVyQ2FzZSgpfVxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXIucGVyaW9kID8/ICdBTSd9XG4gICAgICAgICAgICAgIGRhdGEtc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgZGF0YS1wZXJpb2RcbiAgICAgICAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5fVxuICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2FyaWFMYWJlbH1cbiAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJhbS1wbS1pbnB1dFwiXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFyZWFkT25seSAmJiAhZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGV2ZW50LnRhcmdldC52YWx1ZS5zbGljZSgtMSlcbiAgICAgICAgICAgICAgICAgIGlmIChpc0FPclAoa2V5KSkgaGFuZGxlQ2hhbmdlUGVyaW9kKGtleSBhcyAnYScgfCAncCcpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBvbktleURvd249e2V2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXJlYWRPbmx5ICYmICFkaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2VQZXJpb2QocGVyaW9kID09PSAnYW0nID8gJ3AnIDogJ2EnKVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgcmVmU2Vjb25kcy5jdXJyZW50Py5mb2N1cygpXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICByZWY9e3JlZlBlcmlvZH1cbiAgICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4gZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCl9XG4gICAgICAgICAgICAgIHJvbGU9XCJzcGluYnV0dG9uXCJcbiAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBhcmlhLXZhbHVlbWF4PXsxMn1cbiAgICAgICAgICAgICAgYXJpYS12YWx1ZW1pbj17MH1cbiAgICAgICAgICAgICAgYXJpYS12YWx1ZW5vdz17cGVyaW9kID09PSAnYW0nID8gMCA6IDEyfVxuICAgICAgICAgICAgICBhcmlhLXZhbHVldGV4dD17cGVyaW9kfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9TdGFjaz5cbiAgICAgICAge2Vycm9yIHx8IGNsZWFyYWJsZSA/IChcbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiIGdhcD1cIjFcIj5cbiAgICAgICAgICAgIHtlcnJvciA/IDxBbGVydENpcmNsZUljb24gc2VudGltZW50PVwiZGFuZ2VyXCIgLz4gOiBudWxsfVxuICAgICAgICAgICAge2NsZWFyYWJsZSA/IChcbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJjbGVhciB2YWx1ZVwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkIHx8IHJlYWRPbmx5fVxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgICAgc2V0VGltZSh1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT8uKHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiY2xlYXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENsb3NlSWNvbiAvPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9UaW1lSW5wdXRXcmFwcGVyPlxuICAgICAge2hlbHBlciB8fCBlcnJvciA/IChcbiAgICAgICAgPFRleHRcbiAgICAgICAgICBhcz1cInBcIlxuICAgICAgICAgIHZhcmlhbnQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICBzZW50aW1lbnQ9e2Vycm9yID8gJ2RhbmdlcicgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgcHJvbWluZW5jZT17ZXJyb3IgPyAnZGVmYXVsdCcgOiAnd2Vhayd9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICA+XG4gICAgICAgICAge2Vycm9yIHx8IGhlbHBlcn1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgKSA6IG51bGx9XG4gICAgPC9TdGFjaz5cbiAgKVxufVxuIl19 */"));
62
+ const Input = /* @__PURE__ */ _styled__default.default("input", process.env.NODE_ENV === "production" ? {
63
+ target: "e1ewpo8m1"
64
+ } : {
65
+ target: "e1ewpo8m1",
66
+ label: "Input"
67
+ })("border:none;outline:none;background:transparent;font-size:", ({
68
+ theme
69
+ }) => theme.typography.bodySmall.fontSize, ";width:", ({
70
+ theme
71
+ }) => theme.sizing[312], ";height:", ({
72
+ theme
73
+ }) => theme.sizing[300], ";text-align:center;border-radius:", ({
74
+ theme
75
+ }) => theme.radii.default, ";color:", ({
76
+ theme
77
+ }) => theme.colors.neutral.text, ";caret-color:transparent;&[data-size='large']{font-size:", ({
78
+ theme
79
+ }) => theme.typography.body.fontSize, ";}&:not(:disabled):hover{background-color:", ({
80
+ theme
81
+ }) => theme.colors.neutral.backgroundHover, ";color:", ({
82
+ theme
83
+ }) => theme.colors.neutral.textWeak, ";}&:not(:disabled):active,:not(:disabled):focus{background-color:", ({
84
+ theme
85
+ }) => theme.colors.neutral.backgroundStrong, ";color:", ({
86
+ theme
87
+ }) => theme.colors.neutral.text, ';}&:read-only{cursor:default;}&:disabled{cursor:not-allowed;user-select:none;}&[data-period="true"]{color:', ({
88
+ theme
89
+ }) => theme.colors.neutral.textWeak, ';&[data-size="large"]{width:calc(', ({
90
+ theme
91
+ }) => `${theme.sizing["312"]} + ${theme.sizing["025"]}`, ");}}::-moz-selection{background:none;}::selection{background:none;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1RpbWVJbnB1dC9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMEdFIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1RpbWVJbnB1dC9pbmRleC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgeyBBbGVydENpcmNsZUljb24sIENsb3NlSWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucydcbmltcG9ydCB0eXBlIHsgRm9jdXNFdmVudCwgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZUlkLCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nXG5pbXBvcnQgeyBMYWJlbCB9IGZyb20gJy4uL0xhYmVsJ1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tICcuLi9TdGFjaydcbmltcG9ydCB7IFRleHQgfSBmcm9tICcuLi9UZXh0J1xuaW1wb3J0IHtcbiAgREVGQVVMVF9EQVRFLFxuICBERUZBVUxUX1BMQUNFSE9MREVSLFxuICBJTlBVVF9TSVpFX0hFSUdIVCxcbiAgVElNRV9LRVlTLFxufSBmcm9tICcuL2NvbnN0YW50cydcbmltcG9ydCB7XG4gIGNhbkNvbmNhdCxcbiAgZm9ybWF0LFxuICBnZXRMYXN0VHlwZWRDaGFyLFxuICBnZXRWYWx1ZUJ5VHlwZSxcbiAgaXNBT3JQLFxuICBpc0NvbXBsZXRlSG91cixcbiAgaXNOdW1iZXIsXG4gIHNldFZhbHVlQnlUeXBlLFxufSBmcm9tICcuL2hlbHBlcnMnXG5cbmV4cG9ydCB0eXBlIFRpbWUgPSB7XG4gIGg6IHN0cmluZ1xuICBtOiBzdHJpbmdcbiAgczogc3RyaW5nXG4gIHBlcmlvZD86IHN0cmluZ1xufVxuXG5jb25zdCBUaW1lSW5wdXRXcmFwcGVyID0gc3R5bGVkKFN0YWNrKTx7XG4gICdkYXRhLXJlYWRvbmx5JzogYm9vbGVhblxuICAnZGF0YS1kaXNhYmxlZCc6IGJvb2xlYW5cbiAgJ2RhdGEtc2l6ZSc6ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZSdcbiAgJ2RhdGEtZXJyb3InOiBib29sZWFuXG59PmBcbiAgZGlzcGxheTogZmxleDtcbiAgY3Vyc29yOiB0ZXh0O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWzFdfTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgYm9yZGVyOiAxcHggc29saWQgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5ib3JkZXJ9O1xuXG4gICY6bm90KFtkYXRhLWRpc2FibGVkPVwidHJ1ZVwiXSk6bm90KFtkYXRhLXJlYWRvbmx5PVwidHJ1ZVwiXSk6YWN0aXZlIHtcbiAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYm9yZGVySG92ZXJ9O1xuICAgIGJveC1zaGFkb3c6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc2hhZG93cy5mb2N1c1ByaW1hcnl9O1xuICB9XG5cbiAgJltkYXRhLWRpc2FibGVkPVwiZmFsc2VcIl06aG92ZXIsXG4gIFtkYXRhLWRpc2FibGVkPVwiZmFsc2VcIl06Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeS5ib3JkZXJIb3Zlcn07XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYm9yZGVySG92ZXJ9O1xuICB9XG5cbiAgJltkYXRhLXNpemU9J3NtYWxsJ10ge1xuICAgIGhlaWdodDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zaXppbmdbSU5QVVRfU0laRV9IRUlHSFQuc21hbGxdfTtcbiAgICBwYWRkaW5nLWxlZnQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbMV19O1xuICB9XG5cbiAgJltkYXRhLXNpemU9J21lZGl1bSddIHtcbiAgICBoZWlnaHQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc2l6aW5nW0lOUFVUX1NJWkVfSEVJR0hULm1lZGl1bV19O1xuICB9XG5cbiAgJltkYXRhLXNpemU9J2xhcmdlJ10ge1xuICAgIGhlaWdodDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zaXppbmdbSU5QVVRfU0laRV9IRUlHSFQubGFyZ2VdfTtcbiAgfVxuXG4gICZbZGF0YS1yZWFkb25seT0ndHJ1ZSddIHtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyfTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIH1cblxuICAmW2RhdGEtZGlzYWJsZWQ9J3RydWUnXSB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWR9O1xuICAgIGJvcmRlci1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5ib3JkZXJEaXNhYmxlZH07XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxuXG4gICZbZGF0YS1lcnJvcj0ndHJ1ZSddIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVyfTtcblxuICAgICY6bm90KFtkYXRhLWRpc2FibGVkPVwidHJ1ZVwiXSk6bm90KFtkYXRhLXJlYWRvbmx5PVwidHJ1ZVwiXSk6YWN0aXZlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlckhvdmVyfTtcbiAgICAgIGJveC1zaGFkb3c6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc2hhZG93cy5mb2N1c0Rhbmdlcn07XG4gICAgfVxuXG4gICAgJjpub3QoW2RhdGEtZGlzYWJsZWQ9XCJ0cnVlXCJdKTpub3QoW2RhdGEtcmVhZG9ubHk9XCJ0cnVlXCJdKTpob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJIb3Zlcn07XG4gICAgfVxuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBJbnB1dCA9IHN0eWxlZC5pbnB1dDx7XG4gICdkYXRhLXNpemUnOiAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnXG4gICdkYXRhLXBlcmlvZCc/OiBib29sZWFuXG59PmBcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnR5cG9ncmFwaHkuYm9keVNtYWxsLmZvbnRTaXplfTtcbiAgd2lkdGg6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc2l6aW5nWzMxMl19O1xuICBoZWlnaHQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc2l6aW5nWzMwMF19O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHR9O1xuICBjYXJldC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgJltkYXRhLXNpemU9J2xhcmdlJ10ge1xuICAgIGZvbnQtc2l6ZTogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS50eXBvZ3JhcGh5LmJvZHkuZm9udFNpemV9O1xuICB9XG5cbiAgJjpub3QoOmRpc2FibGVkKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrfTtcbiAgfVxuXG4gICY6bm90KDpkaXNhYmxlZCk6YWN0aXZlLFxuICA6bm90KDpkaXNhYmxlZCk6Zm9jdXN7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kU3Ryb25nfTtcbiAgICBjb2xvcjogICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dH07XG4gIH1cblxuICAmOnJlYWQtb25seSB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxuXG4gICZbZGF0YS1wZXJpb2Q9XCJ0cnVlXCJdIHtcbiAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha307XG5cbiAgICAmW2RhdGEtc2l6ZT1cImxhcmdlXCJdIHtcbiAgICAgIHdpZHRoOiBjYWxjKCR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc2l6aW5nWyczMTInXX0gKyAke3RoZW1lLnNpemluZ1snMDI1J119YH0pXG4gICAgfVxuXG4gIH1cblxuICA6Oi1tb3otc2VsZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG5cbiAgOjpzZWxlY3Rpb24ge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbmBcblxuY29uc3QgQ3VzdG9tVGV4dCA9IHN0eWxlZChUZXh0KWBcbnBhZGRpbmctaW5saW5lOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG50eXBlIFRpbWVJbnB1dFByb3BzID0ge1xuICBwbGFjZWhvbGRlcj86IFRpbWVcbiAgdmFsdWU/OiBEYXRlIHwgbnVsbFxuICBjbGVhcmFibGU/OiBib29sZWFuXG4gIHJlcXVpcmVkPzogYm9vbGVhblxuICBsYWJlbERlc2NyaXB0aW9uPzogUmVhY3ROb2RlXG4gIGhlbHBlcj86IFJlYWN0Tm9kZVxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgcmVhZE9ubHk/OiBib29sZWFuXG4gIGVycm9yPzogYm9vbGVhbiB8IHN0cmluZ1xuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBEYXRlIHwgdW5kZWZpbmVkLCB2YWx1ZVBlcmlvZD86IHN0cmluZykgPT4gdm9pZFxuICBvbkJsdXI/OiAoZXZlbnQ6IEZvY3VzRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHZvaWRcbiAgb25Gb2N1cz86IChldmVudDogRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZFxuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgaWQ/OiBzdHJpbmdcbiAgc2l6ZT86ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZSdcbiAgdGltZUZvcm1hdD86IDEyIHwgMjRcbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgZm9jdXMgb24gdGhlIGVsZW1lbnQgb24gcmVuZGVyLiBBdXRvZm9jdXMgaXMgYXBwbGllZCB0byB0aGUgaG91ciBpbnB1dFxuICAgKi9cbiAgYXV0b0ZvY3VzPzogYm9vbGVhblxufSAmIChcbiAgfCB7XG4gICAgICBsYWJlbD86IHN0cmluZ1xuICAgICAgJ2FyaWEtbGFiZWwnPzogbmV2ZXJcbiAgICB9XG4gIHwge1xuICAgICAgbGFiZWw/OiBuZXZlclxuICAgICAgJ2FyaWEtbGFiZWwnOiBzdHJpbmdcbiAgICB9XG4pXG5cbi8qKlxuICogQSB0aW1lIGlucHV0IGNvbXBvbmVudCB0aGF0IGFsbG93cyB1c2VycyB0byB0eXBlIGEgdGltZSBpbiBhIDI0IG9yIDEyLWhvdXIgZm9ybWF0LlxuICogQGV4cGVyaW1lbnRhbCBUaGlzIGNvbXBvbmVudCBpcyBleHBlcmltZW50YWwgYW5kIG1heSBiZSBzdWJqZWN0IHRvIGJyZWFraW5nIGNoYW5nZXMgaW4gdGhlIGZ1dHVyZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFRpbWVJbnB1dCA9ICh7XG4gIGxhYmVsLFxuICB0aW1lRm9ybWF0ID0gMjQsXG4gIHZhbHVlLFxuICBjbGVhcmFibGUsXG4gIHJlcXVpcmVkLFxuICBsYWJlbERlc2NyaXB0aW9uLFxuICBoZWxwZXIsXG4gIHNpemUgPSAnbGFyZ2UnLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICByZWFkT25seSA9IGZhbHNlLFxuICBlcnJvciA9IGZhbHNlLFxuICBvbkNoYW5nZSxcbiAgb25CbHVyLFxuICBvbkZvY3VzLFxuICBjbGFzc05hbWUsXG4gIGlkLFxuICBhdXRvRm9jdXMsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIHBsYWNlaG9sZGVyID0gREVGQVVMVF9QTEFDRUhPTERFUixcbiAgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsXG59OiBUaW1lSW5wdXRQcm9wcykgPT4ge1xuICBjb25zdCBsb2NhbElkID0gdXNlSWQoKVxuICBjb25zdCBkZWZhdWx0UGVyaW9kID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHZhbHVlKSByZXR1cm4gdmFsdWUuZ2V0SG91cnMoKSA+PSAxMiA/ICdwbScgOiAnYW0nXG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH0sIFt2YWx1ZV0pXG5cbiAgY29uc3QgW3RpbWUsIHNldFRpbWVdID0gdXNlU3RhdGUodmFsdWUpXG4gIGNvbnN0IFtwZXJpb2QsIHNldFBlcmlvZF0gPSB1c2VTdGF0ZTwncG0nIHwgJ2FtJyB8IHVuZGVmaW5lZD4oZGVmYXVsdFBlcmlvZClcbiAgY29uc3QgW2ZpbGxlZCwgc2V0RmlsbGVkXSA9IHVzZVN0YXRlKFxuICAgIHZhbHVlID8geyBoOiB0cnVlLCBtOiB0cnVlLCBzOiB0cnVlIH0gOiB7IGg6IGZhbHNlLCBtOiBmYWxzZSwgczogZmFsc2UgfSxcbiAgKSAvLyB0byBub3Qgc2hvdyAwMCB3aGVuIHRoZXJlIHNob3VsZCBiZSBhIHBsYWNlaG9sZGVyXG5cbiAgY29uc3QgcmVmSG91cnMgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbClcbiAgY29uc3QgcmVmU2Vjb25kcyA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKVxuICBjb25zdCByZWZNaW51dGVzID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHJlZlBlcmlvZCA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBzZXRUaW1lKHZhbHVlKVxuXG4gICAgICAvLyB3aXRob3V0IHRoaXMgY29uZGl0aW9uLCBldmVyeSB0aW1lIGFuIGlucHV0IHZhbHVlIGNoYW5nZXMsIHRoZSBvdGhlciBvbmVzIHdpbGwgYmUgc2V0IHRvIDAgaWYgdGhleSB1c2VkIHRvIGJlIHVuZGVmaW5lZFxuICAgICAgLy8gaW5zdGVhZCBvZiBsZWF2aW5nIHRoZW0gZW1wdHkgKGFuZCBzaG93aW5nIHRoZSBwbGFjZWhvbGRlcilcbiAgICAgIGlmICh2YWx1ZS5nZXRUaW1lKCkgIT09IHRpbWU/LmdldFRpbWUoKSkge1xuICAgICAgICBzZXRGaWxsZWQoeyBoOiB0cnVlLCBtOiB0cnVlLCBzOiB0cnVlIH0pXG4gICAgICB9XG4gICAgfVxuICAgIC8vIG94bGludC1kaXNhYmxlIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbdmFsdWVdKVxuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZVBlcmlvZCA9IChrZXk6ICdhJyB8ICdwJykgPT4ge1xuICAgIGlmICghdGltZSkge1xuICAgICAgc2V0UGVyaW9kKGAke2tleX1tYClcbiAgICB9IGVsc2UgaWYgKGtleS50b0xvd2VyQ2FzZSgpID09PSAnYScpIHtcbiAgICAgIGlmICh0aW1lLmdldEhvdXJzKCkgPj0gMTIpIHtcbiAgICAgICAgY29uc3QgbmV3VGltZSA9IG5ldyBEYXRlKHRpbWUpXG4gICAgICAgIG5ld1RpbWUuc2V0SG91cnMobmV3VGltZS5nZXRIb3VycygpIC0gMTIpXG4gICAgICAgIHNldFRpbWUobmV3VGltZSlcbiAgICAgICAgb25DaGFuZ2U/LihuZXdUaW1lKVxuICAgICAgfVxuICAgICAgc2V0UGVyaW9kKCdhbScpXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aW1lLmdldEhvdXJzKCkgPCAxMikge1xuICAgICAgICBjb25zdCBuZXdUaW1lID0gbmV3IERhdGUodGltZSlcbiAgICAgICAgbmV3VGltZS5zZXRIb3VycyhuZXdUaW1lLmdldEhvdXJzKCkgKyAxMilcbiAgICAgICAgc2V0VGltZShuZXdUaW1lKVxuICAgICAgICBvbkNoYW5nZT8uKG5ld1RpbWUpXG4gICAgICB9XG4gICAgICBzZXRQZXJpb2QoJ3BtJylcbiAgICB9XG4gIH1cbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gKHR5cGU6ICdoJyB8ICdtJyB8ICdzJywga2V5OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBuZXdUaW1lID0gdGltZSA/IG5ldyBEYXRlKHRpbWUpIDogREVGQVVMVF9EQVRFXG4gICAgY29uc3QgdmFsdWVUb0NoYW5nZSA9IGdldFZhbHVlQnlUeXBlKHR5cGUsIHRpbWUpXG5cbiAgICBpZiAoY2FuQ29uY2F0KHZhbHVlVG9DaGFuZ2UsIHR5cGUsIGtleSwgdGltZUZvcm1hdCkpIHtcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gKHZhbHVlVG9DaGFuZ2UgJSAxMCkgKiAxMCArIGtleVxuXG4gICAgICBzZXRWYWx1ZUJ5VHlwZSh0eXBlLCBuZXdUaW1lLCBuZXdWYWx1ZSlcbiAgICB9IGVsc2Ugc2V0VmFsdWVCeVR5cGUodHlwZSwgbmV3VGltZSwga2V5KVxuXG4gICAgY29uc3QgbmV3VmFsdWUgPSBnZXRWYWx1ZUJ5VHlwZSh0eXBlLCBuZXdUaW1lKVxuICAgIC8vIEZvY3VzIHRvIG5leHQgaW5wdXQgaWYgdGhlIGN1cnJlbnQgaW5wdXQgaGFzIGEgdmFsaWQgdGltZVxuICAgIGlmICh0eXBlID09PSAncycgJiYgbmV3VGltZSAmJiBuZXdWYWx1ZSA+PSA3ICYmIHRpbWVGb3JtYXQgPT09IDEyKSB7XG4gICAgICByZWZQZXJpb2QuY3VycmVudD8uZm9jdXMoKVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ20nICYmIG5ld1RpbWUgJiYgbmV3VmFsdWUgPj0gNikge1xuICAgICAgcmVmU2Vjb25kcy5jdXJyZW50Py5mb2N1cygpXG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09ICdoJykge1xuICAgICAgaWYgKGlzQ29tcGxldGVIb3VyKHRpbWVGb3JtYXQsIG5ld1ZhbHVlKSkge1xuICAgICAgICByZWZNaW51dGVzLmN1cnJlbnQ/LmZvY3VzKClcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgbmV3RmlsbGVkID0geyAuLi5maWxsZWQgfVxuICAgIG5ld0ZpbGxlZFt0eXBlXSA9IHRydWVcblxuICAgIHNldFRpbWUobmV3VGltZSlcbiAgICBvbkNoYW5nZT8uKG5ld1RpbWUpXG5cbiAgICBzZXRGaWxsZWQobmV3RmlsbGVkKVxuICB9XG5cbiAgLy8gSW5jcmVhc2UgdGltZSB3aXRoIGFycm93IHVwXG4gIGNvbnN0IGhhbmRsZUluY3JlYXNlID0gKHR5cGU6ICdoJyB8ICdtJyB8ICdzJykgPT4ge1xuICAgIGNvbnN0IG5ld1RpbWUgPSB0aW1lID8gbmV3IERhdGUodGltZSkgOiBERUZBVUxUX0RBVEVcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBnZXRWYWx1ZUJ5VHlwZSh0eXBlLCBuZXdUaW1lKVxuICAgIGlmICh0eXBlID09PSAnaCcgJiYgdGltZUZvcm1hdCA9PT0gMjQpIHtcbiAgICAgIHNldFZhbHVlQnlUeXBlKHR5cGUsIG5ld1RpbWUsIGN1cnJlbnRWYWx1ZSA9PT0gMjMgPyAwIDogY3VycmVudFZhbHVlICsgMSlcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdoJyAmJiB0aW1lRm9ybWF0ID09PSAxMikge1xuICAgICAgc2V0VmFsdWVCeVR5cGUodHlwZSwgbmV3VGltZSwgY3VycmVudFZhbHVlID09PSAxMiA/IDEgOiBjdXJyZW50VmFsdWUgKyAxKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRWYWx1ZUJ5VHlwZSh0eXBlLCBuZXdUaW1lLCBjdXJyZW50VmFsdWUgPT09IDU5ID8gMCA6IGN1cnJlbnRWYWx1ZSArIDEpXG4gICAgfVxuICAgIGNvbnN0IG5ld0ZpbGxlZCA9IHsgLi4uZmlsbGVkIH1cbiAgICBuZXdGaWxsZWRbdHlwZV0gPSB0cnVlXG5cbiAgICBzZXRUaW1lKG5ld1RpbWUpXG4gICAgb25DaGFuZ2U/LihuZXdUaW1lKVxuICAgIHNldEZpbGxlZChuZXdGaWxsZWQpXG4gIH1cblxuICAvLyBEZWNyZWFzZSB0aW1lIHdpdGggYXJyb3cgZG93blxuICBjb25zdCBoYW5kbGVEZWNyZWFzZSA9ICh0eXBlOiAnaCcgfCAnbScgfCAncycpID0+IHtcbiAgICBjb25zdCBuZXdUaW1lID0gdGltZSA/IG5ldyBEYXRlKHRpbWUpIDogREVGQVVMVF9EQVRFXG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gZ2V0VmFsdWVCeVR5cGUodHlwZSwgbmV3VGltZSlcblxuICAgIGlmICh0eXBlID09PSAnaCcgJiYgdGltZUZvcm1hdCA9PT0gMjQpIHtcbiAgICAgIHNldFZhbHVlQnlUeXBlKHR5cGUsIG5ld1RpbWUsIGN1cnJlbnRWYWx1ZSA9PT0gMCA/IDIzIDogY3VycmVudFZhbHVlIC0gMSlcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdoJyAmJiB0aW1lRm9ybWF0ID09PSAxMikge1xuICAgICAgc2V0VmFsdWVCeVR5cGUodHlwZSwgbmV3VGltZSwgY3VycmVudFZhbHVlID09PSAxID8gMTIgOiBjdXJyZW50VmFsdWUgLSAxKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRWYWx1ZUJ5VHlwZSh0eXBlLCBuZXdUaW1lLCBjdXJyZW50VmFsdWUgPT09IDAgPyA1OSA6IGN1cnJlbnRWYWx1ZSAtIDEpXG4gICAgfVxuICAgIGNvbnN0IG5ld0ZpbGxlZCA9IHsgLi4uZmlsbGVkIH1cbiAgICBuZXdGaWxsZWRbdHlwZV0gPSB0cnVlXG5cbiAgICBzZXRUaW1lKG5ld1RpbWUpXG4gICAgb25DaGFuZ2U/LihuZXdUaW1lKVxuICAgIHNldEZpbGxlZChuZXdGaWxsZWQpXG4gIH1cblxuICAvLyBHbyB0byBuZXh0IGlucHV0XG4gIGNvbnN0IGhhbmRsZU5leHQgPSAodHlwZTogJ2gnIHwgJ20nIHwgJ3MnKSA9PiB7XG4gICAgaWYgKHR5cGUgPT09ICdoJykgcmVmTWludXRlcy5jdXJyZW50Py5mb2N1cygpXG4gICAgaWYgKHR5cGUgPT09ICdtJykgcmVmU2Vjb25kcy5jdXJyZW50Py5mb2N1cygpXG4gICAgaWYgKHR5cGUgPT09ICdzJyAmJiB0aW1lRm9ybWF0ID09PSAxMikgcmVmUGVyaW9kLmN1cnJlbnQ/LmZvY3VzKClcbiAgfVxuXG4gIC8vIEdvIHRvIHByZXZpb3VzIGlucHV0XG4gIGNvbnN0IGhhbmRsZVByZXZpb3VzID0gKHR5cGU6ICdoJyB8ICdtJyB8ICdzJykgPT4ge1xuICAgIGlmICh0eXBlID09PSAnbScpIHJlZkhvdXJzLmN1cnJlbnQ/LmZvY3VzKClcbiAgICBpZiAodHlwZSA9PT0gJ3MnKSByZWZNaW51dGVzLmN1cnJlbnQ/LmZvY3VzKClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFN0YWNrIGdhcD17MC41fSBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICB7bGFiZWwgfHwgbGFiZWxEZXNjcmlwdGlvbiA/IChcbiAgICAgICAgPExhYmVsXG4gICAgICAgICAgbGFiZWxEZXNjcmlwdGlvbj17bGFiZWxEZXNjcmlwdGlvbn1cbiAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICBodG1sRm9yPXtpZCA/PyBsb2NhbElkfVxuICAgICAgICA+XG4gICAgICAgICAge2xhYmVsfVxuICAgICAgICA8L0xhYmVsPlxuICAgICAgKSA6IG51bGx9XG4gICAgICA8VGltZUlucHV0V3JhcHBlclxuICAgICAgICBkYXRhLXJlYWRvbmx5PXtyZWFkT25seX1cbiAgICAgICAgZGF0YS1kaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIGRhdGEtc2l6ZT17c2l6ZX1cbiAgICAgICAgZGF0YS1lcnJvcj17ISFlcnJvcn1cbiAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgICBvbkZvY3VzPXtvbkZvY3VzfVxuICAgICAgICBhcmlhLXJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgICAgb25DbGljaz17KCkgPT4gcmVmSG91cnMuY3VycmVudD8uZm9jdXMoKX1cbiAgICAgICAgaWQ9e2lkfVxuICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgYXJpYS1sYWJlbD17YXJpYUxhYmVsfVxuICAgICAgPlxuICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAge1RJTUVfS0VZUy5tYXAodHlwZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb21wdXRlZFJlZiA9ICgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdoJykgcmV0dXJuIHJlZkhvdXJzXG4gICAgICAgICAgICAgIGlmICh0eXBlID09PSAnbScpIHJldHVybiByZWZNaW51dGVzXG5cbiAgICAgICAgICAgICAgcmV0dXJuIHJlZlNlY29uZHNcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGZ1bGxOYW1lID0gKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2gnKSByZXR1cm4gJ2hvdXJzJ1xuICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ20nKSByZXR1cm4gJ21pbnV0ZXMnXG5cbiAgICAgICAgICAgICAgcmV0dXJuICdzZWNvbmRzJ1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjb21wdXRlTWF4VmFsdWUgPSAoKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0eXBlID09PSAnaCcgJiYgdGltZUZvcm1hdCA9PT0gMTIpIHJldHVybiAxMlxuICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2gnICYmIHRpbWVGb3JtYXQgPT09IDI0KSByZXR1cm4gMjNcblxuICAgICAgICAgICAgICByZXR1cm4gNTlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPFN0YWNrIGtleT17dHlwZX0gZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17XG4gICAgICAgICAgICAgICAgICAgIGZpbGxlZFt0eXBlXVxuICAgICAgICAgICAgICAgICAgICAgID8gZm9ybWF0KGdldFZhbHVlQnlUeXBlKHR5cGUsIHRpbWUpLCB0eXBlLCB0aW1lRm9ybWF0KVxuICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlclt0eXBlXX1cbiAgICAgICAgICAgICAgICAgIGRhdGEtc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2FyaWFMYWJlbH1cbiAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtgJHtmdWxsTmFtZSgpfS1pbnB1dGB9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgcmVmPXtjb21wdXRlZFJlZigpfVxuICAgICAgICAgICAgICAgICAgcm9sZT1cInNwaW5idXR0b25cIlxuICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgYXJpYS12YWx1ZW1heD17Y29tcHV0ZU1heFZhbHVlKCl9XG4gICAgICAgICAgICAgICAgICBhcmlhLXZhbHVlbWluPXt0eXBlID09PSAnaCcgJiYgdGltZUZvcm1hdCA9PT0gMTIgPyAxIDogMH1cbiAgICAgICAgICAgICAgICAgIGFyaWEtdmFsdWVub3c9e1xuICAgICAgICAgICAgICAgICAgICBmaWxsZWRbdHlwZV1cbiAgICAgICAgICAgICAgICAgICAgICA/IE51bWJlci5wYXJzZUludChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KGdldFZhbHVlQnlUeXBlKHR5cGUsIHRpbWUpLCB0eXBlLCB0aW1lRm9ybWF0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVhZE9ubHkgJiYgIWRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gZ2V0TGFzdFR5cGVkQ2hhcihcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldFZhbHVlQnlUeXBlKHR5cGUsIHRpbWUpLFxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNOdW1iZXIoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlKHR5cGUsIE51bWJlci5wYXJzZUludChrZXksIDEwKSlcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbktleURvd249e2V2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZWFkT25seSAmJiAhZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUluY3JlYXNlKHR5cGUpXG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVEZWNyZWFzZSh0eXBlKVxuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dMZWZ0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlUHJldmlvdXModHlwZSlcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93UmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVOZXh0KHR5cGUpXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzPXthdXRvRm9jdXMgJiYgdHlwZSA9PT0gJ2gnfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAge3R5cGUgPT09ICdzJyA/IG51bGwgOiAoXG4gICAgICAgICAgICAgICAgICA8Q3VzdG9tVGV4dFxuICAgICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgIDwvQ3VzdG9tVGV4dD5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0pfVxuICAgICAgICAgIHt0aW1lRm9ybWF0ID09PSAxMiA/IChcbiAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICB2YWx1ZT17cGVyaW9kPy50b1VwcGVyQ2FzZSgpfVxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXIucGVyaW9kID8/ICdBTSd9XG4gICAgICAgICAgICAgIGRhdGEtc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgZGF0YS1wZXJpb2RcbiAgICAgICAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5fVxuICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2FyaWFMYWJlbH1cbiAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJhbS1wbS1pbnB1dFwiXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFyZWFkT25seSAmJiAhZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGV2ZW50LnRhcmdldC52YWx1ZS5zbGljZSgtMSlcbiAgICAgICAgICAgICAgICAgIGlmIChpc0FPclAoa2V5KSkgaGFuZGxlQ2hhbmdlUGVyaW9kKGtleSBhcyAnYScgfCAncCcpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBvbktleURvd249e2V2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXJlYWRPbmx5ICYmICFkaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2VQZXJpb2QocGVyaW9kID09PSAnYW0nID8gJ3AnIDogJ2EnKVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgcmVmU2Vjb25kcy5jdXJyZW50Py5mb2N1cygpXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICByZWY9e3JlZlBlcmlvZH1cbiAgICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4gZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCl9XG4gICAgICAgICAgICAgIHJvbGU9XCJzcGluYnV0dG9uXCJcbiAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBhcmlhLXZhbHVlbWF4PXsxMn1cbiAgICAgICAgICAgICAgYXJpYS12YWx1ZW1pbj17MH1cbiAgICAgICAgICAgICAgYXJpYS12YWx1ZW5vdz17cGVyaW9kID09PSAnYW0nID8gMCA6IDEyfVxuICAgICAgICAgICAgICBhcmlhLXZhbHVldGV4dD17cGVyaW9kfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9TdGFjaz5cbiAgICAgICAge2Vycm9yIHx8IGNsZWFyYWJsZSA/IChcbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiIGdhcD1cIjFcIj5cbiAgICAgICAgICAgIHtlcnJvciA/IDxBbGVydENpcmNsZUljb24gc2VudGltZW50PVwiZGFuZ2VyXCIgLz4gOiBudWxsfVxuICAgICAgICAgICAge2NsZWFyYWJsZSA/IChcbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJjbGVhciB2YWx1ZVwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkIHx8IHJlYWRPbmx5fVxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgICAgc2V0VGltZSh1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT8uKHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiY2xlYXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENsb3NlSWNvbiAvPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9UaW1lSW5wdXRXcmFwcGVyPlxuICAgICAge2hlbHBlciB8fCBlcnJvciA/IChcbiAgICAgICAgPFRleHRcbiAgICAgICAgICBhcz1cInBcIlxuICAgICAgICAgIHZhcmlhbnQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICBzZW50aW1lbnQ9e2Vycm9yID8gJ2RhbmdlcicgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgcHJvbWluZW5jZT17ZXJyb3IgPyAnZGVmYXVsdCcgOiAnd2Vhayd9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICA+XG4gICAgICAgICAge2Vycm9yIHx8IGhlbHBlcn1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgKSA6IG51bGx9XG4gICAgPC9TdGFjaz5cbiAgKVxufVxuIl19 */"));
92
+ const CustomText = /* @__PURE__ */ _styled__default.default(index$3.Text, process.env.NODE_ENV === "production" ? {
93
+ target: "e1ewpo8m0"
94
+ } : {
95
+ target: "e1ewpo8m0",
96
+ label: "CustomText"
97
+ })("padding-inline:", ({
98
+ theme
99
+ }) => theme.space["0.25"], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1RpbWVJbnB1dC9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0srQiIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay91bHRyYXZpb2xldC91bHRyYXZpb2xldC9wYWNrYWdlcy91aS9zcmMvY29tcG9uZW50cy9UaW1lSW5wdXQvaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQWxlcnRDaXJjbGVJY29uLCBDbG9zZUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgdHlwZSB7IEZvY3VzRXZlbnQsIFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VJZCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uJ1xuaW1wb3J0IHsgTGFiZWwgfSBmcm9tICcuLi9MYWJlbCdcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSAnLi4vU3RhY2snXG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi4vVGV4dCdcbmltcG9ydCB7XG4gIERFRkFVTFRfREFURSxcbiAgREVGQVVMVF9QTEFDRUhPTERFUixcbiAgSU5QVVRfU0laRV9IRUlHSFQsXG4gIFRJTUVfS0VZUyxcbn0gZnJvbSAnLi9jb25zdGFudHMnXG5pbXBvcnQge1xuICBjYW5Db25jYXQsXG4gIGZvcm1hdCxcbiAgZ2V0TGFzdFR5cGVkQ2hhcixcbiAgZ2V0VmFsdWVCeVR5cGUsXG4gIGlzQU9yUCxcbiAgaXNDb21wbGV0ZUhvdXIsXG4gIGlzTnVtYmVyLFxuICBzZXRWYWx1ZUJ5VHlwZSxcbn0gZnJvbSAnLi9oZWxwZXJzJ1xuXG5leHBvcnQgdHlwZSBUaW1lID0ge1xuICBoOiBzdHJpbmdcbiAgbTogc3RyaW5nXG4gIHM6IHN0cmluZ1xuICBwZXJpb2Q/OiBzdHJpbmdcbn1cblxuY29uc3QgVGltZUlucHV0V3JhcHBlciA9IHN0eWxlZChTdGFjayk8e1xuICAnZGF0YS1yZWFkb25seSc6IGJvb2xlYW5cbiAgJ2RhdGEtZGlzYWJsZWQnOiBib29sZWFuXG4gICdkYXRhLXNpemUnOiAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnXG4gICdkYXRhLWVycm9yJzogYm9vbGVhblxufT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGN1cnNvcjogdGV4dDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsxXX07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZH07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gIGJvcmRlcjogMXB4IHNvbGlkICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyfTtcblxuICAmOm5vdChbZGF0YS1kaXNhYmxlZD1cInRydWVcIl0pOm5vdChbZGF0YS1yZWFkb25seT1cInRydWVcIl0pOmFjdGl2ZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlckhvdmVyfTtcbiAgICBib3gtc2hhZG93OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNoYWRvd3MuZm9jdXNQcmltYXJ5fTtcbiAgfVxuXG4gICZbZGF0YS1kaXNhYmxlZD1cImZhbHNlXCJdOmhvdmVyLFxuICBbZGF0YS1kaXNhYmxlZD1cImZhbHNlXCJdOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYm9yZGVySG92ZXJ9O1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cblxuICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgYm9yZGVyLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlckhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1zaXplPSdzbWFsbCddIHtcbiAgICBoZWlnaHQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc2l6aW5nW0lOUFVUX1NJWkVfSEVJR0hULnNtYWxsXX07XG4gICAgcGFkZGluZy1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWzFdfTtcbiAgfVxuXG4gICZbZGF0YS1zaXplPSdtZWRpdW0nXSB7XG4gICAgaGVpZ2h0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNpemluZ1tJTlBVVF9TSVpFX0hFSUdIVC5tZWRpdW1dfTtcbiAgfVxuXG4gICZbZGF0YS1zaXplPSdsYXJnZSddIHtcbiAgICBoZWlnaHQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc2l6aW5nW0lOUFVUX1NJWkVfSEVJR0hULmxhcmdlXX07XG4gIH1cblxuICAmW2RhdGEtcmVhZG9ubHk9J3RydWUnXSB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gICAgYm9yZGVyLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcn07XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG5cbiAgJltkYXRhLWRpc2FibGVkPSd0cnVlJ10ge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkfTtcbiAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyRGlzYWJsZWR9O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIH1cblxuICAmW2RhdGEtZXJyb3I9J3RydWUnXSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlcn07XG5cbiAgICAmOm5vdChbZGF0YS1kaXNhYmxlZD1cInRydWVcIl0pOm5vdChbZGF0YS1yZWFkb25seT1cInRydWVcIl0pOmFjdGl2ZSB7XG4gICAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJIb3Zlcn07XG4gICAgICBib3gtc2hhZG93OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNoYWRvd3MuZm9jdXNEYW5nZXJ9O1xuICAgIH1cblxuICAgICY6bm90KFtkYXRhLWRpc2FibGVkPVwidHJ1ZVwiXSk6bm90KFtkYXRhLXJlYWRvbmx5PVwidHJ1ZVwiXSk6aG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVySG92ZXJ9O1xuICAgIH1cbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgSW5wdXQgPSBzdHlsZWQuaW5wdXQ8e1xuICAnZGF0YS1zaXplJzogJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJ1xuICAnZGF0YS1wZXJpb2QnPzogYm9vbGVhblxufT5gXG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtc2l6ZTogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS50eXBvZ3JhcGh5LmJvZHlTbWFsbC5mb250U2l6ZX07XG4gIHdpZHRoOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNpemluZ1szMTJdfTtcbiAgaGVpZ2h0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNpemluZ1szMDBdfTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0fTtcbiAgY2FyZXQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICZbZGF0YS1zaXplPSdsYXJnZSddIHtcbiAgICBmb250LXNpemU6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUudHlwb2dyYXBoeS5ib2R5LmZvbnRTaXplfTtcbiAgfVxuXG4gICY6bm90KDpkaXNhYmxlZCk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha307XG4gIH1cblxuICAmOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZSxcbiAgOm5vdCg6ZGlzYWJsZWQpOmZvY3Vze1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFN0cm9uZ307XG4gICAgY29sb3I6ICAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHR9O1xuICB9XG5cbiAgJjpyZWFkLW9ubHkge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIH1cblxuICAmW2RhdGEtcGVyaW9kPVwidHJ1ZVwiXSB7XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWt9O1xuXG4gICAgJltkYXRhLXNpemU9XCJsYXJnZVwiXSB7XG4gICAgICB3aWR0aDogY2FsYygkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNpemluZ1snMzEyJ119ICsgJHt0aGVtZS5zaXppbmdbJzAyNSddfWB9KVxuICAgIH1cblxuICB9XG5cbiAgOjotbW96LXNlbGVjdGlvbiB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxuXG4gIDo6c2VsZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG5gXG5cbmNvbnN0IEN1c3RvbVRleHQgPSBzdHlsZWQoVGV4dClgXG5wYWRkaW5nLWlubGluZTogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxudHlwZSBUaW1lSW5wdXRQcm9wcyA9IHtcbiAgcGxhY2Vob2xkZXI/OiBUaW1lXG4gIHZhbHVlPzogRGF0ZSB8IG51bGxcbiAgY2xlYXJhYmxlPzogYm9vbGVhblxuICByZXF1aXJlZD86IGJvb2xlYW5cbiAgbGFiZWxEZXNjcmlwdGlvbj86IFJlYWN0Tm9kZVxuICBoZWxwZXI/OiBSZWFjdE5vZGVcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIHJlYWRPbmx5PzogYm9vbGVhblxuICBlcnJvcj86IGJvb2xlYW4gfCBzdHJpbmdcbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICBvbkNoYW5nZT86ICh2YWx1ZTogRGF0ZSB8IHVuZGVmaW5lZCwgdmFsdWVQZXJpb2Q/OiBzdHJpbmcpID0+IHZvaWRcbiAgb25CbHVyPzogKGV2ZW50OiBGb2N1c0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB2b2lkXG4gIG9uRm9jdXM/OiAoZXZlbnQ6IEZvY3VzRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHZvaWRcbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIGlkPzogc3RyaW5nXG4gIHNpemU/OiAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnXG4gIHRpbWVGb3JtYXQ/OiAxMiB8IDI0XG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IGZvY3VzIG9uIHRoZSBlbGVtZW50IG9uIHJlbmRlci4gQXV0b2ZvY3VzIGlzIGFwcGxpZWQgdG8gdGhlIGhvdXIgaW5wdXRcbiAgICovXG4gIGF1dG9Gb2N1cz86IGJvb2xlYW5cbn0gJiAoXG4gIHwge1xuICAgICAgbGFiZWw/OiBzdHJpbmdcbiAgICAgICdhcmlhLWxhYmVsJz86IG5ldmVyXG4gICAgfVxuICB8IHtcbiAgICAgIGxhYmVsPzogbmV2ZXJcbiAgICAgICdhcmlhLWxhYmVsJzogc3RyaW5nXG4gICAgfVxuKVxuXG4vKipcbiAqIEEgdGltZSBpbnB1dCBjb21wb25lbnQgdGhhdCBhbGxvd3MgdXNlcnMgdG8gdHlwZSBhIHRpbWUgaW4gYSAyNCBvciAxMi1ob3VyIGZvcm1hdC5cbiAqIEBleHBlcmltZW50YWwgVGhpcyBjb21wb25lbnQgaXMgZXhwZXJpbWVudGFsIGFuZCBtYXkgYmUgc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzIGluIHRoZSBmdXR1cmUuXG4gKi9cbmV4cG9ydCBjb25zdCBUaW1lSW5wdXQgPSAoe1xuICBsYWJlbCxcbiAgdGltZUZvcm1hdCA9IDI0LFxuICB2YWx1ZSxcbiAgY2xlYXJhYmxlLFxuICByZXF1aXJlZCxcbiAgbGFiZWxEZXNjcmlwdGlvbixcbiAgaGVscGVyLFxuICBzaXplID0gJ2xhcmdlJyxcbiAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgcmVhZE9ubHkgPSBmYWxzZSxcbiAgZXJyb3IgPSBmYWxzZSxcbiAgb25DaGFuZ2UsXG4gIG9uQmx1cixcbiAgb25Gb2N1cyxcbiAgY2xhc3NOYW1lLFxuICBpZCxcbiAgYXV0b0ZvY3VzLFxuICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICBwbGFjZWhvbGRlciA9IERFRkFVTFRfUExBQ0VIT0xERVIsXG4gICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLFxufTogVGltZUlucHV0UHJvcHMpID0+IHtcbiAgY29uc3QgbG9jYWxJZCA9IHVzZUlkKClcbiAgY29uc3QgZGVmYXVsdFBlcmlvZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICh2YWx1ZSkgcmV0dXJuIHZhbHVlLmdldEhvdXJzKCkgPj0gMTIgPyAncG0nIDogJ2FtJ1xuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbdmFsdWVdKVxuXG4gIGNvbnN0IFt0aW1lLCBzZXRUaW1lXSA9IHVzZVN0YXRlKHZhbHVlKVxuICBjb25zdCBbcGVyaW9kLCBzZXRQZXJpb2RdID0gdXNlU3RhdGU8J3BtJyB8ICdhbScgfCB1bmRlZmluZWQ+KGRlZmF1bHRQZXJpb2QpXG4gIGNvbnN0IFtmaWxsZWQsIHNldEZpbGxlZF0gPSB1c2VTdGF0ZShcbiAgICB2YWx1ZSA/IHsgaDogdHJ1ZSwgbTogdHJ1ZSwgczogdHJ1ZSB9IDogeyBoOiBmYWxzZSwgbTogZmFsc2UsIHM6IGZhbHNlIH0sXG4gICkgLy8gdG8gbm90IHNob3cgMDAgd2hlbiB0aGVyZSBzaG91bGQgYmUgYSBwbGFjZWhvbGRlclxuXG4gIGNvbnN0IHJlZkhvdXJzID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHJlZlNlY29uZHMgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbClcbiAgY29uc3QgcmVmTWludXRlcyA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKVxuICBjb25zdCByZWZQZXJpb2QgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgc2V0VGltZSh2YWx1ZSlcblxuICAgICAgLy8gd2l0aG91dCB0aGlzIGNvbmRpdGlvbiwgZXZlcnkgdGltZSBhbiBpbnB1dCB2YWx1ZSBjaGFuZ2VzLCB0aGUgb3RoZXIgb25lcyB3aWxsIGJlIHNldCB0byAwIGlmIHRoZXkgdXNlZCB0byBiZSB1bmRlZmluZWRcbiAgICAgIC8vIGluc3RlYWQgb2YgbGVhdmluZyB0aGVtIGVtcHR5IChhbmQgc2hvd2luZyB0aGUgcGxhY2Vob2xkZXIpXG4gICAgICBpZiAodmFsdWUuZ2V0VGltZSgpICE9PSB0aW1lPy5nZXRUaW1lKCkpIHtcbiAgICAgICAgc2V0RmlsbGVkKHsgaDogdHJ1ZSwgbTogdHJ1ZSwgczogdHJ1ZSB9KVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBveGxpbnQtZGlzYWJsZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW3ZhbHVlXSlcblxuICBjb25zdCBoYW5kbGVDaGFuZ2VQZXJpb2QgPSAoa2V5OiAnYScgfCAncCcpID0+IHtcbiAgICBpZiAoIXRpbWUpIHtcbiAgICAgIHNldFBlcmlvZChgJHtrZXl9bWApXG4gICAgfSBlbHNlIGlmIChrZXkudG9Mb3dlckNhc2UoKSA9PT0gJ2EnKSB7XG4gICAgICBpZiAodGltZS5nZXRIb3VycygpID49IDEyKSB7XG4gICAgICAgIGNvbnN0IG5ld1RpbWUgPSBuZXcgRGF0ZSh0aW1lKVxuICAgICAgICBuZXdUaW1lLnNldEhvdXJzKG5ld1RpbWUuZ2V0SG91cnMoKSAtIDEyKVxuICAgICAgICBzZXRUaW1lKG5ld1RpbWUpXG4gICAgICAgIG9uQ2hhbmdlPy4obmV3VGltZSlcbiAgICAgIH1cbiAgICAgIHNldFBlcmlvZCgnYW0nKVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGltZS5nZXRIb3VycygpIDwgMTIpIHtcbiAgICAgICAgY29uc3QgbmV3VGltZSA9IG5ldyBEYXRlKHRpbWUpXG4gICAgICAgIG5ld1RpbWUuc2V0SG91cnMobmV3VGltZS5nZXRIb3VycygpICsgMTIpXG4gICAgICAgIHNldFRpbWUobmV3VGltZSlcbiAgICAgICAgb25DaGFuZ2U/LihuZXdUaW1lKVxuICAgICAgfVxuICAgICAgc2V0UGVyaW9kKCdwbScpXG4gICAgfVxuICB9XG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9ICh0eXBlOiAnaCcgfCAnbScgfCAncycsIGtleTogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgbmV3VGltZSA9IHRpbWUgPyBuZXcgRGF0ZSh0aW1lKSA6IERFRkFVTFRfREFURVxuICAgIGNvbnN0IHZhbHVlVG9DaGFuZ2UgPSBnZXRWYWx1ZUJ5VHlwZSh0eXBlLCB0aW1lKVxuXG4gICAgaWYgKGNhbkNvbmNhdCh2YWx1ZVRvQ2hhbmdlLCB0eXBlLCBrZXksIHRpbWVGb3JtYXQpKSB7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9ICh2YWx1ZVRvQ2hhbmdlICUgMTApICogMTAgKyBrZXlcblxuICAgICAgc2V0VmFsdWVCeVR5cGUodHlwZSwgbmV3VGltZSwgbmV3VmFsdWUpXG4gICAgfSBlbHNlIHNldFZhbHVlQnlUeXBlKHR5cGUsIG5ld1RpbWUsIGtleSlcblxuICAgIGNvbnN0IG5ld1ZhbHVlID0gZ2V0VmFsdWVCeVR5cGUodHlwZSwgbmV3VGltZSlcbiAgICAvLyBGb2N1cyB0byBuZXh0IGlucHV0IGlmIHRoZSBjdXJyZW50IGlucHV0IGhhcyBhIHZhbGlkIHRpbWVcbiAgICBpZiAodHlwZSA9PT0gJ3MnICYmIG5ld1RpbWUgJiYgbmV3VmFsdWUgPj0gNyAmJiB0aW1lRm9ybWF0ID09PSAxMikge1xuICAgICAgcmVmUGVyaW9kLmN1cnJlbnQ/LmZvY3VzKClcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdtJyAmJiBuZXdUaW1lICYmIG5ld1ZhbHVlID49IDYpIHtcbiAgICAgIHJlZlNlY29uZHMuY3VycmVudD8uZm9jdXMoKVxuICAgIH1cblxuICAgIGlmICh0eXBlID09PSAnaCcpIHtcbiAgICAgIGlmIChpc0NvbXBsZXRlSG91cih0aW1lRm9ybWF0LCBuZXdWYWx1ZSkpIHtcbiAgICAgICAgcmVmTWludXRlcy5jdXJyZW50Py5mb2N1cygpXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IG5ld0ZpbGxlZCA9IHsgLi4uZmlsbGVkIH1cbiAgICBuZXdGaWxsZWRbdHlwZV0gPSB0cnVlXG5cbiAgICBzZXRUaW1lKG5ld1RpbWUpXG4gICAgb25DaGFuZ2U/LihuZXdUaW1lKVxuXG4gICAgc2V0RmlsbGVkKG5ld0ZpbGxlZClcbiAgfVxuXG4gIC8vIEluY3JlYXNlIHRpbWUgd2l0aCBhcnJvdyB1cFxuICBjb25zdCBoYW5kbGVJbmNyZWFzZSA9ICh0eXBlOiAnaCcgfCAnbScgfCAncycpID0+IHtcbiAgICBjb25zdCBuZXdUaW1lID0gdGltZSA/IG5ldyBEYXRlKHRpbWUpIDogREVGQVVMVF9EQVRFXG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gZ2V0VmFsdWVCeVR5cGUodHlwZSwgbmV3VGltZSlcbiAgICBpZiAodHlwZSA9PT0gJ2gnICYmIHRpbWVGb3JtYXQgPT09IDI0KSB7XG4gICAgICBzZXRWYWx1ZUJ5VHlwZSh0eXBlLCBuZXdUaW1lLCBjdXJyZW50VmFsdWUgPT09IDIzID8gMCA6IGN1cnJlbnRWYWx1ZSArIDEpXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnaCcgJiYgdGltZUZvcm1hdCA9PT0gMTIpIHtcbiAgICAgIHNldFZhbHVlQnlUeXBlKHR5cGUsIG5ld1RpbWUsIGN1cnJlbnRWYWx1ZSA9PT0gMTIgPyAxIDogY3VycmVudFZhbHVlICsgMSlcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0VmFsdWVCeVR5cGUodHlwZSwgbmV3VGltZSwgY3VycmVudFZhbHVlID09PSA1OSA/IDAgOiBjdXJyZW50VmFsdWUgKyAxKVxuICAgIH1cbiAgICBjb25zdCBuZXdGaWxsZWQgPSB7IC4uLmZpbGxlZCB9XG4gICAgbmV3RmlsbGVkW3R5cGVdID0gdHJ1ZVxuXG4gICAgc2V0VGltZShuZXdUaW1lKVxuICAgIG9uQ2hhbmdlPy4obmV3VGltZSlcbiAgICBzZXRGaWxsZWQobmV3RmlsbGVkKVxuICB9XG5cbiAgLy8gRGVjcmVhc2UgdGltZSB3aXRoIGFycm93IGRvd25cbiAgY29uc3QgaGFuZGxlRGVjcmVhc2UgPSAodHlwZTogJ2gnIHwgJ20nIHwgJ3MnKSA9PiB7XG4gICAgY29uc3QgbmV3VGltZSA9IHRpbWUgPyBuZXcgRGF0ZSh0aW1lKSA6IERFRkFVTFRfREFURVxuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGdldFZhbHVlQnlUeXBlKHR5cGUsIG5ld1RpbWUpXG5cbiAgICBpZiAodHlwZSA9PT0gJ2gnICYmIHRpbWVGb3JtYXQgPT09IDI0KSB7XG4gICAgICBzZXRWYWx1ZUJ5VHlwZSh0eXBlLCBuZXdUaW1lLCBjdXJyZW50VmFsdWUgPT09IDAgPyAyMyA6IGN1cnJlbnRWYWx1ZSAtIDEpXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnaCcgJiYgdGltZUZvcm1hdCA9PT0gMTIpIHtcbiAgICAgIHNldFZhbHVlQnlUeXBlKHR5cGUsIG5ld1RpbWUsIGN1cnJlbnRWYWx1ZSA9PT0gMSA/IDEyIDogY3VycmVudFZhbHVlIC0gMSlcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0VmFsdWVCeVR5cGUodHlwZSwgbmV3VGltZSwgY3VycmVudFZhbHVlID09PSAwID8gNTkgOiBjdXJyZW50VmFsdWUgLSAxKVxuICAgIH1cbiAgICBjb25zdCBuZXdGaWxsZWQgPSB7IC4uLmZpbGxlZCB9XG4gICAgbmV3RmlsbGVkW3R5cGVdID0gdHJ1ZVxuXG4gICAgc2V0VGltZShuZXdUaW1lKVxuICAgIG9uQ2hhbmdlPy4obmV3VGltZSlcbiAgICBzZXRGaWxsZWQobmV3RmlsbGVkKVxuICB9XG5cbiAgLy8gR28gdG8gbmV4dCBpbnB1dFxuICBjb25zdCBoYW5kbGVOZXh0ID0gKHR5cGU6ICdoJyB8ICdtJyB8ICdzJykgPT4ge1xuICAgIGlmICh0eXBlID09PSAnaCcpIHJlZk1pbnV0ZXMuY3VycmVudD8uZm9jdXMoKVxuICAgIGlmICh0eXBlID09PSAnbScpIHJlZlNlY29uZHMuY3VycmVudD8uZm9jdXMoKVxuICAgIGlmICh0eXBlID09PSAncycgJiYgdGltZUZvcm1hdCA9PT0gMTIpIHJlZlBlcmlvZC5jdXJyZW50Py5mb2N1cygpXG4gIH1cblxuICAvLyBHbyB0byBwcmV2aW91cyBpbnB1dFxuICBjb25zdCBoYW5kbGVQcmV2aW91cyA9ICh0eXBlOiAnaCcgfCAnbScgfCAncycpID0+IHtcbiAgICBpZiAodHlwZSA9PT0gJ20nKSByZWZIb3Vycy5jdXJyZW50Py5mb2N1cygpXG4gICAgaWYgKHR5cGUgPT09ICdzJykgcmVmTWludXRlcy5jdXJyZW50Py5mb2N1cygpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTdGFjayBnYXA9ezAuNX0gY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgICAge2xhYmVsIHx8IGxhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgIDxMYWJlbFxuICAgICAgICAgIGxhYmVsRGVzY3JpcHRpb249e2xhYmVsRGVzY3JpcHRpb259XG4gICAgICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgaHRtbEZvcj17aWQgPz8gbG9jYWxJZH1cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9MYWJlbD5cbiAgICAgICkgOiBudWxsfVxuICAgICAgPFRpbWVJbnB1dFdyYXBwZXJcbiAgICAgICAgZGF0YS1yZWFkb25seT17cmVhZE9ubHl9XG4gICAgICAgIGRhdGEtZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBkYXRhLXNpemU9e3NpemV9XG4gICAgICAgIGRhdGEtZXJyb3I9eyEhZXJyb3J9XG4gICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgICAgYXJpYS1yZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHJlZkhvdXJzLmN1cnJlbnQ/LmZvY3VzKCl9XG4gICAgICAgIGlkPXtpZH1cbiAgICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgIGFyaWEtbGFiZWw9e2FyaWFMYWJlbH1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgIHtUSU1FX0tFWVMubWFwKHR5cGUgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29tcHV0ZWRSZWYgPSAoKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0eXBlID09PSAnaCcpIHJldHVybiByZWZIb3Vyc1xuICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ20nKSByZXR1cm4gcmVmTWludXRlc1xuXG4gICAgICAgICAgICAgIHJldHVybiByZWZTZWNvbmRzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmdWxsTmFtZSA9ICgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdoJykgcmV0dXJuICdob3VycydcbiAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdtJykgcmV0dXJuICdtaW51dGVzJ1xuXG4gICAgICAgICAgICAgIHJldHVybiAnc2Vjb25kcydcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY29tcHV0ZU1heFZhbHVlID0gKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2gnICYmIHRpbWVGb3JtYXQgPT09IDEyKSByZXR1cm4gMTJcbiAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdoJyAmJiB0aW1lRm9ybWF0ID09PSAyNCkgcmV0dXJuIDIzXG5cbiAgICAgICAgICAgICAgcmV0dXJuIDU5XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxTdGFjayBrZXk9e3R5cGV9IGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgICAgdmFsdWU9e1xuICAgICAgICAgICAgICAgICAgICBmaWxsZWRbdHlwZV1cbiAgICAgICAgICAgICAgICAgICAgICA/IGZvcm1hdChnZXRWYWx1ZUJ5VHlwZSh0eXBlLCB0aW1lKSwgdHlwZSwgdGltZUZvcm1hdClcbiAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJbdHlwZV19XG4gICAgICAgICAgICAgICAgICBkYXRhLXNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICByZWFkT25seT17cmVhZE9ubHl9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXthcmlhTGFiZWx9XG4gICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD17YCR7ZnVsbE5hbWUoKX0taW5wdXRgfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHJlZj17Y29tcHV0ZWRSZWYoKX1cbiAgICAgICAgICAgICAgICAgIHJvbGU9XCJzcGluYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGF1dG9Db21wbGV0ZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgIGFyaWEtdmFsdWVtYXg9e2NvbXB1dGVNYXhWYWx1ZSgpfVxuICAgICAgICAgICAgICAgICAgYXJpYS12YWx1ZW1pbj17dHlwZSA9PT0gJ2gnICYmIHRpbWVGb3JtYXQgPT09IDEyID8gMSA6IDB9XG4gICAgICAgICAgICAgICAgICBhcmlhLXZhbHVlbm93PXtcbiAgICAgICAgICAgICAgICAgICAgZmlsbGVkW3R5cGVdXG4gICAgICAgICAgICAgICAgICAgICAgPyBOdW1iZXIucGFyc2VJbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdChnZXRWYWx1ZUJ5VHlwZSh0eXBlLCB0aW1lKSwgdHlwZSwgdGltZUZvcm1hdCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlYWRPbmx5ICYmICFkaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGdldExhc3RUeXBlZENoYXIoXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBnZXRWYWx1ZUJ5VHlwZSh0eXBlLCB0aW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTnVtYmVyKGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUNoYW5nZSh0eXBlLCBOdW1iZXIucGFyc2VJbnQoa2V5LCAxMCkpXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVhZE9ubHkgJiYgIWRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVJbmNyZWFzZSh0eXBlKVxuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlRGVjcmVhc2UodHlwZSlcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93TGVmdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVByZXZpb3VzKHR5cGUpXG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlTmV4dCh0eXBlKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1cz17YXV0b0ZvY3VzICYmIHR5cGUgPT09ICdoJ31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIHt0eXBlID09PSAncycgPyBudWxsIDogKFxuICAgICAgICAgICAgICAgICAgPEN1c3RvbVRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICA8L0N1c3RvbVRleHQ+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9KX1cbiAgICAgICAgICB7dGltZUZvcm1hdCA9PT0gMTIgPyAoXG4gICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgdmFsdWU9e3BlcmlvZD8udG9VcHBlckNhc2UoKX1cbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyLnBlcmlvZCA/PyAnQU0nfVxuICAgICAgICAgICAgICBkYXRhLXNpemU9e3NpemV9XG4gICAgICAgICAgICAgIGRhdGEtcGVyaW9kXG4gICAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXthcmlhTGFiZWx9XG4gICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiYW0tcG0taW5wdXRcIlxuICAgICAgICAgICAgICBvbkNoYW5nZT17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghcmVhZE9ubHkgJiYgIWRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBldmVudC50YXJnZXQudmFsdWUuc2xpY2UoLTEpXG4gICAgICAgICAgICAgICAgICBpZiAoaXNBT3JQKGtleSkpIGhhbmRsZUNoYW5nZVBlcmlvZChrZXkgYXMgJ2EnIHwgJ3AnKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgb25LZXlEb3duPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFyZWFkT25seSAmJiAhZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJyB8fCBldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlUGVyaW9kKHBlcmlvZCA9PT0gJ2FtJyA/ICdwJyA6ICdhJylcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dMZWZ0Jykge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgIHJlZlNlY29uZHMuY3VycmVudD8uZm9jdXMoKVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgcmVmPXtyZWZQZXJpb2R9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2V2ZW50ID0+IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpfVxuICAgICAgICAgICAgICByb2xlPVwic3BpbmJ1dHRvblwiXG4gICAgICAgICAgICAgIGF1dG9Db21wbGV0ZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgYXJpYS12YWx1ZW1heD17MTJ9XG4gICAgICAgICAgICAgIGFyaWEtdmFsdWVtaW49ezB9XG4gICAgICAgICAgICAgIGFyaWEtdmFsdWVub3c9e3BlcmlvZCA9PT0gJ2FtJyA/IDAgOiAxMn1cbiAgICAgICAgICAgICAgYXJpYS12YWx1ZXRleHQ9e3BlcmlvZH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICAgIHtlcnJvciB8fCBjbGVhcmFibGUgPyAoXG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIiBnYXA9XCIxXCI+XG4gICAgICAgICAgICB7ZXJyb3IgPyA8QWxlcnRDaXJjbGVJY29uIHNlbnRpbWVudD1cImRhbmdlclwiIC8+IDogbnVsbH1cbiAgICAgICAgICAgIHtjbGVhcmFibGUgPyAoXG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiY2xlYXIgdmFsdWVcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZCB8fCByZWFkT25seX1cbiAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICAgIHNldFRpbWUodW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U/Lih1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDbG9zZUljb24gLz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVGltZUlucHV0V3JhcHBlcj5cbiAgICAgIHtoZWxwZXIgfHwgZXJyb3IgPyAoXG4gICAgICAgIDxUZXh0XG4gICAgICAgICAgYXM9XCJwXCJcbiAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgc2VudGltZW50PXtlcnJvciA/ICdkYW5nZXInIDogJ25ldXRyYWwnfVxuICAgICAgICAgIHByb21pbmVuY2U9e2Vycm9yID8gJ2RlZmF1bHQnIDogJ3dlYWsnfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgPlxuICAgICAgICAgIHtlcnJvciB8fCBoZWxwZXJ9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvU3RhY2s+XG4gIClcbn1cbiJdfQ== */"));
22
100
  const TimeInput = ({
23
- value = defaultValue,
24
- schedule = "hours",
25
- ...props
26
- } = {}) => /* @__PURE__ */ jsxRuntime.jsx(index.SelectInput, { ...props, time: true, value, options: options(schedule) });
27
- TimeInput.options = options;
101
+ label,
102
+ timeFormat = 24,
103
+ value,
104
+ clearable,
105
+ required,
106
+ labelDescription,
107
+ helper,
108
+ size = "large",
109
+ disabled = false,
110
+ readOnly = false,
111
+ error = false,
112
+ onChange,
113
+ onBlur,
114
+ onFocus,
115
+ className,
116
+ id,
117
+ autoFocus,
118
+ "data-testid": dataTestId,
119
+ placeholder = constants.DEFAULT_PLACEHOLDER,
120
+ "aria-label": ariaLabel
121
+ }) => {
122
+ const localId = react.useId();
123
+ const defaultPeriod = react.useMemo(() => {
124
+ if (value) return value.getHours() >= 12 ? "pm" : "am";
125
+ return void 0;
126
+ }, [value]);
127
+ const [time, setTime] = react.useState(value);
128
+ const [period, setPeriod] = react.useState(defaultPeriod);
129
+ const [filled, setFilled] = react.useState(value ? {
130
+ h: true,
131
+ m: true,
132
+ s: true
133
+ } : {
134
+ h: false,
135
+ m: false,
136
+ s: false
137
+ });
138
+ const refHours = react.useRef(null);
139
+ const refSeconds = react.useRef(null);
140
+ const refMinutes = react.useRef(null);
141
+ const refPeriod = react.useRef(null);
142
+ react.useEffect(() => {
143
+ if (value) {
144
+ setTime(value);
145
+ if (value.getTime() !== time?.getTime()) {
146
+ setFilled({
147
+ h: true,
148
+ m: true,
149
+ s: true
150
+ });
151
+ }
152
+ }
153
+ }, [value]);
154
+ const handleChangePeriod = (key) => {
155
+ if (!time) {
156
+ setPeriod(`${key}m`);
157
+ } else if (key.toLowerCase() === "a") {
158
+ if (time.getHours() >= 12) {
159
+ const newTime = new Date(time);
160
+ newTime.setHours(newTime.getHours() - 12);
161
+ setTime(newTime);
162
+ onChange?.(newTime);
163
+ }
164
+ setPeriod("am");
165
+ } else {
166
+ if (time.getHours() < 12) {
167
+ const newTime = new Date(time);
168
+ newTime.setHours(newTime.getHours() + 12);
169
+ setTime(newTime);
170
+ onChange?.(newTime);
171
+ }
172
+ setPeriod("pm");
173
+ }
174
+ };
175
+ const handleChange = (type, key) => {
176
+ const newTime = time ? new Date(time) : constants.DEFAULT_DATE;
177
+ const valueToChange = helpers.getValueByType(type, time);
178
+ if (helpers.canConcat(valueToChange, type, key, timeFormat)) {
179
+ const newValue2 = valueToChange % 10 * 10 + key;
180
+ helpers.setValueByType(type, newTime, newValue2);
181
+ } else helpers.setValueByType(type, newTime, key);
182
+ const newValue = helpers.getValueByType(type, newTime);
183
+ if (type === "s" && newTime && newValue >= 7 && timeFormat === 12) {
184
+ refPeriod.current?.focus();
185
+ } else if (type === "m" && newTime && newValue >= 6) {
186
+ refSeconds.current?.focus();
187
+ }
188
+ if (type === "h") {
189
+ if (helpers.isCompleteHour(timeFormat, newValue)) {
190
+ refMinutes.current?.focus();
191
+ }
192
+ }
193
+ const newFilled = {
194
+ ...filled
195
+ };
196
+ newFilled[type] = true;
197
+ setTime(newTime);
198
+ onChange?.(newTime);
199
+ setFilled(newFilled);
200
+ };
201
+ const handleIncrease = (type) => {
202
+ const newTime = time ? new Date(time) : constants.DEFAULT_DATE;
203
+ const currentValue = helpers.getValueByType(type, newTime);
204
+ if (type === "h" && timeFormat === 24) {
205
+ helpers.setValueByType(type, newTime, currentValue === 23 ? 0 : currentValue + 1);
206
+ } else if (type === "h" && timeFormat === 12) {
207
+ helpers.setValueByType(type, newTime, currentValue === 12 ? 1 : currentValue + 1);
208
+ } else {
209
+ helpers.setValueByType(type, newTime, currentValue === 59 ? 0 : currentValue + 1);
210
+ }
211
+ const newFilled = {
212
+ ...filled
213
+ };
214
+ newFilled[type] = true;
215
+ setTime(newTime);
216
+ onChange?.(newTime);
217
+ setFilled(newFilled);
218
+ };
219
+ const handleDecrease = (type) => {
220
+ const newTime = time ? new Date(time) : constants.DEFAULT_DATE;
221
+ const currentValue = helpers.getValueByType(type, newTime);
222
+ if (type === "h" && timeFormat === 24) {
223
+ helpers.setValueByType(type, newTime, currentValue === 0 ? 23 : currentValue - 1);
224
+ } else if (type === "h" && timeFormat === 12) {
225
+ helpers.setValueByType(type, newTime, currentValue === 1 ? 12 : currentValue - 1);
226
+ } else {
227
+ helpers.setValueByType(type, newTime, currentValue === 0 ? 59 : currentValue - 1);
228
+ }
229
+ const newFilled = {
230
+ ...filled
231
+ };
232
+ newFilled[type] = true;
233
+ setTime(newTime);
234
+ onChange?.(newTime);
235
+ setFilled(newFilled);
236
+ };
237
+ const handleNext = (type) => {
238
+ if (type === "h") refMinutes.current?.focus();
239
+ if (type === "m") refSeconds.current?.focus();
240
+ if (type === "s" && timeFormat === 12) refPeriod.current?.focus();
241
+ };
242
+ const handlePrevious = (type) => {
243
+ if (type === "m") refHours.current?.focus();
244
+ if (type === "s") refMinutes.current?.focus();
245
+ };
246
+ return /* @__PURE__ */ jsxRuntime.jsxs(index.Stack, { gap: 0.5, className, children: [
247
+ label || labelDescription ? /* @__PURE__ */ jsxRuntime.jsx(index$1.Label, { labelDescription, required, size, htmlFor: id ?? localId, children: label }) : null,
248
+ /* @__PURE__ */ jsxRuntime.jsxs(TimeInputWrapper, { "data-readonly": readOnly, "data-disabled": disabled, "data-size": size, "data-error": !!error, direction: "row", alignItems: "center", justifyContent: "space-between", onBlur, onFocus, "aria-required": required, onClick: () => refHours.current?.focus(), id, "data-testid": dataTestId, "aria-label": ariaLabel, children: [
249
+ /* @__PURE__ */ jsxRuntime.jsxs(index.Stack, { direction: "row", children: [
250
+ constants.TIME_KEYS.map((type) => {
251
+ const computedRef = () => {
252
+ if (type === "h") return refHours;
253
+ if (type === "m") return refMinutes;
254
+ return refSeconds;
255
+ };
256
+ const fullName = () => {
257
+ if (type === "h") return "hours";
258
+ if (type === "m") return "minutes";
259
+ return "seconds";
260
+ };
261
+ const computeMaxValue = () => {
262
+ if (type === "h" && timeFormat === 12) return 12;
263
+ if (type === "h" && timeFormat === 24) return 23;
264
+ return 59;
265
+ };
266
+ return /* @__PURE__ */ jsxRuntime.jsxs(index.Stack, { direction: "row", children: [
267
+ /* @__PURE__ */ jsxRuntime.jsx(Input, { value: filled[type] ? helpers.format(helpers.getValueByType(type, time), type, timeFormat) : "", placeholder: placeholder[type], "data-size": size, readOnly, disabled, "aria-label": ariaLabel, "data-testid": `${fullName()}-input`, onClick: (event) => {
268
+ event.stopPropagation();
269
+ }, ref: computedRef(), role: "spinbutton", autoComplete: "false", "aria-valuemax": computeMaxValue(), "aria-valuemin": type === "h" && timeFormat === 12 ? 1 : 0, "aria-valuenow": filled[type] ? Number.parseInt(helpers.format(helpers.getValueByType(type, time), type, timeFormat), 10) : void 0, onChange: (event) => {
270
+ if (!readOnly && !disabled) {
271
+ const key = helpers.getLastTypedChar(event.target.value, helpers.getValueByType(type, time));
272
+ if (helpers.isNumber(key)) {
273
+ handleChange(type, Number.parseInt(key, 10));
274
+ }
275
+ }
276
+ }, onKeyDown: (event) => {
277
+ if (!readOnly && !disabled) {
278
+ if (event.key === "ArrowUp") {
279
+ event.preventDefault();
280
+ handleIncrease(type);
281
+ } else if (event.key === "ArrowDown") {
282
+ event.preventDefault();
283
+ handleDecrease(type);
284
+ } else if (event.key === "ArrowLeft") {
285
+ event.preventDefault();
286
+ handlePrevious(type);
287
+ } else if (event.key === "ArrowRight") {
288
+ event.preventDefault();
289
+ handleNext(type);
290
+ }
291
+ }
292
+ }, autoFocus: autoFocus && type === "h" }),
293
+ type === "s" ? null : /* @__PURE__ */ jsxRuntime.jsx(CustomText, { as: "span", variant: "body", prominence: "default", sentiment: "neutral", children: ":" })
294
+ ] }, type);
295
+ }),
296
+ timeFormat === 12 ? /* @__PURE__ */ jsxRuntime.jsx(Input, { value: period?.toUpperCase(), placeholder: placeholder.period ?? "AM", "data-size": size, "data-period": true, readOnly, disabled, "aria-label": ariaLabel, "data-testid": "am-pm-input", onChange: (event) => {
297
+ if (!readOnly && !disabled) {
298
+ const key = event.target.value.slice(-1);
299
+ if (helpers.isAOrP(key)) handleChangePeriod(key);
300
+ }
301
+ }, onKeyDown: (event) => {
302
+ if (!readOnly && !disabled) {
303
+ if (event.key === "ArrowUp" || event.key === "ArrowDown") {
304
+ event.preventDefault();
305
+ handleChangePeriod(period === "am" ? "p" : "a");
306
+ } else if (event.key === "ArrowLeft") {
307
+ event.preventDefault();
308
+ refSeconds.current?.focus();
309
+ }
310
+ }
311
+ }, ref: refPeriod, onClick: (event) => event.stopPropagation(), role: "spinbutton", autoComplete: "false", "aria-valuemax": 12, "aria-valuemin": 0, "aria-valuenow": period === "am" ? 0 : 12, "aria-valuetext": period }) : null
312
+ ] }),
313
+ error || clearable ? /* @__PURE__ */ jsxRuntime.jsxs(index.Stack, { direction: "row", alignItems: "center", gap: "1", children: [
314
+ error ? /* @__PURE__ */ jsxRuntime.jsx(Icon.AlertCircleIcon, { sentiment: "danger" }) : null,
315
+ clearable ? /* @__PURE__ */ jsxRuntime.jsx(index$2.Button, { "aria-label": "clear value", disabled: disabled || readOnly, variant: "ghost", size: "small", onClick: (event) => {
316
+ event.stopPropagation();
317
+ setTime(void 0);
318
+ onChange?.(void 0);
319
+ }, sentiment: "neutral", "data-testid": "clear", children: /* @__PURE__ */ jsxRuntime.jsx(Icon.CloseIcon, {}) }) : null
320
+ ] }) : null
321
+ ] }),
322
+ helper || error ? /* @__PURE__ */ jsxRuntime.jsx(index$3.Text, { as: "p", variant: "caption", sentiment: error ? "danger" : "neutral", prominence: error ? "default" : "weak", disabled, children: error || helper }) : null
323
+ ] });
324
+ };
325
+ exports.Input = Input;
28
326
  exports.TimeInput = TimeInput;
29
- exports.schedules = schedules;
@@ -1,25 +1,49 @@
1
- import type { ComponentProps, JSX } from 'react';
2
- import { SelectInput } from '../SelectInput';
3
- export declare const schedules: {
4
- half: readonly ["00:00", "00:30", "01:00", "01:30", "02:00", "02:30", "03:00", "03:30", "04:00", "04:30", "05:00", "05:30", "06:00", "06:30", "07:00", "07:30", "08:00", "08:30", "09:00", "09:30", "10:00", "10:30", "11:00", "11:30", "12:00", "12:30", "13:00", "13:30", "14:00", "14:30", "15:00", "15:30", "16:00", "16:30", "17:00", "17:30", "18:00", "18:30", "19:00", "19:30", "20:00", "20:30", "21:00", "21:30", "22:00", "22:30", "23:00", "23:30"];
5
- hours: readonly ["00:00", "01:00", "02:00", "03:00", "04:00", "05:00", "06:00", "07:00", "08:00", "09:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00", "17:00", "18:00", "19:00", "20:00", "21:00", "22:00", "23:00"];
6
- quarter: readonly ["00:00", "00:15", "00:30", "00:45", "01:00", "01:15", "01:30", "01:45", "02:00", "02:15", "02:30", "02:45", "03:00", "03:15", "03:30", "03:45", "04:00", "04:15", "04:30", "04:45", "05:00", "05:15", "05:30", "05:45", "06:00", "06:15", "06:30", "06:45", "07:00", "07:15", "07:30", "07:45", "08:00", "08:15", "08:30", "08:45", "09:00", "09:15", "09:30", "09:45", "10:00", "10:15", "10:30", "10:45", "11:00", "11:15", "11:30", "11:45", "12:00", "12:15", "12:30", "12:45", "13:00", "13:15", "13:30", "13:45", "14:00", "14:15", "14:30", "14:45", "15:00", "15:15", "15:30", "15:45", "16:00", "16:15", "16:30", "16:45", "17:00", "17:15", "17:30", "17:45", "18:00", "18:15", "18:30", "18:45", "19:00", "19:15", "19:30", "19:45", "20:00", "20:15", "20:30", "20:45", "21:00", "21:15", "21:30", "21:45", "22:00", "22:15", "22:30", "22:45", "23:00", "23:15", "23:30", "23:45"];
7
- };
8
- type ScheduleType = keyof typeof schedules;
9
- declare const options: (schedule: ScheduleType) => {
10
- label: "00:00" | "01:00" | "02:00" | "03:00" | "04:00" | "05:00" | "06:00" | "07:00" | "08:00" | "09:00" | "10:00" | "11:00" | "12:00" | "13:00" | "14:00" | "15:00" | "16:00" | "17:00" | "18:00" | "19:00" | "20:00" | "21:00" | "22:00" | "23:00" | "00:30" | "01:30" | "02:30" | "03:30" | "04:30" | "05:30" | "06:30" | "07:30" | "08:30" | "09:30" | "10:30" | "11:30" | "12:30" | "13:30" | "14:30" | "15:30" | "16:30" | "17:30" | "18:30" | "19:30" | "20:30" | "21:30" | "22:30" | "23:30" | "00:15" | "00:45" | "01:15" | "01:45" | "02:15" | "02:45" | "03:15" | "03:45" | "04:15" | "04:45" | "05:15" | "05:45" | "06:15" | "06:45" | "07:15" | "07:45" | "08:15" | "08:45" | "09:15" | "09:45" | "10:15" | "10:45" | "11:15" | "11:45" | "12:15" | "12:45" | "13:15" | "13:45" | "14:15" | "14:45" | "15:15" | "15:45" | "16:15" | "16:45" | "17:15" | "17:45" | "18:15" | "18:45" | "19:15" | "19:45" | "20:15" | "20:45" | "21:15" | "21:45" | "22:15" | "22:45" | "23:15" | "23:45";
11
- value: "00:00" | "01:00" | "02:00" | "03:00" | "04:00" | "05:00" | "06:00" | "07:00" | "08:00" | "09:00" | "10:00" | "11:00" | "12:00" | "13:00" | "14:00" | "15:00" | "16:00" | "17:00" | "18:00" | "19:00" | "20:00" | "21:00" | "22:00" | "23:00" | "00:30" | "01:30" | "02:30" | "03:30" | "04:30" | "05:30" | "06:30" | "07:30" | "08:30" | "09:30" | "10:30" | "11:30" | "12:30" | "13:30" | "14:30" | "15:30" | "16:30" | "17:30" | "18:30" | "19:30" | "20:30" | "21:30" | "22:30" | "23:30" | "00:15" | "00:45" | "01:15" | "01:45" | "02:15" | "02:45" | "03:15" | "03:45" | "04:15" | "04:45" | "05:15" | "05:45" | "06:15" | "06:45" | "07:15" | "07:45" | "08:15" | "08:45" | "09:15" | "09:45" | "10:15" | "10:45" | "11:15" | "11:45" | "12:15" | "12:45" | "13:15" | "13:45" | "14:15" | "14:45" | "15:15" | "15:45" | "16:15" | "16:45" | "17:15" | "17:45" | "18:15" | "18:45" | "19:15" | "19:45" | "20:15" | "20:45" | "21:15" | "21:45" | "22:15" | "22:45" | "23:15" | "23:45";
12
- }[];
13
- type TimeInputProps = Partial<ComponentProps<typeof SelectInput>> & {
14
- schedule?: ScheduleType;
15
- };
16
- type TimeInputType = ((props: TimeInputProps) => JSX.Element) & {
17
- options: typeof options;
1
+ import type { FocusEvent, ReactNode } from 'react';
2
+ export type Time = {
3
+ h: string;
4
+ m: string;
5
+ s: string;
6
+ period?: string;
18
7
  };
8
+ export declare const Input: import("@emotion/styled").StyledComponent<{
9
+ theme?: import("@emotion/react").Theme;
10
+ as?: React.ElementType;
11
+ } & {
12
+ 'data-size': "small" | "medium" | "large";
13
+ 'data-period'?: boolean;
14
+ }, import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, {}>;
15
+ type TimeInputProps = {
16
+ placeholder?: Time;
17
+ value?: Date | null;
18
+ clearable?: boolean;
19
+ required?: boolean;
20
+ labelDescription?: ReactNode;
21
+ helper?: ReactNode;
22
+ disabled?: boolean;
23
+ readOnly?: boolean;
24
+ error?: boolean | string;
25
+ 'data-testid'?: string;
26
+ onChange?: (value: Date | undefined, valuePeriod?: string) => void;
27
+ onBlur?: (event: FocusEvent<HTMLInputElement>) => void;
28
+ onFocus?: (event: FocusEvent<HTMLInputElement>) => void;
29
+ className?: string;
30
+ id?: string;
31
+ size?: 'small' | 'medium' | 'large';
32
+ timeFormat?: 12 | 24;
33
+ /**
34
+ * Automatically focus on the element on render. Autofocus is applied to the hour input
35
+ */
36
+ autoFocus?: boolean;
37
+ } & ({
38
+ label?: string;
39
+ 'aria-label'?: never;
40
+ } | {
41
+ label?: never;
42
+ 'aria-label': string;
43
+ });
19
44
  /**
20
- * A time input component that allows users to select a time from a dropdown. The component is built on top of the
21
- * `SelectInput` component.
45
+ * A time input component that allows users to type a time in a 24 or 12-hour format.
22
46
  * @experimental This component is experimental and may be subject to breaking changes in the future.
23
47
  */
24
- export declare const TimeInput: TimeInputType;
48
+ export declare const TimeInput: ({ label, timeFormat, value, clearable, required, labelDescription, helper, size, disabled, readOnly, error, onChange, onBlur, onFocus, className, id, autoFocus, "data-testid": dataTestId, placeholder, "aria-label": ariaLabel, }: TimeInputProps) => import("@emotion/react/jsx-runtime").JSX.Element;
25
49
  export {};