@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,139 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = exports.QueryFilter = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ var _react = require("react");
11
+ var _classnames = require("../../../utils/classnames");
12
+ var _Button = require("../../Button");
13
+ var _ProForm = _interopRequireDefault(require("../ProForm"));
14
+ var _constants = require("../constants");
15
+ var _ProFormModule = _interopRequireDefault(require("../style/ProForm.module.scss"));
16
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
17
+ var t = {};
18
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
19
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
20
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ /**
25
+ * Horizontal search/filter form with collapsible fields and a
26
+ * search/reset/expand button bar.
27
+ *
28
+ * Fields beyond {@link QueryFilterProps.defaultColsNumber} are hidden
29
+ * when the filter is collapsed.
30
+ *
31
+ * @example
32
+ * ```tsx
33
+ * <QueryFilter onFinish={handleSearch} defaultColsNumber={2}>
34
+ * <ProFormText name="keyword" label="Keyword" />
35
+ * <ProFormSelect name="status" label="Status" fieldProps={{ options }} />
36
+ * <ProFormText name="author" label="Author" />
37
+ * </QueryFilter>
38
+ * ```
39
+ */
40
+ var QueryFilterBase = function QueryFilterBase(props) {
41
+ var _a, _b, _c;
42
+ var _props$defaultCollaps = props.defaultCollapsed,
43
+ defaultCollapsed = _props$defaultCollaps === void 0 ? true : _props$defaultCollaps,
44
+ collapsed = props.collapsed,
45
+ onCollapse = props.onCollapse,
46
+ _props$defaultColsNum = props.defaultColsNumber,
47
+ defaultColsNumber = _props$defaultColsNum === void 0 ? _constants.DEFAULT_COLS_NUMBER : _props$defaultColsNum,
48
+ labelWidth = props.labelWidth,
49
+ split = props.split,
50
+ submitter = props.submitter,
51
+ _onReset = props.onReset,
52
+ children = props.children,
53
+ formProps = __rest(props, ["defaultCollapsed", "collapsed", "onCollapse", "defaultColsNumber", "labelWidth", "split", "submitter", "onReset", "children"]);
54
+ var _useState = (0, _react.useState)(defaultCollapsed),
55
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
56
+ innerCollapsed = _useState2[0],
57
+ setInnerCollapsed = _useState2[1];
58
+ var mergedCollapsed = submitter === false ? false : collapsed !== null && collapsed !== void 0 ? collapsed : innerCollapsed;
59
+ var childrenArray = (0, _react.useMemo)(function () {
60
+ return _react.Children.toArray(children);
61
+ }, [children]);
62
+ var visibleChildren = (0, _react.useMemo)(function () {
63
+ if (!mergedCollapsed) return childrenArray;
64
+ return childrenArray.slice(0, defaultColsNumber);
65
+ }, [childrenArray, defaultColsNumber, mergedCollapsed]);
66
+ var toggleCollapsed = (0, _react.useCallback)(function () {
67
+ var next = !mergedCollapsed;
68
+ if (collapsed === undefined) {
69
+ setInnerCollapsed(next);
70
+ }
71
+ onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(next);
72
+ }, [collapsed, mergedCollapsed, onCollapse]);
73
+ var filterStyle = (0, _react.useMemo)(function () {
74
+ if (labelWidth === undefined) return undefined;
75
+ if (labelWidth === 'auto') {
76
+ return {
77
+ '--om-form-label-width': 'auto',
78
+ '--om-form-wrapper-width': '100%'
79
+ };
80
+ }
81
+ return {
82
+ '--om-form-label-width': "".concat(labelWidth, "px"),
83
+ '--om-form-wrapper-width': "calc(100% - ".concat(labelWidth, "px)")
84
+ };
85
+ }, [labelWidth]);
86
+ var submitterOptions = submitter === false ? undefined : submitter;
87
+ var searchConfig = submitterOptions === null || submitterOptions === void 0 ? void 0 : submitterOptions.searchConfig;
88
+ var collapseText = (_a = searchConfig === null || searchConfig === void 0 ? void 0 : searchConfig.collapseText) !== null && _a !== void 0 ? _a : _constants.DEFAULT_TEXT.collapse;
89
+ var expandText = (_b = searchConfig === null || searchConfig === void 0 ? void 0 : searchConfig.expandText) !== null && _b !== void 0 ? _b : _constants.DEFAULT_TEXT.expand;
90
+ var submitterRender = (0, _react.useCallback)(function (renderProps) {
91
+ var _a, _b;
92
+ var customDom = [(0, _jsxRuntime.jsx)(_Button.Button, {
93
+ type: 'button',
94
+ onClick: function onClick() {
95
+ return renderProps.submit();
96
+ },
97
+ children: (_a = submitterOptions === null || submitterOptions === void 0 ? void 0 : submitterOptions.submitText) !== null && _a !== void 0 ? _a : _constants.DEFAULT_TEXT.search
98
+ }, 'search'), (0, _jsxRuntime.jsx)(_Button.Button, {
99
+ type: 'button',
100
+ severity: 'secondary',
101
+ onClick: function onClick() {
102
+ return renderProps.reset();
103
+ },
104
+ children: (_b = submitterOptions === null || submitterOptions === void 0 ? void 0 : submitterOptions.resetText) !== null && _b !== void 0 ? _b : _constants.DEFAULT_TEXT.reset
105
+ }, 'reset'), (0, _jsxRuntime.jsx)(_Button.Button, {
106
+ type: 'button',
107
+ severity: 'secondary',
108
+ onClick: toggleCollapsed,
109
+ children: mergedCollapsed ? expandText : collapseText
110
+ }, 'collapse')];
111
+ if (submitterOptions === null || submitterOptions === void 0 ? void 0 : submitterOptions.render) {
112
+ return submitterOptions.render(renderProps, customDom);
113
+ }
114
+ return customDom;
115
+ }, [mergedCollapsed, expandText, collapseText, submitterOptions === null || submitterOptions === void 0 ? void 0 : submitterOptions.submitText, submitterOptions === null || submitterOptions === void 0 ? void 0 : submitterOptions.resetText, submitterOptions === null || submitterOptions === void 0 ? void 0 : submitterOptions.render, toggleCollapsed]);
116
+ var submitterConfig = submitterOptions === undefined ? false : Object.assign(Object.assign({}, submitterOptions), {
117
+ onReset: function onReset() {
118
+ var _a;
119
+ (_a = submitterOptions.onReset) === null || _a === void 0 ? void 0 : _a.call(submitterOptions);
120
+ _onReset === null || _onReset === void 0 ? void 0 : _onReset();
121
+ },
122
+ render: submitterRender
123
+ });
124
+ var queryFormProps = formProps;
125
+ return (0, _jsxRuntime.jsx)("div", {
126
+ className: (0, _classnames.joinCls)(_ProFormModule["default"]['proform__query-filter'], "".concat(_constants.CSS_PREFIX, "-query-filter"), split && _ProFormModule["default"]['proform__query-filter-split'], split && "".concat(_constants.CSS_PREFIX, "-query-filter-split")),
127
+ style: filterStyle,
128
+ children: (0, _jsxRuntime.jsx)(_ProForm["default"], Object.assign({}, queryFormProps, {
129
+ layout: (_c = formProps.layout) !== null && _c !== void 0 ? _c : 'inline',
130
+ submitter: submitterConfig,
131
+ children: visibleChildren
132
+ }))
133
+ });
134
+ };
135
+ var MemoizedQueryFilter = /*#__PURE__*/(0, _react.memo)(QueryFilterBase);
136
+ MemoizedQueryFilter.displayName = 'QueryFilter';
137
+ var QueryFilter = exports.QueryFilter = MemoizedQueryFilter;
138
+ var _default = exports["default"] = QueryFilter;
139
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1F1ZXJ5RmlsdGVyLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2NsYXNzbmFtZXMiLCJfQnV0dG9uIiwiX1Byb0Zvcm0iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2NvbnN0YW50cyIsIl9Qcm9Gb3JtTW9kdWxlIiwiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJRdWVyeUZpbHRlckJhc2UiLCJwcm9wcyIsIl9hIiwiX2IiLCJfYyIsIl9wcm9wcyRkZWZhdWx0Q29sbGFwcyIsImRlZmF1bHRDb2xsYXBzZWQiLCJjb2xsYXBzZWQiLCJvbkNvbGxhcHNlIiwiX3Byb3BzJGRlZmF1bHRDb2xzTnVtIiwiZGVmYXVsdENvbHNOdW1iZXIiLCJERUZBVUxUX0NPTFNfTlVNQkVSIiwibGFiZWxXaWR0aCIsInNwbGl0Iiwic3VibWl0dGVyIiwib25SZXNldCIsImNoaWxkcmVuIiwiZm9ybVByb3BzIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiaW5uZXJDb2xsYXBzZWQiLCJzZXRJbm5lckNvbGxhcHNlZCIsIm1lcmdlZENvbGxhcHNlZCIsImNoaWxkcmVuQXJyYXkiLCJ1c2VNZW1vIiwiQ2hpbGRyZW4iLCJ0b0FycmF5IiwidmlzaWJsZUNoaWxkcmVuIiwic2xpY2UiLCJ0b2dnbGVDb2xsYXBzZWQiLCJ1c2VDYWxsYmFjayIsIm5leHQiLCJ1bmRlZmluZWQiLCJmaWx0ZXJTdHlsZSIsImNvbmNhdCIsInN1Ym1pdHRlck9wdGlvbnMiLCJzZWFyY2hDb25maWciLCJjb2xsYXBzZVRleHQiLCJERUZBVUxUX1RFWFQiLCJjb2xsYXBzZSIsImV4cGFuZFRleHQiLCJleHBhbmQiLCJzdWJtaXR0ZXJSZW5kZXIiLCJyZW5kZXJQcm9wcyIsImN1c3RvbURvbSIsIl9qc3giLCJCdXR0b24iLCJ0eXBlIiwib25DbGljayIsInN1Ym1pdCIsInN1Ym1pdFRleHQiLCJzZWFyY2giLCJzZXZlcml0eSIsInJlc2V0IiwicmVzZXRUZXh0IiwicmVuZGVyIiwic3VibWl0dGVyQ29uZmlnIiwiYXNzaWduIiwicXVlcnlGb3JtUHJvcHMiLCJjbGFzc05hbWUiLCJqb2luQ2xzIiwic3R5bGVzIiwiQ1NTX1BSRUZJWCIsInN0eWxlIiwiUHJvRm9ybSIsImxheW91dCIsIk1lbW9pemVkUXVlcnlGaWx0ZXIiLCJtZW1vIiwiZGlzcGxheU5hbWUiLCJRdWVyeUZpbHRlciIsImV4cG9ydHMiLCJfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFXQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNYQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxXQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxRQUFBLEdBQUFDLHNCQUFBLENBQUFMLE9BQUE7QUFDQSxJQUFBTSxVQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxjQUFBLEdBQUFGLHNCQUFBLENBQUFMLE9BQUE7QURMQSxJQUFJUSxNQUFNLEdBQUksVUFBUSxTQUFLQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENB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QUFNLEVBQUUsQ0FBQS9ELEVBQUEsR0FBQWEsU0FBUyxDQUFDa0QsTUFBTSxNQUFBLElBQUEsSUFBQS9ELEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJLFFBQVE7TUFDcENVLFNBQVMsRUFBRTRDLGVBQWU7TUFBQTFDLFFBQUEsRUFFekJhO0lBQWUsQ0FBQSxDQUFBO0VBQ1IsQ0FBQSxDQUNOO0FBRVYsQ0FBQztBQUVELElBQU11QyxtQkFBbUIsZ0JBQUcsSUFBQUMsV0FBSSxFQUFDckUsZUFBZSxDQUFDO0FBQ2pEb0UsbUJBQW1CLENBQUNFLFdBQVcsR0FBRyxhQUFhO0FBRXhDLElBQU1DLFdBQVcsR0FBQUMsT0FBQSxDQUFBRCxXQUFBLEdBQUdILG1CQUE2QztBQUFDLElBQUFLLFFBQUEsR0FBQUQsT0FBQSxjQUUxREQsV0FBVyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBDaGlsZHJlbiwgbWVtbywgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgam9pbkNscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vLi4vQnV0dG9uJztcbmltcG9ydCBQcm9Gb3JtIGZyb20gJy4uL1Byb0Zvcm0nO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9DT0xTX05VTUJFUiwgREVGQVVMVF9URVhUIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi4vc3R5bGUvUHJvRm9ybS5tb2R1bGUuc2Nzcyc7XG4vKipcbiAqIEhvcml6b250YWwgc2VhcmNoL2ZpbHRlciBmb3JtIHdpdGggY29sbGFwc2libGUgZmllbGRzIGFuZCBhXG4gKiBzZWFyY2gvcmVzZXQvZXhwYW5kIGJ1dHRvbiBiYXIuXG4gKlxuICogRmllbGRzIGJleW9uZCB7QGxpbmsgUXVlcnlGaWx0ZXJQcm9wcy5kZWZhdWx0Q29sc051bWJlcn0gYXJlIGhpZGRlblxuICogd2hlbiB0aGUgZmlsdGVyIGlzIGNvbGxhcHNlZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiA8UXVlcnlGaWx0ZXIgb25GaW5pc2g9e2hhbmRsZVNlYXJjaH0gZGVmYXVsdENvbHNOdW1iZXI9ezJ9PlxuICogICA8UHJvRm9ybVRleHQgbmFtZT1cImtleXdvcmRcIiBsYWJlbD1cIktleXdvcmRcIiAvPlxuICogICA8UHJvRm9ybVNlbGVjdCBuYW1lPVwic3RhdHVzXCIgbGFiZWw9XCJTdGF0dXNcIiBmaWVsZFByb3BzPXt7IG9wdGlvbnMgfX0gLz5cbiAqICAgPFByb0Zvcm1UZXh0IG5hbWU9XCJhdXRob3JcIiBsYWJlbD1cIkF1dGhvclwiIC8+XG4gKiA8L1F1ZXJ5RmlsdGVyPlxuICogYGBgXG4gKi9cbmNvbnN0IFF1ZXJ5RmlsdGVyQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIHZhciBfYSwgX2IsIF9jO1xuICAgIGNvbnN0IHsgZGVmYXVsdENvbGxhcHNlZCA9IHRydWUsIGNvbGxhcHNlZCwgb25Db2xsYXBzZSwgZGVmYXVsdENvbHNOdW1iZXIgPSBERUZBVUxUX0NPTFNfTlVNQkVSLCBsYWJlbFdpZHRoLCBzcGxpdCwgc3VibWl0dGVyLCBvblJlc2V0LCBjaGlsZHJlbiB9ID0gcHJvcHMsIGZvcm1Qcm9wcyA9IF9fcmVzdChwcm9wcywgW1wiZGVmYXVsdENvbGxhcHNlZFwiLCBcImNvbGxhcHNlZFwiLCBcIm9uQ29sbGFwc2VcIiwgXCJkZWZhdWx0Q29sc051bWJlclwiLCBcImxhYmVsV2lkdGhcIiwgXCJzcGxpdFwiLCBcInN1Ym1pdHRlclwiLCBcIm9uUmVzZXRcIiwgXCJjaGlsZHJlblwiXSk7XG4gICAgY29uc3QgW2lubmVyQ29sbGFwc2VkLCBzZXRJbm5lckNvbGxhcHNlZF0gPSB1c2VTdGF0ZShkZWZhdWx0Q29sbGFwc2VkKTtcbiAgICBjb25zdCBtZXJnZWRDb2xsYXBzZWQgPSBzdWJtaXR0ZXIgPT09IGZhbHNlID8gZmFsc2UgOiAoY29sbGFwc2VkICE9PSBudWxsICYmIGNvbGxhcHNlZCAhPT0gdm9pZCAwID8gY29sbGFwc2VkIDogaW5uZXJDb2xsYXBzZWQpO1xuICAgIGNvbnN0IGNoaWxkcmVuQXJyYXkgPSB1c2VNZW1vKCgpID0+IENoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pLCBbY2hpbGRyZW5dKTtcbiAgICBjb25zdCB2aXNpYmxlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKCFtZXJnZWRDb2xsYXBzZWQpXG4gICAgICAgICAgICByZXR1cm4gY2hpbGRyZW5BcnJheTtcbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuQXJyYXkuc2xpY2UoMCwgZGVmYXVsdENvbHNOdW1iZXIpO1xuICAgIH0sIFtjaGlsZHJlbkFycmF5LCBkZWZhdWx0Q29sc051bWJlciwgbWVyZ2VkQ29sbGFwc2VkXSk7XG4gICAgY29uc3QgdG9nZ2xlQ29sbGFwc2VkID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBjb25zdCBuZXh0ID0gIW1lcmdlZENvbGxhcHNlZDtcbiAgICAgICAgaWYgKGNvbGxhcHNlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzZXRJbm5lckNvbGxhcHNlZChuZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBvbkNvbGxhcHNlID09PSBudWxsIHx8IG9uQ29sbGFwc2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ29sbGFwc2UobmV4dCk7XG4gICAgfSwgW2NvbGxhcHNlZCwgbWVyZ2VkQ29sbGFwc2VkLCBvbkNvbGxhcHNlXSk7XG4gICAgY29uc3QgZmlsdGVyU3R5bGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKGxhYmVsV2lkdGggPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChsYWJlbFdpZHRoID09PSAnYXV0bycpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgJy0tb20tZm9ybS1sYWJlbC13aWR0aCc6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICAnLS1vbS1mb3JtLXdyYXBwZXItd2lkdGgnOiAnMTAwJScsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnLS1vbS1mb3JtLWxhYmVsLXdpZHRoJzogYCR7bGFiZWxXaWR0aH1weGAsXG4gICAgICAgICAgICAnLS1vbS1mb3JtLXdyYXBwZXItd2lkdGgnOiBgY2FsYygxMDAlIC0gJHtsYWJlbFdpZHRofXB4KWAsXG4gICAgICAgIH07XG4gICAgfSwgW2xhYmVsV2lkdGhdKTtcbiAgICBjb25zdCBzdWJtaXR0ZXJPcHRpb25zID0gc3VibWl0dGVyID09PSBmYWxzZSA/IHVuZGVmaW5lZCA6IHN1Ym1pdHRlcjtcbiAgICBjb25zdCBzZWFyY2hDb25maWcgPSBzdWJtaXR0ZXJPcHRpb25zID09PSBudWxsIHx8IHN1Ym1pdHRlck9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN1Ym1pdHRlck9wdGlvbnMuc2VhcmNoQ29uZmlnO1xuICAgIGNvbnN0IGNvbGxhcHNlVGV4dCA9IChfYSA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5jb2xsYXBzZVRleHQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IERFRkFVTFRfVEVYVC5jb2xsYXBzZTtcbiAgICBjb25zdCBleHBhbmRUZXh0ID0gKF9iID0gc2VhcmNoQ29uZmlnID09PSBudWxsIHx8IHNlYXJjaENvbmZpZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ29uZmlnLmV4cGFuZFRleHQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IERFRkFVTFRfVEVYVC5leHBhbmQ7XG4gICAgY29uc3Qgc3VibWl0dGVyUmVuZGVyID0gdXNlQ2FsbGJhY2soKHJlbmRlclByb3BzKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IGN1c3RvbURvbSA9IFtcbiAgICAgICAgICAgIF9qc3goQnV0dG9uLCB7IHR5cGU6ICdidXR0b24nLCBvbkNsaWNrOiAoKSA9PiByZW5kZXJQcm9wcy5zdWJtaXQoKSwgY2hpbGRyZW46IChfYSA9IHN1Ym1pdHRlck9wdGlvbnMgPT09IG51bGwgfHwgc3VibWl0dGVyT3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VibWl0dGVyT3B0aW9ucy5zdWJtaXRUZXh0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBERUZBVUxUX1RFWFQuc2VhcmNoIH0sICdzZWFyY2gnKSxcbiAgICAgICAgICAgIF9qc3goQnV0dG9uLCB7IHR5cGU6ICdidXR0b24nLCBzZXZlcml0eTogJ3NlY29uZGFyeScsIG9uQ2xpY2s6ICgpID0+IHJlbmRlclByb3BzLnJlc2V0KCksIGNoaWxkcmVuOiAoX2IgPSBzdWJtaXR0ZXJPcHRpb25zID09PSBudWxsIHx8IHN1Ym1pdHRlck9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN1Ym1pdHRlck9wdGlvbnMucmVzZXRUZXh0KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBERUZBVUxUX1RFWFQucmVzZXQgfSwgJ3Jlc2V0JyksXG4gICAgICAgICAgICBfanN4KEJ1dHRvbiwgeyB0eXBlOiAnYnV0dG9uJywgc2V2ZXJpdHk6ICdzZWNvbmRhcnknLCBvbkNsaWNrOiB0b2dnbGVDb2xsYXBzZWQsIGNoaWxkcmVuOiBtZXJnZWRDb2xsYXBzZWQgPyBleHBhbmRUZXh0IDogY29sbGFwc2VUZXh0IH0sICdjb2xsYXBzZScpLFxuICAgICAgICBdO1xuICAgICAgICBpZiAoc3VibWl0dGVyT3B0aW9ucyA9PT0gbnVsbCB8fCBzdWJtaXR0ZXJPcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdWJtaXR0ZXJPcHRpb25zLnJlbmRlcikge1xuICAgICAgICAgICAgcmV0dXJuIHN1Ym1pdHRlck9wdGlvbnMucmVuZGVyKHJlbmRlclByb3BzLCBjdXN0b21Eb20pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjdXN0b21Eb207XG4gICAgfSwgW1xuICAgICAgICBtZXJnZWRDb2xsYXBzZWQsXG4gICAgICAgIGV4cGFuZFRleHQsXG4gICAgICAgIGNvbGxhcHNlVGV4dCxcbiAgICAgICAgc3VibWl0dGVyT3B0aW9ucyA9PT0gbnVsbCB8fCBzdWJtaXR0ZXJPcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdWJtaXR0ZXJPcHRpb25zLnN1Ym1pdFRleHQsXG4gICAgICAgIHN1Ym1pdHRlck9wdGlvbnMgPT09IG51bGwgfHwgc3VibWl0dGVyT3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VibWl0dGVyT3B0aW9ucy5yZXNldFRleHQsXG4gICAgICAgIHN1Ym1pdHRlck9wdGlvbnMgPT09IG51bGwgfHwgc3VibWl0dGVyT3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VibWl0dGVyT3B0aW9ucy5yZW5kZXIsXG4gICAgICAgIHRvZ2dsZUNvbGxhcHNlZCxcbiAgICBdKTtcbiAgICBjb25zdCBzdWJtaXR0ZXJDb25maWcgPSBzdWJtaXR0ZXJPcHRpb25zID09PSB1bmRlZmluZWRcbiAgICAgICAgPyBmYWxzZVxuICAgICAgICA6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc3VibWl0dGVyT3B0aW9ucyksIHsgb25SZXNldDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAoX2EgPSBzdWJtaXR0ZXJPcHRpb25zLm9uUmVzZXQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHN1Ym1pdHRlck9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldCgpO1xuICAgICAgICAgICAgfSwgcmVuZGVyOiBzdWJtaXR0ZXJSZW5kZXIgfSk7XG4gICAgY29uc3QgcXVlcnlGb3JtUHJvcHMgPSBmb3JtUHJvcHM7XG4gICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBqb2luQ2xzKHN0eWxlc1sncHJvZm9ybV9fcXVlcnktZmlsdGVyJ10sIGAke0NTU19QUkVGSVh9LXF1ZXJ5LWZpbHRlcmAsIHNwbGl0ICYmIHN0eWxlc1sncHJvZm9ybV9fcXVlcnktZmlsdGVyLXNwbGl0J10sIHNwbGl0ICYmIGAke0NTU19QUkVGSVh9LXF1ZXJ5LWZpbHRlci1zcGxpdGApLCBzdHlsZTogZmlsdGVyU3R5bGUsIGNoaWxkcmVuOiBfanN4KFByb0Zvcm0sIE9iamVjdC5hc3NpZ24oe30sIHF1ZXJ5Rm9ybVByb3BzLCB7IGxheW91dDogKF9jID0gZm9ybVByb3BzLmxheW91dCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogJ2lubGluZScsIHN1Ym1pdHRlcjogc3VibWl0dGVyQ29uZmlnLCBjaGlsZHJlbjogdmlzaWJsZUNoaWxkcmVuIH0pKSB9KSk7XG59O1xuY29uc3QgTWVtb2l6ZWRRdWVyeUZpbHRlciA9IG1lbW8oUXVlcnlGaWx0ZXJCYXNlKTtcbk1lbW9pemVkUXVlcnlGaWx0ZXIuZGlzcGxheU5hbWUgPSAnUXVlcnlGaWx0ZXInO1xuZXhwb3J0IGNvbnN0IFF1ZXJ5RmlsdGVyID0gTWVtb2l6ZWRRdWVyeUZpbHRlcjtcbmV4cG9ydCBkZWZhdWx0IFF1ZXJ5RmlsdGVyOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -0,0 +1,13 @@
1
+ import type { FC } from 'react';
2
+ import type { FieldValues } from 'react-hook-form';
3
+ import type { StepFormProps, StepsFormProps } from '../interface';
4
+ /**
5
+ * Wrapper component representing an individual step inside {@link StepsForm}.
6
+ * Does not render its own form — its children are rendered by the parent `StepsForm`.
7
+ */
8
+ export declare const StepForm: FC<StepFormProps<FieldValues>>;
9
+ type StepsFormComponent = FC<StepsFormProps<FieldValues>> & {
10
+ StepForm: FC<StepFormProps<FieldValues>>;
11
+ };
12
+ export declare const StepsForm: StepsFormComponent;
13
+ export default StepsForm;
@@ -0,0 +1,302 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = exports.StepsForm = exports.StepForm = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ var _react = require("react");
12
+ var _classnames = require("../../../utils/classnames");
13
+ var _Button = require("../../Button");
14
+ var _useLatest = _interopRequireDefault(require("../../useLatest"));
15
+ var _ProForm = _interopRequireDefault(require("../ProForm"));
16
+ var _constants = require("../constants");
17
+ var _ProFormModule = _interopRequireDefault(require("../style/ProForm.module.scss"));
18
+ var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
19
+ function adopt(value) {
20
+ return value instanceof P ? value : new P(function (resolve) {
21
+ resolve(value);
22
+ });
23
+ }
24
+ return new (P || (P = Promise))(function (resolve, reject) {
25
+ function fulfilled(value) {
26
+ try {
27
+ step(generator.next(value));
28
+ } catch (e) {
29
+ reject(e);
30
+ }
31
+ }
32
+ function rejected(value) {
33
+ try {
34
+ step(generator["throw"](value));
35
+ } catch (e) {
36
+ reject(e);
37
+ }
38
+ }
39
+ function step(result) {
40
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
41
+ }
42
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
43
+ });
44
+ };
45
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
46
+ var t = {};
47
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
48
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
49
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
50
+ }
51
+ return t;
52
+ };
53
+ /**
54
+ * Wrapper component representing an individual step inside {@link StepsForm}.
55
+ * Does not render its own form — its children are rendered by the parent `StepsForm`.
56
+ */
57
+ var StepForm = exports.StepForm = function StepForm(props) {
58
+ return (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
59
+ children: props.children
60
+ });
61
+ };
62
+ /**
63
+ * Picks only safe HTML div attributes (`className`, `style`, `id`, `data-*`, `aria-*`)
64
+ * from a props object, filtering out component-specific props.
65
+ */
66
+ var pickHtmlDivProps = function pickHtmlDivProps(props) {
67
+ var result = {};
68
+ for (var _i = 0, _Object$keys = Object.keys(props); _i < _Object$keys.length; _i++) {
69
+ var key = _Object$keys[_i];
70
+ if (key === 'className' || key === 'style' || key === 'id' || key.startsWith('data-') || key.startsWith('aria-')) {
71
+ result[key] = props[key];
72
+ }
73
+ }
74
+ return result;
75
+ };
76
+ /**
77
+ * Multi-step wizard form that renders one step at a time, merging values
78
+ * from all steps and calling `onFinish` with the combined result on the final step.
79
+ *
80
+ * @example
81
+ * ```tsx
82
+ * <StepsForm onFinish={handleSubmit}>
83
+ * <StepsForm.StepForm title="Basic Info">
84
+ * <ProFormText name="name" label="Name" />
85
+ * </StepsForm.StepForm>
86
+ * <StepsForm.StepForm title="Details">
87
+ * <ProFormTextArea name="bio" label="Bio" />
88
+ * </StepsForm.StepForm>
89
+ * </StepsForm>
90
+ * ```
91
+ */
92
+ var StepsFormInner = function StepsFormInner(props) {
93
+ var _a;
94
+ var current = props.current,
95
+ onCurrentChange = props.onCurrentChange,
96
+ onFinish = props.onFinish,
97
+ stepsProps = props.stepsProps,
98
+ formProps = props.formProps,
99
+ submitter = props.submitter,
100
+ children = props.children;
101
+ var _useState = (0, _react.useState)(0),
102
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
103
+ innerCurrent = _useState2[0],
104
+ setInnerCurrent = _useState2[1];
105
+ var _useState3 = (0, _react.useState)({}),
106
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
107
+ allValues = _useState4[0],
108
+ setAllValues = _useState4[1];
109
+ var allValuesRef = (0, _react.useRef)({});
110
+ /** Tracks which step index each key was last submitted from. */
111
+ var keyStepMapRef = (0, _react.useRef)(new Map());
112
+ var stepPanelRef = (0, _react.useRef)(null);
113
+ var steps = (0, _react.useMemo)(function () {
114
+ return _react.Children.toArray(children).filter(_react.isValidElement);
115
+ }, [children]);
116
+ var mergedCurrent = typeof current === 'number' ? current : innerCurrent;
117
+ var mergedCurrentRef = (0, _useLatest["default"])(mergedCurrent);
118
+ var activeStep = steps[mergedCurrent];
119
+ var setCurrent = (0, _react.useCallback)(function (nextCurrent) {
120
+ // When navigating backward, clear accumulated values from steps after
121
+ // the target so stale data doesn't persist when the user changes answers.
122
+ if (nextCurrent < mergedCurrentRef.current) {
123
+ setAllValues(function (prev) {
124
+ var cleaned = Object.assign({}, prev);
125
+ keyStepMapRef.current.forEach(function (stepIndex, key) {
126
+ if (stepIndex > nextCurrent) {
127
+ delete cleaned[key];
128
+ }
129
+ });
130
+ allValuesRef.current = cleaned;
131
+ return cleaned;
132
+ });
133
+ }
134
+ if (current === undefined) {
135
+ setInnerCurrent(nextCurrent);
136
+ }
137
+ onCurrentChange === null || onCurrentChange === void 0 ? void 0 : onCurrentChange(nextCurrent);
138
+ }, [current, onCurrentChange]);
139
+ var handleStepFinish = (0, _react.useCallback)(function (values) {
140
+ return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regenerator["default"].mark(function _callee() {
141
+ var _a, _b, currentStep, stepResult, _i2, _Object$keys2, key, mergedValues, isLast;
142
+ return _regenerator["default"].wrap(function _callee$(_context) {
143
+ while (1) switch (_context.prev = _context.next) {
144
+ case 0:
145
+ currentStep = steps[mergedCurrent];
146
+ _context.next = 3;
147
+ return (_b = (_a = currentStep === null || currentStep === void 0 ? void 0 : currentStep.props) === null || _a === void 0 ? void 0 : _a.onFinish) === null || _b === void 0 ? void 0 : _b.call(_a, values);
148
+ case 3:
149
+ stepResult = _context.sent;
150
+ if (!(stepResult === false)) {
151
+ _context.next = 6;
152
+ break;
153
+ }
154
+ return _context.abrupt("return");
155
+ case 6:
156
+ // Track which step each key was submitted from so backward navigation
157
+ // can selectively clear downstream step data.
158
+ for (_i2 = 0, _Object$keys2 = Object.keys(values); _i2 < _Object$keys2.length; _i2++) {
159
+ key = _Object$keys2[_i2];
160
+ keyStepMapRef.current.set(key, mergedCurrent);
161
+ }
162
+ mergedValues = Object.assign(Object.assign({}, allValuesRef.current), values);
163
+ allValuesRef.current = mergedValues;
164
+ setAllValues(mergedValues);
165
+ isLast = mergedCurrent >= steps.length - 1;
166
+ if (!isLast) {
167
+ _context.next = 15;
168
+ break;
169
+ }
170
+ _context.next = 14;
171
+ return onFinish === null || onFinish === void 0 ? void 0 : onFinish(mergedValues);
172
+ case 14:
173
+ return _context.abrupt("return");
174
+ case 15:
175
+ setCurrent(mergedCurrent + 1);
176
+ case 16:
177
+ case "end":
178
+ return _context.stop();
179
+ }
180
+ }, _callee);
181
+ }));
182
+ }, [mergedCurrent, onFinish, setCurrent, steps]);
183
+ var parentFormProps = formProps;
184
+ var _b = (_a = activeStep === null || activeStep === void 0 ? void 0 : activeStep.props) !== null && _a !== void 0 ? _a : {},
185
+ _b2 = _b,
186
+ title = _b2.title,
187
+ description = _b2.description,
188
+ stepProps = _b2.stepProps,
189
+ stepChildren = _b2.children,
190
+ stepFormProps = __rest(_b, ["title", "description", "stepProps", "children"]);
191
+ var activeStepFormProps = activeStep ? stepFormProps : undefined;
192
+ var stepsHtmlProps = pickHtmlDivProps(stepsProps || {});
193
+ var stepHtmlProps = pickHtmlDivProps(stepProps || {});
194
+ var mergedDefaultValues = (0, _react.useMemo)(function () {
195
+ return Object.assign(Object.assign(Object.assign({}, parentFormProps === null || parentFormProps === void 0 ? void 0 : parentFormProps.defaultValues), activeStepFormProps === null || activeStepFormProps === void 0 ? void 0 : activeStepFormProps.defaultValues), allValues);
196
+ }, [activeStepFormProps === null || activeStepFormProps === void 0 ? void 0 : activeStepFormProps.defaultValues, allValues, parentFormProps === null || parentFormProps === void 0 ? void 0 : parentFormProps.defaultValues]);
197
+ var submitterConfig = submitter === false ? false : submitter || {};
198
+ var handlePrev = (0, _react.useCallback)(function () {
199
+ var _a;
200
+ if (submitterConfig !== false) {
201
+ (_a = submitterConfig.onReset) === null || _a === void 0 ? void 0 : _a.call(submitterConfig);
202
+ }
203
+ if (mergedCurrent > 0) {
204
+ setCurrent(mergedCurrent - 1);
205
+ }
206
+ }, [mergedCurrent, setCurrent, submitterConfig]);
207
+ var handleSubmitClick = (0, _react.useCallback)(function () {
208
+ var _a;
209
+ if (submitterConfig !== false) {
210
+ (_a = submitterConfig.onSubmit) === null || _a === void 0 ? void 0 : _a.call(submitterConfig);
211
+ }
212
+ }, [submitterConfig]);
213
+ var triggerStepSubmit = (0, _react.useCallback)(function () {
214
+ var _a, _b;
215
+ if (submitterConfig !== false) {
216
+ (_a = submitterConfig.onSubmit) === null || _a === void 0 ? void 0 : _a.call(submitterConfig);
217
+ }
218
+ var formNode = (_b = stepPanelRef.current) === null || _b === void 0 ? void 0 : _b.querySelector('form');
219
+ if (!formNode) return;
220
+ if (typeof formNode.requestSubmit === 'function') {
221
+ formNode.requestSubmit();
222
+ return;
223
+ }
224
+ formNode.dispatchEvent(new Event('submit', {
225
+ bubbles: true,
226
+ cancelable: true
227
+ }));
228
+ }, [submitterConfig]);
229
+ var prevText = submitterConfig !== false && submitterConfig.prevText ? submitterConfig.prevText : _constants.DEFAULT_TEXT.previous;
230
+ var nextText = submitterConfig !== false && submitterConfig.nextText ? submitterConfig.nextText : _constants.DEFAULT_TEXT.next;
231
+ var submitText = submitterConfig !== false && submitterConfig.submitText ? submitterConfig.submitText : _constants.DEFAULT_TEXT.submit;
232
+ var isLastStep = mergedCurrent >= steps.length - 1;
233
+ var stepsClassNameRaw = stepsHtmlProps.className,
234
+ stepsRestHtml = __rest(stepsHtmlProps, ["className"]);
235
+ var stepClassNameRaw = stepHtmlProps.className,
236
+ stepRestHtml = __rest(stepHtmlProps, ["className"]);
237
+ var stepsClassName = typeof stepsClassNameRaw === 'string' ? stepsClassNameRaw : undefined;
238
+ var stepClassName = typeof stepClassNameRaw === 'string' ? stepClassNameRaw : undefined;
239
+ var renderedActions = (0, _react.useMemo)(function () {
240
+ var _a, _b, _c, _d;
241
+ if (submitterConfig === false) return null;
242
+ var resetButtonProps = submitterConfig.resetButtonProps;
243
+ var submitButtonProps = submitterConfig.submitButtonProps;
244
+ var prevButton = mergedCurrent > 0 ? (0, _jsxRuntime.jsx)(_Button.Button, Object.assign({}, resetButtonProps, {
245
+ type: (_a = resetButtonProps === null || resetButtonProps === void 0 ? void 0 : resetButtonProps.type) !== null && _a !== void 0 ? _a : 'button',
246
+ severity: (_b = resetButtonProps === null || resetButtonProps === void 0 ? void 0 : resetButtonProps.severity) !== null && _b !== void 0 ? _b : 'secondary',
247
+ onClick: function onClick(event) {
248
+ var _a;
249
+ (_a = resetButtonProps === null || resetButtonProps === void 0 ? void 0 : resetButtonProps.onClick) === null || _a === void 0 ? void 0 : _a.call(resetButtonProps, event);
250
+ handlePrev();
251
+ },
252
+ children: prevText
253
+ }), 'prev') : null;
254
+ var nextButton = (0, _jsxRuntime.jsx)(_Button.Button, Object.assign({}, submitButtonProps, {
255
+ type: (_c = submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.type) !== null && _c !== void 0 ? _c : 'submit',
256
+ onClick: function onClick(event) {
257
+ var _a;
258
+ (_a = submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.onClick) === null || _a === void 0 ? void 0 : _a.call(submitButtonProps, event);
259
+ handleSubmitClick();
260
+ },
261
+ children: isLastStep ? submitText : nextText
262
+ }), 'submit');
263
+ var defaultDom = [prevButton, nextButton].filter(Boolean);
264
+ if (!submitterConfig.render) return defaultDom;
265
+ return submitterConfig.render({
266
+ form: (_d = activeStepFormProps === null || activeStepFormProps === void 0 ? void 0 : activeStepFormProps.form) !== null && _d !== void 0 ? _d : parentFormProps === null || parentFormProps === void 0 ? void 0 : parentFormProps.form,
267
+ submit: triggerStepSubmit,
268
+ reset: handlePrev
269
+ }, defaultDom);
270
+ }, [activeStepFormProps === null || activeStepFormProps === void 0 ? void 0 : activeStepFormProps.form, handlePrev, handleSubmitClick, isLastStep, mergedCurrent, nextText, parentFormProps === null || parentFormProps === void 0 ? void 0 : parentFormProps.form, prevText, submitText, submitterConfig, triggerStepSubmit]);
271
+ if (!activeStep) return null;
272
+ return (0, _jsxRuntime.jsx)("div", Object.assign({}, stepsRestHtml, {
273
+ className: (0, _classnames.joinCls)("".concat(_constants.CSS_PREFIX, "-steps-form"), stepsClassName),
274
+ children: (0, _jsxRuntime.jsxs)("div", Object.assign({}, stepRestHtml, {
275
+ ref: stepPanelRef,
276
+ className: (0, _classnames.joinCls)("".concat(_constants.CSS_PREFIX, "-steps-form-step"), stepClassName),
277
+ children: [title && (0, _jsxRuntime.jsx)("div", {
278
+ className: (0, _classnames.joinCls)(_ProFormModule["default"]['proform__steps-form-title'], "".concat(_constants.CSS_PREFIX, "-steps-form-title")),
279
+ children: title
280
+ }), description && (0, _jsxRuntime.jsx)("div", {
281
+ className: (0, _classnames.joinCls)(_ProFormModule["default"]['proform__steps-form-description'], "".concat(_constants.CSS_PREFIX, "-steps-form-description")),
282
+ children: description
283
+ }), (0, _jsxRuntime.jsxs)(_ProForm["default"], Object.assign({}, parentFormProps, activeStepFormProps, {
284
+ defaultValues: mergedDefaultValues,
285
+ submitter: false,
286
+ onFinish: handleStepFinish,
287
+ children: [stepChildren, renderedActions && (0, _jsxRuntime.jsx)("div", {
288
+ className: (0, _classnames.joinCls)(_ProFormModule["default"]['proform__steps-form-actions'], "".concat(_constants.CSS_PREFIX, "-steps-form-actions")),
289
+ children: renderedActions
290
+ })]
291
+ }), "step-".concat(mergedCurrent))]
292
+ }))
293
+ }));
294
+ };
295
+ StepsFormInner.displayName = 'StepsForm';
296
+ var StepsFormBase = /*#__PURE__*/(0, _react.memo)(StepsFormInner);
297
+ // Type assertion required because memo() loses the static StepForm property type.
298
+ // We attach StepForm as a static property below, making this a compound component pattern.
299
+ var StepsForm = exports.StepsForm = StepsFormBase;
300
+ StepsForm.StepForm = StepForm;
301
+ var _default = exports["default"] = StepsForm;
302
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1N0ZXBzRm9ybS5qcyIsImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvU3RlcHNGb3JtLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfY2xhc3NuYW1lcyIsIl9CdXR0b24iLCJfdXNlTGF0ZXN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9Qcm9Gb3JtIiwiX2NvbnN0YW50cyIsIl9Qcm9Gb3JtTW9kdWxlIiwiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJlIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiX19yZXN0IiwicyIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIlN0ZXBGb3JtIiwiZXhwb3J0cyIsInByb3BzIiwiX2pzeCIsIl9GcmFnbWVudCIsImNoaWxkcmVuIiwicGlja0h0bWxEaXZQcm9wcyIsIl9pIiwiX09iamVjdCRrZXlzIiwia2V5cyIsImtleSIsInN0YXJ0c1dpdGgiLCJTdGVwc0Zvcm1Jbm5lciIsIl9hIiwiY3VycmVudCIsIm9uQ3VycmVudENoYW5nZSIsIm9uRmluaXNoIiwic3RlcHNQcm9wcyIsImZvcm1Qcm9wcyIsInN1Ym1pdHRlciIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImlubmVyQ3VycmVudCIsInNldElubmVyQ3VycmVudCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiYWxsVmFsdWVzIiwic2V0QWxsVmFsdWVzIiwiYWxsVmFsdWVzUmVmIiwidXNlUmVmIiwia2V5U3RlcE1hcFJlZiIsIk1hcCIsInN0ZXBQYW5lbFJlZiIsInN0ZXBzIiwidXNlTWVtbyIsIkNoaWxkcmVuIiwidG9BcnJheSIsImZpbHRlciIsImlzVmFsaWRFbGVtZW50IiwibWVyZ2VkQ3VycmVudCIsIm1lcmdlZEN1cnJlbnRSZWYiLCJ1c2VMYXRlc3QiLCJhY3RpdmVTdGVwIiwic2V0Q3VycmVudCIsInVzZUNhbGxiYWNrIiwibmV4dEN1cnJlbnQiLCJwcmV2IiwiY2xlYW5lZCIsImFzc2lnbiIsImZvckVhY2giLCJzdGVwSW5kZXgiLCJ1bmRlZmluZWQiLCJoYW5kbGVTdGVwRmluaXNoIiwidmFsdWVzIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJfYiIsImN1cnJlbnRTdGVwIiwic3RlcFJlc3VsdCIsIl9pMiIsIl9PYmplY3Qka2V5czIiLCJtZXJnZWRWYWx1ZXMiLCJpc0xhc3QiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInNlbnQiLCJhYnJ1cHQiLCJzZXQiLCJzdG9wIiwicGFyZW50Rm9ybVByb3BzIiwiX2IyIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsInN0ZXBQcm9wcyIsInN0ZXBDaGlsZHJlbiIsInN0ZXBGb3JtUHJvcHMiLCJhY3RpdmVTdGVwRm9ybVByb3BzIiwic3RlcHNIdG1sUHJvcHMiLCJzdGVwSHRtbFByb3BzIiwibWVyZ2VkRGVmYXVsdFZhbHVlcyIsImRlZmF1bHRWYWx1ZXMiLCJzdWJtaXR0ZXJDb25maWciLCJoYW5kbGVQcmV2Iiwib25SZXNldCIsImhhbmRsZVN1Ym1pdENsaWNrIiwib25TdWJtaXQiLCJ0cmlnZ2VyU3RlcFN1Ym1pdCIsImZvcm1Ob2RlIiwicXVlcnlTZWxlY3RvciIsInJlcXVlc3RTdWJtaXQiLCJkaXNwYXRjaEV2ZW50IiwiRXZlbnQiLCJidWJibGVzIiwiY2FuY2VsYWJsZSIsInByZXZUZXh0IiwiREVGQVVMVF9URVhUIiwicHJldmlvdXMiLCJuZXh0VGV4dCIsInN1Ym1pdFRleHQiLCJzdWJtaXQiLCJpc0xhc3RTdGVwIiwic3RlcHNDbGFzc05hbWVSYXciLCJjbGFzc05hbWUiLCJzdGVwc1Jlc3RIdG1sIiwic3RlcENsYXNzTmFtZVJhdyIsInN0ZXBSZXN0SHRtbCIsInN0ZXBzQ2xhc3NOYW1lIiwic3RlcENsYXNzTmFtZSIsInJlbmRlcmVkQWN0aW9ucyIsIl9jIiwiX2QiLCJyZXNldEJ1dHRvblByb3BzIiwic3VibWl0QnV0dG9uUHJvcHMiLCJwcmV2QnV0dG9uIiwiQnV0dG9uIiwidHlwZSIsInNldmVyaXR5Iiwib25DbGljayIsImV2ZW50IiwibmV4dEJ1dHRvbiIsImRlZmF1bHREb20iLCJCb29sZWFuIiwicmVuZGVyIiwiZm9ybSIsInJlc2V0Iiwiam9pbkNscyIsImNvbmNhdCIsIkNTU19QUkVGSVgiLCJfanN4cyIsInJlZiIsInN0eWxlcyIsIlByb0Zvcm0iLCJkaXNwbGF5TmFtZSIsIlN0ZXBzRm9ybUJhc2UiLCJtZW1vIiwiU3RlcHNGb3JtIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQW9CQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNwQkEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBU0EsSUFBQUUsV0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBQyxzQkFBQSxDQUFBTCxPQUFBO0FBQ0EsSUFBQU0sUUFBQSxHQUFBRCxzQkFBQSxDQUFBTCxPQUFBO0FBQ0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsY0FBQSxHQUFBSCxzQkFBQSxDQUFBTCxPQUFBO0FEZEEsSUFBSVMsU0FBUyxHQUFJLFVBQVEsU0FBS0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDQyxLQUFLLEVBQUU7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QUFBMkQsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUVGdUIsZUFBZSxFQUNmTyxtQkFBbUIsRUFBQTtRQUN2QkksYUFBYSxFQUFFRCxtQkFBbUI7UUFDbENoRSxTQUFTLEVBQUUsS0FBSztRQUNoQkgsUUFBUSxFQUFFc0MsZ0JBQWdCO1FBQUFqRCxRQUFBLEVBQUEsQ0FFekJ5RSxZQUFZLEVBQ1prQyxlQUFlLElBQ2QsSUFBQTdHLGVBQUEsRUFBQSxLQUFBLEVBQUE7VUFBS3VHLFNBQVMsRUFBRSxJQUFBdUIsbUJBQU8sRUFBQ0sseUJBQU0sQ0FBQyw2QkFBNkIsQ0FBQyxLQUFBSixNQUFBLENBQUtDLHFCQUFVLHdCQUFxQixDQUFDO1VBQUE5SCxRQUFBLEVBQy9GMkc7UUFBZSxDQUFBLENBRW5CO01BQUEsQ0FBQSxDQUFBLFVBQUFrQixNQUFBLENBWll6RixhQUFhLENBQUUsQ0FhcEI7SUFBQSxDQUFBLENBQUE7RUFDTixDQUFBLENBQUEsQ0FDRjtBQUVWLENBQUM7QUFFRDdCLGNBQWMsQ0FBQzRILFdBQVcsR0FBRyxXQUFXO0FBRXhDLElBQU1DLGFBQWEsZ0JBQUcsSUFBQUMsV0FBSSxFQUFDOUgsY0FBYyxDQUFDO0FBRTFDO0FBQ0E7QUFDTyxJQUFNK0gsU0FBUyxHQUFBMUksT0FBQSxDQUFBMEksU0FBQSxHQUFHRixhQUE4QztBQUN2RUUsU0FBUyxDQUFDM0ksUUFBUSxHQUFHQSxRQUFRO0FBQUMsSUFBQTRJLFFBQUEsR0FBQTNJLE9BQUEsY0FFZjBJLFNBQVMiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvU3RlcHNGb3JtLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBDaGlsZHJlbiwgaXNWYWxpZEVsZW1lbnQsIG1lbW8sIHVzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlLCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGpvaW5DbHMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uLy4uL0J1dHRvbic7XG5pbXBvcnQgdXNlTGF0ZXN0IGZyb20gJy4uLy4uL3VzZUxhdGVzdCc7XG5pbXBvcnQgUHJvRm9ybSBmcm9tICcuLi9Qcm9Gb3JtJztcbmltcG9ydCB7IENTU19QUkVGSVgsIERFRkFVTFRfVEVYVCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgc3R5bGVzIGZyb20gJy4uL3N0eWxlL1Byb0Zvcm0ubW9kdWxlLnNjc3MnO1xuLyoqXG4gKiBXcmFwcGVyIGNvbXBvbmVudCByZXByZXNlbnRpbmcgYW4gaW5kaXZpZHVhbCBzdGVwIGluc2lkZSB7QGxpbmsgU3RlcHNGb3JtfS5cbiAqIERvZXMgbm90IHJlbmRlciBpdHMgb3duIGZvcm0g4oCUIGl0cyBjaGlsZHJlbiBhcmUgcmVuZGVyZWQgYnkgdGhlIHBhcmVudCBgU3RlcHNGb3JtYC5cbiAqL1xuZXhwb3J0IGNvbnN0IFN0ZXBGb3JtID0gKHByb3BzKSA9PiB7XG4gICAgcmV0dXJuIF9qc3goX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBwcm9wcy5jaGlsZHJlbiB9KTtcbn07XG4vKipcbiAqIFBpY2tzIG9ubHkgc2FmZSBIVE1MIGRpdiBhdHRyaWJ1dGVzIChgY2xhc3NOYW1lYCwgYHN0eWxlYCwgYGlkYCwgYGRhdGEtKmAsIGBhcmlhLSpgKVxuICogZnJvbSBhIHByb3BzIG9iamVjdCwgZmlsdGVyaW5nIG91dCBjb21wb25lbnQtc3BlY2lmaWMgcHJvcHMuXG4gKi9cbmNvbnN0IHBpY2tIdG1sRGl2UHJvcHMgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhwcm9wcykpIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ2NsYXNzTmFtZScgfHwga2V5ID09PSAnc3R5bGUnIHx8IGtleSA9PT0gJ2lkJyB8fCBrZXkuc3RhcnRzV2l0aCgnZGF0YS0nKSB8fCBrZXkuc3RhcnRzV2l0aCgnYXJpYS0nKSkge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBwcm9wc1trZXldO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59O1xuLyoqXG4gKiBNdWx0aS1zdGVwIHdpemFyZCBmb3JtIHRoYXQgcmVuZGVycyBvbmUgc3RlcCBhdCBhIHRpbWUsIG1lcmdpbmcgdmFsdWVzXG4gKiBmcm9tIGFsbCBzdGVwcyBhbmQgY2FsbGluZyBgb25GaW5pc2hgIHdpdGggdGhlIGNvbWJpbmVkIHJlc3VsdCBvbiB0aGUgZmluYWwgc3RlcC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiA8U3RlcHNGb3JtIG9uRmluaXNoPXtoYW5kbGVTdWJtaXR9PlxuICogICA8U3RlcHNGb3JtLlN0ZXBGb3JtIHRpdGxlPVwiQmFzaWMgSW5mb1wiPlxuICogICAgIDxQcm9Gb3JtVGV4dCBuYW1lPVwibmFtZVwiIGxhYmVsPVwiTmFtZVwiIC8+XG4gKiAgIDwvU3RlcHNGb3JtLlN0ZXBGb3JtPlxuICogICA8U3RlcHNGb3JtLlN0ZXBGb3JtIHRpdGxlPVwiRGV0YWlsc1wiPlxuICogICAgIDxQcm9Gb3JtVGV4dEFyZWEgbmFtZT1cImJpb1wiIGxhYmVsPVwiQmlvXCIgLz5cbiAqICAgPC9TdGVwc0Zvcm0uU3RlcEZvcm0+XG4gKiA8L1N0ZXBzRm9ybT5cbiAqIGBgYFxuICovXG5jb25zdCBTdGVwc0Zvcm1Jbm5lciA9IChwcm9wcykgPT4ge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCB7IGN1cnJlbnQsIG9uQ3VycmVudENoYW5nZSwgb25GaW5pc2gsIHN0ZXBzUHJvcHMsIGZvcm1Qcm9wcywgc3VibWl0dGVyLCBjaGlsZHJlbiwgfSA9IHByb3BzO1xuICAgIGNvbnN0IFtpbm5lckN1cnJlbnQsIHNldElubmVyQ3VycmVudF0gPSB1c2VTdGF0ZSgwKTtcbiAgICBjb25zdCBbYWxsVmFsdWVzLCBzZXRBbGxWYWx1ZXNdID0gdXNlU3RhdGUoe30pO1xuICAgIGNvbnN0IGFsbFZhbHVlc1JlZiA9IHVzZVJlZih7fSk7XG4gICAgLyoqIFRyYWNrcyB3aGljaCBzdGVwIGluZGV4IGVhY2gga2V5IHdhcyBsYXN0IHN1Ym1pdHRlZCBmcm9tLiAqL1xuICAgIGNvbnN0IGtleVN0ZXBNYXBSZWYgPSB1c2VSZWYobmV3IE1hcCgpKTtcbiAgICBjb25zdCBzdGVwUGFuZWxSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc3RlcHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIENoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pLmZpbHRlcihpc1ZhbGlkRWxlbWVudCk7XG4gICAgfSwgW2NoaWxkcmVuXSk7XG4gICAgY29uc3QgbWVyZ2VkQ3VycmVudCA9IHR5cGVvZiBjdXJyZW50ID09PSAnbnVtYmVyJyA/IGN1cnJlbnQgOiBpbm5lckN1cnJlbnQ7XG4gICAgY29uc3QgbWVyZ2VkQ3VycmVudFJlZiA9IHVzZUxhdGVzdChtZXJnZWRDdXJyZW50KTtcbiAgICBjb25zdCBhY3RpdmVTdGVwID0gc3RlcHNbbWVyZ2VkQ3VycmVudF07XG4gICAgY29uc3Qgc2V0Q3VycmVudCA9IHVzZUNhbGxiYWNrKChuZXh0Q3VycmVudCkgPT4ge1xuICAgICAgICAvLyBXaGVuIG5hdmlnYXRpbmcgYmFja3dhcmQsIGNsZWFyIGFjY3VtdWxhdGVkIHZhbHVlcyBmcm9tIHN0ZXBzIGFmdGVyXG4gICAgICAgIC8vIHRoZSB0YXJnZXQgc28gc3RhbGUgZGF0YSBkb2Vzbid0IHBlcnNpc3Qgd2hlbiB0aGUgdXNlciBjaGFuZ2VzIGFuc3dlcnMuXG4gICAgICAgIGlmIChuZXh0Q3VycmVudCA8IG1lcmdlZEN1cnJlbnRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgc2V0QWxsVmFsdWVzKHByZXYgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsZWFuZWQgPSBPYmplY3QuYXNzaWduKHt9LCBwcmV2KTtcbiAgICAgICAgICAgICAgICBrZXlTdGVwTWFwUmVmLmN1cnJlbnQuZm9yRWFjaCgoc3RlcEluZGV4LCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0ZXBJbmRleCA+IG5leHRDdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgY2xlYW5lZFtrZXldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgYWxsVmFsdWVzUmVmLmN1cnJlbnQgPSBjbGVhbmVkO1xuICAgICAgICAgICAgICAgIHJldHVybiBjbGVhbmVkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGN1cnJlbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgc2V0SW5uZXJDdXJyZW50KG5leHRDdXJyZW50KTtcbiAgICAgICAgfVxuICAgICAgICBvbkN1cnJlbnRDaGFuZ2UgPT09IG51bGwgfHwgb25DdXJyZW50Q2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkN1cnJlbnRDaGFuZ2UobmV4dEN1cnJlbnQpO1xuICAgIH0sIFtjdXJyZW50LCBvbkN1cnJlbnRDaGFuZ2VdKTtcbiAgICBjb25zdCBoYW5kbGVTdGVwRmluaXNoID0gdXNlQ2FsbGJhY2soKHZhbHVlcykgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTdGVwID0gc3RlcHNbbWVyZ2VkQ3VycmVudF07XG4gICAgICAgIGNvbnN0IHN0ZXBSZXN1bHQgPSB5aWVsZCAoKF9iID0gKF9hID0gY3VycmVudFN0ZXAgPT09IG51bGwgfHwgY3VycmVudFN0ZXAgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGN1cnJlbnRTdGVwLnByb3BzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eub25GaW5pc2gpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCB2YWx1ZXMpKTtcbiAgICAgICAgaWYgKHN0ZXBSZXN1bHQgPT09IGZhbHNlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAvLyBUcmFjayB3aGljaCBzdGVwIGVhY2gga2V5IHdhcyBzdWJtaXR0ZWQgZnJvbSBzbyBiYWNrd2FyZCBuYXZpZ2F0aW9uXG4gICAgICAgIC8vIGNhbiBzZWxlY3RpdmVseSBjbGVhciBkb3duc3RyZWFtIHN0ZXAgZGF0YS5cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModmFsdWVzKSkge1xuICAgICAgICAgICAga2V5U3RlcE1hcFJlZi5jdXJyZW50LnNldChrZXksIG1lcmdlZEN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1lcmdlZFZhbHVlcyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYWxsVmFsdWVzUmVmLmN1cnJlbnQpLCB2YWx1ZXMpO1xuICAgICAgICBhbGxWYWx1ZXNSZWYuY3VycmVudCA9IG1lcmdlZFZhbHVlcztcbiAgICAgICAgc2V0QWxsVmFsdWVzKG1lcmdlZFZhbHVlcyk7XG4gICAgICAgIGNvbnN0IGlzTGFzdCA9IG1lcmdlZEN1cnJlbnQgPj0gc3RlcHMubGVuZ3RoIC0gMTtcbiAgICAgICAgaWYgKGlzTGFzdCkge1xuICAgICAgICAgICAgeWllbGQgKG9uRmluaXNoID09PSBudWxsIHx8IG9uRmluaXNoID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZpbmlzaChtZXJnZWRWYWx1ZXMpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzZXRDdXJyZW50KG1lcmdlZEN1cnJlbnQgKyAxKTtcbiAgICB9KSwgW21lcmdlZEN1cnJlbnQsIG9uRmluaXNoLCBzZXRDdXJyZW50LCBzdGVwc10pO1xuICAgIGNvbnN0IHBhcmVudEZvcm1Qcm9wcyA9IGZvcm1Qcm9wcztcbiAgICBjb25zdCBfYiA9ICgoX2EgPSBhY3RpdmVTdGVwID09PSBudWxsIHx8IGFjdGl2ZVN0ZXAgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFjdGl2ZVN0ZXAucHJvcHMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHt9KSwgeyB0aXRsZSwgZGVzY3JpcHRpb24sIHN0ZXBQcm9wcywgY2hpbGRyZW46IHN0ZXBDaGlsZHJlbiB9ID0gX2IsIHN0ZXBGb3JtUHJvcHMgPSBfX3Jlc3QoX2IsIFtcInRpdGxlXCIsIFwiZGVzY3JpcHRpb25cIiwgXCJzdGVwUHJvcHNcIiwgXCJjaGlsZHJlblwiXSk7XG4gICAgY29uc3QgYWN0aXZlU3RlcEZvcm1Qcm9wcyA9IGFjdGl2ZVN0ZXBcbiAgICAgICAgPyBzdGVwRm9ybVByb3BzXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHN0ZXBzSHRtbFByb3BzID0gcGlja0h0bWxEaXZQcm9wcygoc3RlcHNQcm9wcyB8fCB7fSkpO1xuICAgIGNvbnN0IHN0ZXBIdG1sUHJvcHMgPSBwaWNrSHRtbERpdlByb3BzKChzdGVwUHJvcHMgfHwge30pKTtcbiAgICBjb25zdCBtZXJnZWREZWZhdWx0VmFsdWVzID0gdXNlTWVtbygoKSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHBhcmVudEZvcm1Qcm9wcyA9PT0gbnVsbCB8fCBwYXJlbnRGb3JtUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmVudEZvcm1Qcm9wcy5kZWZhdWx0VmFsdWVzKSwgYWN0aXZlU3RlcEZvcm1Qcm9wcyA9PT0gbnVsbCB8fCBhY3RpdmVTdGVwRm9ybVByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhY3RpdmVTdGVwRm9ybVByb3BzLmRlZmF1bHRWYWx1ZXMpLCBhbGxWYWx1ZXMpKSwgW2FjdGl2ZVN0ZXBGb3JtUHJvcHMgPT09IG51bGwgfHwgYWN0aXZlU3RlcEZvcm1Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWN0aXZlU3RlcEZvcm1Qcm9wcy5kZWZhdWx0VmFsdWVzLCBhbGxWYWx1ZXMsIHBhcmVudEZvcm1Qcm9wcyA9PT0gbnVsbCB8fCBwYXJlbnRGb3JtUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmVudEZvcm1Qcm9wcy5kZWZhdWx0VmFsdWVzXSk7XG4gICAgY29uc3Qgc3VibWl0dGVyQ29uZmlnID0gc3VibWl0dGVyID09PSBmYWxzZSA/IGZhbHNlIDogKHN1Ym1pdHRlciB8fCB7fSk7XG4gICAgY29uc3QgaGFuZGxlUHJldiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoc3VibWl0dGVyQ29uZmlnICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgKF9hID0gc3VibWl0dGVyQ29uZmlnLm9uUmVzZXQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHN1Ym1pdHRlckNvbmZpZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1lcmdlZEN1cnJlbnQgPiAwKSB7XG4gICAgICAgICAgICBzZXRDdXJyZW50KG1lcmdlZEN1cnJlbnQgLSAxKTtcbiAgICAgICAgfVxuICAgIH0sIFttZXJnZWRDdXJyZW50LCBzZXRDdXJyZW50LCBzdWJtaXR0ZXJDb25maWddKTtcbiAgICBjb25zdCBoYW5kbGVTdWJtaXRDbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoc3VibWl0dGVyQ29uZmlnICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgKF9hID0gc3VibWl0dGVyQ29uZmlnLm9uU3VibWl0KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChzdWJtaXR0ZXJDb25maWcpO1xuICAgICAgICB9XG4gICAgfSwgW3N1Ym1pdHRlckNvbmZpZ10pO1xuICAgIGNvbnN0IHRyaWdnZXJTdGVwU3VibWl0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoc3VibWl0dGVyQ29uZmlnICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgKF9hID0gc3VibWl0dGVyQ29uZmlnLm9uU3VibWl0KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChzdWJtaXR0ZXJDb25maWcpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZvcm1Ob2RlID0gKF9iID0gc3RlcFBhbmVsUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5xdWVyeVNlbGVjdG9yKCdmb3JtJyk7XG4gICAgICAgIGlmICghZm9ybU5vZGUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICh0eXBlb2YgZm9ybU5vZGUucmVxdWVzdFN1Ym1pdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgZm9ybU5vZGUucmVxdWVzdFN1Ym1pdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvcm1Ob2RlLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdzdWJtaXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUgfSkpO1xuICAgIH0sIFtzdWJtaXR0ZXJDb25maWddKTtcbiAgICBjb25zdCBwcmV2VGV4dCA9IHN1Ym1pdHRlckNvbmZpZyAhPT0gZmFsc2UgJiYgc3VibWl0dGVyQ29uZmlnLnByZXZUZXh0XG4gICAgICAgID8gc3VibWl0dGVyQ29uZmlnLnByZXZUZXh0XG4gICAgICAgIDogREVGQVVMVF9URVhULnByZXZpb3VzO1xuICAgIGNvbnN0IG5leHRUZXh0ID0gc3VibWl0dGVyQ29uZmlnICE9PSBmYWxzZSAmJiBzdWJtaXR0ZXJDb25maWcubmV4dFRleHRcbiAgICAgICAgPyBzdWJtaXR0ZXJDb25maWcubmV4dFRleHRcbiAgICAgICAgOiBERUZBVUxUX1RFWFQubmV4dDtcbiAgICBjb25zdCBzdWJtaXRUZXh0ID0gc3VibWl0dGVyQ29uZmlnICE9PSBmYWxzZSAmJiBzdWJtaXR0ZXJDb25maWcuc3VibWl0VGV4dFxuICAgICAgICA/IHN1Ym1pdHRlckNvbmZpZy5zdWJtaXRUZXh0XG4gICAgICAgIDogREVGQVVMVF9URVhULnN1Ym1pdDtcbiAgICBjb25zdCBpc0xhc3RTdGVwID0gbWVyZ2VkQ3VycmVudCA+PSBzdGVwcy5sZW5ndGggLSAxO1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lOiBzdGVwc0NsYXNzTmFtZVJhdyB9ID0gc3RlcHNIdG1sUHJvcHMsIHN0ZXBzUmVzdEh0bWwgPSBfX3Jlc3Qoc3RlcHNIdG1sUHJvcHMsIFtcImNsYXNzTmFtZVwiXSk7XG4gICAgY29uc3QgeyBjbGFzc05hbWU6IHN0ZXBDbGFzc05hbWVSYXcgfSA9IHN0ZXBIdG1sUHJvcHMsIHN0ZXBSZXN0SHRtbCA9IF9fcmVzdChzdGVwSHRtbFByb3BzLCBbXCJjbGFzc05hbWVcIl0pO1xuICAgIGNvbnN0IHN0ZXBzQ2xhc3NOYW1lID0gdHlwZW9mIHN0ZXBzQ2xhc3NOYW1lUmF3ID09PSAnc3RyaW5nJyA/IHN0ZXBzQ2xhc3NOYW1lUmF3IDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHN0ZXBDbGFzc05hbWUgPSB0eXBlb2Ygc3RlcENsYXNzTmFtZVJhdyA9PT0gJ3N0cmluZycgPyBzdGVwQ2xhc3NOYW1lUmF3IDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHJlbmRlcmVkQWN0aW9ucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIGlmIChzdWJtaXR0ZXJDb25maWcgPT09IGZhbHNlKVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIGNvbnN0IHJlc2V0QnV0dG9uUHJvcHMgPSBzdWJtaXR0ZXJDb25maWcucmVzZXRCdXR0b25Qcm9wcztcbiAgICAgICAgY29uc3Qgc3VibWl0QnV0dG9uUHJvcHMgPSBzdWJtaXR0ZXJDb25maWcuc3VibWl0QnV0dG9uUHJvcHM7XG4gICAgICAgIGNvbnN0IHByZXZCdXR0b24gPSBtZXJnZWRDdXJyZW50ID4gMFxuICAgICAgICAgICAgPyAoX2pzeChCdXR0b24sIE9iamVjdC5hc3NpZ24oe30sIHJlc2V0QnV0dG9uUHJvcHMsIHsgdHlwZTogKF9hID0gcmVzZXRCdXR0b25Qcm9wcyA9PT0gbnVsbCB8fCByZXNldEJ1dHRvblByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNldEJ1dHRvblByb3BzLnR5cGUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICdidXR0b24nLCBzZXZlcml0eTogKF9iID0gcmVzZXRCdXR0b25Qcm9wcyA9PT0gbnVsbCB8fCByZXNldEJ1dHRvblByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNldEJ1dHRvblByb3BzLnNldmVyaXR5KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAnc2Vjb25kYXJ5Jywgb25DbGljazogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgKF9hID0gcmVzZXRCdXR0b25Qcm9wcyA9PT0gbnVsbCB8fCByZXNldEJ1dHRvblByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNldEJ1dHRvblByb3BzLm9uQ2xpY2spID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHJlc2V0QnV0dG9uUHJvcHMsIGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlUHJldigpO1xuICAgICAgICAgICAgICAgIH0sIGNoaWxkcmVuOiBwcmV2VGV4dCB9KSwgJ3ByZXYnKSlcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgY29uc3QgbmV4dEJ1dHRvbiA9IChfanN4KEJ1dHRvbiwgT2JqZWN0LmFzc2lnbih7fSwgc3VibWl0QnV0dG9uUHJvcHMsIHsgdHlwZTogKF9jID0gc3VibWl0QnV0dG9uUHJvcHMgPT09IG51bGwgfHwgc3VibWl0QnV0dG9uUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN1Ym1pdEJ1dHRvblByb3BzLnR5cGUpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6ICdzdWJtaXQnLCBvbkNsaWNrOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgKF9hID0gc3VibWl0QnV0dG9uUHJvcHMgPT09IG51bGwgfHwgc3VibWl0QnV0dG9uUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN1Ym1pdEJ1dHRvblByb3BzLm9uQ2xpY2spID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHN1Ym1pdEJ1dHRvblByb3BzLCBldmVudCk7XG4gICAgICAgICAgICAgICAgaGFuZGxlU3VibWl0Q2xpY2soKTtcbiAgICAgICAgICAgIH0sIGNoaWxkcmVuOiBpc0xhc3RTdGVwID8gc3VibWl0VGV4dCA6IG5leHRUZXh0IH0pLCAnc3VibWl0JykpO1xuICAgICAgICBjb25zdCBkZWZhdWx0RG9tID0gW3ByZXZCdXR0b24sIG5leHRCdXR0b25dLmZpbHRlcihCb29sZWFuKTtcbiAgICAgICAgaWYgKCFzdWJtaXR0ZXJDb25maWcucmVuZGVyKVxuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHREb207XG4gICAgICAgIHJldHVybiBzdWJtaXR0ZXJDb25maWcucmVuZGVyKHtcbiAgICAgICAgICAgIGZvcm06IChfZCA9IGFjdGl2ZVN0ZXBGb3JtUHJvcHMgPT09IG51bGwgfHwgYWN0aXZlU3RlcEZvcm1Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWN0aXZlU3RlcEZvcm1Qcm9wcy5mb3JtKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiBwYXJlbnRGb3JtUHJvcHMgPT09IG51bGwgfHwgcGFyZW50Rm9ybVByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJlbnRGb3JtUHJvcHMuZm9ybSxcbiAgICAgICAgICAgIHN1Ym1pdDogdHJpZ2dlclN0ZXBTdWJtaXQsXG4gICAgICAgICAgICByZXNldDogaGFuZGxlUHJldixcbiAgICAgICAgfSwgZGVmYXVsdERvbSk7XG4gICAgfSwgW1xuICAgICAgICBhY3RpdmVTdGVwRm9ybVByb3BzID09PSBudWxsIHx8IGFjdGl2ZVN0ZXBGb3JtUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFjdGl2ZVN0ZXBGb3JtUHJvcHMuZm9ybSxcbiAgICAgICAgaGFuZGxlUHJldixcbiAgICAgICAgaGFuZGxlU3VibWl0Q2xpY2ssXG4gICAgICAgIGlzTGFzdFN0ZXAsXG4gICAgICAgIG1lcmdlZEN1cnJlbnQsXG4gICAgICAgIG5leHRUZXh0LFxuICAgICAgICBwYXJlbnRGb3JtUHJvcHMgPT09IG51bGwgfHwgcGFyZW50Rm9ybVByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJlbnRGb3JtUHJvcHMuZm9ybSxcbiAgICAgICAgcHJldlRleHQsXG4gICAgICAgIHN1Ym1pdFRleHQsXG4gICAgICAgIHN1Ym1pdHRlckNvbmZpZyxcbiAgICAgICAgdHJpZ2dlclN0ZXBTdWJtaXQsXG4gICAgXSk7XG4gICAgaWYgKCFhY3RpdmVTdGVwKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gKF9qc3goXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7fSwgc3RlcHNSZXN0SHRtbCwgeyBjbGFzc05hbWU6IGpvaW5DbHMoYCR7Q1NTX1BSRUZJWH0tc3RlcHMtZm9ybWAsIHN0ZXBzQ2xhc3NOYW1lKSwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe30sIHN0ZXBSZXN0SHRtbCwgeyByZWY6IHN0ZXBQYW5lbFJlZiwgY2xhc3NOYW1lOiBqb2luQ2xzKGAke0NTU19QUkVGSVh9LXN0ZXBzLWZvcm0tc3RlcGAsIHN0ZXBDbGFzc05hbWUpLCBjaGlsZHJlbjogW3RpdGxlICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBqb2luQ2xzKHN0eWxlc1sncHJvZm9ybV9fc3RlcHMtZm9ybS10aXRsZSddLCBgJHtDU1NfUFJFRklYfS1zdGVwcy1mb3JtLXRpdGxlYCksIGNoaWxkcmVuOiB0aXRsZSB9KSksIGRlc2NyaXB0aW9uICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBqb2luQ2xzKHN0eWxlc1sncHJvZm9ybV9fc3RlcHMtZm9ybS1kZXNjcmlwdGlvbiddLCBgJHtDU1NfUFJFRklYfS1zdGVwcy1mb3JtLWRlc2NyaXB0aW9uYCksIGNoaWxkcmVuOiBkZXNjcmlwdGlvbiB9KSksIF9qc3hzKFByb0Zvcm0sIE9iamVjdC5hc3NpZ24oe30sIHBhcmVudEZvcm1Qcm9wcywgYWN0aXZlU3RlcEZvcm1Qcm9wcywgeyBkZWZhdWx0VmFsdWVzOiBtZXJnZWREZWZhdWx0VmFsdWVzLCBzdWJtaXR0ZXI6IGZhbHNlLCBvbkZpbmlzaDogaGFuZGxlU3RlcEZpbmlzaCwgY2hpbGRyZW46IFtzdGVwQ2hpbGRyZW4sIHJlbmRlcmVkQWN0aW9ucyAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogam9pbkNscyhzdHlsZXNbJ3Byb2Zvcm1fX3N0ZXBzLWZvcm0tYWN0aW9ucyddLCBgJHtDU1NfUFJFRklYfS1zdGVwcy1mb3JtLWFjdGlvbnNgKSwgY2hpbGRyZW46IHJlbmRlcmVkQWN0aW9ucyB9KSldIH0pLCBgc3RlcC0ke21lcmdlZEN1cnJlbnR9YCldIH0pKSB9KSkpO1xufTtcblN0ZXBzRm9ybUlubmVyLmRpc3BsYXlOYW1lID0gJ1N0ZXBzRm9ybSc7XG5jb25zdCBTdGVwc0Zvcm1CYXNlID0gbWVtbyhTdGVwc0Zvcm1Jbm5lcik7XG4vLyBUeXBlIGFzc2VydGlvbiByZXF1aXJlZCBiZWNhdXNlIG1lbW8oKSBsb3NlcyB0aGUgc3RhdGljIFN0ZXBGb3JtIHByb3BlcnR5IHR5cGUuXG4vLyBXZSBhdHRhY2ggU3RlcEZvcm0gYXMgYSBzdGF0aWMgcHJvcGVydHkgYmVsb3csIG1ha2luZyB0aGlzIGEgY29tcG91bmQgY29tcG9uZW50IHBhdHRlcm4uXG5leHBvcnQgY29uc3QgU3RlcHNGb3JtID0gU3RlcHNGb3JtQmFzZTtcblN0ZXBzRm9ybS5TdGVwRm9ybSA9IFN0ZXBGb3JtO1xuZXhwb3J0IGRlZmF1bHQgU3RlcHNGb3JtOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -0,0 +1,4 @@
1
+ export { ModalForm } from './ModalForm';
2
+ export { DrawerForm } from './DrawerForm';
3
+ export { StepsForm, StepForm } from './StepsForm';
4
+ export { QueryFilter } from './QueryFilter';
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "DrawerForm", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _DrawerForm.DrawerForm;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "ModalForm", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _ModalForm.ModalForm;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "QueryFilter", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _QueryFilter.QueryFilter;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "StepForm", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _StepsForm.StepForm;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "StepsForm", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _StepsForm.StepsForm;
34
+ }
35
+ });
36
+ var _ModalForm = require("./ModalForm");
37
+ var _DrawerForm = require("./DrawerForm");
38
+ var _StepsForm = require("./StepsForm");
39
+ var _QueryFilter = require("./QueryFilter");
40
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvaW5kZXgudHMiXSwibmFtZXMiOlsiX01vZGFsRm9ybSIsInJlcXVpcmUiLCJfRHJhd2VyRm9ybSIsIl9TdGVwc0Zvcm0iLCJfUXVlcnlGaWx0ZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsVUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsWUFBQSxHQUFBSCxPQUFBIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9