@1money/react-ui 1.15.3 → 1.17.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 (378) hide show
  1. package/AGENTS.md +393 -0
  2. package/es/components/CheckboxGroup/CheckboxGroup.d.ts +3 -3
  3. package/es/components/CheckboxGroup/CheckboxGroup.js +94 -91
  4. package/es/components/CheckboxGroup/interface.d.ts +21 -15
  5. package/es/components/CheckboxGroup/style/CheckboxGroup.scss +0 -7
  6. package/es/components/Flex/Flex.d.ts +5 -0
  7. package/es/components/Flex/Flex.js +50 -0
  8. package/es/components/Flex/constants.d.ts +41 -0
  9. package/es/components/Flex/constants.js +45 -0
  10. package/es/components/Flex/index.d.ts +5 -0
  11. package/es/components/Flex/index.js +6 -0
  12. package/es/components/Flex/interface.d.ts +13 -0
  13. package/es/components/Flex/interface.js +2 -0
  14. package/es/components/Flex/style/Flex.css +1 -0
  15. package/es/components/Flex/style/Flex.scss +70 -0
  16. package/es/components/Flex/style/css.js +2 -0
  17. package/es/components/Flex/style/index.d.ts +1 -0
  18. package/es/components/Flex/style/index.js +2 -0
  19. package/es/components/Form/Form.d.ts +29 -0
  20. package/es/components/Form/Form.js +188 -0
  21. package/es/components/Form/FormItem.d.ts +4 -0
  22. package/es/components/Form/FormItem.js +165 -0
  23. package/es/components/Form/FormItemContent.d.ts +18 -0
  24. package/es/components/Form/FormItemContent.js +146 -0
  25. package/es/components/Form/constants.d.ts +46 -0
  26. package/es/components/Form/constants.js +65 -0
  27. package/es/components/Form/helper.d.ts +120 -0
  28. package/es/components/Form/helper.js +284 -0
  29. package/es/components/Form/index.d.ts +20 -0
  30. package/es/components/Form/index.js +21 -0
  31. package/es/components/Form/interface.d.ts +238 -0
  32. package/es/components/Form/interface.js +2 -0
  33. package/es/components/Form/style/Form.css +1 -0
  34. package/es/components/Form/style/Form.scss +167 -0
  35. package/es/components/Form/style/css.js +2 -0
  36. package/es/components/Form/style/index.d.ts +1 -0
  37. package/es/components/Form/style/index.js +2 -0
  38. package/es/components/Form/useFormItemContext.d.ts +32 -0
  39. package/es/components/Form/useFormItemContext.js +55 -0
  40. package/es/components/Form/useFormItemWatch.d.ts +51 -0
  41. package/es/components/Form/useFormItemWatch.js +69 -0
  42. package/es/components/Form/useValidationTrigger.d.ts +40 -0
  43. package/es/components/Form/useValidationTrigger.js +74 -0
  44. package/es/components/Grid/Col.d.ts +5 -0
  45. package/es/components/Grid/Col.js +97 -0
  46. package/es/components/Grid/Grid.d.ts +12 -0
  47. package/es/components/Grid/Grid.js +12 -0
  48. package/es/components/Grid/Row.d.ts +5 -0
  49. package/es/components/Grid/Row.js +48 -0
  50. package/es/components/Grid/constants.d.ts +55 -0
  51. package/es/components/Grid/constants.js +66 -0
  52. package/es/components/Grid/helper.d.ts +10 -0
  53. package/es/components/Grid/helper.js +44 -0
  54. package/es/components/Grid/index.d.ts +7 -0
  55. package/es/components/Grid/index.js +8 -0
  56. package/es/components/Grid/interface.d.ts +38 -0
  57. package/es/components/Grid/interface.js +2 -0
  58. package/es/components/Grid/style/Grid.css +1 -0
  59. package/es/components/Grid/style/Grid.scss +196 -0
  60. package/es/components/Grid/style/css.js +2 -0
  61. package/es/components/Grid/style/index.d.ts +1 -0
  62. package/es/components/Grid/style/index.js +2 -0
  63. package/es/components/Input/Input.js +72 -74
  64. package/es/components/Input/interface.d.ts +9 -9
  65. package/es/components/InputAmount/InputAmount.js +228 -276
  66. package/es/components/InputAmount/helper.d.ts +46 -0
  67. package/es/components/InputAmount/helper.js +115 -0
  68. package/es/components/InputAmount/style/normal.css +1 -1
  69. package/es/components/InputAmount/style/normal.scss +2 -2
  70. package/es/components/InputAmount/style/primary.css +1 -1
  71. package/es/components/InputAmount/style/primary.scss +2 -2
  72. package/es/components/Message/style/Message.css +1 -1
  73. package/es/components/Message/style/Message.scss +3 -3
  74. package/es/components/ProForm/ProForm.d.ts +33 -0
  75. package/es/components/ProForm/ProForm.js +208 -0
  76. package/es/components/ProForm/ProFormDependency.d.ts +12 -0
  77. package/es/components/ProForm/ProFormDependency.js +61 -0
  78. package/es/components/ProForm/ProFormList.d.ts +19 -0
  79. package/es/components/ProForm/ProFormList.js +348 -0
  80. package/es/components/ProForm/Submitter.d.ts +21 -0
  81. package/es/components/ProForm/Submitter.js +76 -0
  82. package/es/components/ProForm/constants.d.ts +34 -0
  83. package/es/components/ProForm/constants.js +40 -0
  84. package/es/components/ProForm/fields/ProFormCheckbox.d.ts +6 -0
  85. package/es/components/ProForm/fields/ProFormCheckbox.js +11 -0
  86. package/es/components/ProForm/fields/ProFormCheckboxGroup.d.ts +6 -0
  87. package/es/components/ProForm/fields/ProFormCheckboxGroup.js +46 -0
  88. package/es/components/ProForm/fields/ProFormDigit.d.ts +6 -0
  89. package/es/components/ProForm/fields/ProFormDigit.js +15 -0
  90. package/es/components/ProForm/fields/ProFormMoney.d.ts +6 -0
  91. package/es/components/ProForm/fields/ProFormMoney.js +10 -0
  92. package/es/components/ProForm/fields/ProFormMultiSelect.d.ts +6 -0
  93. package/es/components/ProForm/fields/ProFormMultiSelect.js +27 -0
  94. package/es/components/ProForm/fields/ProFormPassword.d.ts +6 -0
  95. package/es/components/ProForm/fields/ProFormPassword.js +16 -0
  96. package/es/components/ProForm/fields/ProFormRadio.d.ts +6 -0
  97. package/es/components/ProForm/fields/ProFormRadio.js +13 -0
  98. package/es/components/ProForm/fields/ProFormSelect.d.ts +6 -0
  99. package/es/components/ProForm/fields/ProFormSelect.js +13 -0
  100. package/es/components/ProForm/fields/ProFormSwitch.d.ts +6 -0
  101. package/es/components/ProForm/fields/ProFormSwitch.js +11 -0
  102. package/es/components/ProForm/fields/ProFormText.d.ts +6 -0
  103. package/es/components/ProForm/fields/ProFormText.js +15 -0
  104. package/es/components/ProForm/fields/ProFormTextArea.d.ts +6 -0
  105. package/es/components/ProForm/fields/ProFormTextArea.js +16 -0
  106. package/es/components/ProForm/fields/createProFormField.d.ts +43 -0
  107. package/es/components/ProForm/fields/createProFormField.js +200 -0
  108. package/es/components/ProForm/fields/index.d.ts +12 -0
  109. package/es/components/ProForm/fields/index.js +13 -0
  110. package/es/components/ProForm/index.d.ts +7 -0
  111. package/es/components/ProForm/index.js +7 -0
  112. package/es/components/ProForm/interface.d.ts +306 -0
  113. package/es/components/ProForm/interface.js +2 -0
  114. package/es/components/ProForm/layouts/DrawerForm.d.ts +16 -0
  115. package/es/components/ProForm/layouts/DrawerForm.js +79 -0
  116. package/es/components/ProForm/layouts/ModalForm.d.ts +16 -0
  117. package/es/components/ProForm/layouts/ModalForm.js +89 -0
  118. package/es/components/ProForm/layouts/QueryFilter.d.ts +21 -0
  119. package/es/components/ProForm/layouts/QueryFilter.js +132 -0
  120. package/es/components/ProForm/layouts/StepsForm.d.ts +13 -0
  121. package/es/components/ProForm/layouts/StepsForm.js +295 -0
  122. package/es/components/ProForm/layouts/index.d.ts +4 -0
  123. package/es/components/ProForm/layouts/index.js +5 -0
  124. package/es/components/ProForm/layouts/useOverlayForm.d.ts +53 -0
  125. package/es/components/ProForm/layouts/useOverlayForm.js +143 -0
  126. package/es/components/ProForm/style/ProForm.module.css +1 -0
  127. package/es/components/ProForm/style/ProForm.module.scss +59 -0
  128. package/es/components/ProForm/style/css.js +3 -0
  129. package/es/components/ProForm/style/index.d.ts +1 -0
  130. package/es/components/ProForm/style/index.js +3 -0
  131. package/es/components/ProForm/utils.d.ts +72 -0
  132. package/es/components/ProForm/utils.js +206 -0
  133. package/es/components/RadioGroup/RadioGroup.js +46 -23
  134. package/es/components/RadioGroup/interface.d.ts +3 -1
  135. package/es/components/Select/Select.d.ts +1 -1
  136. package/es/components/Select/Select.js +113 -106
  137. package/es/components/Select/constants.d.ts +18 -0
  138. package/es/components/Select/constants.js +19 -0
  139. package/es/components/Sidebar/Sidebar.js +21 -23
  140. package/es/components/Sidebar/SidebarLogo.d.ts +7 -0
  141. package/es/components/Sidebar/SidebarLogo.js +33 -0
  142. package/es/components/Sidebar/SimplySidebar.d.ts +2 -2
  143. package/es/components/Sidebar/SimplySidebar.js +18 -22
  144. package/es/components/Sidebar/Stepper.js +14 -14
  145. package/es/components/Sidebar/constants.d.ts +16 -0
  146. package/es/components/Sidebar/constants.js +17 -0
  147. package/es/components/Sidebar/style/Sidebar.css +1 -1
  148. package/es/components/Sidebar/style/Sidebar.scss +1 -1
  149. package/es/components/Sidebar/style/SimplySidebar.css +1 -1
  150. package/es/components/Sidebar/style/SimplySidebar.scss +1 -1
  151. package/es/components/Sidebar/style/Stepper.css +1 -1
  152. package/es/components/Sidebar/style/Stepper.scss +11 -1
  153. package/es/components/Space/Space.d.ts +5 -0
  154. package/es/components/Space/Space.js +71 -0
  155. package/es/components/Space/constants.d.ts +33 -0
  156. package/es/components/Space/constants.js +37 -0
  157. package/es/components/Space/index.d.ts +5 -0
  158. package/es/components/Space/index.js +6 -0
  159. package/es/components/Space/interface.d.ts +12 -0
  160. package/es/components/Space/interface.js +2 -0
  161. package/es/components/Space/style/Space.css +1 -0
  162. package/es/components/Space/style/Space.scss +40 -0
  163. package/es/components/Space/style/css.js +2 -0
  164. package/es/components/Space/style/index.d.ts +1 -0
  165. package/es/components/Space/style/index.js +2 -0
  166. package/es/components/Switch/Switch.js +28 -25
  167. package/es/components/Switch/interface.d.ts +9 -4
  168. package/es/components/useControlledState/index.d.ts +14 -0
  169. package/es/components/useControlledState/index.js +32 -0
  170. package/es/components/useEventCallback/index.d.ts +11 -0
  171. package/es/components/useEventCallback/index.js +17 -0
  172. package/es/components/useLayoutEffect/index.d.ts +11 -0
  173. package/es/components/useLayoutEffect/index.js +17 -0
  174. package/es/components/useLayoutState/index.d.ts +13 -0
  175. package/es/components/useLayoutState/index.js +71 -0
  176. package/es/components/useMemoizedFn/index.d.ts +12 -0
  177. package/es/components/useMemoizedFn/index.js +27 -0
  178. package/es/components/usePrevious/index.d.ts +11 -0
  179. package/es/components/usePrevious/index.js +19 -0
  180. package/es/components/useSafeState/index.d.ts +12 -0
  181. package/es/components/useSafeState/index.js +24 -0
  182. package/es/components/useSyncState/index.d.ts +14 -0
  183. package/es/components/useSyncState/index.js +37 -0
  184. package/es/components/useUpdateEffect/index.d.ts +9 -0
  185. package/es/components/useUpdateEffect/index.js +19 -0
  186. package/es/index.css +1 -1
  187. package/es/index.d.ts +32 -2
  188. package/es/index.js +30 -1
  189. package/jest.setup.d.ts +1 -0
  190. package/jest.setup.ts +1 -0
  191. package/lib/components/CheckboxGroup/CheckboxGroup.d.ts +3 -3
  192. package/lib/components/CheckboxGroup/CheckboxGroup.js +92 -89
  193. package/lib/components/CheckboxGroup/interface.d.ts +21 -15
  194. package/lib/components/CheckboxGroup/style/CheckboxGroup.scss +0 -7
  195. package/lib/components/Flex/Flex.d.ts +5 -0
  196. package/lib/components/Flex/Flex.js +60 -0
  197. package/lib/components/Flex/constants.d.ts +41 -0
  198. package/lib/components/Flex/constants.js +51 -0
  199. package/lib/components/Flex/index.d.ts +5 -0
  200. package/lib/components/Flex/index.js +60 -0
  201. package/lib/components/Flex/interface.d.ts +13 -0
  202. package/lib/components/Flex/interface.js +6 -0
  203. package/lib/components/Flex/style/Flex.css +1 -0
  204. package/lib/components/Flex/style/Flex.scss +70 -0
  205. package/lib/components/Flex/style/css.js +4 -0
  206. package/lib/components/Flex/style/index.d.ts +1 -0
  207. package/lib/components/Flex/style/index.js +4 -0
  208. package/lib/components/Form/Form.d.ts +29 -0
  209. package/lib/components/Form/Form.js +199 -0
  210. package/lib/components/Form/FormItem.d.ts +4 -0
  211. package/lib/components/Form/FormItem.js +176 -0
  212. package/lib/components/Form/FormItemContent.d.ts +18 -0
  213. package/lib/components/Form/FormItemContent.js +156 -0
  214. package/lib/components/Form/constants.d.ts +46 -0
  215. package/lib/components/Form/constants.js +71 -0
  216. package/lib/components/Form/helper.d.ts +120 -0
  217. package/lib/components/Form/helper.js +290 -0
  218. package/lib/components/Form/index.d.ts +20 -0
  219. package/lib/components/Form/index.js +45 -0
  220. package/lib/components/Form/interface.d.ts +238 -0
  221. package/lib/components/Form/interface.js +6 -0
  222. package/lib/components/Form/style/Form.css +1 -0
  223. package/lib/components/Form/style/Form.scss +167 -0
  224. package/lib/components/Form/style/css.js +4 -0
  225. package/lib/components/Form/style/index.d.ts +1 -0
  226. package/lib/components/Form/style/index.js +4 -0
  227. package/lib/components/Form/useFormItemContext.d.ts +32 -0
  228. package/lib/components/Form/useFormItemContext.js +62 -0
  229. package/lib/components/Form/useFormItemWatch.d.ts +51 -0
  230. package/lib/components/Form/useFormItemWatch.js +76 -0
  231. package/lib/components/Form/useValidationTrigger.d.ts +40 -0
  232. package/lib/components/Form/useValidationTrigger.js +81 -0
  233. package/lib/components/Grid/Col.d.ts +5 -0
  234. package/lib/components/Grid/Col.js +107 -0
  235. package/lib/components/Grid/Grid.d.ts +12 -0
  236. package/lib/components/Grid/Grid.js +18 -0
  237. package/lib/components/Grid/Row.d.ts +5 -0
  238. package/lib/components/Grid/Row.js +58 -0
  239. package/lib/components/Grid/constants.d.ts +55 -0
  240. package/lib/components/Grid/constants.js +72 -0
  241. package/lib/components/Grid/helper.d.ts +10 -0
  242. package/lib/components/Grid/helper.js +51 -0
  243. package/lib/components/Grid/index.d.ts +7 -0
  244. package/lib/components/Grid/index.js +62 -0
  245. package/lib/components/Grid/interface.d.ts +38 -0
  246. package/lib/components/Grid/interface.js +6 -0
  247. package/lib/components/Grid/style/Grid.css +1 -0
  248. package/lib/components/Grid/style/Grid.scss +196 -0
  249. package/lib/components/Grid/style/css.js +4 -0
  250. package/lib/components/Grid/style/index.d.ts +1 -0
  251. package/lib/components/Grid/style/index.js +4 -0
  252. package/lib/components/Input/Input.js +71 -73
  253. package/lib/components/Input/interface.d.ts +9 -9
  254. package/lib/components/InputAmount/InputAmount.js +230 -278
  255. package/lib/components/InputAmount/helper.d.ts +46 -0
  256. package/lib/components/InputAmount/helper.js +122 -0
  257. package/lib/components/InputAmount/style/normal.css +1 -1
  258. package/lib/components/InputAmount/style/normal.scss +2 -2
  259. package/lib/components/InputAmount/style/primary.css +1 -1
  260. package/lib/components/InputAmount/style/primary.scss +2 -2
  261. package/lib/components/Message/style/Message.css +1 -1
  262. package/lib/components/Message/style/Message.scss +3 -3
  263. package/lib/components/ProForm/ProForm.d.ts +33 -0
  264. package/lib/components/ProForm/ProForm.js +216 -0
  265. package/lib/components/ProForm/ProFormDependency.d.ts +12 -0
  266. package/lib/components/ProForm/ProFormDependency.js +67 -0
  267. package/lib/components/ProForm/ProFormList.d.ts +19 -0
  268. package/lib/components/ProForm/ProFormList.js +355 -0
  269. package/lib/components/ProForm/Submitter.d.ts +21 -0
  270. package/lib/components/ProForm/Submitter.js +83 -0
  271. package/lib/components/ProForm/constants.d.ts +34 -0
  272. package/lib/components/ProForm/constants.js +46 -0
  273. package/lib/components/ProForm/fields/ProFormCheckbox.d.ts +6 -0
  274. package/lib/components/ProForm/fields/ProFormCheckbox.js +18 -0
  275. package/lib/components/ProForm/fields/ProFormCheckboxGroup.d.ts +6 -0
  276. package/lib/components/ProForm/fields/ProFormCheckboxGroup.js +53 -0
  277. package/lib/components/ProForm/fields/ProFormDigit.d.ts +6 -0
  278. package/lib/components/ProForm/fields/ProFormDigit.js +22 -0
  279. package/lib/components/ProForm/fields/ProFormMoney.d.ts +6 -0
  280. package/lib/components/ProForm/fields/ProFormMoney.js +17 -0
  281. package/lib/components/ProForm/fields/ProFormMultiSelect.d.ts +6 -0
  282. package/lib/components/ProForm/fields/ProFormMultiSelect.js +34 -0
  283. package/lib/components/ProForm/fields/ProFormPassword.d.ts +6 -0
  284. package/lib/components/ProForm/fields/ProFormPassword.js +23 -0
  285. package/lib/components/ProForm/fields/ProFormRadio.d.ts +6 -0
  286. package/lib/components/ProForm/fields/ProFormRadio.js +20 -0
  287. package/lib/components/ProForm/fields/ProFormSelect.d.ts +6 -0
  288. package/lib/components/ProForm/fields/ProFormSelect.js +20 -0
  289. package/lib/components/ProForm/fields/ProFormSwitch.d.ts +6 -0
  290. package/lib/components/ProForm/fields/ProFormSwitch.js +18 -0
  291. package/lib/components/ProForm/fields/ProFormText.d.ts +6 -0
  292. package/lib/components/ProForm/fields/ProFormText.js +22 -0
  293. package/lib/components/ProForm/fields/ProFormTextArea.d.ts +6 -0
  294. package/lib/components/ProForm/fields/ProFormTextArea.js +23 -0
  295. package/lib/components/ProForm/fields/createProFormField.d.ts +43 -0
  296. package/lib/components/ProForm/fields/createProFormField.js +208 -0
  297. package/lib/components/ProForm/fields/index.d.ts +12 -0
  298. package/lib/components/ProForm/fields/index.js +90 -0
  299. package/lib/components/ProForm/index.d.ts +7 -0
  300. package/lib/components/ProForm/index.js +73 -0
  301. package/lib/components/ProForm/interface.d.ts +306 -0
  302. package/lib/components/ProForm/interface.js +6 -0
  303. package/lib/components/ProForm/layouts/DrawerForm.d.ts +16 -0
  304. package/lib/components/ProForm/layouts/DrawerForm.js +86 -0
  305. package/lib/components/ProForm/layouts/ModalForm.d.ts +16 -0
  306. package/lib/components/ProForm/layouts/ModalForm.js +96 -0
  307. package/lib/components/ProForm/layouts/QueryFilter.d.ts +21 -0
  308. package/lib/components/ProForm/layouts/QueryFilter.js +139 -0
  309. package/lib/components/ProForm/layouts/StepsForm.d.ts +13 -0
  310. package/lib/components/ProForm/layouts/StepsForm.js +302 -0
  311. package/lib/components/ProForm/layouts/index.d.ts +4 -0
  312. package/lib/components/ProForm/layouts/index.js +40 -0
  313. package/lib/components/ProForm/layouts/useOverlayForm.d.ts +53 -0
  314. package/lib/components/ProForm/layouts/useOverlayForm.js +150 -0
  315. package/lib/components/ProForm/style/ProForm.module.css +1 -0
  316. package/lib/components/ProForm/style/ProForm.module.scss +59 -0
  317. package/lib/components/ProForm/style/css.js +4 -0
  318. package/lib/components/ProForm/style/index.d.ts +1 -0
  319. package/lib/components/ProForm/style/index.js +4 -0
  320. package/lib/components/ProForm/utils.d.ts +72 -0
  321. package/lib/components/ProForm/utils.js +213 -0
  322. package/lib/components/RadioGroup/RadioGroup.js +45 -22
  323. package/lib/components/RadioGroup/interface.d.ts +3 -1
  324. package/lib/components/Select/Select.d.ts +1 -1
  325. package/lib/components/Select/Select.js +114 -107
  326. package/lib/components/Select/constants.d.ts +18 -0
  327. package/lib/components/Select/constants.js +25 -0
  328. package/lib/components/Sidebar/Sidebar.js +21 -23
  329. package/lib/components/Sidebar/SidebarLogo.d.ts +7 -0
  330. package/lib/components/Sidebar/SidebarLogo.js +39 -0
  331. package/lib/components/Sidebar/SimplySidebar.d.ts +2 -2
  332. package/lib/components/Sidebar/SimplySidebar.js +17 -21
  333. package/lib/components/Sidebar/Stepper.js +14 -14
  334. package/lib/components/Sidebar/constants.d.ts +16 -0
  335. package/lib/components/Sidebar/constants.js +23 -0
  336. package/lib/components/Sidebar/style/Sidebar.css +1 -1
  337. package/lib/components/Sidebar/style/Sidebar.scss +1 -1
  338. package/lib/components/Sidebar/style/SimplySidebar.css +1 -1
  339. package/lib/components/Sidebar/style/SimplySidebar.scss +1 -1
  340. package/lib/components/Sidebar/style/Stepper.css +1 -1
  341. package/lib/components/Sidebar/style/Stepper.scss +11 -1
  342. package/lib/components/Space/Space.d.ts +5 -0
  343. package/lib/components/Space/Space.js +81 -0
  344. package/lib/components/Space/constants.d.ts +33 -0
  345. package/lib/components/Space/constants.js +43 -0
  346. package/lib/components/Space/index.d.ts +5 -0
  347. package/lib/components/Space/index.js +53 -0
  348. package/lib/components/Space/interface.d.ts +12 -0
  349. package/lib/components/Space/interface.js +6 -0
  350. package/lib/components/Space/style/Space.css +1 -0
  351. package/lib/components/Space/style/Space.scss +40 -0
  352. package/lib/components/Space/style/css.js +4 -0
  353. package/lib/components/Space/style/index.d.ts +1 -0
  354. package/lib/components/Space/style/index.js +4 -0
  355. package/lib/components/Switch/Switch.js +27 -24
  356. package/lib/components/Switch/interface.d.ts +9 -4
  357. package/lib/components/useControlledState/index.d.ts +14 -0
  358. package/lib/components/useControlledState/index.js +39 -0
  359. package/lib/components/useEventCallback/index.d.ts +11 -0
  360. package/lib/components/useEventCallback/index.js +24 -0
  361. package/lib/components/useLayoutEffect/index.d.ts +11 -0
  362. package/lib/components/useLayoutEffect/index.js +23 -0
  363. package/lib/components/useLayoutState/index.d.ts +13 -0
  364. package/lib/components/useLayoutState/index.js +79 -0
  365. package/lib/components/useMemoizedFn/index.d.ts +12 -0
  366. package/lib/components/useMemoizedFn/index.js +33 -0
  367. package/lib/components/usePrevious/index.d.ts +11 -0
  368. package/lib/components/usePrevious/index.js +25 -0
  369. package/lib/components/useSafeState/index.d.ts +12 -0
  370. package/lib/components/useSafeState/index.js +31 -0
  371. package/lib/components/useSyncState/index.d.ts +14 -0
  372. package/lib/components/useSyncState/index.js +44 -0
  373. package/lib/components/useUpdateEffect/index.d.ts +9 -0
  374. package/lib/components/useUpdateEffect/index.js +25 -0
  375. package/lib/index.css +1 -1
  376. package/lib/index.d.ts +32 -2
  377. package/lib/index.js +251 -1
  378. package/package.json +31 -1
@@ -0,0 +1,196 @@
1
+ @use '../../../variable.scss' as *;
2
+ @use 'sass:math';
3
+
4
+ $component-row: 'grid-row';
5
+ $component-col: 'grid-col';
6
+ $grid-columns: 12;
7
+ $grid-index-start: 1;
8
+ $grid-breakpoint-sm: 768px;
9
+ $grid-breakpoint-md: 1024px;
10
+ $grid-breakpoint-lg: 1280px;
11
+ $grid-breakpoint-step: 1px;
12
+ $grid-col-min-height: 1px;
13
+ $grid-col-max-width: 100%;
14
+ $grid-gutter-divisor: 2;
15
+ $grid-gutter-fallback: 0px;
16
+ $grid-col-flex-fallback: 0 0 auto;
17
+ $grid-var-gutter-x: '--om-grid-gutter-x';
18
+ $grid-var-gutter-y: '--om-grid-gutter-y';
19
+ $grid-var-gutter-x-sm: '--om-grid-gutter-x-sm';
20
+ $grid-var-gutter-y-sm: '--om-grid-gutter-y-sm';
21
+ $grid-var-gutter-x-md: '--om-grid-gutter-x-md';
22
+ $grid-var-gutter-y-md: '--om-grid-gutter-y-md';
23
+ $grid-var-gutter-x-lg: '--om-grid-gutter-x-lg';
24
+ $grid-var-gutter-y-lg: '--om-grid-gutter-y-lg';
25
+ $grid-var-justify: '--om-grid-justify';
26
+ $grid-var-justify-sm: '--om-grid-justify-sm';
27
+ $grid-var-justify-md: '--om-grid-justify-md';
28
+ $grid-var-justify-lg: '--om-grid-justify-lg';
29
+ $grid-var-col-flex: '--om-grid-col-flex';
30
+ $grid-var-col-flex-sm: '--om-grid-col-flex-sm';
31
+ $grid-var-col-flex-md: '--om-grid-col-flex-md';
32
+ $grid-var-col-flex-lg: '--om-grid-col-flex-lg';
33
+ $grid-justify-breakpoint-sm: $grid-breakpoint-sm;
34
+ $grid-justify-breakpoint-md: $grid-breakpoint-md;
35
+ $grid-justify-breakpoint-lg: $grid-breakpoint-lg;
36
+ $grid-justify-fallback: flex-start;
37
+
38
+ // Use a 0.02px offset to avoid overlapping max-width boundaries while reducing sub-pixel rounding inconsistencies.
39
+ @function grid-max-width($value, $step: $grid-breakpoint-step) {
40
+ @return $value - math.div($step, 50);
41
+ }
42
+
43
+ .#{$prefix}-#{$component-row} {
44
+ display: flex;
45
+ flex-wrap: wrap;
46
+ justify-content: var(#{$grid-var-justify}, #{$grid-justify-fallback});
47
+ margin-right: calc(var(#{$grid-var-gutter-x}, #{$grid-gutter-fallback}) / -#{$grid-gutter-divisor});
48
+ margin-left: calc(var(#{$grid-var-gutter-x}, #{$grid-gutter-fallback}) / -#{$grid-gutter-divisor});
49
+ row-gap: var(#{$grid-var-gutter-y}, #{$grid-gutter-fallback});
50
+
51
+ &-no-wrap {
52
+ flex-wrap: nowrap;
53
+ }
54
+
55
+ &-align-top {
56
+ align-items: flex-start;
57
+ }
58
+
59
+ &-align-middle {
60
+ align-items: center;
61
+ }
62
+
63
+ &-align-bottom {
64
+ align-items: flex-end;
65
+ }
66
+
67
+ &-align-stretch {
68
+ align-items: stretch;
69
+ }
70
+
71
+ &-justify-start {
72
+ justify-content: flex-start;
73
+ }
74
+
75
+ &-justify-end {
76
+ justify-content: flex-end;
77
+ }
78
+
79
+ &-justify-center {
80
+ justify-content: center;
81
+ }
82
+
83
+ &-justify-space-between {
84
+ justify-content: space-between;
85
+ }
86
+
87
+ &-justify-space-around {
88
+ justify-content: space-around;
89
+ }
90
+
91
+ &-justify-space-evenly {
92
+ justify-content: space-evenly;
93
+ }
94
+ }
95
+
96
+ @media (max-width: grid-max-width($grid-justify-breakpoint-lg)) {
97
+ .#{$prefix}-#{$component-row} {
98
+ justify-content: var(#{$grid-var-justify-lg}, var(#{$grid-var-justify}, #{$grid-justify-fallback}));
99
+ }
100
+ }
101
+
102
+ @media (max-width: grid-max-width($grid-justify-breakpoint-md)) {
103
+ .#{$prefix}-#{$component-row} {
104
+ justify-content: var(#{$grid-var-justify-md}, var(#{$grid-var-justify}, #{$grid-justify-fallback}));
105
+ }
106
+ }
107
+
108
+ @media (max-width: grid-max-width($grid-justify-breakpoint-sm)) {
109
+ .#{$prefix}-#{$component-row} {
110
+ justify-content: var(#{$grid-var-justify-sm}, var(#{$grid-var-justify}, #{$grid-justify-fallback}));
111
+ }
112
+ }
113
+
114
+ .#{$prefix}-#{$component-col} {
115
+ position: relative;
116
+ flex: var(#{$grid-var-col-flex}, #{$grid-col-flex-fallback});
117
+ max-width: $grid-col-max-width;
118
+ min-height: $grid-col-min-height;
119
+ padding-right: calc(var(#{$grid-var-gutter-x}, #{$grid-gutter-fallback}) / #{$grid-gutter-divisor});
120
+ padding-left: calc(var(#{$grid-var-gutter-x}, #{$grid-gutter-fallback}) / #{$grid-gutter-divisor});
121
+ }
122
+
123
+ @mixin make-col-classes($infix: '') {
124
+ @for $i from $grid-index-start through $grid-columns {
125
+ .#{$prefix}-#{$component-col}#{$infix}-#{$i} {
126
+ flex: 0 0 math.percentage(math.div($i, $grid-columns));
127
+ max-width: math.percentage(math.div($i, $grid-columns));
128
+ }
129
+
130
+ .#{$prefix}-#{$component-col}#{$infix}-offset-#{$i} {
131
+ margin-left: math.percentage(math.div($i, $grid-columns));
132
+ }
133
+
134
+ .#{$prefix}-#{$component-col}#{$infix}-order-#{$i} {
135
+ order: $i;
136
+ }
137
+
138
+ .#{$prefix}-#{$component-col}#{$infix}-push-#{$i} {
139
+ left: math.percentage(math.div($i, $grid-columns));
140
+ }
141
+
142
+ .#{$prefix}-#{$component-col}#{$infix}-pull-#{$i} {
143
+ right: math.percentage(math.div($i, $grid-columns));
144
+ }
145
+ }
146
+ }
147
+
148
+ @include make-col-classes('');
149
+
150
+ @media (max-width: grid-max-width($grid-breakpoint-lg)) {
151
+ .#{$prefix}-#{$component-col} {
152
+ flex: var(#{$grid-var-col-flex-lg}, var(#{$grid-var-col-flex}, #{$grid-col-flex-fallback}));
153
+ padding-right: calc(var(#{$grid-var-gutter-x-lg}, var(#{$grid-var-gutter-x}, #{$grid-gutter-fallback})) / #{$grid-gutter-divisor});
154
+ padding-left: calc(var(#{$grid-var-gutter-x-lg}, var(#{$grid-var-gutter-x}, #{$grid-gutter-fallback})) / #{$grid-gutter-divisor});
155
+ }
156
+
157
+ .#{$prefix}-#{$component-row} {
158
+ margin-right: calc(var(#{$grid-var-gutter-x-lg}, var(#{$grid-var-gutter-x}, #{$grid-gutter-fallback})) / -#{$grid-gutter-divisor});
159
+ margin-left: calc(var(#{$grid-var-gutter-x-lg}, var(#{$grid-var-gutter-x}, #{$grid-gutter-fallback})) / -#{$grid-gutter-divisor});
160
+ row-gap: var(#{$grid-var-gutter-y-lg}, var(#{$grid-var-gutter-y}, #{$grid-gutter-fallback}));
161
+ }
162
+
163
+ @include make-col-classes('-lg');
164
+ }
165
+
166
+ @media (max-width: grid-max-width($grid-breakpoint-md)) {
167
+ .#{$prefix}-#{$component-col} {
168
+ flex: var(#{$grid-var-col-flex-md}, var(#{$grid-var-col-flex}, #{$grid-col-flex-fallback}));
169
+ padding-right: calc(var(#{$grid-var-gutter-x-md}, var(#{$grid-var-gutter-x}, #{$grid-gutter-fallback})) / #{$grid-gutter-divisor});
170
+ padding-left: calc(var(#{$grid-var-gutter-x-md}, var(#{$grid-var-gutter-x}, #{$grid-gutter-fallback})) / #{$grid-gutter-divisor});
171
+ }
172
+
173
+ .#{$prefix}-#{$component-row} {
174
+ margin-right: calc(var(#{$grid-var-gutter-x-md}, var(#{$grid-var-gutter-x}, #{$grid-gutter-fallback})) / -#{$grid-gutter-divisor});
175
+ margin-left: calc(var(#{$grid-var-gutter-x-md}, var(#{$grid-var-gutter-x}, #{$grid-gutter-fallback})) / -#{$grid-gutter-divisor});
176
+ row-gap: var(#{$grid-var-gutter-y-md}, var(#{$grid-var-gutter-y}, #{$grid-gutter-fallback}));
177
+ }
178
+
179
+ @include make-col-classes('-md');
180
+ }
181
+
182
+ @media (max-width: grid-max-width($grid-breakpoint-sm)) {
183
+ .#{$prefix}-#{$component-col} {
184
+ flex: var(#{$grid-var-col-flex-sm}, var(#{$grid-var-col-flex}, #{$grid-col-flex-fallback}));
185
+ padding-right: calc(var(#{$grid-var-gutter-x-sm}, var(#{$grid-var-gutter-x}, #{$grid-gutter-fallback})) / #{$grid-gutter-divisor});
186
+ padding-left: calc(var(#{$grid-var-gutter-x-sm}, var(#{$grid-var-gutter-x}, #{$grid-gutter-fallback})) / #{$grid-gutter-divisor});
187
+ }
188
+
189
+ .#{$prefix}-#{$component-row} {
190
+ margin-right: calc(var(#{$grid-var-gutter-x-sm}, var(#{$grid-var-gutter-x}, #{$grid-gutter-fallback})) / -#{$grid-gutter-divisor});
191
+ margin-left: calc(var(#{$grid-var-gutter-x-sm}, var(#{$grid-var-gutter-x}, #{$grid-gutter-fallback})) / -#{$grid-gutter-divisor});
192
+ row-gap: var(#{$grid-var-gutter-y-sm}, var(#{$grid-var-gutter-y}, #{$grid-gutter-fallback}));
193
+ }
194
+
195
+ @include make-col-classes('-sm');
196
+ }
@@ -0,0 +1,2 @@
1
+ import './Grid.css';
2
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvR3JpZC9zcmMvY29tcG9uZW50cy9HcmlkL3N0eWxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sYUFBYSIsImZpbGUiOiJjb21wb25lbnRzL0dyaWQvc3R5bGUvY3NzLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -0,0 +1 @@
1
+ import './Grid.scss';
@@ -0,0 +1,2 @@
1
+ import './Grid.scss';
2
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvR3JpZC9zcmMvY29tcG9uZW50cy9HcmlkL3N0eWxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sYUFBYSIsImZpbGUiOiJjb21wb25lbnRzL0dyaWQvc3R5bGUvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -8,7 +8,7 @@ var __rest = this && this.__rest || function (s, e) {
8
8
  return t;
9
9
  };
10
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
- import { memo, useRef, useMemo, useState, useCallback, useEffect, useImperativeHandle } from 'react';
11
+ import { memo, useRef, useImperativeHandle } from 'react';
12
12
  import { InputText } from 'primereact/inputtext';
13
13
  import { InputNumber } from 'primereact/inputnumber';
14
14
  import { InputMask } from 'primereact/inputmask';
@@ -20,7 +20,55 @@ import { Skeleton } from 'primereact/skeleton';
20
20
  import { default as classnames, joinCls } from '../../utils/classnames';
21
21
  import { Icons } from '../Icons';
22
22
  import Spinner from '../Spinner';
23
+ import useControlledState from '../useControlledState';
24
+ import useEventCallback from '../useEventCallback';
25
+ var COLOR_PRIMARY_BLACK = '#131313';
26
+ var COLOR_BLACK = '#000';
27
+ var COLOR_ERROR = '#AE0000';
28
+ var OtpWrapper = function OtpWrapper(_a) {
29
+ var _className = _a.className,
30
+ _rest = __rest(_a, ["className"]);
31
+ return _jsx("div", {
32
+ className: _className,
33
+ children: _jsx(InputOtp, Object.assign({}, _rest))
34
+ });
35
+ };
36
+ var PasswordWrapper = function PasswordWrapper(_a) {
37
+ var suffixLoading = _a.suffixLoading,
38
+ _props = __rest(_a, ["suffixLoading"]);
39
+ return _jsx(Password, Object.assign({
40
+ feedback: false,
41
+ showIcon: function showIcon(_ref) {
42
+ var iconProps = _ref.iconProps;
43
+ return suffixLoading ? null : _jsx(Icons, {
44
+ name: 'hideBalance',
45
+ onClick: iconProps.onClick,
46
+ size: 20,
47
+ color: COLOR_PRIMARY_BLACK
48
+ });
49
+ },
50
+ hideIcon: function hideIcon(_ref2) {
51
+ var iconProps = _ref2.iconProps;
52
+ return suffixLoading ? null : _jsx(Icons, {
53
+ name: 'viewBalance',
54
+ onClick: iconProps.onClick,
55
+ size: 20,
56
+ color: COLOR_PRIMARY_BLACK
57
+ });
58
+ }
59
+ }, _props));
60
+ };
61
+ var INPUT_COMPONENT_MAP = {
62
+ text: InputText,
63
+ number: InputNumber,
64
+ mask: InputMask,
65
+ textarea: InputTextarea,
66
+ otp: OtpWrapper,
67
+ password: PasswordWrapper,
68
+ autocomplete: AutoComplete
69
+ };
23
70
  export var Input = function Input(props) {
71
+ var _a;
24
72
  var ref = props.ref,
25
73
  label = props.label,
26
74
  message = props.message,
@@ -54,78 +102,27 @@ export var Input = function Input(props) {
54
102
  loading = props.loading,
55
103
  rest = __rest(props, ["ref", "label", "message", "required", "success", "invalid", "disabled", "type", "className", "prefixCls", "wrapperCls", "labelCls", "messageCls", "size", "prefixEle", "suffixEle", "prefixEleCls", "suffixEleCls", "maxLength", "showMessageIcon", "showCount", "value", "defaultValue", "onChange", "readOnly", "loading"]);
56
104
  var classes = classnames(prefixCls);
57
- var _useState = useState(value || defaultValue || ''),
58
- _useState2 = _slicedToArray(_useState, 2),
59
- val = _useState2[0],
60
- setVal = _useState2[1];
61
- var handleChange = useCallback(function (e) {
105
+ var _useControlledState = useControlledState(defaultValue !== null && defaultValue !== void 0 ? defaultValue : '', value),
106
+ _useControlledState2 = _slicedToArray(_useControlledState, 2),
107
+ val = _useControlledState2[0],
108
+ setVal = _useControlledState2[1];
109
+ var handleChange = useEventCallback(function (e) {
110
+ var _a;
62
111
  if (loading || disabled) return;
63
112
  var _val = 'target' in e ? e.target.value : e.value;
64
- setVal((type === 'textarea' ? _val === null || _val === void 0 ? void 0 : _val.slice(0, maxLength) : _val) || '');
113
+ setVal((_a = type === 'textarea' ? _val === null || _val === void 0 ? void 0 : _val.slice(0, maxLength) : _val) !== null && _a !== void 0 ? _a : '');
65
114
  onChange === null || onChange === void 0 ? void 0 : onChange(e);
66
- }, [onChange, maxLength, type, loading, disabled]);
115
+ });
67
116
  var inputRef = useRef(null);
68
- var _ref = useRef(null);
69
- var suffixLoading = useMemo(function () {
70
- return loading && type !== 'otp';
71
- }, [loading, type]);
72
- var InputComponent = useMemo(function () {
73
- switch (type) {
74
- case 'text':
75
- return InputText;
76
- case 'number':
77
- return InputNumber;
78
- case 'mask':
79
- return InputMask;
80
- case 'textarea':
81
- return InputTextarea;
82
- case 'otp':
83
- return function (_props) {
84
- var _className = _props.className,
85
- _rest = __rest(_props, ["className"]);
86
- return _jsx("div", {
87
- className: _className,
88
- children: _jsx(InputOtp, Object.assign({}, _rest))
89
- });
90
- };
91
- case 'password':
92
- return function (_props) {
93
- return _jsx(Password, Object.assign({
94
- feedback: false,
95
- showIcon: function showIcon(_ref2) {
96
- var iconProps = _ref2.iconProps;
97
- return suffixLoading ? null : _jsx(Icons, {
98
- name: 'hideBalance',
99
- onClick: iconProps.onClick,
100
- size: 20,
101
- color: '#131313'
102
- });
103
- },
104
- hideIcon: function hideIcon(_ref3) {
105
- var iconProps = _ref3.iconProps;
106
- return suffixLoading ? null : _jsx(Icons, {
107
- name: 'viewBalance',
108
- onClick: iconProps.onClick,
109
- size: 20,
110
- color: '#131313'
111
- });
112
- }
113
- }, _props));
114
- };
115
- case 'autocomplete':
116
- return AutoComplete;
117
- default:
118
- return InputText;
119
- }
120
- }, [type, suffixLoading]);
121
- useImperativeHandle(ref !== null && ref !== void 0 ? ref : _ref, function () {
117
+ var suffixLoading = loading && type !== 'otp';
118
+ var InputComponent = (_a = INPUT_COMPONENT_MAP[type]) !== null && _a !== void 0 ? _a : InputText;
119
+ var passwordProps = type === 'password' ? {
120
+ suffixLoading: suffixLoading
121
+ } : {};
122
+ useImperativeHandle(ref, function () {
122
123
  return inputRef.current;
123
124
  });
124
- useEffect(function () {
125
- if (type === 'textarea' && val !== value && value !== undefined) {
126
- setVal(value);
127
- }
128
- }, [type, val, value]);
125
+ var valStr = String(val !== null && val !== void 0 ? val : '');
129
126
  return _jsxs("div", {
130
127
  className: classes('wrapper', wrapperCls),
131
128
  children: [label ? loading ? _jsx(Skeleton, {
@@ -157,8 +154,9 @@ export var Input = function Input(props) {
157
154
  disabled: disabled || loading,
158
155
  required: required,
159
156
  maxLength: maxLength,
160
- readOnly: readOnly,
161
- className: classes(void 0, joinCls(classes(size), classes(type), classes("".concat(type, "-").concat(size)), success && classes('success'), showCount && classes('show-count'), className))
157
+ readOnly: readOnly
158
+ }, passwordProps, {
159
+ className: classes(undefined, joinCls(classes(size), classes(type), classes("".concat(type, "-").concat(size)), success && classes('success'), showCount && classes('show-count'), className))
162
160
  })), suffixLoading ? _jsx(Spinner, {
163
161
  className: classes('loading'),
164
162
  strokeWidth: '4'
@@ -168,23 +166,23 @@ export var Input = function Input(props) {
168
166
  },
169
167
  className: classes('suffix', suffixEleCls),
170
168
  children: suffixEle
171
- }) : null, showCount && maxLength != undefined && _jsx("div", {
169
+ }) : null, showCount && maxLength !== undefined && _jsx("div", {
172
170
  className: classes("".concat(type, "-count")),
173
- children: "".concat(val.length, "/").concat(maxLength)
171
+ children: "".concat(valStr.length, "/").concat(maxLength)
174
172
  })]
175
173
  }), message && _jsxs("span", {
176
174
  className: classes('message', joinCls(success && classes('message-success'), invalid && classes('message-error'), messageCls)),
177
175
  children: [showMessageIcon && (success ? _jsx(Icons, {
178
176
  name: 'securityCheck',
179
177
  size: 16,
180
- color: '#000'
178
+ color: COLOR_BLACK
181
179
  }) : _jsx(Icons, {
182
180
  name: 'error',
183
181
  size: 16,
184
- color: '#AE0000'
182
+ color: COLOR_ERROR
185
183
  })), message]
186
184
  })]
187
185
  });
188
186
  };
189
187
  export default /*#__PURE__*/memo(Input);
190
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXQvSW5wdXQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0lucHV0L0lucHV0LnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJtZW1vIiwidXNlUmVmIiwidXNlTWVtbyIsInVzZVN0YXRlIiwidXNlQ2FsbGJhY2siLCJ1c2VFZmZlY3QiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwiSW5wdXRUZXh0IiwiSW5wdXROdW1iZXIiLCJJbnB1dE1hc2siLCJJbnB1dFRleHRhcmVhIiwiSW5wdXRPdHAiLCJQYXNzd29yZCIsIkF1dG9Db21wbGV0ZSIsIlNrZWxldG9uIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwiSWNvbnMiLCJTcGlubmVyIiwiSW5wdXQiLCJwcm9wcyIsInJlZiIsImxhYmVsIiwibWVzc2FnZSIsInJlcXVpcmVkIiwic3VjY2VzcyIsImludmFsaWQiLCJkaXNhYmxlZCIsIl9wcm9wcyR0eXBlIiwidHlwZSIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwid3JhcHBlckNscyIsImxhYmVsQ2xzIiwibWVzc2FnZUNscyIsIl9wcm9wcyRzaXplIiwic2l6ZSIsInByZWZpeEVsZSIsInN1ZmZpeEVsZSIsInByZWZpeEVsZUNscyIsInN1ZmZpeEVsZUNscyIsIm1heExlbmd0aCIsIl9wcm9wcyRzaG93TWVzc2FnZUljbyIsInNob3dNZXNzYWdlSWNvbiIsInNob3dDb3VudCIsInZhbHVlIiwiZGVmYXVsdFZhbHVlIiwib25DaGFuZ2UiLCJyZWFkT25seSIsImxvYWRpbmciLCJyZXN0IiwiY2xhc3NlcyIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInZhbCIsInNldFZhbCIsImhhbmRsZUNoYW5nZSIsIl92YWwiLCJ0YXJnZXQiLCJzbGljZSIsImlucHV0UmVmIiwiX3JlZiIsInN1ZmZpeExvYWRpbmciLCJJbnB1dENvbXBvbmVudCIsIl9wcm9wcyIsIl9jbGFzc05hbWUiLCJfcmVzdCIsImNoaWxkcmVuIiwiYXNzaWduIiwiZmVlZGJhY2siLCJzaG93SWNvbiIsIl9yZWYyIiwiaWNvblByb3BzIiwibmFtZSIsIm9uQ2xpY2siLCJjb2xvciIsImhpZGVJY29uIiwiX3JlZjMiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwid2lkdGgiLCJoZWlnaHQiLCJfYSIsImZvY3VzIiwiY29uY2F0Iiwic3RvcFByb3BhZ2F0aW9uIiwic3Ryb2tlV2lkdGgiXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdB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STFELElBQUksV0FBUSxDQUFDO1FBQUF5QyxRQUFBLEtBQUFpQixNQUFBLENBQU05QixHQUFHLENBQUNoRSxNQUFNLE9BQUE4RixNQUFBLENBQUk1QyxTQUFTO01BQUUsQ0FBQSxDQUFPO0lBQUEsQ0FBQSxDQUNwSCxFQUVKcEIsT0FBTyxJQUFJekIsS0FBQSxDQUFBLE1BQUEsRUFBQTtNQUNUaUMsU0FBUyxFQUFFc0IsT0FBTyxDQUFDLFNBQVMsRUFBRXJDLE9BQU8sQ0FDbkNTLE9BQU8sSUFBSTRCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxFQUNyQzNCLE9BQU8sSUFBSTJCLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFDbkNqQixVQUFVLENBQ1gsQ0FBQztNQUFBa0MsUUFBQSxFQUFBLENBR0F6QixlQUFlLEtBQ2JwQixPQUFPLEdBQ0w3QixJQUFBLENBQUNxQixLQUFLLEVBQUE7UUFBQzJELElBQUksRUFBQyxlQUFlO1FBQUN0QyxJQUFJLEVBQUUsRUFBRTtRQUFFd0MsS0FBSyxFQUFDO01BQU0sQ0FBQSxDQUFHLEdBRXJEbEYsSUFBQSxDQUFDcUIsS0FBSyxFQUFBO1FBQUMyRCxJQUFJLEVBQUMsT0FBTztRQUFDdEMsSUFBSSxFQUFFLEVBQUU7UUFBRXdDLEtBQUssRUFBQztNQUFTLENBQUEsQ0FDOUMsQ0FDRixFQUVGdkQsT0FBTztJQUFBLENBQUEsQ0FDSDtFQUFBLENBQUEsQ0FFTDtBQUVWLENBQUM7QUFFRCw0QkFBZXhCLElBQUksQ0FBQ29CLEtBQUssQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL0lucHV0L0lucHV0LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZVJlZiwgdXNlTWVtbywgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZUltcGVyYXRpdmVIYW5kbGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJbnB1dFRleHQgfSBmcm9tICdwcmltZXJlYWN0L2lucHV0dGV4dCc7XG5pbXBvcnQgeyBJbnB1dE51bWJlciB9IGZyb20gJ3ByaW1lcmVhY3QvaW5wdXRudW1iZXInO1xuaW1wb3J0IHsgSW5wdXRNYXNrIH0gZnJvbSAncHJpbWVyZWFjdC9pbnB1dG1hc2snO1xuaW1wb3J0IHsgSW5wdXRUZXh0YXJlYSB9IGZyb20gJ3ByaW1lcmVhY3QvaW5wdXR0ZXh0YXJlYSc7XG5pbXBvcnQgeyBJbnB1dE90cCB9IGZyb20gJ3ByaW1lcmVhY3QvaW5wdXRvdHAnO1xuaW1wb3J0IHsgUGFzc3dvcmQgfSBmcm9tICdwcmltZXJlYWN0L3Bhc3N3b3JkJztcbmltcG9ydCB7IEF1dG9Db21wbGV0ZSB9IGZyb20gJ3ByaW1lcmVhY3QvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IFNrZWxldG9uIH0gZnJvbSAncHJpbWVyZWFjdC9za2VsZXRvbic7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vSWNvbnMnO1xuaW1wb3J0IFNwaW5uZXIgZnJvbSAnLi4vU3Bpbm5lcic7XG5leHBvcnQgY29uc3QgSW5wdXQgPSBwcm9wcyA9PiB7XG4gICAgY29uc3QgeyByZWYsIGxhYmVsLCBtZXNzYWdlLCByZXF1aXJlZCwgc3VjY2VzcywgaW52YWxpZCwgZGlzYWJsZWQsIHR5cGUgPSAndGV4dCcsIGNsYXNzTmFtZSA9ICcnLCBwcmVmaXhDbHMgPSAnaW5wdXQnLCB3cmFwcGVyQ2xzLCBsYWJlbENscywgbWVzc2FnZUNscywgc2l6ZSA9ICdsYXJnZScsIHByZWZpeEVsZSwgc3VmZml4RWxlLCBwcmVmaXhFbGVDbHMsIHN1ZmZpeEVsZUNscywgbWF4TGVuZ3RoLCBzaG93TWVzc2FnZUljb24gPSBmYWxzZSwgXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIHNob3dDb3VudCwgdmFsdWUsIGRlZmF1bHRWYWx1ZSwgb25DaGFuZ2UsIHJlYWRPbmx5LCBsb2FkaW5nIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wicmVmXCIsIFwibGFiZWxcIiwgXCJtZXNzYWdlXCIsIFwicmVxdWlyZWRcIiwgXCJzdWNjZXNzXCIsIFwiaW52YWxpZFwiLCBcImRpc2FibGVkXCIsIFwidHlwZVwiLCBcImNsYXNzTmFtZVwiLCBcInByZWZpeENsc1wiLCBcIndyYXBwZXJDbHNcIiwgXCJsYWJlbENsc1wiLCBcIm1lc3NhZ2VDbHNcIiwgXCJzaXplXCIsIFwicHJlZml4RWxlXCIsIFwic3VmZml4RWxlXCIsIFwicHJlZml4RWxlQ2xzXCIsIFwic3VmZml4RWxlQ2xzXCIsIFwibWF4TGVuZ3RoXCIsIFwic2hvd01lc3NhZ2VJY29uXCIsIFwic2hvd0NvdW50XCIsIFwidmFsdWVcIiwgXCJkZWZhdWx0VmFsdWVcIiwgXCJvbkNoYW5nZVwiLCBcInJlYWRPbmx5XCIsIFwibG9hZGluZ1wiXSk7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBbdmFsLCBzZXRWYWxdID0gdXNlU3RhdGUodmFsdWUgfHwgZGVmYXVsdFZhbHVlIHx8ICcnKTtcbiAgICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFjaygoZSkgPT4ge1xuICAgICAgICBpZiAobG9hZGluZyB8fCBkaXNhYmxlZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgX3ZhbCA9ICd0YXJnZXQnIGluIGUgPyBlLnRhcmdldC52YWx1ZSA6IGUudmFsdWU7XG4gICAgICAgIHNldFZhbCgodHlwZSA9PT0gJ3RleHRhcmVhJyA/IF92YWwgPT09IG51bGwgfHwgX3ZhbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3ZhbC5zbGljZSgwLCBtYXhMZW5ndGgpIDogX3ZhbCkgfHwgJycpO1xuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UoZSk7XG4gICAgfSwgW29uQ2hhbmdlLCBtYXhMZW5ndGgsIHR5cGUsIGxvYWRpbmcsIGRpc2FibGVkXSk7XG4gICAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgX3JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzdWZmaXhMb2FkaW5nID0gdXNlTWVtbygoKSA9PiBsb2FkaW5nICYmIHR5cGUgIT09ICdvdHAnLCBbbG9hZGluZywgdHlwZV0pO1xuICAgIGNvbnN0IElucHV0Q29tcG9uZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIElucHV0VGV4dDtcbiAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIElucHV0TnVtYmVyO1xuICAgICAgICAgICAgY2FzZSAnbWFzayc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIElucHV0TWFzaztcbiAgICAgICAgICAgIGNhc2UgJ3RleHRhcmVhJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gSW5wdXRUZXh0YXJlYTtcbiAgICAgICAgICAgIGNhc2UgJ290cCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIChfcHJvcHMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBjbGFzc05hbWU6IF9jbGFzc05hbWUgfSA9IF9wcm9wcywgX3Jlc3QgPSBfX3Jlc3QoX3Byb3BzLCBbXCJjbGFzc05hbWVcIl0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogX2NsYXNzTmFtZSwgY2hpbGRyZW46IF9qc3goSW5wdXRPdHAsIE9iamVjdC5hc3NpZ24oe30sIF9yZXN0KSkgfSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNhc2UgJ3Bhc3N3b3JkJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gKF9wcm9wcykgPT4gX2pzeChQYXNzd29yZCwgT2JqZWN0LmFzc2lnbih7IGZlZWRiYWNrOiBmYWxzZSwgc2hvd0ljb246ICh7IGljb25Qcm9wcyB9KSA9PiBzdWZmaXhMb2FkaW5nID8gbnVsbCA6IF9qc3goSWNvbnMsIHsgbmFtZTogJ2hpZGVCYWxhbmNlJywgb25DbGljazogaWNvblByb3BzLm9uQ2xpY2ssIHNpemU6IDIwLCBjb2xvcjogJyMxMzEzMTMnIH0pLCBoaWRlSWNvbjogKHsgaWNvblByb3BzIH0pID0+IHN1ZmZpeExvYWRpbmcgPyBudWxsIDogX2pzeChJY29ucywgeyBuYW1lOiAndmlld0JhbGFuY2UnLCBvbkNsaWNrOiBpY29uUHJvcHMub25DbGljaywgc2l6ZTogMjAsIGNvbG9yOiAnIzEzMTMxMycgfSkgfSwgX3Byb3BzKSk7XG4gICAgICAgICAgICBjYXNlICdhdXRvY29tcGxldGUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBBdXRvQ29tcGxldGU7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBJbnB1dFRleHQ7XG4gICAgICAgIH1cbiAgICB9LCBbdHlwZSwgc3VmZml4TG9hZGluZ10pO1xuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmICE9PSBudWxsICYmIHJlZiAhPT0gdm9pZCAwID8gcmVmIDogX3JlZiwgKCkgPT4gaW5wdXRSZWYuY3VycmVudCk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHR5cGUgPT09ICd0ZXh0YXJlYScgJiYgdmFsICE9PSB2YWx1ZSAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzZXRWYWwodmFsdWUpO1xuICAgICAgICB9XG4gICAgfSwgW3R5cGUsIHZhbCwgdmFsdWVdKTtcbiAgICByZXR1cm4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCd3cmFwcGVyJywgd3JhcHBlckNscyksIGNoaWxkcmVuOiBbbGFiZWxcbiAgICAgICAgICAgICAgICA/IGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgPyBfanN4KFNrZWxldG9uLCB7IHdpZHRoOiAnNzJweCcsIGhlaWdodDogJzE4cHgnLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2xhYmVsLWxvYWRpbmcnKSB9KVxuICAgICAgICAgICAgICAgICAgICA6IF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbCcsIGpvaW5DbHMocmVxdWlyZWQgJiYgY2xhc3NlcygnbGFiZWwtcmVxdWlyZWQnKSwgbGFiZWxDbHMpKSwgY2hpbGRyZW46IGxhYmVsIH0pXG4gICAgICAgICAgICAgICAgOiBudWxsLCBfanN4cyhcImRpdlwiLCB7IG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICBpZiAobG9hZGluZyB8fCBkaXNhYmxlZClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgdHlwZSAhPT0gJ290cCcgJiYgKChfYSA9IGlucHV0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cygpKTtcbiAgICAgICAgICAgICAgICB9LCBjbGFzc05hbWU6IGNsYXNzZXMoJ2lubmVyJywgam9pbkNscyhjbGFzc2VzKGBpbm5lci0ke3NpemV9YCksIHN1Y2Nlc3MgJiYgY2xhc3NlcygnaW5uZXItc3VjY2VzcycpLCBpbnZhbGlkICYmIGNsYXNzZXMoJ2lubmVyLWludmFsaWQnKSwgZGlzYWJsZWQgJiYgY2xhc3NlcygnaW5uZXItZGlzYWJsZWQnKSwgcmVhZE9ubHkgJiYgY2xhc3NlcygnaW5uZXItcmVhZG9ubHknKSwgdmFsICYmIGNsYXNzZXMoJ2lubmVyLWZpbGxlZCcpKSksIGNoaWxkcmVuOiBbcHJlZml4RWxlICYmIF9qc3goXCJkaXZcIiwgeyBvbkNsaWNrOiBlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCksIGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JywgcHJlZml4RWxlQ2xzKSwgY2hpbGRyZW46IHByZWZpeEVsZSB9KSwgX2pzeChJbnB1dENvbXBvbmVudCwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGlucHV0UmVmLCB2YWx1ZTogdHlwZSA9PT0gJ3RleHRhcmVhJyA/IHZhbCA6IHZhbHVlLCBkZWZhdWx0VmFsdWU6IHR5cGUgPT09ICd0ZXh0YXJlYScgPyB1bmRlZmluZWQgOiBkZWZhdWx0VmFsdWUsIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsIGludmFsaWQ6IGludmFsaWQsIGRpc2FibGVkOiBkaXNhYmxlZCB8fCBsb2FkaW5nLCByZXF1aXJlZDogcmVxdWlyZWQsIG1heExlbmd0aDogbWF4TGVuZ3RoLCByZWFkT25seTogcmVhZE9ubHksIGNsYXNzTmFtZTogY2xhc3Nlcyh2b2lkIDAsIGpvaW5DbHMoY2xhc3NlcyhzaXplKSwgY2xhc3Nlcyh0eXBlKSwgY2xhc3NlcyhgJHt0eXBlfS0ke3NpemV9YCksIHN1Y2Nlc3MgJiYgY2xhc3Nlcygnc3VjY2VzcycpLCBzaG93Q291bnQgJiYgY2xhc3Nlcygnc2hvdy1jb3VudCcpLCBjbGFzc05hbWUpKSB9KSksIHN1ZmZpeExvYWRpbmcgPyBfanN4KFNwaW5uZXIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdsb2FkaW5nJyksIHN0cm9rZVdpZHRoOiAnNCcgfSkgOiBzdWZmaXhFbGUgPyBfanN4KFwiZGl2XCIsIHsgb25DbGljazogZSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpLCBjbGFzc05hbWU6IGNsYXNzZXMoJ3N1ZmZpeCcsIHN1ZmZpeEVsZUNscyksIGNoaWxkcmVuOiBzdWZmaXhFbGUgfSkgOiBudWxsLCAoc2hvd0NvdW50ICYmIG1heExlbmd0aCAhPSB1bmRlZmluZWQpICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoYCR7dHlwZX0tY291bnRgKSwgY2hpbGRyZW46IGAke3ZhbC5sZW5ndGh9LyR7bWF4TGVuZ3RofWAgfSldIH0pLCBtZXNzYWdlICYmIF9qc3hzKFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbWVzc2FnZScsIGpvaW5DbHMoc3VjY2VzcyAmJiBjbGFzc2VzKCdtZXNzYWdlLXN1Y2Nlc3MnKSwgaW52YWxpZCAmJiBjbGFzc2VzKCdtZXNzYWdlLWVycm9yJyksIG1lc3NhZ2VDbHMpKSwgY2hpbGRyZW46IFtzaG93TWVzc2FnZUljb24gJiYgKHN1Y2Nlc3MgPyAoX2pzeChJY29ucywgeyBuYW1lOiAnc2VjdXJpdHlDaGVjaycsIHNpemU6IDE2LCBjb2xvcjogJyMwMDAnIH0pKSA6IChfanN4KEljb25zLCB7IG5hbWU6ICdlcnJvcicsIHNpemU6IDE2LCBjb2xvcjogJyNBRTAwMDAnIH0pKSksIG1lc3NhZ2VdIH0pXSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgbWVtbyhJbnB1dCk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
188
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXQvSW5wdXQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0lucHV0L0lucHV0LnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJtZW1vIiwidXNlUmVmIiwidXNlSW1wZXJhdGl2ZUhhbmRsZSIsIklucHV0VGV4dCIsIklucHV0TnVtYmVyIiwiSW5wdXRNYXNrIiwiSW5wdXRUZXh0YXJlYSIsIklucHV0T3RwIiwiUGFzc3dvcmQiLCJBdXRvQ29tcGxldGUiLCJTa2VsZXRvbiIsImRlZmF1bHQiLCJjbGFzc25hbWVzIiwiam9pbkNscyIsIkljb25zIiwiU3Bpbm5lciIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUV2ZW50Q2FsbGJhY2siLCJDT0xPUl9QUklNQVJZX0JMQUNLIiwiQ09MT1JfQkxBQ0siLCJDT0xPUl9FUlJPUiIsIk90cFdyYXBwZXIiLCJfYSIsIl9jbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcmVzdCIsImNoaWxkcmVuIiwiYXNzaWduIiwiUGFzc3dvcmRXcmFwcGVyIiwic3VmZml4TG9hZGluZyIsIl9wcm9wcyIsImZlZWRiYWNrIiwic2hvd0ljb24iLCJfcmVmIiwiaWNvblByb3BzIiwibmFtZSIsIm9uQ2xpY2siLCJzaXplIiwiY29sb3IiLCJoaWRlSWNvbiIsIl9yZWYyIiwiSU5QVVRfQ09NUE9ORU5UX01BUCIsInRleHQiLCJudW1iZXIiLCJtYXNrIiwidGV4dGFyZWEiLCJvdHAiLCJwYXNzd29yZCIsImF1dG9jb21wbGV0ZSIsIklucHV0IiwicHJvcHMiLCJyZWYiLCJsYWJlbCIsIm1lc3NhZ2UiLCJyZXF1aXJlZCIsInN1Y2Nlc3MiLCJpbnZhbGlkIiwiZGlzYWJsZWQiLCJfcHJvcHMkdHlwZSIsInR5cGUiLCJfcHJvcHMkY2xhc3NOYW1lIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsIndyYXBwZXJDbHMiLCJsYWJlbENscyIsIm1lc3NhZ2VDbHMiLCJfcHJvcHMkc2l6ZSIsInByZWZpeEVsZSIsInN1ZmZpeEVsZSIsInByZWZpeEVsZUNscyIsInN1ZmZpeEVsZUNscyIsIm1heExlbmd0aCIsIl9wcm9wcyRzaG93TWVzc2FnZUljbyIsInNob3dNZXNzYWdlSWNvbiIsInNob3dDb3VudCIsInZhbHVlIiwiZGVmYXVsdFZhbHVlIiwib25DaGFuZ2UiLCJyZWFkT25seSIsImxvYWRpbmciLCJyZXN0IiwiY2xhc3NlcyIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwidmFsIiwic2V0VmFsIiwiaGFuZGxlQ2hhbmdlIiwiX3ZhbCIsInRhcmdldCIsInNsaWNlIiwiaW5wdXRSZWYiLCJJbnB1dENvbXBvbmVudCIsInBhc3N3b3JkUHJvcHMiLCJjdXJyZW50IiwidmFsU3RyIiwiU3RyaW5nIiwid2lkdGgiLCJoZWlnaHQiLCJmb2N1cyIsImNvbmNhdCIsInN0b3BQcm9wYWdhdGlvbiIsInVuZGVmaW5lZCIsInN0cm9rZVdpZHRoIl0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBSUEsTUFBTSxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDLElBQUlGLENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FRCxD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QU87UUFBQ0UsSUFBSSxFQUFFLEVBQUU7UUFBRUMsS0FBSyxFQUFFbEI7TUFBVyxDQUFBLENBQ2pELENBQ0YsRUFFRmlDLE9BQU87SUFBQSxDQUFBLENBQ0g7RUFBQSxDQUFBLENBRUw7QUFFVixDQUFDO0FBRUQsNEJBQWVyRCxJQUFJLENBQUNpRCxLQUFLLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9JbnB1dC9JbnB1dC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VSZWYsIHVzZUltcGVyYXRpdmVIYW5kbGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJbnB1dFRleHQgfSBmcm9tICdwcmltZXJlYWN0L2lucHV0dGV4dCc7XG5pbXBvcnQgeyBJbnB1dE51bWJlciB9IGZyb20gJ3ByaW1lcmVhY3QvaW5wdXRudW1iZXInO1xuaW1wb3J0IHsgSW5wdXRNYXNrIH0gZnJvbSAncHJpbWVyZWFjdC9pbnB1dG1hc2snO1xuaW1wb3J0IHsgSW5wdXRUZXh0YXJlYSB9IGZyb20gJ3ByaW1lcmVhY3QvaW5wdXR0ZXh0YXJlYSc7XG5pbXBvcnQgeyBJbnB1dE90cCB9IGZyb20gJ3ByaW1lcmVhY3QvaW5wdXRvdHAnO1xuaW1wb3J0IHsgUGFzc3dvcmQgfSBmcm9tICdwcmltZXJlYWN0L3Bhc3N3b3JkJztcbmltcG9ydCB7IEF1dG9Db21wbGV0ZSB9IGZyb20gJ3ByaW1lcmVhY3QvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IFNrZWxldG9uIH0gZnJvbSAncHJpbWVyZWFjdC9za2VsZXRvbic7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vSWNvbnMnO1xuaW1wb3J0IFNwaW5uZXIgZnJvbSAnLi4vU3Bpbm5lcic7XG5pbXBvcnQgdXNlQ29udHJvbGxlZFN0YXRlIGZyb20gJy4uL3VzZUNvbnRyb2xsZWRTdGF0ZSc7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICcuLi91c2VFdmVudENhbGxiYWNrJztcbmNvbnN0IENPTE9SX1BSSU1BUllfQkxBQ0sgPSAnIzEzMTMxMyc7XG5jb25zdCBDT0xPUl9CTEFDSyA9ICcjMDAwJztcbmNvbnN0IENPTE9SX0VSUk9SID0gJyNBRTAwMDAnO1xuY29uc3QgT3RwV3JhcHBlciA9IChfYSkgPT4ge1xuICAgIHZhciB7IGNsYXNzTmFtZTogX2NsYXNzTmFtZSB9ID0gX2EsIF9yZXN0ID0gX19yZXN0KF9hLCBbXCJjbGFzc05hbWVcIl0pO1xuICAgIHJldHVybiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogX2NsYXNzTmFtZSwgY2hpbGRyZW46IF9qc3goSW5wdXRPdHAsIE9iamVjdC5hc3NpZ24oe30sIF9yZXN0KSkgfSkpO1xufTtcbmNvbnN0IFBhc3N3b3JkV3JhcHBlciA9IChfYSkgPT4ge1xuICAgIHZhciB7IHN1ZmZpeExvYWRpbmcgfSA9IF9hLCBfcHJvcHMgPSBfX3Jlc3QoX2EsIFtcInN1ZmZpeExvYWRpbmdcIl0pO1xuICAgIHJldHVybiAoX2pzeChQYXNzd29yZCwgT2JqZWN0LmFzc2lnbih7IGZlZWRiYWNrOiBmYWxzZSwgc2hvd0ljb246ICh7IGljb25Qcm9wcyB9KSA9PiBzdWZmaXhMb2FkaW5nID8gbnVsbCA6IF9qc3goSWNvbnMsIHsgbmFtZTogJ2hpZGVCYWxhbmNlJywgb25DbGljazogaWNvblByb3BzLm9uQ2xpY2ssIHNpemU6IDIwLCBjb2xvcjogQ09MT1JfUFJJTUFSWV9CTEFDSyB9KSwgaGlkZUljb246ICh7IGljb25Qcm9wcyB9KSA9PiBzdWZmaXhMb2FkaW5nID8gbnVsbCA6IF9qc3goSWNvbnMsIHsgbmFtZTogJ3ZpZXdCYWxhbmNlJywgb25DbGljazogaWNvblByb3BzLm9uQ2xpY2ssIHNpemU6IDIwLCBjb2xvcjogQ09MT1JfUFJJTUFSWV9CTEFDSyB9KSB9LCBfcHJvcHMpKSk7XG59O1xuY29uc3QgSU5QVVRfQ09NUE9ORU5UX01BUCA9IHtcbiAgICB0ZXh0OiBJbnB1dFRleHQsXG4gICAgbnVtYmVyOiBJbnB1dE51bWJlcixcbiAgICBtYXNrOiBJbnB1dE1hc2ssXG4gICAgdGV4dGFyZWE6IElucHV0VGV4dGFyZWEsXG4gICAgb3RwOiBPdHBXcmFwcGVyLFxuICAgIHBhc3N3b3JkOiBQYXNzd29yZFdyYXBwZXIsXG4gICAgYXV0b2NvbXBsZXRlOiBBdXRvQ29tcGxldGUsXG59O1xuZXhwb3J0IGNvbnN0IElucHV0ID0gcHJvcHMgPT4ge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCB7IHJlZiwgbGFiZWwsIG1lc3NhZ2UsIHJlcXVpcmVkLCBzdWNjZXNzLCBpbnZhbGlkLCBkaXNhYmxlZCwgdHlwZSA9ICd0ZXh0JywgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICdpbnB1dCcsIHdyYXBwZXJDbHMsIGxhYmVsQ2xzLCBtZXNzYWdlQ2xzLCBzaXplID0gJ2xhcmdlJywgcHJlZml4RWxlLCBzdWZmaXhFbGUsIHByZWZpeEVsZUNscywgc3VmZml4RWxlQ2xzLCBtYXhMZW5ndGgsIHNob3dNZXNzYWdlSWNvbiA9IGZhbHNlLCBzaG93Q291bnQsIHZhbHVlLCBkZWZhdWx0VmFsdWUsIG9uQ2hhbmdlLCByZWFkT25seSwgbG9hZGluZyB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcInJlZlwiLCBcImxhYmVsXCIsIFwibWVzc2FnZVwiLCBcInJlcXVpcmVkXCIsIFwic3VjY2Vzc1wiLCBcImludmFsaWRcIiwgXCJkaXNhYmxlZFwiLCBcInR5cGVcIiwgXCJjbGFzc05hbWVcIiwgXCJwcmVmaXhDbHNcIiwgXCJ3cmFwcGVyQ2xzXCIsIFwibGFiZWxDbHNcIiwgXCJtZXNzYWdlQ2xzXCIsIFwic2l6ZVwiLCBcInByZWZpeEVsZVwiLCBcInN1ZmZpeEVsZVwiLCBcInByZWZpeEVsZUNsc1wiLCBcInN1ZmZpeEVsZUNsc1wiLCBcIm1heExlbmd0aFwiLCBcInNob3dNZXNzYWdlSWNvblwiLCBcInNob3dDb3VudFwiLCBcInZhbHVlXCIsIFwiZGVmYXVsdFZhbHVlXCIsIFwib25DaGFuZ2VcIiwgXCJyZWFkT25seVwiLCBcImxvYWRpbmdcIl0pO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgW3ZhbCwgc2V0VmFsXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0VmFsdWUgIT09IG51bGwgJiYgZGVmYXVsdFZhbHVlICE9PSB2b2lkIDAgPyBkZWZhdWx0VmFsdWUgOiAnJywgdmFsdWUpO1xuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKGUpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAobG9hZGluZyB8fCBkaXNhYmxlZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgX3ZhbCA9ICd0YXJnZXQnIGluIGUgPyBlLnRhcmdldC52YWx1ZSA6IGUudmFsdWU7XG4gICAgICAgIHNldFZhbCgoX2EgPSAodHlwZSA9PT0gJ3RleHRhcmVhJyA/IF92YWwgPT09IG51bGwgfHwgX3ZhbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3ZhbC5zbGljZSgwLCBtYXhMZW5ndGgpIDogX3ZhbCkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICcnKTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKGUpO1xuICAgIH0pO1xuICAgIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHN1ZmZpeExvYWRpbmcgPSBsb2FkaW5nICYmIHR5cGUgIT09ICdvdHAnO1xuICAgIGNvbnN0IElucHV0Q29tcG9uZW50ID0gKF9hID0gSU5QVVRfQ09NUE9ORU5UX01BUFt0eXBlXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogSW5wdXRUZXh0O1xuICAgIGNvbnN0IHBhc3N3b3JkUHJvcHMgPSB0eXBlID09PSAncGFzc3dvcmQnID8geyBzdWZmaXhMb2FkaW5nIH0gOiB7fTtcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCkgPT4gaW5wdXRSZWYuY3VycmVudCk7XG4gICAgY29uc3QgdmFsU3RyID0gU3RyaW5nKHZhbCAhPT0gbnVsbCAmJiB2YWwgIT09IHZvaWQgMCA/IHZhbCA6ICcnKTtcbiAgICByZXR1cm4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCd3cmFwcGVyJywgd3JhcHBlckNscyksIGNoaWxkcmVuOiBbbGFiZWxcbiAgICAgICAgICAgICAgICA/IGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgPyBfanN4KFNrZWxldG9uLCB7IHdpZHRoOiAnNzJweCcsIGhlaWdodDogJzE4cHgnLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2xhYmVsLWxvYWRpbmcnKSB9KVxuICAgICAgICAgICAgICAgICAgICA6IF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbCcsIGpvaW5DbHMocmVxdWlyZWQgJiYgY2xhc3NlcygnbGFiZWwtcmVxdWlyZWQnKSwgbGFiZWxDbHMpKSwgY2hpbGRyZW46IGxhYmVsIH0pXG4gICAgICAgICAgICAgICAgOiBudWxsLCBfanN4cyhcImRpdlwiLCB7IG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICBpZiAobG9hZGluZyB8fCBkaXNhYmxlZClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgdHlwZSAhPT0gJ290cCcgJiYgKChfYSA9IGlucHV0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cygpKTtcbiAgICAgICAgICAgICAgICB9LCBjbGFzc05hbWU6IGNsYXNzZXMoJ2lubmVyJywgam9pbkNscyhjbGFzc2VzKGBpbm5lci0ke3NpemV9YCksIHN1Y2Nlc3MgJiYgY2xhc3NlcygnaW5uZXItc3VjY2VzcycpLCBpbnZhbGlkICYmIGNsYXNzZXMoJ2lubmVyLWludmFsaWQnKSwgZGlzYWJsZWQgJiYgY2xhc3NlcygnaW5uZXItZGlzYWJsZWQnKSwgcmVhZE9ubHkgJiYgY2xhc3NlcygnaW5uZXItcmVhZG9ubHknKSwgdmFsICYmIGNsYXNzZXMoJ2lubmVyLWZpbGxlZCcpKSksIGNoaWxkcmVuOiBbcHJlZml4RWxlICYmIF9qc3goXCJkaXZcIiwgeyBvbkNsaWNrOiBlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCksIGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JywgcHJlZml4RWxlQ2xzKSwgY2hpbGRyZW46IHByZWZpeEVsZSB9KSwgX2pzeChJbnB1dENvbXBvbmVudCwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGlucHV0UmVmLCB2YWx1ZTogdHlwZSA9PT0gJ3RleHRhcmVhJyA/IHZhbCA6IHZhbHVlLCBkZWZhdWx0VmFsdWU6IHR5cGUgPT09ICd0ZXh0YXJlYScgPyB1bmRlZmluZWQgOiBkZWZhdWx0VmFsdWUsIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsIGludmFsaWQ6IGludmFsaWQsIGRpc2FibGVkOiBkaXNhYmxlZCB8fCBsb2FkaW5nLCByZXF1aXJlZDogcmVxdWlyZWQsIG1heExlbmd0aDogbWF4TGVuZ3RoLCByZWFkT25seTogcmVhZE9ubHkgfSwgcGFzc3dvcmRQcm9wcywgeyBjbGFzc05hbWU6IGNsYXNzZXModW5kZWZpbmVkLCBqb2luQ2xzKGNsYXNzZXMoc2l6ZSksIGNsYXNzZXModHlwZSksIGNsYXNzZXMoYCR7dHlwZX0tJHtzaXplfWApLCBzdWNjZXNzICYmIGNsYXNzZXMoJ3N1Y2Nlc3MnKSwgc2hvd0NvdW50ICYmIGNsYXNzZXMoJ3Nob3ctY291bnQnKSwgY2xhc3NOYW1lKSkgfSkpLCBzdWZmaXhMb2FkaW5nID8gX2pzeChTcGlubmVyLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbG9hZGluZycpLCBzdHJva2VXaWR0aDogJzQnIH0pIDogc3VmZml4RWxlID8gX2pzeChcImRpdlwiLCB7IG9uQ2xpY2s6IGUgPT4gZS5zdG9wUHJvcGFnYXRpb24oKSwgY2xhc3NOYW1lOiBjbGFzc2VzKCdzdWZmaXgnLCBzdWZmaXhFbGVDbHMpLCBjaGlsZHJlbjogc3VmZml4RWxlIH0pIDogbnVsbCwgKHNob3dDb3VudCAmJiBtYXhMZW5ndGggIT09IHVuZGVmaW5lZCkgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcyhgJHt0eXBlfS1jb3VudGApLCBjaGlsZHJlbjogYCR7dmFsU3RyLmxlbmd0aH0vJHttYXhMZW5ndGh9YCB9KV0gfSksIG1lc3NhZ2UgJiYgX2pzeHMoXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdtZXNzYWdlJywgam9pbkNscyhzdWNjZXNzICYmIGNsYXNzZXMoJ21lc3NhZ2Utc3VjY2VzcycpLCBpbnZhbGlkICYmIGNsYXNzZXMoJ21lc3NhZ2UtZXJyb3InKSwgbWVzc2FnZUNscykpLCBjaGlsZHJlbjogW3Nob3dNZXNzYWdlSWNvbiAmJiAoc3VjY2VzcyA/IChfanN4KEljb25zLCB7IG5hbWU6ICdzZWN1cml0eUNoZWNrJywgc2l6ZTogMTYsIGNvbG9yOiBDT0xPUl9CTEFDSyB9KSkgOiAoX2pzeChJY29ucywgeyBuYW1lOiAnZXJyb3InLCBzaXplOiAxNiwgY29sb3I6IENPTE9SX0VSUk9SIH0pKSksIG1lc3NhZ2VdIH0pXSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgbWVtbyhJbnB1dCk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -1,4 +1,4 @@
1
- import type { ReactNode, RefObject } from 'react';
1
+ import type { ReactNode, Ref } from 'react';
2
2
  import type { InputTextProps as PrimeInputTextProps } from 'primereact/inputtext';
3
3
  import type { InputNumberProps as PrimeInputNumberProps, InputNumber as InputNumberClass } from 'primereact/inputnumber';
4
4
  import type { InputMaskProps as PrimeInputMaskProps, InputMask as InputMaskClass } from 'primereact/inputmask';
@@ -24,35 +24,35 @@ export interface InputBaseProps {
24
24
  suffixEleCls?: string;
25
25
  loading?: boolean;
26
26
  showMessageIcon?: boolean;
27
+ showCount?: boolean;
27
28
  }
28
29
  export interface InputTextProps extends Omit<PrimeInputTextProps, 'size' | 'prefix' | 'suffix'>, InputBaseProps {
29
30
  type?: 'text';
30
- ref?: RefObject<HTMLInputElement | null>;
31
+ ref?: Ref<HTMLInputElement | null>;
31
32
  }
32
33
  export interface InputNumberProps extends Omit<PrimeInputNumberProps, 'size' | 'prefix' | 'suffix'>, InputBaseProps {
33
34
  type: 'number';
34
- ref?: RefObject<InputNumberClass | null>;
35
+ ref?: Ref<InputNumberClass | null>;
35
36
  }
36
37
  export interface InputMaskProps extends Omit<PrimeInputMaskProps, 'size' | 'prefix' | 'suffix'>, InputBaseProps {
37
38
  type: 'mask';
38
- ref?: RefObject<InputMaskClass | null>;
39
+ ref?: Ref<InputMaskClass | null>;
39
40
  }
40
41
  export interface InputTextareaProps extends Omit<PrimeInputTextareaProps, 'size' | 'prefix' | 'suffix'>, InputBaseProps {
41
42
  type: 'textarea';
42
43
  maxLength?: number;
43
- showCount?: boolean;
44
- ref?: RefObject<HTMLTextAreaElement | null>;
44
+ ref?: Ref<HTMLTextAreaElement | null>;
45
45
  }
46
46
  export interface InputOtpProps extends Omit<PrimeInputOtpProps, 'size' | 'prefix' | 'suffix'>, InputBaseProps {
47
47
  type: 'otp';
48
- ref?: RefObject<HTMLInputElement | null>;
48
+ ref?: Ref<HTMLInputElement | null>;
49
49
  }
50
50
  export interface InputPwdProps extends Omit<PasswordProps, 'size' | 'prefix' | 'suffix'>, InputBaseProps {
51
51
  type: 'password';
52
- ref?: RefObject<PasswordClass | null>;
52
+ ref?: Ref<PasswordClass | null>;
53
53
  }
54
54
  export interface InputAutoCompleteProps extends Omit<AutoCompleteProps, 'size' | 'prefix' | 'suffix'>, InputBaseProps {
55
55
  type: 'autocomplete';
56
- ref?: RefObject<AutoCompleteClass | null>;
56
+ ref?: Ref<AutoCompleteClass | null>;
57
57
  }
58
58
  export type InputProps = InputTextProps | InputNumberProps | InputMaskProps | InputTextareaProps | InputOtpProps | InputPwdProps | InputAutoCompleteProps;