@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,165 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useContext, useMemo } from 'react';
4
+ import { default as classnames, joinCls } from '../../utils/classnames';
5
+ import Typography from '../Typography';
6
+ import { FormContext } from './Form';
7
+ import { CSS_VAR_LABEL_WIDTH, CSS_VAR_WRAPPER_WIDTH, DEFAULT_VALUE_PROP } from './constants';
8
+ import { toPercent, wrapValidate } from './helper';
9
+ import { FormItemContent } from './FormItemContent';
10
+ import { FallbackFormProvider, useFormItemContext } from './useFormItemContext';
11
+ import { useFormItemWatch } from './useFormItemWatch';
12
+ import { useValidationTrigger } from './useValidationTrigger';
13
+ /**
14
+ * Runtime type guard for render-prop children.
15
+ */
16
+ var isRenderFnChild = function isRenderFnChild(child) {
17
+ return typeof child === 'function';
18
+ };
19
+ /**
20
+ * Form field wrapper that bridges `react-hook-form`'s Controller with the Form
21
+ * layout system, validation status display, and configurable trigger behavior.
22
+ *
23
+ * When a `name` is provided, the field is registered with `react-hook-form` via
24
+ * a `Controller` and supports validation rules, dependencies, and status feedback.
25
+ * Without a `name`, it renders as a free wrapper for uncontrolled content.
26
+ *
27
+ * Supports two child patterns:
28
+ * - **React element**: automatically bound via `React.cloneElement` with value/onChange/onBlur.
29
+ * - **Render-prop function**: receives `{ field, fieldState, form, values }` for full control.
30
+ *
31
+ * @template TFieldValues - The shape of the form values.
32
+ * @param props - {@link FormItemProps}
33
+ *
34
+ * @example
35
+ * ```tsx
36
+ * // Element child (auto-bound)
37
+ * <FormItem name="email" label="Email" rules={{ required: true }}>
38
+ * <Input placeholder="Enter email" />
39
+ * </FormItem>
40
+ *
41
+ * // Render-prop child
42
+ * <FormItem name="agree">
43
+ * {({ field }) => <Checkbox {...field} />}
44
+ * </FormItem>
45
+ * ```
46
+ */
47
+ function FormItemInner(props) {
48
+ var name = props.name,
49
+ label = props.label,
50
+ required = props.required,
51
+ rules = props.rules,
52
+ defaultValue = props.defaultValue,
53
+ help = props.help,
54
+ extra = props.extra,
55
+ validateStatus = props.validateStatus,
56
+ dependencies = props.dependencies,
57
+ watchNames = props.watchNames,
58
+ shouldUpdate = props.shouldUpdate,
59
+ validateTrigger = props.validateTrigger,
60
+ validateFirst = props.validateFirst,
61
+ validateDebounce = props.validateDebounce,
62
+ noStyle = props.noStyle,
63
+ _props$valuePropName = props.valuePropName,
64
+ valuePropName = _props$valuePropName === void 0 ? DEFAULT_VALUE_PROP : _props$valuePropName,
65
+ className = props.className,
66
+ labelCol = props.labelCol,
67
+ wrapperCol = props.wrapperCol,
68
+ children = props.children;
69
+ var classes = classnames('form-item');
70
+ var _useFormItemContext = useFormItemContext(name),
71
+ ctx = _useFormItemContext.ctx,
72
+ methods = _useFormItemContext.methods,
73
+ control = _useFormItemContext.control,
74
+ trigger = _useFormItemContext.trigger;
75
+ var _useFormItemWatch = useFormItemWatch({
76
+ control: control,
77
+ methods: methods,
78
+ dependencies: dependencies,
79
+ watchNames: watchNames,
80
+ shouldUpdate: shouldUpdate,
81
+ name: name
82
+ }),
83
+ allValues = _useFormItemWatch.allValues,
84
+ depValues = _useFormItemWatch.depValues,
85
+ shouldRender = _useFormItemWatch.shouldRender;
86
+ var _useValidationTrigger = useValidationTrigger({
87
+ name: name,
88
+ trigger: trigger,
89
+ validateTrigger: validateTrigger,
90
+ validateDebounce: validateDebounce,
91
+ dependencies: dependencies,
92
+ depValues: depValues
93
+ }),
94
+ withTrigger = _useValidationTrigger.withTrigger;
95
+ var renderFn = isRenderFnChild(children) ? children : null;
96
+ var isRequired = required !== null && required !== void 0 ? required : !!(rules === null || rules === void 0 ? void 0 : rules.required);
97
+ var showRequired = (ctx === null || ctx === void 0 ? void 0 : ctx.requiredMark) !== false;
98
+ var labelWidth = useMemo(function () {
99
+ return toPercent(labelCol !== null && labelCol !== void 0 ? labelCol : ctx === null || ctx === void 0 ? void 0 : ctx.labelCol);
100
+ }, [labelCol, ctx === null || ctx === void 0 ? void 0 : ctx.labelCol]);
101
+ var wrapperWidth = useMemo(function () {
102
+ return toPercent(wrapperCol !== null && wrapperCol !== void 0 ? wrapperCol : ctx === null || ctx === void 0 ? void 0 : ctx.wrapperCol);
103
+ }, [wrapperCol, ctx === null || ctx === void 0 ? void 0 : ctx.wrapperCol]);
104
+ var mergedRules = useMemo(function () {
105
+ if (!(rules === null || rules === void 0 ? void 0 : rules.validate) || !validateFirst) return rules;
106
+ var validate = wrapValidate(rules.validate, validateFirst);
107
+ if (validate === rules.validate) return rules;
108
+ return Object.assign(Object.assign({}, rules), {
109
+ validate: validate
110
+ });
111
+ }, [rules, validateFirst]);
112
+ var contentProps = useMemo(function () {
113
+ return {
114
+ name: name,
115
+ control: control,
116
+ methods: methods,
117
+ rules: mergedRules,
118
+ defaultValue: defaultValue,
119
+ validateStatus: validateStatus,
120
+ valuePropName: valuePropName,
121
+ help: help,
122
+ extra: extra,
123
+ ctx: ctx,
124
+ children: children,
125
+ renderFn: renderFn,
126
+ allValues: allValues,
127
+ shouldUpdate: shouldUpdate,
128
+ shouldRender: shouldRender,
129
+ withTrigger: withTrigger
130
+ };
131
+ }, [name, control, methods, mergedRules, defaultValue, validateStatus, valuePropName, help, extra, ctx, children, renderFn, allValues, shouldUpdate, shouldRender, withTrigger]);
132
+ if (noStyle) {
133
+ return _jsx(FormItemContent, Object.assign({}, contentProps));
134
+ }
135
+ var rootStyle = _defineProperty(_defineProperty({}, CSS_VAR_LABEL_WIDTH, labelWidth), CSS_VAR_WRAPPER_WIDTH, wrapperWidth);
136
+ return _jsxs("div", {
137
+ className: classes('root', joinCls(className, (ctx === null || ctx === void 0 ? void 0 : ctx.layout) && classes("layout-".concat(ctx.layout)))),
138
+ "data-form-item-name": name ? String(name) : undefined,
139
+ style: rootStyle,
140
+ children: [label && _jsxs("div", {
141
+ className: classes('label', joinCls(showRequired && isRequired && classes('label-required'))),
142
+ children: [_jsx(Typography.Label, {
143
+ size: 's',
144
+ children: label
145
+ }), (ctx === null || ctx === void 0 ? void 0 : ctx.colon) && _jsx("span", {
146
+ className: classes('colon'),
147
+ children: ":"
148
+ })]
149
+ }), _jsx("div", {
150
+ className: classes('control'),
151
+ children: _jsx(FormItemContent, Object.assign({}, contentProps))
152
+ })]
153
+ });
154
+ }
155
+ export function FormItem(props) {
156
+ var ctx = useContext(FormContext);
157
+ if (ctx === null || ctx === void 0 ? void 0 : ctx.methods) {
158
+ return _jsx(FormItemInner, Object.assign({}, props));
159
+ }
160
+ return _jsx(FallbackFormProvider, {
161
+ children: _jsx(FormItemInner, Object.assign({}, props))
162
+ });
163
+ }
164
+ export default FormItem;
165
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRm9ybS9Gb3JtSXRlbS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRm9ybS9Gb3JtSXRlbS50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsInVzZUNvbnRleHQiLCJ1c2VNZW1vIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwiVHlwb2dyYXBoeSIsIkZvcm1Db250ZXh0IiwiQ1NTX1ZBUl9MQUJFTF9XSURUSCIsIkNTU19WQVJfV1JBUFBFUl9XSURUSCIsIkRFRkFVTFRfVkFMVUVfUFJPUCIsInRvUGVyY2VudCIsIndyYXBWYWxpZGF0ZSIsIkZvcm1JdGVtQ29udGVudCIsIkZhbGxiYWNrRm9ybVByb3ZpZGVyIiwidXNlRm9ybUl0ZW1Db250ZXh0IiwidXNlRm9ybUl0ZW1XYXRjaCIsInVzZVZhbGlkYXRpb25UcmlnZ2VyIiwiaXNSZW5kZXJGbkNoaWxkIiwiY2hpbGQiLCJGb3JtSXRlbUlubmVyIiwicHJvcHMiLCJuYW1lIiwibGFiZWwiLCJyZXF1aXJlZCIsInJ1bGVzIiwiZGVmYXVsdFZhbHVlIiwiaGVscCIsImV4dHJhIiwidmFsaWRhdGVTdGF0dXMiLCJkZXBlbmRlbmNpZXMiLCJ3YXRjaE5hbWVzIiwic2hvdWxkVXBkYXRlIiwidmFsaWRhdGVUcmlnZ2VyIiwidmFsaWRhdGVGaXJzdCIsInZhbGlkYXRlRGVib3VuY2UiLCJub1N0eWxlIiwiX3Byb3BzJHZhbHVlUHJvcE5hbWUiLCJ2YWx1ZVByb3BOYW1lIiwiY2xhc3NOYW1lIiwibGFiZWxDb2wiLCJ3cmFwcGVyQ29sIiwiY2hpbGRyZW4iLCJjbGFzc2VzIiwiX3VzZUZvcm1JdGVtQ29udGV4dCIsImN0eCIsIm1ldGhvZHMiLCJjb250cm9sIiwidHJpZ2dlciIsIl91c2VGb3JtSXRlbVdhdGNoIiwiYWxsVmFsdWVzIiwiZGVwVmFsdWVzIiwic2hvdWxkUmVuZGVyIiwiX3VzZVZhbGlkYXRpb25UcmlnZ2VyIiwid2l0aFRyaWdnZXIiLCJyZW5kZXJGbiIsImlzUmVxdWlyZWQiLCJzaG93UmVxdWlyZWQiLCJyZXF1aXJlZE1hcmsiLCJsYWJlbFdpZHRoIiwid3JhcHBlcldpZHRoIiwibWVyZ2VkUnVsZXMiLCJ2YWxpZGF0ZSIsIk9iamVjdCIsImFzc2lnbiIsImNvbnRlbnRQcm9wcyIsInJvb3RTdHlsZSIsIl9kZWZpbmVQcm9wZXJ0eSIsImxheW91dCIsImNvbmNhdCIsIlN0cmluZyIsInVuZGVmaW5lZCIsInN0eWxlIiwiTGFiZWwiLCJzaXplIiwiY29sb24iLCJGb3JtSXRlbSJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxJQUFJLElBQUlDLEtBQUssUUFBUSxtQkFBbUI7QUNBOUQsU0FBU0MsVUFBVSxFQUFFQyxPQUFPLFFBQVEsT0FBTztBQUMzQyxTQUFTQyxPQUFPLElBQUlDLFVBQVUsRUFBRUMsT0FBTyxRQUFRLHdCQUF3QjtBQUN2RSxPQUFPQyxVQUFVLE1BQU0sZUFBZTtBQUV0QyxTQUFTQyxXQUFXLFFBQVEsUUFBUTtBQUNwQyxTQUFTQyxtQkFBbUIsRUFBRUMscUJBQXFCLEVBQUVDLGtCQUFrQixRQUFRLGFBQWE7QUFDNUYsU0FBU0MsU0FBUyxFQUFFQyxZQUFZLFFBQVEsVUFBVTtBQUNsRCxTQUFTQyxlQUFlLFFBQVEsbUJBQW1CO0FBQ25ELFNBQVNDLG9CQUFvQixFQUFFQyxrQkFBa0IsUUFBUSxzQkFBc0I7QUFDL0UsU0FBU0MsZ0JBQWdCLFFBQVEsb0JBQW9CO0FBQ3JELFNBQVNDLG9CQUFvQixRQUFRLHdCQUF3QjtBQUc3RDtBRERBO0FBQ0E7QUNHQSxJQUFNQyxlQUFlLEdBQUcsU0FBbEJBLGVBQWVBLENBQ25CQyxLQUE4QztFQUFBLE9BQ0YsT0FBT0EsS0FBSyxLQUFLLFVBQVU7QUFBQTtBQUV6RTtBREpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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QUFBLElBQUhBLEdBQUcsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBSEEsR0FBRyxDQUFFOEIsS0FBSyxLQUFJN0UsSUFBQSxDQUFBLE1BQUEsRUFBQTtRQUFNeUMsU0FBUyxFQUFFSSxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQUFELFFBQUEsRUFBQTtNQUFBLENBQUEsQ0FBVTtJQUFBLENBQUEsQ0FFN0QsRUFDRDVDLElBQUEsQ0FBQSxLQUFBLEVBQUE7TUFBS3lDLFNBQVMsRUFBRUksT0FBTyxDQUFDLFNBQVMsQ0FBQztNQUFBRCxRQUFBLEVBQ2hDNUMsSUFBQSxDQUFDZSxlQUFlLEVBQUFrRCxNQUFBLENBQUFDLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBS0MsWUFBWSxDQUFBO0lBQUksQ0FBQSxDQUNqQztFQUFBLENBQUEsQ0FDRjtBQUVWO0FBRUEsT0FBTSxTQUFVVyxRQUFRQSxDQUFpRHZELEtBQWtDLEVBQUE7RUFDekcsSUFBTXdCLEdBQUcsR0FBRzVDLFVBQVUsQ0FBQ00sV0FBVyxDQUFDO0VBRW5DLElBQUlzQyxHQUFHLEtBQUEsSUFBQSxJQUFIQSxHQUFHLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUhBLEdBQUcsQ0FBRUMsT0FBTyxFQUFFO0lBQ2hCLE9BQU9oRCxJQUFBLENBQUNzQixhQUFhLEVBQUEyQyxNQUFBLENBQUFDLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBSzNDLEtBQUssQ0FBQSxDQUFJO0VBQ3JDO0VBRUEsT0FDRXZCLElBQUEsQ0FBQ2dCLG9CQUFvQixFQUFBO0lBQUE0QixRQUFBLEVBQ25CNUMsSUFBQSxDQUFDc0IsYUFBYSxFQUFBMkMsTUFBQSxDQUFBQyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQUszQyxLQUFLLENBQUE7RUFBSSxDQUFBLENBQ1A7QUFFM0I7QUFFQSxlQUFldUQsUUFBUSIsImZpbGUiOiJjb21wb25lbnRzL0Zvcm0vRm9ybUl0ZW0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgdXNlQ29udGV4dCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IFR5cG9ncmFwaHkgZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBGb3JtQ29udGV4dCB9IGZyb20gJy4vRm9ybSc7XG5pbXBvcnQgeyBDU1NfVkFSX0xBQkVMX1dJRFRILCBDU1NfVkFSX1dSQVBQRVJfV0lEVEgsIERFRkFVTFRfVkFMVUVfUFJPUCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IHRvUGVyY2VudCwgd3JhcFZhbGlkYXRlIH0gZnJvbSAnLi9oZWxwZXInO1xuaW1wb3J0IHsgRm9ybUl0ZW1Db250ZW50IH0gZnJvbSAnLi9Gb3JtSXRlbUNvbnRlbnQnO1xuaW1wb3J0IHsgRmFsbGJhY2tGb3JtUHJvdmlkZXIsIHVzZUZvcm1JdGVtQ29udGV4dCB9IGZyb20gJy4vdXNlRm9ybUl0ZW1Db250ZXh0JztcbmltcG9ydCB7IHVzZUZvcm1JdGVtV2F0Y2ggfSBmcm9tICcuL3VzZUZvcm1JdGVtV2F0Y2gnO1xuaW1wb3J0IHsgdXNlVmFsaWRhdGlvblRyaWdnZXIgfSBmcm9tICcuL3VzZVZhbGlkYXRpb25UcmlnZ2VyJztcbi8qKlxuICogUnVudGltZSB0eXBlIGd1YXJkIGZvciByZW5kZXItcHJvcCBjaGlsZHJlbi5cbiAqL1xuY29uc3QgaXNSZW5kZXJGbkNoaWxkID0gKGNoaWxkKSA9PiB0eXBlb2YgY2hpbGQgPT09ICdmdW5jdGlvbic7XG4vKipcbiAqIEZvcm0gZmllbGQgd3JhcHBlciB0aGF0IGJyaWRnZXMgYHJlYWN0LWhvb2stZm9ybWAncyBDb250cm9sbGVyIHdpdGggdGhlIEZvcm1cbiAqIGxheW91dCBzeXN0ZW0sIHZhbGlkYXRpb24gc3RhdHVzIGRpc3BsYXksIGFuZCBjb25maWd1cmFibGUgdHJpZ2dlciBiZWhhdmlvci5cbiAqXG4gKiBXaGVuIGEgYG5hbWVgIGlzIHByb3ZpZGVkLCB0aGUgZmllbGQgaXMgcmVnaXN0ZXJlZCB3aXRoIGByZWFjdC1ob29rLWZvcm1gIHZpYVxuICogYSBgQ29udHJvbGxlcmAgYW5kIHN1cHBvcnRzIHZhbGlkYXRpb24gcnVsZXMsIGRlcGVuZGVuY2llcywgYW5kIHN0YXR1cyBmZWVkYmFjay5cbiAqIFdpdGhvdXQgYSBgbmFtZWAsIGl0IHJlbmRlcnMgYXMgYSBmcmVlIHdyYXBwZXIgZm9yIHVuY29udHJvbGxlZCBjb250ZW50LlxuICpcbiAqIFN1cHBvcnRzIHR3byBjaGlsZCBwYXR0ZXJuczpcbiAqIC0gKipSZWFjdCBlbGVtZW50Kio6IGF1dG9tYXRpY2FsbHkgYm91bmQgdmlhIGBSZWFjdC5jbG9uZUVsZW1lbnRgIHdpdGggdmFsdWUvb25DaGFuZ2Uvb25CbHVyLlxuICogLSAqKlJlbmRlci1wcm9wIGZ1bmN0aW9uKio6IHJlY2VpdmVzIGB7IGZpZWxkLCBmaWVsZFN0YXRlLCBmb3JtLCB2YWx1ZXMgfWAgZm9yIGZ1bGwgY29udHJvbC5cbiAqXG4gKiBAdGVtcGxhdGUgVEZpZWxkVmFsdWVzIC0gVGhlIHNoYXBlIG9mIHRoZSBmb3JtIHZhbHVlcy5cbiAqIEBwYXJhbSBwcm9wcyAtIHtAbGluayBGb3JtSXRlbVByb3BzfVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIC8vIEVsZW1lbnQgY2hpbGQgKGF1dG8tYm91bmQpXG4gKiA8Rm9ybUl0ZW0gbmFtZT1cImVtYWlsXCIgbGFiZWw9XCJFbWFpbFwiIHJ1bGVzPXt7IHJlcXVpcmVkOiB0cnVlIH19PlxuICogICA8SW5wdXQgcGxhY2Vob2xkZXI9XCJFbnRlciBlbWFpbFwiIC8+XG4gKiA8L0Zvcm1JdGVtPlxuICpcbiAqIC8vIFJlbmRlci1wcm9wIGNoaWxkXG4gKiA8Rm9ybUl0ZW0gbmFtZT1cImFncmVlXCI+XG4gKiAgIHsoeyBmaWVsZCB9KSA9PiA8Q2hlY2tib3ggey4uLmZpZWxkfSAvPn1cbiAqIDwvRm9ybUl0ZW0+XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gRm9ybUl0ZW1Jbm5lcihwcm9wcykge1xuICAgIGNvbnN0IHsgbmFtZSwgbGFiZWwsIHJlcXVpcmVkLCBydWxlcywgZGVmYXVsdFZhbHVlLCBoZWxwLCBleHRyYSwgdmFsaWRhdGVTdGF0dXMsIGRlcGVuZGVuY2llcywgd2F0Y2hOYW1lcywgc2hvdWxkVXBkYXRlLCB2YWxpZGF0ZVRyaWdnZXIsIHZhbGlkYXRlRmlyc3QsIHZhbGlkYXRlRGVib3VuY2UsIG5vU3R5bGUsIHZhbHVlUHJvcE5hbWUgPSBERUZBVUxUX1ZBTFVFX1BST1AsIGNsYXNzTmFtZSwgbGFiZWxDb2wsIHdyYXBwZXJDb2wsIGNoaWxkcmVuLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoJ2Zvcm0taXRlbScpO1xuICAgIGNvbnN0IHsgY3R4LCBtZXRob2RzLCBjb250cm9sLCB0cmlnZ2VyIH0gPSB1c2VGb3JtSXRlbUNvbnRleHQobmFtZSk7XG4gICAgY29uc3QgeyBhbGxWYWx1ZXMsIGRlcFZhbHVlcywgc2hvdWxkUmVuZGVyIH0gPSB1c2VGb3JtSXRlbVdhdGNoKHtcbiAgICAgICAgY29udHJvbCxcbiAgICAgICAgbWV0aG9kcyxcbiAgICAgICAgZGVwZW5kZW5jaWVzLFxuICAgICAgICB3YXRjaE5hbWVzLFxuICAgICAgICBzaG91bGRVcGRhdGUsXG4gICAgICAgIG5hbWUsXG4gICAgfSk7XG4gICAgY29uc3QgeyB3aXRoVHJpZ2dlciB9ID0gdXNlVmFsaWRhdGlvblRyaWdnZXIoe1xuICAgICAgICBuYW1lLFxuICAgICAgICB0cmlnZ2VyLFxuICAgICAgICB2YWxpZGF0ZVRyaWdnZXIsXG4gICAgICAgIHZhbGlkYXRlRGVib3VuY2UsXG4gICAgICAgIGRlcGVuZGVuY2llcyxcbiAgICAgICAgZGVwVmFsdWVzLFxuICAgIH0pO1xuICAgIGNvbnN0IHJlbmRlckZuID0gaXNSZW5kZXJGbkNoaWxkKGNoaWxkcmVuKSA/IGNoaWxkcmVuIDogbnVsbDtcbiAgICBjb25zdCBpc1JlcXVpcmVkID0gcmVxdWlyZWQgIT09IG51bGwgJiYgcmVxdWlyZWQgIT09IHZvaWQgMCA/IHJlcXVpcmVkIDogISEocnVsZXMgPT09IG51bGwgfHwgcnVsZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJ1bGVzLnJlcXVpcmVkKTtcbiAgICBjb25zdCBzaG93UmVxdWlyZWQgPSAoY3R4ID09PSBudWxsIHx8IGN0eCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3R4LnJlcXVpcmVkTWFyaykgIT09IGZhbHNlO1xuICAgIGNvbnN0IGxhYmVsV2lkdGggPSB1c2VNZW1vKCgpID0+IHRvUGVyY2VudChsYWJlbENvbCAhPT0gbnVsbCAmJiBsYWJlbENvbCAhPT0gdm9pZCAwID8gbGFiZWxDb2wgOiBjdHggPT09IG51bGwgfHwgY3R4ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjdHgubGFiZWxDb2wpLCBbbGFiZWxDb2wsIGN0eCA9PT0gbnVsbCB8fCBjdHggPT09IHZvaWQgMCA/IHZvaWQgMCA6IGN0eC5sYWJlbENvbF0pO1xuICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHVzZU1lbW8oKCkgPT4gdG9QZXJjZW50KHdyYXBwZXJDb2wgIT09IG51bGwgJiYgd3JhcHBlckNvbCAhPT0gdm9pZCAwID8gd3JhcHBlckNvbCA6IGN0eCA9PT0gbnVsbCB8fCBjdHggPT09IHZvaWQgMCA/IHZvaWQgMCA6IGN0eC53cmFwcGVyQ29sKSwgW3dyYXBwZXJDb2wsIGN0eCA9PT0gbnVsbCB8fCBjdHggPT09IHZvaWQgMCA/IHZvaWQgMCA6IGN0eC53cmFwcGVyQ29sXSk7XG4gICAgY29uc3QgbWVyZ2VkUnVsZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKCEocnVsZXMgPT09IG51bGwgfHwgcnVsZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJ1bGVzLnZhbGlkYXRlKSB8fCAhdmFsaWRhdGVGaXJzdClcbiAgICAgICAgICAgIHJldHVybiBydWxlcztcbiAgICAgICAgY29uc3QgdmFsaWRhdGUgPSB3cmFwVmFsaWRhdGUocnVsZXMudmFsaWRhdGUsIHZhbGlkYXRlRmlyc3QpO1xuICAgICAgICBpZiAodmFsaWRhdGUgPT09IHJ1bGVzLnZhbGlkYXRlKVxuICAgICAgICAgICAgcmV0dXJuIHJ1bGVzO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBydWxlcyksIHsgdmFsaWRhdGUgfSk7XG4gICAgfSwgW3J1bGVzLCB2YWxpZGF0ZUZpcnN0XSk7XG4gICAgY29uc3QgY29udGVudFByb3BzID0gdXNlTWVtbygoKSA9PiAoe1xuICAgICAgICBuYW1lLFxuICAgICAgICBjb250cm9sLFxuICAgICAgICBtZXRob2RzLFxuICAgICAgICBydWxlczogbWVyZ2VkUnVsZXMsXG4gICAgICAgIGRlZmF1bHRWYWx1ZSxcbiAgICAgICAgdmFsaWRhdGVTdGF0dXMsXG4gICAgICAgIHZhbHVlUHJvcE5hbWUsXG4gICAgICAgIGhlbHAsXG4gICAgICAgIGV4dHJhLFxuICAgICAgICBjdHgsXG4gICAgICAgIGNoaWxkcmVuLFxuICAgICAgICByZW5kZXJGbixcbiAgICAgICAgYWxsVmFsdWVzLFxuICAgICAgICBzaG91bGRVcGRhdGUsXG4gICAgICAgIHNob3VsZFJlbmRlcixcbiAgICAgICAgd2l0aFRyaWdnZXIsXG4gICAgfSksIFtcbiAgICAgICAgbmFtZSwgY29udHJvbCwgbWV0aG9kcywgbWVyZ2VkUnVsZXMsIGRlZmF1bHRWYWx1ZSwgdmFsaWRhdGVTdGF0dXMsXG4gICAgICAgIHZhbHVlUHJvcE5hbWUsIGhlbHAsIGV4dHJhLCBjdHgsIGNoaWxkcmVuLCByZW5kZXJGbiwgYWxsVmFsdWVzLFxuICAgICAgICBzaG91bGRVcGRhdGUsIHNob3VsZFJlbmRlciwgd2l0aFRyaWdnZXIsXG4gICAgXSk7XG4gICAgaWYgKG5vU3R5bGUpIHtcbiAgICAgICAgcmV0dXJuIF9qc3goRm9ybUl0ZW1Db250ZW50LCBPYmplY3QuYXNzaWduKHt9LCBjb250ZW50UHJvcHMpKTtcbiAgICB9XG4gICAgY29uc3Qgcm9vdFN0eWxlID0ge1xuICAgICAgICBbQ1NTX1ZBUl9MQUJFTF9XSURUSF06IGxhYmVsV2lkdGgsXG4gICAgICAgIFtDU1NfVkFSX1dSQVBQRVJfV0lEVEhdOiB3cmFwcGVyV2lkdGgsXG4gICAgfTtcbiAgICByZXR1cm4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdyb290Jywgam9pbkNscyhjbGFzc05hbWUsIChjdHggPT09IG51bGwgfHwgY3R4ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjdHgubGF5b3V0KSAmJiBjbGFzc2VzKGBsYXlvdXQtJHtjdHgubGF5b3V0fWApKSksIFwiZGF0YS1mb3JtLWl0ZW0tbmFtZVwiOiBuYW1lID8gU3RyaW5nKG5hbWUpIDogdW5kZWZpbmVkLCBzdHlsZTogcm9vdFN0eWxlLCBjaGlsZHJlbjogW2xhYmVsICYmIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbGFiZWwnLCBqb2luQ2xzKHNob3dSZXF1aXJlZCAmJiBpc1JlcXVpcmVkICYmIGNsYXNzZXMoJ2xhYmVsLXJlcXVpcmVkJykpKSwgY2hpbGRyZW46IFtfanN4KFR5cG9ncmFwaHkuTGFiZWwsIHsgc2l6ZTogJ3MnLCBjaGlsZHJlbjogbGFiZWwgfSksIChjdHggPT09IG51bGwgfHwgY3R4ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjdHguY29sb24pICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb2xvbicpLCBjaGlsZHJlbjogXCI6XCIgfSldIH0pKSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29udHJvbCcpLCBjaGlsZHJlbjogX2pzeChGb3JtSXRlbUNvbnRlbnQsIE9iamVjdC5hc3NpZ24oe30sIGNvbnRlbnRQcm9wcykpIH0pXSB9KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gRm9ybUl0ZW0ocHJvcHMpIHtcbiAgICBjb25zdCBjdHggPSB1c2VDb250ZXh0KEZvcm1Db250ZXh0KTtcbiAgICBpZiAoY3R4ID09PSBudWxsIHx8IGN0eCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3R4Lm1ldGhvZHMpIHtcbiAgICAgICAgcmV0dXJuIF9qc3goRm9ybUl0ZW1Jbm5lciwgT2JqZWN0LmFzc2lnbih7fSwgcHJvcHMpKTtcbiAgICB9XG4gICAgcmV0dXJuIChfanN4KEZhbGxiYWNrRm9ybVByb3ZpZGVyLCB7IGNoaWxkcmVuOiBfanN4KEZvcm1JdGVtSW5uZXIsIE9iamVjdC5hc3NpZ24oe30sIHByb3BzKSkgfSkpO1xufVxuZXhwb3J0IGRlZmF1bHQgRm9ybUl0ZW07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -0,0 +1,18 @@
1
+ import type { FieldValues } from 'react-hook-form';
2
+ import type { FormItemContentProps } from './interface';
3
+ /**
4
+ * Renders the inner content of a `<FormItem>`.
5
+ *
6
+ * Handles two branches:
7
+ * - **Free branch** (no `name`): renders children directly or via a render-prop,
8
+ * optionally gated by `shouldUpdate`.
9
+ * - **Controlled branch** (has `name`): wraps children in a `react-hook-form`
10
+ * `Controller`, injecting field bindings and validation-trigger wrappers.
11
+ *
12
+ * Both branches render their output inside a {@link MetaWrapper} for consistent
13
+ * help/error/extra display.
14
+ *
15
+ * @template TFieldValues - The shape of the form values.
16
+ * @param props - {@link FormItemContentProps}
17
+ */
18
+ export declare function FormItemContent<TFieldValues extends FieldValues = FieldValues>({ name, control, methods, rules, defaultValue, validateStatus, valuePropName, help, extra, ctx, children, renderFn, allValues, shouldUpdate, shouldRender, withTrigger, }: FormItemContentProps<TFieldValues>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,146 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import React from 'react';
4
+ import { Controller } from 'react-hook-form';
5
+ import { default as classnames, joinCls } from '../../utils/classnames';
6
+ import { STATUS_ERROR, TRIGGER_BLUR, TRIGGER_CHANGE } from './constants';
7
+ import { getStatusProps, resolveStatus } from './helper';
8
+ var classes = classnames('form-item');
9
+ /**
10
+ * Clones a React element and injects `react-hook-form` Controller bindings
11
+ * (`value`, `onChange`, `onBlur`, `ref`) while preserving any existing handlers
12
+ * on the child element.
13
+ *
14
+ * For non-DOM (custom) components, status props (`invalid`/`success`) are also spread.
15
+ *
16
+ * @template TFieldValues - The shape of the form values.
17
+ * @param children - The child React node to clone.
18
+ * @param field - Controller field bindings from `react-hook-form`.
19
+ * @param status - The resolved validation status.
20
+ * @param statusProps - Boolean props derived from the status.
21
+ * @param valuePropName - The prop name used to bind the controlled value.
22
+ * @param ctx - Form context value for reading the `disabled` state.
23
+ * @returns The cloned element with injected bindings, or the original node if not a valid element.
24
+ */
25
+ function cloneChildElement(children, field, status, statusProps, valuePropName, ctx) {
26
+ var _a, _b, _c;
27
+ if (! /*#__PURE__*/React.isValidElement(children)) return children;
28
+ var childElement = children;
29
+ var isDomElement = typeof childElement.type === 'string';
30
+ var childOnChange = (_a = childElement.props) === null || _a === void 0 ? void 0 : _a.onChange;
31
+ var childOnBlur = (_b = childElement.props) === null || _b === void 0 ? void 0 : _b.onBlur;
32
+ return /*#__PURE__*/React.cloneElement(childElement, Object.assign(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, valuePropName, field.value), "onChange", function onChange() {
33
+ field.onChange.apply(field, arguments);
34
+ childOnChange === null || childOnChange === void 0 ? void 0 : childOnChange.apply(void 0, arguments);
35
+ }), "onBlur", function onBlur() {
36
+ field.onBlur();
37
+ childOnBlur === null || childOnBlur === void 0 ? void 0 : childOnBlur.apply(void 0, arguments);
38
+ }), "disabled", (ctx === null || ctx === void 0 ? void 0 : ctx.disabled) || ((_c = childElement.props) === null || _c === void 0 ? void 0 : _c.disabled)), 'aria-invalid', status === STATUS_ERROR || undefined), "ref", field.ref), isDomElement ? {} : statusProps));
39
+ }
40
+ /**
41
+ * Wraps field content with help text, error messages, and extra content regions.
42
+ *
43
+ * Applies status-based CSS classes to the wrapper and renders the appropriate
44
+ * feedback messages below the field.
45
+ */
46
+ function MetaWrapper(_ref) {
47
+ var content = _ref.content,
48
+ status = _ref.status,
49
+ errorMessage = _ref.errorMessage,
50
+ help = _ref.help,
51
+ extra = _ref.extra,
52
+ disabled = _ref.disabled;
53
+ return _jsxs("div", {
54
+ className: classes('content', joinCls(status && classes("content-".concat(status)), disabled && classes('content-disabled'))),
55
+ children: [content, errorMessage && !help && _jsx("div", {
56
+ className: classes('help', classes('help-error')),
57
+ children: errorMessage
58
+ }), help && _jsx("div", {
59
+ className: classes('help', joinCls(status && classes("help-".concat(status)))),
60
+ children: help
61
+ }), extra && _jsx("div", {
62
+ className: classes('extra'),
63
+ children: extra
64
+ })]
65
+ });
66
+ }
67
+ /**
68
+ * Renders the inner content of a `<FormItem>`.
69
+ *
70
+ * Handles two branches:
71
+ * - **Free branch** (no `name`): renders children directly or via a render-prop,
72
+ * optionally gated by `shouldUpdate`.
73
+ * - **Controlled branch** (has `name`): wraps children in a `react-hook-form`
74
+ * `Controller`, injecting field bindings and validation-trigger wrappers.
75
+ *
76
+ * Both branches render their output inside a {@link MetaWrapper} for consistent
77
+ * help/error/extra display.
78
+ *
79
+ * @template TFieldValues - The shape of the form values.
80
+ * @param props - {@link FormItemContentProps}
81
+ */
82
+ export function FormItemContent(_ref2) {
83
+ var name = _ref2.name,
84
+ control = _ref2.control,
85
+ methods = _ref2.methods,
86
+ rules = _ref2.rules,
87
+ defaultValue = _ref2.defaultValue,
88
+ validateStatus = _ref2.validateStatus,
89
+ valuePropName = _ref2.valuePropName,
90
+ help = _ref2.help,
91
+ extra = _ref2.extra,
92
+ ctx = _ref2.ctx,
93
+ children = _ref2.children,
94
+ renderFn = _ref2.renderFn,
95
+ allValues = _ref2.allValues,
96
+ shouldUpdate = _ref2.shouldUpdate,
97
+ shouldRender = _ref2.shouldRender,
98
+ withTrigger = _ref2.withTrigger;
99
+ // --- Free child branch (no name) ---
100
+ if (!name) {
101
+ var freeContent = renderFn ? shouldUpdate && !shouldRender ? null : renderFn({
102
+ form: methods,
103
+ values: allValues
104
+ }) : children;
105
+ return _jsx(MetaWrapper, {
106
+ content: freeContent,
107
+ status: resolveStatus(validateStatus),
108
+ help: help,
109
+ extra: extra,
110
+ disabled: ctx === null || ctx === void 0 ? void 0 : ctx.disabled
111
+ });
112
+ }
113
+ // --- Controlled field branch (has name) ---
114
+ return _jsx(Controller, {
115
+ name: name,
116
+ control: control,
117
+ rules: rules,
118
+ defaultValue: defaultValue,
119
+ render: function render(_ref3) {
120
+ var field = _ref3.field,
121
+ fieldState = _ref3.fieldState;
122
+ var _a;
123
+ var status = resolveStatus(validateStatus, fieldState);
124
+ var statusProps = getStatusProps(status);
125
+ var patchedField = Object.assign(Object.assign(Object.assign({}, field), {
126
+ onChange: withTrigger(TRIGGER_CHANGE, field.onChange),
127
+ onBlur: withTrigger(TRIGGER_BLUR, field.onBlur)
128
+ }), statusProps);
129
+ var content = renderFn ? renderFn({
130
+ field: patchedField,
131
+ fieldState: fieldState,
132
+ form: methods,
133
+ values: allValues
134
+ }) : cloneChildElement(children, patchedField, status, statusProps, valuePropName, ctx);
135
+ return _jsx(MetaWrapper, {
136
+ content: content,
137
+ status: status,
138
+ errorMessage: (_a = fieldState.error) === null || _a === void 0 ? void 0 : _a.message,
139
+ help: help,
140
+ extra: extra,
141
+ disabled: ctx === null || ctx === void 0 ? void 0 : ctx.disabled
142
+ });
143
+ }
144
+ });
145
+ }
146
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRm9ybS9Gb3JtSXRlbUNvbnRlbnQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0Zvcm0vRm9ybUl0ZW1Db250ZW50LnRzeCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiUmVhY3QiLCJDb250cm9sbGVyIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwiU1RBVFVTX0VSUk9SIiwiVFJJR0dFUl9CTFVSIiwiVFJJR0dFUl9DSEFOR0UiLCJnZXRTdGF0dXNQcm9wcyIsInJlc29sdmVTdGF0dXMiLCJjbGFzc2VzIiwiY2xvbmVDaGlsZEVsZW1lbnQiLCJjaGlsZHJlbiIsImZpZWxkIiwic3RhdHVzIiwic3RhdHVzUHJvcHMiLCJ2YWx1ZVByb3BOYW1lIiwiY3R4IiwiX2EiLCJfYiIsIl9jIiwiaXNWYWxpZEVsZW1lbnQiLCJjaGlsZEVsZW1lbnQiLCJpc0RvbUVsZW1lbnQiLCJ0eXBlIiwiY2hpbGRPbkNoYW5nZSIsInByb3BzIiwib25DaGFuZ2UiLCJjaGlsZE9uQmx1ciIsIm9uQmx1ciIsImNsb25lRWxlbWVudCIsIk9iamVjdCIsImFzc2lnbiIsIl9kZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJkaXNhYmxlZCIsInVuZGVmaW5lZCIsInJlZiIsIk1ldGFXcmFwcGVyIiwiX3JlZiIsImNvbnRlbnQiLCJlcnJvck1lc3NhZ2UiLCJoZWxwIiwiZXh0cmEiLCJjbGFzc05hbWUiLCJjb25jYXQiLCJGb3JtSXRlbUNvbnRlbnQiLCJfcmVmMiIsIm5hbWUiLCJjb250cm9sIiwibWV0aG9kcyIsInJ1bGVzIiwiZGVmYXVsdFZhbHVlIiwidmFsaWRhdGVTdGF0dXMiLCJyZW5kZXJGbiIsImFsbFZhbHVlcyIsInNob3VsZFVwZGF0ZSIsInNob3VsZFJlbmRlciIsIndpdGhUcmlnZ2VyIiwiZnJlZUNvbnRlbnQiLCJmb3JtIiwidmFsdWVzIiwicmVuZGVyIiwiX3JlZjMiLCJmaWVsZFN0YXRlIiwicGF0Y2hlZEZpZWxkIiwiZXJyb3IiLCJtZXNzYWdlIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBU0EsR0FBRyxJQUFJQyxJQUFJLEVBQUVDLElBQUksSUFBSUMsS0FBSyxRQUFRLG1CQUFtQjtBQ0E5RCxPQUFPQyxLQUFLLE1BQU0sT0FBTztBQUN6QixTQUFTQyxVQUFVLFFBQVEsaUJBQWlCO0FBQzVDLFNBQVNDLE9BQU8sSUFBSUMsVUFBVSxFQUFFQyxPQUFPLFFBQVEsd0JBQXdCO0FBQ3ZFLFNBQVNDLFlBQVksRUFBRUMsWUFBWSxFQUFFQyxjQUFjLFFBQVEsYUFBYTtBQUN4RSxTQUFTQyxjQUFjLEVBQUVDLGFBQWEsUUFBUSxVQUFVO0FBSXhELElBQU1DLE9BQU8sR0FBR1AsVUFBVSxDQUFDLFdBQVcsQ0FBQztBQUV2QztBREZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ0lBLFNBQVNRLGlCQUFpQkEsQ0FDeEJDLFFBQXlCLEVBQ3pCQyxLQUFtRSxFQUNuRUMsTUFBc0MsRUFDdENDLFdBQThDLEVBQzlDQyxhQUFxQixFQUNyQkMsR0FBNEIsRUFBQTtFRFIxQixJQUFJQyxFQUFFLEVBQUVDLEVBQUUsRUFBRUMsRUFBRTtFQ1VoQixJQUFJLGVBQUNwQixLQUFLLENBQUNxQixjQUFjLENBQUNULFFBQVEsQ0FBQyxFQUFFLE9BQU9BLFFBQVE7RUFDcEQsSUFBTVUsWUFBWSxHQUFHVixRQUF1RDtFQUM1RSxJQUFNVyxZQUFZLEdBQUcsT0FBT0QsWUFBWSxDQUFDRSxJQUFJLEtBQUssUUFBUTtFQUMxRCxJQUFNQyxhQUFhLEdBQUcsQ0FBQVAsRUFBQSxHQUFBSSxZQUFZLENBQUNJLEtBQUssTUFBQSxJQUFBLElBQUFSLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFUyxRQUFzRDtFQUNoRyxJQUFNQyxXQUFXLEdBQUcsQ0FBQVQsRUFBQSxHQUFBRyxZQUFZLENBQUNJLEtBQUssTUFBQSxJQUFBLElBQUFQLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFVSxNQUFvRDtFQUU1RixvQkFBTzdCLEtBQUssQ0FBQzhCLFlBQVksQ0FBQ1IsWUFBWSxFQUFBUyxNQUFBLENBQUFDLE1BQUEsQ0FBQUMsZUFBQSxDQUFBQSxlQUFBLENBQUFBLGVBQUEsQ0FBQUEsZUFBQSxDQUFBQSxlQUFBLENBQUFBLGVBQUEsS0FDbkNqQixhQUFhLEVBQUdILEtBQUssQ0FBQ3FCLEtBQUssZUFDbEIsU0FBVlAsUUFBUUEsQ0FBQSxFQUF5QjtJQUMvQmQsS0FBSyxDQUFDYyxRQUFRLENBQUFRLEtBQUEsQ0FBZHRCLEtBQUssRUFBQXVCLFNBQWlCLENBQUM7SUFDdkJYLGFBQWEsS0FBQSxJQUFBLElBQWJBLGFBQWEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBYkEsYUFBYSxDQUFBVSxLQUFBLFNBQUFDLFNBQVUsQ0FBQztFQUMxQixDQUFDLGFBQ08sU0FBUlAsTUFBTUEsQ0FBQSxFQUF5QjtJQUM3QmhCLEtBQUssQ0FBQ2dCLE1BQU0sQ0FBQSxDQUFFO0lBQ2RELFdBQVcsS0FBQSxJQUFBLElBQVhBLFdBQVcsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBWEEsV0FBVyxDQUFBTyxLQUFBLFNBQUFDLFNBQVUsQ0FBQztFQUN4QixDQUFDLGVBQ1MsQ0FBQW5CLEdBQUcsS0FBQSxJQUFBLElBQUhBLEdBQUcsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBSEEsR0FBRyxDQUFFb0IsUUFBUSxNQUFLLENBQUFqQixFQUFBLEdBQUFFLFlBQVksQ0FBQ0ksS0FBSyxNQUFBLElBQUEsSUFBQU4sRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUVpQixRQUFvQixDQUFBLEdBQ3BFLGNBQWMsRUFBRXZCLE1BQU0sS0FBS1QsWUFBWSxJQUFJaUMsU0FBUyxVQUMvQ3pCLEtBQUssQ0FBQzBCLEdBQUcsR0FDVmhCLFlBQVksR0FBRyxDQUFBLENBQUUsR0FBR1IsV0FBWSxDQUFBLENBQ3BDO0FBQ0o7QUFFQTtBRGpCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDbUJBLFNBQVN5QixXQUFXQSxDQUFBQyxJQUFBLEVBY25CO0VBQUEsSUFiQ0MsT0FBTyxHQUFBRCxJQUFBLENBQVBDLE9BQU87SUFDUDVCLE1BQU0sR0FBQTJCLElBQUEsQ0FBTjNCLE1BQU07SUFDTjZCLFlBQVksR0FBQUYsSUFBQSxDQUFaRSxZQUFZO0lBQ1pDLElBQUksR0FBQUgsSUFBQSxDQUFKRyxJQUFJO0lBQ0pDLEtBQUssR0FBQUosSUFBQSxDQUFMSSxLQUFLO0lBQ0xSLFFBQVEsR0FBQUksSUFBQSxDQUFSSixRQUFRO0VBU1IsT0FDRXRDLEtBQUEsQ0FBQSxLQUFBLEVBQUE7SUFDRStDLFNBQVMsRUFBRXBDLE9BQU8sQ0FBQyxTQUFTLEVBQUVOLE9BQU8sQ0FDbkNVLE1BQU0sSUFBSUosT0FBTyxZQUFBcUMsTUFBQSxDQUFZakMsTUFBTSxDQUFFLENBQUMsRUFDdEN1QixRQUFRLElBQUkzQixPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FDeEMsQ0FBQztJQUFBRSxRQUFBLEVBQUEsQ0FFRDhCLE9BQU8sRUFDUEMsWUFBWSxJQUFJLENBQUNDLElBQUksSUFDcEIvQyxJQUFBLENBQUEsS0FBQSxFQUFBO01BQUtpRCxTQUFTLEVBQUVwQyxPQUFPLENBQUMsTUFBTSxFQUFFQSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7TUFBQUUsUUFBQSxFQUFHK0I7SUFBWSxDQUFBLENBQ3RFLEVBQ0FDLElBQUksSUFDSC9DLElBQUEsQ0FBQSxLQUFBLEVBQUE7TUFBS2lELFNBQVMsRUFBRXBDLE9BQU8sQ0FBQyxNQUFNLEVBQUVOLE9BQU8sQ0FBQ1UsTUFBTSxJQUFJSixPQUFPLFNBQUFxQyxNQUFBLENBQVNqQyxNQUFNLENBQUUsQ0FBQyxDQUFDLENBQUM7TUFBQUYsUUFBQSxFQUFHZ0M7SUFBSSxDQUFBLENBQ3JGLEVBQ0FDLEtBQUssSUFBSWhELElBQUEsQ0FBQSxLQUFBLEVBQUE7TUFBS2lELFNBQVMsRUFBRXBDLE9BQU8sQ0FBQyxPQUFPLENBQUM7TUFBQUUsUUFBQSxFQUFHaUM7SUFBSyxDQUFBLENBQU87RUFBQSxDQUFBLENBQ3JEO0FBRVY7QUFFQTtBRGhEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDa0RBLE9BQU0sU0FBVUcsZUFBZUEsQ0FBQUMsS0FBQSxFQWlCTTtFQUFBLElBaEJuQ0MsSUFBSSxHQUFBRCxLQUFBLENBQUpDLElBQUk7SUFDSkMsT0FBTyxHQUFBRixLQUFBLENBQVBFLE9BQU87SUFDUEMsT0FBTyxHQUFBSCxLQUFBLENBQVBHLE9BQU87SUFDUEMsS0FBSyxHQUFBSixLQUFBLENBQUxJLEtBQUs7SUFDTEMsWUFBWSxHQUFBTCxLQUFBLENBQVpLLFlBQVk7SUFDWkMsY0FBYyxHQUFBTixLQUFBLENBQWRNLGNBQWM7SUFDZHZDLGFBQWEsR0FBQWlDLEtBQUEsQ0FBYmpDLGFBQWE7SUFDYjRCLElBQUksR0FBQUssS0FBQSxDQUFKTCxJQUFJO0lBQ0pDLEtBQUssR0FBQUksS0FBQSxDQUFMSixLQUFLO0lBQ0w1QixHQUFHLEdBQUFnQyxLQUFBLENBQUhoQyxHQUFHO0lBQ0hMLFFBQVEsR0FBQXFDLEtBQUEsQ0FBUnJDLFFBQVE7SUFDUjRDLFFBQVEsR0FBQVAsS0FBQSxDQUFSTyxRQUFRO0lBQ1JDLFNBQVMsR0FBQVIsS0FBQSxDQUFUUSxTQUFTO0lBQ1RDLFlBQVksR0FBQVQsS0FBQSxDQUFaUyxZQUFZO0lBQ1pDLFlBQVksR0FBQVYsS0FBQSxDQUFaVSxZQUFZO0lBQ1pDLFdBQVcsR0FBQVgsS0FBQSxDQUFYVyxXQUFXO0VBRVg7RUFDQSxJQUFJLENBQUNWLElBQUksRUFBRTtJQUNULElBQU1XLFdBQVcsR0FBR0wsUUFBUSxHQUN2QkUsWUFBWSxJQUFJLENBQUNDLFlBQVksR0FBRyxJQUFJLEdBQUdILFFBQVEsQ0FBQztNQUFFTSxJQUFJLEVBQUVWLE9BQU87TUFBRVcsTUFBTSxFQUFFTjtJQUFTLENBQUUsQ0FBQyxHQUNyRjdDLFFBQTRCO0lBRWpDLE9BQ0VmLElBQUEsQ0FBQzJDLFdBQVcsRUFBQTtNQUNWRSxPQUFPLEVBQUVtQixXQUFXO01BQ3BCL0MsTUFBTSxFQUFFTCxhQUFhLENBQUM4QyxjQUFjLENBQUM7TUFDckNYLElBQUksRUFBRUEsSUFBSTtNQUNWQyxLQUFLLEVBQUVBLEtBQUs7TUFDWlIsUUFBUSxFQUFFcEIsR0FBRyxLQUFBLElBQUEsSUFBSEEsR0FBRyxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFIQSxHQUFHLENBQUVvQjtJQUFRLENBQUEsQ0FDdkI7RUFFTjtFQUVBO0VBQ0EsT0FDRXhDLElBQUEsQ0FBQ0ksVUFBVSxFQUFBO0lBQ1RpRCxJQUFJLEVBQUVBLElBQUk7SUFDVkMsT0FBTyxFQUFFQSxPQUFPO0lBQ2hCRSxLQUFLLEVBQUVBLEtBQUs7SUFDWkMsWUFBWSxFQUFFQSxZQUFZO0lBQzFCVSxNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBQUMsS0FBQSxFQUE0QjtNQUFBLElBQXZCcEQsS0FBSyxHQUFBb0QsS0FBQSxDQUFMcEQsS0FBSztRQUFFcUQsVUFBVSxHQUFBRCxLQUFBLENBQVZDLFVBQVU7TURqRnRCLElBQUloRCxFQUFFO01Da0ZWLElBQU1KLE1BQU0sR0FBR0wsYUFBYSxDQUFDOEMsY0FBYyxFQUFFVyxVQUFVLENBQUM7TUFDeEQsSUFBTW5ELFdBQVcsR0FBR1AsY0FBYyxDQUFDTSxNQUFNLENBQUM7TUFDMUMsSUFBTXFELFlBQVksR0FBQXBDLE1BQUEsQ0FBQUMsTUFBQSxDQUFBRCxNQUFBLENBQUFDLE1BQUEsQ0FBQUQsTUFBQSxDQUFBQyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ2JuQixLQUFLLENBQUEsRUFBQTtRQUNSYyxRQUFRLEVBQUVpQyxXQUFXLENBQUNyRCxjQUFjLEVBQUVNLEtBQUssQ0FBQ2MsUUFBUSxDQUFDO1FBQ3JERSxNQUFNLEVBQUUrQixXQUFXLENBQUN0RCxZQUFZLEVBQUVPLEtBQUssQ0FBQ2dCLE1BQU07TUFBQyxDQUFBLENBQUEsRUFDNUNkLFdBQVcsQ0FDZjtNQUVELElBQU0yQixPQUFPLEdBQUdjLFFBQVEsR0FDcEJBLFFBQVEsQ0FBQztRQUFFM0MsS0FBSyxFQUFFc0QsWUFBWTtRQUFFRCxVQUFVLEVBQVZBLFVBQVU7UUFBRUosSUFBSSxFQUFFVixPQUFPO1FBQUVXLE1BQU0sRUFBRU47TUFBUyxDQUFFLENBQUMsR0FDL0U5QyxpQkFBaUIsQ0FBQ0MsUUFBMkIsRUFBRXVELFlBQVksRUFBRXJELE1BQU0sRUFBRUMsV0FBVyxFQUFFQyxhQUFhLEVBQUVDLEdBQUcsQ0FBQztNQUV6RyxPQUNFcEIsSUFBQSxDQUFDMkMsV0FBVyxFQUFBO1FBQ1ZFLE9BQU8sRUFBRUEsT0FBTztRQUNoQjVCLE1BQU0sRUFBRUEsTUFBTTtRQUNkNkIsWUFBWSxFQUFFLENBQUF6QixFQUFBLEdBQUFnRCxVQUFVLENBQUNFLEtBQUssTUFBQSxJQUFBLElBQUFsRCxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRW1ELE9BQU87UUFDdkN6QixJQUFJLEVBQUVBLElBQUk7UUFDVkMsS0FBSyxFQUFFQSxLQUFLO1FBQ1pSLFFBQVEsRUFBRXBCLEdBQUcsS0FBQSxJQUFBLElBQUhBLEdBQUcsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBSEEsR0FBRyxDQUFFb0I7TUFBUSxDQUFBLENBQ3ZCO0lBRU47RUFBQyxDQUFBLENBQ0Q7QUFFTiIsImZpbGUiOiJjb21wb25lbnRzL0Zvcm0vRm9ybUl0ZW1Db250ZW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDb250cm9sbGVyIH0gZnJvbSAncmVhY3QtaG9vay1mb3JtJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgU1RBVFVTX0VSUk9SLCBUUklHR0VSX0JMVVIsIFRSSUdHRVJfQ0hBTkdFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0U3RhdHVzUHJvcHMsIHJlc29sdmVTdGF0dXMgfSBmcm9tICcuL2hlbHBlcic7XG5jb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcygnZm9ybS1pdGVtJyk7XG4vKipcbiAqIENsb25lcyBhIFJlYWN0IGVsZW1lbnQgYW5kIGluamVjdHMgYHJlYWN0LWhvb2stZm9ybWAgQ29udHJvbGxlciBiaW5kaW5nc1xuICogKGB2YWx1ZWAsIGBvbkNoYW5nZWAsIGBvbkJsdXJgLCBgcmVmYCkgd2hpbGUgcHJlc2VydmluZyBhbnkgZXhpc3RpbmcgaGFuZGxlcnNcbiAqIG9uIHRoZSBjaGlsZCBlbGVtZW50LlxuICpcbiAqIEZvciBub24tRE9NIChjdXN0b20pIGNvbXBvbmVudHMsIHN0YXR1cyBwcm9wcyAoYGludmFsaWRgL2BzdWNjZXNzYCkgYXJlIGFsc28gc3ByZWFkLlxuICpcbiAqIEB0ZW1wbGF0ZSBURmllbGRWYWx1ZXMgLSBUaGUgc2hhcGUgb2YgdGhlIGZvcm0gdmFsdWVzLlxuICogQHBhcmFtIGNoaWxkcmVuIC0gVGhlIGNoaWxkIFJlYWN0IG5vZGUgdG8gY2xvbmUuXG4gKiBAcGFyYW0gZmllbGQgLSBDb250cm9sbGVyIGZpZWxkIGJpbmRpbmdzIGZyb20gYHJlYWN0LWhvb2stZm9ybWAuXG4gKiBAcGFyYW0gc3RhdHVzIC0gVGhlIHJlc29sdmVkIHZhbGlkYXRpb24gc3RhdHVzLlxuICogQHBhcmFtIHN0YXR1c1Byb3BzIC0gQm9vbGVhbiBwcm9wcyBkZXJpdmVkIGZyb20gdGhlIHN0YXR1cy5cbiAqIEBwYXJhbSB2YWx1ZVByb3BOYW1lIC0gVGhlIHByb3AgbmFtZSB1c2VkIHRvIGJpbmQgdGhlIGNvbnRyb2xsZWQgdmFsdWUuXG4gKiBAcGFyYW0gY3R4IC0gRm9ybSBjb250ZXh0IHZhbHVlIGZvciByZWFkaW5nIHRoZSBgZGlzYWJsZWRgIHN0YXRlLlxuICogQHJldHVybnMgVGhlIGNsb25lZCBlbGVtZW50IHdpdGggaW5qZWN0ZWQgYmluZGluZ3MsIG9yIHRoZSBvcmlnaW5hbCBub2RlIGlmIG5vdCBhIHZhbGlkIGVsZW1lbnQuXG4gKi9cbmZ1bmN0aW9uIGNsb25lQ2hpbGRFbGVtZW50KGNoaWxkcmVuLCBmaWVsZCwgc3RhdHVzLCBzdGF0dXNQcm9wcywgdmFsdWVQcm9wTmFtZSwgY3R4KSB7XG4gICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgaWYgKCFSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZHJlbikpXG4gICAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICBjb25zdCBjaGlsZEVsZW1lbnQgPSBjaGlsZHJlbjtcbiAgICBjb25zdCBpc0RvbUVsZW1lbnQgPSB0eXBlb2YgY2hpbGRFbGVtZW50LnR5cGUgPT09ICdzdHJpbmcnO1xuICAgIGNvbnN0IGNoaWxkT25DaGFuZ2UgPSAoX2EgPSBjaGlsZEVsZW1lbnQucHJvcHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vbkNoYW5nZTtcbiAgICBjb25zdCBjaGlsZE9uQmx1ciA9IChfYiA9IGNoaWxkRWxlbWVudC5wcm9wcykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm9uQmx1cjtcbiAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkRWxlbWVudCwgT2JqZWN0LmFzc2lnbih7IFt2YWx1ZVByb3BOYW1lXTogZmllbGQudmFsdWUsIG9uQ2hhbmdlOiAoLi4uYXJncykgPT4ge1xuICAgICAgICAgICAgZmllbGQub25DaGFuZ2UoLi4uYXJncyk7XG4gICAgICAgICAgICBjaGlsZE9uQ2hhbmdlID09PSBudWxsIHx8IGNoaWxkT25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNoaWxkT25DaGFuZ2UoLi4uYXJncyk7XG4gICAgICAgIH0sIG9uQmx1cjogKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgIGZpZWxkLm9uQmx1cigpO1xuICAgICAgICAgICAgY2hpbGRPbkJsdXIgPT09IG51bGwgfHwgY2hpbGRPbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNoaWxkT25CbHVyKC4uLmFyZ3MpO1xuICAgICAgICB9LCBkaXNhYmxlZDogKGN0eCA9PT0gbnVsbCB8fCBjdHggPT09IHZvaWQgMCA/IHZvaWQgMCA6IGN0eC5kaXNhYmxlZCkgfHwgKChfYyA9IGNoaWxkRWxlbWVudC5wcm9wcykgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmRpc2FibGVkKSwgJ2FyaWEtaW52YWxpZCc6IHN0YXR1cyA9PT0gU1RBVFVTX0VSUk9SIHx8IHVuZGVmaW5lZCwgcmVmOiBmaWVsZC5yZWYgfSwgKGlzRG9tRWxlbWVudCA/IHt9IDogc3RhdHVzUHJvcHMpKSk7XG59XG4vKipcbiAqIFdyYXBzIGZpZWxkIGNvbnRlbnQgd2l0aCBoZWxwIHRleHQsIGVycm9yIG1lc3NhZ2VzLCBhbmQgZXh0cmEgY29udGVudCByZWdpb25zLlxuICpcbiAqIEFwcGxpZXMgc3RhdHVzLWJhc2VkIENTUyBjbGFzc2VzIHRvIHRoZSB3cmFwcGVyIGFuZCByZW5kZXJzIHRoZSBhcHByb3ByaWF0ZVxuICogZmVlZGJhY2sgbWVzc2FnZXMgYmVsb3cgdGhlIGZpZWxkLlxuICovXG5mdW5jdGlvbiBNZXRhV3JhcHBlcih7IGNvbnRlbnQsIHN0YXR1cywgZXJyb3JNZXNzYWdlLCBoZWxwLCBleHRyYSwgZGlzYWJsZWQsIH0pIHtcbiAgICByZXR1cm4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb250ZW50Jywgam9pbkNscyhzdGF0dXMgJiYgY2xhc3NlcyhgY29udGVudC0ke3N0YXR1c31gKSwgZGlzYWJsZWQgJiYgY2xhc3NlcygnY29udGVudC1kaXNhYmxlZCcpKSksIGNoaWxkcmVuOiBbY29udGVudCwgZXJyb3JNZXNzYWdlICYmICFoZWxwICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdoZWxwJywgY2xhc3NlcygnaGVscC1lcnJvcicpKSwgY2hpbGRyZW46IGVycm9yTWVzc2FnZSB9KSksIGhlbHAgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2hlbHAnLCBqb2luQ2xzKHN0YXR1cyAmJiBjbGFzc2VzKGBoZWxwLSR7c3RhdHVzfWApKSksIGNoaWxkcmVuOiBoZWxwIH0pKSwgZXh0cmEgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZXh0cmEnKSwgY2hpbGRyZW46IGV4dHJhIH0pXSB9KSk7XG59XG4vKipcbiAqIFJlbmRlcnMgdGhlIGlubmVyIGNvbnRlbnQgb2YgYSBgPEZvcm1JdGVtPmAuXG4gKlxuICogSGFuZGxlcyB0d28gYnJhbmNoZXM6XG4gKiAtICoqRnJlZSBicmFuY2gqKiAobm8gYG5hbWVgKTogcmVuZGVycyBjaGlsZHJlbiBkaXJlY3RseSBvciB2aWEgYSByZW5kZXItcHJvcCxcbiAqICAgb3B0aW9uYWxseSBnYXRlZCBieSBgc2hvdWxkVXBkYXRlYC5cbiAqIC0gKipDb250cm9sbGVkIGJyYW5jaCoqIChoYXMgYG5hbWVgKTogd3JhcHMgY2hpbGRyZW4gaW4gYSBgcmVhY3QtaG9vay1mb3JtYFxuICogICBgQ29udHJvbGxlcmAsIGluamVjdGluZyBmaWVsZCBiaW5kaW5ncyBhbmQgdmFsaWRhdGlvbi10cmlnZ2VyIHdyYXBwZXJzLlxuICpcbiAqIEJvdGggYnJhbmNoZXMgcmVuZGVyIHRoZWlyIG91dHB1dCBpbnNpZGUgYSB7QGxpbmsgTWV0YVdyYXBwZXJ9IGZvciBjb25zaXN0ZW50XG4gKiBoZWxwL2Vycm9yL2V4dHJhIGRpc3BsYXkuXG4gKlxuICogQHRlbXBsYXRlIFRGaWVsZFZhbHVlcyAtIFRoZSBzaGFwZSBvZiB0aGUgZm9ybSB2YWx1ZXMuXG4gKiBAcGFyYW0gcHJvcHMgLSB7QGxpbmsgRm9ybUl0ZW1Db250ZW50UHJvcHN9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBGb3JtSXRlbUNvbnRlbnQoeyBuYW1lLCBjb250cm9sLCBtZXRob2RzLCBydWxlcywgZGVmYXVsdFZhbHVlLCB2YWxpZGF0ZVN0YXR1cywgdmFsdWVQcm9wTmFtZSwgaGVscCwgZXh0cmEsIGN0eCwgY2hpbGRyZW4sIHJlbmRlckZuLCBhbGxWYWx1ZXMsIHNob3VsZFVwZGF0ZSwgc2hvdWxkUmVuZGVyLCB3aXRoVHJpZ2dlciwgfSkge1xuICAgIC8vIC0tLSBGcmVlIGNoaWxkIGJyYW5jaCAobm8gbmFtZSkgLS0tXG4gICAgaWYgKCFuYW1lKSB7XG4gICAgICAgIGNvbnN0IGZyZWVDb250ZW50ID0gcmVuZGVyRm5cbiAgICAgICAgICAgID8gKHNob3VsZFVwZGF0ZSAmJiAhc2hvdWxkUmVuZGVyID8gbnVsbCA6IHJlbmRlckZuKHsgZm9ybTogbWV0aG9kcywgdmFsdWVzOiBhbGxWYWx1ZXMgfSkpXG4gICAgICAgICAgICA6IGNoaWxkcmVuO1xuICAgICAgICByZXR1cm4gKF9qc3goTWV0YVdyYXBwZXIsIHsgY29udGVudDogZnJlZUNvbnRlbnQsIHN0YXR1czogcmVzb2x2ZVN0YXR1cyh2YWxpZGF0ZVN0YXR1cyksIGhlbHA6IGhlbHAsIGV4dHJhOiBleHRyYSwgZGlzYWJsZWQ6IGN0eCA9PT0gbnVsbCB8fCBjdHggPT09IHZvaWQgMCA/IHZvaWQgMCA6IGN0eC5kaXNhYmxlZCB9KSk7XG4gICAgfVxuICAgIC8vIC0tLSBDb250cm9sbGVkIGZpZWxkIGJyYW5jaCAoaGFzIG5hbWUpIC0tLVxuICAgIHJldHVybiAoX2pzeChDb250cm9sbGVyLCB7IG5hbWU6IG5hbWUsIGNvbnRyb2w6IGNvbnRyb2wsIHJ1bGVzOiBydWxlcywgZGVmYXVsdFZhbHVlOiBkZWZhdWx0VmFsdWUsIHJlbmRlcjogKHsgZmllbGQsIGZpZWxkU3RhdGUgfSkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gcmVzb2x2ZVN0YXR1cyh2YWxpZGF0ZVN0YXR1cywgZmllbGRTdGF0ZSk7XG4gICAgICAgICAgICBjb25zdCBzdGF0dXNQcm9wcyA9IGdldFN0YXR1c1Byb3BzKHN0YXR1cyk7XG4gICAgICAgICAgICBjb25zdCBwYXRjaGVkRmllbGQgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZmllbGQpLCB7IG9uQ2hhbmdlOiB3aXRoVHJpZ2dlcihUUklHR0VSX0NIQU5HRSwgZmllbGQub25DaGFuZ2UpLCBvbkJsdXI6IHdpdGhUcmlnZ2VyKFRSSUdHRVJfQkxVUiwgZmllbGQub25CbHVyKSB9KSwgc3RhdHVzUHJvcHMpO1xuICAgICAgICAgICAgY29uc3QgY29udGVudCA9IHJlbmRlckZuXG4gICAgICAgICAgICAgICAgPyByZW5kZXJGbih7IGZpZWxkOiBwYXRjaGVkRmllbGQsIGZpZWxkU3RhdGUsIGZvcm06IG1ldGhvZHMsIHZhbHVlczogYWxsVmFsdWVzIH0pXG4gICAgICAgICAgICAgICAgOiBjbG9uZUNoaWxkRWxlbWVudChjaGlsZHJlbiwgcGF0Y2hlZEZpZWxkLCBzdGF0dXMsIHN0YXR1c1Byb3BzLCB2YWx1ZVByb3BOYW1lLCBjdHgpO1xuICAgICAgICAgICAgcmV0dXJuIChfanN4KE1ldGFXcmFwcGVyLCB7IGNvbnRlbnQ6IGNvbnRlbnQsIHN0YXR1czogc3RhdHVzLCBlcnJvck1lc3NhZ2U6IChfYSA9IGZpZWxkU3RhdGUuZXJyb3IpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5tZXNzYWdlLCBoZWxwOiBoZWxwLCBleHRyYTogZXh0cmEsIGRpc2FibGVkOiBjdHggPT09IG51bGwgfHwgY3R4ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjdHguZGlzYWJsZWQgfSkpO1xuICAgICAgICB9IH0pKTtcbn0iLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -0,0 +1,46 @@
1
+ /** Default form layout direction. */
2
+ export declare const DEFAULT_LAYOUT: "horizontal";
3
+ /** Default label text alignment. */
4
+ export declare const DEFAULT_LABEL_ALIGN: "right";
5
+ /** Default label column span in the 12-column grid. */
6
+ export declare const DEFAULT_LABEL_COL = 3;
7
+ /** Default wrapper/control column span in the 12-column grid. */
8
+ export declare const DEFAULT_WRAPPER_COL = 9;
9
+ /** Default form size variant. */
10
+ export declare const DEFAULT_SIZE: "middle";
11
+ /** Default `scrollIntoView` behavior when scrolling to the first error. */
12
+ export declare const DEFAULT_SCROLL_BEHAVIOR: "smooth";
13
+ /** Default `scrollIntoView` block position. */
14
+ export declare const DEFAULT_SCROLL_BLOCK: "center";
15
+ /** Default `scrollIntoView` inline position. */
16
+ export declare const DEFAULT_SCROLL_INLINE: "nearest";
17
+ /** Standard HTML `name` attribute used for querySelector lookups. */
18
+ export declare const SELECTOR_NAME_ATTR = "name";
19
+ /** Data attribute rendered on FormItem wrappers for querySelector lookups. */
20
+ export declare const SELECTOR_DATA_FORM_ITEM_ATTR = "data-form-item-name";
21
+ /** Minimum allowed grid column value. */
22
+ export declare const GRID_MIN = 0;
23
+ /** Total number of columns in the grid system. */
24
+ export declare const GRID_COLUMNS = 12;
25
+ /** Percentage multiplier for grid-to-percent conversion. */
26
+ export declare const PERCENT = 100;
27
+ /** Minimum debounce threshold in milliseconds (values at or below are treated as immediate). */
28
+ export declare const DEBOUNCE_MIN = 0;
29
+ /** Validation status indicating an async validation is in progress. */
30
+ export declare const STATUS_VALIDATING: "validating";
31
+ /** Validation status indicating a field error. */
32
+ export declare const STATUS_ERROR: "error";
33
+ /** Validation status indicating a field passed validation. */
34
+ export declare const STATUS_SUCCESS: "success";
35
+ /** Sentinel for the parallel `validateFirst` mode. */
36
+ export declare const VALIDATE_PARALLEL: "parallel";
37
+ /** Trigger mode for change events. */
38
+ export declare const TRIGGER_CHANGE: "onChange";
39
+ /** Trigger mode for blur events. */
40
+ export declare const TRIGGER_BLUR: "onBlur";
41
+ /** CSS custom property controlling the label column width. */
42
+ export declare const CSS_VAR_LABEL_WIDTH = "--om-form-label-width";
43
+ /** CSS custom property controlling the wrapper/control column width. */
44
+ export declare const CSS_VAR_WRAPPER_WIDTH = "--om-form-wrapper-width";
45
+ /** Default prop name used to bind a controlled value to a child element. */
46
+ export declare const DEFAULT_VALUE_PROP: "value";
@@ -0,0 +1,65 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Form layout defaults
3
+ // ---------------------------------------------------------------------------
4
+ /** Default form layout direction. */
5
+ export var DEFAULT_LAYOUT = 'horizontal';
6
+ /** Default label text alignment. */
7
+ export var DEFAULT_LABEL_ALIGN = 'right';
8
+ /** Default label column span in the 12-column grid. */
9
+ export var DEFAULT_LABEL_COL = 3;
10
+ /** Default wrapper/control column span in the 12-column grid. */
11
+ export var DEFAULT_WRAPPER_COL = 9;
12
+ /** Default form size variant. */
13
+ export var DEFAULT_SIZE = 'middle';
14
+ // ---------------------------------------------------------------------------
15
+ // Scroll-to-error defaults
16
+ // ---------------------------------------------------------------------------
17
+ /** Default `scrollIntoView` behavior when scrolling to the first error. */
18
+ export var DEFAULT_SCROLL_BEHAVIOR = 'smooth';
19
+ /** Default `scrollIntoView` block position. */
20
+ export var DEFAULT_SCROLL_BLOCK = 'center';
21
+ /** Default `scrollIntoView` inline position. */
22
+ export var DEFAULT_SCROLL_INLINE = 'nearest';
23
+ /** Standard HTML `name` attribute used for querySelector lookups. */
24
+ export var SELECTOR_NAME_ATTR = 'name';
25
+ /** Data attribute rendered on FormItem wrappers for querySelector lookups. */
26
+ export var SELECTOR_DATA_FORM_ITEM_ATTR = 'data-form-item-name';
27
+ // ---------------------------------------------------------------------------
28
+ // Grid math helpers (12-column grid)
29
+ // ---------------------------------------------------------------------------
30
+ /** Minimum allowed grid column value. */
31
+ export var GRID_MIN = 0;
32
+ /** Total number of columns in the grid system. */
33
+ export var GRID_COLUMNS = 12;
34
+ /** Percentage multiplier for grid-to-percent conversion. */
35
+ export var PERCENT = 100;
36
+ // ---------------------------------------------------------------------------
37
+ // Validation / trigger helpers
38
+ // ---------------------------------------------------------------------------
39
+ /** Minimum debounce threshold in milliseconds (values at or below are treated as immediate). */
40
+ export var DEBOUNCE_MIN = 0;
41
+ /** Validation status indicating an async validation is in progress. */
42
+ export var STATUS_VALIDATING = 'validating';
43
+ /** Validation status indicating a field error. */
44
+ export var STATUS_ERROR = 'error';
45
+ /** Validation status indicating a field passed validation. */
46
+ export var STATUS_SUCCESS = 'success';
47
+ /** Sentinel for the parallel `validateFirst` mode. */
48
+ export var VALIDATE_PARALLEL = 'parallel';
49
+ /** Trigger mode for change events. */
50
+ export var TRIGGER_CHANGE = 'onChange';
51
+ /** Trigger mode for blur events. */
52
+ export var TRIGGER_BLUR = 'onBlur';
53
+ // ---------------------------------------------------------------------------
54
+ // CSS variable names for layout width
55
+ // ---------------------------------------------------------------------------
56
+ /** CSS custom property controlling the label column width. */
57
+ export var CSS_VAR_LABEL_WIDTH = '--om-form-label-width';
58
+ /** CSS custom property controlling the wrapper/control column width. */
59
+ export var CSS_VAR_WRAPPER_WIDTH = '--om-form-wrapper-width';
60
+ // ---------------------------------------------------------------------------
61
+ // Default prop mapping for controlled inputs
62
+ // ---------------------------------------------------------------------------
63
+ /** Default prop name used to bind a controlled value to a child element. */
64
+ export var DEFAULT_VALUE_PROP = 'value';
65
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRm9ybS9jb25zdGFudHMudHMiXSwibmFtZXMiOlsiREVGQVVMVF9MQVlPVVQiLCJERUZBVUxUX0xBQkVMX0FMSUdOIiwiREVGQVVMVF9MQUJFTF9DT0wiLCJERUZBVUxUX1dSQVBQRVJfQ09MIiwiREVGQVVMVF9TSVpFIiwiREVGQVVMVF9TQ1JPTExfQkVIQVZJT1IiLCJERUZBVUxUX1NDUk9MTF9CTE9DSyIsIkRFRkFVTFRfU0NST0xMX0lOTElORSIsIlNFTEVDVE9SX05BTUVfQVRUUiIsIlNFTEVDVE9SX0RBVEFfRk9STV9JVEVNX0FUVFIiLCJHUklEX01JTiIsIkdSSURfQ09MVU1OUyIsIlBFUkNFTlQiLCJERUJPVU5DRV9NSU4iLCJTVEFUVVNfVkFMSURBVElORyIsIlNUQVRVU19FUlJPUiIsIlNUQVRVU19TVUNDRVNTIiwiVkFMSURBVEVfUEFSQUxMRUwiLCJUUklHR0VSX0NIQU5HRSIsIlRSSUdHRVJfQkxVUiIsIkNTU19WQVJfTEFCRUxfV0lEVEgiLCJDU1NfVkFSX1dSQVBQRVJfV0lEVEgiLCJERUZBVUxUX1ZBTFVFX1BST1AiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0EsT0FBTyxJQUFNQSxjQUFjLEdBQUcsWUFBcUI7QUFFbkQ7QUFDQSxPQUFPLElBQU1DLG1CQUFtQixHQUFHLE9BQWdCO0FBRW5EO0FBQ0EsT0FBTyxJQUFNQyxpQkFBaUIsR0FBRyxDQUFDO0FBRWxDO0FBQ0EsT0FBTyxJQUFNQyxtQkFBbUIsR0FBRyxDQUFDO0FBRXBDO0FBQ0EsT0FBTyxJQUFNQyxZQUFZLEdBQUcsUUFBaUI7QUFFN0M7QUFDQTtBQUNBO0FBRUE7QUFDQSxPQUFPLElBQU1DLHVCQUF1QixHQUFHLFFBQWlCO0FBRXhEO0FBQ0EsT0FBTyxJQUFNQyxvQkFBb0IsR0FBRyxRQUFpQjtBQUVyRDtBQUNBLE9BQU8sSUFBTUMscUJBQXFCLEdBQUcsU0FBa0I7QUFFdkQ7QUFDQSxPQUFPLElBQU1DLGtCQUFrQixHQUFHLE1BQU07QUFFeEM7QUFDQSxPQUFPLElBQU1DLDRCQUE0QixHQUFHLHFCQUFxQjtBQUVqRTtBQUNBO0FBQ0E7QUFFQTtBQUNBLE9BQU8sSUFBTUMsUUFBUSxHQUFHLENBQUM7QUFFekI7QUFDQSxPQUFPLElBQU1DLFlBQVksR0FBRyxFQUFFO0FBRTlCO0FBQ0EsT0FBTyxJQUFNQyxPQUFPLEdBQUcsR0FBRztBQUUxQjtBQUNBO0FBQ0E7QUFFQTtBQUNBLE9BQU8sSUFBTUMsWUFBWSxHQUFHLENBQUM7QUFFN0I7QUFDQSxPQUFPLElBQU1DLGlCQUFpQixHQUFHLFlBQXFCO0FBRXREO0FBQ0EsT0FBTyxJQUFNQyxZQUFZLEdBQUcsT0FBZ0I7QUFFNUM7QUFDQSxPQUFPLElBQU1DLGNBQWMsR0FBRyxTQUFrQjtBQUVoRDtBQUNBLE9BQU8sSUFBTUMsaUJBQWlCLEdBQUcsVUFBbUI7QUFFcEQ7QUFDQSxPQUFPLElBQU1DLGNBQWMsR0FBRyxVQUFtQjtBQUVqRDtBQUNBLE9BQU8sSUFBTUMsWUFBWSxHQUFHLFFBQWlCO0FBRTdDO0FBQ0E7QUFDQTtBQUVBO0FBQ0EsT0FBTyxJQUFNQyxtQkFBbUIsR0FBRyx1QkFBdUI7QUFFMUQ7QUFDQSxPQUFPLElBQU1DLHFCQUFxQixHQUFHLHlCQUF5QjtBQUU5RDtBQUNBO0FBQ0E7QUFFQTtBQUNBLE9BQU8sSUFBTUMsa0JBQWtCLEdBQUcsT0FBZ0IiLCJmaWxlIjoiY29tcG9uZW50cy9Gb3JtL2NvbnN0YW50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -0,0 +1,120 @@
1
+ import type { ControllerFieldState, FieldError, FieldErrors, FieldPath, FieldValues, RegisterOptions, ValidateResult } from 'react-hook-form';
2
+ import type { FormItemProps, FormValidateStatus, FormProps } from './interface';
3
+ /**
4
+ * Converts a 12-column grid span to a CSS percentage width string.
5
+ *
6
+ * @param col - Grid column count (0–12). Values are clamped to the valid range.
7
+ * @returns A CSS percentage string (e.g. `"25%"`), or `undefined` when `col` is `null`/`undefined`.
8
+ */
9
+ export declare const toPercent: (col?: number) => string | undefined;
10
+ /**
11
+ * Type guard that narrows an unknown value to a `FieldError`-like object.
12
+ *
13
+ * `isFieldError` assumes `react-hook-form` places `type` on leaf errors,
14
+ * and `getFirstErrorPath` relies on that to stop descending once a leaf is found.
15
+ * If RHF changes this contract, tighten this predicate (e.g. require `message`/`ref`
16
+ * or another stricter leaf-shape check) to avoid false positives on nested containers.
17
+ *
18
+ * Checks for the presence of `type`, `message`, or `ref` properties which
19
+ * are characteristic of `react-hook-form` field errors.
20
+ *
21
+ * @param value - The value to check.
22
+ * @returns `true` if the value is a `FieldError`-like object.
23
+ */
24
+ export declare const isFieldError: (value: unknown) => value is FieldError;
25
+ /**
26
+ * Walks a nested `FieldErrors` tree (depth-first) and returns the dot-path
27
+ * of the first error encountered.
28
+ *
29
+ * Handles plain objects, arrays (e.g. field arrays), and deeply nested structures.
30
+ *
31
+ * @param errors - The `FieldErrors` object from `react-hook-form`.
32
+ * @returns The dot-separated path (e.g. `"items.0.name"`) or `null` if no error is found.
33
+ */
34
+ export declare const getFirstErrorPath: (errors: FieldErrors) => string | null;
35
+ /**
36
+ * Escapes a string for safe use inside a CSS attribute selector.
37
+ *
38
+ * Uses `CSS.escape` when available, with a regex fallback for SSR or
39
+ * environments without native support (e.g. nested field names like `"address.city"`).
40
+ *
41
+ * @param value - The raw attribute value to escape.
42
+ * @returns The escaped string safe for `querySelector`.
43
+ */
44
+ export declare const escapeAttr: (value: string) => string;
45
+ /**
46
+ * Scrolls the viewport to the first invalid field identified by `name`.
47
+ *
48
+ * Looks up the element using either the standard `name` attribute or the
49
+ * `data-form-item-name` data attribute. Supports custom scroll behavior
50
+ * via the `options` parameter.
51
+ *
52
+ * @param name - The field name (path) to scroll to.
53
+ * @param options - Scroll configuration from `FormProps['scrollToFirstError']`.
54
+ */
55
+ export declare const scrollToField: (name: string, options?: FormProps["scrollToFirstError"]) => void;
56
+ /**
57
+ * Resolves the effective validation status for a form field.
58
+ *
59
+ * An explicit `validateStatus` prop takes priority. Otherwise the status is
60
+ * derived from the `fieldState` provided by `react-hook-form`'s Controller.
61
+ *
62
+ * @param explicit - An explicit status override from props.
63
+ * @param fieldState - The Controller field state containing `error` and `isValidating`.
64
+ * @returns The resolved `FormValidateStatus`, or `undefined` if no status applies.
65
+ */
66
+ export declare const resolveStatus: (explicit?: FormValidateStatus, fieldState?: Pick<ControllerFieldState, "error" | "isValidating">) => FormValidateStatus | undefined;
67
+ /**
68
+ * Normalizes a `validateTrigger` prop into a consistent array form.
69
+ *
70
+ * @param value - A single trigger string, an array, or `undefined`.
71
+ * @returns An array of trigger modes (e.g. `['onChange', 'onBlur']`), or an empty array.
72
+ */
73
+ export declare const normalizeValidateTrigger: (value?: FormItemProps<FieldValues>["validateTrigger"]) => ("onBlur" | "onChange")[];
74
+ /**
75
+ * Maps a `FormValidateStatus` to boolean props suitable for Input-like components.
76
+ *
77
+ * @param status - The current validation status.
78
+ * @returns An object with `invalid: true`, `success: true`, or an empty object.
79
+ */
80
+ export declare const getStatusProps: (status?: FormValidateStatus) => {
81
+ invalid: boolean;
82
+ success?: undefined;
83
+ } | {
84
+ success: boolean;
85
+ invalid?: undefined;
86
+ } | {
87
+ invalid?: undefined;
88
+ success?: undefined;
89
+ };
90
+ /**
91
+ * Performs a shallow comparison of two arrays using `Object.is` for each element.
92
+ *
93
+ * @param a - First array.
94
+ * @param b - Second array.
95
+ * @returns `true` if both arrays have the same length and identical elements by reference.
96
+ */
97
+ export declare const shallowEqualArray: (a: unknown[], b: unknown[]) => boolean;
98
+ /**
99
+ * Normalizes a custom `ValidateResult` to be compatible with `react-hook-form`.
100
+ *
101
+ * RHF treats `null` as a truthy error value, so this converts `null` to `true` (valid).
102
+ *
103
+ * @param result - The raw validation result.
104
+ * @returns The normalized result (`true` for valid, or an error string/boolean).
105
+ */
106
+ export declare const normalizeValidateResult: (result: ValidateResult) => ValidateResult;
107
+ /**
108
+ * Wraps a multi-validator record to honor `validateFirst` sequencing.
109
+ *
110
+ * When `mode` is `true`, validators run **sequentially** and stop at the first error.
111
+ * When `mode` is `'parallel'`, all validators run concurrently and the first error found is returned.
112
+ * When `mode` is falsy or `validate` is a single function, the original value is returned unchanged.
113
+ *
114
+ * @template TValues - The shape of the form values.
115
+ * @template TName - The field path type.
116
+ * @param validate - The validator or record of validators from `RegisterOptions`.
117
+ * @param mode - The `validateFirst` mode.
118
+ * @returns A wrapped validator function, or the original value when no wrapping is needed.
119
+ */
120
+ export declare const wrapValidate: <TValues extends FieldValues, TName extends FieldPath<TValues>>(validate: NonNullable<RegisterOptions<TValues, TName>["validate"]>, mode?: FormItemProps<TValues>["validateFirst"]) => NonNullable<RegisterOptions<TValues, TName>["validate"]>;